Първо ниво на нормализация в MySQL

В категория Програмиране 1 кометара

Продължение на статията Нормализация в MySQL

Процеса на нормализация включва изменение на схемата, така че да удовлетворява изискванията поставени от прогресивно растящи нормални форми. Нормализация на по-високо ниво не може да се постигне докато не са удовлетворени изискванията на текущото ниво. На първа нормална форма се изисква информацията във всяка едно поле да съдържа уникална(не повтаряща се) информация или група от атрибути.

В нашият пример информацията която се записва в полетата производител и вносител не е проста, тоест състой се от група от атрибути като име на фирмата, седалище и други. За да се справим с този проблем, разделяме таблицата на две таблици – една за сладолед и една за фирми.
Таблицата сладолед се състой от:

  • id
  • id-на-производител
  • id-на-вносител
  • вкус
  • цена

А таблицата фирма се състой от:

  • id
  • име
  • седалище
  • МОЛ
  • телефон
  • email
  • уеб-сайт
  • описание

Забележете, че в таблицата за фирми добавяме изкуствена колона, която номерира редовете в таблицата и я обявяваме за ключ (surrogate key). Това се прави когато реалния главен ключ не е наличен или не е удобен за използване. В случая не може да използваме полетата „име“ или „МОЛ“ за главен ключ и затова добавяне изкуствен surrogate key – полето „id“.

Някои разработчици използват surrogate ключ като правило, други го ползват само при липса на явен кандидат за главен ключ. От гледна точка на производителност, цяло число обявено за surrogate ключ, може да предостави по-добро представяне. Важно е когато използваме surrogate ключ да сме сигурни че е уникален за всеки запис.

Чрез разделяне на данните в две различни таблици, според реалните обекти, които те представят, ние се справяме с някои от аномалиите споделени по-рано:

  • Може да добавяме фирми, които още не са произвеждали или внасяли сладолед
  • Може да трием сладоледи, без да губим информация за фирмите
  • Информация като име на фирмата е записана само на едно място, което улеснява промяната му

Може да си помислите че таблицата с фирми отново не удовлетворява условията за преминаване в Първа нормална форма, защото полето „седалище“. На пръв поглед може да е един низ, който представлява един адрес. От друга страна това е съвкупност от данни – град, улица, блок, вход и т.н.

Решението, до колко да разбиваме таблиците, зависи от това, как възнамерявате да използвате информацията. Ако искате да намерите всички фирми в един град, тогава трябва да имате разбиране. Ако искате да използвате адреса, само за да издавате фактури, тогава не ви е необходимо разбиране на таблицата. Винаги имайте предвид и бъдещите планове за развитие на системата.

Публикувано от koleto   @   4 юли 2011 1 коментара
Тагове : ,

Споделете тази публикация

RSS Digg Twitter StumbleUpon Delicious Technorati

Подобни статии

1 Кометар

Коментари
Trackbacks на тази публикация.
Коментирайте

Име

Email

Website

Предишна публикация
«
Следваща публикация
»
CrossBlock designed by DeltaManual.Com  |  In conjunction with Web Hosting   |   Web Hosting   |   Reverse phone