Даталогическое проектирование
В резделе «Даталогическая модель базы данных» должны быть представлены результаты разработки концептуальной даталогической модели базы данных, выполненной в среде ERwin. Следует обосновать или хотя бы объяснить выбор СУБД, а также привести СУБД-ориентированную ER-диаграмму (Physical Model ERwin [10] рис. 8).
Учебная база данных должна быть представлена в виде совокупности взаимосвязанных нормализованных (до нормальной формы Бойса-Кодда) таблиц. В разделе «Спецификации таблиц» должна быть представлена структура каждой таблицы (табл. 9). При построении сводных таблиц следует воспользоваться возможностями ERwin для формирования отчетов (по команде Tasks/Generate Reports).
Рис. 8 Пример СУБД (Access)-ориентированной модели предметной области "Библиотека"
Таблица 9
Структура реляционных таблиц
Имя таблицы | Имя столбца | Домен (тип) | Null - значение | Первичный ключ | Внешний ключ |
Абонемент | что выдано | Text(10) | NOT NULL | Да | Да |
дата1 | Date/Time | NOT NULL | Да | Нет | |
дата2 | Date/Time | NULL | Нет | Нет | |
кому выдано | Text(10) | NOT NULL | Нет | Да | |
кто выдал | Text(10) | NOT NULL | Нет | Да | |
Абонент | шифр | Text(10) | NOT NULL | Да | Нет |
фио | Text(20) | NOT NULL | Нет | Нет | |
телефон | Text(8) | NULL | Нет | Нет | |
тип | Text(10) | NULL | Нет | Нет | |
Зарегистрированная книга | номер | Text(10) | NOT NULL | Да | Нет |
автор | Text(30) | NULL | Нет | Нет | |
название | Text(50) | NULL | Нет | Нет | |
год издания | Integer | NULL | Нет | Нет | |
Персонал | код | Text(10) | NOT NULL | Да | Нет |
фио | Text(20) | NULL | Нет | Нет | |
должность | Text(16) | NULL | Нет | Нет | |
руководитель | Text(10) | NULL | Нет | Да | |
Сотрудник | шифр | Text(10) | NOT NULL | Да | Да |
должность | Text(16) | NULL | Нет | Нет | |
звание | Text(20) | NULL | Нет | Нет | |
степень | Text(8) | NULL | Нет | Нет | |
Студент | шифр | Text(10) | NOT NULL | Да | Да |
специальность | Text(6) | NULL | Нет | Нет | |
Хранимая книга | инв_номер | Text(10) | NOT NULL | Да | Нет |
какой книги экземпляр | Text(10) | NOT NULL | Нет | Да | |
наличие | Yes/No | NULL | Нет | Нет |
В разделе «Спецификации связей между таблицами» должна быть представлена структура связей и ограничения ссылочной целостности при манипулировании строками таблиц (табл. 10 и табл. 11).
Таблица 10
Структура связей между таблицами
Имя связи | Имя отцовской таблицы | Первичный ключ отцовской таблицы | Имя сыновьей таблицы | Первичный ключ сыновьей таблицы | Внешний ключ сыновьей таблицы | Null внешнего ключа сыновьей таблицы |
Получил на | Абонент | шифр | Абонемент | что выдано | кому выдано | NOT NULL |
дата1 | ||||||
Представлена | Зарегистрированная книга | номер | Хранимая книга | инв_номер | какой книги экземпляр | NOT NULL |
Руководит | Персонал | код | Персонал | код | руководитель | NULL |
Выдал на | код | Абонемент | что выдано | кто выдал | NOT NULL | |
дата1 | ||||||
Выдана на | Хранимая книга | инв_номер | что выдано | что выдано | NOT NULL | |
дата1 |
Таблица 11
Ограничения ссылочной целостности
Имя связи | Имя отцовской таблицы | Имя сыновьей таблицы | Ограничения ссылочной целостности | |||||
Вставка в отцовской | Обновление в отцовской | Удаление в отцовской | Вставка в сыновьей | Обновление в сыновьей | Удаление в сыновьей | |||
Получил на | Абонент | Абонемент | None Не влияет | Restrict Запретить | Restrict Запретить | Restrict Запретить | Restrict Запретить | None Не влияет |
Представлена | Зарегистрированная книга | Хранимая книга | None Не влияет | Restrict Запретить | Restrict Запретить | Restrict Запретить | Restrict Запретить | None Не влияет |
Руководит | Персонал | Персонал | None Не влияет | Set Null Установить Null | Set Null Установить Null | Set Null Установить Null | Set Null Установить Null | None Не влияет |
Выдал на | Персонал | Абонемент | None Не влияет | Restrict Запретить | Restrict Запретить | Restrict Запретить | Restrict Запретить | None Не влияет |
Выдана на | Хранимая книга | Абонемент | None Не влияет | Restrict Запретить | Restrict Запретить | Restrict Запретить | Restrict Запретить | None Не влияет |
В разделе «SQL – запросы» должны быть представлены «SQL-скрипты» запросов пользователей, сформулированных ранее на естественном языке.
1. 1. Представить список абонентов данной категории.
SELECT Абонент.*, Сотрудник.должность, Сотрудник.звание, Сотрудник.степень,
Студент.специальность
FROM (Абонент LEFT JOIN Сотрудник ON Абонент.шифр = Сотрудник.шифр)
LEFT JOIN Студент ON Абонент.шифр = Студент.шифр
WHERE Абонент.тип Like [введи тип абонента]&”*”;
2. 2. Представить все данные об абоненте, заданном его шифром.
SELECT Абонент.*, Сотрудник.должность, Сотрудник.звание, Сотрудник.степень,
Студент.специальность
FROM (Абонент LEFT JOIN Сотрудник ON Абонент.шифр = Сотрудник.шифр)
LEFT JOIN Студент ON Абонент.шифр = Студент.шифр
WHERE Абонент.шифр = [введи шифр абонента];
3. 3. Представить список экземпляров книг, имеющихся в наличии в хранилище, по фамилии автора и названию.
SELECT Хранимая книга.инв_номер, Хранимая книга.наличие, Зарегистрированная книга.*
FROM Хранимая книга, Зарегистрированная книга
WHERE Хранимая книга.какой книги экземпляр = Зарегистрированная книга.номер
AND Зарегистрированная книга.автор Like ”*”&[введи фамилию автора]&”*”
AND Зарегистрированная книга.название Like ”*”& [введи название книги]&”*”
AND Хранимая книга.наличие;
4. 4. Представить список абонентов, имеющих на руках книги данного номинала (экземпляры одной и той же книги).
SELECT Абонент.*
FROM Зарегистрированная книга, Хранимая книга, Абонемент, Абонент
WHERE Зарегистрированная книга.номер = Хранимая книга.какой книги экземпляр
AND Хранимая книга.инв_номер = Абонемент.что выдано
AND Абонемент.кому выдано = Абонент.шифр
AND Зарегистрированная книга.номер = [введите номер книги];
5. 5. Представить список книг, взятых и не возвращенных конкретным абонентом.
SELECT Хранимая книга.*
FROM Хранимая книга, Абонемент, Абонент
WHERE Хранимая книга.инв_номер = Абонемент.что выдано
AND Абонемент.кому выдано = Абонент.шифр
AND Абонент.шифр = [введите шифр абонента]
AND СЕГОДНЯ() Between дата1 AND дата2;
В разделе «Схема данных» должно быть приведено изображение схемы базы данных, как на рис.9.
В разделе «Интерфейс конечного пользователя» должны быть приведены в виде рисунков пользовательские меню, примеры экранных форм, примеры печатных документов. Здесь же должны быть указаны средства прикладного программирования: среда разработки прикладных программ (Delphi, Builder C++, VBA и т.д.), использовался ли интерфейс ODBC (или другой) прикладных программ с базой данных и т.д. В качестве примера рекомендуется привести тексты оригинальных исходных модулей.
В разделе «Инструкция для пользователя» должно быть приведено словесное описание действий, соответствующих основным алгоритмам работы с базой данных: алгоритмами наполнения и редактирования базы данных, а также выполнения содержательных запросов.
Работа информационной системы демонстрируется на компьютере на контрольных примерах при защите курсовой работы.
Выводы
Заключение пояснительной записки должно содержать:
· · краткие выводы о результатах выполненной работы;
· · оценку технико-экономической эффективности или научной полезности результатов работы;
· · общие итоговые технико-экономические данные о результатах работы;
· · предложения по использованию результатов работы.