Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технология проектирования и администрирования баз данных и систем данных-Конспект

.pdf
Скачиваний:
57
Добавлен:
20.03.2016
Размер:
4.52 Mб
Скачать

разу не подвергался операции в данном госпитале и который не приписан ни к одному хирургу. Информация вводится в отношение, показанное на табл. 5.4.

Включение (тип 2). Вводя новый кортеж в отношение, показанное на табл. 5.5, можно запомнить сведения о новом хирурге, еще не выполнившем ни одной операции в данном госпитале.

Удаление (тип 1). После смерти Чарльза Брауна могут быть удалены соответствующие кортежи из отношений, представленных на табл. 5.4 и 5.5. Информация о хирурге Дэвиде Розене по-прежнему хранится в отношении, показанном в табл. 5.5.

Обновление. Если Джон Уайт поступает в госпиталь в третий раз и его адрес в промежутке между вторым и третьим поступлениями изменился, то сведения о его адресе будут изменены только в отношении, показанном на табл. 5.4. Изменения не затронут отношение, показанное на табл. 5.5. Однако еще не все аномалии устранены.

Аномалия включения. До тех пор, пока конкретный препарат не назначен какому-либо пациенту, сведения о побочном эффекте, вызываемом его применением, ввести невозможно. Так, нельзя ввести новый кортеж в отношение на табл. 5.6 до тех пор, пока пациента не прооперируют и не назначат ему препарат.

Аномалия удаления. По-прежнему имеется аномалия удаления, связанная с функциональной зависимостью одного неключевого атрибута отношения от другого. Если в результате инъекций пенициллина у Джона Уайта возникла серьезная сыпь, и после этого ему был назначен другой препарат, то при изменении атрибутов «Препарат, назначенный после операции» и «Побочный эффект» сведения о том, что применение пенициллина вызывает сыпь, будут потеряны. Поскольку рассматриваемый кортеж является единственным источником такой информации, потеря ее нежелательна.

Аномалия обновления. Побочный эффект от применения препарата появляется в отношении, показанном на табл. 5.6, в нескольких кортежах. Если изготовитель конкретного препарата изменит его формулу, то изменится и побочный эффект При этом возникает альтернатива: либо полностью просматривать отношение, показанное на табл. 5.6 и изменять значение атрибута «Побочный эффект» всякий раз, когда назначается данный препарат, либо идти на нарушение непротиворечивости данных, когда в некоторых кортежах побочный эффект будет изменен, а в некоторых – нет (это – чисто иллюстративный пример). Аномалии включения, удаления и обновления связаны в этом случае с тем, что неключевой атрибут «Побочный эффект» зависит от другого неключевого атрибута – «Препарат, назначенный после операции». Зависимость такого рода называется транзитивной (рис 5.5).

Рис. 5.5

Указанные проблемы удается разрешить, если разбить отношение, показанное на рис. 5.6, на два отношения (табл. 5.7 и 5.8).

Таблица 5.7 ПЕРВОЕ ОТНОШЕНИЕ

Номер пациента

Номер

патента

Дата операции

Операция

Препарат,

 

хирурга

 

 

 

назначенный после

 

 

 

 

 

операции

 

 

 

 

 

 

 

Таблица 5.8 ВТОРОЕ ОТНОШЕНИЕ

Препарат,

Побочный эффект

назначенный после

 

операции

 

 

 

Необходимо отметить, что приведение отношений, находящихся во второй нормальной форме, к третьей нормальной форме происходит точно так же, как переход от первой нормальной формы ко второй, только в первом случае рассматриваются неключевые атрибуты. При приведении отношений в первой нормальной форме ко второй нормальной форме исследуются зависимости неключевых атрибутов от ключевых. Если же отношение во второй нормальной форме приводится к третьей нормальной форме, рассматриваются взаимосвязи между неключевыми атрибутами.

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

В результате разделения отношения, представленного на табл. 5.6, на два новых отношения, удается устранить аномалии.

Включение. Теперь можно ввести сведения о конкретном препарате и побочном эффекте, который вызывает его применение, вне зависимости от

того, был ли назначен данный препарат пациенту.

Удаление. Если Джону Уайту после появления сыпи в результате инъекций пенициллина назначается другой препарат, то факт, что применение пенициллина вызывает появление сыпи, может быть отражен в отношении, показанном на табл. 5.8.

Обновление. Побочный эффект от применения препарата запоминается в отношении, приведенном на табл. 5.8, только один раз.

Важно отметить, что преобразование отношения, находящегося в первой нормальной форме, в ряд отношений, находящихся в третьей нормальной форме, не приводит к потере информации. Другими словами, вся информация, которая может быть получена из исходного отношения (табл. 5.3), может быть получена и из отношений, которые показаны на табл. 5.4, 5.5 и 5.7, 5.8. Кроме того, необходимо указать, что процесс нормализации отношений базируется на анализе взаимосвязей между типами атрибутов и никак не связан с возможными значениями их экземпляров.

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

Рис. 5.6

В результате нормализации мы получили четыре отношения, находящиеся в третьей нормальной форме. Они представляют именно те объекты и их взаимосвязи, которые соответствуют нашему представлению о рассматриваемой предметной области: ПАЦИЕНТ, ХИРУРГ, ОПЕРАЦИЯ и ПРЕПАРАТ. Эти отношения и составляют концептуальную модель предметной области.

5.3. Графическое представление

Каждый студент университета слушает несколько курсов. В свою очередь каждый курс лекций посещает ряд студентов. Сведений только о курсах и студентах явно недостаточно, поскольку неясно, какая оценка получена конкретным студентом по данному курсу. С другой стороны, сведений только о курсах и об оценках также недостаточно. Необходимо знать, какие оценки получены каждым из студентов по каждому прослушанному им курсу (рис.

5.7).

Рис. 5.7

Взаимосвязи между СТУДЕНТОМ, КУРСОМ и ОЦЕНКОЙ. Данный студент может изучать несколько курсов. Данный курс могут изучать несколько студентов. Оценка показывает степень усвоения курса студентом.

На рис. 5.8 представлена концептуальная модель предметной области, взаимосвязи между объектами которой изображены на рис. 5.7 и могут интерпретироваться следующим образом: каждый студент может посещать несколько курсов;

по каждому курсу могут заниматься несколько студентов;

каждая конкретная оценка может и должна быть выставлена только одному студенту и только по одному курсу;

двойная стрелка, связывающая студентов и оценки, отражает тот факт, что студент может иметь нуль, одну или несколько оценок в зависимости от числа курсов, которые он прослушал. Двойная стрелка обозначает взаимосвязь типа «ко многим». Мы воспользуемся здесь схематическим представлением концептуальной модели. Рассмотрим, как выявляются объекты, взаимосвязи между элементами данных, отражающими свойства объектов и взаимосвязи между самими объектами.

Рис. 5.8

Концептуальные требования основаны на следующих предположениях:

1.Студенту соответствует один идентификационный номер.

2.Идентификационный номер студента однозначно определяет его имя и статус, главный и второстепенный предметы и куратора.

3.Курс с одним и тем же номером может быть прочитан в течение различных семестров и в различных университетских городках. При чтении курса его название может меняться. Преподаватели, ведущие курс, от семестра к семестру могут меняться. Точно так же могут меняться университетский городок, аудитория и период, в течение которого читается данный курс.

4.В данный семестр определенный курс читает конкретный преподаватель. Занятия проводятся в конкретных университетском городке и аудитории. Зафиксирована также продолжительность курса и число зачетов, которые будут приняты по этому курсу.

5.Студент вправе определить, сколько он собирается сдавать зачетов по

данному курсу в данном семестре. Слушатели, т. е. студенты, не сдающие экзамены по данному курсу, сдают по нему и меньше зачетов.

Все эти предположения должны быть отражены в нашей концептуальной модели.

Эти отношения после нормализации могут быть представлены следующим образом:

1.СЕМЕСТР – ДНАЧСЕМ, ДКОНСЕМ.

2.НОМ-СТУДЕНТА – ИМЯ-СТУДЕНТА, СТАТУС, ГЛАВНЫЙ, ВТОРОСТЕПЕННЫЙ, КУРАТОР.

3.СЕМЕСТР*НОМ-КУРСА – НАЗВ-КУРСА, ИМЯ-ПРЕП, ГОРОДОК, ДЕНЬ-ВРЕМЯ, ЗДАНИЕ-НОМ-АУДИТОРИИ.

4.СЕМЕСТР*НОМ-КУРСА*НОМ-СТУДЕНТА – ЗАЧЕТЫ.

Тогда имеем следующее:

