Beth yw Dibyniaeth Ddata Ddigidol?

Mae dibyniaethau cronfa ddata yn bwnc sy'n aml yn cyfoethogi myfyrwyr a gweithwyr proffesiynol cronfa ddata fel ei gilydd. Yn ffodus, nid yw'r rhain yn gymhleth ac y gellir eu dangos orau trwy ddefnyddio nifer o enghreifftiau. Yn yr erthygl hon, rydym yn archwilio mathau o ddibyniaeth cronfa ddata gyffredin.

Dibyniaeth Ddata / Dibyniaeth Weithredol

Mae dibyniaeth yn digwydd mewn cronfa ddata pan fo gwybodaeth sy'n cael ei storio yn yr un gronfa ddata yn pennu gwybodaeth arall sy'n cael ei storio yn yr un tabl yn unigryw. Gallwch hefyd ddisgrifio hyn fel perthynas lle mae gwybod gwerth un priodoldeb (neu set o nodweddion) yn ddigon i ddweud wrthych werth priodoldeb arall (neu set o nodweddion) yn yr un tabl.

Mae'r ffaith bod dibyniaeth rhwng nodweddion mewn tabl yr un fath â dweud bod dibyniaeth swyddogaethol rhwng y nodweddion hynny. Os oes dibyniaeth mewn cronfa ddata fel bod priodwedd B yn dibynnu ar briodoldeb A, byddech yn ysgrifennu hyn fel "A -> B".

Er enghraifft, Mewn tabl sy'n rhestru nodweddion cyflogeion gan gynnwys Rhif Nawdd Cymdeithasol ac enw, gellir dweud bod yr enw yn dibynnu ar SSN (neu enw SSN ->) oherwydd gall enw'r gweithiwr gael ei bennu'n unigryw gan eu SSN. Fodd bynnag, nid yw'r datganiad cefn (enw -> SSN) yn wir oherwydd gall mwy nag un gweithiwr gael yr un enw ond SSN gwahanol.

Dibyniaethau Swyddogaethol Dwys

Mae dibyniaeth swyddogaeth ddibwys yn digwydd pan fyddwch yn disgrifio dibyniaeth swyddogaethol o briodoldeb ar gasgliad o nodweddion sy'n cynnwys y priodoldeb gwreiddiol. Er enghraifft, mae "{A, B} -> B" yn ddibyniaeth swyddogaeth ddibwys, fel y mae "{name, SSN} -> SSN". Gelwir y math hwn o ddibyniaeth swyddogaethol yn ddibwys oherwydd gall fod yn deillio o synnwyr cyffredin. Mae'n amlwg, os ydych eisoes yn gwybod gwerth B, yna gall gwerth B gael ei bennu'n unigryw gan y wybodaeth honno.

Dibyniaethau Swyddogaethol Llawn

Mae dibyniaeth swyddogaethol llawn yn digwydd pan fyddwch eisoes yn bodloni'r gofynion ar gyfer dibyniaeth swyddogaethol ac ni ellir lleihau'r set o nodweddion ar ochr chwith y datganiad dibyniaeth swyddogaethol ymhellach. Er enghraifft, mae "{SSN, age} -> name" yn dibyniaeth swyddogaethol, ond nid yw'n ddibyniaeth weithredol lawn oherwydd gallwch chi gael gwared ar oedran o ochr chwith y datganiad heb effeithio ar y berthynas ddibyniaeth.

Dibyniaethau Trawsnewidiol

Mae dibyniaethau trawsnewidiol yn digwydd pan fo perthynas anuniongyrchol sy'n achosi dibyniaeth swyddogaethol. Er enghraifft, mae "A -> C" yn ddibyniaeth drawsnewidiol pan mae'n wir yn unig oherwydd bod y ddau "A -> B" a "B -> C" yn wir.

Dibyniaethau Aml-werthfawr

Mae dibyniaethau aml-werthfawr yn digwydd pan fo presenoldeb un rhes neu ragor mewn tabl yn awgrymu presenoldeb un neu fwy o resi eraill yn yr un tabl hwnnw. Er enghraifft, dychmygwch gwmni ceir sy'n cynhyrchu sawl model o gar, ond bob amser yn gwneud lliwiau coch a glas pob model. Os oes gennych fwrdd sy'n cynnwys enw, lliw a blwyddyn y model pob car y mae'r cwmni'n ei gynhyrchu, mae yna ddibyniaeth aml - bris yn y tabl hwnnw. Os oes rhes am enw model penodol a blwyddyn yn las, rhaid hefyd fod rhes tebyg yn cyfateb i fersiwn coch yr un car hwnnw.

Pwysigrwydd Dibyniaethau

Mae dibyniaethau cronfa ddata yn bwysig i'w deall gan eu bod yn darparu'r blociau adeiladu sylfaenol a ddefnyddir mewn normaleiddio cronfa ddata . Er enghraifft: