Dibyniaeth Weithredol Llawn mewn Normalization Cronfa Ddata

Mae dibyniaeth swyddogaethol lawn yn gyflwr o normaleiddio cyfatebol sy'n cyfateb i safon normaleiddio'r Ail Ffurflen Gyffredin (2NF) . Yn gryno, mae hyn yn golygu ei fod yn cwrdd â gofynion Ffurflen Gyffredin Normal (1NF), ac mae'r holl nodweddion anhysbys yn gwbl weithredol yn dibynnu ar yr allwedd gynradd.

Nid yw hyn mor gymhleth ag y gallai fod yn swnio. Edrychwn ar hyn yn fanylach.

Crynodeb o'r Ffurflen Gyffredin Gyffredin

Cyn y gall cronfa ddata fod yn gwbl weithredol yn ddibynnol, rhaid iddo gydymffurfio yn gyntaf â Ffurflen Gyffredinol Gyffredin .

Mae hyn i gyd yn golygu bod yn rhaid i bob priodwedd ddal gwerth atomig unigol.

Er enghraifft, nid yw'r tabl canlynol yn cydymffurfio ag 1NF, oherwydd bod y gweithiwr Tina wedi'i gysylltu â dau leoliad, y ddau ohonynt mewn un cell:

Ffurflen Gyffredinol Gyffredin Heb Gydymffurfio
Gweithiwr Lleoliad
John Los Angeles
Tina Los Angeles, Chicago

Gallai caniatáu y dyluniad hwn effeithio'n negyddol ar ddiweddariadau neu gofnodion data. Er mwyn sicrhau cydymffurfiad 1NF, ail-drefnwch y bwrdd fel bod pob nodwedd (neu gelloedd colofn) yn dal un gwerth:

Cydymffurfiad Ffurflen Gyffredin Gyntaf
Gweithiwr Lleoliad
John Los Angeles
Tina Los Angeles
Tina Chicago

Ond mae 1NF yn dal i fod yn ddigon i osgoi problemau gyda'r data.

Sut mae 2NF yn Gweithio i Sicrhau Dibyniaeth Llawn

I fod yn gwbl ddibynnol, rhaid i bob elfen allweddol nad yw'n ymgeisydd ddibynnu ar yr allwedd gynradd. (Cofiwch mai priodwedd allweddol ymgeisydd yw unrhyw allwedd (er enghraifft, allwedd sylfaenol neu dramor) a ddefnyddir i nodi cofnod cronfa ddata yn unigryw.

Mae dylunwyr cronfa ddata yn defnyddio nodiant i ddisgrifio'r berthynas ddibynnol rhwng nodweddion:

Os yw priodoldeb A yn pennu gwerth B, ysgrifennwn yr A -> B - sy'n golygu bod B yn dibynnu'n swyddogol ar A. Yn y berthynas hon, mae A yn pennu gwerth B, tra bod B yn dibynnu ar A.

Er enghraifft, yn y tabl Adrannau Gweithwyr canlynol, mae EmployeeID a'r DeptID yn ddau allwedd ymgeisydd: EmployeeID yw prif allwedd y tabl tra bod DeptID yn allwedd dramor.

Rhaid i unrhyw briodoldeb arall - yn yr achos hwn, EmployeeName a DeptName - ddibynnu ar yr allwedd gynradd i gael ei werth.

Adrannau Gweithwyr
EmployeeID CyflogaiName DeptID AdranName
Emp1 John Adran2001 Cyllid
Emp2 Tina Adran3 Gwerthu
Emp3 Carlos Adran2001 Cyllid

Yn yr achos hwn, nid yw'r tabl yn gwbl ddibynnol oherwydd, tra bod y GweithiwrName yn dibynnu ar y prif weithiwr EmployeeID, mae'r Adran yn dibynnu yn lle hynny ar yr Adran Ddata. Gelwir hyn yn ddibyniaeth rhannol .

I wneud y tabl hwn yn cydymffurfio â 2NF, mae angen i ni wahanu'r data yn ddau dabl:

Gweithwyr
EmployeeID CyflogaiName DeptID
Emp1 John Adran2001
Emp2 Tina Adran3
Emp3 Carlos Adran2001

Rydym yn dileu priodoldeb yr Adran o'r tabl Gweithwyr ac yn creu tabl newydd Adrannau :

Adrannau
DeptID AdranName
Adran2001 Cyllid
Adran 2 Adnoddau Dynol
Adran3 Gwerthu

Nawr mae'r berthynas rhwng y tablau yn gwbl ddibynnol, neu yn 2NF.

Pam Mae Dibyniaeth Llawn yn Bwysig

Mae dibyniaeth lawn rhwng nodweddion cronfa ddata yn helpu i sicrhau cywirdeb data ac osgoi anghysondebau data.

Er enghraifft, ystyriwch y tabl yn yr adran uchod sy'n cadw at 1NF yn unig. Dyma, unwaith eto:

Cydymffurfiad Ffurflen Gyffredin Gyntaf
Gweithiwr Lleoliad
John Los Angeles
Tina Los Angeles
Tina Chicago

Mae gan Tina ddau gofnod. Os byddwn yn diweddaru un heb sylweddoli bod yna ddau, byddai'r canlyniad yn ddata anghyson.

Neu, beth os ydym am ychwanegu gweithiwr i'r tabl hwn, ond nid ydym eto'n gwybod y Lleoliad? Efallai na fyddwn ni'n cael hyd yn oed ychwanegu gweithiwr newydd os nad yw'r priodoldeb Lleoliad yn caniatáu gwerthoedd NULL.

Nid dibyniaeth lawn yw'r darlun cyfan, fodd bynnag, pan ddaw i normaleiddio. Rhaid i chi sicrhau bod eich cronfa ddata yn y Trydydd Ffurf Gyffredin (3NF).