Introduktion til databaser

Din browser understøtter ikke video. Installer Microsoft Silverlight, Adobe Flash Player eller Internet Explorer 9.

Databaser og webapps kan give store forretningsfordele. Databasedesign er afgørende for at nå dine mål, uanset om du vil administrere medarbejderoplysninger, levere ugentlige rapporter med data eller spore kundeordrer. Bruger du tid på at forstå databasedesign, vil det hjælpe dig med at opbygge databaser, som virker rigtigt fra begyndelsen og giver plads til skiftende behov.

Vigtigt: Access-webapps er forskellige fra skrivebordsdatabaser. Denne artikel omhandler ikke design af webapps.

Koncepter og begreber

Lad os starte med at lære nogle grundlæggende begreber og koncepter. Hvis du vil designe en nyttig database, skal du oprette tabeller, som fokuserer på et enkelt emne. I dine tabeller registrerer du alle de nødvendige data for det pågældende emne i felter, som indeholder den mindste dataenhed.

Relationsdatabaser

En database, hvor dataene er inddelt i tabeller, som minder om regneark. Hver tabel har et enkelt emne, f.eks. kunder (én tabel) eller produkter (en anden tabel).

Poster og felter

Lagring af de diskrete data i en tabel. Rækker (eller poster) gemmer hvert enkelt datapunkt, f.eks. navnet på en kunde. Kolonner (eller felter) isolerer de oplysninger, der bliver registreret om hvert enkelt datapunkt i den mindst mulige enhed – fornavn kan være én kolonne, og efternavn kan være en anden.

Primær nøgle

En værdi, der sikrer, at hver post er unik. Der kan f.eks. være to kunder med det samme navn, Elizabeth Andersen. Men en af Elizabeth Andersens poster har tallet 12 som den primære nøgle, og den anden har en primær nøgle på 58.

Relation mellem overordnet-underordnet

Almindelige relationer mellem tabeller. En enkelt kunde kan f.eks. have flere ordrer. Overordnede tabeller har primære nøgler. Underordnede tabeller har fremmede nøgler, hvilket er værdier fra den primære nøgle, som viser, hvordan de underordnede tabelposter er knyttet til den overordnede tabel. Disse nøgler er sammenkædet med en relation.

Hvad er et godt databasedesign?

To principper er grundlæggende for et godt databasedesign:

  • Undgå dublerede oplysninger (også kaldet overflødige data). Det er spild af plads og øger risikoen for fejl.

  • Sørg for, at dataene er korrekte og fuldstændige. Ufuldstændige eller forkerte oplysninger flyder gennem forespørgsler og rapporter og kan i sidste ende føre til fejlinformerede beslutninger.

Som hjælp til disse problemer:

  • Inddel databaseoplysninger i emnebaserede tabeller med et snævert fokus. Undgå dublerede oplysninger i flere tabeller. (F.eks. skal kundenavnene kun optræde i én tabel).

  • Sammenkæd tabellerne ved hjælp af nøgler i stedet for at dublere data.

  • Inkluder processer, der understøtter og sikrer databaseoplysningers nøjagtighed og integritet.

  • Design din database med dit behov for databehandling og -rapportering i tankerne.

Følg disse fem designtrin for at forbedre den langsigtede anvendelighed af dine databaser:

Trin 1: Fastlæg formålet med din database

Før du går i gang, skal du have et mål for din database.

Opsummer formålet med databasen, og referer ofte til opsummeringen for at holde dit design fokuseret. Hvis du ønsker en lille database til en virksomhed i hjemmet, kan du f.eks. skrive noget simpelt såsom: "Kundedatabasen indeholder en liste over kundeoplysninger med det formål at producere mails og rapporter". Til en større virksomhed skal du muligvis bruge flere afsnit til at beskrive, hvornår og hvordan personer i forskellige roller vil bruge databasen og dens data. Opret en specifik og detaljeret missionserklæring, der kan refereres til under hele designprocessen.

Trin 2: Søg efter og organiser nødvendige oplysninger

Indhent alle de typer oplysninger, du vil registrere, f.eks. dine produktnavne og ordrenumre.

Start med dine eksisterende oplysninger og registreringsmetoder. F.eks. registrerer du måske indkøbsordrer i en hovedbog, eller du har kundeoplysninger i trykte formularer. Brug disse kilder til at angive de oplysninger, du aktuelt registrerer (f.eks. alle felterne i dine formularer). Hvor du ikke aktuelt registrerer vigtige oplysninger, skal du overveje, hvilke oplysninger, du skal bruge. Hver enkelt datatype bliver et felt i din database.

Du skal ikke være bange for, at din første liste ikke bliver perfekt – du kan finjustere den med tiden. Men tænk på alle de personer, der bruger disse oplysninger, og spørg dem om deres idéer.

Dernæst skal du tænke over, hvad du vil have ud af databasen, og hvilke typer rapporter eller mails, du vil oprette. Sørg derefter for, at du registrerer de påkrævede oplysninger for at opfylde disse mål. Hvis du f.eks. vil have en rapport, der viser salget efter område, skal du registrere salgsdata på det regionale niveau. Prøv at skitsere rapporten med de faktiske oplysninger, som du gerne vil se dem. Registrer derefter de data, du behøver for at oprette rapporten. Gør det samme for mails eller andre resultater, du ønsker fra databasen.

Eksempel

Antag, at du giver kunder mulighed for at tilmelde sig (eller framelde sig) periodiske mailopdateringer, og du vil udskrive en liste over dem, der har tilmeldt sig. Du har brug for en Send mail-kolonne i Kundetabellen med de tilladte værdier Ja og Nej.

For personer, som er villige til at modtage mails, skal du bruge en mailadresse, hvilket også kræver et felt. Hvis du vil tilføje en passende titulering (f.eks. hr., fru eller frk.), skal du inkludere et felt til det. Hvis du vil henvende dig til kunder med fornavn i mails, kan du tilføje et felt med Fornavn.

Tip: Husk at inddele hver enkelt oplysning i dens mindste anvendelige del såsom fornavn og efternavn for en kundetabel. Hvis du vil sortere, søge, beregne eller rapportere baseret på et element med oplysninger (f.eks. kundens efternavn), bør du generelt placere det element i sit eget felt.

Trin 3: Inddel oplysninger i tabeller

Inddel dine oplysningselementer i overordnede enheder eller emner såsom produkter, kunder og ordrer. Hvert emne bliver en tabel.

Når du har din liste over påkrævede oplysninger, skal du fastlægge de overordnede enheder (eller emner), du skal bruge til at organisere dine data. Undgå at dublere data på tværs af enheder. Den foreløbige liste for en produktsalgsdatabase kan eksempelvis se således ud:

Skærmbillede af oplysningselementer, der er inddelt i emner

De overordnede enheder er: kunder, leverandører, produkter og ordrer. Start med disse fire tabeller: én til fakta om kunder, én til fakta om leverandører osv. Dette er muligvis ikke dit endelige design, men det er et godt udgangspunkt.

Bemærk: De bedste databaser indeholder flere tabeller. Undgå fristelsen til at placere alle dine oplysninger i en enkelt tabel. Dette resulterer i dublerede oplysninger, større database og flere fejl. Lav dit design på en sådan måde, at du kun at registrerer hver enkelt oplysning én gang. Hvis du opdager, at du gentager oplysningerne, f.eks. en leverandørs adresse, skal du omstrukturere databasen for at placere oplysningerne i en separat tabel.

Hvis du vil forstå, hvorfor flere tabeller er bedre end færre, kan du tage et kig på den tabel, der vises her:

Skærmbillede af data om Produkter og Leverandører

Hver række indeholder oplysninger om både produktet og dets leverandør. Da du kan have mange produkter fra den samme leverandør, skal oplysninger om leverandørens navn og adresse gentages mange gange. Det er spild af diskplads. Registrer i stedet kun leverandøroplysningerne én gang i en separat tabel Leverandører, og knyt derefter den pågældende tabel til tabellen Produkter.

Et andet problem med dette design fremgår tydeligt, når du vil redigere oplysninger om leverandøren. Antag, at du vil ændre en leverandørs adresse. Da den vises mange forskellige steder, ændrer du måske adressen ved et uheld ét sted, men glemmer at ændre den de andre steder. Du løser dette problem ved kun at registrere leverandørens adresse ét sted.

