Modul DB1-1 Databasmodellering



Relevanta dokument
Modul DB1-2 Datamodellering

Ett arbetsexempel Faktureringsrutin

Modul DB1-3 Datamodellering

Lite om databasdesign och modellering

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

Logisk modell. Fysisk modell. Datamodeller Konceptuell modell

Innehåll MySQL Intro. Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index

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

Det är fullt tillåtet att göra laborationen innan laborationstillfället.

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

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

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

Laboration 2, MS SQL. Observera. Tips. Förberedelse. Genomförande

Logisk databasdesign

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

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

Starta MySQL Query Browser

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

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Konceptuella datamodeller

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

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

Mitthögskolan ITM Telefon Access. Laborationskompendium för grunderna i databasen Microsoft Access. Detta exemplar tillhör:

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

VAD GÖR DU / VEM ÄR DU?

NORMALISERING. Mahmud Al Hakim

Databasapplikationen HYR AKS. Vers 1.0 6, AKS har framtagits av ApplData AB på uppdrag av TillSaluGrejorAB

Databasdesignspecifikation för Mätvärdeshanteringssystem

Relationsdatabasdesign

Design och underhåll av databaser

Tentamen för DD1370 Databasteknik och informationssystem

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Databaser och Datamodellering Foreläsning IV

Se kurshemsidan för användbara länkar för att genomföra denna laboration.

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

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

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

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

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

VAD GÖR DU / VEM ÄR DU?

INTRODUKTION TILL ER ENTITY-RELATIONSHIP

Databaser design och programmering. Design processen ER- modellering

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

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

1 Skapa Tabell Skapa Relationer Redigera Relationer Redigera Fält i Tabell Lägga till Poster i Tabell...

Tentamen för DD1370 Databasteknik och informationssystem

Webbprogrammering, grundkurs 725G54

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

(Data)Modellering. nikos dimitrakas rum 2423

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

Informationssystem och databasteknik

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

Introduktion till MySQL

Databaser. Vad du ska lära dig: Ordlista

2. Redundans 3. Normalformer

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

ER-Diagram. Databasutveckling Diagram

GIS, databasteknik och kartografi. Databasmodellering

TNK046 GIS - Databaser Laborationsuppgift 1 Introduktion till Microsoft Access 2007

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

1. Datamodellering 2. Hierarkier 3. S

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

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

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

Inga hjälpmedel är tillåtna

Grunderna för relationsmodellen!

IT i organisationer och databasteknik

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

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

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

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

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

Steg 9 Grunder i registerhantering Access 2007 Windows 7/8

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

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

Analytisk relationsdatabasdesign

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

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

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Exempel-Tentamen III

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Tentamen för DD1370 Databasteknik och informationssystem

Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem

SEB. Four foils. SEB IT Lars-Göran Karlsson

Microsoft Access. Skapa en ny databas. Östersund Vårterminen 2005

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

Grupper; Gruppindelningar; Vanliga inställningar för modul

Databasdesign. E-R-modellen

Objektorienterad analys och design

Övningar i SQL. SQLAccess.doc Ove Lundgren

Registrera enstaka objekt med kontrakt

Tentamen DATABASTEKNIK - 1DL116

Relationsmodellen och syntetisk databasdesign

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post

Institutionen för Tillämpad fysik och elektronik Stefan Berglund och Per Kvarnbrink. Laboration: Flerskiktade applikationer

Registrera enstaka objekt med kontrakt

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

Karlstads Universitet, Datavetenskap 1

Transkript:

Modul DB1-1 Databasmodellering Antal föreläsningar: 2 Antal laborationer: 1 Förkunskapskrav: Databasintroduktion Kurslitteratur: Referenslitteratur: Praktisk datamodellering ISBN: 91-44-38001-1 1

Innehållsförteckning Innehållsförteckning: Utvecklingsprocessen Databasmodellering Min- och maxreglerna Tabeller Primära och sekundära nycklar Relationer Bilköpsexempel 2

