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

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

Databaser - Design och programmering. Databasdesign. Funktioner. Relationsmodellen. Relationsmodellen. Funktion = avbildning (mappning) Y=X 2

Databaser design och programmering. Design processen ER- modellering

Universitetet: ER-diagram

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Databaser Design och programmering

Grunderna för relationsmodellen!

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

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

Databasteori Övningar

Databasteori. Övningar

EMPS(NAME, SALARY, DEPT)

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

Databasteori. Övningar

Databasteori Övningar

Databaser - Design och programmering. Operationer i relationsalgebra. Att söka ut data. Exempel DBschema. Att plocka ut data, forts

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

NORMALISERING. Mahmud Al Hakim

Databasdesign. E-R-modellen

Databasteori. Övningar

Konceptuella datamodeller

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

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

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

Logisk databasdesign

Karlstads Universitet, Datavetenskap 1

Databaser och Datamodellering Foreläsning IV

Databaser. Vad du ska lära dig: Ordlista

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

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

Föreläsning 6: Normalisering & funktionella beroenden

Lite om databasdesign och modellering

Tentamen för DD1370 Databasteknik och informationssystem

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

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

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

Tentamen för DD1370 Databasteknik och informationssystem

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

Concepts learned this far. ER till relationer. ER till relationer. ER till relationer. TDDD12 Database Technology

Karlstads Universitet, Datavetenskap 1

Tentamen för DD1370 Databasteknik och informationssystem

Webbprogrammering, grundkurs 725G54

Relationsmodellen och syntetisk databasdesign

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

Tentamen DATABASTEKNIK - 1DL116

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)

Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet...

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

Relationell databasdesign

Informationssystem och Databasteknik

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. 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)

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

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

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

Informationssystem och databasteknik

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Föreläsning 4 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Normalisering (Analytisk databasdesign)

Relationsdatabasdesign

Universitetet: ER-diagram e-namn

ER-Diagram. Databasutveckling Diagram

Tentamen plus lösningsförslag

GIS, databasteknik och kartografi. Kursmaterial för databasdelen

Tentamen för DD1370 Databasteknik och informationssystem

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

TDDI 60 Tekniska databaser

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

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

INTRODUKTION TILL ER ENTITY-RELATIONSHIP

TDDI60 Tekniska databaser

Tentamen Databasteknik

Föreläsning 5: Relationsmodellen

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

Svar till tentamen DATABASTEKNIK - 1DL poäng

Databasteknik för D1, SDU1 m fl

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

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

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

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

IT i organisationer och databasteknik

732G16: Databaser - Design och programmering

Universitetet: ER-diagram e-namn

Databaser - Design och programmering

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

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

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

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

Exempel-Tentamen III

Pga att (Nummer och Typ) tillsammans bestämmer övriga attribut funktionellt väljer vi (Nummer, Typ) till primärnyckel:

Tentamen. Databasmetodik Lördag 27 september 2014 kl

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

IT i organisationer och databasteknik

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

Databasspråket SQL - online.

Transkript:

Databaser Design och programmering Relationsmodellen definitioner ER-modell -> relationsmodell nycklar, olika varianter Relationsmodellen Introducerades av Edward Codd 970 Mycket vanlig Stödjer kraftfulla och ändå enkla deklarativa språk Matematisk grund i relationsalgebra Relationer - som tabeller Relationen har attribut och är en mängd av tupler Kolumn (Attribut) Attributvärde Student Rad (Tupel) Pnr Namn epost 8022 Anna B annbe 8500 Oskar A oskan Relationer som tabeller Tabellen består av en mängd rader Rader får ej ha dubletter Raderna betraktas som osorterade attributvärdena är atomära (odelbara). Relationsschema Alternativa notationer: relations (attribut, attribut2,... attributn). exempel: Person (Namn, Adress, Telefon, Födelsedatum, Kön) Person Namn Adress Föddat Kön Tel Person Namn Adress Föddat Kön Tel

Flera relationer En databas består av flera relationer med kopplingar mellan sig. Ex: studenter och kurser Student Namn Adress Föddat epost Kurs Kurs Kurskod Namn Examinator Institution Referensattribut Referensintegritet Universitetet: ER-diagram e- f- läsperiod betyg år kurskod e-post poäng n kurs pnr reg. lösen på n n student m ansv. av hålls av e- f- institution adress jobbar på anställd driver tel.nr. n n tjänsterum anst.nr projekt budget tidsplan. För varje entitetstyp: definiera motsvarande relationsschema. Varje tupel i relationen kommer att representera en entitetsinstans Vanliga attribut blir attribut (kolumner) () Sammansatta attribut representeras av delarna (8) Multipelattribut blir en egen relation med nyckeln till entitetstypen och attributet enkelt (9) Svag entitetstyp får som extra attribut nyckeln till den ägande entitetstypen (7) 2.För varje sambandstyp: :N samband; lägg in -entitetens nyckel i relationen för N-entiteten (2) : samband; lägg in nyckeln till den ena entiteten i den andras relation (3) N:M samband blir en egen relation bestående av nycklarna till båda entiteterna (4) Flervägssamband blir en egen relation som N:M (5) Ägandesamband ignoreras Attribut på samband läggs in i respektive relation (6) 3.Markera nycklar Relationsmodellen - nycklar ER-modellen har vissa nycklar (nyckelattribut på entitetstyper) En viss tupel i relationsmodellen representerar en viss entitetsinstans i ER-modellen. Relationer som ej är baserade på entitetstyper vad har de för nycklar? Kan det finnas alternativ?

