Attiecības ar datu bāzēm ir visu relāciju datu bāzu mugurkauls
Starp divām datu bāzes tabulām ir izveidotas attiecības, ja vienai tabulai ir ārējā atslēga, kas atsaucas uz citas tabulas primāro atslēgu. Šis ir termins relāciju datu bāzes pamatkoncepcija.
Kā ārvalstu valoda strādā, lai izveidotu attiecības
Apskatīsim primāro un ārējo atslēgu pamatus. Primārais taustiņš unikāli identificē katru ierakstu tabulā. Tas ir kandidātu atslēgas veids, kas parasti ir pirmā tabulas kolonna, un to var automātiski izveidot datubāze, lai nodrošinātu, ka tā ir unikāla.
Ārzemju atslēga ir cita kandidāta atslēga (nevis primārā atslēga), ko izmanto, lai saistītu ierakstu ar datiem citā tabulā.
Piemēram, apsveriet šīs divas tabulas, kurās norādīts, kurš skolotājs māca kādā kursā.
Šeit Kursu tabulas galvenā atslēga ir Course_ID. Tās ārējā atslēga ir Teacher_ID:
Kurss_ID | Kursa nosaukums | Teacher_ID |
---|---|---|
Kurss_001 | Bioloģija | Teacher_001 |
Course_002 | Matemātika | Teacher_001 |
Course_003 | Angļu | Teacher_003 |
Jūs varat redzēt, ka svešvalodas kursi atbilst primārajam atslēgu skolotājos:
Teacher_ID | Skolotāja vārds |
---|---|
Teacher_001 | Karmena |
Teacher_002 | Veronika |
Teacher_003 | Jorge |
Var teikt, ka svešvalodas Teacher_ID ir palīdzējusi izveidot attiecības starp kursiem un Skolotāju tabulām.
Datubāzu attiecību veidi
Izmantojot ārējās atslēgas vai citas kandidātu atslēgas, varat izmantot trīs veidu attiecības starp tabulām:
Pakalpojums "viens pret viens" : šāda veida attiecības ļauj tikai vienu ierakstu katrā attiecību pusē.
Primārais taustiņš attiecas tikai uz vienu ierakstu - vai nē - citā tabulā. Piemēram, laulībā katram laulātajam ir tikai viens cits laulātais. Šāda veida attiecības var īstenot vienā tabulā un tādēļ neizmanto ārēju atslēgu.
Viens-pret-daudz : attiecības "viens pret daudz" ļauj vienā ierakstā vienā tabulā saistīt ar vairākiem ierakstiem citā tabulā.
Apsveriet uzņēmumu ar datubāzi, kurā ir tabulas "Klienti un pasūtījumi".
Viens klients var iegādāties vairākus pasūtījumus, taču vienu pasūtījumu nevarēja saistīt ar vairākiem klientiem. Tādēļ Pasūtījumu tabulā būtu ietverta ārējā atslēga, kas sakrita ar klientu tabulas primāro atslēgu, bet Klientiem tabulā nebūtu ārējās atslēgas, kas norāda uz Pasūtījumu tabulu.
Multi-to-many : šī ir sarežģīta saistība, kurā daudzi ieraksti tabulā var saistīt ar daudziem ierakstiem citā tabulā. Piemēram, mūsu biznesam, iespējams, ir vajadzīgi ne tikai Klienti un Pasūtījumu tabulas, bet, iespējams, arī nepieciešama produktu tabula.
Atkal, attiecības starp Klientiem un Pasūtījumu tabulu ir viens pret daudziem, taču apsveriet saikni starp tabulu Rīkojumi un Preces. Pasūtījumā var būt vairāki produkti, un produktu var saistīt ar vairākiem pasūtījumiem: vairāki klienti var iesniegt pasūtījumu, kurā ir daži no tiem pašiem produktiem. Šāda veida attiecības prasa vismaz trīs tabulas.
Kas ir datu bāzu attiecības svarīgas?
Konsekventu attiecību izveidošana starp datu bāzes tabulām palīdz nodrošināt datu integritāti, veicinot datu bāzes normalizēšanu. Piemēram, ko tad, ja mēs nesaistītu nevienu tabulu ar svešvalodas palīdzību, tā vietā vienkārši apvienojām datus kursu un skolotāju tabulās, piemēram:
Teacher_ID | Skolotāja vārds | Kurss |
---|---|---|
Teacher_001 | Karmena | Bioloģija, matemātika |
Teacher_002 | Veronika | Matemātika |
Teacher_003 | Jorge | Angļu |
Šis dizains ir neelastīgs un pārkāpj pirmo datu bāzes normalizēšanas principu, First Normal Form (1NF), kas nosaka, ka katrai tabulas šūnai jābūt vienai atsevišķai datu vienībai.
Vai varbūt mēs nolēmām vienkārši pievienot otro ierakstu Carmen, lai ieviestu 1NF:
Teacher_ID | Skolotāja vārds | Kurss |
---|---|---|
Teacher_001 | Karmena | Bioloģija |
Teacher_001 | Karmena | Matemātika |
Teacher_002 | Veronika | Matemātika |
Teacher_003 | Jorge | Angļu |
Tas joprojām ir vājš dizains, radot nevajadzīgu dublēšanos un ko sauc par datu ievietošanas anomālijām , kas tikai nozīmē, ka tas varētu veicināt neatbilstošus datus.
Piemēram, ja skolotājam ir vairāki ieraksti, kas, ja daži dati ir jārediģē, bet persona, kas veic datu rediģēšanu, neapzinās, ka pastāv vairāki ieraksti? Tad tabulā būtu ietverti dažādi dati par vienu un to pašu personu, bez skaidra līdzekļa, lai to identificētu vai izvairītos no tā.
Pārtraucot šo tabulu divās tabulās, Skolotāji un Kursi (kā vizualizēti iepriekš), izveido pienācīgu attiecību starp datiem un tādējādi palīdz nodrošināt datu konsekvenci un precizitāti.