290 likes | 392 Views
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.
E N D
Data-organisering - Manuelt Ansatte Pasienter Røntgen Onkologisk Avdelinger Utstyr Økonomi
Data-organisering - Manuelt Ansatte Total Pasienter Røntgen Onkologisk Avdelinger Utstyr Økonomi
Data-organisering - Manuelt / vha IT Dataskjerm Database Tabeller Ansatte Ansatte Pasienter Pasienter Røntgen Onkologisk Avdelinger Avdelinger Utstyr Utstyr Økonomi Økonomi
Database-system Bruker Appl. Database DBMS Bruker Appl. DD Bruker Appl.
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
Data-gjenfinning - vha ITSQL innebygget i et databaseutviklingsverktøy Select PasientNr, EtterNavn, Diagnose FROM Pasienter …
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
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.
Tabeller Dataene i en relasjonsdatabase er plassert i to-dimensjonale tabeller. En relasjons-database består av tabeller.
Eksempel på innhold i en database Database Views Procedures Rules Tables Datatypes Indexes Defaults Triggers
Database / Tabell / Rad / Kolonne Database Tabell 5 Nilsen 5002 2 Olsen 6400 1 Hansen 9000 4 Berg 6400 Rad Post Record Kolonne Felt
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
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.
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
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
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
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ø
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
Modellator - Notasjon Kråkefot Selger Adr Uten attributter Selger Adr Med attributter SNr Navn *PNr PNr Sted
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å
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
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
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
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
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
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
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