Datamodellering med E/R-diagram

Slides:



Advertisements
Liknande presentationer
F. Drewes, Inst. f. datavetenskap1 Föreläsning 13: Resolution •Resolution i satslogiken •Resolution i predikatlogiken.
Advertisements

Atomer, molekyler och kemiska reaktioner
Livsåskådning och religion
Talföljder formler och summor
Kapitel 5 Att köpa företagstjänster
PowerPoint laget av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
Relationsdatabasdesign
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Föreläsning 7, Kapitel 7 Designa klasser Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Databasadministration
Access med Sebastian och Robert
Golv, väggar, tak. fönster och en dörr
hej och välkomna EKVATIONER Ta reda på det okända talet.
(Data)Modellering nikos dimitrakas rum 6626
Ellära Fysik 1 / A Översiktlig beskrivning av en del av innehållet i Ellära – Fysik A För djupare studier hänvisar jag till kurslitteratur som finns.
Informationshantering
Klasser och objekt.
Datamodellering med E/R-diagram
Andreas Carlsson Barvefjord och Carlsson Datakraft AB Svarkråkev Värnamo Tel: Epost: Databasteknik 2.
Andreas Carlsson Barvefjord och Carlsson Datakraft AB Svarkråkev Värnamo Tel: Epost: Databasteknik 2 T-SQL Transactions.
Digitalisering av kulturarvet
Objektorienterad tänkande
Polymorfism.
FL2 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
732G22 Grunder i statistisk metodik
Manual för ledare Ledare = du som är ansvarig för en eller flera träningsgrupper inom din förening, men i övrigt inte har några speciella administrativa.
Databaser och databas-system
Praktisk databasdesign (kap 12)
DAV B04 - Databasteknik Indexering (kap 14).
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Formell logik Kapitel 1 och 2
Tabeller.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
DATABASHANTERING för programmerare
Felkalkyl Ofta mäter man inte direkt den storhet som är den intressanta, utan en grundläggande variabel som sedan används för att beräkna det som man är.
Helpdesk – 10 i topp.. 2 Glömt anv.namn/lösenord –Användaren har bytt anv.namn/lösen och kommer inte ihåg till vad, eller så har de inte kvar mailet de.
ITK3:DB/EIT:DB Databasmetodik
Kandidatuppsats i Statistik F3
Databashantering MS Access 2003 Lektion 2
Centrala Gränsvärdessatsen:
Frågeutveckling inom MSSQL
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
Mahmud Al Hakim 2  Mål för kursen  Kursplanering  Kurslitteratur  Betygsättning  Grunder om databaser  Tabeller.
Databaser och databassystem
Tabellrelationer Innan ni får göra lite övningar tänkte jag att jag skulle gå igenom lite om tabellrelationer.
Föreläsning 7 Fysikexperiment 5p Poissonfördelningen Poissonfördelningen är en sannolikhetsfördelning för diskreta variabler som är mycket.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Lite OOA/OOD.
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 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
Föreläsning 9 Logik med tillämpningar Innehåll u Semantiska tablåer i predikatlogiken u Klausulform u Herbrandmodeller u Kapitel 3.5,
Satslogik, forts. DAA701/716 Leif Grönqvist 5:e mars, 2003.
Delarna i en Access-databas
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Föreläsning 16 Logik med tillämpningar Innehåll u Information kring kursvärdering och tentagenomgång u Genomgång av övningstenta 2.
TDDB77 Databasteknik Fö 4 Gå från ER/EER-schema till ett relationsschema Henrik André-Jönsson.
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
Några allmänna räkneregler för sannolikheter
1 Fler uträkningar med normalfördelningstabell Låt X vara Nf(170,5). Beräkna Lösning:
DA7351 Programmering 1 Databas SQL Föreläsning 24.
Formell logik Kapitel 1 och 2
IT Databas Göran Wiréen
Repetition Del 1.
Registrering av valorganisation
Operativ informationshantering, databaser
KaU - Datavetenskap - DAV B04 - MGö
Föreläsningsmaterial
Lathund för dig som administrerar resultatrapportering
Presentationens avskrift:

Datamodellering med E/R-diagram

Databasdesign Givet att vi har en kravspecifikation över den information som ska finnas i databasen, hur kan vi logiskt strukturera innehållet på ett bra sätt? En av de vanligaste modellerna för databasdesign är entitet/relations (E/R) - modellen. ER-modellen beskriver data med hjälp av: entiteter attribut relationer subtyper

Entiteter ” Någonting som klart kan identifieras ” existerar fysiskt, ex bil, student existerar konceptuellt, ex univ.kurs, jobb Delas ibland upp i starka entiteter och svaga entiteter. Tips: leta efter substantiv i kravspecen

Entiteter och attribut Varje entitet har attribut, dvs. egenskaper som beskriver entiteten. Dessa kan vara: Enkla eller sammansatta Nyckelattribut Bestående av ett eller flera värden Basegenskaper eller härledda egenskaper

Sammansatta attribut Kan delas ned i mindre delar som har oberoende betydelse

Nyckelattribut Varje entitetstyp skall ha ett (eller flera) attribut vars värde skall vara unikt för varje enskild entitet i entitetsmängden Student: Personnummer, namn, ålder

Mångvärdesattribut Vanligtvis har ett attribut bara ett värde, men... Vad händer om ex. en bil har tre olika färger?

Härledda attribut Exempelvis kan man härleda en persons ålder från personnummer och nuvarande år

Relationer mellan entiteter Definieras som "en association mellan entiteter". Tips: leta efter verb i kravspecen Entiteter som ingår i en relation sägs vara deltagare i den relationen. Antalet deltagare i en relation kallas relationens grad. Det finns tre sorters relationer (kardinalitet): En-till-en ( 1-1 ) En-till-många ( 1-n ) Många-till-många ( n-m ) En entitet kan antingen ha ett partiellt eller ett totalt deltagande i en relation En relation kan också ha attribut!

Subtyper En entitet kan vara av flera typer samtidigt. Om t ex vissa anställda är programmerare kan vi säga att entiteten PROGRAMMERARE är en subtyp av entiteten ANSTÄLLD. PROGRAMMERARE ärver alla egenskaper och relationer som ANSTÄLLD har (men inte tvärtom).

Mappning ER-diagram / relationsmodellen Varje stark entitetet blir en basrelation där primärnyckeln i relationen motsvarar nyckelattributet(en) i entiteten Varje svag entitet blir en basrelation som bildar sin primärnyckel genom att ta primärnyckeln från ”ägande” relationen (som främmandenyckel) och egen partiell nyckel tillsammans Reglerna för främmandenycklar i en relation mellan en svag och en stark entitet måste vara DELETE CASCADES UPDATE CASCADES Visar på beroendeförhållandet mellan entiteterna

Relationer En-till-många relationer Många-till-många relationer En främmandenyckel introduceras i relationen på "många"-sidan som refererar till relationen på "en"-sidan. Regler för update och delete måste specificeras för varje främmandenyckel. En-till-en relationer behandlas precis som en-till-många relationer. Många-till-många relationer Varje många-till-många relation blir en basrelation. Varje sådan basrelation måste innehålla en främmandenyckel för varje deltagare i relationen. Primärnyckeln kan vara kombinationen av främmandenycklarna (om den är unik) eller så kan ett nytt attribut introduceras.

Attribut Varje attribut för en entitet blir ett attribut i den relation den tillhör. Undantaget är om attributet för entiteten är ett mångvärdes-attribut, i så fall skapas en ny relation Härledda attribut läggs oftast inte heller in i databasen. Istället skapas vyer för dessa Domäner skapas för alla attributens värdemängder

Subtyper Varje subtyp blir en basrelation med samma primärnyckel som relationen den ärver ifrån (supertypen). Primärnyckeln blir också en främmandenyckel som refererar till supertypen.

Normalisering och funktionella beroenden DAV B04 - Databasteknik Normalisering och funktionella beroenden