Et sidste scenarie kan være, at Coho Winery kun leverer ét produkt, som du gerne vil slette, men du vil gerne bevare oplysningerne om leverandørens navn og adresse. Hvordan vil du med dette design slette produktposten uden at miste leverandøroplysningerne? Det kan du ikke. Da hver post indeholder oplysninger om et produkt ud over oplysninger om en leverandør, er det umuligt at slette det ene uden også at slette det andet. Du kan derfor inddele denne tabel i to dele for at holde disse fakta adskilt: den første til produktoplysninger og den anden til leverandøroplysninger. Når du derefter sletter en produktpost, sletter du kun oplysningerne om produktet – ikke oplysninger om leverandøren.

Trin 4: Omdan oplysningselementer til kolonner

Beslut, hvilke oplysninger du har brug for at gemme i hver tabel. Disse diskrete stykker data bliver felter i tabellen. Medarbejdertabellen kan f.eks. indeholde felter som Efternavn, Fornavn og Ansættelsesdato.

Når du har valgt emnet for en databasetabel, bør kolonnerne i den pågældende tabel kun gemme oplysninger om det enkelte emne. F.eks. bør en produkttabel kun indeholde fakta om produkter – ikke om deres leverandører.

Brug den liste, du oprettede tidligere, for at afgøre, hvilke oplysninger, der skal spores i tabellen. F.eks. kan den brugerdefinerede tabel omfatte: Fornavn, efternavn, adresse, send mail, titulering og mailadresse. Hver post (kunde) i tabellen indeholder det samme sæt af kolonner, så du gemmer præcis de samme oplysninger for hver kunde.

Opret din første liste, og gennemse og juster den derefter. Husk at bryde oplysningerne ned i de mindst mulige felter. Hvis din oprindelige liste har adresse som et felt, så inddel den i adresse, by, og postnummer – eller, hvis du har kunder andre steder i verden, i endnu flere felter. På den måde kan du f.eks. håndtere forsendelser i det korrekte format eller rapportere om ordrer efter stat.

Når du har justeret datakolonnerne i hver tabel, er du klar til at vælge en primær nøgle for hver tabel.

Trin 5: Angiv primære nøgler

Vælg en primær nøgle for hver tabel. Den primære nøgle, f.eks. produkt-id eller ordre-id, identificerer entydigt hver post. Hvis du ikke har et oplagt, entydigt id, kan du bruge Access til at oprette et til dig.

Du har brug for en metode til at identificere hver række i hver tabel entydigt. Kan du huske eksemplet fra tidligere, hvor to kunder har det samme navn? Eftersom de deler et navn, skal du bruge en metode til at identificere hver enkelt.

Således bør hver tabel indeholde en kolonne (eller sæt af kolonner), som entydigt identificerer hver række. Dette kaldes den primære nøgle og er ofte et entydigt nummer, såsom et medarbejder-id eller et serienummer. Access bruger primære nøgler til hurtigt at tilknytte data fra flere tabeller og samle data for dig.

Nogle gange består den primære nøgle af to eller flere felter. F.eks. bruger en tabel med ordreoplysninger, der gemmer linjeelementer til ordrer, måske to kolonner til den primære nøgle: Ordre-id og produkt-id. Når en primær nøgle anvender mere end én kolonne, kaldes den også en sammensat nøgle.

Skærmbillede af tabellen Produkter

Hvis du allerede har et entydigt id for oplysningerne i en tabel, f.eks. produktnumre, som entydigt identificerer hvert produkt i dit katalog, kan du bruge dette, men kun hvis de opfylder disse regler for primære nøgler:

  • Id’et vil altid være forskelligt for hver post. Dublerede værdier er ikke tilladt i en primær nøgle.

  • Der er altid en værdi for elementet. Hver post i din tabel skal have en primær nøgle. Hvis du bruger flere kolonner til at oprette nøglen (f.eks. delserie og delnummer), skal begge værdier altid være til stede.

  • Den primære nøgle er en værdi, der ikke ændres. Da nøglerne henviser til andre tabeller, betyder enhver ændring af en primær nøgle i en tabel en ændring af alt, hvad der henvises til. Hyppige ændringer øger risikoen for fejl.

Hvis du ikke har et tydeligt id, kan du bruge et vilkårligt, entydigt nummer som den primære nøgle. Du kan f.eks. tildele hver ordre et entydigt ordrenummer med det eneste formål at identificere ordren.

