Den relationelle model

Slides:



Advertisements
Lignende præsentationer
Relationer En relation mellem to mængder er en generaliseret funktion
Advertisements

Separation af de variable
Mapning af 1 til mange forbindelser
Mapning af klasser til relationer
Samarbejde med eller uden Service Level Agreement (SLA)
Formularer (Access, del 3)
Databaser Teori.
3. Funktionelle afhængigheder og normalisering
SQL 1 DDL og DML.
Felter og nøgle-felter (databaser, del 6)
Eksamensspørgsmål: 4: Brugen af nøgler i en "Relationel DB" herunder: Primary Key og Foreign Key samt Super Key og Candidate Key.
ER-diagrammer (databaser, del 4)
Informationsteknologi B-A, HHX, 2005,
NOEA/IT - FEN - Databaser/TabelDesign 1 Tabeldesign Design af relationsdatabaser Normalisering.
Mapning af 1 til mange forbindelser
Validering af data (Access, del 7)
Opslagsfelter (Access, del 6). RHS – Informationsteknologi 2 Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser vores.
Oprettelse af tabeller (Access, del 2)
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer Del 2 af 2: Proces- og funktionsdiagrammering Aalborg Universitet, d. 9. oktober 2006.
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer
1 Dagens gang Repeter systemvalg Gennemgang af klasser og strukturer (kap. 3+4 OOA+D) Tavle opgave Gruppe opgave til næste gang.
2:Relations modellering og design regler.
Relationsdatabaser og SQL
FEN Rekursion og induktion1 Induktion og (især) rekursion Mange begreber defineres ud fra en basis og så en gentagen anvendelse af et antal regler.
Operationer på relationer
7. SQL constraints og triggers1 Aktive elementer i SQL.
Dagens gang Sidste uges opgaver Databaser Opgaver til næste gang
Powerpoint Jeopardy Data flow diagrammer Entity relationship diagrammer State diagrammerSammenhænge mellem systemmodeller
NOEA/IT FEN - Databaser/modellering 1 Tabeldesign Omformning af E/R-modellen til relationelle skemaer.
SQL – Oracle Relationsdatabase
Data Dictionary (databaser, del 7)
Den relationelle model
Hidtil har det været besværligt og tidskrævende at oprette værktøjer og tilhørende reservedele. Man kunne ikke gennem værktøjets navn/nummer se hvilke.
SQL – Oracle Relationsdatabase
Relationelle databaser og XML
17.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Implementering Principper, teknikker og vurdering Kapitel 17.
2009NOEA/IT - Databaser/arkitektur1 Den relationelle model En teoretisk model for databaser Hviler på et sundt teoretisk grundlag Omfatter: Datastruktur.
2009NOEA/IT - Databaser/arkitektur1 Tabeldesign Design af relationsdatabaser Normalisering.
IT i Byggeriet Semester 6, kursusgang Databaser (2) Kjeld Svidt Kjeld Svidt  Institut for Bygningsteknik  Aalborg Universitet.
IT i Byggeriet Semester kursusgang Databaser (2) Kjeld Svidt Kjeld Svidt  Institut for Bygningsteknik  Aalborg Universitet.
Normalisering Sund Fornuft!. Normalformer 1. Normalform Ingen repeterende felter Der eksisterer en primær nøgle 2. Normalform Tabellen skal være i 1NF.
1. Database-systemer, introduktion
Introduktion til databaser (databaser, del 1)
Aalborg Universitet Master i Informationsteknologi, IT i Byggeriet – 2. Års projekt TYPEHUSKATALOG.
Opslagsfelter (Access, del 6). RHS – Informationsteknologi – Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser.
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
ER-modellering1 Analyse af data og sammenhæng mellem data.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
Intro Databaserne? Gik det som det skulle?. Databasestøttet webpublicering Forelæsning nr 8 Hvorfor data i en RDB (relationel database)? Databasemodellering.
3. Objekt Orientering og Relations Databaser
Kjeld Svidt  Institut for Byggeri og Anlæg  Aalborg Universitet IT i Byggeriet Semester 6, kursusgang Databaser (2) Kjeld Svidt
I4DAB1 F08 guideline for normalisering og design Take 2 Jesper Tørresø DAB1 F April 2008.
Generelt om abstraktion og modellering Tietgen Skolen.
NOEA/IT FEN - Databaser/modellering 1 Datamodellering Den udvidede (enhanced) E/R-model (EE/R- modellen) Begreber Diagrammering Omformning til.
Oprettelse af tabeller (Access, del 2)
OOD  Relationel database: Klasser Hver klasse afbildes over i en tabel. Klassens navn bruges som navn på tabellen. Hver af klassens attributter afbildes.
2009Softwarekonstruktion / DB-design 11 Databasedesign 1 Fra begrebsmæssig model til relationel model.
Database.
Database Some walk through. Database Design – Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management.
E/R-diagrammering 7. Semester.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
Objekt-relationel DBMS1 4.5 The Object-Relational Model 9.4 User-Defined Types in SQL 9.5 Operations on Object-Relational Data Ullman: Object-Relational.
Intro Databaserne? Gik det som det skulle?. Databasestøttet webpublicering Forelæsning nr 7 Hvorfor data i en RDB? Databasemodellering Begrebet nøgle.
Omsætning af en model til en RDB Jesper Tørresø DAB1 F Marts 2008.
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
Normal former i en database Jan Christiansen Nyborg Gymnasium.
Abstraktioner.
1.10 System design - Database
MySQL dat2sem2018Fall Modul 2 – uge 2.
Dat2sem2019 Bornholm Modul 2 – uge 2
Præsentationens transcript:

Den relationelle model Matematisk baggrund for relations-databaser Den relationelle model

ER vs. relationelle model, 61 ER-modellen sprog Entity sets Relationships Attributes Sub-klasser Systemudvikling Analyse ("hvad") Relationelle model sprog Relationer med Attributter Tupler Passer til relations-databaser Solidt matematisk fundament: Mængdelære Systemudvikling Design ("hvordan") Den relationelle model

Den relationelle model Terminologi, 61 Relation (ikke d.s.s. relationship) 2-dimensional tabel Attribut Kolonne i en tabel Skema Navn på relation + alle attributterne Tupel Række i en relation Relation består af en mængde af tupler Domæne En mængde af atomiske værdier for en attribut Den relationelle model

Relationelt skema vs. instans, 64 Strukturen på relationen. Defineres [principielt] en gang for alle. Relationel instans Indholdet (data) i relationen til et bestemt tidspunkt. Skifter over tid - data kommer og går. Den relationelle model

Konvertering fra ER-diagram til relationel model, 65 Entity set → relation, inkl. attributter Relationships a. N-M → relation, inkl. attributter + nøgler fra deltagende entity sets b. 1-N → integrer attributter + nøgle fra N i 1 relationen c. 1-1 → integrer (vælg selv i hvilken) eller slå de 2 entity types helt sammen. Den relationelle model

Den relationelle model Konvertering II, 71 Svage entity types → relation inkl. attributter + primærnøgle i tilhørende "stærke" entity type. Sub-klasser: Kan ikke udtrykkes direkte i den relationelle model Flere "hacks" (ikke-perfekte løsninger) Den relationelle model

Den relationelle model Arv ER-metoden, 77 Super-typen → 1 relation Alle generelle data 1 relation for hver af sub-typerne Specifikke data Nøglen på super-typen Eksempel Person (cpr, navn, adr) Studerende (cpr, semester) Lærer (cpr, løn) Den relationelle model

Den relationelle model Arv, OO metoden78 En relation for hver type med alle attributter Data fra sub-typen (specifikke) Data fra super-typen (generelle) Eksempel Person (cpr, navn, adresse) Studerende (cpr, navn, adresse, semester) Lærer (cpr, navn, adresse, løn) Den relationelle model

Den relationelle model Arv, null metoden 79 Lav én STOR relation alle attributter fra super-typen + alle sub-typerne mange af attributterne vil have værdien null værdien findes ikke Eksempel Person (cpr, navn, adresse, semester, løn) semester eller løn er altid null, med mindre man kan være både studerende og lærer! Den relationelle model

Funktionelle afhængigheder 82 Metoder til database-design ER-model + konvertering til relationel model Top down (start med strukturen) Normalisering → relationel model Baseret på funktionelle afhængigheder Bottom up (starte med de enkelte data) Den relationelle model

Den relationelle model Funktionelle afh. def. 83 Funktionel afhængighed i en relation R ABC → D Hvis attributterne A, B og C er ens, så skal D også være ens - for alle tupler, til enhver tid!! Kræver indgående kendskab til data! Eksempler cpr → navn cpr → adresse adresse → telefon gælder næppe i disse mobil-tider postnr → postdistrikt omv. gælder ikke, Viby cpr, kursusnr → karakter Den relationelle model

Den relationelle model Nøgler, 84 En nøgle er en mængde af attributter, som alle andre attributter afhænger af. Eksempler Person (cpr, navn, adr) Postdistrikt (postnr, distrikt) Kursus (stud_cpr, kursusnr, tidspunkt, karakter) Den relationelle model

Den relationelle model Super-nøgler, 86 Minimal: En nøgle må ikke indeholde unødvendige attributter Hvis en attribut tage ud af mængden, så forsvinder nøgle-egenskaben Super-nøgle: Mængde af attributter, der indeholder en nøgle + evt. ekstra attributter En super-nøgle er ikke ekstra god - tværtimod! Den relationelle model

Den relationelle model Nøgler i ER, 87 Nøgler i relationelt skema lavet på baggrund af ER Entity set Har allerede nøgle (check minimal) Relationship Nøgle = nøgler fra deltagende entity sets Svag entity set Egen nøgle + nøgle fra "stærke" entity set Den relationelle model