Utvecklingsprocessen Steg 1 Steg 2 Steg 3 Steg 4 Steg 5 Steg 6 Steg 7 Verksamheten, nulägesanalys, livscykelmodellen, datamodellering, kravspecifikation, projektbeskrivning Konceptuell modell, objekt, relationer, tabeller. Olika objektstyper och relationstyper. Attribut egenskaper, identifierare, nycklar Logisk modell, normalisering. De fyra normalformerna. Objektifiering av relationsobjekt. Fysisk modell, generalisering, denormalisering, optimering radvis/kolumnvis delning/sammanslagning, Index, tabellprecisering, dokumentera avvikelser från logisk modell. Anpassa för den valda databasen Volymberäkningar, belastningsanalys, borttagsanalys, skärmbilder, svarstider Databaskonstruktion, SQL-anpassningar, skärmbilder, rapporter, tester Dokumentation och implementation (installation) 3

Vad är datamodellering? Datamodellering: gör det enklare att beskriva, pröva och enas om hur begrepp och regler i en verksamhet bör utformas. Förenklar utveckling och implementation av databaser. Vad är en bra databasstruktur? en databasstruktur som är lätt att skala i storleksordning. en databasstruktur som inte dubbellagrar data. en databasstruktur som inte är onödigt stor eller komplicerad. en databasstruktur som är flexibel och inte innefattar onödiga begränsningar. 4

Datamodellering några symboler Kund Objekt i verksamheten som troligtvis kommer att bli en tabell i databasen. Ritas som en rektangel. Objektet anges med ett namn. Kund är viktigt objekt för säljverksamheten. Relation. Mellan två objekt finns en relation. Objekten knyts ihop med en relationslinje Det finns tre typer av relationer: 1:1 ett till ett 1:n ett till många och många till ett n:m många till många Kund Telefon Telefontyp En Kund kan ha flera telefoner. Mellan Kund och Telefon råder en till många. En Telefon tillhör en Kund. En Telefon är av en viss typ, Telefontyp. En viss Telefontyp finns för en eller flera telefonnummer. (Ex Mobil, Hem, Arbete). 5

Datamodellering Verkligheten Datamodell 1. Universitet 12 9 3 6 Fakulteter HIK 2. Universitet Fakultet 3. Teknik BBS BOM KOB Student Studenter 1. 2. 3. 4. 5. Identifiera objekt, attribut och relationer Avbilda verkligen Rita en datamodell Skapa tabeller Fyll i tabellerna med relevant data för några poster i respektive tabell. 4. Tabeller i databasen 5. FakID FakultetNamn Program 1 2 Teknik BBS Di:p SysVet UniID 1 1 UniID Universitetnamn Adress 1 HIK Norrvägen 47 2 KTH Karlavägen 1 StuID Enamn Fnamn 1 Karl Ljung 2 Lotta Flinta UniID 1 2 6

Namngivning av objekt Varje objekt måste ha ett eget unikt namn. Resor Kunder Artiklar Resa Kund Artikel Ange namnen i singularis. Använd inga blanksteg i namnen. Se till att namnen beskriver innehållet i objektet. Försök att generalisera genom att använda exempelvis fordon istället för bil, motorcykel eller lastbil. Om du har bil, lastbil etc som du vill registrera. Använd då ett fält som anger vad det är för typ av Fordon. Mer logiskt korrekt sätt Bil Lastbil Motorcykel Fordon Fordonstyp Använd gärna det engelska alfabetet a-z och A-Z när du namnger objekten (läs tabellerna) då SQL-språket inte känner till svenska bokstäver. Det går att använda svenska tecken men då måste du skriva [] runt varje namn när du ställer SQL-frågor till databasen. De slutliga villkoren för namnsättning (när vi översätter till tabellnamn), antal tecken etc, bestäms av den specifika databashanteraren. 7

Namngivning av fält i tabeller Varje fält i en tabell måste ha ett eget unikt namn. Ange namnen i singularis. Använd inga blanksteg i namnen. Se till att namnen beskriver innehållet i fältet. ID Förnamn 1 Otto 2 Anita Gatu adress Venusvägen 1 Storgatan 23 ID Fnamn 1 Otto 2 Anita Adress Venusvägen 1 Storgatan 23 Använd gärna det engelska alfabetet a-z och A-Z när du namnger objekten (läs tabellerna) då SQL-språket inte känner till svenska bokstäver. Det går att använda svenska tecken men då måste du skriva [] runt varje namn när du ställer SQL-frågor till databasen. De slutliga villkoren för namnsättning, antal tecken etc, bestäms av den specifika databashanteraren. 8

Tabeller Tabellnamn Tabeller Fakultet Universitet FakID FakultetNamn 1 Teknik 2 NADA UID (fk) 1 3 UID UniversitetsNamn 1 HIK 2 LTH 9

Tabeller forts. Kolumnnamn, egenskapsnamn eller fältnamn Fakultet Universitet FakID FakultetNamn 1 Teknik 2 NADA UID (fk) 1 3 UID UniversitetsNamn 1 HIK 2 LTH Rader, förekomster eller poster 10

Tabeller forts. Främmande nyckel Fakultet Universitet FakID FakultetNamn 1 Teknik 2 NADA UID (fk) 1 3 UID UniversitetsNamn 1 HIK 2 LTH Primärnyckel Primärnyckel Kolumner, egenskaper, attribut eller fält 11

Primärnyckel Primärnyckel (Primary Key) förkortas ofta som pk Huvudsyftet med en primärnyckel är att unikt identifiera en post i databasen Består av ett eller flera fält i en tabell. Väljs av lämpliga existerande fält i tabellen eller ett nyskapat fält för primärnyckeln. Nyckeln måste vara stabil då det är kostsamt och kräver en stor arbetsinsats för att byta namn på den vid ett senare tillfälle. Undvik att använda så kallade talande fält som primärnyckel. Exempelvis: (Talande fält => fält som kanske ändras med tiden) Artikelnummer. nummer. Namn. Autonumrerade nycklar är att föredra (IDENTITY i MS SQL-Server, AUTO_INCREMENT i MySQL, Autonumber (Räknare) i MS Access). Markeras med ett tak i tabellen. Numeriska nycklar ger bättre prestanda. Indexeras automatiskt i de flesta databaser. PID Namn 1 Kalle 2 Lotta 12

Främmande nyckel Främmande nyckel (Foregin key) förkortas ofta som fk Gör det möjligt att sammankoppla tabellerna med varandra. Den främmande nyckeln utgörs av innehållet i primärnyckel från den relaterade tabellen. Markeras utan tak i tabellen. Exempelvis: Fakultet Universitet Fakultet Universitet FakID FakultetsNamn 1 Teknik 2 NADA UID (fk) 1 3 UID UniversitetsNamn 1 HIK 2 LTH Minnesregel: Du skapar ett nytt fält som har samma namn (helst) och datatyp som primärnyckeln i den relaterade tabellen på ett sidan. 13

De olika objekttyperna Självständiga objekt Oberoende av andra objekt. Har en egen unik primärnyckel. Exempelvis: Produkt ProdID Beskrivning Antal 1 Skruv 50 2 Mutter 200 Beroendeobjekt Ägs av ett eller flera överordnade objekt. Primärnyckeln är sammansatt av ägarens nyckel och det underliggande objektets nyckel. Exempelvis: Parent-objekt B Telefon Child-objekt PID 17 17 18 TelID Telefonnummer Typ 1 08-56875536 Hem 2 070-7845765 Mobil 1 0480-565274 Hem Registrering av telefonnummer sker normalt inte utan ägare 14

Relationer Sammanbandet mellan de olika tabellerna En relation kan ha olika kardinalitet, relationstyper 1-1 (en till en relation) A B 1 n (en till många relation) A B n 1 (Många till en relation) A B n m (Många till många relation) A B Kardinaliteten bestäms utifrån en förekomst av det objekt som du börjar läsa ifrån. 15

Min- och Maxreglerna 1..* 0..* 1..n 1 0..n Symboler Max Min Typ av relation Många 1 Tvingande 1 1 Tvingande Många 0 Frivillig 0 1 0 Frivillig 1 0 Frivillig 16

Min- och Maxreglerna / exempel Telefon Frivillig. Fk måste inte anges i Telefon. Därmed kan ett telefonnummer existera utan någon relation på 1-sidan B 0 Telefon Telefon B anger att Telefon är beroende av. Ett B ger en sammansatt nyckel på många sidan. id måste ingå i sammansatt nyckel på mångasidan. Telefon Frivillig i Telefonnummer. När en person registreras måste inte telefonnummer anges. Markeras normalt inte. Telefon Tvingande. När en person registreras måste ett telefonnummer också läggas in. Tvingande i. En måste registreras om en Telefon ska registreras. Sammansatt nyckel krävs inte. Se också B för Beroende. 17