Nycklar: Definitioner Om något eller några av attributen i en relation kan användas för att identifiera hela tupeln (raden) så är det/de attributen en nyckel Supernyckel Om k är en delmängd av attributen i en relation R sådan att k kan användas för att identifiera raderna i R så är k en supernyckel för R. En nyckel är alltså en delmängd av attributen i en relation. Kandidatnyckel = minimal supernyckel En supernyckel k är minimal om vi inte kan ta bort något attribut ur k så att den nya k, k', fortfarande är en supernyckel. Generellt finns det flera kandidatnycklar för en relationstabell De attribut som ingår i någon kandidatnyckel kallas primattribut Primärnyckel Den kandidatnyckel som väljs av databasdesignern som huvudnyckel för en relationstabell R kallas primärnyckel eller nyckeln till R. Används i andra relationer för att referera till en viss rad i R. Primärnyckeln markeras i relationsschemat med understrykning. en : Nycklar Relationer baserade på: vanlig entitetstyp svag entitetstyp multipelattribut Får som primärnyckel: nyckeln ur ERdiagrammet. nyckeln till den ägande entitestypen plus den partiella nyckeln. nyckeln till entitetstypen plus attributet självt. en : nycklar, forts Relationer baserade på: sambandstyp, M:N flervägssambandstyp Får som primärnyckel: nycklarna ur de två entitetstyperna nycklarna till de sammanbundna entitetstyper som kan ingå i flera sambandsinstanser

en 4. Kontrollera redundans: Förenkla vid behov. Normalisera (jfr föreläsning om detta) 5. Specificera integritetsvillkoren, t.ex: att referensattribut måste referera till en existerande tupel. semantisk integritet Universitetet: Relationer Student (pnr, e-, f-, epost, konto, lösen) Kurs (, kurskod, läsår, period, poäng, kursansv, institution) Anställd (f-, e-, anstnr, rum, institution) Telefon (anstnr, telnr) Institution (, adress) Projekt(institution,, tidsplan, budget) RegistreradPå (studentpnr, kursnr, läsår, betyg) Kokbok Exempel 2. Entitetstyper -> relationer (kom ihåg alla attribut) 2. Sambandstyper in i relationer eller blir egna relationer 3. Nycklar 4. Redundanskontroll, normalisering 5.Integritetsvillkor Ett större varuhusföretag har anställda, med och lön, som arbetar på varuhusets olika avdelningar ( och nummer), där man säljer olika varor ( och nummer). Varje avdelning har en chef, en av de anställda. Varorna levereras av olika leverantörer ( och adress), och flera leverantör kan leverera samma varor, men till olika priser. Exempel 2, forts Exempel 2 ER-diagram Varuhuset har hemkörningsservice. Kunder som har konto hos varuhuset och anmält en adress för leveranser kan beställa varor och få dem levererade hem. Varje sådan beställning har ett ordernummer och ett orderdatum, utöver listan av ingående varor (naturligtvis kan man beställa mer än en av varje vara vid ett visst tillfälle).

Exempel 2: Relationer EMPS(ENAME, SALARY) MANAGERS(ENAME) DEPTS(DNAME, DEPT#) SUPPLIERS(SNAME, SADDR) ITEMS(INAME, ITEM#) ORDERS(O#, DATE) CUSTOMERS(CNAME, CADDR, BALANCE) Exempel 2, forts WORKS-IN (N:) DEPT# läggs in i EMPS MANAGES (:) ENAME läggs in i DEPTS CARRIES (:N) DEPT# läggs in i ITEMS SUPPLIES(SNAME, ITEM#, PRICE) INCLUDES(O#, ITEM#, QUANTITY) PLACED-BY (N:) CNAME läggs in i ORDERS (IS-A behövs inte när MANAGERS finns) Exempel 2, nycklar. EMPS(ENAME, SALARY, DEPT#) 2. MANAGERS(ENAME) 3. DEPTS(DNAME, DEPT#, ENAME) 4. SUPPLIERS(SNAME, SADDR) 5. ITEMS(INAME, ITEM#, DEPT#) 6. ORDERS(O#, DATE, CNAME) 7. CUSTOMERS(CNAME, CADDR, BALANCE) 8. SUPPLIES(SNAME, ITEM#, PRICE) 9. INCLUDES(O#, ITEM#, QUANTITY) Exempel 2, forts: Kontrollera redundans och integritetsvillkor: EMPS(ENAME, SALARY, DEPT#) MANAGERS(ENAME) DEPT(DNAME,DEPT#, ENAME) En relation med bara ett attribut? Är inte MANAGERS en delmängd av EMPS? Men om vi kodar MANAGERS som attribut i EMPS: semantiskt integritetsvillkor behövs