Enkonduko al Datumaraj Relacioj

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.

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:

Instruistoj
InstructorID Majstro_Name Kurso
001 John Doe Angla
002 Jane Schmoe Matematiko

La tabulo de Studentoj inkluzivas ID, nomon kaj fremdan ŝlosilkolmon:

Studentoj
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