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:
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:
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:
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:
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.