Нормализация в MySQL

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

В света на начинаещите разработчици, които ползват бази от данни, често срещан е така наречения „Spreadsheet Syndrome“. При него разработчиците се опитват да ползват максимално малко количество таблици и често се достига до ползване на дори само една таблица. При този подход се появяват много недостатъци като:

  • повтаряемост на данни
  • аномалии
  • и други моменти с ниска ефективност

Един начин да се преборите с този синдром в нормализацията на базата от данни. Процеса на нормализация се състои в модифицирането на съществуващата схема на етапи съвпадащи с прогресивни нормални форми. Концепцията за нормализация е представена за първи път от Едгар Код в неговата публикация „A Relational Model of Data for Large Shared Data Banks“.

Целта на нормализация на базата от данни е да се подсигури това, че всеки не ключов елемент във всяка таблица, разчита директно на ключа, само на ключа и на нищо друго освен на ключа. По този начин се намалява повторението на данни, намаляват се аномалиите и се повишава ефективността.

Нека си представим че разработваме приложение за продаване на сладолед. Ако следваме „Spreadsheet Syndrome“ ще получим таблица за нашите сладоледи със следната схема:

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

При този вариант имаме няколко аномалии:

  • Първо не можем да изведем производител на сладолед без да имаме запис на сладолед със съответния производител.
  • Не може да изтрием сладолед без да загубим информация за производителя или вносителя му.
  • Ако искаме да променим името на производител, трябва да го направим във всички записи със сладоледи на съответния производител.
  • Същото така ако направим 5000 записа със сладолед във много от тях ще имаме повторение на едни и същи данни като производител или вносител. Това е голяма загуба на пространство.
  • Също така ако имаме 1000 записа със сладоледи на един и същи производител е много вероятно някой от тях да не е написан правилно. Тогава при търсене на сладоледите на даден производител няма да получим точна информация.

В следващите няколко статии ще разгледаме различните нива на нормализация и какво е характерно за всяко едно от тях.

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

Публикувано от 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