1.Каждое отношение, первичный ключ которого содержит один элемент данных, представляет объект. Отношения 1 и 2 представляют объекты СЕМЕСТР и СТУДЕНТ. Объекты .такого типа размещаются на первом уровне (рис. 5.9). Внутри прямоугольников перечисляются имена элементов данных. Первичные ключи объектов подчеркиваются. Если прямоугольник не содержит всех элементов данных, представляющих свойства объекта, то пропуски обозначаются тремя дефисами (---).

2.Отношения, в первичные ключи которых входят два элемента,

являющиеся первичными ключами отношений, представляют взаимосвязи между этими объектами. Если же один из ключевых элементов не является ключом одного из отношений, то генерируется новое отношение, представляющее объект. Например, составной ключ отношения 3 представляет взаимосвязь между объектами СЕМЕСТР и КУРС. Элемент НОМ-КУРСА не является первичным ключом ни одного из отношений. Образуется новое отношение КУРС, представляющее соответствующий объект; оно изображается прямоугольником на уровне 1. Взаимосвязь между двумя объектами выражается с помощью объекта СЕМЕСТР+КУРС, изображаемого прямоугольником, находящимся на втором уровне. Вновь образованный объект выделяется пунктирной линией.

Одинарная и двойная стрелки, соединяющие объекты, представленные отношениями 1 и 3, и объект КУРС, выделенный пунктиром, отражают тот факт, что в течение семестра читается несколько курсов и что курс может читаться в течение нескольких семестров.

3. Процедура, выполненная для второго уровня, выполняется на третьем уровне, где имеются отношения, ключ которых состоит из трех элементов данных, и т. д.

Полученная в результате диаграмма для отношений 1, 2, 3 и 4 приведена на рис. 5.9, что и будет являться графическим представлением концептуальной модели данных.

Рис. 5.9

Разработав концептуальную модель, АБД может приступить к созданию логической модели (реляционной, иерархической или сетевой).

6. ПРОЕКТИРОВАНИЕ ЛОГИЧЕСКОЙ МОДЕЛИ ДАННЫХ

При разработке логической модели базы данных прежде всего необходимо решить, какая модель данных наиболее подходит для отображения конкретной концептуальной модели предметной области [4]. Системы управления базами данных поддерживают одну из известных моделей данных или некоторую их комбинацию. Известны три наиболее распространенных модели данных: реляционная, иерархическая и сетевая. Они были детально рассмотрены ранее.

Пусть используется рассматриваемая выше концептуальная модель, приведенная на рис. 5.9.

6.1. Отображение на реляционную модель данных

Реляционная модель данных состоит из ряда отношений (таблиц). При отображении концептуальной модели, приведенной на рис. 5.9, на логическую модель необходимо определить отношения и их атрибуты. Отдельные атрибуты этих отношений являются их первичными ключами.

Каждый прямоугольник на рис. 5.9 представляет отношение и содержит присущие ему атрибуты. Всего здесь показано пять отношений: СТУДЕНТ, КУРС, СЕМЕСТР, СЕМЕСТР+КУРС и СЕМЕСТР+КУРС+СТУДЕНТ.

На табл. 6.1, 6.2, 6.3, 6.4, 6.5 показаны соответствующие отношения и значения их атрибутов.

 

 

 

 

 

Таблица 6.1

 

 

 

СТУДЕНТ

 

 

НОМ-СТУДЕНТА

ИМЯ-СТУДЕНТА

СТАТУС

ГЛАВНЫЙ

ВТОРОСТЕПЕННЫЙ

КУРАТОР

 

 

 

 

 

 

123456789

Дж. Ф. СМИТ

СТУДЕНТ

ВЫЧ ТЕХНИКА

ГИМНАСТИКА

ДЖ. А. КОР РИГАН

 

 

 

 

 

 

897654321

Ф. X. ФРЭН

АСПИРАНТ

ЭЛЕКТРОТЕХНИКА

ФИЗИКА

Д. Ф. СЛАТТЕР

 

 

 

 

 

 

967831201

ДЖ. Ф. БАНДИ

АСПИРАНТ

БИОХИМИЯ

РАДИОЛОГИЯ

А. С. ГОЛДСТАЙН

 

 

 

 

 

 

Таблица 6.2 КУРС

НОМ-КУРСА

ВТ601 ВТ603 ВТ605 ВТ618 ВТ623 ЭТ101 ОФ500

Таблица 6.3

 

 

СЕМЕСТР

 

СЕМЕСТР

ДНАЧСЕМ

ДКСЕМ

 

 

 

 

 

ВЕСЕННИЙ 1998

