Entwodiksyon nan bazaj Relasyon

Tèm nan baz done "relasyon" oswa "relasyon" dekri fason ke done nan tab yo konekte.

Newcomers nan mond lan nan baz done souvan gen yon tan difisil wè diferans ki genyen ant yon baz done ak yon calcul. Yo wè tab nan done ak rekonèt ke baz done pèmèt ou òganize ak sijè done nan nouvo fason, men fail atrab siyifikasyon nan relasyon ki genyen ant done ki bay relasyon baz done teknoloji non li yo.

Relasyon yo pèmèt ou dekri koneksyon ki genyen ant tab baz done diferan nan fason ki pwisan. Relasyon sa yo ka Lè sa a, dwe exploit yo fè pwisan kesyon kwa-tab, li te ye kòm kontre ak.

Kalite bazaj relasyon yo

Gen twa diferan kalite relasyon baz done, chak yo te rele dapre kantite ranje tab ki ka patisipe nan relasyon an. Chak nan twa kalite relasyon sa yo egziste ant de tab.

Oto-Referencing Relasyon: Yon ka Espesyal

Oto-referans relasyon rive lè gen yon sèl tab ki enplike. Yon egzanp komen se yon tab Anplwaye ki gen enfòmasyon sou sipèvizè chak anplwaye. Chak sipèvizè se yon anplwaye e li gen sipèvizè li. Nan ka sa a, gen yon sèl-a-anpil relasyon pwòp tèt ou-referans, kòm chak anplwaye gen yon sèl sipèvizè, men chak sipèvizè ka gen plis pase yon sèl anplwaye.

Kreye relasyon ak kle etranje yo

Ou kreye relasyon ant tab pa espesifye yon kle etranje yo .Ka kle sa a di baz done relasyon ki jan tab yo ki gen rapò. Nan anpil ka, yon kolòn nan Table A gen kle prensipal ki referans nan Table B.

Konsidere ankò egzanp la nan pwofesè yo ak elèv tab. Tablo Pwofesè yo gen sèlman yon ID, yon non, ak yon kolòn kou:

Pwofesè
InstructorID Pwofesè_Name Kou
001 John Doe Angle
002 Jane Schmoe Matematik

Tablo Elèv yo gen ladan yon ID, non, ak yon kolòn etranje kle:

Elèv yo
StudentID Student_Name Pwofesè_FK
0200 Lowell Smith 001
0201 Brian Kout 001
0202 Corky Mendez 002
0203 Monica Jones 001

Kolòn Teacher_FK a nan tablo elèv yo referans kle kle prensipal yon enstriktè nan tab pwofesè yo.

Souvan, konsèpteur baz done ap itilize "PK" oswa "FK" nan non kolòn nan fasilman idantifye yon prensipal kle oswa etranje kle kolòn.

Remake byen ke de tab sa yo ilistre yon relasyon yon sèl-a-anpil ant pwofesè yo ak elèv yo.

Relasyon ak Entegrite referansyèl

Yon fwa ou te ajoute yon kle etranje nan yon tab, ou ka Lè sa a, kreye yon contrainte baz done ki ranfòse referans entegrite ant de tab yo. Sa a asire ke relasyon ant tab rete ki konsistan. Lè yon tab gen yon kle etranje pou yon lòt tab, konsèp eta entegrite referansyèl ke nenpòt valè kle etranje nan Table B dwe refere a yon dosye ki deja egziste nan Table A.

Aplike Relasyon

Tou depan de baz done ou, ou aplike relasyon ant tab nan diferan fason. Microsoft Aksè bay yon sòsye ki fasil pèmèt ou konekte tab ak tou ranfòse referans entegrite.

Si ou ap ekri SQL dirèkteman, ou ta premye kreye pwofesè yo tab, deklare yon kolòn ID yo dwe kle prensipal la:

Kreye pwofesè tab yo (

InstructorID INT AUTO_INCREMENT PREMYE KLE,
Pwofesè_Name VARCHAR (100),
Kou VARCHAR (100)
);

Lè ou kreye Tablo Elèv yo, ou deklare kolòn Teacher_FK la pou yon kle etranje yo referencte kolòn InstructorID la nan tab pwofesè yo:

CREATE TABLE Elèv yo (
StudentID INT AUTO_INCREMENT PREMYE KLE,
Student_Name VARCHAR (100), Pwofesè_ FK INT,
KONSÈY LEKÒL (Teacher_FK) REFERANS Pwofesè (InstructorID))
);

Sèvi ak relasyon yo Join Tablo

Yon fwa ou te kreye youn oswa plis relasyon nan baz done ou, ou ka ogmante pouvwa yo lè l sèvi avèk queries SQL JOIN konbine enfòmasyon ki soti nan tab miltip. Kalite ki pi komen nan rantre nan se yon SQL INNER JOIN, oswa yon senp rantre nan. Sa a ki kalite rantre nan retounen tout dosye ki satisfè kondisyon an rantre nan tab miltip. Pa egzanp, kondisyon JOIN sa a pral retounen Student_Name, Teacher_Name, ak kou kote kle etranjè a nan tab elèv la ki koresponn kle prensipal la nan tab pwofesè yo:

Chwazi Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
SOTI NAN Elèv
INNER ANSANM pwofesè yo
SOU Elèv yo. Teacher_FK = Teachers.InstructorID;

Deklarasyon sa a pwodui yon bagay tankou:

Retounen Table soti nan Deklarasyon an SQL Join

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish