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

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

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

Библиотека :: Компьютеры и Программирование :: Начинаем изучать MySQL
<<-[Весь Текст]
Страница: из 157
 <<-
 
совершенно невозможно. Поэтому CD является одним из тех объектов, которые мы 
хотим описать, и, похоже, является сущностью. Начнем разработку модели данных с 
изображения CD как сущности. На рис. 2-1 показана наша единственная сущность в 
модели данных.

Рис. 2-1. Сущность «CD» в модели данных
По общепринятому соглашению об именовании сущностей имя сущности должно быть в 
единственном числе. Поэтому мы называем таблицу, в которой хранятся CD «CD», а 
не «CDs». Мы используем это соглашение, поскольку каждая сущность дает имя 
экземпляру. Например, «San Francisco 49ers» является экземпляром сущности 
«Футбольная команда», а не «Футбольные команды».
На первый взгляд кажется, что оставшаяся часть базы данных описывает CD. Это 
указывает на то, что она содержит атрибуты CD. На рис. 2-2 они добавлены к 
сущности CD рис. 2-1. В модели данных атрибуты представлены как имена, 
перечисленные в прямоугольнике сущности.
Эта диаграмма проста, но мы еще не закончили. В действительности, мы только 
начали. Ранее мы говорили, что целью моделирования данных является устранение 
избыточности с помощью приема, называемого нормализацией. У нашей базы данных 
прекрасная диаграмма, но мы не покончили с избыточностью, как намеревались. 
Пора нормализовать нашу базу данных.

Рис. 2-2. Сущность «CD» с атрибутами
Нормализация
Е. Ф. Кодд (Е. F. Codd), занимавшийся исследовательской работой в IBM, впервые 
представил концепцию нормализации в нескольких важных статьях, написанных в 
1970-е годы. Задача нормализации остается той же самой и сегодня: устранить из 
базы данных некоторые нежелательные характеристики. В частности ставится задача 
устранить некоторые виды избыточности данных и благодаря этому избежать 
аномалий при изменении данных. Аномалии изменения данных - это сложности при 
операциях вставки, изменения и удаления данных, возникающие из-за структуры 
базы данных. Дополнительным результатом нормализации является конструкция, 
хорошо соответствующая реальному миру. Поэтому в результате нормализации модель 
данных становится более ясной.
Например, предположим, что мы ошиблись при вводе «Herbie Hancock» в нашу базу 
данных и хотим исправить ошибку. Нам потребовалось бы рассмотреть все диски 
этого исполнителя и исправить имя. Если изменения производятся с помощью 
приложения, позволяющего одновременно редактировать только одну запись, нам 
придется редактировать много строк. Было бы гораздо лучше запомнить имя «Herbie 
Hancock» лишь один раз и редактировать его в одном месте.
Первая нормальная форма (1NF)
Общее понятие нормализации подразделяется на несколько «нормальных форм». 
Говорят, что сущность находится в первой нормальной форме, когда все ее 
атрибуты имеют единственное значение. Чтобы признать сущность находящейся в 
первой нормальной форме, нужно удостовериться в том, что каждый атрибут 
сущности имеет единственное значение для каждого экземпляра сущности. Если в 
каком-либо атрибуте есть повторяющиеся значения, сущность не находится в 1NF.
Вернувшись к нашей базе данных, мы обнаруживаем, что повторяющиеся значения 
есть в атрибуте Song (песня), поэтому очевидно, что база не находится в 1NF. 
Сущность с повторяющимися значениями указывает на то, что мы упустили еще по 
крайней мере одну сущность. Обнаружить другие сущности можно, взглянув на 
каждый атрибут и задавшись вопросом «что описывает эта вещь?»
Что описывает атрибут Song? Он перечисляет все песни на CD. Поэтому Song - это 
еще один объект, о котором мы собираем данные, и, возможно, он является 
сущностью. Мы добавим его в свою диаграмму и придадим атрибут Song Name 
(название песни). Чтобы покончить с сущностью Song, спросим себя, чем еще мы 
хотели бы ее охарактеризовать. Мы отметили ранее, что длительность песни мы 
также хотели бы сохранить. Новая модель данных показана на рис. 2-3.

Рис. 2-3. Модель данных с сущностями CD и Song
Теперь, когда Song Name и Song Length являются атрибутами сущности Song, мы 
имеем модель данных с двумя сущностями в 1NF. К сожалению, мы не указали 
никакого способа связать вместе CD и Song.
Уникальный идентификатор
Прежде чем обсуждать связи, мы должны применить к сущностям еще одно правило. У 
каждой сущности должен быть однозначный идентификатор, который мы будем 
называть ID. ID есть атрибут сущности, к которому применимы следующие правила:
* Он уникален для каждого экземпляра сущности.
* Для каждого экземпляра сущности он имеет значение, отличное от NULL в течение 
всего срока существования экземпляра.
* В течение всего времени существования экземпляра его значение не меняется.
ID очень важен, поскольку позволяет узнать, с каким из экземпляров сущности мы 
имеем дело. Выбор идентификатора также существенен, потому что он используется 
для моделирования связей. Если после выбора ID для сущности вы обнаружили, что 
он не удовлетворяет одному из перечисленных правил, это может повлиять на всю 
вашу модель данных.
Новички в моделировании данных часто делают ошибку, выбирая в качестве ID 
неподходящие атрибуты. Если, к примеру, у вас есть сущность Person (человек, 
лицо), может возникнуть соблазн выбрать в качестве идентификатора Name 
(фамилию), поскольку она есть у каждого лица и не меняется. Но что если лицо 
вступает в брак или законным образом хочет изменить фамилию? Или вы допустили 
 
<<-[Весь Текст]
Страница: из 157
 <<-