En- till en-relation (1 1) Prestandaskäl Onödigt att belasta en tabell med för stora poster om du inte alltid använder alla fält. Säkerhetsskäl Lättare att skydda en tabell än enstaka kolumner i en tabell. Används för kompletterande information som gäller enstaka poster För att inte få tomma fält i databasen. Exempelvis: Bok 0 BokBeskrivning Koppling mellan primärnyckel och primärnyckel Har samma ID i en 1 1 relation Bok BokID BokNamn 10 SQL-programmering 20 SQL-Administrering Bok + BokBeskrivning BokBeskrivning BeskID BokBeskrivning 20 Gul framsida BokID BokNamn 10 SQL-programmering 20 SQL-Administrering BokBeskrivning Gul framsida Tomt fält 18

1:n och n:1 relationer En till många många till en (1:n, n:1) Tillhör Fakultet Universitet Du kan läsa datamodeller på följande sätt: Maxregel: 0 - Har Minregel: Exakt ett Universitet En fakultet tillhör exakt ETT Universitet Fakultet 0 Universitet FakID FakultetNamn 1 Teknik 2 NADA UID (fk) 1 3 En fakultet kan existera utan ett Universitet Fakultet Universitet UID UniversitetsNamn 1 HIK 2 LTH 3 KTH Ett Universitet har många fakulteter, ner till inga fakulteter Fakultet Ett Universitet har många fakulteter, ner till EN fakultet Primärnyckeln från ett sidan blir främmande nyckel på många sidan 19

Relationer forts. Varför inte lägga Universitetsnamnet direkt i fakultetstabellen? För att undvika redundans (dubbelagring), samma Universitetsnamn skulle lagras flera gånger. När/Om ett Universitetsnamn ska ändras, behöver du bara ändra på ett ställe för att det ska gälla för alla poster med det namnet. Universitetsnamnen kan skrivas in även om det inte finns några fakulteter. Du kan lätt sortera på Universitetsnamn. Du får samma stavning på Universitetsnamnen och du undviker på så sätt problem när du ska jämföra Universitetsnamn mot varandra. 20

Många- till många-relationer Många till många relationer (n:m) ägare Läsordning: 1. 2. Relationsobjekt Bil Du kan läsa datamodellen på följande sätt: 1. En person kan äga en eller flera bilar 2. En bil kan ägas av en eller flera personer Tabellen ägare Ägare kallas relationsobjekt eftersom det realiseras med en egen tabell vars pk är sammansatt av pk från person- och biltabellerna Ägare PID BilID 100 10 200 20 300 30 Ägare som kopplingstabell 21

Bilköpet Exempel: Så vill vi att det ska fungera: En person köper en eller flera bilar vid olika datum En bil kan köpas av flera personer vid olika datum Ett visst datum kan det ske ett eller flera bilköp 1. Identifiera vilka de olika objekten är (, datum, bil) 2. Skapa en konceptuell datamodell med de identifierade dataobjekten som uppfyller de kraven vi ställde ovan Bil Datum 3. Eftersom vi får många till många relationer måste vi använda oss av relationsobjekt som kopplingstabeller mellan de olika tabellerna. Var ska relationsobjektet placeras i den konceptuella datamodellen? 22

Bilköp forts. 4. Vi kan placera relationsobjektet på tre olika platser i den konceptuella datamodellen I. Bil Datum II. Bil Datum III. Bil Datum Alternativ tre är det enda alternativet som uppfyller våra krav då vi där även får med datumet 23

Bilköp forts. Bil Datum PID Namn Adress Postnr Ort 1 Kalle Ek Stigen 23 393 51 KALMAR 2 Stor Björk Boken 12 394 63 KALMAR Datum DID Datum 1 2006-03-15 2 2006-03-16 Bil BID Märke Typ Regnr 1 Volvo S60 ABC123 2 Volvo V50 CBA321 Köp PID BID DID 1 2 1 1 1 1 Relationsobjektet får sin sammansatta Pk från omgivande objekt. I relationsobjektet visas att Kalle Ek har köpt en Volvo V50 den 15/3 2006 och att samma Kalle Ek har också köpte en Volvo S60 den 15/3 2006. En person köper en eller flera bilar vid olika datum En bil kan köpas av flera personer vid olika datum Ett visst datum kan det ske ett eller flera bilköp 24