I denne øvelsen vil vi utvikle en relasjonsdatabase modell som skaper en adressebok . Vi begynner med en flat - fil database ( det vil si et enkelt tabell av data) , og utvide den med data relasjoner på tvers av flere tabeller . Denne opplæringen utforsker begrepet unike database nøkler , og hvordan du velger dem . Flat -File Adressebok
Vi begynner med en enkel adressebok , i et flatt bord . Hvis du vil, kan du bygge dette i noen regneark, et regneark bruker kolonner og rader for å skape en todimensjonal representasjon av dine data , som er definisjonen på en flat fil
Across toppen, vi ' . ll opprette disse etikettene: Navn , adresse, by , stat, postnummer , telefon og e-post . Dette skaper sju felt for våre registre , som vi kan da gå inn på etterfølgende radene i databasen .
Men hva skjer hvis en enkelt person har mer enn én e-postadresse , eller dersom to personer har samme navn ? I en flat fil , kan dette lett føre til problemer i datalagring eller utnyttelse , for eksempel hvis du skohorn to e-postadresser til en enkelt e-post adresse celle , vil du ikke lenger være i stand til å programmatisk hente én e-postadresse for hver person . ( . Denne begrensningen på dataregistrering - kalt " normalisering " - er avgjørende for å bygge gode databaser , en database hvor alle felt er et sammensurium av informasjon raskt blir ubrukelig)
Den enkleste måten å endre dette på er å holde flat fil , men å legge til nye felt (dvs. post2 , Email3 ) . Dette er også dårlig database design , en rapport eller skript som forsøker å hente en e-postadresse vil mislykkes hvis e-post er blank , men post2 eller Email3 er fylt ut, med mindre stadig mer kompliserte programmer brukes
. enkel Relational Database Model
stedet oppretter en relasjon mellom to flate filer . I den første tabellen , legge til et felt merket ID , og fyll den med sekvensielle tall . Hvert tall må være unikt i hver post . I en annen tabell, oppretter to felt : ID og e-post . Tabellene vil se slik ut : en
Flat: ( Navn: " John Smith " , e-post : " jsmith@nosuchaddress.com ")
Relasjonell : Tabell 1 : ( ID : " 31415 " , Name: " John Smith ") Tabell 2 : ( ID : " 31415 " , e-post : " jsmith@nosuchaddress.com ")
ID-nummeret er "nøkkelen field" som knytter de to tabellene . For å legge til flere e-postadresser til denne posten i tabell 1 , vil du legge til flere poster i den andre tabellen , hver med samme ID som John Smith . Mest database programvare vil administrere disse relasjonene for deg. Legge inn flere e-postadresser til en form vil lage ID- relasjoner bak kulissene , forutsatt databasen modellen er satt opp riktig .
Avansert relasjonelle teknikker
Noen ganger vil kanskje bruke sentrale felt som er seg selv meningsfylt. La oss si at du ønsker å sette opp en ansatt tabellen , men har du to personer begge heter John Smith i samme selskap . Du kan bruke unike IDer for dette , men du kan også bruke andre former for unike data . E-postadresser blir ofte brukt til dette formålet , som de vanligvis er garantert å være unik. En samfunnshus , men der hvor noen mennesker kan dele en e-postadresse , vil ikke være en god bruk av denne teknikken .