Saihestu etengabeko menpekotasunak Normalizazioa bermatzeko laguntza
Datu-basearen menpekotasun iragankorra menpekotasun funtzionala eragiten duen mahai berean balioen arteko lotura zuzena da. Hirugarren formulario normalizatuaren normalizazio estandarra lortzeko (3NF), zeharkako mendekotasuna ezabatu behar duzu.
Bere izaeraren arabera, mendekotasun iragankorra hiru edo gehiago atributuak (edo datu-basearen zutabeak) funtzioen menpekotasun bat daukate, hau da, zutabea A taula batean zutabe B oinarritzen B bitarteko Tarteko zutabe baten bidez.
Ikus dezagun nola funtzionatzen duen.
Mendekotasun iragankorra adibidea
Egileak
Author_ID | Egilea | liburua | Author_Nationality |
---|---|---|---|
Auth_001 | Orson Scott txartela | Ender's Game | Ameriketako Estatu Batuak |
Auth_001 | Orson Scott txartela | Ender's Game | Ameriketako Estatu Batuak |
Auth_002 | Margaret Atwood | Eskuzabalaren istorioa | Kanadan |
Goiko AUTHORS adibidean:
- Liburua → Egilea : Hemen, Liburuaren atributuak egilearen atributua zehazten du. Liburuaren izena ezagutzen baduzu, egilearen izena ezagutu dezakezu. Hala eta guztiz ere, Egileak ez du zehazten Liburua , egile batek liburu bat baino gehiago idatz dezakeelako. Esate baterako, Orson Scott Card izenaren egilea ezagutzen dugunean, oraindik ez dakigu liburu-izena.
- Egilea → Egilea Nazionalitatea : Era berean, Egile atributuak Egilea Nazionalitatea zehazten du, baina ez beste modu batera; noski, badakigu nazionalitatea ez dela egileak zehaztu ahal izango dugunik.
Baina taula honek mendekotasun iragankorra aurkezten du:
- Liburua → Egilea Nazionalitatea: Liburu izenik ezagutzen badugu, nazionalitatea zehaztu ahal izango dugu Egilearen zutabearen bidez.
Etengabeko mendekotasunak saihestea
Hirugarren Forma Normala ziurtatzeko, utzi mendekotasun iragankorra.
Liburuaren zutabea Autoreen taulan ezabatuz eta Liburutegi liburu bereizi bat sortuz has daiteke.
LIBURU
Book_ID | liburua | Author_ID |
---|---|---|
Book_001 | Ender's Game | Auth_001 |
Book_001 | Mindaren Haurrak | Auth_001 |
Book_002 | Eskuzabalaren istorioa | Auth_002 |
Egileak
Author_ID | Egilea | Author_Nationality |
---|---|---|
Auth_001 | Orson Scott txartela | Ameriketako Estatu Batuak |
Auth_002 | Margaret Atwood | Kanadan |
Arazo hau konpondu du? Ikus dezagun gure mendekotasunak orain:
LIBURUEN TAILA :
- Book_ID → Liburua: Liburua Book_ID araberakoa da.
- Ez dago mahai honetako beste mendekotasunik, beraz, ongi gaude. Kontutan izan Kanpo-giltza Egile_ID estekak mahai hau AUTHORS taulara eramango duela bere lehen mailako gakoarekin Author_ID . Erlazio bat sortu dugu mendekotasun iragankorra saihesteko, datu-base erlazionalen oinarrizko diseinua.
AUTORE taula :
- Autor_ID → Egilea: Egilea Author_ID araberakoa da.
- Egilea → Egilea Nazionalitatea: Nazionalitatea egilearen arabera zehaztu daiteke.
- Autor_ID → Egilea Nazionalitatea: Autoritatearen Egilearen atributuaren bidez zehaztutako nazionalitatea Autodeterminazioaren arabera zehaztu daiteke. Mendekotasun iragankorra izaten jarraitzen dugu.
Hirugarren taula bat gehitu behar dugu datuak normalizatzeko:
LURRALDEAK
Country_ID | Herria |
---|---|
Coun_001 | Ameriketako Estatu Batuak |
Coun_002 | Kanadan |
Egileak
Author_ID | Egilea | Country_ID |
---|---|---|
Auth_001 | Orson Scott txartela | Coun_001 |
Auth_002 | Margaret Atwood | Coun_002 |
Orain, hiru taulak ditugu, taulen artean esteken giltzak erabil ditzaten.
- LIBURU mahaiaren atzerriko gakoa Author_ID liburuei AUTORE taula bateko egile bati lotzen dio.
- AUTHORS mahaiaren atzerriko gakoa Country_ID estekak egileak herrialde batean COUNTRIES mailean.
- COUNTRIES maulak ez du atzerriko gakorik, diseinu honetarako beste taula batera estekatzeko beharrik ez baituelako.
Zergatik bidegurutzeen mendekotasunak badira datu-basearen diseinua?
Zein da 3NF bermatzeko laguntzarik gabeko menpekotasun iragankorrak saihesteko balio? Ikus dezagun gure lehen taula berriro eta ikusi sortzen dituen gaiak:
Egileak
Author_ID | Egilea | liburua | Author_Nationality |
---|---|---|---|
Auth_001 | Orson Scott txartela | Ender's Game | Ameriketako Estatu Batuak |
Auth_001 | Orson Scott txartela | Mindaren Haurrak | Ameriketako Estatu Batuak |
Auth_002 | Margaret Atwood | Eskuzabalaren istorioa | Kanadan |
Diseinu mota honek datu anomaliak eta inkoherentziak ekar ditzake, adibidez:
- "Mindaren Haurrak" eta "Ender's Game" liburuak ezabatu badituzu, "Orson Scott Card" eta bere naziotasuna "datu-basetik" egilearen ezabapena ezabatuko zenituzke.
- Ezin duzu egile berri bat sartu datu-basera, liburua ere gehitu ezean. Zer gertatzen da egilea oraindik argitaratu ez bada edo ez badakizu idazten duen liburu baten izena?
- Orson Scott Card-ek "herritartasuna aldatu" balu, agertzen den erregistro guztietan aldatu beharko zenuke. Egile beraren erregistro ugari izatea datu zehaztugabeak sor ditzake: zer gertatzen da datuen sarrerarekin ez badago konturatzen, erregistro bat baino gehiago baditu eta datuak erregistro bakarrean aldatzen badira?
- Ezinezkoa da "Eskuzabalaren historia" bezalako liburua ezabatzea, egileak erabat ezabatu gabe ere.
Horiek normalizazio arrazoiak direla eta, etengabeko mendekotasunak saihesten dituzte datuak babestea eta koherentzia bermatzea.