Osgoi Dibyniaethau Trawsnewidiol i Helpu Sicrhau Cyffredinoli
Mae dibyniaeth drawsnewidiol mewn cronfa ddata yn berthynas anuniongyrchol rhwng gwerthoedd yn yr un bwrdd sy'n achosi dibyniaeth swyddogaethol . Er mwyn cyrraedd safon normaleiddio Trydydd Normal Ffurflen (3NF), mae'n rhaid i chi ddileu unrhyw ddibyniaeth drawsnewidiol.
Yn ôl ei natur, mae dibeniaeth drawsnewidiol yn gofyn am dair neu fwy o nodweddion (neu gronfeydd cronfa ddata) sydd â dibyniaeth swyddogaethol rhyngddynt, sy'n golygu bod Colofn A mewn tabl yn dibynnu ar Colofn B trwy gyfrwng Colofn Canolradd C.
Gadewch i ni weld sut y gallai hyn weithio.
Enghraifft Dibyniaeth Drawsiannol
AWDURAU
Author_ID | Awdur | Llyfr | Author_Nationality |
---|---|---|---|
Auth_001 | Cerdyn Orson Scott | Gêm Ender | Unol Daleithiau |
Auth_001 | Cerdyn Orson Scott | Gêm Ender | Unol Daleithiau |
Auth_002 | Margaret Atwood | The Story of the Handmaid's Story | Canada |
Yn yr enghraifft AWDURDOD uchod:
- Llyfr → Awdur : Yma, mae priodoldeb y Llyfr yn pennu priodoldeb yr Awdur . Os ydych chi'n gwybod enw'r llyfr, gallwch ddysgu enw'r awdur. Fodd bynnag, nid yw Awdur yn pennu Llyfr , oherwydd gall awdur ysgrifennu llyfrau lluosog. Er enghraifft, dim ond oherwydd ein bod yn gwybod enw'r awdur Cerdyn Orson Scott, nid ydym yn dal i adnabod enw'r llyfr.
- Awdur → Author_ationality : Yn yr un modd, mae'r priodoldeb Awdur yn pennu'r Author_Nationality , ond nid y ffordd arall o gwmpas; dim ond oherwydd ein bod yn gwybod nad yw cenedligrwydd yn golygu y gallwn bennu'r awdur.
Ond mae'r tabl hwn yn cyflwyno dibyniaeth drawsnewidiol:
- Archebu → Author_Nationality: Os gwyddom enw'r llyfr, gallwn benderfynu ar y cenedligrwydd trwy'r golofn Awdur.
Osgoi Dibyniaethau Dros Dro
Er mwyn sicrhau Trydydd Ffurflen Gyffredin, gadewch i ni gael gwared ar y ddibyniaeth drawsnewidiol.
Gallwn ddechrau trwy gael gwared ar golofn Llyfr o'r bwrdd Awduron a chreu tabl Llyfrau ar wahân:
LLYFRAU
Book_ID | Llyfr | Author_ID |
---|---|---|
Llyfr_001 | Gêm Ender | Auth_001 |
Llyfr_001 | Plant y Meddwl | Auth_001 |
Llyfr_002 | The Story of the Handmaid's Story | Auth_002 |
AWDURAU
Author_ID | Awdur | Author_Nationality |
---|---|---|
Auth_001 | Cerdyn Orson Scott | Unol Daleithiau |
Auth_002 | Margaret Atwood | Canada |
A wnaeth hyn ei ddatrys? Edrychwn ar ein dibyniaethau yn awr:
Bwrdd LLYFRAU :
- Book_ID → Llyfr: Mae'r Llyfr yn dibynnu ar Book_ID .
- Nid oes unrhyw ddibyniaethau eraill yn y tabl hwn yn bodoli, felly rydym yn iawn. Sylwch fod yr allwedd dramor Author_ID yn cysylltu y tabl hwn i'r tabl AWDURDOD trwy ei brif allwedd Author_ID . Rydym wedi creu perthynas i osgoi dibyniaeth drawsnewidiol, dyluniad allweddol o gronfeydd data perthynol.
AWDURAU tabl :
- Author_ID → Awdur: Mae'r Awdur yn dibynnu ar yr Author_ID .
- Awdur → Author_Nationality: Gall yr awdur bennu cenedligrwydd.
- Author_ID → Author_Nationality: Gellir pennu cenedligrwydd o'r Author_ID trwy briodoldeb yr Awdur . Mae gennym ddibyniaeth drawsnewidiol o hyd.
Mae angen inni ychwanegu trydydd tabl i normaleiddio'r data hwn:
GWLADAU
Gwlad_ID | Gwlad |
---|---|
Coun_001 | Unol Daleithiau |
Coun_002 | Canada |
AWDURAU
Author_ID | Awdur | Gwlad_ID |
---|---|---|
Auth_001 | Cerdyn Orson Scott | Coun_001 |
Auth_002 | Margaret Atwood | Coun_002 |
Nawr mae gennym dri tabl, gan ddefnyddio allweddi tramor i gysylltu rhwng y tablau:
- Mae allwedd dramor y bwrdd llyfrau Author_ID yn cysylltu llyfr i awdur yn y tabl AUTHORS.
- Mae allwedd tramor tabl yr AUTHORS Country_ID yn cysylltu awdur i wlad yn y tabl COUNTRIES.
- Nid oes gan y tabl COUNTRIES allwedd dramor oherwydd nid oes angen iddo gysylltu â thabl arall yn y dyluniad hwn.
Pam Dyluniadau Dibyniaeth Drawsnewidiol yw Dylunio Cronfa Ddata Dro
Beth yw gwerth osgoi dibyniaethau trawsnewidiol i helpu i sicrhau 3NF? Gadewch i ni ystyried ein tabl cyntaf eto a gweld y materion y mae'n eu creu:
AWDURAU
Author_ID | Awdur | Llyfr | Author_Nationality |
---|---|---|---|
Auth_001 | Cerdyn Orson Scott | Gêm Ender | Unol Daleithiau |
Auth_001 | Cerdyn Orson Scott | Plant y Meddwl | Unol Daleithiau |
Auth_002 | Margaret Atwood | The Story of the Handmaid's Story | Canada |
Gall y math hwn o ddylunio gyfrannu at anghysonderau ac anghysondebau data, er enghraifft:
- Os byddwch wedi dileu'r ddau lyfr "Children of the Mind" a "Ender's Game," byddech yn dileu'r awdur "Cerdyn Orson Scott" a'i genedligrwydd yn llwyr o'r gronfa ddata.
- Ni allwch ychwanegu awdur newydd i'r gronfa ddata oni bai eich bod hefyd yn ychwanegu llyfr; beth os yw'r awdur wedi'i gyhoeddi eto neu nad ydych chi'n gwybod enw llyfr y mae wedi'i awdur?
- Pe bai "Cerdyn Orson Scott" wedi newid ei ddinasyddiaeth, byddai'n rhaid i chi ei newid ym mhob cofnod y mae'n ymddangos. Gall cael nifer o gofnodion gyda'r un awdur arwain at ddata anghywir: beth os nad yw'r person cofnodi data yn sylweddoli bod yna nifer o gofnodion iddo ac yn newid y data mewn un cofnod yn unig?
- Ni allwch ddileu llyfr fel "The Handmaid's Tale" heb ddileu'r awdur yn llwyr hefyd.
Dyma rai o'r rhesymau pam fod normaloli , ac osgoi dibyniaethau trawsnewidiol, yn diogelu data a sicrhau cysondeb.