Мой номер

Реклама

матрас . массаж ног . похудение

Rambler's Top100
Главная arrow Статьи arrow Создание ПО arrow Нормальные формы баз данных ч.1
Нормальные формы баз данных ч.1
Написал gdever   
03.05.2010
Оглавление
Нормальные формы баз данных ч.1
Страница 2
Страница 3
    В своё время случилась одна любопытная дискуссия с моим сотрудником. Подходит он ко мне и говорит, что типа наша БД не в первой нормальной форме. Не в какой-нибудь хитрой четвёртой или в пятой, которая практически нафиг никому не нужна. А именно первой. Т.е. подобное заявление равнозначно наезду, что, мол, структура БД полное говно, а вы, Алексей, криворукий идиот. «Нифига себе» - подумал, я. Как это такое может быть? Почти полтора десятка лет в программировании, плюс здравым смыслом, вроде, не обделён, и тут вот такое. Можно было конечно завершить недоразумение фразой «я – начальник, ты – дурак», но как-то самому стало интересно, в чём же дело. Поэтому деликатно так поинтересовался, а на чем основано данное утверждение? Сотрудник бодро открыл определение в Википедии и походу уже приготовился праздновать победу. Я, признаться, никогда не мог по памяти назвать ни одну из нормальных форм, а «рисовал» структуру БД просто на основании здравого смысла. Потом постфактум выяснялось, что базы спроектированы в полном соответствии с этими самыми формами. Так и жил. А тут, стало быть, по определению выходило совсем не так как подсказывало программерское чутьё. Поэтому с любопытством начал изучать определение. Каково же было моё удивление, что как раз по этому определению выходило, что с базой полный порядок! Я, конечно, и раньше находил формулировки отечественного сегмента Википедии чрезмерно заумными, и поэтому допускал, что со средним умом лучше их не читать. Но тут произошло что-то совсем вопиющее – мой сотрудник, прочитав определение, сделал какой-то абсолютно нелогичный вывод и даже не удосужился проверить свои выводы. А наоборот взял свою свежепридуманную глупость и решил с её помощью поучить народ. Я говорил, что опенсорс до добра не доведёт, да и другие умные люди тоже говорили. Но я не знал, что армегедец наступит так скоро. Ну да бог с этой Википедией, можно ведь и самому определения нормальных форм набросать.

    Ключ - поле записи, чьё значение уникально для всего набора записей, имеет значение отличное от NULL и неизменно на протяжении всей жизни записи.

    Первая нормальная форма – любое поле любой записи хранит только одно значение.

    Например, если в поле хранится список идентификаторов, разделённых запятыми, то это нарушение данного определения и база не находится в первой нормальной форме.

    Вторая нормальная форма – БД находится в первой нормальной форме и любое неключевое поле полностью зависит от ключа.

    Например, у нас есть запись с полями (Идентификатор, Название CD-Диска, Название группы), где ключом является поле «Идентификатор». При этом, очевидно, что поле «Название группы» зависит не только от «Идентификатора» но и от поля «Название CD-Диска». Поэтому такая БД не находится во второй нормальной форме.

    Третья нормальная форма – БД находится во второй нормальной форме и нет неключевых полей зависящих от значения других неключевых полей.

    Например, у нас в записи хранятся код региона и его название (помимо самих полей с информацией о CD-диске). Понятно, что название региона зависит от кода, и наоборот, поэтому такая БД не будет находиться в третьей нормальной фоме.

    PS Ссылки по теме:
    Нормальные формы баз данных ч.2
Сформировать ссылку на статью для вашего сайта | Просмотров: 16034

0

Коментарии (11)
RSS комментарии
 1 Написал(а) Juares, в 13-06-2010 13:31
На ваш сайт меня гугл вывел) Собственно, очень ему благодарен) Искал нормальные формы, а наткнулся на множество статей по интересующей меня IT- теме) Специально зарегестрировался - выразить почтение (: Очень свежие и смешные статьи. 
"Пожалуйста оставляйте коментарии только по теме" - не вопрос) Определения простые и ясные) А википедия действительно заумностью изобилует. Впрочем, как и почти все остальные источники. Не раз уже замечал, что можно намного проще объяснить
 2 Написал(а) gdever, в 15-06-2010 19:52
2Juares 
 
Ну, как говорится, вэлкам!
 3 спасибо
Написал(а) Сергей, в 06-09-2010 22:44
спасибо, как раз требовалось обычное объяснение! А то заумные слова не слишком мне понятны :)
 4 Написал(а) Александр, в 22-12-2010 20:47
А можно узнать точное значение слова "ключ"?
 5 Написал(а) gdever, в 23-12-2010 05:51
2Александр 
 
Добавил в статью определение ключа.


Последнее обновление ( 24.12.2011 )
 
< Пред.   След. >
Design by ah-68 - Copyright © 2007 by www.gdzone.ru