Sissejuhatus andmebaasisuhetesse

Sisukord:

Sissejuhatus andmebaasisuhetesse
Sissejuhatus andmebaasisuhetesse
Anonim

Andmebaasi mõisted relatsioon ja seos kirjeldavad tabelite andmete ühendamise viisi. Relatsiooniandmebaas koosneb kahest või enamast tabelist, mis on seotud kindla võtmega. Relatsiooniandmebaas erineb struktureerimata andmebaasidest, mis on levinud suurandmete algatustes. Relatsiooniandmebaasid nõuavad rangeid reegleid tabelite määratlemise ja tabelitevahelise kehtiva seose kohta.

Image
Image

Andmebaasisuhete tüübid

Seosed võimaldavad kirjeldada andmebaasi tabelite vahelisi seoseid võimsal viisil. Neid seoseid saab seejärel kasutada võimsate tabeliüleste päringute tegemiseks, mida nimetatakse JOIN-ideks.

Andmebaasi seoseid on kolme tüüpi, millest igaühe nimi on antud seosega seotud tabeliridade arvu järgi. Kõik need kolm seostüüpi eksisteerivad kahe tabeli vahel.

  • Üks-ühele seosed tekivad siis, kui igal esimese tabeli kirjel on teises tabelis ainult üks vaste. Üks-ühele seoseid kasutatakse harva, kuna sageli on tõhusam koondada kogu teave ühte tabelisse. Mõned andmebaasi kujundajad kasutavad seda seost ära, luues tabeleid, mis sisaldavad alamhulka teisest tabelist pärit andmetest.
  • Üks-mitmele seosed on kõige levinum andmebaasi seose tüüp. Need tekivad siis, kui iga kirje tabelis A vastab ühele või mitmele tabeli B kirjele, kuid iga kirje tabelis B vastab ainult ühele kirjele tabelis A. Näiteks seos õpetajate tabeli ja õpilaste tabeli vahel algkoolis andmebaas oleks tõenäoliselt üks-mitmele suhe, sest igal õpilasel on ainult üks õpetaja, kuid igal õpetajal on mitu õpilast. See üks-mitmele kujundus aitab kõrvaldada dubleeritud andmed.
  • Mitu-mitmele seosed tekivad siis, kui iga kirje tabelis A vastab ühele või mitmele tabeli B kirjele ja iga kirje tabelis B vastab ühele või mitmele kirjele tabelis A. Näiteks on suhe õpetajate tabeli ja kursuste tabeli vahel tõenäoliselt palju-mitmele, sest iga õpetaja võib juhendada rohkem kui ühte kursust ja igal kursusel võib olla rohkem kui üks juhendaja.

Alumine rida

Iseenesele viitavad seosed tekivad siis, kui tegemist on ainult ühe tabeliga. Üks levinud näide on tabel Töötajad, mis sisaldab teavet iga töötaja juhendaja kohta. Iga juhendaja on ühtlasi töötaja ja tal on juhendaja. Sel juhul on üks-mitmele enesele viitav suhe, kuna igal töötajal on üks ülemus, kuid igal juhendajal võib olla rohkem kui üks töötaja.

Võõrvõtmetega suhete loomine

Tabelitevahelised seosed loote võõrvõtme määramisega. See võti ütleb relatsiooniandmebaasile, kuidas tabelid on seotud. Paljudel juhtudel sisaldab tabeli A veerg primaarvõtmeid, millele on viidatud tabelist B.

Mõelge tabelite Õpetajad ja Õpilased näitele. Tabel Õpetajad sisaldab ID-d, nime ja kursuse veergu:

InstructorID Õpetaja_nimi Kursus
001 John Doe inglise
002 Jane Schmoe Matemaatika

Tabel Õpilased sisaldab ID-d, nime ja võõrvõtme veergu:

StudentID Õpilase_nimi Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

Tabeli Õpilased veerg Teacher_FK viitab õpetaja primaarvõtme väärtusele tabelis Teachers. Sageli kasutavad andmebaasi kujundajad primaarvõtme või võõrvõtme veeru tuvastamiseks veeru nimes PK või FK.

Need kaks tabelit illustreerivad üks-mitmele suhet õpetajate ja õpilaste vahel.

Suhted ja viidete terviklikkus

Pärast võõrvõtme lisamist tabelisse looge andmebaasipiirang, mis jõustab kahe tabeli vahelise viiteterviklikkuse. See samm tagab, et tabelitevahelised seosed jäävad järjepidevaks. Kui ühel tabelis on teise tabeli võõrvõti, nõuab viiteterviklikkus, et mis tahes võõrvõtme väärtus tabelis B viitaks tabelis A olemasolevale kirjele.

Suhete rakendamine

Sõltuv alt teie andmebaasist rakendate tabelite vahelisi seoseid erineval viisil. Microsoft Access pakub viisardit, mis võimaldab teil linkida tabeleid ja jõustada ka viidete terviklikkust.

Kui kirjutate otse SQL-i, looge esm alt tabel Teachers, deklareerides primaarvõtmeks ID veeru:

CREATE TABLE Õpetajad (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Teacher_Name VARCHAR(100), Kursus VARCHAR(100));

Tabeli Õpilased loomisel deklareerite veeru Teacher_FK võõrvõtmeks, mis viitab õpetajate tabeli veerule InstructorID:

LOO TABEL Õpilased (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Õpetaja_ID) REFERENCESor_FK));

Seoste kasutamine tabelitega liitumiseks

Pärast andmebaasis ühe või mitme seose loomist kasutage nende võimsust, kasutades SQL JOIN päringuid, et kombineerida teavet mitmest tabelist. Kõige tavalisem liitumistüüp on SQL INNER JOIN, mis on lihtne liitumine. Seda tüüpi liitmine tagastab kõik kirjed, mis vastavad liitumise tingimusele ühest või mitmest tabelist.

Näiteks see JOIN-tingimus tagastab õpilase_nime, õpetaja_nime ja kursuse, kus õpilaste tabelis olev võõrvõti ühtib õpetajate tabeli primaarvõtmega:

VALI Õpilased. Õpilase_nimi, Õpetajad. Õpetaja_nimi, Õpetajad. Kursus

FROM Õpilased

SISEMINE LIITU ÕpetajadON Õpilased. Teacher_FK=Õpetajad. InstruktorID;

See väide loob umbes sellise tabeli:

Õpilase_nimi Õpetaja_nimi Kursus
Lowell Smith John Doe inglise
Brian Short John Doe inglise
Corky Mendez Jane Schmoe Matemaatika
Monica Jones John Doe inglise

Soovitan: