Perthnasau Cronfa Ddata

Perthnasau cronfa ddata yw asgwrn cefn pob cronfa ddata berthynol

Mae perthynas wedi'i sefydlu rhwng dau dabl o gronfa ddata pan mae un tabl ag allwedd dramor sy'n cyfeirio allwedd gynradd tabl arall. Dyma'r cysyniad sylfaenol y tu ôl i'r gronfa ddata berthynas tymor.

Sut mae Allwedd Dramor yn Gweithio i Sefydlu Perthynas

Gadewch i ni adolygu ffeithiau sylfaenol allweddi cynradd a thramor. Mae allwedd gynradd yn dynodi pob cofnod yn y tabl yn unigryw. Mae'n fath o allwedd ymgeisydd sydd fel arfer yw'r golofn gyntaf mewn tabl a gellir ei gynhyrchu'n awtomatig gan y gronfa ddata i sicrhau ei fod yn unigryw.

Allwedd dramor yw allwedd ymgeisydd arall (nid yr allwedd gynradd) a ddefnyddir i gysylltu cofnod i ddata mewn tabl arall.

Er enghraifft, ystyriwch y ddau dabl hyn sy'n nodi pa athro sy'n addysgu pa gwrs.

Yma, prif allwedd y tabl Cyrsiau yw Course_ID. Ei allwedd dramor yw Teacher_ID:

Cyrsiau
Course_ID Enw'r cwrs Teacher_ID
Cwrs_001 Bioleg Teacher_001
Cwrs_002 Math Teacher_001
Cwrs_003 Saesneg Athro_003

Gallwch weld bod yr allwedd dramor mewn Cyrsiau yn cyfateb i brif allwedd yn Athrawon:

Athrawon
Teacher_ID Teacher_Name
Teacher_001 Carmen
Athro_002 Veronica
Athro_003 Jorge

Gallwn ddweud bod yr allwedd dramor Teacher_ID wedi helpu i sefydlu perthynas rhwng y tablau Cyrsiau a'r Athrawon.

Mathau o Gydberthnasau Cronfa Ddata

Gan ddefnyddio allweddi tramor, neu allweddi ymgeiswyr eraill, gallwch chi weithredu tri math o berthynas rhwng tablau:

Un i un : Mae'r math hwn o berthynas yn caniatáu dim ond un cofnod ar bob ochr i'r berthynas.

Mae'r allwedd gynradd yn ymwneud â dim ond un record - neu ddim - mewn tabl arall. Er enghraifft, mewn priodas, dim ond un priod arall sydd gan bob priod. Gellir gweithredu'r math hwn o berthynas mewn un tabl ac felly nid yw'n defnyddio allwedd dramor.

Un i lawer : Mae perthynas un-i-lawer yn caniatáu i un cofnod mewn un tabl fod yn gysylltiedig â chofnodion lluosog mewn tabl arall.

Ystyriwch fusnes gyda chronfa ddata sydd â thablau Cwsmeriaid a Gorchmynion.

Gall un cwsmer brynu gorchmynion lluosog, ond ni ellid cysylltu un gorchymyn â llu o gwsmeriaid. Felly byddai'r tabl Gorchmynion yn cynnwys allwedd dramor a oedd yn cyfateb i allwedd gynradd tabl Cwsmeriaid, tra na fyddai gan y tabl Cwsmeriaid unrhyw allwedd dramor yn cyfeirio at y tabl Gorchmynion.

Many-to-many : Mae hwn yn berthynas gymhleth lle gall llawer o gofnodion mewn tabl gysylltu â llawer o gofnodion mewn tabl arall. Er enghraifft, mae'n debyg nad oes angen i'n busnes, nid yn unig tablau Cwsmeriaid a Gorchmynion, ond mae'n debyg bod angen tabl Cynnyrch hefyd.

Unwaith eto, mae'r berthynas rhwng y tabl Cwsmeriaid a Gorchmynion yn un i lawer, ond ystyriwch y berthynas rhwng y tabl Gorchmynion a Chynhyrchion. Gall gorchymyn gynnwys cynhyrchion lluosog, a gallai cynnyrch gael ei gysylltu â gorchmynion lluosog: gallai sawl cwsmer gyflwyno gorchymyn sy'n cynnwys rhai o'r un cynhyrchion. Mae angen y math hwn o berthynas ag o leiaf dri tabl.

Beth yw perthnasau cronfa ddata yn bwysig?

Mae sefydlu perthynas gyson rhwng tablau cronfa ddata yn helpu i sicrhau cywirdeb data, gan gyfrannu at normaleiddio cronfa ddata. Er enghraifft, beth os nad oeddem yn cysylltu unrhyw dablau trwy allwedd dramor ac yn hytrach cyfuno'r data yn y tablau Cyrsiau ac Athrawon, fel hyn:

Athrawon a Chyrsiau
Teacher_ID Teacher_Name Cwrs
Teacher_001 Carmen Bioleg, Mathemateg
Athro_002 Veronica Math
Athro_003 Jorge Saesneg

Mae'r dyluniad hwn yn anhyblyg ac yn torri'r egwyddor gyntaf o normaleiddio cronfa ddata, Ffurflen Gyntaf Gyffredin (1NF), sy'n datgan y dylai pob cell bwrdd gynnwys darn unigol o ddata ar wahân.

Neu efallai ein bod ni wedi penderfynu ychwanegu ail gofnod i Carmen, er mwyn gorfodi 1NF:

Athrawon a Chyrsiau
Teacher_ID Teacher_Name Cwrs
Teacher_001 Carmen Bioleg
Teacher_001 Carmen Math
Athro_002 Veronica Math
Athro_003 Jorge Saesneg

Mae hwn yn ddyluniad gwan o hyd, gan gyflwyno dyblygu diangen a'r hyn a elwir yn anghysonderau mewnosod data , sy'n golygu y gallai gyfrannu at ddata anghyson.

Er enghraifft, os oes gan athro nifer o gofnodion, beth os oes angen golygu rhywfaint o ddata, ond nid yw'r person sy'n perfformio'r broses o gasglu data yn sylweddoli bod nifer o gofnodion yn bodoli? Yna byddai'r bwrdd yn cynnwys data gwahanol ar gyfer yr un unigolyn, heb unrhyw ffordd glir i'w nodi neu ei osgoi.

Trwy dorri'r tabl hwn mewn dau dabl, mae Athrawon a Chyrsiau (fel y gwelir uchod), yn creu'r berthynas briodol rhwng y data ac felly'n helpu i sicrhau cysondeb a chywirdeb data.