Mae'r term cronfa ddata "perthynas" neu "berthynas" yn disgrifio'r ffordd y mae'r data mewn tablau yn gysylltiedig.
Yn aml mae gan newydd-ddyfodiaid i fyd y cronfeydd data amser caled yn gweld y gwahaniaeth rhwng cronfa ddata a thaenlen. Maent yn gweld tablau o ddata ac yn cydnabod bod cronfeydd data yn caniatáu i chi drefnu ac ymholi data mewn ffyrdd newydd, ond nid ydynt yn deall arwyddocâd y berthynas rhwng data sy'n rhoi ei enw i dechnoleg cronfa ddata berthynas.
Mae perthnasoedd yn caniatáu i chi ddisgrifio'r cysylltiadau rhwng gwahanol dablau cronfa ddata mewn ffyrdd pwerus. Yna gellir ymyrryd â'r perthnasoedd hyn i berfformio ymholiadau traws-bwrdd grymus, a elwir yn ymuno.
Mathau o Gydberthnasau Cronfa Ddata
Mae yna dair gwahanol fath o berthynas â chronfa ddata, pob un yn cael ei enwi yn ôl nifer y rhesi bwrdd a allai fod yn rhan o'r berthynas. Mae pob un o'r tri math hwn o berthynas rhwng dau dabl.
- Mae perthynas un-i-un yn digwydd pan fo gan bob cofnod yn y tabl cyntaf un, a dim ond un, sy'n gymharu yn yr ail bwrdd. Anaml iawn y defnyddir perthynas un-i-un oherwydd ei bod yn aml yn fwy effeithlon i roi'r cyfan o'r wybodaeth mewn un tabl. Mae rhai dylunwyr cronfa ddata yn manteisio ar y berthynas hon trwy greu tablau sy'n cynnwys is-set o'r data o dabl arall.
- Perthynas un-i-lawer yw'r math mwyaf cyffredin o berthynas cronfa ddata. Maent yn digwydd pan fo pob cofnod yn Nhabl A yn cyfateb i un neu fwy o gofnodion yn Nhabl B, ond mae pob cofnod yn Nhabl B yn cyfateb i un cofnod yn Nhabl A. Er enghraifft, y berthynas rhwng tabl Athrawon a thabl Myfyrwyr mewn ysgol elfennol byddai'r gronfa ddata yn debygol o fod yn berthynas un-i-lawer, gan mai dim ond un athro sydd gan bob myfyriwr, ond mae gan bob athro nifer o fyfyrwyr. Mae'r dyluniad un-i-lawer hwn yn helpu i ddileu data dyblyg.
- Mae perthnasau llawer i lawer yn digwydd pan fo pob cofnod yn Nhabl A yn cyfateb i un neu fwy o gofnodion yn Nhabl B, ac mae pob cofnod yn Nhabl B yn cyfateb i un neu fwy o gofnodion yn Nhabl A. Er enghraifft, mae'r berthynas rhwng Athrawon a Chyrsiau byddai'r bwrdd yn debygol o fod llawer iawn oherwydd gall pob athro / athrawes gyfarwyddo mwy nag un cwrs, ac efallai y bydd gan bob cwrs fwy nag un hyfforddwr.
Perthnasau Hunangyfeirio: Achos Arbennig
Mae perthnasoedd hunangyfeirio yn digwydd pan nad oes ond un tabl dan sylw. Un enghraifft gyffredin yw tabl Gweithwyr sy'n cynnwys gwybodaeth am oruchwyliwr pob gweithiwr. Mae pob goruchwyliwr hefyd yn gyflogai ac mae ganddo oruchwyliwr ei hun. Yn yr achos hwn, mae perthynas hunan-gyfeirio un-i-lawer, gan fod gan bob gweithiwr un goruchwyliwr, ond gall fod gan bob goruchwyliwr fwy nag un gweithiwr.
Creu Perthynas â Allweddi Tramor
Rydych yn creu perthnasoedd rhwng tablau trwy nodi allwedd dramor . Mae'r allwedd hon yn dweud wrth y gronfa ddata berthynas sut mae'r tablau'n gysylltiedig. Mewn llawer o achosion, mae colofn yn Nhabl A yn cynnwys allweddau sylfaenol y cyfeirir atynt o Dabl B.
Ystyriwch eto esiampl tablau Athrawon a Myfyrwyr. Mae tabl Athrawon yn cynnwys dim ond ID, enw a cholofn cwrs:
InstructorID | Teacher_Name | Cwrs |
---|---|---|
001 | John Doe | Saesneg |
002 | Jane Schmoe | Math |
Mae tabl Myfyrwyr yn cynnwys ID, enw a cholofn allwedd dramor:
StudentID | Myfyriwr_Name | Athrawes_FK |
---|---|---|
0200 | Lowell Smith | 001 |
0201 | Brian Byr | 001 |
0202 | Corky Mendez | 002 |
0203 | Monica Jones | 001 |
Mae'r golofn Teacher_FK yn y tabl Myfyrwyr yn cyfeirio at brif allwedd hyfforddwr yn y tabl Athrawon.
Yn aml, bydd dylunwyr cronfa ddata yn defnyddio "PK" neu "FK" yn enw'r golofn i adnabod allwedd gynradd neu golofn allwedd dramor yn hawdd.
Sylwch fod y ddau dabl hyn yn dangos perthynas un-i-lawer rhwng yr athrawon a'r myfyrwyr.
Perthnasoedd a Uniondeb Refferegol
Unwaith y byddwch chi wedi ychwanegu allwedd dramor i dabl, gallwch wedyn greu cyfyngiad cronfa ddata sy'n gorfodi uniondeb cyfeiriol rhwng y ddau dabl. Mae hyn yn sicrhau bod y berthynas rhwng y tablau yn parhau'n gyson. Pan fo un tabl ag allwedd dramor i fwrdd arall, dywed y cysyniad o gonestrwydd cyfeiriol y dylai unrhyw werth allweddol tramor yn Nhabl B gyfeirio at gofnod presennol yn Nhabl A.
Gweithredu Perthnasoedd
Yn dibynnu ar eich cronfa ddata, rydych chi'n gweithredu perthnasoedd rhwng tablau mewn gwahanol ffyrdd. Mae Microsoft Access yn darparu dewin sy'n hawdd eich galluogi i gysylltu tablau ac i orfodi uniondeb atgyfeiriol hefyd.
Os ydych chi'n ysgrifennu SQL yn uniongyrchol, byddech yn gyntaf yn creu tabl Athrawon, gan ddatgan colofn adnabod fel prif allwedd:
CREATE TABL Athrawon (
CYFARWYDDWR CYNRADD INT AUTO_INCREMENT InstructorID,
Teacher_Name VARCHAR (100),
Cwrs VARCHAR (100)
);
Pan fyddwch yn creu tabl Myfyrwyr, rydych chi'n datgan bod y golofn Teacher_FK yn gyfeiriad allweddol tramor i'r golofn InstructorID yn y tabl Athrawon:
CREATE TABL Myfyrwyr (
PRIFYSGOL CYNRADD,
Student_Name VARCHAR (100), Teacher_FK INT,
CYFEIRIADAU ALLWEDDOL ALLWEDDOL (Teacher_FK) Athrawon (HyfforddwrID))
);
Defnyddio Perthnasau i Ymuno â Thablau
Unwaith y byddwch chi wedi creu un neu ragor o berthynas yn eich cronfa ddata, gallwch chi alluogi eu pŵer trwy ddefnyddio ymholiadau SQL YMUNO i gyfuno gwybodaeth o dablau lluosog. Y math mwyaf cyffredin o ymuno yw JONER SQL JOIN, neu ymuno'n syml. Mae'r math hwn o ymuno yn dychwelyd pob cofnod sy'n bodloni'r amod ymuno o nifer o dablau. Er enghraifft, bydd yr amod hwn yn dychwelyd y Student_Name, Teacher_Name, a'r Cwrs lle mae'r allwedd dramor yn y tabl Myfyrwyr yn cyfateb i'r allwedd gynradd yn y tabl Athrawon:
SELECT. Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
O Fyfyrwyr Myfyrwyr
CYSYLLTWCH Â DYSGU
AR Students.Teacher_FK = Athrawon.InstructorID;
Mae'r datganiad hwn yn cynhyrchu bwrdd rhywbeth fel hyn:
Y Dychweliad Tabl o'r SQL Ymunwch â'r Datganiad
Student_NameTeacher_NameCourseLowell SmithJohn DoEnglishBrian ShortJohn DoEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoEnglish