Database design ERHVERVSAKADEMI MIDTJYLLAND. Udarbejdet af Benny Dyhr Thomsen

Størrelse: px
Starte visningen fra side:

Download "Database design ERHVERVSAKADEMI MIDTJYLLAND. Udarbejdet af Benny Dyhr Thomsen"

Transkript

1 ERHVERVSAKADEMI MIDTJYLLAND Database design Udarbejdet af Benny Dyhr Thomsen W:\data\KUR\FagEmner\database\Database.doc Rev.Nr.:7 Dato:

2

3 INDHOLD Introduktion... 1 Introduktion af nøglespillerne...1 Hvorfor lave forståelsesmodeller (eng. Conceptual Model)...1 Målsætning for entitet-relationel-modelering...2 Normalisering... 2 Første Normalform (1NF)...2 Anden normalform (2NF)...5 Tredje normalform (3NF)...6 Case 1 Cirkus...8 Unormaliseret...8 Første Normal Form (1NF)...10 Anden Normal Form (2NF)...10 Tredje Normal Form (3NF)...12 Opsummering...12 Øvelse...13 Normalisering udover 3NF...13 Constraints Relationel algebra Fundamentale operationer...15 Select operation...15 Project operation...16 Sammensæt relationelle operationer...17 Union operation...17 Set difference operation...18 Cartesian product...18 Rename operation...18 Aggregate functions...19 Diverse funktionel afhængighed...20

4

5 Database Introduktion Et af de mest forvirrende omstændigheder ved at tilegne sig teori om database design er efter min mening ordene. Niels Bohr sagde engang det eneste vi mangler for at forstå, er ordene. Det er delvist fordi der mangler ord i danske oversættelser og det faktum, at der er så mange ord, der samme betydning. Eksempelvis bruges ordene post, record, række, row, tuble om det samme. Introduktion af nøglespillerne Entiteter Attributter Relationer Hvorfor lave forståelsesmodeller (eng. Conceptual Model) Hvorfor bruger vi forståelsesmodeller til design af databaser? Hvorfor bruge tid på at lave datamodeller når det er tabeller vi behøver? Hvorfor besværet med at forstå foretningsgang, interviewe personer og deltage i møder når det vi behøver er programmer. Du vil lære hvorfor tiden er givet godt ud til modelering. Du vil lære metoder, begreber og vil lære at skabe/læse modeller og ud af dem danne tabeller og nøgledefinitioner fra dem. Modeller laver vi fordi: Det beskriver nøjagtigt de informationer der kræves i forretningen. Det tjerner til diskussion. Det forebygger misforståelser og fejl. Det former dokumentation på ideal systemer. Det former en sund basis for fysisk databasedesign. Det er en god praksis, specielt når mange deltager. Forestil dig nogen der ønsker at bygge et hus. I starten eksisterer huset kun i hovedet på de fremtidige ejer som ideer og brudstykker af ønsker. Undertiden ved de fremtidige ejere ikke hvad de ønsker, eller ved om de er gennemførlige. Ønsker kan være helt eller delvist modsigende eller umulige. Det er ikke noget problem i drømmeverdenen, men i den fysiske verden vil alle modsigelser og forhindringer skulle løses før nogen kan bygge huset. Et byggeselskab skal have en solid plan, et sæt dokumenter med tegninger, beskrivelser af materialer, dimensioner på blælker, kloaksystem, el-system m.m. Men 1/5

6 hvordan bliver en ide om et hjem til en plan for et byggeselskab? Der er her arkitekten bliver indvolveret. Arkitekten er mellemled mellem kunden og byggeselskabet. Arkitekter er trænede i at omsætte ideer til modeller. Arkitekten lytter til kundens beskrivelse af ideer og stiller masser af spørgsmål for at forstå hvad kunden ønsker. Arkitektens har færdigheder i at forstå ideer og putte ideer i et format, som tillader diskussion, analyse, rådgivning, beskrive kritiske detaljer og dokumentere dem, og aftale med kunden hvad byggeselskabet skal bygge. Målsætning for entitet-relationel-modelering Fang alle krævede informationer. Alle stykker af informationer som kræves for at køre forretningen ordentlig er genkendt. Informationer optræder kun en gang Dette er et vigtigt mål. Så snart et system gemmer information to gange, løber du ind i muligheden for at informationerne ikke er ens begge steder. Hvis du er bruger af et sådant system, hvilken information vil du da stole på? Denne målsætning indbefatter et ideelt system der ikke har afledte informationer. Modeler ingen informationer der er afledt fra andre informationer der allerede er i modellen. Informationer er i en forudsigelig, logisk placering. Relaterede informationer er holdt sammen. Normalisering Normalisering er en metode til at nedbryde data i tabeller der gør dem egnede til lagring. Normalformerne defineret i relationel database teori repræsenterer forskrifter for database design. Forskrifterne strækker sig fra 1. til 5. normalform og leder til en optimal opsplitning af tabeller. Normaliseringsregler er designet til at modvirke opdateringsanormaliteter og inkonsistens. Med hensyn til ydelses tab er forskrifterne baseret på formodningen, at alle ikke-nøgle-felter bliver opdateret jævnligt. De tenderer til at forklejne forespørgsler, data kan læses fra måske en enkelt record i en unormaliseret form, men skal nødvendigvis læses fra flere tabeller i normaliseret form. Der er ikke nogen krav til fuldt ud at normalisere tabeller når ydelse er foretrukket. Første Normalform (1NF) Første normalform vedrører formen af en record. En relation er i første normalform (1NF) hvis feltværdier er udelelige (eng. atomic) og alle records er unikke. Attributter som deles i underattributter og gentagne grupper er ikke tilladt. Records hvor værdier for alle records er nøjagtig magen til en anden record er ikke tilladt. Under den første normalform skal alle tilfælde af en recordtype indeholde det samme antal felter. Første normalform udelukker variabelt gentagne felter og grupper. 2/6

7 Der er to almindelige typer af ikke-atomic felter. Den første ikke-atomic type af felter er en liste af gentagne grupper. For eksempel, en person kan have flere kompetencer. Hvis disse er listed i det samme felt så er relationen ikke i første normalform. Den anden type er et struktureret felt f.eks. en adresse. Hvis hele adressen puttes i et felt er relationen ikke i første normalform fordi en adresse består af gadeadressen, postnummer og bynavn. Om et felt opfattes som struktureret eller ikke beror på applikationen. Hvis du aldrig vil have tilgang til data gennem bynavn eller gennem postnummer så kan det godt være passende at have hele adressen i et felt, men hvis du, måske senere, ønsker at sortere på postnummer, for eksempel, så er det ikke passende at putte hele adressen ind i et felt. Anvendeligheden af første normalform er rimelig klar. Gentagne grupper ødelægger den naturlige rektangulære struktur af en relation. Det er ekstremt vanskeligt at referere til et bestemt element i en repeterende gruppe, fordi en eller anden position inden i attributtens værdi skal specificeres. Ydermere, de forskellige dele af en opdelt attribut, kan opføre sig forskelligt udfra vinklingen af afhængighed. Reglen for første normalform udtrykker fornuftige krav, at hver attribut har hver deres navn. Relationen i Figur 1 er ikke i 1NF for den indeholder lister med gentagne grupper. Ordrer Kundenr Ordrenr Varer (lister) hvedemel, 10 æble, 2 smør letmælk, 5 appelsin ost, 2 sukker, 1 smør sukker, 1 stødt kanel, 2 smør Figur 1 Unormaliseret relation med lister. Hvis vi tager relationen i Figur 1 og deler listen op i separate attributter får vi en relation i Figur 2, den relation er ikke i 1NF fordi den indeholder strukturerede felter med gentagne grupper. Ordrer Kundenr Ordrenr Antal1 Vare1 Antal2 Vare2 Antal3 Vare hvedemel 10 æble 2 smør letmælk 5 appelsin ost 2 sukker 1 smør sukker 1 stødt kanel 2 smør Figur 2 Unormaliseret relation med strukturerede felter. Hvis vi opdeler lister eller strukturerede felter op i records får vi tabellen i Figur 3. Ordrer Kundenr Ordrenr Antal Vare hvedemel æble smør 3/7

8 letmælk appelsin ost sukker smør sukker stødt kanel smør Figur 3 Relation i 1NF. Vi får et problem når vi skal vælge hvilke felter, der skal indgå i primær-nøglen, hvis vi skal have en unik reference til records. I princippet kan vi godt finde felter til primærnøglen som kunde bestå af Ordrenr og Vare for at danne en unik nøgle, men nøglen bliver lidt lang, i stedet kan vi indføre en Ordrelinie med et nummer og bruge Ordrenr + Ordrelinie, vi kan så få en god relation som vist i Figur 4. Ordrer Ordrenr Ordrelinie Kundenr Antal Vare hvedemel æble smør letmælk appelsin ost sukker smør sukker stødt kanel smør Figur 4 Relation i 1NF med ordrelinie. Informationer der kun er i 1NF er redundante, det betyder der er overflødige data. For at reducere redundans vil vi konvertere til anden normalform (2NF). At rette relationer der ikke er i første normalform er forholdsvist enkelt. Hver attribut er tildelt sit eget navn og repeterende gruppeelementer bliver til individuelle records. Normalformer højere en første normalform er motiveret af opdagelsen af anormaliteter, operationer på en relation som resulterer i en inkonsistens eller uønsket tab af data. Fjernelsen af anormaliteter involverer fremskridt gennem flere niveauer af normalformer. Disse fremskridt leder til idealet: Enhver information associeret mellem dataværdier optræder en og kun en gang og afhænger ikke af tilstedeværelsen af andre associationer. 4/8

9 Anden normalform (2NF) Database design En tabel er i anden normalform (2NF), hvis den er i 1NF og alle ikke-nøglefelter er afhængig af hele primærnøglen (d.v.s. ingen af felterne er associeret til dele af nøglen). Teknikken for at omstrukturere er også nogenlunde simpel: konstruer en separat relation til at indeholde den delte afhængighed og fjern de afhængige attributter fra den originale relation. For at gøre et eksempel mere tydelig med overflødige data indføres Ordredato se Figur 5, den er stadig i 1NF idet alle data er atomiske. Det ses at hverken Kundenr eller Ordredato ikke relaterer til hele primærnøglen, de relaterer kun delvist idet de relaterer til Ordrenr. Ordrer Ordrenr Ordrelinie Ordredato Kundenr Antal Vare hvedemel æble smør letmælk appelsin ost sukker smør sukker stødt kanel smør Figur 5 Tabel i 1NF med Ordredato Vi bringer den til 2NF ved at flytte Ordredato og Kundenr til en separat tabel data se Figur 6 og fjerne redundante data, vi behøver Ordrenr som primærnøgle eller fremmednøgle. Ordrer Ordrenr Ordredato Kundenr Figur 6 Ordre Vi får en dannet en ny tabel som vi kalder Ordrelinier. Ordrerlinier Ordrenr Ordrelinie Antal Vare hvedemel 5/9

10 æble smør letmælk appelsin ost sukker smør sukker stødt kanel smør Figur 7 Ny tabel Ordrelinier uden Kundenr og Ordredato Tredje normalform (3NF) En relation er i Tredje normalform (3NF) hvis den er i 2NF og der ikke er indirekte afhængigheder (dvs. ingen af ikke-nøglefelter er afhængig af et andet ikke-nøglefelt som til gengæld er afhængig af et nøglefelt). Tredje normalform er ikke overholdt hvis et ikke-nøglefelt indeholder fakta om et andet ikke-nøgle-felt. Ordrerlinier Ordrenr Ordrelinienr Antal Varenr Vare Pris hvedemel 15, æble 2, smør 7, letmælk 7, appelsin 2, ost 24, sukker 18, smør 7, sukker 18, stødt kanel 5, smør 8,15 Figur 8 2NF tabel med Varenr og Pris Vi indfører to nye kolonner for at skabe eksemplet til belysning af 3NF se Figur 8. Hvis vi kigger på tabellen kan man sige at Vare indeholder fakta om Varenr så dette er oplagt at det kræver en opspilting. Vi kan lave er tabel Varer med Varenr, Vare og Pris se Figur 9. 6/10

11 Men hvad med Pris? Pris er tilsyneladende også fakta om Varenr, men nej, den er ikke fakta om et andet felt. Hvorfor ikke er indlysende, for hvis du tænker på formålet med Ordrelinier: en kunde bestiller varer på baggrund af en aftalt pris og der registreres i ordredata. Hvad nu hvis vi foretager en opjustering af priser i tabel Varer, hvad sker der så med ordredata de er jo købt til en pris og vi kan ikke opjustere priser i ordredata. Derfor når vi sætter tabel Ordrelinier i 3NF skal Pris stadig være der men Vare forsvinder se Figur 10. 7/11

12 Varer Varenr Vare Pris 205 smør 7, letmælk 7, ost 24, æble 2, appelsin 2, hvedemel 15, sukker 18, stødt kanel 5,70 Figur 9 Varer, 3NF tabel Ordrerlinier Ordrenr Ordrelinienr Antal Varenr Pris , , , , , , , , , , ,15 Figur 10 Ordrelinier konverteret til 3NF. Case 1 Cirkus Unormaliseret Forestil dig at vi har en database som indeholder information om alle vores dyr i et cirkus. Data for et sådant cirkus i en fuldstændig unormaliseret form ser sådan ud: 8/12

13 Dyr trik_fag_niveau16 trik_fag_niveau2 trik_lært_ved2 trik_navn2 trik_nr2 trik_fag_niveau1 trik_lært_ved1 trik_navn1 trik nr1 telt_placering telt_navn telt_nr dyre_navn dyre_nr 1 Hest 2 Rød Nord 1 pioette gulerod 2 2 galop gulerod 1 2 Abe 1 Blå Syd 3 klappe banan 2 Hvis vi koncentrerer os om attributterne (kolonnenavne) får vi listen: Attributter i Dyr tabel dyre_nr dyre_navn telt_nr telt_navn telt_placering trik_nr1 trik_navn1 trik_lært_ved1 trik_fag_niveau1 trik_nr2 trik_navn2 trik_lært_ved2 trik_fag_niveau2 trik_nr16 trik_navn16 trik_lært_ved16 trik_fag_niveau16 Dette er en unormaliseret struktur. Men hvorfor gøre besværet med at normalisere den? Fordi, ellers vil der være at antal logiske uregelmæssige situationer som du skal håndtere. Der vil/bør være logiske fejl hver gang du forsøger at indsætte, slette eller opdatere data i denne tabel. Hver gang du normaliserer til et højere niveau løses disse. Indsætte Problem: Antag at en chimpanse er købt og skal tilføjes til tabellen. Det vil være umuligt at tilføje en ny chimpanse uden også at tilføje triks omend afsatte felter til trik er tomme. Omvendt vil det også være umuligt at lægge et nyt trik ind uden også at tildele et cirkusdyr der kan udføre det. Der kan ikke læres flere trik end 16 uden at udvide 9/13

14 triks for alle dyrene. Du kan heller være sikker på at samme trik er stavet ens, hvilket vil gøre det mere besværligt at søge triks op end det er i forvejen. Slette Problem: Hvad sker der hvis vi vil slette et trik, desværre, vigtige data på et cirkusdyr vil blive slettet også. Omvendt vil triks også forsvinde når et dyr slettes, et trik som måske stadig vil anvendes af cirkuset. Det kan være du sidder og tænker man kan da bare lave blanke felter, meget vel men det er besværligt at finde de triks der skal blankes når et trik ikke skal være der mere. Opdaterings Problem: Opdatering på en unormaliseret tabel vil kunne skabe problemer på flere poster. Stor omhu må tillægges for at finde de rigtige poster når ændringer skal udføres. Hvis der skal opgraderes på trik_fag_niveau skal alle dyr med det pågældende trik opdateres. Første Normal Form (1NF) For at sætte tabellen i 1. Normal Form (1NF) må vi eliminere gentagne grupper. Det betyder at alle undergrupper af data som optræder inde i posten skal flyttes til en separat tabel. Derved bliver vores unormaliserede tabel til 2 tabeller. Første Normal Form (1NF) Cirkus_dyr tabel dyre_nr dyre_navn telt_nr telt_navn telt_placering Triks tabel dyre_nr trik_nr trik_navn trik_lært_ved trik_fag_niveau Nu da vores tabeller er i 1NF, har vi en klar fordel i pladsbesparelse. Nu, vil et dyr der kun kender få triks ikke optage unødvendig plads tildelt til optil 16 triks, som var tilfældet i den unormaliserede form. Og som sidegevinst kan et dyr udføre flere en 16 triks eller måske slet ingen hvis den ikke har lært nogen endnu. Anden Normal Form (2NF) Lad os tage tabeller til 2NF ved at eliminere redundante (overflødige) data. Et ikke-nøgle felt må ikke have en værdi der kan udledes af en del af nøglen. For eksempel, et triknavn optræder i hver eneste post for et dyr, men trik_nr er nok da vi allerede har trik_navn i TRIKS tabellen. Så denne 1NF tabel: 10/14

15 Triks tabel dyre_nr trik_nr trik_navn trik_lært_ved trik_fag_niveau Bliver til disse 2NF tabeller: Triks tabel trik_nr trik_navn Dyre_Triks tabel dyre_nr trik_nr trik_lært_ved trik_fag_niveau Cirkus_dyr tabel (Uændret) dyre_nr dyre_navn telt_nr telt_navn telt_placering 2NF, såvel som 1NF, har sine egne logiske fejl når data skal manipuleres. Indsætte Problem: Antag at vi ønsker at kreere en ny post som repræsenterer en tiger tildelt til De store kattes telt. Det er umuligt at oprette en ekstra tigers post for Cirkus_dyr tabellen uden først at kreere en ny afdeling. Dette skyldes at telt_nr attributten er bundet til dyre_nr attributten Slette Problem: Sletning af et bestemt dyr kan resultere i tabet af et helt telt, selvom om du ønsker at beholde informationer om teltet. Opdatering Problem: Telt informationer er redundante i Cirkus_dyr tabellen, enhver ændring i telt information kræver en søgning på hele tabellen for at lokalisere alle poster som behøver opdateringer. Endnu et trin i normalisering er nødvendig for at eliminere disse logiske fejl. 11/15

16 Tredje Normal Form (3NF) For at tage denne samling af tabeller til 3NF, behøver vi nu eliminere attributter der ikke er afhængig af primærnøglen. Husk at ordet eliminere ikke betyder at slette. I stedet betyder det at opsplitte i separerede tabeller. Tabeller i 3NF: Triks tabel (Uændret allerede 3NF) trik_nr trik_navn Dyre_Triks tabel (Uændret allerede 3NF) dyre_nr trik_nr trik_lært_ved trik_fag_niveau Cirkus_dyr tabel dyre_nr dyre_navn telt_nr Telte tabel telt_nr telt_navn telt_placering Ideen med 3NF er, at spørge attributterne i denne tabel relaterer de til hinanden?. Når du når til 2NF, vil attributterne formodentlig alle afhænge af primærnøglen for deres identifikation. Dog vil attributterne have en mangel på tilhørsforhold til hinanden således at de bør udskilles til en separat tabel. Opsummering For at opsummere: Normalisering af data betyder eliminering af redundante information fra en tabel og genkende data så fremtidige ændringer i tabellen er lettere. En tabel er i sin første normal form når tabellen indeholder den mindste meningsfulde datamængde og tabellen indeholder ingen gentagne data. Anden normal form refererer kun til tabeller med flere primære nøgler. Tredje normal form refererer kun til tabeller med en enkelt nøgle og kræver at hvert ikke nøgle at være en direkte beskrivelse at primærnøglen. 12/16

17 Øvelse Følgende ses data for en filmforening, hvert medlem kan reservere optil 10 billetter til forestillinger. Normaliser gennem 1., 2. og 3. normal form. Unormaliseret medlems_nr medlems_navn medlems_adresse medlems_postby forestilling_nr1 forestilling_navn1 forestilling_ugenr1 billet_plads1 billet_pris1 reservation_antal1 forestilling_nr10 forestilling_navn10 forestilling_ugenr10 billet_plads10 billet_pris10 reservation_antal10 Normalisering udover 3NF. Den gode nyhed er her at ingen bruger disse normal former, i hvert fald i en normal database applikation. Fjerde normal form (4NF) kræver at en tabel ikke indeholder uafhængige en til mange relationer. Uafhængige en til mange relationer, behøver at opsplittes til separate tabeller. Femte normal form (5NF) refererer til en tilstand af hele databasen, kræver at hver tabel er nedbrudt til mindst mulige for at eliminere redundante ikke-nøgler. Forbindelses tabeller giver dig en link til informationer mellem tabellerne i den femte normal form. Constraints Følgende viser et E-R diagram (Entity-Relation), det fremstiller forskellige relationer. Med Mapping Cardinality udtrykkes hvormed det antal entiteter som en anden entitet kan associeres. Ordet Constraint som kan betyde begrænsning, tvang og indskrænkning passer 13/17

18 ikke helt i oversættelsen fra ordbøger, men jeg mener præcisering er bedre. Cardinality betyder et antal elementer i et matematisk talmængde. Entitet Relation Entitet 1 1 Mand Er gift med Kvinde 1 n Afdelinger Ansættelse Medarbejdere n m Kunder Leverancer Varer Figur 11 E-R diagram viser Mapping Cardinality På dansk kaldes disse: 1:1 En til en relation. 1:n En til mange relation. n:1 Mange til en relation. n:m Mange til mange relation. 14/18

19 A B A B a 1 b 1 b 1 a 2 b 2 a 1 b 2 a 3 b 3 a 2 b 3 a 4 b 4 a 3 b 4 a 5 b 5 b 5 Figur 12 En til en relation Figur 13 En til mange relation A B A B a 1 a 1 b 1 a 2 b 1 a 2 b 2 a 3 b 2 a 3 b 3 a 4 b 3 a 4 b 4 a 5 a 5 b 5 Figur 14 Mange til en relation Figur 15 Mange til mange relation Relationel algebra Relationel algebra er et produral query language. Det indeholder et udvalg af operationer som tager en eller to relationer som input og giver en ny relation som resultat. Fundamentale operationer De fundamentale operationer er select, project, union, set difference, Cartesian product og rename. Select, project og rename er kaldet unary operationer, fordi de kun bruges på en relation. De andre tre union, set difference og Cartesian product er binary operationer fordi de bruges på relationer parvis. Select operation Select operationen udvælger rækker som opfylder et givent kriterium. Vi bruger det lille græske bogstav sigma (σ) til at notere en select. Selvom det hedder en select-operation 15/19

20 svarer det til WHERE i en SQL-kommando. Tabellen eller tabeller sættes ind i parantesen og svarer til FROM i en SQL-kommando. σ 52 (Forestilling) Ugenr= Forestilling FNr Titel Ugenr 52-1 Nøddebro præstegård Julebal i nisseland 52 σ 25(Biletter) Pris> Billetter FNr Plads Pris 50-1 Balkon 40, Gulv 30, Balkon 45, Gulv 30, Balkon 45, Balkon 35,00 Vi kan bruge sammenlignings operatorer =,,<,,>, i select. Udover kan vi kombinere kriterier til større kriterier med logiske operatorer and ( ), or ( ) og not ( ). For at finde billetter på balkon og som koster mere end 12 kr. skriver vi: σ 30 (Biletter) Plads = "Balkon" Pris> Billetter FNr Plads Pris 50-1 Balkon 40, Balkon 45, Balkon 45, Balkon 35,00 Project operation Hvis vi kun ønsker en del af kolonnerne vist bruger vi project med det store græske bogstav pi ( ). Vi beskriver de attributter vi ønsker til en selection. Derved svarer Project-operationen til SELECT i en SQL-kommando. Π adresse (Medlemmer) navn, 16/20