12

января 1998

29 апреля 1998

 

 

 

 

 

ЛЕТНИЙ 1998

11

мая 1998

16

августа 1998

ОСЕННИЙ 1998

9 сентября 1998

21

декабря 1998

ВЕСЕННИЙ 1999

10

января 1999

30

апреля 1999

ЛЕТНИЙ 1999

12

мая 1999

15

августа 1999

 

 

 

 

 

ОСЕННИЙ 1999

10

сентября 1999

20

декабря 1999

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 6.4

 

 

СЕМЕСТР+КУРС

 

 

СЕМЕСТР

НОМ-КУРСА

НАЗВ-КУРСА

 

ИМЯ-ПРЕП

ГОРОДОК

ДЕНЬ-ВРЕМЯ

ЗДАНИЕ-НОМ-

 

 

 

 

 

 

 

АУДИТОРИИ -

 

 

 

 

 

 

 

 

ЛЕТНИЙ 1999

ВТ608

КОМПИЛЯТОРЫ

 

А. Б. АДАМС

БРУКЛИН

ЧЕТВ 8—10

ГЛАВН. 601

 

 

 

 

 

 

 

 

ЛЕТНИЙ 1999

ВТ623

ПЕРЕКЛЮЧАТЕЛИ

 

ДЖ. -Н. ДОЛМ

УАЙТ

ВТОРН 6—8

АССТ389

 

 

И ДЕСЯТИЧНЫЕ

 

 

ПЛЕЙНС

 

 

 

 

СИСТЕМЫ

 

 

 

 

 

 

 

 

 

 

 

 

 

ЛЕТНИЙ 1999

ОФ500

ПОЛЯ И ВОЛНЫ

 

А. Т. ФРИДМАН

БРУКЛИН

ПОН 8—10

АЛ302

 

 

 

 

 

 

 

 

ОСЕННИЙ 1999

ВТ601

ВВЕДЕНИЕ В

ВЫЧ.

А. Б. АДАМС

УАЙТ

СР 6—8

АЛ201

 

 

ТЕХНИКУ

 

 

ПЛЕЙНС

 

 

 

 

 

 

 

 

 

 

ОСЕННИЙ 1999

ВТ605

АЛГОРИТМЫ

И

ДЖ. С. ФИНКС

БРУКЛИН

ЧЕТВ 8—10

ГЛАВН. 605

 

 

СТРУКТУРЫ ДАННЫХ

 

 

 

 

 

 

 

 

 

 

 

 

ОСЕННИЙ 1979

ВТ623

ПЕРЕКЛЮЧАТЕЛИ

И

А. М. ДЖОНС

ЛОНГ

ВТОРН 6—8

ГЛАВН. 238

 

 

ДЕСЯТИЧНЫЕ

СИС-

 

АЙЛЕНД

 

 

 

 

ТЕМЫ

 

 

 

 

 

 

 

 

 

 

 

 

 

ОСЕННИЙ 1979

ОФ500

ПОЛЯ И ВОЛНЫ

 

А. Б. АДАМС

БРУКЛИН

ЧЕТВ 20—22

АССТ389

 

 

 

 

 

 

 

 

Таблица 6.5 СЕМЕСТР+КУРС+СТУДЕНТ

СЕМЕСТР

НОМ-КУРСА

НОМ-СГУДЕНТА

ЗАЧЕТЫ

 

 

 

 

ЛЕТО 1979

ВТ608

967831201

4

 

 

 

 

ЛЕТО 1979

ВТ608

897645123

2

 

 

 

 

ЛЕТО 1979

ВТ62Э

967831201

3

 

 

 

 

ЛЕТО 1979

ОФ500

967831201

4

 

 

 

 

ОСЕНЬ 1979

ВТ601

123456789

3

 

 

 

 

ОСЕНЬ 1979

ВТ601

897645123

2

 

 

 

 

ОСЕНЬ 1979

ВТ605

123456789

2

 

 

 

 

ОСЕНЬ 1979

ВТ623

967831201

3

 

 

 

 

ОСЕНЬ 1979 •

ОФ500

897645123

3

Представление пользователя о таблице СТУДЕНТ иллюстрируется табл. 6.1. Атрибутами этого отношения являются НОМ-СТУДЕНТА, ИМЯСТУДЕНТА, СТАТУС, ГЛАВНЫЙ, ВТОРОСТЕПЕННЫЙ и КУРАТОР.

Первичным ключом отношения является НОМ-СТУДЕНТА. Значения первичного ключа уникальны, т. е. не существует двух кортежей (строк) с одинаковыми номерами студента.

Отношение КУРС на табл. 6.2 содержит только один атрибут НОМ-КУРСА (номер курса), являющийся ключевым. В эту таблицу включены номера всех курсов, которые преподаются в университете. Номера курсов уникальны.

Отношение СЕМЕСТР на табл. 6.3 состоит из следующих атрибутов: СЕМЕСТР (номер семестра), ДНАЧСЕМ (дата начала семестра) и ДКОНСЕМ (дата окончания семестра). Первичным ключом этого отношения служит номер семестра. Значение номера семестра однозначно определяет дату начала и окончания семестра, например, осенний семестр 1979 г. начинается 10 сентября 1999 г. и заканчивается 22 декабря 1999 г.

Отношение СЕМЕСТР+КУРС (табл. 6.4) связывает отношения СЕМЕСТР и КУРС. Ключевые атрибуты этого отношения — СЕМЕСТР и НОМ-КУРСА. Отношение содержит следующие неключевые атрибуты: НАЗВ-КУРСА, ИМЯПРЕП, ГОРОДОК, ДЕНЬ-ВРЕМЯ и ЗДАНИЕ-НОМ-АУДИТОРИИ. Ключ отношения является составным, так как состоит более чем из одного атрибута. Для данного семестра и данного номера курса существует только по одному значению атрибутов НАЗВ-КУРСА, ИМЯ-ПРЕП, ГОРОДОК, ДЕНЬ-ВРЕМЯ и ЗДАНИЕ-НОМ-АУДИТОРИИ. Эта таблица отражает представление пользователя обо всех курсах, преподаваемых в течение данного семестра и обо всех семестрах, в течение которых преподается данный курс. Например, в осеннем семестре 1999 г. преподаются курсы ВТ601, ВТ605, ВТ623 и ОФ500, при этом курс ВТ623 преподается в течение летнего и осеннего семестров 1999 г. Сочетание значений НОМ-КУРС и СЕМЕСТР однозначно определяет значения неключевых атрибутов.

Наконец, с помощью отношения СЕМЕСТР + КУРС + СТУДЕНТ (табл. 6.5) устанавливается связь между отношениями СЕМЕСТР, КУРС и СТУДЕНТ. Первичный ключ отношения составлен из атрибутов СЕМЕСТР, НОМ-КУРСА и НОМ-СТУДЕНТА. Неключевой атрибут один – ЗАЧЕТЫ. В течение одного семестра преподается несколько курсов. Каждый курс изучает несколько студентов. С другой стороны, в течение данного семестра каждый студент может изучать несколько курсов. Эта таблица позволяет реализовать взаимосвязь «многие ко многим» между семестрами, курсами и студентами.

Пять отношений, приведенных на табл. 6.1, 6.2, 6.3, 6.4, 6.5, отражают пользовательские представления о логической модели базы данных. Эта логическая модель выведена из концептуальной модели, показанной на рис. 5.9. Ряд представлений пользователя характеризуется наличием избыточных ключевых атрибутов. Например, атрибут НОМ-КУРСА встречается в трех из пяти отношений. При их физической реализации избыточность может быть устранена.

Таким образом, отображение концептуальной модели данных на реляционную проводится относительно просто. Каждый прямоугольник концептуальной модели отображается в одно отношение, которое отражает представление пользователя в удобном для него табличном формате. Простота

отображения связана с тем, что при разработке концептуальной модели использовался реляционный подход.

6.2. Отображение на иерархическую модель данных

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

1.Вывод обобщенной иерархической модели, в которой не учитываются ограничения, накладываемые используемой СУБД.

2.Трансформация полученной модели с учетом, ограничений, накладываемых конкретной СУБД.

3.Модификация трансформированной модели с учетом «очевидных» соображений, влияющих на производительность.

4. . Упрощение имен ключей.

5. . Реализация взаимосвязей, не отображенных в логической модели, но на самом деле существующих.

1.1.Устранение транзитивности.

В концептуальной модели имеется транзитивная зависимость, если удаление взаимосвязи между А и С не приводит к потере информации (рис. 6.3). Отношение между А и С может быть выведено из отношений между А и В и между В и С.

Рис. 6.1

После удаления взаимосвязи между А и С можно видоизменить рис. 6.1 так, как это показано на рис. 6.2.