ER-Diagram. Databasutveckling Diagram

Relevanta dokument
INTRODUKTION TILL ER ENTITY-RELATIONSHIP

Databaser design och programmering. Fö 2: Design processen, ER-modellering

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Databaser design och programmering. Design processen ER- modellering

Konceptuella datamodeller

Tentamen för DD1370 Databasteknik och informationssystem

Del 2: ER-modellering och överföring till Databasstruktur v0.9

Databaser och Datamodellering Foreläsning IV

Tentamen för DD1370 Databasteknik och informationssystem

Databasutveckling Tabeller. tinyint 1 byte (0-255) Upp till 8 bytes

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

Databasdesign. E-R-modellen

Tentamen för DD1370 Databasteknik och informationssystem

25/11/14. Databasteknik och informationssystem DD1370. Påminnelse inför Lab 1 redovisningen. Repetition: ER modellering (gammalt + nytt)

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Tentamen för DD1370 Databasteknik och informationssystem

NORMALISERING. Mahmud Al Hakim

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

16/11/14. Databasteknik och informationssystem DD1370. Information. Dagens föreläsning: ERmodeller Dagens föreläsning. Påminnelse: Kursens mål

Tentamen för DD1370 Databasteknik och informationssystem

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Objektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Föreläsning 3 Dagens föreläsning går igenom

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning

Webbprogrammering, grundkurs 725G54

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

Logisk databasdesign

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18

Agenda (obs! halvdag)

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

11/11/13. Databasteknik och informationssystem DD1370. Dagens föreläsning. Dagens föreläsning: ERmodeller Jmf: Relationer i Base

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

02/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Dagens föreläsning. Om Lab 1. De 11 Stegen (Kokbok)

Innehåll. MySQL Grundkurs

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

E-R-modellen, E-R-diagram E-R-diagram. representerar entitetsmängder

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Modul DB1-1 Databasmodellering

TENTAMEN TDDB77 Databaser och Bioinformatik 19 april 2002, kl 14-18

Introduktion MySQL och MariaDB

TENTAMEN TDDB77 Databaser och Bioinformatik 22 augusti 2006, kl 14-18

Relationsmodellen och syntetisk databasdesign

Objektorienterad programmering Föreläsning 11. Copyright Mahmud Al Hakim

Databasutveckling Introduktion till SQL och TSQL

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer

Relationsdatabasdesign

Design och underhåll av databaser

TDDI 60 Tekniska databaser

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

(Data)Modellering. nikos dimitrakas rum 2423

Lite om databasdesign och modellering

Objektorienterad programmering Föreläsning 5

Ett arbetsexempel Faktureringsrutin

Databaser. Vad du ska lära dig: Ordlista

1.Lär känna MS SQL Observera. Tips. Förberedelse

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

Databaser - Design och programmering. Programutveckling. Programdesign, databasdesign. Kravspecifikation. ER-modellen. Begrepps-modellering

Introduktion till Entity Framework och LINQ. Källa och läs mer

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5

Abstract. Webbsida för lagring av alumner i en databas. Website containing a database for the storage of alumni contact information.

Föreläsning 4 Dagens föreläsning går igenom

Objektorienterad Systemutveckling 1 (7,5 hp)

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

Databasteknik för D1, SDU1 m fl

Laboration 1, Datamodellering. Observera. Tips. Förberedelse. Genomförande

OBS! Figuren visar inte alla aspekter och objekt som är inblandade i säkerhetssystemet.

1DV423 Databas med Administration

Vad är SQL? Introduktion till SQL

D0004N Databaser I. Greenline. Petter Hedlin / epeehi-4 Rikard Stenmark / rikste-8 Markus Almberg / maralm-5

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Reducering till relationsscheman

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Objektorienterad programmering

Identifiering av typsituationer som kan skapa problem vid design och implementering av relationsdatabaser (HS-IDA-EA )

TENTAMEN DATABASKUNSKAP ITEK12

Entity-Relationship-modellen

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Databasteknik för D1, SDU1 m fl

Webprogrammering och databaser. Begrepps-modellering. Exempel: universitetsstudier Kravspec. ER-modellen. Exempel: kravspec forts:

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Transkript:

Databasutveckling Diagram Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se ER-Diagram En vanlig konceptuell datamodell är den så kallade ER-modellen. "ER" står för "Entity-Relationship", dvs ungefär "saker" och "samband". ER-diagram är ett enkelt sätt att designa och beskriva saker som finns i databasen samt sambanden mellan dessa saker. Mycket bra källa: http://www.databasteknik.se/webbkursen/er/ Copyright 2015 - Mahmud Al Hakim www.webacademy.se 2 1

Grunderna för hur man ritar ERD Rita upp de typer av saker som finns i databasen. De kallas entitetstyper, och ritas som fyrkantiga lådor. Rita sen upp de samband som finns mellan de olika typerna av saker. De kallas sambandstyper, och ritas som diamanter mellan de fyrkantiga lådorna Copyright 2015 - Mahmud Al Hakim www.webacademy.se 3 Sambandstyper Sambandstyper kan vara av tre olika slag, så kallade kardinalitet. 1. Ett-till-ett-samband (1:1-samband) 2. Ett-till-många-samband (1:N-samband) 3. Många-till-många-samband (N:M-samband) Copyright 2015 - Mahmud Al Hakim www.webacademy.se 4 2