21 Medlemmer Navn Adresse Anders Nielsen Kirkegade 14 Bodil Pedersen Søndergade 19 Anne Overgård Vestergade 45 Sammensæt relationelle operationer ΠTitel (σ Ugenr= 52 (Forestilling)) Forestilling Titel Nøddebro præstegård Julebal i nisseland svarer til SQL-kommandoen SELECT Titel FROM Forestilling WHERE Ugenr=52 Union operation Forestil dig at du skal finde navne på personer der er debitorer der eller kreditorer eller begge dele. Vi ved hvordan vi finder debitorer: (debitorer) Π Navn debitorer Navn Adresse Anders Nielsen Kirkegade 14 Bodil Pedersen Søndergade 19 Anne Overgård Vestergade 45 og vi ved hvordan vi skal finde kreditorer (kreditorer) Π Navn kreditorer Navn Adresse Peter Hansen Alpegade 33 Bodil Pedersen Søndergade 19 17/21

22 Anne Overgård Vestergade 45 Vi bruger som kendes fra alm. mængdelære som foreningsmængden. Π (debitorer) Navn Π Navn (kreditorer) Navn Anders Nielsen Peter Hansen Bodil Pedersen Anne Overgård To krav skal opfyldes for at union giver mening, for en union r s skal være valid kræves: 1. At relationen r og s skal have det samme antal attributter. 2. At attributter er defineret i samme orden. Set difference operation Set-difference operationer, noteret med -, giver os mulighed for at finde rækker der findes i en relation med ikke i en anden. Udtrykket r s finder rækker som findes i r men ikke i s. Vi kan finde debitorer som ikke også er kreditorer: Π (debitorer) Navn Π Navn (kreditorer) Navn Anders Nielsen Som ved union må vi stille samme krav om kompabilitet. Cartesian product Cartesian-product, noteret med (Χ), tillader os at kombinere informationer fra to relationer. For to relationer r1 og r2 med n1 og n2 rækker gælder at vi får en relation med n1*n2 rækker. Rename operation Modsat relationer i database, resultatet af relationel-algebra udtryk har ikke nogen navne som vi kan bruge til at referere til dem. Det er belejligt at kunne give dem navne. Rename operatoren, noteret med det lille græske bogstav rho (ρ) lader os gøre dette. Givet et relationel-algebra udtryk E, vil udtrykket 18/22

23 (E) ρ x returnere resultatet af udtrykket E under navnet x. Hvis vi vil finde den debitor der skylder flest penge, kunne vores strategi være, (1) først danne en temporær relation for alle balancer der ikke er den største og (2) med set-difference på debitorer og den temporære relation finde den række der ikke findes i den temporære. Find alle balancer der ikke er den største: Π (σ (debitorer debitorer. balance debitorer.balance< d.balance Find den største balance: Π (debitorer) Π (σ ρ d (debitorer))) (debitorer balance debitorer.balance debitorer.balance< d.balance ρ d (debitorer))) Aggregate functions Tager et udvalg af værdier og returnerer en enkelt værdi som resultat. F.eks. aggragat funktionen sum tager et udvalg af værdier og returnerer summen af værdierne. Således at funktionen sum brugt på følgende værdier {1,2,3} returnerer værdien 6. Symbolet ς som ligner et G, jeg kan ikke finde den i det græske alfabet, anvendes til aggragat notationen. Forudsæt at vi ønsker at finde hvor meget debitorer skylder i alt. Den relationelle algebraiske udtryk for dette er: debitorer Navn Saldo Anders Nielsen 2600 Bodil Pedersen 3500 Anne Overgård 5300 ς sum(saldo)(debitorer) Hvis vi vil bruge en group som vi kender fra SQL kommandoer på nedenstående tabel kunne vi finde hvor summen af lån optaget i forskellige afdelinger af en bank. sager Navn Afd lånebeløb Hansen Herning Nielsen Herning Pedersen Herning Andersen Ikast Mikkelsen Ikast /23

24 Det skrives som: Afdς sum(lånebeløb) (sager) Der er også tilladt at skrive: Afdς sum(lånebeløb) as sum -beløb,max(lånebeløb) as max - beløb (sager) med den formulering skulle vi få summen og max beløbet ud per. afdeling, vi får endda mulighed for at vise at vi ønsker at døbe navnet for resultaterne sum-beløb og max-beløb. Diverse funktionel afhængighed En funktionel afhængighed er en type af constraint som er en generalisering på fastlæggelsen af en nøgle. 20/24

25 Ordliste atom atomistisk, atomisk attribut cardinality composite constraint DBA DDL derived depencies DML domain entity entity set felt functional dependency kolonne primærnøgle relation relation schema relationship relationship set row række selection superkey tabel tubel Mindste enhed der ikke kan deles. Udelelig. Attribut, kolonne. Kardinalitet. Et matematisk begreb for tal sæt i f.eks. talfølger, primtal, kubiktal, naturlige tal m.m. Sammensat. om attributter der er sammensat af flere værdier. En sammensat attribut kan være fornavn+mellemnavn+efternavn i en attribut. Begrænsning, indskrænkning, tvinge. Præcisering. Det at lægge rammer eller bånd på noget. Data Base Administrator. Data Defination Language afledte afhængigheder. Beløb er en sådan hvis den er afledt af Pris*Antal Data-Manipulation Language Værdisæt. For hver attribut er der et tilladt sæt af værdier kaldet domain eller værdisæt. entitet, individ. Beskriver et objekt i den virkelige verden der adskiller sig fra andre. Svarer til en post eller tuble. tabel. Beskriver en samling af entiteter der er af samme type. En post består af felter. Bruges om et felt i en post. Derved adskiller den sig fra attribut og kolonne. Hvis alle felter i en kolonne har forskellig værdi kan man sige at det er et nøglefelt fordi den entydigt kan identificere posten. Funktionel afhængighed. En funktionel afhængighed er en type af constraint som er en generalisering på fastlæggelsen af en nøgle. Attribut. Et eller flere felter der tilsammen danner unik reference til en række. Tabeller der sammenknyttes ved hjælp af relationer dannes ved primærnøgle og fremmednøgle. Bruges også om kolonner der danner en relation til hinanden. Forhold. Et stadie af relation der binder deltagere i et sammenhold (relationship). Række, record, post, tubel. Row, Record, post, tubel Består af kolonner og rækker. Entity set. Record, post, row, række. 21/25

26 Skabelon Parameter Beskrivelse program Personer Navn Adresse Postby Anders Nielsen Kirkegade Ikast Bodil Pedersen Søndergade Ikast 22/26

27 Noter 3NF formulering En anden fremstilling af 3NF er at det resultat i relationer som repræsenterer entiteter og relationer som repræsenterer forhold mellem entiteter. En acceptabel måde at konvertere en tabel til 3NF er at placere de felter, som ikke er direkte afhængige af en nøgle, i en separat tabel. En opsplitning vist indtil videre har to vigtige egenskaber: 1. Hver afhængighed er omsluttet i nogle relation (opsplitningen bevarer afhængigheder) 2. Hvis en udvidelse af en original relation er opsplittet, kan den rekonstrueres via en JOIN med dens komponent (opsplitningen har tabsfri join). 23/27

Hvad er en relationsdatabase? Odense, den 19. januar Version 1.0

Hvad er en relationsdatabase? Odense, den 19. januar Version 1.0 Hvad er en relationsdatabase? Odense, den 19 januar 2004 Version 10 Program for 6 kursusdag: Databaser 0900-0945 Hvad er en relationsdatabase? -1045 Opgave om normalisering 1100-1145 Eksempel på database

