База данных периодического издания
ВВЕДЕНИЕ
За последние тридцать лет теория баз данных (БД) стала одним из основных разделов информатики, оказывающим сильное воздействие на развитие архитектуры вычислительных систем, современную информационную технологию и методологию проектирования автоматизированных информационных систем (АИС), особенно банков данных (БнД). В последние годы в теории БД сложилось новое направление научных исследований, получившее название семантического, или концептуального, моделирования в БД. Его основная цель - интеллектуализация банков данных и организация интерфейса конечного пользователя с информационной системой на ровне представлений о предметной области, не на ровне структур данных.
В настоящее время определился основной подход к решению задач семантического моделирования в базах данных. Он заключается в выделении двух ровней моделирования: уровня концептуального моделирования ПО (предметной области) и ровня моделирования собственно базы данных. На верхнем ровне осуществляется переход от неформализованного описания ПО и информационных потребностей конечного пользователя к их формальному выражению с помощью специальных языковых средств.
1 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
В процессе работы в редакции газеты часто требуется быстро находить некоторую информацию, которая наглядно отражала бы процесс работы. Например, при расчете зарплаты журналистами, бухгалтерии необходимо предоставить списки, сколько статей вышло каждого журналиста. А для расчета премии дополнительно списки, какие статьи журналиста были рекламного характера. Выполнение данной работы необходимо для оперативного получения этих сведений.
3 ER<-МОДЕЛЬ БАЗЫ ДАННЫХ ПЕРИОДИЧЕСКОГО ИЗДАНИЯ
Предприятие |
Отдел журналистики |
Подотдел новостей |
Подотдел работы с читателями |
Подотдел работы с администрацией |
ФИО |
Журналисты |
Код отдела |
Статьи |
Месяц |
Год |
№ газеты |
Наз-вание |
Код журна-листа |
Реклама |
День |
ФИО |
Журналисты |
Код отдела |
Статьи |
Месяц |
Год |
№ газеты |
Наз-вание |
Код журна-листа |
Реклама |
День |
ФИО |
Журналисты |
Код отдела |
Статьи |
Месяц |
Год |
№ газеты |
Наз-вание |
Код журна-листа |
Реклама |
День |
2 ОПИСАНИЕ ТАБЛИЦ И ЗАПРОСОВ
Таблица л
В этой таблице приводятся код и наименование подотделов отдела Журналисты.
Таблица Jurnalist<
В этой таблице приводятся код,
ФИО журналистов и код подотдела, к которому относятся журналисты.
Таблица Material<
В таблице приводятся код,
заголовок, дата выхода, номер газеты, в которой вышел материал, являлся ли материал заказным, также код журналиста (автора статьи).
Запрос Материалы журналиста за месяц
В этом запросе происходит выборка статей некоторого журналиста за определенный месяц.
Результат запроса
Запрос Рекламные статьи
В запросе происходит выборка всех материалов рекламного характера.
Запрос Рекламный материал журналиста
В запросе происходит выборка материалов рекламного характера некоторого журналиста.
Приложение 1
СХЕМА ДАННЫХ
Приложение 2
ЗАПРОСЫ ДЛЯ СОЗДАНИЯ ОТЧЕТОВ (В ФОРМЕ SQL)
Запрос Материалы журналиста за месяц
PARAMETERS ФИО Text ( 255 );
SELECT Jurnalist.ФИО, Material.месяц, Material.год, Material.дата, Material.Наименование, Material.заказ
FROM Jurnalist INNER JOIN Material ON Jurnalist.Код = Material.[код журналиста<]
WHERE (((Jurnalist.ФИО)=[ФИО]) AND ((Material.месяц) Like [Введите месяц]) AND ((Material.год) Like [Введите год])) OR ((([Введите год]) Is Null) AND (([Введите месяц]) Is Null));
Запрос Рекламные статьи
SELECT Material.заказ, Jurnalist.ФИО, Material.дата, Material.месяц, Material.год, Material.[№ газеты], Material.Наименование
FROM Podotdel INNER JOIN (Jurnalist INNER JOIN Material ON Jurnalist.Код = Material.[код журналиста<]) ON Podotdel.[Код подотдела<] = Jurnalist.[Код подотдела<]
WHERE (((Material.заказ)=Yes))
ORDER BY Material.заказ, Jurnalist.ФИО;
Запрос Рекламный материал журналиста
PARAMETERS ФИО Text ( 255 );
SELECT Jurnalist.ФИО, Material.заказ, Material.дата, Material.месяц, Material.год, Material.Наименование
FROM [Рекламные статьи], Podotdel INNER JOIN (Jurnalist INNER JOIN Material ON Jurnalist.Код = Material.[код журналиста]) ON Podotdel.[Код подотдела] = Jurnalist.[Код подотдела]
GROUP BY Jurnalist.ФИО, Material.заказ, Material.дата, Material.месяц, Material.год, Material.Наименование
HAVING (((Jurnalist.ФИО) Like [ФИО]) AND ((Material.заказ)=Yes)) OR ((([Рекламные статьи].ФИО) Is Null))
ORDER BY Jurnalist.ФИО;