Ett-till-ett-samband (1:1-samband) En sambandstyp där en sak av något slag kan höra ihop med en sak av ett annat slag, och varje sak av det andra slaget kan höra ihop med en sak av det första slaget. Exempel: En person kan vid ett och samma tillfälle bara köra en bil, och varje bil kan bara köras av en person. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 5 Ett-till-många-samband (1:N-samband) En sambandstyp där en sak av något slag kan höra ihop med flera saker av ett annat slag, men varje sak av det andra slaget kan bara höra ihop med en sak av det första slaget. Exempel: En person kan äga flera bilar, men varje bil kan bara ägas av en person. Om man vänder på det och börjar med bilarna blir det i stället ett många-till-ett-samband (N:1-samband). Copyright 2015 - Mahmud Al Hakim www.webacademy.se 6 3

Många-till-många-samband (N:M-samband) En sambandstyp där en sak av något slag kan höra ihop med flera saker av ett annat slag, och varje sak av det andra slaget kan höra ihop med flera saker av det första slaget. Exempel: En person kan äga flera hus, och varje hus kan ägas gemensamt av flera personer. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 7 Flera sambandstyper mellan samma entitetstyper Det går bra att ha flera olika sambandstyper som binder ihop samma entitetstyper. Till exempel kan personer kanske bo i husen precis som tidigare, men de kan också äga husen. Hus kan ägas gemensamt av flera personer, och varje person kan vara med och äga flera hus. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 8 4

Fullständigt deltagande Om varje person som är med i databasen måste bo i ett hus, kan man rita ut det villkoret med ett dubbelstreck mellan Person och Bor i. Det kallas fullständigt deltagande: alla personer som finns med i databasen måste delta i ett boendesamband. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 9 Attribut Om sakerna eller sambanden har egenskaper, så kallar man dem attribut, och ritar dem som ovaler. Personnummer och Husnummer är primära nycklar. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 10 5

Sambandstyper kan ha egenskaper Inflyttningsår anger vilket år en person flyttade in i det hus hon bor i. I det här fallet skulle man också kunna sätta attributet Inflyttningsår på personen, eftersom varje person bor i exakt ett hus, och alltså har exakt ett inflyttningsår, men det är nog naturligare att låta inflyttningsåret höra tillbor i-sambandet. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 11 Sammansatta attribut Ibland kan ett attribut vara sammansatt av flera delar, som hör ihop men som man även vill behandla var för sig. Då kan man rita det som ett sammansatt attribut. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 12 6

Flervärda attribut Vill man kunna lagra flera telefonnummer som hör till en person. Då kan man rita det som ett flervärt attribut (även kallat multipelt attribut) genom att använda en dubbelellips runt attributnamnet Copyright 2015 - Mahmud Al Hakim www.webacademy.se 13 Härledda attribut En del attribut vill man kanske inte lagra i databasen, utan man kan räkna ut dem utifrån andra data som redan finns i databasen. Sådana härledda attribut markeras med en streckad oval. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 14 7

Svaga entitetstyper Lägenheterna innehåller rum, men rummen har bara namn, som inte är unika för hela databasen. Däremot är de unika inom en viss lägenhet: om man vet ett rumsnamn, och numret på den lägenhet som rummet hör till, så räcker det för att unikt identifiera rummet i hela databasen. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 15 Skilj på schema och data ER-diagrammet är ett schema, och beskriver vilka data som kan lagras. Det är inte en avbildning av datat. Det här ER-diagrammet säger alltså inte att det finns en person som är vän med sig själv, utan det säger att personer kan vara vänner med andra personer: Copyright 2015 - Mahmud Al Hakim www.webacademy.se 16 8

Skilj på ER-diagram och tabeller Även om man ofta översätter ER-diagram till tabeller, för att kunna lagra sin databas i en relationsdatabashanterare, så har ER-diagrammet i sig inget med tabeller att göra. Det man ritar ut i ett ER-diagram är alltså inte tabeller och kopplingarna mellan dem, även om en del (men inte alla) av entitetstyperna sen kan översättas till tabeller, och en del (men inte alla) av sambandstyperna kan översättas till kopplingar mellan tabeller. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 17 Objektifiering av sambandstyper Ibland kan man välja mellan att använda sig av en sambandstyp eller en entitetstyp. Att använda en entitetstyp i stället för en sambandstyp betyder att man betraktar kopplingen som en egen sak, och inte bara som en koppling mellan två andra saker. Det kallas ibland objektifiering. Till exempel kan vi göra om Bor i-sambandet till en egen entitetstyp, som vi kallar Boende. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 18 9

Alternativa notationer Bildkälla: https://en.wikipedia.org/wiki/entity%e2%80%93relationship_model Copyright 2015 - Mahmud Al Hakim www.webacademy.se 19 Skapa ett nytt databasdiagram i MS SQL Server Copyright 2015 - Mahmud Al Hakim www.webacademy.se 20 10

Lägg till tabeller till diagrammet Copyright 2015 - Mahmud Al Hakim www.webacademy.se 21 Organisera tabellerna Copyright 2015 - Mahmud Al Hakim www.webacademy.se 22 11

Koppla nycklar Copyright 2015 - Mahmud Al Hakim www.webacademy.se 23 Arrange Tables Copyright 2015 - Mahmud Al Hakim www.webacademy.se 24 12

Ändra Table View Copyright 2015 - Mahmud Al Hakim www.webacademy.se 25 Northwind Database Copyright 2015 - Mahmud Al Hakim www.webacademy.se 26 13

Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter. Skriv ett databasschema. Normalisera databasen. Implementera databasen i MS SQL Server Rita ett diagram. Skapa 10 SQL frågor som gör logiska och vettiga sökningar i databasen. 27 14