Læs mere

Jørgen Koch. och. Access. Normalisering m.v.

Jørgen Koch. och. Access. Normalisering m.v. Jørgen Koch och Access 2003 2003 for alle Normalisering m.v. Access 2003 for alle 1. udgave, 1. oplag 2004 Copyright 2004 Forlaget Libris Forfatter: Jørgen Koch Forlagsredaktion: Kirsten Bæk DTP: Jørgen

Læs mere

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5 Databaser og SQL Introduktion til SQL Kap 1-5 1 Dagens gang Databaser Database begreber Mapning af klasser til relationel model Normalisering Opgaver til næste gang 2 Databasebegreber A database is a:

Læs mere

PRÆSENTATION AF ER-DIAGRAMMER OG NORMALISERING

PRÆSENTATION AF ER-DIAGRAMMER OG NORMALISERING PRÆSENTATION AF ER-DIAGRAMMER OG NORMALISERING KIRSTINE ROSENBECK GØEG Tema Titel Materiale 1 IS i sundhedssektoren Patientdatas anvendelighed Lynge et al. 2 Registrering af patientdata Berg. Kap. 2 Waiting

Læs mere

Datamodeller. 1. Elementerne. Vi betragter E/R-diagrammet, som et diagram over entiteter og relationer Tegneregler: Entitet

Datamodeller. 1. Elementerne. Vi betragter E/R-diagrammet, som et diagram over entiteter og relationer Tegneregler: Entitet Datamodeller I forlængelse af noten om normalisering, følges der her op med redskabet E/R-diagrammer til opstilling af en datamodel, opfat således dette som en alternativ metode mere end endnu et redskab

Læs mere

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125 Tietgenskolen - Nørrehus Data warehouse Database for udviklere Thor Harloff Lynggaard DM08125 Juni 2010 Indhold Beskrivelse... 3 Data warehouse... 3 Generelt... 3 Sammenligning... 3 Gode sider ved DW...

Læs mere

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database Kursusbeskrivelse Oprettelse af en Access-database Som eksempel på en Access-database oprettes en simpelt system til administration af kurser. Access-databasen skal indeholde: et instruktørkartotek et

Læs mere

Introduktion til programmering

Introduktion til programmering Introduktion til programmering Databaser Uge 37 Computer Science, kap 9. Hugh Darwen: what a database really is, G. Riccardi: Princples of database systems, kap 2., kompendium. Plan Oprette jer på IMV

Læs mere

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel: Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra

Læs mere

Skriftlig eksamen i kurset. Informationssystemer

Skriftlig eksamen i kurset. Informationssystemer 6. semester sundhedsteknologi Skriftlig eksamen i kurset Informationssystemer Der er 3 timer til at besvare opgaven. Alle hjælpemidler er tilladte. Skriv kort og præcist. Referer gerne til kursuslitteraturen.

Læs mere

Anvisning i aflevering af bitemporale data

Anvisning i aflevering af bitemporale data UDKAST udgivet juni 2019 Anvisning i aflevering af bitemporale data Baggrund Aflevering af data fra it-systemer til et offentligt arkiv er baseret på aflevering af en arkiveringsversion i en relationel

Læs mere

Database. lv/

Database. lv/ Database 1 Database Design Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management system) Et SW system der gør det muligt at definer, oprette og vedligeholde

Læs mere

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh Databasesystemer, forår 2005 IT Universitetet i København Forelæsning 3: E-R modellering 17. februar 2005 Forelæser: Rasmus Pagh Forelæsningen i dag Datamodellering hvad, hvornår, hvorfor og hvordan? Business

Læs mere

Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE

Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE Fact sheet Indholdsfortegnelse Fact Sheet Gantt kort Valgt af virksomhed Brainstorm Attribut tabel ER-diagram Skitse MySQLWorkbench

Læs mere

DB undervisning 01-01

DB undervisning 01-01 Databaser... 2 Tabeller... 2 Redundans... 3 Første regel... 4 Anden regel... 4 Tredje regel... 5 Relationer... 5 Opskrift... 6 SQL sætninger til at oprette tabeller... 7 SQL sætninger til at indsætte data...

Læs mere

DATABASE - MIN MUSIKSAMLING

DATABASE - MIN MUSIKSAMLING DATABASE - MIN MUSIKSAMLING I dette forløb skulle vi lære om databaser, som bruger sproget SQL. SQL står for Structured Query Language. Det bruges til at vise og manipulere data, gemt i en database. I

Læs mere

Databaser. 3. Normalform. Mette Frost Nielsen

Databaser. 3. Normalform. Mette Frost Nielsen Databaser 3. Normalform Mette Frost Nielsen Normalisering Kvalitetssikring ej redundans Ej null i tabeller Hurtigere Lettere at vedligeholde Ordbog Relation = tabel Redundans = gentagelser, samme information

Læs mere

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002 Databaser, efterår 2002 ER-modellen Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

1. Opret følgende flade database, find selv passende datatyper. 2. Opret begrænsningerne på datatyperne, du ser fx fornavn maks 25 tegn

1. Opret følgende flade database, find selv passende datatyper. 2. Opret begrænsningerne på datatyperne, du ser fx fornavn maks 25 tegn Opgave 1. Opret følgende flade database, find selv passende datatyper. 2. Opret begrænsningerne på datatyperne, du ser fx fornavn maks 25 tegn 3. Medlemsnr skal være større end 1000 4. Der skal oprettes

Læs mere

Databasesystemer, forår 2006 IT Universitetet i København. Forelæsning 3: E-R modellering. 16. februar 2006. Forelæser: Rasmus Pagh

Databasesystemer, forår 2006 IT Universitetet i København. Forelæsning 3: E-R modellering. 16. februar 2006. Forelæser: Rasmus Pagh Databasesystemer, forår 2006 IT Universitetet i København Forelæsning 3: E-R modellering 16. februar 2006 Forelæser: Rasmus Pagh Forelæsningen i dag Datamodellering hvad, hvorfor og hvordan? Business rules

Læs mere

Indholdsfortegnelse for kapitel 3

Indholdsfortegnelse for kapitel 3 Indholdsfortegnelse for kapitel 3 Kapitel 3 Design............................................................ 2 Database........................................................... 3 ER-diagram.................................................

Læs mere

Databasesystemer. IT Universitetet i København 7. juni 2005

Databasesystemer. IT Universitetet i København 7. juni 2005 Databasesystemer IT Universitetet i København 7. juni 2005 Eksamenssættet består af 5 opgaver med 13 spørgsmål, fordelt på 6 sider (inklusiv denne side). Vægten af hver opgave er angivet. Du har 4 timer

Læs mere

Import af rekursivt (parent-child) hierarki i Palo

Import af rekursivt (parent-child) hierarki i Palo Import af rekursivt (parent-child) hierarki i Palo Dette dokument beskriver hvordan et simpelt rekursivt (parent-child) hierarki kan importeres ind i Palo på forskellige måder via SQL og samtidig bibeholde

Læs mere

Introduktion til SQL

Introduktion til SQL Introduktion til SQL Introduktion til SQL 1. udgave, 1. oplag 2013 Copyright 2013 Libris Media A/S Forfatter: Bobby Henningsen Forlagsredaktion: Peter Wiwe og Louise Peulicke Larsen Omslag: Louise Peulicke

Læs mere

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002 Databaser, efterår 2002 Databasesystemer Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

CLmul-b14e Gruppe 2 2. Database projekt

CLmul-b14e Gruppe 2 2. Database projekt 1 2 CLmul-b14e Gruppe 2 2. Database projekt JONAS FALK sniller27@hotmail.com Projekt vejledere Ivan Rosenvinge Frederiksen CHRISTIAN BRAMS halkjaer-brams@hotmail.com Tue Becher LINE RASMUSSEN line-rasmussen@live.com

Læs mere

Conceptual, logic, physical

Conceptual, logic, physical Conceptual, logic, physical Conceptual er et billede af virkeligheden. Entity names og attributter relaterer til den faktiske verden. Physical er i SQL databasen, her skriver vi de navne på tabeller og

Læs mere

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML SQL kap 6-7 + 17-20 DDL og DML 1 De vigtigste SQL-sætninger Data Definition Language (DDL) create table: opretter en ny tabel create unique index: tilføjer et index til en tabel drop table : sletter en

Læs mere

Data lagring. 2. iteration (implement backend)

Data lagring. 2. iteration (implement backend) Data lagring 2. iteration (implement backend) Emner Grundlæggende database begreber. Data definitionskommandoer ER-diagrammer og cardinalitet/relationer mellem tabeller Redundant data og Normalisering

Læs mere

Erfaringer med CPR-replikering

Erfaringer med CPR-replikering Erfaringer med CPR-replikering Dette dokument beskriver en række overvejelser vi har gjort os i forbindelse med at vi har udviklet en Proof of Concept (PoC) af en CPR-replikeringstjeneste for KOMBIT. CPRs

Læs mere

Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler.

Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler. Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler. Af Seniorkonsulent Carsten Saastamoinen-Jakobsen Skal datamodellen blot være på 3NF (normalform)?

Læs mere

Skriftlig eksamen i. Databaser. Vinter 2002/2003. Vejledende løsninger

Skriftlig eksamen i. Databaser. Vinter 2002/2003. Vejledende løsninger Skriftlig eksamen i Databaser Vinter 2002/2003 Vejledende løsninger Dette eksamenssæt består af 5 nummererede sider (incl. denne). Der er 5 opgaver, som ved bedømmelsen tillægges følgende vægte: Opgave

Læs mere

Tema Titel Materiale 1 IS i sundheds-sektoren Patientdatas anvendelighed Lynge et al.

Tema Titel Materiale 1 IS i sundheds-sektoren Patientdatas anvendelighed Lynge et al. Tema Titel Materiale 1 IS i sundheds-sektoren Patientdatas anvendelighed Lynge et al. 2 Registrering af patientdata Berg. Kap. 2 Waiting for Godot. 3 Relations-databaser Silberschatz Kap 1 (1.1-1.6) 4

Læs mere

Karens lille vejledning til Access

Karens lille vejledning til Access Karens lille vejledning til Access Indhold Hvad er Access? 1 Lave en database 2 Design af tabellen 2 Felttyper 2 Indtastning af data 3 Udtræk fra tabellen 3 Forespørgsel 3 Muligheder med forespørgsel 3

Læs mere

Efterår 2002 Note 10. Temaopgave

Efterår 2002 Note 10. Temaopgave Datalogi Database-kurset Efterår 2002 Note 10 Temaopgave Formålet med temaopgaven er at I skal arbejde med vigtige dele af kursusstoffet indenfor et specifikt problemområde/tema. Temaopgaven omfatter 4

Læs mere

Databaseteori. 19. Databaser. 20. Kartotek eller database. 21. Database

Databaseteori. 19. Databaser. 20. Kartotek eller database. 21. Database Databaseteori 19. Databaser Fra længe før EDB alderen har man haft arkiver med viden: lande har haft folkeregistre med oplysninger om landet borgere, firmaer har haft oplysninger om kunder og salg, man

Læs mere

Database design for begyndere

Database design for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter

Læs mere

Relationel Algebra og SQL

Relationel Algebra og SQL Relationel Algebra og SQL Indholdsfortegnelse Relationel Algebra og SQL...1 Indholdsfortegnelse...1 De oprindelige mængdeoperationer...2 1. UNION (foreningsmængde)...2 2. INTERSECTION (fællesmængde)...2

Læs mere

Samspillet mellem databaser og kort styres af GeoCAD programmet GeoDB.

Samspillet mellem databaser og kort styres af GeoCAD programmet GeoDB. GeoCad modul GeoDB I GeoCAD er det muligt at koble relationsdatabase til GeoEDIT. Her igennem er det muligt at lagre forskellige oplysninger i databasen og koble disse oplysninger til objekter i kortet.

Læs mere

Introduktion til programmering

Introduktion til programmering Introduktion til programmering Databaser Uge 38 L. Ingemann: SQL databaser på nettet, kap 2-4. Kompendium L. Ingemann: SQL databaser på nettet, kap 6-20, Kompendium Sidste gang Databaser Relationelle databaser

Læs mere

Design ved normalisering

Design ved normalisering Databaser, efterår 2002 Design ved normalisering Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072

Læs mere

Datalagring og formater

Datalagring og formater Datalagring og formater IT Universitetet i København 4. januar 2011 Eksamenssættet består af 6 opgaver med 15 spørgsmål, fordelt på 11 sider (inklusiv denne side). Det anbefales at læse opgaverne i rækkefølge,

Læs mere

Identifikation af planer der ikke findes i PlansystemDK vha. datasættet... 9

Identifikation af planer der ikke findes i PlansystemDK vha. datasættet... 9 Vejledning i brug af Tingbogsudtrækket Version 1.0 af 1. juli 2009 Indhold Indledning... 1 Planer i Tingbogen... 2 Planer i PlansystemDK... 3 Sammenhæng mellem Tingbogen og PlansystemDK... 3 Datastruktur...

Læs mere

ectrl Skabelonkonvertering

ectrl Skabelonkonvertering ectrl Skabelonkonvertering Indholdsfortegnelse 1. Indledning 3 2. Import ved hjælp af standardskabeloner 4 Kolonneopsætning og feltdefinition 6 3. Opsætning af konverteringsdefinitioner 8 4. Udvidede muligheder

Læs mere

My booking. Generelt. Forsiden. Version 9.0

My booking. Generelt. Forsiden. Version 9.0 My booking Version 9.0 System til at lave online bookinger, med mulighed for opdeling i grupper, forskellige booking typer, ændre layout indstillinger, status styring, sprogvalg samt en del mere, detaljer

Læs mere

Gruppeteori. Michael Knudsen. 8. marts For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel.

Gruppeteori. Michael Knudsen. 8. marts For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel. Gruppeteori Michael Knudsen 8. marts 2005 1 Motivation For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel. Eksempel 1.1. Lad Z betegne mængden af de hele tal, Z = {..., 2, 1, 0,

Læs mere

Trin 1 INSERT INTO Debitor (DebitorNr, KundeKategori, KreditMax, SidstRykket, Sælger ) VALUES (20121, 10, 40000, NULL, "Bjarne Larsen");

Trin 1 INSERT INTO Debitor (DebitorNr, KundeKategori, KreditMax, SidstRykket, Sælger ) VALUES (20121, 10, 40000, NULL, Bjarne Larsen); SQL-programmering Alle opgaverne er baseret på ACCESS-databasen REGNSKAB Løsningsforslag til SQL-opgavesættet Følgende løsninger til opgaverne i forbindelse med Regnskabsdatabasen er vejledende. Fund af

Læs mere

Brugervejledning til MASCOT SmartStore Ver02

Brugervejledning til MASCOT SmartStore Ver02 Brugervejledning til MASCOT SmartStore Ver02 Medarbejder jo [Vælg datoen] Indhold Introduktion til MASCOT SmartStore... 3 Ordforklaring:... 3 Adgangskode... 3 Administrator... 3 Brugernummer... 3 Frigiv

Læs mere

Oprette Aktiviteter, Møder, Tilbud, Produkter, Tilbud og Leverancer fra en import.

Oprette Aktiviteter, Møder, Tilbud, Produkter, Tilbud og Leverancer fra en import. Dataimport Introduktion Dataimport i webcrm er designet til at: Importere data fra en eksisterende database eller en ny datafil Opdatere eksisterende data med ny data Oprette Aktiviteter, Møder, Tilbud,

Læs mere

Hvorfor skal vi bruge objekt orienteret databaser?

Hvorfor skal vi bruge objekt orienteret databaser? OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal

Læs mere

Introduktion til SQL queries

Introduktion til SQL queries Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i

Læs mere

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som

Læs mere

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996 Hjerner i et kar - Hilary Putnam noter af Mogens Lilleør, 1996 Historien om 'hjerner i et kar' tjener til: 1) at rejse det klassiske, skepticistiske problem om den ydre verden og 2) at diskutere forholdet

