Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
для курсача.doc
Скачиваний:
41
Добавлен:
07.12.2018
Размер:
515.07 Кб
Скачать

Даталогическое проектирование

В разделе «Даталогическая модель базы данных» должны быть представлены результаты разработки концептуальной даталогической модели базы данных, выполненной в среде ERwin. Следует обосновать или хотя бы объяснить выбор СУБД, а также привести СУБД-ориентированную ER-диаграмму (Physical Model ERwin [10]) (рис. 8).

Учебная база данных должна быть представлена в виде совокупности взаимосвязанных нормализованных (до нормальной формы Бойса-Кодда) таблиц. В разделе «Спецификации таблиц» должна быть представлена структура каждой таблицы (табл. 9). При построении сводных таблиц следует воспользоваться возможностями ERwin для формирования отчетов (по команде Tasks/Generate Reports).

Таблица 7

Ограничения ссылочной целостности для бинарных связей

Имя связи «отец-сын»

Имя связи «сын-отец»

Тип связи

Null внешнего ключа

Ограничения ссылочной целостности

Вставка в отцовской

Обновление в отцовской

Удаление в отцовской

Вставка в сыновьей

Обновление в сыновьей

Удаление в сыновьей

Получил на

Неиденти-фицирую-щая

Not Null

None

Не влияет

Restrict

Запретить

Restrict

Запретить

Restrict

Запретить

Restrict

Запретить

None

Не влияет

Пред-ставлена

Неиденти-фицирую-щая

Not Null

None

Не влияет

Restrict

Запретить

Restrict

Запретить

Restrict

Запретить

Restrict

Запретить

None

Не влияет

Руководит

Подчи-няется

Неиденти-фицирую-щая

Null

None

Не влияет

Set Null

Установить Null

Set Null

Установить Null

Set Null

Установить Null

Set Null

Установить Null

None

Не влияет

Выдал на

Неиденти-фицирую-щая

Not Null

None

Не влияет

Restrict

Запретить

Restrict

Запретить

Restrict

Запретить

Restrict

Запретить

None

Не влияет

Выдана на

Идентифи-цирующая

Not Null

None

Не влияет

Restrict

Запретить

Restrict

Запретить

Restrict

Запретить

Restrict

Запретить

None

Не влияет

Таблица 8

Ограничения ссылочной целостности для категориальных связей

Тип связи

Сущность-супертип

Имя сущности-подтипа

Ограничения ссылочной целостности

Вставка в отцовской

Обновление в отцовской

Удаление в отцовской

Вставка в сыновьей

Обновление в сыновьей

Удаление в сыновьей

Неполная

Абонент

Студент

None

Не влияет

Cascade

Каскадировать

Cascade

Каскадировать

Restrict

Запретить

Restrict

Запретить

None

Не влияет

Неполная

Абонент

Сотрудник

None

Не влияет

Cascade

Каскадировать

Cascade

Каскадировать

Restrict

Запретить

Restrict

Запретить

None

Не влияет

Рис. 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/Нет

NULL

Нет

Нет

В разделе «Спецификации связей между таблицами» должна быть представлена структура связей и огрничения ссылочной целостности при манипулировании строками таблиц (табл. 10 и 11).

В разделе «SQL – запросы» должны быть представлены «SQL-скрипты» запросов пользователей, сформулированных ранее на естественном языке.

  1. Представить список абонентов данной категории.

SELECT Абонент.*, Сотрудник.должность, Сотрудник.звание, Сотрудник.степень, Студент.специальность

FROM (Абонент LEFT JOIN Сотрудник ON Абонент.шифр = Сотрудник.шифр) LEFT JOIN Студент ON Абонент.шифр = Студент.шифр

WHERE Абонент.тип Like [введи тип абонента]&”*”;

  1. Представить все данные об абоненте, заданном его шифром.

SELECT Абонент.*, Сотрудник.должность, Сотрудник.звание, Сотрудник.степень, Студент.специальность

FROM (Абонент LEFT JOIN Сотрудник ON Абонент.шифр = Сотрудник.шифр) LEFT JOIN Студент ON Абонент.шифр = Студент.шифр

WHERE Абонент.шифр = [введи шифр абонента];

  1. Представить список экземпляров книг, имеющихся в наличии в хранилище, по фамилии автора и названию.

SELECT Хранимая книга.инв_номер, Хранимая книга.наличие, Зарегистрированная книга.*,

FROM Хранимая книга, Зарегистрированная книга

WHERE Хранимая книга.какой книги экземпляр = Зарегистрированная книга.номер AND Зарегистрированная книга.автор Like ”*”& [введи фамилию автора]&”*” AND Зарегистрированная книга.название Like ”*”& [введи название ниги]&”*” AND Хранимая книга.наличие;

  1. Представить список абонентов, имеющих на руках книги данного номинала (экземпляры одной и той же книги).

SELECT Абонент.*

FROM Зарегистрированная книга, Хранимая книга, Абонемент, Абонент

WHERE Зарегистрированная книга.номер = Хранимая книга.какой книги экземпляр AND Хранимая книга.инв_номер = Абонемент.что выдано AND Абонемент.кому выдано = Абонент.шифр AND Зарегистрированная книга.номер = [введите номер книги];

  1. Представить список книг, взятых и не возвращенных конкретным абонентом.

SELECT Хранимая книга.*

FROM Хранимая книга, Абонемент, Абонент

WHERE Хранимая книга.инв_номер = Абонемент.что выдано AND Абонемент.кому выдано = Абонент.шифр AND Абонент.шифр = [введите шифр абонента] AND СЕГОДНЯ() Between дата1 AND дата2;

Таблица 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

Не влияет