Den relationelle model Regler for funk. afh., 90 Trivielle afhængigheder AB…C → A Kombiner AB → C og AB → D, så AB → CD Split AB → CD, så AB → C og AB → D Transitiv A → B og B → C, så A → C Den relationelle model

Den relationelle model Closure, 92 Aflukningen (closure) af en mængde af attributter: Alle de attributter, der er afhængige af attributterne i mængden Notation: {A, B}+ Hvis X+ er alle attributter i R, så er X supernøgle i R Den relationelle model

Design af relationelt skema, 102 Vi skal undgå relationer med dårlige egenskaber fig. 3.21, side 103 redundans Samme information i flere opdaterings-problemer Opdatering i en tupel, kræver opdatering i andre tupler sletnings-problemer sletning af en tupel medfører at anden information slettes. Den relationelle model

Opdeling af relationer, 103 Relationer med dårlige egenskaber skal opdeles i flere mindre relationer - uden dårlige egenskaber. Fig. 3.22, side 104 Fig. 3.23, side 105 Den relationelle model

Boyce-Codd normal-form (BCNF), 105 Reglement for relationer Høj normalform = få dårlige egenskaber BCNF Hvis X → B (ikke triviel), så er X supernøgle i relationen. Enhver determinant (venstre side i funk. afhængighed) skal være supernøgle. Den relationelle model

Den relationelle model BCNF eksempel BCNF eksempel Person (cpr, navn, adresse, postnr, bynavn) cpr → navn, adresse, postnr, bynavn postnr → bynavn Opdeles i Person2 (cpr, navn, adresse, postnr) Postdistrikt (postnr, bynavn) Den relationelle model

Den relationelle model Join af relationer, 112 Opdelte relationer skal kunne samles (join), så de bliver præcis som før ingen nye (bogus) tupler ingen manglende tupler Den relationelle model

Den relationelle model 3. normal-form (3NF), 114 Svagere udgave af BCNF + Svagere: Flere dårlige egenskaber − Mindre opdeling = hurtigere søgning De-normalisering Hvis X → A (ikke-triviel), så er X supernøgle eller A er attribut i en nøgle (ny i forhold til BCNF) Den relationelle model

Den relationelle model 3NF eksempel, 114 Title City Theater Mulige nøgler {title, city} og {theater, title} 3NF OK City er en del af nøglen {Title, City} Brud på BCNF Theater → City, men Theater er ikke nøgle Problem: Opdeling {theater, city} for sig selv bryder den funktionelle afhængighed {title, city} → theater Løsning: Undladt opdeling, bliv ved 3NF Den relationelle model

Den relationelle model 1NF og 2NF 1NFAlle attributter er atomare + alle relationer har en nøgle Ingen sammensatte attributter 2NF Afhængighed af hele nøglen En attribut må ikke være afhængig af en del af nøglen. {cpr, navn, kursusnr, karakter} cpr → navn kun afhængig af en del af nøglen Forholdet cpr, navn må ud i en selvstændig relation. Den relationelle model

Den relationelle model The Relational Oath "I promise to use the key, the whole key, and nothing but the key, so help me Codd" Det var Codd, der definerede den relationelle model - og normalformerne. Den relationelle model

Flerværdi afhængigheder, 118 Multivalued dependencies (MVD) Generalisering af funk. afhængighed. 2 mængder af attributter er uafhængige af hinanden. 2 typer information i samme relation medfører redundans. Fig. 3.29 , s. 118 vs. Den relationelle model

Den relationelle model Flerværdi afh. def., 119 A1A2…An → → B1B2…Bk Værdierne i B'erne er uafhængige af værdierne af alle andre attributter [end A'erne] For alle tupler t, u [ens mht. A'er] eksisterer en tupel v, der er ens med t og u mht. A'er ens med t mht. B'er ens med u mht. alle attributter ikke i A eller B Fig. 3.29 side 118 + 120 Den relationelle model

Den relationelle model Regler for MVD, 121 A → → BC medfører ikke A → → B name → → street holder ikke, da city ikke kan variere frit A → B medfører A → → B Alm. FD er altså er særtilfælde af MVD Den relationelle model

Den relationelle model 4. normalform (4NF), 122 Regler for A1A2…An → → B1B2…Bk er triviel, hvis nogle af B'erne også er blandt A'erne eller A'erne og B'erne tilsammen udgør alle attributterne i relationen hvis A1A2…An → → B1B2…Bk så skal A1A2…An være en supernøgle Hvis en relation ikke overholder 4NF,så må den opdeles i flere mindre relationer, der hver især overholder 4NF. Eksempel name → → street, city name → → title, year Opdeles i {name, street, city} og {name, title, year} Begge afhængigheder er nu trivielle (jf. ii.) Den relationelle model

Afsluttende kommentarer, 124 Højere normalform = højere kvalitetskrav Færre relationer opfylder den høje normalform end den lave Med en instans af en database kan man ikke påvise funk. afhængigheder måske afvise funk. afhængigheder Funk. afhængigheder må man efterspørge i den modellerede verden. Den relationelle model