1 / 29

Kap 02 Relasjonsdatabaser

Kap 02 Relasjonsdatabaser. Data-organisering - Manuelt. Ansatte. Pasienter. Røntgen. Onkologisk. Avdelinger. Utstyr. Økonomi. Data-organisering - Manuelt. Ansatte. Total. Pasienter. Røntgen. Onkologisk. Avdelinger. Utstyr. Økonomi.

Download Presentation

Kap 02 Relasjonsdatabaser

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kap 02 Relasjonsdatabaser

  2. Data-organisering - Manuelt Ansatte Pasienter Røntgen Onkologisk Avdelinger Utstyr Økonomi

  3. Data-organisering - Manuelt Ansatte Total Pasienter Røntgen Onkologisk Avdelinger Utstyr Økonomi

  4. Data-organisering - Manuelt / vha IT Dataskjerm Database Tabeller Ansatte Ansatte Pasienter Pasienter Røntgen Onkologisk Avdelinger Avdelinger Utstyr Utstyr Økonomi Økonomi

  5. Database-system Bruker Appl. Database DBMS Bruker Appl. DD Bruker Appl.

  6. Data-gjenfinning - Manuelt / vha ITInteraktiv SQL Select PasientNr, EtterNavn, Diagnose FROM Pasienter Hent pasientkort Tabeller Ansatte Ansatte Pasienter Pasienter Røntgen Onkologisk Avdelinger Avdelinger Utstyr Utstyr Økonomi Økonomi Manuelt Database

  7. Data-gjenfinning - vha ITSQL innebygget i et databaseutviklingsverktøy Select PasientNr, EtterNavn, Diagnose FROM Pasienter …

  8. Database-utviklingsverktøy Objekt-orientert Meldings-orientert Statisk / Dynamisk SQL Objekt-orientert : Til komplekse probl. Meldings-orientert : Obj-kommunikasjon Statisk / Dynamisk SQL : Eksplisitt SQL-kode Applikasjonen bygger selv SQL-kode

  9. Dynamisk SQLApplikasjonen bygger selv opp SQL-statementene

  10. Database-utviklingsverktøy Objekt-orientert Meldings-orientert Statisk / Dynamisk SQL Med et avansert database-utviklingsverktøy, samt godt utbygde klasserelasjoner, meldingshåndteringer og dynamisk oppbygging av SQL-statement, vil en stor del av databaseapplikasjonsutvikling bestå i å designe gode brukergrensesnitt.

  11. Tabeller Dataene i en relasjonsdatabase er plassert i to-dimensjonale tabeller. En relasjons-database består av tabeller.

  12. Eksempel på innhold i en database Database Views Procedures Rules Tables Datatypes Indexes Defaults Triggers

  13. Database / Tabell / Rad / Kolonne Database Tabell 5 Nilsen 5002 2 Olsen 6400 1 Hansen 9000 4 Berg 6400 Rad Post Record Kolonne Felt

  14. Hva er en relasjons-database ? En relasjons-database er en database hvor alle dataene er samlet i to-dimensjonale tabeller og hvor tabellene eventuelt står i en 1:1 eller 1:n relasjon til hverandre. Tabellene er inndelt i rader (records) og kolonner (felter). n 1 Nr Navn PNr 5 Nilsen 4890 7 Olsen 6400 3 Hansen 4890 8 Karlsen 4890 PNr Sted 4890 Grimstad 5002 Bergen 6400 Molde

  15. Viktige fortrinn ved relasjons-database • Reduserer lagring av redundante data. • Data kan lett omorganiseres og kombineres i nye relasjoner,de er ikke låst til faste relasjoner pga måten de er lagret på. • Data kan lett oppdateres i det disse vil bli oppdatertpå et minimum antall steder. • Reduserer behovet for disk-plass.

  16. Normal-former SNr Navn PNr Sted VNr Pris Mg VNr Pris Mg VNr Pris Mg 5 Nilsen 5002 Bergen 8 500 30 2 Olsen 6400 Molde 1 200 20 3 400 10 1 Hansen 9000 Tromsø 5 300 50 8 500 40 4 Berg 6400 Molde 1 200 70 3 400 50 5 300 20 SNr Selger-nummer Navn Selger-navn PNr Post-nummer Sted Post-sted VNr Vare-nummer Pris Vare-pris Mg Vare-mengde

  17. 1NF Første normalform • Hver tabell skal ha en fast postlengde • Det skal være kun en post-type pr tabell • Hver post skal ha et eget identifikasjons-felt ( ID ) SNr Navn PNr Sted VNr Pris Mg 5 Nilsen 5002 Bergen 8 500 30 2 Olsen 6400 Molde 1 200 20 2 Olsen 6400 Molde 3 400 10 1 Hansen 9000 Tromsø 5 300 50 1 Hansen 9000 Tromsø 8 500 40 4 Berg 6400 Molde 1 200 70 4 Berg 6400 Molde 3 400 50 4 Berg 6400 Molde 5 300 20

  18. 2NF Andre normalform • Databasen må være på 1.normalform • Deler av ID skal ikke kunne være determinantfelt for andre felt,dvs deler av ID skal ikke entydig kunne bestemme verdier i et annet felt SNr Navn PNr Sted 5 Nilsen 5002 Bergen 2 Olsen 6400 Molde 1 Hansen 9000 Tromsø 4 Berg 6400 Molde VNr Pris 8 500 1 200 3 400 5 300 SNr VNr Mg 5 8 30 2 1 20 2 3 10 1 5 50 1 8 40 4 1 70 4 3 50 4 5 20

  19. 3NF Tredje normalform • Databasen må være på 2.normalform • Det må ikke eksistere noen funksjonelle avhengigheter mellom egenskapsfeltene (felter utenom ID-feltene) SNr Navn PNr 5 Nilsen 5002 2 Olsen 6400 1 Hansen 9000 4 Berg 6400 SNr VNr Mg 5 8 30 2 1 20 2 3 10 1 5 50 1 8 40 4 1 70 4 3 50 4 5 20 VNr Pris 8 500 1 200 3 400 5 300 PNr Sted 5002 Bergen 6400 Molde 9000 Tromsø

  20. 3NF Tredje normalform Adr Selger Vare PNr Sted 5002 Bergen 6400 Molde 9000 Tromsø SNr Navn PNr 5 Nilsen 5002 2 Olsen 6400 1 Hansen 9000 4 Berg 6400 VNr Pris 8 500 1 200 3 400 5 300 Salg SNr VNr Mg 5 8 30 2 1 20 2 3 10 1 5 50 1 8 40 4 1 70 4 3 50 4 5 20

  21. Modellator - Notasjon Kråkefot Selger Adr Uten attributter Selger Adr Med attributter SNr Navn *PNr PNr Sted

  22. Modellator Selger Adr Kråkefot Selger Adr Gaffel Selger Adr Pil Selger Adr Pil / Dobbeltpil 1..1 Selger Adr Antall 0..m Selger Adr Niam-basert Selger Adr Kan / Må

  23. Generell metode for tilordning av 3NF-tabeller (0) Vi går tilbake til vår opprinnelige Selger-tabell på 1NF form. Følgende felter er med i denne 1NF-tabellen ( ID er markert med * ). * SNr Selger-nummer Navn Selger-navn PNr Post-nummer Sted Post-sted * VNr Vare-nummer Pris Vare-pris Mg Vare-mengde

  24. Generell metode for tilordning av 3NF-tabeller (1) 1. Vi tegner inn relasjoner (piler) fra de feltene som entydig bestemmer verdien i andre felter til disse andre feltene. Total (1NF) * SNr Navn PNr Sted * VNr Pris Mg

  25. Generell metode for tilordning av 3NF-tabeller (2) 2. Lag en ny tabell ved å plukke ut alle *-feltene samt alle feltene som er funksjonelt avhengig av alle disse *-feltene. Denne nye tabellen vil være på 2NF. Salg (2NF) * SNr * VNr Mg

  26. Generell metode for tilordning av 3NF-tabeller (3) 3. Hvis det i 1NF-tabellen finnes felt som er avhengig av en ekte delmengde av *-feltene, plukkes disse ut sammen med tilhørende *-felt i egne tabeller. Disse nye tabellene vil være på 2NF. Selger (2NF) Vare (2NF) * SNr Navn PNr Sted * VNr Pris

  27. Generell metode for tilordning av 3NF-tabeller (4) 4. Hvis det i noen av våre 2NF-tabeller ( Salg, Selger, Vare ) finnes ikke-*-felter (ikke ID-felter) som entydig bestemmer verdier i andre ikke-*-felter, plukkes disse nevnte feltene ut i egne tabeller. I vårt eksempel gjelder dette tabellen Selger (PNr bestemmer Sted). Tabellen Selger splittes i to: Tabellene Selger og Adr (Adresse). Selger-tabellen beholder informasjon om PNr. ID i disse nye tabellene vil være de feltene som entydig bestemmer andre felt-verdier. Alle tabellene vil nå være på 3NF. Selger (3NF) Adr (3NF) * SNr Navn PNr * PNr Sted

  28. Generell metode for tilordning av 3NF-tabeller (5) Alle våre 4 tabeller ( Selger, Adr, Vare, Salg ) vil nå oppfylle 3NF. Selger (3NF) Adr (3NF) * SNr Navn PNr * PNr Sted Salg (3NF) Vare (3NF) * SNr * VNr Mg * VNr Pris

  29. Generell metode for tilordning av 3NF-tabeller (6) Følgende relasjoner gjelder mellom våre 4 tabeller ( Selger, Adr, Vare, Salg ) vil nå oppfylle 3NF. Selger Adr Vare * SNr Navn PNr * PNr Sted * VNr Pris Salg * SNr * VNr Mg

More Related