Relationsdatabasdesign

Slides:



Advertisements
Liknande presentationer
Fritidshem Elever 2013 Fritidshem - Elever 2013 Enhet:
Advertisements

1 Handelshögskolan i Stockholm 2 Lunds universitet
MACO-DACH® - Läggningssteg
Databasadministration
Romersk skulptur Exempel Förutsättningar Kännetecken
Access med Sebastian och Robert
(Data)Modellering nikos dimitrakas rum 6626
1 Tillämpning av Koden Innehåll •Undersökningens metod och uppläggning, inkl. bolagsurval •Sammanfattning •Genomgång av svar på fokusfrågor.
Videokonsultation med medborgare
Klasser och objekt.
DATABASHANTERING för programmerare
Leif Håkansson’s Square Dancer Rotation
MS Excel 2007 Dag 1 Lärare: Mahmud Al Hakim. Agenda 1.Börja arbeta med Excel Hantera arbetsböcker 3.Formler 4.Formatera 5.Diagram Att läsa: sid.
MS Excel 2010 – Dag 1 Mahmud Al Hakim. Kursens innehåll 2 DagInnehåll 1 Introduktion till Excel 2010 Hantera arbetsböcker Formler Formatering Litteratur:
Datamodellering med E/R-diagram
OOP Objekt-orienterad programmering
©storm.
1 Liten summering: 1.Adress: ’ För att logga in på wlanet med bibliotekskortet är lösen = ’1111’. Kortnummer står på kortet! 2.Välj ’Admin’
Elkraft 7.5 hp distans: Kap. 3 Likströmsmotorn 3:1
Stora additionstabellen
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Barn och Utbildning Föräldraenkät 2011 Totalt resultat förskola Svarsfrekvens hela enkäten (förskola och skola) 39 %
V E R S I O N N R 2. 0 T A V E L I D É E R I M I L J Ö.
Datamodellering med E/R-diagram
SWEDISH AGENCY FOR ECONOMIC AND REGIONAL GROWTH 1 9. Aktörer i Nyps 22/ Sofia Wallgren Nyps utbildning- Projektmedel.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Hur vill studenter bo? En studie av enrumslägenheter 1.
KARTKUNSKAP 1.
Enkätresultat för Fritidshem Föräldrar 2014 Skola - Hällby skola.
INFÖR NATIONELLA PROVET
Tabeller.
DATABASHANTERING för programmerare
Bild 1 Hur använder vi KursInfo idag? Högskolan i Skövde.
Det handlar om multiplikation
Ett test för att definiera den fysiska konditionen utförs.
DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim
Databashanteringssystem
TÄNK PÅ ETT HELTAL MELLAN 1-50
Grundskola Elever 2013 Grundskoleenkät - Elever ( per klass)
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Barnets rättigheter i Sverige och för alla barn i världen
Enkätresultat för Fritidshem Elever 2014 Skola:Fritidselever, Gillberga skola.
ITK3:DB/EIT:DB Databasmetodik
Grundskola Föräldrar 2013 Grundskoleenkät - Föräldrar Enhet:Gillberga skola.
Barnets rättigheter i Sverige och för alla barn i världen
Databashantering MS Access 2003 Lektion 2
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Mahmud Al Hakim 2  Mål för kursen  Kursplanering  Kurslitteratur  Betygsättning  Grunder om databaser  Tabeller.
Enkätresultat för Grundskolan Föräldrar 2014 Skola - Gillberga skola.
Täckningsgrad Dec 2014 – jan 2014 Täckningsgrad Dec 2014 – jan 2014.
Binomialsannolikheter ritas i ett stolpdiagram
1 Ny redovisning av AKU fr o m oktober år Heltidsstuderande som sökt och kan arbeta räknas som arbetslösa.
Version 1.2 Övningsuppgift Ansvarsöverflytta patientärende Du ska starta bildspelet för övningsuppgiften. Klicka var som helst för att börja. Version 1.2.
Informationsteknologi - Lektion 2 Trådlöst nätverk (WLAN) Trådlöst nätverk (WLAN) Filarkivet: Filarkivet:
Tabellrelationer Innan ni får göra lite övningar tänkte jag att jag skulle gå igenom lite om tabellrelationer.
Föreläsning 4 Klasser Och Objekt.
Vara kommun Grundskoleundersökning 2014 Föräldrar 2 Levene skola årskurs 5 Antal svar 2014 för aktuell årskurs i skola: 12 Antal svar 2014 för årskurs.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
BVForum - en genomgång för revisorer Sören Thuresson.
DATABASHANTERING för programmerare Lektion 5 Mahmud Al Hakim
Access 1 ITDA 2 Kurs Namn Klass Betyg En elev (namn) kommer att läsa många kurser och få ett betyg i varje kurs. Försök modellera om till funktionella.
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
1 Jan Lundström OV’s Hemsida Utbildning Ledare. 2 Jan Lundström OV’s Hemsida Standard Lagrum.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
TDDB77 Databasteknik Fö 4 Gå från ER/EER-schema till ett relationsschema Henrik André-Jönsson.
IT Databas Göran Wiréen
KaU - Datavetenskap - DAV B04 - MGö
Presentationens avskrift:

Relationsdatabasdesign nikos dimitrakas nikos@dsv.su.se 08-162099 rum 6626 Database Systems, Connolly & Begg third edition: kapitel 14.1, 14.2 & 15 fourth edition: kapitel 15.1, 15.2 & 16

Vad är Relationsdatabasdesign? Logisk relationsdatabasdesign Omvandla en konceptuell modell till en logisk relationsdatabasmodell (i 3NF) Kallas ofta för översättning av konceptuell modell till relationsdatabasmodell eller till logisk modell Fysisk relationsdatabasdesign Omvandla en logisk relationsdatabasmodell till en fysisk relationsdatabasmodell

Metod Utgå från den konceptuella modellen Översätt klasser, attribut och relationer till tabeller, kolumner, och nycklar Validera den framtagna modellen med normalisering Validera att modellerna stämmer överens (tänk på multipliciteter och andra regler) Modifiera vid behov (gå tillbaka till den konceptuella modellen vid behov)

Begrepp Tabeller (relationer) Kolumner, attribut Nycklar Primärnycklar Främmande nycklar Surrogatnycklar Kandidatnycklar Alternativa nycklar Sammansatta nycklar Datatyper (domäner) Andra regler UNIQUE, NOT NULL Regler för främmande nycklar

Notation Tabellnamn Kolumnnamn Primärnyckel Relationens multiplicitet: minimum maximum 1 många *Främmande nyckel

Notation (mer komplett) Datatyp Andra regler för kolumner

Översättning Klasser Attribut Relationer Envärda Flervärda Partiella Sammansatta Relationer Ett-till-ett (1:1) Ett-till-många (1:M) Många-till-många (M:M) Arv

Exempel

Klasser Klass  Tabell Klassens namn blir tabellens namn

Envärda attribut Från klassen till motsvarande tabell Attributets namn i tabellen kan vara samma som i klassen

Flervärda attribut Egen tabell för varje flervärt attribut Attributets namn kan bli den nya tabellens namn Men det är inte klart. Vi behöver koppla tabellerna med en främmande nyckel. Men då måste man ha en primärnyckel i tabellen Person:

Flervärda attribut Man kan också omvandla den konceptuella modellen för att få bort det flervärda attributet Sedan kan man hantera denna ett-till-många relation.

Sammansatta attribut En kolumn för varje del av det sammansatta attributet

Partiella attribut Hantera som vanliga attribut men låt kolumnerna acceptera NULL, eller Skapa en ny tabell (en subklass) för att lägga det partiella attributet. Det här borde eventuellt göras redan vid den konceptuella modellen.

Relationer För att översätta relationer behöver vi främmande nycklar. För att skapa främmande nycklar måste man först ha primärnycklar. Då vissa primärnycklar är beroende av andra främmande nycklar, gör man dessa parallellt. Dock är det lämpligt att börja med de oberoende tabellerna/klasserna (strong entities).

Ett-till-ett relationer En främmande nyckel på den ena sidan Välj den sidan som är bäst för att undvika NULL, dvs främmande nyckeln på noll-sidan

Ett-till-många relationer En främmande nyckel på många-sidan

Ett-till-många relationer Även om relationen är rekursiv gäller samma regel: En främmande nyckel på många-sidan

Många-till-många relationer En ny tabell med två främmande nycklar: en till varje sida Den nya tabellens primärnyckel blir oftast en sammansatt nyckel som består av de två främmande nycklarna

Arv Subklassens tabell får samma primärnyckel som superklassens tabell. Primärnyckeln i subklassens tabell är en främmande nyckel till superklassens tabell.

Arv Alla andra arvsregler (mandatory OR, optional OR, etc) blir verksamhetsregler. Relationen mellan superklassens tabell och subklassens tabell blir en vanlig ett-till-ett relation. En relationsdatabas förstår inte att det finns arv.

Tips Om en refererad primärnyckel är sammansatt, måste främmande nyckeln också vara sammansatt. Om en relation är 0..1-till-0..1 kan man placera främmande nyckeln på vilken sida som helst, (eller kan man ändra den konceptuella modellen). Om flera relationer går mellan samma tabeller, skall man namnge främmande nycklarna så att kunna skilja på relationerna. Välj namn för tabeller och kolumner som visar vad ett värde i kolumnen / en rad i tabellen är. Undvik pluralform. För tabeller som refereras av flera andra, kan det vara lämpligt att skapa surrogatnycklar om de naturliga nycklarna är för stora.

Resultat

Validera resultatet Kontrollera att modellen stämmer överens med den konceptuella modellen. Om något inte kunde översättas, kan det t ex bli en verksamhetsregel. Kontrollera att modellen är i 3NF. Ofta blir modellen direkt i 3NF om man har en bra konceptuell modell.

Konceptuell modell vs. Relationsmodell Inga relationsdatabasspecifika grejer Inga surrogatnycklar Inga primärnycklar (dock OK med identifierare) Inga främmande nycklar Endast attribut från den modellerade verksamheten Relationsdatabasmodell Inga flervärda attribut Inga många-till-många relationer Inget arv Nycklar (primärnycklar & främmande nycklar)