Relationel database design er baseret på tre store teknikker : en-til -mange-relation , det join bordet, og mange-til -mange-relation . For at forstå relationel database design, er det vigtigt at kende disse teknikker , samt specifikke begreber for den centrale felt. The One -til -mange-relation
p mest almindelige relationel database teknik er en-til -mange-relation . Dette forbinder en enkelt post i den primære tabel ( dvs. en flad fil database over poster og felter ), med antallet af poster i en sekundær tabel. En-til -mange-relationer er karakteriseret ved unikke forbindelser i den sekundære bordet, hver af disse registre kan ikke have mere end én relateret post i den primære tabel
Disse forbindelser er lavet ved hjælp " nøglefelter " . som er unikke poster i den primære tabel , som regel disse felter er skabt og håndhæves ved automatisk at tildele en sekventiel serienummer til hver ny post. Enhver post i den sekundære tabel, som deler denne unikke data vil være relateret til en primær post.
, Udforske det med et eksempel adressebog database. Sig du vil et design, som giver alle i databasen for at have flere telefonnumre. Dette er den mest almindelige måde at opnå dette : Hej
People tabel : Optag 1: ( PersonID : 1, navn: " Franklin Roosevelt " ) Record 2: ( PersonID : 2, navn: " Lyndon Johnson " ) < br >
Telefoner table : Optag 1 : ( PersonID : 1, Telefon: " 202-555-1932 " ) Record 2 : ( PersonID : 1, Telefon: " 202-555-1936 " ) Record 3: ( PersonID : 2 Telefon: " 202-555-1964 " )
Når disse to tabeller er relateret af PersonID centrale område, vil Franklin have to telefonnumre , men Lyndon vil kun have én. Ligeledes hvert telefonnummer er entydigt forbundet med en enkelt person i Folkerepublikken tabellen.
Deltag Borde
En anden teknik kaldes en "join bord" , som er anvendes til optegnelser, der er trukket fra to andre tabeller . Dette er almindeligt anvendt , når data skal vælges fra faste borde , slutte tabeller kan kun holde relationelle data , så alle data har indgået dem skal trækkes fra eksisterende tabeller
For eksempel antage, at du ønsker at tilføje. et "værk " eller "hjem" label til hver af telefonnumre i eksemplet databasen. Gør dette ved at omskrive forholdet som en join tabel : Hej
People tabel : Optag 1: ( PersonID : 1, navn: " Franklin Roosevelt " ) Record 2: ( PersonID : 2, navn: " Lyndon Johnson " ) Salg
Telefoner table : Optag 1 : ( PhoneID : 1, Telefon: " 202-555-1932 " ) Record 2 : ( PhoneID : 2, Telefon: " 202-555-1936 " ) Record 3: ( PhoneID : 3, Telefon: " 202-555-1964 " )
PhoneType tabel : Optag 1: ( PhoneTypeID : 1, type : "arbejde" ) Record 2: ( PhoneTypeID : 2, Type: "hjem" )
Deltag tabel : Optag 1: ( PersonID : 1, PhoneID : 1, PhoneTypeID : 1 ) Record 2: ( PersonID : 2, PhoneID : 2, PhoneTypeID : 2 ) Record 3: ( PersonID : 3, PhoneID : 3, PhoneTypeID : 1)
i denne database , som alle de relationer, oprette forbindelse til join tabel, som gør alt arbejdet for vedrører et navn til et telefonnummer , og begge af disse til et telefonnummer type. En mere effektiv udgave kunne bruge to slutte tabeller , da personens navn ikke behøver at være direkte relateret til den type telefon : PersonID og PhoneID i join tabel 1 , PhoneID og PhoneTypeID i slutte tabel 2
.
Brug Deltag tabeller til at skabe mange -til -mange-relationer
slutte tabeller , en-til -mange-relation er ikke længere håndhæves. Hvis vi vil, kan vi tildele samme telefonnummer til mange mennesker , eller " privat" eller "arbejde" label til så mange telefoner , som vi kan lide. Dette giver os mulighed for at oprette mange-til -mange-relationer , hvor en post i en tabel kan oprette forbindelse til flere poster i andre tabeller. Dette er en kraftfuld database teknik , men da det kan skabe komplicerede data relationer , bør det kun bruges, hvis en en-til -mange-relation er ikke nok .