Tip: Hvis du vil oprette et entydigt nummer som den primære nøgle, skal du tilføje en kolonne med datatypen Autonummerering. Datatypen Autonummerering tildeler automatisk hver post en entydig, numerisk værdi. Denne type id indeholder ingen faktiske oplysninger, som beskriver den række, den repræsenterer. Det er ideelt til brug som primær nøgle, fordi numrene ikke ændrer sig – i modsætning til en primær nøgle, der indeholder oplysninger om en række, f.eks. et telefonnummer eller et kundenavn.

Vil du have mere?

Retningslinjer for navngivning af felter, kontrolelementer og objekter

Introduktion til tabeller

Kursus i Excel

Kursus i Outlook

De bedste databaser starter med et godt strukturelt design. I denne video lærer du, hvad en database er, mere specifikt en RELATIONSDATABASE, som du kan oprette med Access. Du lærer, hvordan du organiserer din database med TABELLER, og hvordan du opretter relationen mellem dine tabeller med NØGLER.

Men hvad er en database så? I den bredeste forstand er en database en hvilken som helst organiseret samling af data. Dine kogebøger er alle databaser, og det samme er denne enkle liste over navne og telefonnumre i Excel.

Næste spørgsmål er: "Hvad gør en Access-database anderledes? Hvorfor skal jeg bruge den?” Svaret er en RELATIONEL TABELSTRUKTUR, og her er, hvad det betyder.

Dine data er organiseret i TABELLER. Disse tabeller er kædet sammen af DELTE FELTER, der kaldes NØGLER.

Nøgler gør to ting. Først tildeler de en værdi af en art for hver række i en tabel. Du kan se, at Lester Baxley har værdien "1" knyttet til sit navn, og Patricia White har værdien "2" knyttet til sit navn.

Nøgler knytter også dine tabeller sammen ved at dele værdier mellem FELTER. Du kan f.eks. se, Lesters nøgleværdi deles med to telefonnumre, og gør disse telefonnumre til hans. Du kan også se, at Naomi Bartons nøgleværdier deles tre gange, og disse telefonnumre tilhører hende.

Nu indeholder din database to typer nøgler. Nøgleværdierne stammer fra DETTE felt, og de deles i DETTE felt, destinationsfeltet. Det oprindelige felt kaldes en PRIMÆR NØGLE, og destinationsfeltet kaldes en FREMMED NØGLE. Men blot at have felterne der knytter dem ikke sammen. Det gør du ved at oprette en relation mellem tabellerne.

Du tænker muligvis: "Vent lidt, det ser ud som en masse arbejde. Hvorfor skal jeg gøre dette?” Godt spørgsmål. For det første er lagringen mere effektiv. Kan du se, hvor ofte navne gentages her?

I en relationel struktur vil du udelukkende angive de fleste af dine data én gang. Det kan spare en masse plads. Relationelle strukturer forbedrer også nøjagtigheden, for når du indtaster data mere end én gang, risikerer du at lave fejl.

Som et eksempel kan du se, hvad der sker, hvis du staver navnet Naomi Barton forkert. Det pågældende telefonnummer bliver sværere at finde, og du finder måske aldrig fejlen. Da du kun angiver de fleste af dine data én gang i en relationel struktur, reducerer du muligheden for fejl. Og hvis du laver en fejl, behøver du kun at løse problemet ét sted.

Relationelle strukturer er også en god måde til at registrere transaktioner. Afhængigt af typen af din database, afspejler en transaktion måske, hvilke studerende, der befinder sig i hvilke klasseværelser, hvilket salg, der fandt sted, eller hvem du har lånt din bog til.

Nu kender du de første tre grundlæggende trin i databasedesign. Trin et er at registrere alle de data, du vil gemme. I dette eksempel have vi brug for kundenavne, telefonnumre og en metode til at kategorisere disse tal.

Trin to er at identificere alle de data, du sandsynligvis gentager. Som f.eks. kundenavne i dette eksempel.

Endelig er trin tre at organisere disse data i deres egen tabel.

Men har du bemærket de gentagne data i feltet Type? Godt set. Du kan faktisk nedbryde disse data i en tabel. Men da dette kun er et par værdier, er det en bedre mulighed at oprette en opslagsliste, der kun er en kort plukliste af værdier.

At bruge tabeller og nøgler til at oprette en relationel struktur er et grundlæggende trin i godt databasedesign. Med din relationelle database i Access kan du spare tid, spare plads, reducere fejl og opfange transaktioner omkring vigtige bidder af data, så du kan arbejde mere effektivt.

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×