1‑я нормальная форма

Пер­вая нор­маль­ная фор­ма (1НФ) — базо­вая нор­маль­ная фор­ма отно­ше­ния в реля­ци­он­ной моде­ли дан­ных.

Определение

Пере­мен­ная отно­ше­ния нахо­дит­ся в пер­вой нор­маль­ной фор­ме тогда и толь­ко тогда, когда в любом допу­сти­мом зна­че­нии этой пере­мен­ной каж­дый кор­теж отно­ше­ния содер­жит толь­ко одно зна­че­ние для каж­до­го из атри­бу­тов[1].

В реля­ци­он­ной моде­ли отно­ше­ние все­гда нахо­дит­ся в пер­вой нор­маль­ной фор­ме по опре­де­ле­нию поня­тия отно­ше­ние.

Что же каса­ет­ся раз­лич­ных таб­лиц, то они могут не быть пра­виль­ны­ми пред­став­ле­ни­я­ми отно­ше­ний и, соот­вет­ствен­но, могут не нахо­дить­ся в 1НФ. В соот­вет­ствии с опре­де­ле­ни­ем Кри­сто­фе­ра Дей­та для тако­го слу­чая таб­ли­ца нор­ма­ли­зо­ва­на (экви­ва­лент­но — нахо­дит­ся в пер­вой нор­маль­ной фор­ме) тогда и толь­ко тогда, когда она явля­ет­ся пря­мым и вер­ным пред­став­ле­ни­ем неко­то­ро­го отно­ше­ния. Кон­крет­нее, рас­смат­ри­ва­е­мая таб­ли­ца долж­на удо­вле­тво­рять сле­ду­ю­щим пяти усло­ви­ям:

  1. Нет упо­ря­до­чи­ва­ния строк свер­ху вниз (дру­ги­ми сло­ва­ми, поря­док строк не несет в себе ника­кой инфор­ма­ции).
  2. Нет упо­ря­до­чи­ва­ния столб­цов сле­ва напра­во (дру­ги­ми сло­ва­ми, поря­док столб­цов не несет в себе ника­кой инфор­ма­ции).
  3. Нет повто­ря­ю­щих­ся строк.
  4. Каж­дое пере­се­че­ние стро­ки и столб­ца содер­жит ров­но одно зна­че­ние из соот­вет­ству­ю­ще­го доме­на (и боль­ше ниче­го).
  5. Все столб­цы явля­ют­ся обыч­ны­ми[1].

«Обыч­ность» всех столб­цов таб­ли­цы озна­ча­ет, что в таб­ли­це нет «скры­тых» ком­по­нен­тов, кото­рые могут быть доступ­ны толь­ко в вызо­ве неко­то­ро­го спе­ци­аль­но­го опе­ра­то­ра вза­мен ссы­лок на име­на регу­ляр­ных столб­цов, или кото­рые при­во­дят к побоч­ным эффек­там для строк или таб­лиц при вызо­ве стан­дарт­ных опе­ра­то­ров. Таким обра­зом, напри­мер, стро­ки не име­ют иден­ти­фи­ка­то­ров кро­ме обыч­ных зна­че­ний потен­ци­аль­ных клю­чей (без скры­тых «иден­ти­фи­ка­то­ров строк» или «иден­ти­фи­ка­то­ров объ­ек­тов»). Они так­же не име­ют скры­тых вре­мен­ных меток[1].

Пример

Исход­ная ненор­ма­ли­зо­ван­ная (то есть не явля­ю­ща­я­ся пра­виль­ным пред­став­ле­ни­ем неко­то­ро­го отно­ше­ния) таб­ли­ца:

Сотруд­никНомер теле­фо­на
Ива­нов И. И.283–56-82
390–57-34
Пет­ров П. П.708–62-34

Таб­ли­ца, при­ве­дён­ная к 1НФ, явля­ю­ща­я­ся пра­виль­ным пред­став­ле­ни­ем неко­то­ро­го отно­ше­ния:

Сотруд­никНомер теле­фо­на
Ива­нов И. И.283–56-82
Ива­нов И. И.390–57-34
Пет­ров П. П.708–62-34

Атомарность

Мно­гие авто­ры допол­ня­ют опре­де­ле­ние пер­вой нор­маль­ной фор­мы тре­бо­ва­ни­ем ато­мар­но­сти (неде­ли­мо­сти) зна­че­ний[2]. Одна­ко кон­цеп­ция «ато­мар­но­сти» явля­ет­ся слиш­ком неяс­ной[1][3]. Напри­мер, мно­гие типы дан­ных (стро­ки, даты, чис­ла с фик­си­ро­ван­ной точ­кой и т. д.) при необ­хо­ди­мо­сти лег­ко могут быть деком­по­зи­ро­ва­ны на состав­ля­ю­щие эле­мен­ты с помо­щью стан­дарт­ных опе­ра­ций, предо­став­ля­е­мых СУБД. К. Дейт заклю­ча­ет, что «поня­тие ато­мар­но­сти не име­ет абсо­лют­но ника­ко­го смыс­ла»[1].

Исто­ри­че­ски кон­цеп­ция «ато­мар­но­сти» берёт нача­ло от «про­стых доме­нов» (англ. simple domains), пред­ло­жен­ных авто­ром реля­ци­он­ной моде­ли дан­ных Э. Ф. Код­дом. Цель «нор­маль­ной фор­мы», кото­рую пред­ло­жил Кодд в ста­тье «Реля­ци­он­ная модель дан­ных для боль­ших сов­мест­но исполь­зу­е­мых бан­ков дан­ных»[4], не была свя­за­на с каким-либо тео­ре­ти­че­ским аспек­том, напри­мер, с борь­бой с ано­ма­ли­я­ми или избы­точ­но­стью. Кодд пред­ло­жил исполь­зо­вать «про­стые доме­ны» толь­ко для облег­че­ния буду­щей про­грамм­ной реа­ли­за­ции, а имен­но:

  • для облег­че­ния хра­не­ния отно­ше­ний в виде дву­мер­ных мас­си­вов

Отно­ше­ние, все доме­ны кото­ро­го явля­ют­ся про­сты­ми, может быть пред­став­ле­но при хра­не­нии двух­мер­ным мас­си­вом с одно­род­ны­ми столб­ца­ми.

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

См. также

Примечания

  1. 1 2 3 4 5 С. J. Date. What First Normal Form Really Means //С. J. Date. Date on database: Writings 2000—2006, Apress, 2006, ISBN 978–1‑59059–746‑0
  2. Elmasri, Ramez and Navathe, Shamkant B. Fundamentals of Database Systems, Fourth Edition (англ.). — Pearson, 2003. — P. 315. — ISBN 0321204484.: «It states that the domain of an attribute must include only atomic (simple, indivisible) values and that the value of any attribute in a tuple must be a single value from the domain of that attribute.»
  3. Darwen, Hugh. Relation-Valued Attributes; or, Will the Real First Normal Form Please Stand Up? // Relational Database Writings 1989—1991, Addison-Wesley, 1992.
  4. Е. Ф. Кодд. Реля­ци­он­ная модель дан­ных для боль­ших сов­мест­но исполь­зу­е­мых бан­ков дан­ных (пере­вод М. Р. Кога­лов­ско­го) Архив­ная копия от 22 нояб­ря 2010 на Wayback Machine
    Codd, E.F. A Relational Model of Data for Large Shared Data Banks (англ.) // Communications of the ACM : journal. — 1970. — Vol. 13, no. 6. — P. 377—387. — doi:10.1145/362384.362685. Архи­ви­ро­ва­но 12 июня 2007 года.

Литература


[btn-action]
[wp-post-stars]

Похожее ...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *