Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Начинаем изучать MySQL
<<-[Весь Текст]
Страница: из 157
 <<-
 
ошибку при первоначальном вводе фамилии? При каждом из этих событий нарушается 
третье правило для идентификаторов. Еще хуже то, что фамилия окажется не 
уникальной. Если вы не можете стопроцентно гарантировать, что атрибут Name 
уникален, вы нарушаете первое правило для идентификаторов. Наконец, вы считаете,
 что у каждого экземпляра Person фамилия отлична от NULL. Но вы уверены, что 
всякий раз, вводя первоначальные данные в базу, будете знать фамилию? Ваш 
процесс может быть организован так, что при начальном создании записи фамилия 
может быть неизвестна. Из этого следует извлечь тот урок, что при выборе 
неидентифицирующего атрибута в качестве идентификатора возникает много проблем.
Выход в том, чтобы изобрести идентифицирующий атрибут, не имеющий никакого 
иного смысла, кроме как служить идентифицирующим атрибутом. Поскольку этот 
атрибут искусственный и никак не связан с сущностью, мы имеем над ним полный 
контроль и можем обеспечить его соответствие правилам для уникальных 
идентификаторов. На рис. 2-4 к каждой из наших сущностей добавлен искусственный 
ID. На диаграмме уникальный идентификатор изображается как подчеркнутый атрибут.


Рис. 2-4. Сущности CD и Song со своими уникальными идентификаторами
Связи
Идентификаторы наших сущностей позволяют моделировать их связи. Связь описывает 
бинарное отношение между двумя сущностями. Связь может существовать также 
внутри одной сущности. Такая связь называется рекурсивной. Каждая сущность, 
участвующая в связи, описывает-другую и описывается ею. Каждая сторона связи 
имеет две составляющих - имя и степень.
У каждой стороны связи есть имя, описывающее связь. Возьмем две гипотетические 
сущности — Служащий и Отдел. Один вариант связи между ними состоит в том, что 
Служащий «приписан» к Отделу. Этот Отдел «отвечает» за Служащего. Таким образом,
 связь со стороны Служащий называется «приписан», а со стороны Отдел - 
«отвечает».
Степень, называемая также кардинальным числом, показывает, сколько экземпляров 
описывающей сущности должны описывать один экземпляр описываемой сущности. 
Степень выражается с помощью двух разных значений- «один-к-одному» (1) и 
«один-ко-многим» (М). Служащий приписан одновременно только к одному отделу, 
поэтому у сущности Служащий связь с сущностью Отдел «один-к-одному». В обратном 
направлении, отдел отвечает за многих служащих. Поэтому мы говорим, что у 
сущности Отдел связь с сущностью Служащий «один-ко-многим». В результате в 
Отделе может быть и только один Служащий.
Иногда полезно выразить связь словами. Один из способов - вставить разные 
составляющие направления связи в следующую формулу:
сущность1имеет [одну и только одну одну или много] сущностъ2
Согласно этой формуле связь между Служащим и Отделом можно выразить так:
Каждый Служащий должен быть приписан к одному и только одному 
Отделу.
Каждый Отдел может отвечать одному или многим Служащим.

Рис. 2-5. Анатомия связи

Рис. 2-6. Связь CD-'Song
Можно использовать эту формулу для описания сущностей в нашей модели данных. В 
каждом CD содержится много или одна Song, и каждая Song содержится хотя бы в 
одном CD. В нашей модели данных эту связь можно показать, проведя линию между 
двумя сущностями. Степень обозначается прямой линией для связи «один и только 
один» и «птичьей лапой» для связи «один-ко-многим>>. На рис. 2-5 показаны эти 
обозначения.
Как это применимо к связи между Song и CD? На практике Song может содержаться 
на многих CD, но для нашего примера мы этим пренебрежем. На рис. 2-6 показана 
модель данных с обозначенными связями.
Прочно установив связи, мы можем вернуться к процессу нормализации и опять 
улучшить нашу схему. Пока мы лишь нормализовали повторяющиеся песни, 
преобразовав их в отдельную сущность, и смоделировали связь между ней и 
сущностью СD.
Вторая нормальная форма (2NF)
Говорят, что сущность находится во второй нормальной форме, если она уже 
находится в первой НФ, и каждый неидентифицирующий атрибут зависит от всего 
уникального идентификатора сущности. Если некий атрибут не зависит полностью от 
уникального идентификатора сущности, значит, он внесен ошибочно и должен быть 
удален. Нормализуйте такой атрибут либо найдя сущность, к которой он относится, 
либо создав новую сущность, в которую он должен быть помещен.

Рис. 2-7. Модель данных с новой сущностью Artist
В нашем примере «Herbie Hancock» является Band Name (названием ансамбля) для 
двух разных CD. Это показывает, что Band Name не полностью зависит от 
идентификатора CD ID. Это дублирование представляет собой проблему, поскольку 
если мы допустили ошибку при вводе «Herbie Hancock», придется исправлять 
значение в нескольких местах. Это указывает нам, что Band Name должно быть 
частью новой сущности, связанной с CD. Как и раньше, мы решаем эту задачу, 
задав вопрос: «Что описывает название ансамбля?» Оно описывает ансамбль, или, 
вообще говоря, исполнителя. Исполнитель - еще один объект, о котором мы 
собираем данные, и потому, возможно, является сущностью. Мы добавим его к нашей 
схеме с атрибутом Band Name. Поскольку исполнитель может не быть ансамблем, мы 
 
<<-[Весь Текст]
Страница: из 157
 <<-