Relational database design er basert på tre viktige teknikker: en-til -mange-relasjon , sammenføyningen tabellen , og mange-til -mange-relasjon . For å forstå relasjonsdatabase design, er det viktig å kjenne disse teknikkene , samt konkrete begreper om nøkkelen feltet . The One -til -mange-relasjon
Den vanligste relasjonsdatabase teknikken er den en-til -mange-relasjon . Dette forbinder en enkelt post i den primære tabellen ( det vil si en flat - fil database med poster og felt ) , med en rekke poster i en sekundær tabell . En-til -mange-relasjoner er preget av unike tilkoblinger i den sekundære tabellen , hver av disse postene kan ikke ha mer enn en relatert post i den primære tabellen
Disse tilkoblingene er laget ved hjelp av " viktige felter" , . som er unike oppføringer i den primære tabellen , vanligvis disse feltene er opprettet og håndheves av automatisk tildele en sekvensielle serienummeret til hver ny rekord . Noen post i den sekundære tabellen som deler denne unike data vil være knyttet til en primær posten.
Nå , utforske dette med et eksempel adressebok database. Si at du ønsker et design som gjør at alle i databasen til å ha flere telefonnumre . Dette er den vanligste måten å oppnå dette : en
Folk tabell: Record 1 : ( PersonID : 1 , Navn: " Franklin Roosevelt ") Record 2 : ( PersonID : 2 , Name: " Lyndon Johnson" )
telefoner tabellen : Record 1 : ( PersonID : 1 , Tlf: " 202-555-1932 ") Record 2 : ( PersonID : 1 , Tlf: " 202-555-1936 ") Record 3 : ( PersonID : 2 , Tlf: " 202-555-1964 ")
Når disse to tabellene er relatert ved PersonID nøkkelen feltet, vil Franklin ha to telefonnumre , men Lyndon vil bare ha en. Likeledes er hvert telefonnummer unikt knyttet til en enkelt person i People tabellen .
Bli Tabeller
En annen teknikk som kalles en "bli bordet ", som er brukes for poster som trekkes fra to andre tabellene. Dette er ofte brukt når dataene må velges fra faste tabeller , bli med tabeller kan bare holde relasjonelle data , gikk så alle data inn i dem må trekkes fra eksisterende tabeller
for eksempel anta at du vil legge til. en "jobb " eller "hjem" etiketten til alle telefonnumrene i eksempelet database. Gjør dette ved å skrive om forholdet som en join tabell:
Folk tabell: Record 1 : ( PersonID : 1 , Navn: " Franklin Roosevelt ") Record 2 : ( PersonID : 2 , Name: " Lyndon Johnson" )
telefoner tabellen : Record 1 : ( PhoneID : 1 , Tlf: " 202-555-1932 ") Record 2 : ( PhoneID : 2 , Tlf: " 202-555-1936 ") Record 3 : ( PhoneID : 3 , Tlf: " 202-555-1964 ")
PhoneType tabell: Record 1 : ( PhoneTypeID : 1 , Type : " arbeid") Record 2 : ( PhoneTypeID : 2 , Type : "hjem" )
Bli tabell: Record 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 databasen , alle relasjoner koble til join bord, som gjør alt arbeidet om et navn til et telefonnummer , og begge disse til et telefonnummer type. En mer effektiv versjon kunne bruke to bli med tabeller , siden navnet på personen trenger ikke være direkte knyttet til den typen telefon : PersonID og PhoneID i join tabell 1 , PhoneID og PhoneTypeID i delta tabell 2
.
Bruke Bli med tabeller til å lage mange-til -mange-relasjoner
bli med tabeller , er den en-til -mange-relasjon ikke lenger håndhevet. Hvis vi vil, kan vi tildele samme telefonnummer til mange mennesker , eller " hjem " eller "arbeid" etiketten til så mange telefoner som vi liker. Dette gir oss muligheten til å sette opp mange-til -mange-relasjoner , hvor en post i en tabell kan koble til flere poster i andre tabeller . Dette er en kraftig database teknikk , men siden det kan skape kompliserte data relasjoner , bør det bare brukes der en en-til -mange-relasjon ikke vil være nok.