2009Softwarekonstruktion / DB-design 11 Databasedesign 1 Fra begrebsmæssig model til relationel model.

Slides:



Advertisements
Lignende præsentationer
Mapning af 1 til mange forbindelser
Advertisements

Mapning af klasser til relationer
3. Funktionelle afhængigheder og normalisering
Illustration fra Kort om kræft figur 4.1.
07 – Kort om OO Introduktion.
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.
Programmeringsteknologi: Lektion 1
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
Kursus om borger.dk og brugen af digital signatur
Larman, 2. udgave kap. 11 Grundlæggende Systemudvikling zHvad er systemudvikling ? zHvad er UML ? zHvad er analyse og design ? zHvad er UP ?
Introduktion til Access (Access, del 1)
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)
Rapporter (Access, del 5)
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer
04.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Struktur Oversigt, principper og teknikker Kapitel 4.
Klasser Modeller.
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.
12.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Modelkomponent Oversigt, principper og teknikker Kapitel 12.
Relationsdatabaser og SQL
Oversigt, principper og teknikker
Delphi og C++ Builder C++ Referencer og pointere.
Et vejledningsværktøj KOT Ansøgningsflow. Forsiden af Optagelse.dk 2.
Operationer på relationer
7. SQL constraints og triggers1 Aktive elementer i SQL.
Dagens gang Sidste uges opgaver Databaser Opgaver til næste gang
1 HMAK XMLRelationel model og XMLNOEA / PQC 2005 SQLServer og XML Hent data via URL Generering af xml –Raw –Auto –Explicit Hent data via template Evt.
NOEA/IT FEN - Databaser/modellering 1 Tabeldesign Omformning af E/R-modellen til relationelle skemaer.
SQL – Oracle Relationsdatabase
Dagens gang Sidste uges opgaver Design af grænseflader
05.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Adfærd Oversigt, principper og teknikker Kapitel 5.
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
Den relationelle model
2009NOEA/IT - Databasedesign1 Agenda Datamodellering Databasedesign Normalisering.
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
Relationelle databaser og XML
17.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Implementering Principper, teknikker og vurdering Kapitel 17.
Rapporter (Access, del 5). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller, og.
1 Dagens gang Sidste uges opgaver OA+D: Adfærd Nye opgaver.
2009NOEA/IT - Databaser/arkitektur1 Den relationelle model En teoretisk model for databaser Hviler på et sundt teoretisk grundlag Omfatter: Datastruktur.
Fundamentale datastrukturer
2009NOEA/IT - Databaser/arkitektur1 Tabeldesign Design af relationsdatabaser Normalisering.
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
Data Warehouse 8. semester forår 2010
Objekter og klasser Rasmus D. Lehrmann DM
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,
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
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.
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.
Database.
E/R-diagrammering 7. Semester.
Den relationelle model
Objektorienteret programmering – UML2Java.  Jens Bennedsen 2001Multimedie programmering8.2 Indhold Klasser og associering til enkelt objekt –Programmering.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
 Jens Bennedsen 2002Objektorienteret systemudvikling Begrebsmodellering Hvordan får vi opbygget en domænemodel/begrebsmodel?
Normal former i en database Jan Christiansen Nyborg Gymnasium.
1.10 System design - Database
Modellering og data Nyt forløb.
Præsentationens transcript:

2009Softwarekonstruktion / DB-design 11 Databasedesign 1 Fra begrebsmæssig model til relationel model

2009Softwarekonstruktion / DB-design 12 OOD  Relationel database: Klasser Hver klasse afbildes over i en tabel. Klassens navn bruges som navn på tabellen. Hver af klassens attributter afbildes over i en søjle i tabellen. Tabellen udbygges med en søjle, som indeholder en entydig reference til ethvert objekt. For hver attribut overvejes endvidere –domæne (type) –muligheden for NULL værdier –relevante nøgler Kunde CPR-nr Navn Adresse kunde-IDCPR-nrnavnadresse Jens AndersenSøndergade Oda NielsenAlgade Pia SchrøderBispensgade 27

2009Softwarekonstruktion / DB-design 13 Aggregeringsstruktur: Mange-til-mange Kunde-Konto Konto Kunde kunde-IDkonto-ID kunde-IDCPR-nrnavnadresse Jens AndersenSøndergade Oda NielsenAlgade Pia SchrøderBispensgade 27 konto-IDkonto-nrsidste-udtogkontotype checkkonto lån checkkonto Konto Saldo SidsteUdtog Kontotype Kunde CPR-nr Navn Adresse 0:m 1:m Ny tabel med primærnøglerne som fremmednøgler

2009Softwarekonstruktion / DB-design 14 Aggregeringsstruktur: en-til-mange Konto kontoIDkonto-nrsidste-udtogkontotype kundeID checkkonto lån checkkonto 25 Nøglen for den ene klasses objekter bliver til attribut- værdier (fremmednøgler) i den anden klasses objekter. Konto Saldo SidsteUdtog Kontotype Kunde CPR-nr Navn Adresse 1 1:m

2009Softwarekonstruktion / DB-design 15 Aggregeringsstruktur: en-til-en Nøglen for den ene klasses objekter bliver til attribut- værdier (fremmednøgler) i den anden klasses objekter. Konto Saldo SidsteUdtog Kontotype Kunde CPR-nr Navn Adresse 1 1 Kunde kunde-IDCPR-nrnavnadressekontoId Jens AndersenSøndergade Oda NielsenAlgade Pia SchrøderBispensgade 27

2009Softwarekonstruktion / DB-design 16 Aggregeringsstruktur: en-til-en Konto kontoIDkonto-nrsidste-udtogkontotype kundeID checkkonto lån checkkonto 5 Nøglen for den ene klasses objekter bliver til attribut- værdier (fremmednøgler) i den anden klasses objekter. Konto Saldo SidsteUdtog Kontotype Kunde CPR-nr Navn Adresse 1 1

2009Softwarekonstruktion / DB-design 17 Aggregeringsstruktur: en-til-en På hvilken side skal nøglen inkluderes? –Oftest på aggregatets side, men afhænger af navigationsveje (use cases) –Husk også: minimer NULL-værdier Konto Saldo SidsteUdtog Kontotype Kunde CPR-nr Navn Adresse 1 1

2009Softwarekonstruktion / DB-design 18 Associeringsstruktur: Samme diskussion som ved aggregering Tre muligheder: –Én-til-én (1-1): En person er knyttet til en bil –Én-til-mange (1-n): En person kan være knyttet til mange biler, men en bil er kun knyttet til en person –Mange-til-mange (n-m): en person kan være knyttet til flere biler og en bil kan være knytte til flere personer Person Bil 11 PersonBil 1* Person Bil **

2009Softwarekonstruktion / DB-design 19 Associeringsstruktur: Samme diskussion som ved aggregering Én-til-én (1-1): –Inkluder den ene sides primærnøgle som fremmednøgle på den anden Én-til-mange (1-n): –1-sidens primærnøgle medtages som fremmednøgle på n-siden Mange-til-mange (n-m): –Ny tabel med begge siders primærnøgler som fremmednøgler Person Bil 11 PersonBil 1* Person Bil **

2009Softwarekonstruktion / DB-design 110 Klassestruktur: Generalisering Generalisering: tre alternativer 1.Hver klasse afbildes i en tabel. De generelle og specielle dele af et objekt bindes sammen med nøgler. 2.Hver specialiseringsklasse afbildes i en tabel, som også indeholder generaliseringsklassens attributter. 3.Generaliseringsklassen afbildes i en tabel, som også indeholder alle specialiseringsklassernes attributter. Konto KontoNr SidsteUdtog Checkkonto Rentesats SidsteHæfte Lån Hovedstol Afdrag Afdragsdato

2009Softwarekonstruktion / DB-design 111 Generalisering (1) konto-IDkonto-nrsidste-udtogkontotype checkkonto lån checkkonto konto-IDrentesatssidste-hæfte 10, , Konto konto-IDhovedstolafdragafdragsdato Checkkonto Lån Begrebsmæssig klar. Enkel og overskuelig. Let at ændre. Besværligt at tilgå objekter (kræver join). Konto KontoNr SidsteUdtog Checkkonto Rentesats SidsteHæfte Lån Hovedstol Afdrag Afdragsdato

2009Softwarekonstruktion / DB-design 112 Generalisering (2) Checkkonto konto-IDkonto-nrsidste-udtogrentesatssidste-hæfte , , Ingen tabel for generaliseringsklassen. Enkel tilgang, når kontotypen kendes. Bedst når generaliseringsklassen har få attributter. Dur ikke ved overlap (redundans) Konto KontoNr SidsteUdtog Checkkonto Rentesats SidsteHæfte Lån Hovedstol Afdrag Afdragsdato

2009Softwarekonstruktion / DB-design 113 Generalisering (3) Konto Ingen tabeller for specialiseringsklasserne. Enkel tilgang. Bedst når generaliseringsklassen har mange attributter (og specialiseringerne få!). Giver mange NULL-værdier konto-IDkonto-nrsidste-udtogkontotyperentesatssidste-hæftehovedstolafdragafdragsdato checkkonto0, lån checkkonto0,

2009Softwarekonstruktion / DB-design 114 Sammenfatning Hver domæneklasse bliver til en tabel: –Attributter, nøgler, typer, NULLs? –Primærnøgle vælges/tilføjes. Associeringer og aggregeringer transformeres til fremmednøglereferencer: –1-1: Inkluder den ene sides primærnøgle som fremmednøgle på den anden –1-n: 1-sidens primærnøgle medtages som fremmednøgle på n-siden –n-m: Ny tabel med begge siders primærnøgler som fremmednøgler Generalisering: vælg én af følgende: 1.Hver klasse afbildes i en tabel. De generelle og specielle dele af et objekt bindes sammen med nøgler. 2.Hver specialiseringsklasse afbildes i en tabel, som også indeholder generaliseringsklassens attributter. 3.Generaliseringsklassen afbildes i en tabel, som også indeholder alle specialiseringsklassernes attributter.