Læs mere

Tips til siden Slægtstræ

Tips til siden Slægtstræ Tips til siden Slægtstræ Indholdsfortegnelse Indledning 1 Kom godt i gang 1 Kildecitater og links til online arkivalier: 5 Familier 9 Export, import og backup: 10 Folketællinger: 10 Om noter og rapporter

Læs mere

Sammenknytning af listedata fra MUD til tabel i MapInfo (SVM-eksempel)

Sammenknytning af listedata fra MUD til tabel i MapInfo (SVM-eksempel) Sammenknytning af listedata fra MUD til tabel i MapInfo (SVM-eksempel) Indhold Introduktion...1 Eksport og tilpasning af tabeldata MUD...1 Direkte til Excel...1 Via Rapport i Word-format til Excel...1

Læs mere

Dorthes Bog Centrum har ca forskellige bøger (bibliografiske enheder), som alle skal være søgbare fra prototypen.

Dorthes Bog Centrum har ca forskellige bøger (bibliografiske enheder), som alle skal være søgbare fra prototypen. Afleveringsopgave Hermed afleveringsopgaven for kurset. Besvarelsen, der gerne må udfærdiges i grupper, er del af den mundtlige eksamen (som i øvrigt er individuel). Problemet Efter flere møder med firmaet

Læs mere

ER-modellen. Databaser, efterår 2002. Troels Andreasen. Efterår 2002

ER-modellen. Databaser, efterår 2002. Troels Andreasen. Efterår 2002 Databaser, efterår 2002 ER-modellen Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse. Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i

Læs mere

DATABASE Projekt 1-3. semester

DATABASE Projekt 1-3. semester DATABASE Projekt 1-3. semester Gruppe 2- CLmul-a12e Projekt URL http://www.lucasperch.dk/projekter/database.pdf Gruppe 2 Lucas Perch-Nielsen cph-lp14@cphbusiness.dk http://lucasperch.dk/skole.php Niclas

Læs mere

Baggrundsnote om logiske operatorer

Baggrundsnote om logiske operatorer Baggrundsnote om logiske operatorer Man kan regne på udsagn ligesom man kan regne på tal. Regneoperationerne kaldes da logiske operatorer. De tre vigtigste logiske operatorer er NOT, AND og. Den første

Læs mere

Trekanter. Frank Villa. 8. november 2012

Trekanter. Frank Villa. 8. november 2012 Trekanter Frank Villa 8. november 2012 Dette dokument er en del af MatBog.dk 2008-2012. IT Teaching Tools. ISBN-13: 978-87-92775-00-9. Se yderligere betingelser for brug her. Indhold 1 Introduktion 1 1.1

Læs mere

Databaser Obligatorisk opgave 1

Databaser Obligatorisk opgave 1 University of Southern Denmark Department of Mathematics and Computer Science Databaser Obligatorisk opgave 1 Afleveres senest: Lørdag d. 23. marts kl 23.59 Introduction Denne obligatoriske opgave indeholder

Læs mere

Opgave 1 Basal select med (stjerne)

Opgave 1 Basal select med (stjerne) Opgave 1 Basal select med (stjerne) 1. List alle øltyper. 2. List alle bryggerier 3. List alle Danmarks postnumre samt tilhørende by, landsdel og antal indbyggere 4. BONUS: List alle ølmærker med alt deres

Læs mere

DEN GODE MODEL: OPSAMLING PÅ MODELLERINGSOPGAVER OG INTRO TIL MODELLERINGSALTERNATIVER

DEN GODE MODEL: OPSAMLING PÅ MODELLERINGSOPGAVER OG INTRO TIL MODELLERINGSALTERNATIVER DEN GODE MODEL: OPSAMLING PÅ MODELLERINGSOPGAVER OG INTRO TIL MODELLERINGSALTERNATIVER KIRSTINE ROSENBECK GØEG Tema Titel Materiale 1 IS i sundhedssektoren Patientdatas anvendelighed Lynge et al. 2 Registrering

Læs mere

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 4: Mere om E-R modellering. 24. februar 2005. Forelæser: Rasmus Pagh

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 4: Mere om E-R modellering. 24. februar 2005. Forelæser: Rasmus Pagh Databasesystemer, forår 2005 IT Universitetet i København Forelæsning 4: Mere om E-R modellering 24. februar 2005 Forelæser: Rasmus Pagh Forelæsningen i dag Fortsættelse af E-R model: Attributtyper, identifiers,

Læs mere

Informations- og datamodellering

Informations- og datamodellering Informations- og datamodellering Lær at analysere og dokumentere din organisations forretningsbegreber, interesseområder og data på en konsistent måde der er nem at kommunikere med ledere, designere, udviklere

Læs mere

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet Sikre Beregninger Kryptologi ved Datalogisk Institut, Aarhus Universitet 1 Introduktion I denne note skal vi kigge på hvordan man kan regne på data med maksimal sikkerhed, dvs. uden at kigge på de tal

Læs mere

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Copenhagen Business Academy Multimediedesigner 3. semester - 1. projekt, september 2014 Gruppe 1 - MulA Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Study: Multimedia Design Project:

Læs mere

Databaser. Område / Specialefag nr. 6238 Database, design og programmering 44954. Datatekniker Infra & Prog IT-Supporter AMU Kursister

Databaser. Område / Specialefag nr. 6238 Database, design og programmering 44954. Datatekniker Infra & Prog IT-Supporter AMU Kursister Databaser Område / Specialefag nr. 6238 Database, design og programmering 44954 Datatekniker Infra & Prog IT-Supporter AMU Kursister Fagligt indhold Link til faget på mars.tekkom.dk Link til faget på iu.amukurs.dk

Læs mere

Database for udviklere. Jan Lund Madsen PBS10107

Database for udviklere. Jan Lund Madsen PBS10107 Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated

Læs mere

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails Casper Fabricius http://casperfabricius.com ActiveRecord O/RM i Ruby on Rails Casper Fabricius Freelance webudvikler - casperfabricius.com 9 års erfaring med webudvikling 6 år med ASP/ASP.NET/C# 3 år med

Læs mere

Sag og Dokument: Eksempel på brug af generelle egenskaber

Sag og Dokument: Eksempel på brug af generelle egenskaber Sag og Dokument: Eksempel på brug af generelle egenskaber Der er knyttet en række generelle egenskaber til de enkelte objekter som beskrevet i dokumentet Generelle egenskaber for serviceinterfaces på sags-

Læs mere

Jørgen Koch. Access. Opgavehæfte

Jørgen Koch. Access. Opgavehæfte Jørgen Koch Access 2002 2002 for alle Opgavehæfte Access 2002 for alle 1. udgave 2002 Copyright 2002 IDG Danmark A/S Forfatter: Jørgen Koch Forlagsredaktion: Frantz Pedersen DTP: Jørgen Koch Skriv til

Læs mere

Indholdsfortegnelse. Systembeskrivelse kapitel 3 Forretningslogik

Indholdsfortegnelse. Systembeskrivelse kapitel 3 Forretningslogik Indholdsfortegnelse 3. Forretningslogik... 2 3.1 Domænemodel... 2 3.1.1 BBR-domænemodel... 2 3.1.1.1 er i BBR-domænemodel... 3 3.1.2 Modtageboks-domænemodel... 8 3.1.2.1 er i modtageboks-domænemodel...

Læs mere

CCS klassifikation og identifikation

CCS klassifikation og identifikation UDVEKSLINGSSPECIFIKATION klassifikation og identifikation Udgivet 01.09.2017 Revision 0 Molio 2017 s 1 af 19 Forord Denne udvekslingsspecifikation beskriver, hvilke egenskaber for klassifikation og identifikation,

