Rilatoj de Datumbazo

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:

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

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

Instruistoj kaj Kursoj
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:

Instruistoj kaj Kursoj
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.