- •Проектирование баз данных. Лекция 1. Введение. Банки и базы данных. Архитектура субд.
- •Хранимая база данных (Внутренняя модель)
- •Понятие проектирования баз данных. Различные подходы к проектированию бд.
- •Различные подходы к проектированию данных.
- •Сетевая модель данных.
- •Лекция 2.
- •Реляционные операции над отношениями.
- •Лекция 3. Аномалии хранения данных.
- •Функциональная зависимость.
- •Концептуальное проектирование данных. Нормализация. Понятие функциональной зависимости. Теорема Хита.
- •Теорема Хита.
- •Лекция 4. Пятая нф. Универсальное отношение. I и II нф.
- •Первая нормальная форма.
- •Вторая нормальная форма.
- •Третья нормальная форма. Транзитивные зависимости.
- •Лекция 5. Нормальная форма Бойса-Кодда. Четвертая нормальная форма. «Перенормализованные» модели данных.
- •Четвертая нормальная форма.
- •«Перенормализованные» модели данных.
- •Пример проектирования бд.
- •Отношение “Аптека”
- •Отношение “Лекарство”
- •Отношение “Наличие лекарств”
- •Отношение “Поставщик”
- •Отношение “Лицензия поставщика”
- •Отношение “Запрос на поставку”
- •Лекция 6. Проектирование в терминах «Сущность – связь»
- •Сущности и связи.
- •Классификация связей
- •Предварительные отношения для бинарных связей степени 1:1.
- •Лекция 7. Предварительные отношения для степени связи 1:n и m:n.
- •Предварительные отношения для степени связи m:n.
- •Лекция 14. Предварительные отношения для связей высших порядков. Использование ролевых отношений.
- •Студент
- •Использование ролевых отношений.
- •Рабочий
- •Подчиненный
- •Лекция 8. Развитой пример применения e-r проектирования.
- •Сопоставление методик нормализации и e-r проектирования. Физическое проектирование.
- •Физическое проектирование.
- •Ограничения целостности.
- •Заключение.
Начальник
Подчиненный
Рис. 33. Использование ролей в E-R модели.
Лучшее решение данной проблемы достигается, если рассмотреть всю проблему с иной точки зрения. Рассмотрим всех мастеров и рабочих (а заодно и начальников цехов, главных специалистов, директоров и другие уровни подчиненности, буде таковые существуют в данной организации) как служащих организации. Тогда должности и подчиненность – это роли, которые может играть данный служащий, более того – при такой постановке задачи один служащий может играть несколько ролей одновременно (например, рабочий, подчиненный мастеру может быть капитаном баскетбольной команды, в которую входит тот же мастер и т.д.). Графическая интерпретация представлена на рис 33 .
На приведенной E-R диаграмме Служащий представляет собой сущность с ключом «Табельный номер». Два ролевых набора – Начальник и Подчиненный, связанные с сущностью Служащий по этому ключу, описывают иерархические отношения в рамках организации. Характерно, что в этой модели данных нет ограничений на количество вхождений экземпляров сущности Служащий в ролевые наборы, следовательно, нет ограничений как на количество уровней иерархии, так и на количество наборов самих иерархий.
Отношение, полученное из исходной сущности (Служащий), содержит информацию, общую для всех служащих. Отношения, полученные из ролей, содержат специфичную для данных ролей информацию. Каждое порождаемое ролью отношение связано с источником порождения через атрибут, определенный на общем домене («Табельный номер»). Стоит обратить внимание, что связь Руководит соединяет две роли одной сущности. Такой тип связи называют рекурсивным. Эта связь рекурсивна в том смысле, что с точки зрения исходной сущности служащие руководят служащими.
Подведем итог :
Исходная сущность служит источником генерации одного отношения, причем ключ сущности является первичным ключом отношения. Ролевые элементы и их связи порождают число отношений, которое определяется количеством ролей, причем каждая роль трактуется как отдельная сущность.
Приведем еще один пример, связанный с использованием ролевых отношений. Рассмотрим проблему комплектации сборочных единиц, которая часто встречается при решении задач, связанных с организацией производства. Пусть в рассмотрение попадает набор деталей, имеющихся на предприятии. Некоторые детали, соединенные между собой, образуют сборочные единицы8, которые, будучи соединены между собой, а также с некоторыми из деталей, образуют сборочные единицы следующего уровня, и т.д., вплоть до сборки готовых изделий. Предполагается, что таких изделий может быть несколько, и количество сборочных единиц, а также уровней сборки в каждом из них различно.
В данном случае имеется одна исходная сущность, назовем ее Номенклатурный перечень, включающая в себя как перечень деталей, так и сборочных единиц и готовых изделий. Каждый экземпляр этой сущности может выступать лишь в одной роли – как компонент сборочной единицы следующего уровня. Здесь ролевая связь будет связывать не две роли, а роль с исходной сущностью.
Номенклатурный
перечень
Рис. 34 . Е-R диаграмма для задачи о комплектации изделий.
Ролевое отношение Деталь/Сборочная единица должно иметь два ключевых поля. Первичный ключ – код данной детали по номенклатурному перечню и ключ связи, показывающий, в какую именно сборочную единицу входит данная деталь либо сборочная единица. Построение запросов здесь не так очевидно, как в ранее рассмотренных случаях и может потребовать применения нетиповых рекурсивных процедур, но зато такая модель данных свободна от внутренних противоречий.