Riktlinjer när man vill skapa en databas Designa så att det är lätt att förstå innebörden. Kombinera inte attribut från olika entitetstyper i samma tabell Designa så att inte problem uppstår vid insättning, borttagning eller modifiering Undvik värden i basrelationer som ofta blir NULL. Skapa istället en ny relation

Vad är fel med denna design?

Normalisering Felet med designen är att relationen innehåller redundans Kan leda till inkonsistens och problem vid uppdateringar Syftet med normalisering är att minska redundansen i den lagrade informationen. "one fact in one place” Normalisering innebär att man kollar om en relation uppfyller ett antal sk normalformer Om ej, delas relationen upp i flera mindre Denna uppdelning måste vara reversibel, dvs ingen information får förloras vid normaliseringen Normalisering används oftast bara för att verifiera designen

Normalformer (formellt) 1NF: Omm relationens underliggande domäner endast innehåller atomära värden 2NF: Omm relationen är i 1NF och varje attribut som inte ingår i primärnyckeln är till fullo funktionellt beroende av den. 3NF: Omm relationen är i 2NF och varje attribut som inte ingår i primärnyckeln är ömsesidigt funktionellt oberoende BCNF: Omm varje determinant är en kandidatnyckel

Funktionellt beroende (FB) Givet en relation R, så är attributet Y i R funktionellt beroende av attributet X i R omm varje X-värde i R är associerat med precis ett Y-värde i R (vid varje tillfälle). Attributen X och Y kan vara sammansatta R.X  R.Y (R.X determinerar R.Y funktionellt) Den vänstra sidan kallas determinant och den högra sidan dependent

Exempel på funktionellt beroende Relationen Suppliers har följande FB: S#  SNAME S#  STATUS S#  CITY Dvs för varje värde på S# finns det exakt ett värde på SNAME, STATUS och CITY Vet vi värdet på S# vet vi också värdena på de andra attributen

Exempel på funktionellt beroende Determinanten kan bestå av fler än ett attribut, t ex i relationen SHIPMENTS: (S#, P#)  QTY Alla attribut är funktionellt beroende av primärnyckeln (per definition) Finns det andra beroenden har vi redundans!

Till fullo funktionellt beroende Vi har också följande FB: (S#, SNAME)  CITY Det här är dock inte ett till fullo FB eftersom determinanten är reducerbar CITY är funktionellt beroende på S# ensamt (determinanten är icke-reducerbar)

Vilka FB har relationen?

FB-diagram

Exempel normalisering Vi utgår från en relation som bara uppfyller 1NF. FIRST( S#, STATUS, CITY, P#, QTY ) anta också att CITY ---> STATUS PN är ( S#, P# )

Problem vid uppdateringar (S#  CITY) INSERT: att en viss leverantör finns i en viss stad kräver att den leverantören kan leverera minst en del DELETE: om den enda tupeln tas bort förloras all information om den leverantören UPDATE: city förekommer i FIRST många gånger flera uppdateringar för att ändra stad möjliga inkonsistenser i databasen

Lösning…

Lösning (forts) Vi delar upp relationen FIRST så att alla icke-till-fullo FB försvinner OBS! se till att inga FB förloras vid uppdelningen  ingen information förloras Relationerna är nu i 2NF: Omm relationen är i 1NF och varje attribut som inte ingår i primärnyckeln är till fullo beroende av den

Från 2NF till 3NF Vi har fortfarande problem eftersom CITY  STATUS Två attribut som inte ingår i PN är beroende av varandra (också kallat ett transitivt beroende)

Lösning

Lösning (forts) Vi delar upp relationen så att alla ömsesidiga beroenden försvinner Uppdelning sker med project och den ursprungliga relationen kan återskapas med en naturlig join Relationerna är nu i 3NF: omm relationen är i 2NF och varje attribut som inte ingår i primärnyckeln är ömsesidigt oberoende

Boyce/Codd Normalform (BCNF) En variant av 3:e normalformen Hänvisar inte till 1NF och 2NF utan står för sig själv BCNF: omm varje determinant är en kandidatnyckel Dvs de enda tillåtna pilarna i FB-diagrammet är de som utgår från kandidatnycklar