Vermeit Transitale Dependenzen fir d'Normaliséierung garantéieren
Eng transitiv Abhängigkeit vun enger Datebank ass eng indirekt Relatioun tëscht Wäerter an därselwechter Tabelle, déi eng funktionell Abhängie verursaacht . Fir den Normalisatiounsstand vun der drëtter normaler Form ze kréien (3NF), musst Dir eng transitiv Abhängkeet eliminéieren.
Duerch hir Natur ass eng transitiv Abhängieverhalt 3 oder méi Attributer (oder Datebank Säiten), déi eng funktionell Abhängigkeit tëschent hinnen hunn, wat heescht datt d'Kolonn A an engem Dësch op Column B duerch eng intermediär Colonne C. baséiert.
Loosst eis kucken wéi dëst funktionéiere kéint.
Transitiv Dependenz Beispill
AUTHORS
Autor_ID | Auteur | Buch | Autor_Nationalitéit |
---|---|---|---|
Auth_001 | Orson Scott Card | Ender's Spill | Vereenegt Staaten |
Auth_001 | Orson Scott Card | Ender's Spill | Vereenegt Staaten |
Auth_002 | Margaret Atwood | D'Handmaid's Geschlecht | Kanada |
Am AUTOREN Beispill:
- Book → Autor : Hei, d' Buch Attribut bestëmmt d' Autorattribut . Wann Dir den Numm vum Buch kennt, kënnt Dir de Numm vum Auteur léieren. Allerdéngs ass den Autor net bestätegt Buch , well en Autor kann méi Bücher schreiwen. Zum Beispill, just well mir den Autor vum Orson Scott Card kennen, kenne mer nach ëmmer de Buch Numm net.
- Auteur → Autor_Nationality : Anescht datt den Autor Attribut bestëmmt d' Autor_Nationalitéit , awer net deen anere Wee ronderëm; Just well mir kennen d'Nationalitéit net bedeit datt den Autor selwer bestëmmen kann.
Mä dës Tabell mécht eng transitiv Dependenz:
- Buch → Autor_Nationalitéit: Wann mir den Numm vum Buch kennen, kënne mir d'Nationalitéit iwwer d'Autorisatiounspolitik bestëmmen.
Vermeit Transitale Dependenzen
Fir drëtt normal Form ze garantéieren, lass d'transitiv Abhängiegehale entfernen.
Mir kënnen unzefänken andeems d'Kolonnebuch aus der Authorstabelle ewechgeholl gëtt an eng separater Livertabelle erschafft:
BÜROEN
Book_ID | Buch | Autor_ID |
---|---|---|
Book_001 | Ender's Spill | Auth_001 |
Book_001 | Kanner vum Geescht | Auth_001 |
Book_002 | D'Handmaid's Geschlecht | Auth_002 |
AUTHORS
Autor_ID | Auteur | Autor_Nationalitéit |
---|---|---|
Auth_001 | Orson Scott Card | Vereenegt Staaten |
Auth_002 | Margaret Atwood | Kanada |
Huet dës Fix fixéiert? Loosst eis Dependenzen unhand huelen:
BOOKS Dësch :
- Book_ID → Bicher: D' Buch hänkt vum Book_ID ab .
- Keen aneren Ofhängegkeeten an dëser Tabell existéieren, also si mir an der Rei. Bedenkt datt den auslännesche Schlëssel Author_ID dës Tabelle op d'AUTHORS-Tabelle verdeelt duerch säin Haaptbegrëff Author_ID . Mir hunn eng Bezéiung geschaf fir eng transitiv Dependenz zu vermeiden, e Schlësselentwurf vun relationalen Datenbanken.
AUTHORS Dësch :
- Autor_ID → Autor: De Autor hänkt vum Author_ID ab .
- Auteur → Autor_Nationality: D'Nationalitéit kann vum Auteur festgeluecht ginn.
- Autor_ID → Autor_Nationalitéit: D'Nationalitéit kann aus dem Autor_ID duerch den Autor Attribut festgeluecht ginn. Mir hunn nach ëmmer eng transitiv Abhängigkeit.
Mir mussen eng drëtt Dësch setzen fir dës Donnéeën normaliséieren:
LÄNNER
Country_ID | Land |
---|---|
Coun_001 | Vereenegt Staaten |
Coun_002 | Kanada |
AUTHORS
Autor_ID | Auteur | Country_ID |
---|---|---|
Auth_001 | Orson Scott Card | Coun_001 |
Auth_002 | Margaret Atwood | Coun_002 |
Elo hunn mir dräi Dëscher, fir aus zwëschene Schlësselen ze verbannen tëschent den Dëscher ze verbannen:
- Den externen Schlëssel vum BOOK-Dësch Autor_ID verknäicht e Buch an engem Auteur an der AUTHORS-Tabelle.
- Den externen Schlëssel vum AUTHORS-Table Country_ID verbënnt en Auteur zu engem Land an der Tabelle LOUNEN .
- D'LÄNDER LËTZEBUERG huet keen auslännesche Schlëssel, well et kee Notwendeg fir eng aner Dësch an dëser Konstruktioun ze verbannen.
Firwat Transitlech Dependenzen sinn Bad Database Design
Wat ass de Wäert fir Transitiv Abhängegkeeten ze vermeiden fir 3NF ze garantéieren? Loosst eis eisen éischten Dësch erënneren a kuckt d'Froen déi et schreift:
AUTHORS
Autor_ID | Auteur | Buch | Autor_Nationalitéit |
---|---|---|---|
Auth_001 | Orson Scott Card | Ender's Spill | Vereenegt Staaten |
Auth_001 | Orson Scott Card | Kanner vum Geescht | Vereenegt Staaten |
Auth_002 | Margaret Atwood | D'Handmaid's Geschlecht | Kanada |
Dës Konsideratioun kann dozou bäidroen fir Datenanomalien a Onkonsistenzen, zum Beispill:
- Wann Dir déi zwee Bicher "Children of Mind" an "Ender's Game" geläscht hutt, da kënnt Dir den Autor "Orson Scott Card" a senger Nationalitéit komplett aus der Datebank geläscht.
- Dir kënnt en neien Auteur net zur Datebank bréngen, ausser Dir addéiert och e Buch; Wat wann de Auteur nach net publizéiert gëtt oder Dir wësst net den Numm vun engem Bësch deen d'Auteurin huet?
- Wann d'"Orson Scott Card" seng Staatsbudget verännert huet, musst Dir se an all d'Akten änneren, an där hie steet. E puer Informatiounen mat deemselwechte Autor huet misse falschen Daten eroflueden: wat ass wann d'Dateneingelung Persoun net erkennt datt et e puer Datebank fir him ass a ännert d'Daten an nëmmen engem Rekord?
- Dir kënnt kee Buch als "The Handmaid's Tale" läschen, ouni datt den Auteur komplett komplett geläscht gëtt.
Dëst sinn nëmmen e puer Grënn, firwat Normaliséierung a Transitioun vun Abhänges ze vermeiden, Dateschutz ze schützen a Konsequenz ze garantéieren.