La datumbazo "rilata" aŭ "rilato" priskribas la vojon, konektita de datumoj en tabloj.
Komencantoj al la mondo de datumbazoj ofte malfacile vidas la diferencon inter datumbazo kaj folio de folio. Ili vidas tabulojn de datumoj kaj rekonas, ke datumbazoj ebligas al vi organizi kaj konsulti datumojn novajn manierojn, sed ne kompreni la signifon de la rilatoj inter datumoj, kiuj donas rilatan datumbazecon al sia nomo.
Rilatoj permesas al vi priskribi la rilatojn inter malsamaj datumbazoj en potencaj manieroj. Ĉi tiuj interrilatoj povas tiam esti plibonigitaj por plenumi potencajn krucajn tabulojn, konataj kiel kuniĝoj.
Tipoj de Datumaraj Relacioj
Ekzistas tri malsamaj tipoj de datumbazoj, ĉiu nomata laŭ la nombro de tabuloj, kiuj povas esti implikitaj en la rilato. Ĉiu el ĉi tiuj tri rilatoj ekzistas inter du tabloj.
- Unu-al-unu rilatoj okazas kiam ĉiu eniro en la unua tabelo havas unu, kaj nur unu, kontraŭparto en la dua tablo. Unu-al-unu rilatoj estas malofte uzataj ĉar ofte estas pli efika simple meti la tutan informon en sola tablo. Iuj datumbazaj projektantoj utiligas ĉi tiun rilaton kreante tabulojn, kiuj enhavas subcon de la datumoj de alia tablo.
- Unu-al-multaj rilatoj estas la plej ofta tipo de datumbaza rilato. Ili okazas kiam ĉiu rekordo en Tablo A korespondas al unu aŭ pli da rekordoj en Tablo B, sed ĉiu rekordo en Tablo B respondas al nur unu rekordo en Tabelo A. Ekzemple, la rilato inter Majstra tablo kaj Studenta tablo en elementa lernejo datumbazo probable estus unu-al-multaj rilatoj, ĉar ĉiu studento havas nur unu instruiston, sed ĉiu instruisto havas multoblajn studentojn. Ĉi tiu unu-al-multaj dezajnoj helpas forigi duplikatajn datumojn.
- Multaj multaj rilatoj okazas kiam ĉiu rekordo en Tablo A respondas al unu aŭ pli da rekordoj en Tablo B, kaj ĉiu rekordo en Tablo B respondas al unu aŭ pli da rekordoj en Tabelo A. Ekzemple, la rilato inter instruistoj kaj kursoj Tablo verŝajne estos multaj-al-multaj ĉar ĉiu instruisto povas instrui pli ol unu kurson, kaj ĉiu kurso eble havas pli ol unu instruiston.
Referencoj de Memreferencoj: Speciala Kazo
Mem-referencaj rilatoj okazas kiam nur unu tablo okupiĝas. Komuna ekzemplo estas tabulo de Oficistoj, kiu enhavas informojn pri la kontrolisto de ĉiu dungito. Ĉiu kontrolisto estas ankaŭ oficisto kaj havas sian propran kontroliston. En ĉi tiu kazo, ekzistas unu-al-multaj mem-referenca rilato, ĉar ĉiu oficisto havas unu kontroliston, sed ĉiu kontrolisto povas havi pli ol unu dungitaron.
Krei Rilatojn Kun Eksterlandaj Ŝlosiloj
Vi kreas interrilatojn inter tabloj specifante fremdan ŝlosilon . Ĉi tiu ŝlosilo informas la rilatan datumbazon kiel la tabeloj estas rilatigitaj. En multaj kazoj, kolumno en Tabelo A enhavas primajn klavojn, kiuj estas referencitaj de Tabelo B.
Rigardu denove la ekzemplon de la tabeloj de Majstroj kaj Studentoj. La Majstro-tablo enhavas nur ID, nomon kaj kursonon:
InstructorID | Majstro_Name | Kurso |
---|---|---|
001 | John Doe | Angla |
002 | Jane Schmoe | Matematiko |
La tabulo de Studentoj inkluzivas ID, nomon kaj fremdan ŝlosilkolmon:
StudentIDulo | Student_Name | Majstro_FK |
---|---|---|
0200 | Lowell Smith | 001 |
0201 | Brian Mallonga | 001 |
0202 | Corky Mendez | 002 |
0203 | Monica Jones | 001 |
La kolumno Teacher_FK en la Studenta tablo aludas la ĉefan ŝlosilon valora instruisto en la tablo de Majstroj.
Ofte, datumbazaj projektantoj uzos "PK" aŭ "FK" en la kolumnomon por facile identigi ĉefan ŝlosilon aŭ fremdan ŝlosila kolumno.
Rimarku, ke ĉi tiuj du tabloj ilustras unu-al-multaj rilatoj inter la instruistoj kaj la studentoj.
Rilatoj kaj Referente Integrimeco
Unufoje vi aldonis fremdan ŝlosilon al tablo, tiam vi povas krei datumbazan limigon, kiu devigas referencan integrecon inter la du tabloj. Ĉi tio certigas, ke interrilatoj inter tabloj restas konsekvencaj. Kiam unu tablo havas fremdan ŝlosilon al alia tablo, la koncepto de referenca integreco (tiu, ke, kiu) (ĉiu, iu) eksterlanda ŝlosila valoro en Tablo B devas raporti al ekzistanta rekordo en Tabelo A.
Rilatanta Rilatojn
Depende de via datumbazo, vi efektivigas interrilatojn inter tabloj de malsamaj manieroj. Microsoft Access provizas magiiston, kiu facile permesas vin ligi tablojn kaj ankaŭ plenumi referencan integrecon.
Se vi skribas SQL rekte, vi unue kreus la tabulon Majstroj, deklarante ID-kolumnon esti la ĉefa ŝlosilo:
KREUJOJ TABLEJ Instruistoj (
InstructorID INT AUTO_INCREMENT PRIMARY KEY,
Majstro_Name VARCHAR (100),
Kurso VARCHAR (100)
);
Kiam vi kreas la Studan tablon, vi deklaras la majstron de Teacher_FK esti fremda ŝlosilo al referenco de la instrukolora kolumno en la tablo de Instruistoj:
KREU KAJ BAJO Studentoj (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
FOREIGN KEY (Teacher_FK) Referencoj Majstroj (InstructorID))
);
Uzanta Rilatojn por Aliĝi Tablojn
Unufoje vi kreis unu aŭ pli da interrilatoj en via datumbazo, vi povas plibonigi ilian potencon per uzado de SQL JOIN-demandoj por kombini informojn de pluraj tabloj. La plej ofta tipo de aliĝo estas SQL INNER JOIN, aŭ simpla kuniĝo. Ĉi tiu tipo de kuniĝo redonas ĉiujn rekordojn, kiuj renkontas la aliĝon de pluraj tabloj. Ekzemple, ĉi tiu kondiĉo JOIN revenos la Student_Name, Teacher_Name, kaj Kurso kie la fremda ŝlosilo en la Studa tabelo kongruas kun la ĉefa ŝlosilo en la tabelo de Majstroj:
Elektu Studentoj.Student_Name, Instruistoj.Teacher_Name, Instruistoj.Curso
De studentoj
INNER JOIN Instruistoj
Sur Studentoj.Teacher_FK = Instruistoj.InstruktoroID;
Ĉi tiu deklaro produktas tablon ion kiel ĉi:
Revenita Tablo de la SQL-Aliĝu-Komunikilo
Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish