DBMS normalizálás: 1NF, 2NF, 3NF adatbázis példa

Mi az adatbázis normalizálás?

Normalizálás egy adatbázis-tervezési technika, amely csökkenti az adatredundanciát, és kiküszöböli az olyan nemkívánatos jellemzőket, mint a beszúrási, frissítési és törlési anomáliák. A normalizálási szabályok a nagyobb táblákat kisebb táblákra osztják, és kapcsolatok segítségével összekapcsolják őket. Az SQL-ben a normalizálás célja a redundáns (ismétlődő) adatok kiküszöbölése és az adatok logikai tárolásának biztosítása.

A feltaláló a relációs modell Edgar Codd az első normálforma bevezetésével javasolta az adatok normalizálásának elméletét, és folytatta az elmélet kiterjesztését a második és harmadik normálformával. Later csatlakozott Raymond F. Boyce-hoz, hogy kidolgozza a Boyce-Codd normálforma elméletét.

Normál űrlapok típusai a DBMS-ben

Íme az SQL normál űrlapjainak listája:

  • 1NF (első normál forma): Biztosítja, hogy az adatbázistábla úgy legyen megszervezve, hogy minden oszlop atomi (oszthatatlan) értékeket tartalmazzon, és minden rekord egyedi legyen. Ez kiküszöböli az ismétlődő csoportokat, így az adatokat táblázatokba és oszlopokba rendezi.
  • 2NF (második normál forma): Az 1NF-re építve El kell távolítanunk a redundáns adatokat egy olyan táblából, amelyet több sorra alkalmazunk. és külön táblázatokba helyezve őket. Megköveteli, hogy az összes nem kulcs attribútum teljes mértékben működjön az elsődleges kulcson.
  • 3NF (harmadik normál forma): Kibővíti a 2NF-et azáltal, hogy biztosítja, hogy az összes nem kulcs attribútum ne csak teljesen működőképes legyen az elsődleges kulcson, hanem független is legyen egymástól. Ez kiküszöböli a tranzitív függőséget.
  • BCNF (Boyce-Codd normál forma): A 3NF finomítása, amely a 3NF által nem kezelt anomáliákat kezeli. Ez megköveteli, hogy minden meghatározó kulcs jelölt legyen, biztosítva a normalizálási szabályok még szigorúbb betartását.
  • 4NF (negyedik normál forma): A többértékű függőségek kezelése. Gondoskodik arról, hogy egy rekordban ne legyen több független, többértékű tény egy entitásról.
  • 5NF (ötödik normál forma): Más néven „Projekciós csatlakozási normálforma” (PJNF), ez az információ rekonstrukciója kisebb, eltérően elrendezett adatdarabokból.
  • 6NF (hatodik normál forma): Elméleti és nem széles körben alkalmazott. Az időbeli adatokkal foglalkozik (az időbeli változások kezelése) a táblák további bontásával, hogy kiküszöböljön minden nem időbeli redundanciát.

Az adatnormalizálás elmélete in MySQL a szerver még fejlesztés alatt áll. Például még a 6-on is vannak vitákth Normál forma. A legtöbb gyakorlati alkalmazásban azonban a normalizálás a 3-ban éri el a legjobbatrd Normál forma. Az alábbiakban bemutatjuk a normalizálás fejlődését az SQL elméletekben.

Adatbázis normál űrlapjai
Adatbázis normál űrlapjai

Adatbázis normalizálás példákkal

adatbázis Normalizálási példa esettanulmány segítségével könnyen megérthető. Tegyük fel, hogy egy videokönyvtár adatbázist tart fenn a kikölcsönzött filmekről. Az adatbázis normalizálása nélkül az összes információt egy táblázatban tároljuk, az alábbiak szerint. Értsük meg a normalizálási adatbázist normalizálási példával és megoldással:

Adatbázis normalizálás példával

Itt látod Filmek Kölcsönözve oszlop több értékkel rendelkezik. Most térjünk át az 1. normál formákra:

Első normál forma (1NF)

  • A táblázat minden cellájának egyetlen értéket kell tartalmaznia.
  • Minden rekordnak egyedinek kell lennie.

A fenti táblázat az 1NF-ben

1NF példa

1NF szabályok

Példa az 1NF-re a DBMS-ben

Mielőtt továbblépnénk, értsünk meg néhány dolgot:

Mi az a KULCS az SQL-ben

A KEY SQL-ben A tábla rekordjainak egyedi azonosítására használt érték. Az SQL KEY egyetlen oszlop vagy több oszlop kombinációja, amely a tábla sorainak vagy sorainak egyedi azonosítására szolgál. Az SQL-kulcs az ismétlődő információk azonosítására szolgál, és segít kapcsolatot létesíteni az adatbázisban lévő több tábla között.

Megjegyzés: A táblázat azon oszlopait, amelyek NEM a rekord egyedi azonosítására szolgálnak, nem kulcs oszlopoknak nevezzük.

Mi az elsődleges kulcs?

