14
1 Databasutveckling Diagram © Copyright Mahmud Al Hakim [email protected] 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

Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

1

Databasutveckling

Diagram

© Copyright

Mahmud Al Hakim

[email protected]

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

Page 2: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

2

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

Page 3: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

3

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

Page 4: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

4

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

Page 5: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

5

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

Page 6: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

6

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

Page 7: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

7

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

Page 8: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

8

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

Page 9: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

9

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

Page 10: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

10

Alternativa notationer

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 19

Bildkälla: https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model

Skapa ett nytt databasdiagram

i MS SQL Server

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 20

Page 11: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

11

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

Page 12: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

12

Koppla nycklar

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 23

Arrange Tables

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 24

Page 13: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

13

Ändra ”Table View”

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 25

Northwind Database

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 26

Page 14: Databasutveckling Diagram - DynamicOSdynamicos.se/databas/databas-newton-6-diagram.pdf · Övningar Skapa en enkel databas som används av en resebyrå för bokning av flygbiljetter

14

27

Ö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.