Læs mere

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen Databaser, efterår 2002 Begrænsninger i SQL Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Læring af test. Rapport for. Aarhus Analyse Skoleåret

Læring af test. Rapport for. Aarhus Analyse  Skoleåret Læring af test Rapport for Skoleåret 2016 2017 Aarhus Analyse www.aarhus-analyse.dk Introduktion Skoleledere har adgang til masser af data på deres elever. Udfordringen er derfor ikke at skaffe adgang

Læs mere

Skriftlig eksamen i. Databaser. Vinter 2002/2003

Skriftlig eksamen i. Databaser. Vinter 2002/2003 Skriftlig eksamen i Databaser Vinter 2002/2003 Dette eksamenssæt består af 5 nummererede sider (incl. denne). Der er 5 opgaver, som ved bedømmelsen tillægges følgende vægte: Opgave 1: 15% Opgave 2: 30%

Læs mere

Appendiks 6: Universet som en matematisk struktur

Appendiks 6: Universet som en matematisk struktur Appendiks 6: Universet som en matematisk struktur En matematisk struktur er et meget abstrakt dyr, der kan defineres på følgende måde: En mængde, S, af elementer {s 1, s 2,,s n }, mellem hvilke der findes

Læs mere

Eksamen, DSDS, forår 2009

Eksamen, DSDS, forår 2009 Eksamen, DSDS, forår 2009 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 3. juni 2009 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

Software Projekt NoSQL vs RMDB

Software Projekt NoSQL vs RMDB Software Projekt NoSQL vs RMDB Skrevet af Carsten Sørensen, Hans Jørgen Frandsen, Peter Haislund Department of Computer Science, University of Aarhus Aabogade 34, 8200 Arhus N, Denmark 201200089, 19960442,

Læs mere

Smagsprøve. Databasedesign med Access 2000

Smagsprøve. Databasedesign med Access 2000 Smagsprøve Databasedesign med Access 2000 Helle Frederiksen ISBN: 87-7843-409-2 Link: Http://idgforlag.dk/vp.asp?i=87-7843-409-2 Indholdsfortegnelse, forord og første kapitel Copyright IDG Forlag IDG Forlag

Læs mere

UML til kravspecificering

UML til kravspecificering UML til kravspecificering UML mini-kompendium - til brug i forbindelse med modellering af kravspecifikationer. Copyright 2006 Teknologisk Institut, IT-Udvikling Aktivitetsdiagram 2/9 Aktion Aktionsnavn

Læs mere

Fra ER-Diagram til Relationel model i 7 step

Fra ER-Diagram til Relationel model i 7 step Fra ER-Diagram til Relationel model i 7 step STEP 1: For regular entity type E in ER schema, create a relation R that includes all the simple attributes, and component attributes of composite attributes.

Læs mere

Databasesystemer fra forskellige synsvinkler

Databasesystemer fra forskellige synsvinkler Databasesystemer fra forskellige synsvinkler Kim Skak Larsen kslarsen@imada.sdu.dk IMADA DM534 Introduktion til datalogi, 8/10 2015 p.1/60 Oversigt Introduktion Del 1: en designers synsvinkel Del 2: en

Læs mere

Implikationer og Negationer

Implikationer og Negationer Implikationer og Negationer Frank Villa 5. april 2014 Dette dokument er en del af MatBog.dk 2008-2012. IT Teaching Tools. ISBN-13: 978-87-92775-00-9. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Brugervejledning. Sådan laves et opslag med avanc. søgning. December 2010

Brugervejledning. Sådan laves et opslag med avanc. søgning. December 2010 Brugervejledning Sådan laves et opslag med avanc. søgning December 2010 Sådan laves en avanceret søgning Denne vejledning gennemgår eksempler på, hvordan avanceret søgning kan bruges. Når du har startet

Læs mere

Skriftlig opgave. Designtanker i database-nære systemer

Skriftlig opgave. Designtanker i database-nære systemer Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design

Læs mere

Database optimering - Indeks

Database optimering - Indeks Database optimering - Indeks Alle kender til dette irritations moment, hvor programmet man sidder og arbejder med, bare ikke er hurtigt nok. Selvom det kun drejer sig om få sekunder man sidder og venter,

Læs mere

Noter til Perspektiver i Matematikken

Noter til Perspektiver i Matematikken Noter til Perspektiver i Matematikken Henrik Stetkær 25. august 2003 1 Indledning I dette kursus (Perspektiver i Matematikken) skal vi studere de hele tal og deres egenskaber. Vi lader Z betegne mængden

Læs mere

Kommentar fra KMS til Specifikation af Serviceinterface for Person

Kommentar fra KMS til Specifikation af Serviceinterface for Person Kommentar fra KMS til Specifikation af Serviceinterface for Person Organisation Side Kapitel Afsnit/figur/tabel /note Type af kommentar (generel (G), redaktionel (R), teknisk (T)) Kommentar KMS-1 G Godt

Læs mere

Forslag til ny struktur - overblik

Forslag til ny struktur - overblik BESKRIVELSESVÆRKTØJ Forslag til ny struktur - overblik Den korte version Udarbejdet af Molio 2018-03-01 Høringsversion Molio 2018 1 Indledning og formål Molio ønsker at omlægge beskrivelsesværktøjets struktur.

Læs mere

Eksamen, DSDS, efterår 2007

Eksamen, DSDS, efterår 2007 Eksamen, DSDS, efterår 2007 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech og Martin Elsman IT Universitetet i København 7. januar 2008 Alle hjælpemidler er tilladte, dog ikke

Læs mere

Relationel Algebra...1. Indholdsfortegnelse...1. Operationer på den relationelle model...2

Relationel Algebra...1. Indholdsfortegnelse...1. Operationer på den relationelle model...2 Relationel Algebra Indholdsfortegnelse Relationel Algebra...1 Indholdsfortegnelse...1 Operationer på den relationelle model...2 Mængdeoperationerne...2 Union...2 Difference...2 Intersection...3 Hvilke

Læs mere

Spilstrategier. 1 Vindermængde og tabermængde

Spilstrategier. 1 Vindermængde og tabermængde Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende type: Spil der spilles af to spillere A og B som skiftes til at trække, A starter, og hvis man ikke kan trække har man tabt. Der

Læs mere

Brugervejledning til databrowseren

Brugervejledning til databrowseren Brugervejledning til databrowseren Indholdsfortegnelse Indledning...2 Hvordan tilgås browseren og api et...2 Databrowseren...2 Søgning...2 Visning...4 Features i listevisningen...4 Detaljeret visning...5

Læs mere

Introduktion til SQL

Introduktion til SQL Introduktion til SQL Introduktion til SQL 1. udgave, 1. oplag 2013 Copyright 2013 Libris Media A/S Forfatter: Bobby Henningsen Forlagsredaktion: Peter Wiwe og Louise Peulicke Larsen Omslag: Louise Peulicke

Læs mere

Metodehåndbog. Forretningsbeslutninger og forretningsregler Beslutningsmodellen. Udarbejdet i fællesskab mellem KL/KOMBIT

Metodehåndbog. Forretningsbeslutninger og forretningsregler Beslutningsmodellen. Udarbejdet i fællesskab mellem KL/KOMBIT Metodehåndbog Forretningsbeslutninger og forretningsregler Beslutningsmodellen Udarbejdet i fællesskab mellem KL/KOMBIT Indholdsfortegnelse Introduktion... 3 Beslutningsmodellering af forretningsregler...

Læs mere

Hvad er et tal? Dan Saattrup Nielsen

Hvad er et tal? Dan Saattrup Nielsen 12 Det filosofiske hjørne Hvad er et tal? Dan Saattrup Nielsen Det virker måske som et spøjst spørgsmål, men ved nærmere eftertanke virker det som om, at alle vores definitioner af tal refererer til andre

Læs mere