Databankrelaasjes

Databeskferieningen binne de eftergrûn fan alle relaasje-database

In relaasje is fêststeld tusken twa database-tabellen as in tafel in frjemdske kaai hat dy't de primêre kaai fan in oare tabel ferwizget. Dit is it basisûntwerp efter de term relaasje database.

Hoe't in bûtenlânske kaai wurket om in relaasje te meitsjen

Litte wy de basis fan 'e primêre en frjemde toetsen sjen. In primêre kaai identifizearret elke record yn 'e tabel unike. It is in soarte fan kandidaatskerm dat meastal de earste kolom is yn in tabel en kin automatysk generearre wurde troch de databank om te soargjen dat it unyk is.

In bûtenlânske kaai is in oare kandidaatskerm (net de primêre kaai) dy't brûkt wurdt om in record oan te keppeljen yn gegevens yn in oare tabel.

Bygelyks, beskôgje dizze twa tabellen dy't identifisearje hokker dosint liedt hokker kursus.

Hjiryn is de primêre kaai foar de Courses tabel foar Course_ID. It frjemde kaai is Teacher_ID:

Courses
Course_ID Kursus namme Teacher_ID
Course_001 Biology Teacher_001
Course_002 Math Teacher_001
Course_003 Ingelsk Teacher_003

Jo kinne sjen dat de frjemde kaai yn Courses in primêre kaai is yn Learers:

Learers
Teacher_ID Teacher_Name
Teacher_001 Carmen
Teacher_002 Veronica
Teacher_003 Jorge

Wy kinne sizze dat de bûtenlânske kaaien fan Teacher_ID helpe om in relaasje tusken de kursussen en de leararen tabellen op te setten.

Typen fan databankrelaasjes

Mei help fan bûtenlânske toetsen of oare kandidaatskippen kinne jo trije soarten relaasjes tusken tabellen útfiere:

Ien-oan-ien : Dizze soart relaasje lit mar ien rekord op elke side fan 'e relaasje.

De primêre kaai befettet inkele rekord - of gjin - yn in oare tabel. Bygelyks, yn in houlik hat elke spouse allinich ien oare memmetaal. Dizze soarte fan relaasje kin yn in inkele tabel ynfierd wurde en dêrom gjin bûtenlânske kaai brûke.

Ien-oan-in protte : in ien-in-protte relaasje lit in inkele rekord yn ien tabel hawwe om te relatearjen mei meardere akten yn in oare tabel.

Besykje in bedriuw mei in databank dat tabellen fan klanten en orders hat.

In inkele klant kin meardere oandielen keapje, mar in inkelde opdracht koe net keppele wurde mei meardere klanten. Dêrom sil de tabel Orders in frjemde kaai befetsje dy't de primêre kaai fan 'e tabel Customers oanbelanget, wylst de tabel Customers gjin frjemde kaai hawwe soene nei de Orders tabel.

Folle-tefolle : Dit is in komplekse relaasje wêryn in protte recordings yn in tafel keppele kinne oan in protte recordings yn in oar tabel. Bygelyks, ús bedriuw hat wierskynlik net allinich kabelers en oarders tabels nedich, mar is wierskynlik ek in tabletten foar produkten nedich.

Eartiids is de relaasje tusken de tabellen fan klanten en orders ien-oant-protte, mar beskôgje de relaasje tusken de Orden en Products tabel. In opdracht kin meardere produkten befetsje, en in produkt kin keppele wurde mei meardere oarders: ferskate kliïnten kinne in oarder yntsjinje dy't in part fan deselde produkten befettet. Dizze soarte fan relaasje fereasket op minimale trije tabellen.

Wat binne databankrelaasjes wichtich?

Bestjoeren fan konsistente relaasjes tusken database tabellen helpt soarjen dat gegevensyntegriteit, bydrage oan de database normalisearring. Bygelyks, wat as wy gjin tabellen troch in frjemde toetseboerd ferlitte en krekt de gegevens yn 'e Courses and Teachers tabellen kombinearje, sa:

Leararen en kursussen
Teacher_ID Teacher_Name Ferrin
Teacher_001 Carmen Biology, Mat
Teacher_002 Veronica Math
Teacher_003 Jorge Ingelsk

Dit ûntwerp is ûnbidich en ferlingt it earste begjinsel fan normasearring fan databank, First Normal Form (1NF), dy't liedt dat elke tafeltsel in ien, ûnderskiedend stik fan gegevens befetsje moat.

Of miskien wy besletten om in twadde rekord te meitsjen foar Carmen, om 1NF te brûken:

Leararen en kursussen
Teacher_ID Teacher_Name Ferrin
Teacher_001 Carmen Biology
Teacher_001 Carmen Math
Teacher_002 Veronica Math
Teacher_003 Jorge Ingelsk

Dit is noch in swak ûntwerp, yntrodearjen fan unnotiseft duplikaasje en wat wurdt datasine-anomalies neamd , wat krekt betsjuttet dat it kin bydrage oan inkonsistinte data.

Bygelyks as in learaar meardere akten hat, wat as it moat wêze dat guon gegevens te bewurkjen binne, mar de persoan dy't de databewurking útfiere moat net realisearje dat meardere rekken bestean? De tabel soe dan ferskillende gegevens foar deselde yndividu befetsje, sûnder dúdlike manier om it te identifisearjen of foarkomme.

Troch dit tabel yn twa tabellen te brekken, leararen en kursussen (lykas hjirboppe te sjen), kreëart de goede ferhâlding tusken de gegevens en soarget foar dat de gegevensstigens en -wichtigens garandearje.