Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Проектирование реляционной базы данныхСодержание книги
Поиск на нашем сайте Концептуальная модель данных состоит из ряда компонентов: сущностей, связей, атрибутов. При переходе к реляционной схеме базы данных каждый из этих компонентов должен быть проанализирован и, если это окажется необходимым, то даже и преобразован. Изменения, вносимые в процессе преобразования, должны быть такими, чтобы их результат полностью отвечал требованиям, выдвигаемым реляционной моделью данных. Таким образом, фаза логического проектирования предполагает следующие действия: преобразование концептуальной модели данных в логическую модель, в результате которого будет определена схема реляционной модели данных; проверка модели с помощью концепций последовательной нормализации; проверка поддержки целостности данных. Рассмотрим последовательно каждое действие. Преобразование сущностей и атрибутов Общий подход к преобразованию сущностей концептуальной модели ПрО в отношения реляционной базы данных состоит в следующем: построить набор предварительных отношений и указать первичные ключи для каждого отношения; подготовить список всех представляющих интерес атрибутов (тех из них, которые не были перечислены в диаграмме в качестве первичных ключей сущностей) и назначить каждый из этих атрибутов одному из предварительных отношений с тем условием, чтобы эти отношения находились в НФБК. На этом шаге для каждого отношения должны быть определены межатрибутные функциональные зависимости, с помощью которых проверяется соответствие отношений НФБК. Если полученные отношения в итоге не находятся в НФБК или если некоторым атрибутам не находится логически обоснованных мест в предварительных отношениях, то в этих случаях диаграммы необходимо пересмотреть. Преобразование бинарных связей Каждая сущность преобразуется в определенное отношение, а значит, связь между сущностями преобразуется в связь между отношениями. Напомним, что связи между отношениями в реляционной модели данных реализуются посредством механизма первичных и внешних ключей. Чтобы этот механизм действовал, необходимо в первую очередь определиться с тем, которое из двух отношений является родительским, акоторое — дочерним. Родительским считается такое отношение, которое передает копию набора значений своего первичного ключа другому отношению, где этот набор значений будет представлять внешний ключ. Последнее отношение в этом случае будет являться дочерним отношением. Как известно, эта связь может быть изображена с помощью диаграммы, которая содержит всю информацию, необходимую для генерации соответствующих отношений РБД. Сущности ПРЕПОДАВАТЕЛЬ и КУРС однозначно идентифицируются с помощью ТН — табельного номера преподавателя и НК — номера курса Предварительные отношения для бинарных связей типа 1:1 Предварительные отношения для бинарных связей с показателем кардинальности, равным 1: 1 (рис. 6.2) могут быть получены вследствие просмотра нескольких логических альтернатив и выбора из них наиболее подходящей. Пусть в проектируемой БД должна храниться следующая информация: ТН — номер преподавателя; Ф_И_О — фамилия, имя, отчество преподавателя; Тел_П — телефон преподавателя; НК — номер курса; Назв_К — название курса. Считая, что класс принадлежности является обязательным для обеих сущностей, получаем отношение: ПРЕПОДАВАТЕЛЬ (ТН, Ф_И_О, Тел_П, НК, Назв_К). Первичным ключом этого отношения может быть ключ любой из двух сущностей. Ситуация будет другая, если класс принадлежности одной из сущностей (ПРЕПОДАВАТЕЛЬ)— обязательный, второго (КУРС) — нет. В такой ситуации требуется построение двух отношений: по одному под каждую сущность. При этом ключ каждой сущности должен служить первичным ключом для соответствующего отношения. Сущность, для которой класс принадлежности является необязательным, преобразуется в родительское отношение, а сущность, участвующая в связи с обязательным классом принадлежности, преобразуется в дочернее отношение. Для связи полученных отношений ключ родительского отношения добавляется в качестве атрибута (внешнего ключа) в дочернее отношение. В результате получаем следующую реляционную схему: ПРЕПОДАВАТЕЛЬ (ТН, Ф_И_О, Тел_П, НК); КУРС (НК, Назв_К). Если класс принадлежности для обеих сущностей — необязательный, то лучшим решением является определение трех отношений — по одному для каждой сущности и одного для связи: ПРЕПОДАВАТЕЛЬ (ТН, Ф_И_O, Тел_П); КУРС (НК, Назв_К); ЧИТАЕТ (ТН, НК) Отношение ПРЕПОДАВАТЕЛЬ содержит сведения обо всех преподавателях, а отношение КУРС — обо всех курсах. Отношение для связи должно иметь среди своих атрибутов по одному ключу от каждой сущности. Предварительные отношения для бинарных связей типа 1: N Пусть в рассмотренной выше концептуальной модели существует бинарная связь типа 1: N (рис. 6.3). Для таких связей существует только два правила. Вариант определяется классом принадлежности N-связной сущности, класс принадлежности 1-связной сущности не влияет на конечный результат в обоих случаях. Первый вариант. ПРЕПОДАВАТЕЛЬ — класс принадлежности необязательный, КУРС — обязательный. Решение задачи становится возможным, если использовать два отношения, по одному на каждую сущность, при условии, что ключ каждой сущности служит в качестве первичного ключа для соответствующего отношения. В качестве родительского назначается отношение, соответствующее "единичной" стороне связи, а в качестве дочернего назначается отношение, представляющее "множественную" сторону связи. Для представления этой связи необходимо скопировать первичный ключ родительского отношения в дочернее отношение, где данный ключ должен быть описан как внешний. Окончательно в БД войдут два отношения: ПРЕПОДАВАТЕЛЬ (ТН, Ф_И_О, Тел_П); КУРС (НК, Назв_К, НП). Второй вариант. Класс принадлежности для обеих сущностей — необязательный. Решение — в формировании трех отношений: по одному на каждую сущность (причем ключ каждой сущности служит первичным ключом соответствующего отношения) и одного отношении для связи. Отношение для связи должно иметь среди своих атрибутов ключ каждой сущности: КУРС (НК, Назв_К); ПРЕПОДАВАТЕЛЬ (ТН, Ф_И_О, Тел_П); ЧИТАЕТ (ТН, НК) Преобразование связи типа "суперкласс/подкласс" Для каждой присутствующей в логической модели данных связи типа "супертип/подтип" сущность супертипа необходимо определить как родительскую, а сущность подтипа — как дочернюю. Существуют различные варианты представления подобных связей в виде одного или нескольких отношений. Выбор наиболее подходящего варианта зависит от ограничений участия и пересечения, наложенных на участников связи типа "суперкласс/подкласс". Если суперкласс с его подклассами имеет тотальные и непересекающиеся связи, где каждый экземпляр суперкласса обязательно должен быть членом одного и только одного подкласса, то самым целесообразным решением является представление каждого из подклассов в виде отдельного отношения, содержащего копию первичного ключа суперкласса. Рассмотрим подклассы АССИСТЕНТ, СТАРШИЙ ПРЕПОДАВАТЕЛЬ, ДОЦЕНТ, ПРОФЕССОР, которые являются членами суперкласса ПРЕПОДАВАТЕЛЬ (рис. 6.4). Это означает, что каждый экземпляр подкласса является в то же время и экземпляром суперкласса. Причем каждый преподаватель обязательно принадлежит одному и только одному подклассу. Подобная диаграмма преобразуется в следующую реляционную схему отношений: ПРЕПОДАВАТЕЛЬ (Табельный_номер. Ф_И_О, Адрес, Педагог_стаж). ПРОФЕССОР (Табельный_номер, Номер_Диплома_профессора); ДОЦЕНТ (Табельный_номер. Номер_диплома_доцента); СТАРШИЙ_ПРЕПОДАВАТЕЛЬ (Табельный_номер): АССИСТЕНТ (Табельный_номер). Предварительные отношения для бинарных связей типа М: N При такой степени связи требуется три отношения вне зависимости от класса принадлежности обеих сущностей: по одному для каждой сущности, причем ключ каждой сущности используется в качестве первичного ключа соответствующего отношения, и одного отношения для связи. Последнее должно иметь в числе своих атрибутов ключ каждой сущности. Единственно допустимый вариант в сложившейся ситуации — представить БД тремя отношениями: КУРС (НК, Назв_К); ПРЕПОДАВАТЕЛЬ (ТН, Ф_И_О, Тел_П); ЧИТАЕТ (ТН, НК). Вся информация о курсе будет содержаться в отношении КУРС, информация о преподавателе — в отношении ПРЕПОДАВАТЕЛЬ, а отношение ЧИТАЕТ будет содержать только экземпляры связи, имеющиеся в модели. Использование прямого преобразования концептуальных связей в логические структуры оказывается очень полезным при моделировании составных сущностей.
|
||
|
Последнее изменение этой страницы: 2016-07-16; просмотров: 348; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.102 (0.049 с.) |