La rilatoj de datumbazo estas la dorso de ĉiuj rilataj datumbazoj
Rilato estas establita inter du datumbazoj kiam unu tablo havas fremdan ŝlosilon, kiu referencas la primran ŝlosilon de alia tablo. Ĉi tiu estas la baza koncepto malantaŭ la termino rilata datumbazo.
Kiel Ekstera Kerna Laboro Establas Rilaton
Ni revizias la bazojn de primaraj kaj fremdaj klavoj. Primara ŝlosilo identigas ĉiun rekordon en la tablo. Ĝi estas speco de kandidata ŝlosilo, kiu kutime estas la unua kolumno en tablo kaj povas esti aŭtomate generita de la datumbazo por certigi, ke ĝi estas unika.
Eksterlanda ŝlosilo estas alia kandidata ŝlosilo (ne la ĉefa ŝlosilo) uzita por ligi registron al datumoj en alia tablo.
Ekzemple, konsideras ĉi tiujn du tabulojn, kiuj identigas, kiun instruisto instruas, kia kurso.
Jen la ĉefa ŝlosilo de la Kursoj-tablo estas Course_ID. Ĝia eksterlanda ŝlosilo estas Teacher_ID:
Course_ID | Kurso_Name | Majstro_ID |
---|---|---|
Kurso_001 | Biologio | Majstro_001 |
Kurso_002 | Matematiko | Majstro_001 |
Kurso_003 | Angla | Majstro_003 |
Vi povas vidi, ke la fremda ŝlosilo en Kursoj kongruas ĉe primara ŝlosilo en Majstroj:
Majstro_ID | Majstro_Name |
---|---|
Majstro_001 | Carmen |
Majstro_002 | Veronica |
Majstro_003 | Georgo |
Ni povas diri, ke la eksterlanda ŝlosilo Teacher_ID helpis establi rilaton inter la Kursoj kaj la Majstroj.
Tipoj de Datumaraj Relacioj
Uzante fremdajn ŝlosilojn aŭ aliajn kandidatajn ŝlosilojn, vi povas efektivigi tri tipojn de rilatoj inter tabloj:
Unu-al-unu : Ĉi tiu tipo de rilatoj permesas nur unu rekordon sur ĉiu flanko de la rilato.
La ĉefa ŝlosilo rilatas al nur unu rekordo - aŭ neniu - en alia tablo. Ekzemple, en geedzeco, ĉiu edzino havas nur unu alian edzinon. Ĉi tiu speco de rilato povas esti efektivigita en sola tablo kaj do ne uzas fremdan ŝlosilon.
Unu-al-multaj : Unu-al-multaj rilatoj permesas ununuran rekordon en unu tablo rilatigi al pluraj registroj en alia tablo.
Konsideru komercon kun datumbazo, kiu havas tabulojn de Klientoj kaj Ordoj.
Ununura kliento povas aĉeti multoblajn ordojn, sed unu ordo ne povis esti ligita al multaj klientoj. Tial la Ordoj-tablo enhavos eksterlandan ŝlosilon, kiu egalis la ĉefan ŝlosilon de la Tablo de Klientoj, dum la Klienta tablo ne havus eksterlandan ŝlosilon montrante la Ordon-tablon.
Multaj-al-multaj : Ĉi tio estas kompleksa rilato, en kiu multaj rekordoj en tablo povas ligi al multaj registroj en alia tablo. Ekzemple, nia komerco probable bezonas ne nur Klientojn kaj Ordojn tabulojn, sed verŝajne ankaŭ bezonas Produktan tablon.
Denove, la rilato inter la Tablo de Klientoj kaj Ordoj estas unu-al-multaj, sed konsideras la rilaton inter la Ordoj kaj Produktoj tablo. Ordono povas enhavi multoblajn produktojn, kaj produkto povus esti ligita al pluraj ordoj: pluraj klientoj povus submeti ordon kiu enhavas iujn el la samaj produktoj. Ĉi tiu speco de rilato postulas minimume tri tabloj.
Kio estas Datumaj Rilatoj Grava?
Establi konsekvencajn rilatojn inter datumbazoj helpas certigi la integrecon de datumoj, kontribuante al datumbazo de normaligo. Ekzemple, kio se ni ne ligis iujn tabulojn per fremda ŝlosilo kaj anstataŭe nur kombinis la datumojn en la Kursoj kaj Instruistoj tabloj, kiel tiel:
Majstro_ID | Majstro_Name | Kurso |
---|---|---|
Majstro_001 | Carmen | Biologio, Matematiko |
Majstro_002 | Veronica | Matematiko |
Majstro_003 | Georgo | Angla |
Ĉi tiu dezajno estas nefleksebla kaj malobservas la unuan principojn de datumbazo, Unua Normala Formo (1NF), kiu deklaras, ke ĉiu tablo-ĉelo devus enhavi solan diskretan datumon.
Aŭ eble ni decidis simple aldoni duan rekordon por Carmen, por plenumi 1NF:
Majstro_ID | Majstro_Name | Kurso |
---|---|---|
Majstro_001 | Carmen | Biologio |
Majstro_001 | Carmen | Matematiko |
Majstro_002 | Veronica | Matematiko |
Majstro_003 | Georgo | Angla |
Ĉi tio estas ankoraŭ malforta dezajno, enkondukanta nenecesan duplikadon kaj kio estas nomata datumaj enmetiĝaj anomalioj , kio simple signifas, ke ĝi povus kontribui al nekongruaj datumoj.
Ekzemple, se instruisto havas multoblajn rekordojn, kio se iuj datumoj devas esti redaktitaj, sed la persono plenumanta la datuman redakton ne rimarkas, ke ekzistas pluraj registroj? La tablo tiam enhavos malsamajn datumojn por la sama individuo, sen klara maniero identigi ĝin aŭ eviti ĝin.
Rompante ĉi tiun tablon en du tabulojn, Majstroj kaj Kursoj (kiel vidita supre), kreas la taŭgan rilaton inter la datumoj kaj sekve helpas certigi la konsistentecon kaj precizecon de datumoj.