Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БД.doc
Скачиваний:
94
Добавлен:
23.09.2019
Размер:
2 Мб
Скачать
☆

Средства создания модели

Создание ER-модели обычно сопровождается ее графическим представлением. Различные нотации ER-диаграмм поддерживается специальными средствами проектирования программных систем (CASE-средствами). В некоторых случаях подобные средства включаются в инструментальную среду создания баз данных (FoxPro, Access, Oracle и т.п.), иногда они существуют как отдельный продукт. Последний вариант интересен тем, что нет привязки к конкретной СУБД, то есть можно определять концептуальную модель, которая может быть отображена в логическую после того, как будет выбрана СУБД. Рассмотрим один из наиболее популярных средств такого рода – ERWin.

CASE-средство ERWin уже достаточно долго присутствует на рынке инструментальных средств, ориентированных на базы данных. Существует несколько версий этого продукта. ERWin позволяет создавать модели двух уровней: концептуального и логического. Правда называются они довольно своеобразно: концептуальный называется логическим, а логический – физическим. Представление диаграмм соответствует стандарту IDEF1X. Основные элементы модели следующие: сущности, атрибуты сущностей, домены, связи (четыре вида), индексы. Современные версии ERWin не допускают атрибуты связей. Среди атрибутов выделяются первичные ключи. Кроме первичных, можно отметить возможные (альтернативные) ключи, а также ключи поиска. Внешние ключи формируются автоматически при определении связей, причем, в качестве родительского ключа выбирается первичный.

Сильная сторона ERWin заключается в относительной простоте и удобстве работы с продуктом, что немаловажно в случае сжатых сроков разработки (а это случается постоянно). Разумеется, поддерживаются различные уровни документирования модели: описания сущностей, атрибутов, связей, диаграммы, модели в целом и т.п. Есть возможность получить пакет документации о модели с использованием внутреннего генератора отчетов.

После выбора СУБД появляется возможность привязки к типам данных, принятых в этой СУБД. В терминах ERWin, эта работа производится в физической модели. Можно уточнить типы данных, индексы, а также задать хранимые процедуры, обеспечивающие корректность базы данных. Заметим, что в этой модели несколько меняется терминология: сущности называются таблицами, а атрибуты – столбцами. И, наконец, завершающая работа – автоматическая генерация пустой базы данных по разработанной модели. Базу данных следует проверить, особенно индексы, заполнить тестовыми данными и протестировать. Обычно для создания работоспособной базы данных требуется несколько итераций, в ходе которых изменять следует исключительно модель, а не созданную базу данных.

Лекция 14 Функциональные зависимости

Последующие лекции будут посвящены более подробному изучению нормальных форм на базе работы Мейера [14]. В силу краткости курса приводится изложение лишь тех разделов, на которых основан алгоритм синтеза базы данных по множеству функциональных зависимостей. Практически все теоремы приводятся без доказательства. Совершенно не обсуждаются многозначные зависимости и соответствующие нормальные формы.

Теория нормальных форм базируется на понятии функциональных зависимостей (ФЗ). Общее представление о них дано в обзорной лекции по нормализации. Дадим более строгое их определение.

Определение. Пусть r – отношение со схемой R; X,Y R. Отношение r удовлетворяет функциональной зависимости X Y, если Y(X=x(R)) имеет не более, чем один кортеж для каждого X-значения x, то есть, для t1, t2 r : (t1(X)=t2(X)) (t1(Y)=t2(Y)).

Помимо обычных X и Y, рассмотрим варианты с пустыми подмножествами атрибутов. Будем считать, что X тривиально удовлетворяет любым отношениям, Y удовлетворяет тем отношениям, в которых Y-значения всех кортежей совпадают.

Пользуясь приведенным определением, для заданного отношения r и множеств атрибутов X,Y R можно построить алгоритм, проверяющий существование ФЗ XY. Такой алгоритм приведен в [14] (алгоритм SATISFIES). Суть его в том, что кортежи отношения группируются по X-значениям, при этом все Y-значения для одинаковых X-значений должны быть одинаковыми.

Алгоритм SATISFIES

Вход: отношение r, ФЗ XY.

Выход: истина, если r удовлетворяет XY, ложь в противном случае.

  1. Отсортировать r по X-столбцам, группируя равные значения.

  2. Если каждая группа X-кортежей имеет одинаковые Y-значения, возвратить истину, в противном случае – ложь.

Пример

Дан график распределения пилотов по рейсам. Проверим ФЗ РейсВремя и ВремяРейс.

Пилот

Рейс

Дата

Время

Иванов

83

09.01.2000

10:00

Иванов

16

10.01.2000

13:00

Петров

81

08.01.2000

05:00

Петров

31

12.01.2000

18:00

Петров

83

11.01.2000

10:00

Сидоров

83

13.01.2000

10:00

Сидоров

16

12.01.2000

13:00

Федоров

81

09.01.2000

05:00

Федоров

81

13.01.2000

05:00

Федоров

41

15.01.2000

13:00

Исходный график

Группировка по времени

Пилот

Рейс

Дата

Время

Петров

81

08.01.2000

05:00

Федоров

81

09.01.2000

05:00

Федоров

81

13.01.2000

05:00

Иванов

83

09.01.2000

10:00

Петров

83

11.01.2000

10:00

Сидоров

83

13.01.2000

10:00

Иванов

16

10.01.2000

13:00

Сидоров

16

12.01.2000

13:00

Федоров

41

15.01.2000

13:00

Петров

31

12.01.2000

18:00

Группировка по рейсу

Пилот

Рейс

Дата

Время

Иванов

83

09.01.2000

10:00

Петров

83

11.01.2000

10:00

Сидоров

83

13.01.2000

10:00

Петров

81

08.01.2000

05:00

Федоров

81

09.01.2000

05:00

Федоров

81

13.01.2000

05:00

Федоров

41

15.01.2000

13:00

Петров

31

12.01.2000

18:00

Иванов

16

10.01.2000

13:00

Сидоров

16

12.01.2000

13:00

Легко видеть, что в первом случае функциональная зависимость есть, во втором – нет.

Конец примера