Elsődleges kulcs

Elsődleges kulcs a DBMS-ben

Az elsődleges egy oszlopos érték, amely az adatbázisrekord egyedi azonosítására szolgál.

A következő attribútumokkal rendelkezik

  • A elsődleges kulcs nem lehet NULL
  • Az elsődleges kulcs értékének egyedinek kell lennie
  • Az elsődleges kulcs értékeit ritkán kell megváltoztatni
  • Új rekord beszúrásakor az elsődleges kulcsnak értéket kell adni.

Mi az az összetett kulcs?

Az összetett kulcs egy több oszlopból álló elsődleges kulcs, amely a rekord egyedi azonosítására szolgál

Adatbázisunkban két Robert Phil nevű személy szerepel, de ők különböző helyeken élnek.

Összetett kulcs az adatbázisban

Összetett kulcs az adatbázisban

Ezért a rekord egyedi azonosításához a teljes név és a cím megadására is szükségünk van. Ez egy összetett kulcs.

Térjünk át a 2NF második normálformára

Második normál forma (2NF)

  • 1. szabály – Légy az 1NF-ben
  • 2. szabály – Egyoszlopos elsődleges kulcs, amely funkcionálisan nem függ a jelölt kulcskapcsolatok egyik részhalmazától sem

Nyilvánvaló, hogy nem léphetünk előre, hogy egyszerű adatbázisunkat 2-ben készítsük elnd Normalizálási forma, hacsak nem particionáljuk a fenti táblázatot.

2NF szabályok

2NF szabályok

Az 1NF táblázatunkat két táblázatra osztottuk, ti. 1. és 2. táblázat. Az 1. táblázat a tagok adatait tartalmazza. A 2. táblázat a kölcsönzött filmekkel kapcsolatos információkat tartalmaz.

Új oszlopot vezettünk be Membership_id néven, amely az 1. tábla elsődleges kulcsa. A rekordok egyedileg azonosíthatók az 1. táblázatban a tagsági azonosító segítségével

Adatbázis – Idegen kulcs

A 2. táblázatban a Tagsági_azonosító az idegen kulcs

Adatbázis – Idegen kulcs

Adatbázis – Idegen kulcs

Idegen kulcs a DBMS-ben

Az idegen kulcs egy másik tábla elsődleges kulcsára hivatkozik! Segít összekapcsolni a táblázatokat

  • Az idegen kulcs neve eltérhet az elsődleges kulcsától
  • Biztosítja, hogy az egyik tábla soraiban a másikban is legyenek megfelelő sorok
  • Az elsődleges kulccsal ellentétben nem kell egyedinek lenniük. Leggyakrabban nem
  • Az idegen kulcsok nullák lehetnek, még akkor is, ha az elsődleges kulcsok nem

Adatbázis – Idegen kulcs

Miért van szüksége idegen kulcsra?

Tegyük fel, hogy egy kezdő beszúr egy rekordot a B táblázatba, mint pl

Miért van szüksége idegen kulcsra?

Csak olyan értékeket illeszthet be az idegen kulcsba, amelyek a szülőtábla egyedi kulcsában vannak. Ez segíti a hivatkozási integritást.

A fenti probléma megoldható, ha a 2. táblázat tagsági azonosítóját az 1. tábla tagsági azonosítójának idegen kulcsaként deklaráljuk.

Most, ha valaki olyan értéket próbál beszúrni a tagsági azonosító mezőbe, amely nem létezik a szülőtáblában, hibaüzenet jelenik meg!

Mik azok a tranzitív funkcionális függőségek?

Egy tranzitív funkcionális függőség Ha nem kulcsfontosságú oszlopot módosít, a többi nem kulcs oszlop megváltozását okozhatja

Tekintsük az 1. táblázatot. A nem kulcsfontosságú Teljes név oszlop megváltoztatása megváltoztathatja az Üdvözlet értéket.

Tranzitív funkcionális függőségek

Térjünk át a 3NF-re

Harmadik normál forma (3NF)

  • 1. szabály – Légy az 2NF-ben
  • 2. szabály – Nincs tranzitív funkcionális függősége

Ahhoz, hogy a 2NF-táblánkat 3NF-be helyezzük, ismét fel kell osztanunk az asztalunkat.

3NF példa

Az alábbiakban egy 3NF-példa látható az SQL adatbázisban:

3NF példa

3NF példa

3NF példa

Ismét felosztottuk az asztalainkat, és létrehoztunk egy új táblázatot, amely az üdvözléseket tárolja.

Nincsenek tranzitív funkcionális függőségek, ezért a táblázatunk 3NF-ben van

A 3. táblázatban az üdvözlő azonosító az elsődleges kulcs, az 1. táblázatban pedig az üdvözlés azonosítója idegen a 3. táblázatban szereplő elsődleges kulcstól.

A mi kis példánk most olyan szinten van, amelyet nem lehet tovább bontani, hogy magasabb normál formájú normalizálást érjünk el a DBMS-ben. Valójában már magasabb normalizációs formákban van. Az összetett adatbázisokban általában külön erőfeszítésekre van szükség az adatok normalizálásának következő szintjeire való átlépéshez. A következőkben azonban röviden tárgyaljuk a DBMS normalizálásának következő szintjeit.

Boyce-Codd normál forma (BCNF)

Még akkor is, ha egy adatbázis a 3-ban vanrd Normál forma, mégis előfordulnának anomáliák, ha egynél több van Jelölt Kulcs.

Néha a BCNF-et más néven is említik 3.5 Normál forma.

Negyedik normál forma (4NF)

Ha egyetlen adatbázistábla-példány sem tartalmaz két vagy több független és többértékű adatot, amelyek leírják a releváns entitást, akkor ez a 4.th Normál forma.

Ötödik normál forma (5NF)

5-ben van egy táblázatth Normál Form csak akkor, ha 4NF-ben van, és nem bontható fel számtalan kisebb táblára adatvesztés nélkül.

Hatodik normál forma (6NF) javasolt

6th A Normal Form nem szabványosított, de az adatbázis-szakértők már egy ideje tárgyalnak róla. Remélhetőleg egyértelmű és szabványosított definíciónk lesz a 6-rath Normál forma a közeljövőben…

A normál forma előnyei

  • Az adatok konzisztenciájának javítása: A normalizálás biztosítja, hogy minden adat csak egy helyen kerül tárolásra, csökkentve az inkonzisztens adatok esélyét. Az adatok frissítése során csak egy helyen kell frissíteni, biztosítva a következetességet.
  • Adatredundancia csökkentése: A normalizálás segít kiküszöbölni az ismétlődő adatokat azáltal, hogy több, egymáshoz kapcsolódó táblázatra osztja fel azokat. Ez tárhelyet takaríthat meg, és hatékonyabbá teheti az adatbázist.
  • A lekérdezés teljesítményének javítása: A normalizált adatbázisok gyakran könnyebben lekérdezhetők. Mivel az adatok logikusan vannak rendszerezve, a lekérdezések optimalizálhatók, hogy gyorsabban futhassanak.
  • Az adatok értelmesebbé tétele: A normalizálás magában foglalja az adatok értelmes és intuitív módon történő csoportosítását. Ez megkönnyítheti az adatbázis megértését és használatát, különösen azok számára, akik nem tervezték az adatbázist.
  • Csökkentse az anomáliák esélyét: Az anomáliák olyan problémák, amelyek adatok hozzáadása, frissítése vagy törlése során fordulhatnak elő. A normalizálás csökkentheti ezeknek az anomáliáknak az esélyét azáltal, hogy biztosítja az adatok logikus rendszerezését.

A normalizálás hátrányai

  • Fokozott összetettség: A normalizálás összetett kapcsolatokhoz vezethet. Az idegen kulcsokkal rendelkező táblák nagy száma nehezen kezelhető, ami zavart okozhat.
  • Csökkentett rugalmasság: A szigorú normalizálási szabályok miatt előfordulhat, hogy kevésbé rugalmasan tárolják azokat az adatokat, amelyek nem felelnek meg ezeknek a szabályoknak.
  • Megnövekedett tárolási igény: Míg a normalizálás csökkenti a redundanciát, előfordulhat, hogy több tárhelyet kell lefoglalni a további táblák és indexek elhelyezéséhez.
  • Teljesítmény rezsi: Több asztal összekapcsolása költséges lehet a teljesítmény szempontjából. Minél normalizáltabbak az adatok, annál több csatlakozásra van szükség, ami lelassíthatja az adatok visszakeresési idejét.
  • Adatvesztés kontextus: A normalizálás az adatokat külön táblákra bontja, ami az üzleti környezet elvesztéséhez vezethet. A kapcsolódó táblák vizsgálata szükséges egy adat kontextusának megértéséhez.
  • Szakértői tudás szükséges: A normalizált adatbázis megvalósítása megköveteli az adatok, az adatok közötti kapcsolatok és a normalizálási szabályok mély megértését. Ez szaktudást igényel, és időigényes lehet.

Ennyi az SQL normalizálása!!!

Következtetés

  • Adatbázis tervezés kritikus fontosságú egy olyan adatbázis-kezelő rendszer sikeres megvalósításához, amely megfelel a vállalati rendszer adatkövetelményeinek.
  • A DBMS-ben a normalizálás olyan folyamat, amely segít költséghatékony és jobb biztonsági modellekkel rendelkező adatbázisrendszerek létrehozásában.
  • A funkcionális függőségek nagyon fontos összetevői az adatnormalizálási folyamatnak
  • A legtöbb adatbázisrendszer normalizált adatbázis a DBMS harmadik normál formájáig.
  • Az elsődleges kulcs egyedileg azonosítja a rekordokat egy táblában, és nem lehet nulla
  • Az idegen kulcs segíti a tábla csatlakoztatását, és egy elsődleges kulcsra hivatkozik

Elolvasom Bővebben