Informationssystem och Databasteknik

Storlek: px
Starta visningen från sidan:

Download "Informationssystem och Databasteknik"

Transkript

1 Informationssystem och Databasteknik Föreläsning 4 Relationsmodellen Från konceptuell modell till relationsdatabasschema Analytisk databasdesign

2 Vad är ett databashanteringssystem? En mängd program som tillåter användaren att skapa och underhålla databaser

3 DATABASSYSTEM Användare/Programmerare Applikationsprogram/Frågor DBMS Program för att hantera frågor/program Program för att hantera lagrade data Lagrad databasdefinition (metadata) Lagrad databas

4 Tabell 2 Tabell 1 Namn Adress Telefon Lisa Byvägen Olle Solgränd Pelle Solgränd En relationsdatabas är en databas som uppfattas av användaren som en samling tabeller - oberoende av hur datamängden fysiskt är lagrad.

5 Domän t.ex. Domänen för attributen BUDGET är Integer större än noll Grad - antal attribut (kolumner)

6 Pnr Start Slut Plats Budget

7 Atomära värden i varje cell Värdena i varje kolumn är av samma typ Varje rad (tuple) är unik Ordningen mellan attributen är inte alltid oväsentlig Ordningen mellan raderna är inte alltid oväsentlig Namnet för varje attribut är unikt för en relation

8 Grafisk notation för konceptuella scheman - avbildningsreglerna avgör vad som kan utgöra identifierare! APA Namn : Sträng * äter 1..1 BANAN Textsträng 1..1 Namn 0..1 APA 0..* äter 1..1 BANAN

9 Enkelt objekt - envärda attribut PERSON Personnr: String 1..1 UNIK Namn: String 1..1 Person Personnr Namn Blad Per Löw Eva Gren Ove Identifierande attribut är skuggat.

10 Enkelt objekt - flervärda attribut PERSON Personnr: String 1..1 UNIK Namn: String 1..1 Titel: String 0..* Person Personnr Namn Blad Per Löw Eva Gren Ove Titel Personnr Titel Civ.ing Fil.dr Civ.ing

11 Person Personnr Namn Blad Per Löw Eva Gren Ove Nycklar? Titel Personnr Titel Civ.ing Fil.dr Tekn.dr En nyckel är ett antal attribut (t ex ett) som unikt identifierar en rad. Mängden av alla sådana attribut eller kombinationer av attribut kallas kandidatnycklar. Den/de attribut som väljs som identifierare kallas primärnyckel. Eventuella övriga nycklar blir alternativnycklar. En främmande nyckel är ett/flera attribut i en tabell som svarar mot primärnyckeln i en ANNAN tabell (eller i vissa specialfall mot samma tabell). Personnr i tabellen TITEL ingår i primärnyckeln för tabellen TITEL men utgör även främmande nyckel mot tabellen PERSON. Främmande nyckel-attribut är det som relaterar olika tabeller till varandra. Alla värden som förekommer i främmande-nyckel kolumerna måste ha sin motsvarighet som primärnyckel i en annan tabell, eller också måste de vara NULL. De två sista villkoren brukar kallas referential integrity.

12 Entity integrity Ingen del av primärnyckeln får vara NULL (primärnyckeln identifierar ju en rad och måste alltid finnas). Referential integrity Alla värden för kolumner som utgör främmande nyckel kolumner mot en annan tabell måste svara mot existerande primärnyckel-värden för denna andra tabell. Eller också måste värdena i främmande nyckelkolumnerna vara NULL. Detta betyder bland annat att främmande nyckel kolumnerna i en tabell måste ha samma domäner som primärnyckel kolumnerna i den tabell som de refererar till.

13 NULL Vad betyder egentligen NULL? Värde saknas? Värde finns men är ej känt? (just nu...) Värde är ej tillämpligt? (jfr arvs-hierarkier )

14 ANSTÄLLDA NULL Null-värden kan ge problem vid join. AVDELNING Pnr Anst.nr Adress Avd.nr Avdelning Avd.nr A Byv. 3 3 Forskning B Solsv. 6 5 Försäljn AA 2B Byv. 5 Byv Admin X 3Y Solv. 7 NULL Byv. 11 NULL En join mellan anställda över Avd.nr kommer att resultera i att de två sista anställda inte kommer med. Beroende på omständigheterna kan detta vara vad som avsågs eller felaktigt. Pnr Anst.nr Adress Avd.nr Avdelning Avd.nr A 3B Byv. 3 Solsv Forskning Försäljn AA Byv. 5 3 Forskning B Byv.7 1 Admin 1

15 Från konceptuellt schema till databas, fortsättning Partiella relationer (och för all del attribut) ger upphov till problem med NULL-värden. Har man inte modellerat bort risken för NULL-värden bör man ta hand om det vid transformationen från konceptuell modell till relationsschema. Partiella relationer och attribut undviks t ex om man använder isahierarkier.

16 Associationer översätts till främmande nycklar! PERSON Namn: String 1..1 UNIK Ålder: String äger 0..1 BIL Regno: String 1..1 UNIK Märke: String 1..1 Person Personnr Namn Blad Per Löw Eva Gren Ove Bil Regnr Ägs-av Typ AIB Volvo BPL Fiat FJK 359 NULL Saab Det sammanbindande attributet läggs så att det får så få nullvärden som möjligt! Här antas att det finns fler personer utan bilar än tvärtom.

17 Partiella relationer alternativ lösning: PERSON Namn: String 1..1 UNIK Ålder: String äger 0..1 BIL Regno: String 1..1 UNIK Märke: String 1..1 PERSON 1 0 BIL- 0 1 ÄGANDE BIL Person Personnr Namn Blad Per Löw Eva Gren Ove Bil / Person Ägs-av Regnr AIB BLP 845 Bil Regnr Typ AIB 436 Volvo BPL 845 Fiat FJK 359 Saab

18 Samband där avbildningarna har M ( många, * ) på en av sidorna Regel: Främmande nyckeln ska placeras i den.tabell som sitter på * ( många ) - sidan!

19 PERSON Namn: String 1..1 UNIK Ålder: String äger 0..* BIL Regno: String 1..1 UNIK Märke: String 1..1 Person Personnr Namn Blad Per Löw Eva Gren Ove Bil Regnr Ägs-av Typ AIB Volvo BPL Fiat FJK 359 NULL Saab

20 M:M ( många till många, * : * ) måste lösas M:M- relationer måste alltid lösas med ett relationsobjekt (jämför med reifiering). Nullvärden undviks dessutom. Vid den första konceptuella modellen fick ju M:M samband finnas (såvida inte sambandet hade egna attribut). Vid övergång till ett relationsschema bildar man en en ny tabell som innehåller identiferarna från respektive entitet som sammankopplades via M:Msambandet.

21 PERSON Namn: String 1..1 UNIK Ålder: String * äger 0..* BIL Regno: String 1..1 UNIK Märke: String BIL- 0 1 PERSON ÄGANDE BIL Person Personnr Namn Blad Per Löw Eva Gren Ove Bil / Person Ägs-av Regnr AIB AIB BPL JTL 739 Bil Regnr Typ AIB 436 Volvo BPL 845 Fiat FJK 359 Saab JTL 739 BMW

22 Arvssamband PERSON Personnr :String 1..1 UNIK Namn: String 1..1 ANSTÄLLD KONSULT Avdelning: String 1..1 Projekt: String 1..1 Anställd Personnr Avd Dam Herr Person Personnr Namn Blad Per Löw Eva Gren Ove Konsult Personnr Projekt PR

23 Identifierare Objekt kan identifieras med hjälp av attribut och/eller samband mellan objekt. Avbildningsreglerna för ett attribut som ensamt ska tjäna som identifierare måste alltid vara UNIKT och TOTALT (se nedan). Detta betyder att alla sådana attribut kan väljas ensamma som primärnyckel. Motsatsen till totala attribut kallas f. ö. PARTIELL(a) attribut (eller partiella relationer). En identifierare för ett objekt kan sättas samma av ett eller flera attribut som hör till objektet eller ett attribut plus ett eller flera samband mellan objektet och andra objekt. A attributename: Datetype 1..1 UNIK

24 Sammansatta identifierare KURSDELTAGANDE Personnr: String 1..1 Kurskod: String 1..1 Nivå: String 1..1 Entitetstypen KURSDELTAGANDE modellerar att en student går en viss kurs. Man kan läsa kurser på flera olika nivåer där C-nivån har en svårare tenta än A-nivån. Här finns inget attribut som ensamt är både unikt och totalt (en viss student kan läsa flera kurser än en så kurskod är inte unikt, en kurs har flera deltagare så personnummer är inte unikt. Detsamma gäller nivå där flera studenter kan läsa t ex B-nivån). Kombinerar man ihop attributen personnummer och kurskod får man dock en unik identifierare (detta under förutsättning att man inte kan läsa samma kurs på flera olika nivåer. Om detta gäller måste även nivå inkluderas i identifieraren). KURSDELTAGANDE Personnr Kurskod Nivå

25 Sammansatta identifierare KURS Kurskod: String 1..1 UNIK Namn: String 1..1 Vad identifierar KURS? Jo, Kurskod! (Unikt och totalt) hör_till * KURSTILLFÄLLE Kursansvarig: String 1..1 Starttid: String 1..1 Sluttid: String 1..1 Inget av attributen hos klassen KURSTILLFÄLLE är unikt och totalt. Inte ens om man kombinerar ihop alla attributen är det säkert att detta blir unikt (en lärare kan vara ansvarig för olika kurser som går under samma tidsperiod). Om vi däremot väljer att identifiera ett kurstillfälle med attributen starttid, sluttid och kurskod (dvs KURSTILLFÄLLES relation mot KURS) har vi en unik identifierare.

26 KURS Kurskod: String 1..1 UNIK Namn: String 1..1 hör_till * KURSTILLFÄLLE Kursansvarig: String 1..1 Starttid: String 1..1 Sluttid: String 1..1 KURS Kurskod Namn KURSTILLFÄLLE Tabellen KURSTILLFÄLLE har en primärnyckel som består av kolumnerna Kurskod, Starttid och Sluttid. Kolumnen Kurskod ingår i PN men utgör även FN mot tabellen KURS. Kurskod Starttid Sluttid Kursansvarig

27 Presentation Gränssnittet ger möjlighet att nå applikationsprogrammen och därmed data i databasen.

28 Surrogatnycklar Vanliga användarspecificerade nycklar kan vara bristfällig ett par avseenden: 1. De kan förändras Exempelvis händer det att attribut som t ex avdelningsnummer/namn förändras när ett företag organiseras om. 2. Olika användarnamn kan användas för att identifiera samma entitet. T ex KUNDER KUND CUSTOMER jfr homonymer. Surrogat är systemgenererade entitetsidentifierare vars unikhet är garanterad för alltid och som alltså ej kan förändras.

29 Surrogatnycklar ANVÄNDARE BEHÖVER INTE VARA MEDVETNA OM ATT SURROGAT-NYCKLAR ANVÄNDS, EFTERSOM DESSA BARA ANVÄNDS INTERNT. FORTFARANDE HAR MAN "I LEVANDE LIVET" BEHOV AV ATT KUNNA IDENTIFIERA OBJEKT, OCH BEHOVET AV "ENTITY INTEGRITY" GÖR ATT (ANVÄNDARNAS) PRIMÄR-NYCKEL BEHÖVS. INTERNT KOMMER DOCK SURROGATET ATT ANVÄNDAS SOM ENVÄRDA UNIKA PRIMÄR-NYCKLAR OCH ÄVEN I REFERENSER SOM FRÄMMANDE NYCKLAR.

30 Översättning av entitet med sammansatta icke-lexikala identifierare PERSON Personnr: String 1..1 UNIK Namn: String 1..1 RUM 0..* 1..1 Rumsnr: String 0..* 1..1 bor_på 1..1 ingår_i HOTEL Hnamn: String 1..1 UNIK Typ: String 1..1 Rumsnummer räcker inte till för att identifiera (= vara möjlig att välja som primärnyckel) tabellen RUM! PERSON Personnr Namn Rumsnr HNamn Anna 2A Astoria Lisa 3B Ritz Eva 4S Astoria Pelle 2A Plaza RUM Rumsnr 2A 3B 4S 2A HNamn Astoria Ritz Astoria Plaza HOTEL HNamn Typ Astoria 5* Ritz 3* Plaza 5*

31 Informationsförlust? Övning: Översätt följande två scheman til två olika relationsdatabasstrukturer: PERSON Personnr: String 1..1 UNIK PERSON Personnr: String 1..1 UNIK 1..1 ISA ANSTÄLLD Anstnr: String 1..1 UNIK gift_med 1..1 ANSTÄLLD Anstnr: String 1..1 UNIK

32 Från ett konceptuellt schema till en relationsdatabas PERSON Namn: String 1..1 UNIK Ålder: Integer 0..* äger 0..* BIL Regno: String 1..1 UNIK Märke: String 1..1 Ett sätt: PERSON((Namn), Ålder) ÄGER((Namn, Regnr)) BIL((Regnr), Märke) Ett annat sätt: PERSON Namn ÄGANDE Namn BIL Regnr Ålder Regnr Märke Vart tog alla regler vägen?

33 Vart tog alla regler vägen fortsättning? - Domänbeskrivningar - Referensregler (Främmande Nyckel-specifikationer) - Integritetsregler (triggers) Kontroll av data skall ske så tidigt (så nära källan) som möjligt! Systemet skall inte kontrollera att data inte är fel, utan undanröja möjligheterna till att det blir fel

34 Domändefinition Domänkarakteristika datatyp längd format Exempel numeric, integer, char* 5 siffror, 30 tkn ååmmdd, nnnn-nnnnnnn * siffra, heltal, tecken

35 Domäner för nycklar PK AK FK ej null, unika unika, men får vara null, eller delvis null måste vara samma (domänspecifikt) som PK i föräldratabell

36 Inför SQL (DDL-delen): EMPLOYEE Eid: String 1..1 UNIK 1..* 1..1 works_at BUSINESS Bid: String 1..1 UNIK Detta blir två tabeller: EMPLOYEE((EID), BID) och BUSINESS(BID) Hur defineras tabellen EMPLOYEE ovan? SQL har en DDL-del (lite mer okänd än DML-delen). DDL betyder Data Definition Language. DML betyder Data Manipulation Language. Med DDL kan vi definiera tabeller, regler etc. Med DML kan vi sen ställa frågor mot de tabeller vi skapat.

37 SQL: DDL-exempel CREATE TABLE EMPLOYEE (EID VARCHAR(11) NOT NULL UNIQUE, BID CHAR(7) NOT NULL, PRIMARY KEY(EID), FOREIGN KEY(BID) REFERENCES BUSINESS ON DELETE CASCADE ON UPDATE CASCADE) Med hjälp av DDL-satsen ovan har vi realiserat ett antal regler. Entity integrity regler: Ingen del av primärnyckeln får vara NULL och PN måste vara unik för varje förekomst av entiteten. Alltså måste det (de) attribut som väljs till PN deklareras som NOT NULL och UNIQUE *. Vidare bör man ta ställning till vad som ska hända med främmande nyckel-attributet vid DELETE respektive UPDATE av en föräldra -entitet. DELETE och UPDATE-regler talar om just vilka effekter ett borttag eller en uppdatering av en föräldraentitet får på barn -entiteten. Här har vi valt att låta såväl DELETE som UPDATE vara CASCADES. Dvs ett borttag av en föräldraentiet innebär att även barnentiteten tas bort. En uppdatering av en föräldraentitet innebär att även främmande nyckelfältet i barnentiteten uppdateras. Vilka andra typer av effekter på DELETE/ INSERT kunde man valt? *) ibland innebär själva deklarationen av ett attribut som PN just att NOT NULL resp. UNIQUE upprätthålls. Då behöver man inte ange detta specifikt.

38 Mera främmande nycklar... CREATE TABLE EMPLOYEE (EID VARCHAR(11) NOT NULL UNIQUE, BID CHAR(7) NOT NULL, PRIMARY KEY(EID), FOREIGN KEY(BID) REFERENCES BUSINESS ON DELETE CASCADE ON UPDATE CASCADE) Här talar man om att BID i tabellen EMPLOYEE refererar till (är främmande nyckel mot) tabellen BUSINESS. Det måste alltså finnas en primärnyckel i BUSINESS vars värden svarar mot värdena för BID i tabellen EMPLOYEE. Om man inte skriver SQL kan man fortfarande visa vilka främmandenyckelrelationer som råder. T ex genom EMPLOYEE. BID = BUSINESS.BID

39 Regler för verksamheten som tas med i modellen! - Beställningspunkt skall kontrolleras vid utleverans - Inrapporterad körsträcka måste överstiga förgående inrapporterade körsträcka - Kunds kreditgräns får ej överskridas - Om beställningspunkt är större än antal-i-lager skall beställningsmeddelande skrivas ut TIDSINSTÄLLDA TRIGGERS aktiveras vid tider eller efter tidsintervall

40 händelse som utlöser (insert, update, delete, retrieve) objekt (attribut eller entitet) som berörs villkor som utlöser triggern åtgärder när triggern utlöses

41 Triggers exempel CREATE TRIGGER Signalera_stora_ökningar: AFTER UPDATE OF SALARY ON EMPLOYEE REFERENCING NEW AS n OLD AS o FOR EACH ROW MODE DB2SQL IF n.salary > 1.1 * o.salary SIGNAL SQLSTATE ( Salary increase > 10 % ) EMPLOYEE Name Adress Salary Kalle Byvägen Olle Solstigen Stina Ekgränd Kurt Byvägen

42 Kontrollera relationer genom normalisering - Analytisk databasdesign

43 Funktionellt beroende: Pnr Namn Funktion (i vanlig mat. betydelse): Maria Eva Sture Olle För varje värde på Pnr, tex 22222, får det finnas högst ett värde på ett Namn. Däremot får två (eller flera) Pnr ha samma värde på Namn. Dessutom finns det Namn som inte pekas ut av något Pnr. Liksom det finns Pnr:er som inte pekar ut något Namn Ej funktion: Maria Eva Sture Olle Här är det funktionella beroendet inte uppfyllt. Pnr:et pekar ut två värden på Namn, nämligen Maria och Eva.

44 Semantiken i funktionella beroenden Primärnyckeln i en tabell bestämmer övriga attribut funktionellt (dvs givet en viss primärnyckel finns det maximalt ett värde på alla övriga attribut/kolumner) Dessutom är vissa normalformer definerade i termer av funktionella beroenden. Kom ihåg att funktionella beroenden är ett uttryck för semantiken, betydelsen, i en applikation. Det svåra i en designprocess är att klarlägga denna semantik.

45 Det finns ingen bra notation för att visa funktionella beroenden INOM en klass - alltså funktionella beroenden mellan attribut! PERSON Namn: String 1..1 Vikt: Integer 1..1 Adressort: String 1..1 Postnr: Integer ägs_av 0..* HUND Namn: String 1..1 Vikt: Integer 1..1 Favoritmat: String 1..1

46 Funktionellt beroende, exempel Produkt Prodnr Mtrl Färg Lagerplats 1234 trä gul hylla stål grå hylla5 Prodnr Prodnr Prodnr Mtrl Färg Lagerplats När man ibland talar om Fullständigt funktionellt beroende har det att göra med primärnyckelns "minimalitet", dvs attributen skall vara beroende av hela (sammansatta) nyckeln. I en del litteratur gör man inte denna distinktion.

47 1NF, 2NF och 3NF 1NF A relation is in 1 NF iff the domains for all attributes are atomic 2NF A relation is in 2NF if it is in first normal form and all the nonkey attributes are fully functionally dependent on the key 3NF A relation is in 3NF if it is in second normal form and no nonkey attribute is transitively dependent on the key

48 1 NF En relation (tabell) är i 1NF omm varje attribut i tabellen består av atomära värden. Hur skulle en tabell se ut om den inte var i 1NF (dvs. i 0NF)? PERSON Pnr Namn Ort Postnr Ann, Maria Kista Kalle Södertälje Maria Södertälje Lisa Kista Attributet Namn innehåller en mängd värden, dvs tabellen är inte i 1 NF.

49 Två möjliga lösningar: 1. PERSON Pnr Namn Ort Postnr Ann Kista Maria Kista Kalle Södertälje Maria Södertälje Lisa Kista PERSON Pnr Ort Postnr Kista Södertälje Södertälje Kista NF PERSON Pnr Namn Ann Maria Kalle Maria Lisa Observera att def. av 1NF inte talar om vare sig nycklar eller funktionella beroenden. Alla attribut ska vara atomära. Punkt slut. Lösning nr 2 bygger dock intuitivt på att vi i den ursprungliga tabellen insåg att Pnr funktionellt bestämde alla de andra attributen (i alla fall så länge Namn utgjorde en mängd värden). I den ursprungliga tabellen kunde alltså Pnr väljas till primärnyckl (PN). I så fall kan man alltid övergå till 1 NF genom att bryta ut PN plus det attribut som inte var atomärt och skapa en en ny tabell av dessa två. I den gamla tabellen blir Pnr, Ort och Postnr kvar.

50 Nycklar PERSON Pnr Namn Ort Postnr Ann Kista Maria Kista Kalle Södertälje Maria Södertälje Lisa Kista Det (de) attribut som ska utgöra primärnyckel måste funktionellt bestämma alla övriga attribut. Vilka funktionella beroenden finns i 1? Jo, Pnr,Namn Ort, Postnr Pnr och Namn får utgöra PN 2. PERSON Pnr Ort Postnr PERSON Pnr Namn Kista Ann Södertälje Maria Södertälje Kalle Kista Maria Lisa Vilka funktionella beroenden finns i 2? I första tabellen har vi Pnr Ort, Postnr så där får Pnr bli PN. I andra tabellen finns inga funktionella beroenden utan båda attributen behövs för att identifiera en rad.

51 PRODUKT Pid Färg Pris Penna Blå, Vit, Röd 3 Skruv Metall 5 Mutter Metall 33 Stol Vit, Röd, Grön 6 Bord Vit, Blå, Röd 9 Vas Vit 44 Pall Gul 10 Mera 1NF Finns det något funktionellt beroende i den nya tabellen? Ja förmodligen Pid --> Pris Felöversatt från det konceptuella schemat? PRODUKT Pid Färg Pris Penna Blå 3 Penna Vit 3 Penna Röd 3 Skruv Metall 5 Mutter Metall 33 Stol Vit 6 Stol Röd 6 Stol Blå 6 Bord Vit 9 Bord Blå 9 Bord Röd 9 Vas Vit 44 Pall Gul 10

52 Partiellt funktionellt beroende A --> B kallas ett partiellt funktionellt beroende omm det existerar ett C som är en äkta delmängd av A OCH C --> B En relation, R, är i 2NF omm den är i 1NF och om det för varje attribut i R gäller ETT av följande villkor: 1. Attributet ingår i en kandidatnyckel (ev. den som väljs som PN) 2. Attributet är INTE partiellt beroende av en kandidatnyckel (ev. PN). Mao, alla attribut ska vara fullständigt funktionellt beroende av hela primärnyckeln, inte bara en del av denna.

53 2NF En tabell är i 2NF omm den är i 1NF och alla attribut är funktionellt beroende av hela primärnyckeln. Dvs Vi fortsätter exemplet från 1NF: PERSON Pnr Namn Ort Postnr Ann Kista Maria Kista Kalle Södertälje Maria Södertälje Lisa Kista NF 2NF PERSON PERSON-NAMN Pnr Ort Postnr Pnr Namn Kista Södertälje Ann Maria Södertälje Kalle Kista Maria Lisa Pnr, Namn Ort, Postnr gäller. Dvs. för varje par av värden på Pnr och Namn så finns det högst ett värde på såväl Ort som Postnr. Men både Ort och Pnr bestämms också av enbart Pnr. Alltså gäller Pnr Ort, Postnr. Ort och Postnr är alltså inte beroende av hela nyckeln. Bryt ut Pnr och de attribut som Pnr bestämmer till en egen tabell! Som synes får vi samma lösning som lösning 2. när vi försökte gå från 0NF till 1NF. Lösning 2. var alltså redan i 2NF!

54 PRODUKT Pid Färg Pris Penna Blå 3 Penna Vit 3 Penna Röd 3 Skruv Metall 5 Mutter Metall 33 Stol Vit 6 Stol Röd 6 Stol Blå 6 Bord Vit 9 Bord Blå 9 Bord Röd 9 Vas Vit 44 Pall Gul 10 Mera 2NF Pid --> Pris PRODUKT Pid Pris Penna 3 Skruv 5 Mutter 33 Stol 6 Bord 9 Vas 44 Pall 10 PRODUKT Pid Färg Penna Blå Penna Vit Penna Röd Skruv Metall Mutter Metall Stol Vit Stol Röd Stol Blå Bord Vit Bord Blå Bord Röd Vas Vit Pall Gul

55 Mera 2NF KURSTILLFÄLLE Kurs Lärare Telefon Sal IS:4 Paul Sal4 2i1033 Maria Sal4 GK:D Mats SalA ISIntro Paul SalB GK:D Paul SalA FK: DB Peter Sal3 FK:IS Paul F3 Kurs, Lärare --> Telefon, Sal Lärare --> Telefon KURSTILLFÄLLE Kurs Lärare Sal IS:4 Paul Sal4 2i1033 Maria Sal4 GK:D Mats SalA ISIntro Paul SalB GK:D Paul SalA FK: DB Peter Sal3 FK:IS Paul F3 LÄRARE Lärare Telefon Paul Maria Mats Peter 4444

56 Identifierare - Primärnyckel? ENTITET/ KLASS a: Datatype 1..1 UNIK b: Datatype 1..1 c: Datatype 1..1 c: Datatype 1..1 TABELL blev ju en tabell: a b c d Observera att om a har avbildningsregeln 1..1 UNIK och övriga attribut (dvs. b, c, d) 1..1 så finns det ett funktionellt beroende: a b, c, d dvs a kan väljas till PN. TABELL a b c d

57 Transitivt beroende Ett funktionellt beroende X --> Y för en relation R utgör ett transitivt beroende om följande båda saker gäller: 1. Det existerar en mängd attribut Z, sådan att Z varken utgör en kandidatnyckel för R eller ingår i en kandidatnyckel för R 2. X --> Z OCH Z --> Y Något svagare definition (baserad på primärnyckel istället för kandidatnyckel): Z får varken utgöra primärnyckel eller ingå i primärnyckeln.

58 2NF 3NF En tabell är i 3NF omm den är i 2NF och det inte existerar några transitiva beroenden mellan något icke-nyckel attribut och nyckeln. 2NF (och 3NF!) PERSON PERSON-NAMN Pnr Ort Postnr Pnr Namn Kista Södertälje Ann Maria Södertälje Kalle Kista Maria Lisa 3NF POST Postnr Ort Kista Södertälje Södertälje 3NF PERSON Pnr Postnr Ort är transitivt beroende av nyckeln (Pnr). Lösning: Bryt ut det transitiva beroendet till en egen tabell.

59 Tabell i 2N Mera 3NF Kurs Datum Lärare Sal Antal_sittplatser DB:1 DB: Maria Kalle F1 F PP: Kalle F2 50 SYS:1 SÄK: Maria Kurt F1 F Kurs, Datum --> Lärare, Sal, Antal_sittplatser Sal --> Antal_sittplatser Tabell i 3NF Tabell i 3NF Kurs Datum Lärare Sal Sal Antal_sittplatser DB: Maria F1 DB:3 PP: Kalle Kalle F1 F2 SYS: Maria F1 SÄK: Kurt F1 F1 100 F2 50

60 Problem vid ofullständig normalisering Ofullständig normalisering leder till sk uppdateringsanomalier: INSÄTTNING: Man kan inte lägga in uppgifter om en sals antal sittplatser om salen ifråga inte används av en kurs BORTTAG: När den enda kursen som en sal används i tas bort så försvinner även alla uppgifter om salen UPPDATERING: Om man bygger om en sal och följdaktligen kanske vill ändra angivelsen av antal platser (om nu salen blivit mindre/större) så måste man ändra på ALLA rader där just denna sal förekommer - risk för inkonsistens!

61 Utrymme vs Tid vs Konsistens Titel Författare Librettot Vikt Antal Sidor Förlag Hamlet Shakespeare Once upon.the End Bonniers Hamlet Shakespeare Once upon.the End Pierson Hamlet Shakespeare Once upon.the End Nordstedts etc. Hamlet Shakespeare Once upon.the End Prentice-Hall 1984 Orwell Bonniers etc. Titel Vikt Ant.sid. Förlag Titel Författare Librettot Hamlet Shakespeare Once upon The End Orwell Hamlet Bonniers Hamlet Pierson Hamlet Nordstedts etc Bonniers etc.

IT i organisationer och databasteknik

IT i organisationer och databasteknik IT i organisationer och databasteknik Föreläsning 4 Relationsmodellen Från konceptuell modell till relationsdatabasschema Regler i ER-scheman eller UMLklass diagram? I Som klasser: RABATT KlassArabatt:

Läs mer

Informationssystem och Databasteknik

Informationssystem och Databasteknik Informationssystem och Databasteknik Föreläsning 4 Relationsmodellen Från konceptuell modell till relationsdatabasschema Inför projektarbetet: - sammansmältning av flera överlappande modeller av samma

Läs mer

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

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem? Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem? En mängd program som tillåter användaren att skapa och underhålla

Läs mer

Informationssystem och databasteknik

Informationssystem och databasteknik Informationssystem och databasteknik Föreläsning 5 Analytisk databasdesign F5! Funktionellt beroende: Pnr Namn Funktion (i vanlig mat. betydelse): 610321 11111 22222 33333 Maria Eva Sture Olle För varje

Läs mer

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

Föreläsning 4 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Normalisering (Analytisk databasdesign) Föreläsning 4 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Normalisering (Analytisk databasdesign) 1 Vad är en databas? Logiskt sammanhängande mängd av data,

Läs mer

IT i organisationer och databasteknik

IT i organisationer och databasteknik IT i organisationer och databasteknik Föreläsning 5 Analytisk databasdesign Arkitektur hos ett informationssystem Presentation Användargränssnitt via en browser Applikationslogik Data Java servlets som

Läs mer

Analytisk relationsdatabasdesign

Analytisk relationsdatabasdesign Analytisk relationsdatabasdesign Att förbättra kvaliteten i databaser Presenter s Name Organization name www.horton.com Domän-regler och främmande nyckel regler via DDL Datatyp! Datatyp! Maxvärde! Maxvärde!

Läs mer

Relationsmodellen och syntetisk databasdesign

Relationsmodellen och syntetisk databasdesign Relationsmodellen och syntetisk databasdesign Den teoretiska grunden för relationsdatabaser Från konceptuellt schema till databas Relationsmodellen Bil Ägare En relationsdatabas är en databas som uppfattas

Läs mer

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY! ÖVNING 10 2NF HÄST (Hästnamn, Mankhöjd, Favoritmat, Art, Medelvikt, Spiltnummer, Bredd, Höjd) PERSON(Personnummer, Namn, Adress, Telefon) RIDKURS(KursId, StartDatum, SlutDatum, Ledare) KURS(KursId, Svårighetsgrad)

Läs mer

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 Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

Karlstads Universitet, Datavetenskap 1

Karlstads Universitet, Datavetenskap 1 2003-01-20 DAV B04 - Databasteknik 2003-01-20 KaU - Datavetenskap - DAV B04 - MGö 26 Relationsmodellen En formell teori som baserar sig på (främst) mängdlära predikatlogik Föreslogs av E.F Codd 1970 i

Läs mer

Relationsdatabasdesign

Relationsdatabasdesign Vad är Relationsdatabasdesign? Relationsdatabasdesign nikosd@kth.se 08-7904460 rum 8522 Connolly/Begg (3rd edition) Kapitel 4., 4.2 och 5 (4th edition) Kapitel 5., 5.2 och 6 (5th edition) Kapitel 6., 6.2

Läs mer

Konceptuella datamodeller

Konceptuella datamodeller Databasdesign Relationer, Nycklar och Normalisering Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Konceptuella datamodeller Om man ska skapa en databas som beskriver en del av verkligheten

Läs mer

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

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion. Databaser Design och programmering Relationsmodellen definitioner ER-modell -> relationsmodell nycklar, olika varianter Programdesign, databasdesign Databasdesign Konceptuell design Förstudie, behovsanalys

Läs mer

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Tentamen. Databasmetodik Lördag 27 september 2014 kl Inst. för Data- och Systemvetenskap SU/KTH Tentamen EIT:DB, SP:DB, DVK:DB, ATD:DB, FK:DB, DSK:DB Ska även användas av äldre kurstillfällen, t ex för IV1018, IV1003, ITK3:DB, ITK1:DB, DSV1:DB mfl. Databasmetodik

Läs mer

Logisk databasdesign

Logisk databasdesign NORMALISERING Peter Bellström Logisk databasdesign 2 Arbetssteget vars syfte är att konstruera en modell (diagram, schema), baserad på en specifik datamodell, över verksamhetens begrepp och samband. Modellen

Läs mer

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

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema Databaser Design och programmering Relationsmodellen definitioner ER-modell -> relationsmodell nycklar, olika varianter Relationsmodellen Introducerades av Edward Codd 970 Mycket vanlig Stödjer kraftfulla

Läs mer

Karlstads Universitet, Datavetenskap 1

Karlstads Universitet, Datavetenskap 1 * * * * DAV B04 - Databasteknik! "# $ %'&( ) KaU - Datavetenskap - DAV B04 - MGö 132 Riktlinjer när man vill skapa en databas 1) Designa så att det är lätt att förstå innebörden. Kombinera inte attribut

Läs mer

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 Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

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

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2) Databaser och databasdesign Den relationella modellen, normalisering och modellering (2) Varför databaser (DB)? Vi vill och måste kunna lagra data på sätt som motsvarar olika verksamheters behov Vad är

Läs mer

Föreläsning 6: Normalisering & funktionella beroenden

Föreläsning 6: Normalisering & funktionella beroenden Föreläsning 6: Normalisering & funktionella beroenden DVA234 Databaser IDT Akademin för Innovation, Design och Teknik Innehåll Föreläsningens mål: Att ge en överblick över hur normalisering fungerar Önskvärda

Läs mer

Exempel-Tentamen III

Exempel-Tentamen III Institutionen för Data- och Systemvetenskap IT-universitetet Maria Bergholtz Exempel-Tentamen III Inga hjälpmedel tillåtna (syntaxsammanställning behövs inte på denna tentamen) Skriv bara på en sida av

Läs mer

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

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: 033-4354424. Anslås inom 3 veckor TENTAMEN För kursen DATUM: 2013-12-12 TID: 9 14 Ansvarig för tentamen: Cecilia Sönströd Förfrågningar: 033-4354424 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p,

Läs mer

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Normalisering. Christer Stuxberg Institutionen för Informatik och Media Normalisering Christer Stuxberg christer.stuxberg@im.uu.se Institutionen för Informatik och Media Översikt Normalisering Dataredundans och Uppdateringsanomalier Anomalier vid insättning Anomalier vid borttagning

Läs mer

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

Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet... Idag Databaskvalitet(??) Hur vet vi att vår databas är tillräckligt bra? Vad är ett beroende? Vad gör man om det blivit fel? Vad är en normalform? Hur når man de olika normalformerna? Det finns metoder

Läs mer

Grunderna för relationsmodellen!

Grunderna för relationsmodellen! Grunderna för relationsmodellen! 1 Varför behöver jag lära mig relationsmodellen?! Relationsmodellen är den totalt dominerande datamodellen i moderna databassystem Beskriver databaser som en mängd tabeller

Läs mer

NORMALISERING. Mahmud Al Hakim

NORMALISERING. Mahmud Al Hakim NORMALISERING Mahmud Al Hakim mahmud@webacademy.se 1 SCHEMA Schema eller databasschema är en beskrivning av vilka data som kan finnas i en databas, oberoende av vilka data (innehållet) som råkar finnas

Läs mer

Databaser och Datamodellering Foreläsning IV

Databaser och Datamodellering Foreläsning IV Webbprogrammering - 725G54 Databaser och Datamodellering Foreläsning IV Agenda Databaser ERD SQL MySQL phpmyadmin Labb 4 Databaser Databas - samling med data Databashanterare Enkelt Kraftfullt Flexibelt

Läs mer

2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY!, där RIDKURS.KursId = KURS.KursId 3NF Hästnamn, Art, NY! NY! NY! NY!

2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY!, där RIDKURS.KursId = KURS.KursId 3NF Hästnamn, Art, NY! NY! NY! NY! ÖVNING 9 2NF HÄST (Hästnamn, Mankhöjd, Favoritmat, Art, Medelvikt, Spiltnummer, Bredd, Höjd) PERSON(Personnummer, Namn, Adress, Telefon) RIDKURS(KursId, StartDatum, SlutDatum, Ledare) KURS(KursId, Svårighetsgrad)

Läs mer

Tentamen EIT:DB Databastmetodik 11/1 2013 kl. 13 17 + Lösningsförslag

Tentamen EIT:DB Databastmetodik 11/1 2013 kl. 13 17 + Lösningsförslag Tentamen EIT:DB Databastmetodik 11/1 2013 kl. 13 17 + Lösningsförslag Inga hjälpmedel är tillåtna (annat än ordbok). Kort syntaxsamling för delar av SQL samt lista med symboler för relationsalgebraiska

Läs mer

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

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13 Institutionen för Data- och Systemvetenskap IT-universitetet Maria Bergholtz Tentamen DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 203 kl. 9-3 Inga hjälpmedel tillåtna (syntaxsammanställning

Läs mer

Design och underhåll av databaser

Design och underhåll av databaser Design och underhåll av databaser 1. Modell av verkligheten 2. Normalformer 3. Introduktion till DDL 4. Skapa databaser 5. Skapa tabeller 6. Skapa index 7. Restriktioner 8. Ta bort databaser, tabeller

Läs mer

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen Lördag 8 juni kl

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen Lördag 8 juni kl Institutionen för Data- och Systemvetenskap IT-universitetet Maria Bergholtz Tentamen DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen Lördag 8 juni kl. 10-14 Inga hjälpmedel tillåtna (syntaxsammanställning

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem 16 Januari 2015 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan på varje

Läs mer

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. 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 TENTAMEN För kursen DATUM: 2014-11-07 TID: 9 14 Ansvarig för tentamen: Cecilia Sönströd Förfrågningar: 033-4354424 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p,

Läs mer

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

Pga att (Nummer och Typ) tillsammans bestämmer övriga attribut funktionellt väljer vi (Nummer, Typ) till primärnyckel: ÖVNING 1. PRODUKT(Nummer, Namn, Typ, Klass, Prisklass, Vikt, Volym, Fraktkostnad) Nummer, Typ Namn, Klass, Pris, Prisklass, Vikt, Volym, Fraktkostnad Namn, Typ Nummer Typ Klass Pris Prisklass Vikt, Volym,

Läs mer

Databaser Design och programmering

Databaser Design och programmering Databaser Design och programmering Fortsättning på relationsmodellen: Normalisering funktionella beroenden normalformer informationsbevarande relationsschemauppdelning 2 Varför normalisera? Metod att skydda

Läs mer

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

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: 033-4354424. Anslås inom 3 veckor TENTAMEN För kursen DATUM: 2014-08-20 TID: 9 14 Ansvarig för tentamen: Cecilia Sönströd Förfrågningar: 033-4354424 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p,

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem 10 April 2015 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan på varje

Läs mer

Databasdesign. E-R-modellen

Databasdesign. E-R-modellen Databasdesign Kapitel 6 Databasdesign E-R-modellen sid Modellering och design av databaser 1 E-R-modellen 3 Grundläggande begrepp 4 Begränsningar 10 E-R-diagram 14 E-R-design 16 Svaga entitetsmängder 19

Läs mer

Tentamen plus lösningsförslag

Tentamen plus lösningsförslag Inst. för Data- och Systemvetenskap SU/KTH Maria Bergholtz, Paul Johannesson Tentamen plus lösningsförslag 2I-1100 Informationssystem och databasteknik Skriv bara på en sida av pappret Skriv namn på varje

Läs mer

Tentamen 2I1033, IT i Organisationer och Databasteknik lördag 17/4 2004, kl. 10 15 LÖSNINGSFÖRSLAG

Tentamen 2I1033, IT i Organisationer och Databasteknik lördag 17/4 2004, kl. 10 15 LÖSNINGSFÖRSLAG Institutionen för Data- och Systemvetenskap SU/KTH Maria Bergholtz Tentamen 2I033, IT i Organisationer och Databasteknik lördag 7/4 2004, kl. 0 5 LÖSNINGSFÖRSLAG Inga hjälpmedel tillåtna. Skriv bara på

Läs mer

Inst. för Data- och Systemvetenskap SU Maria Bergholtz. Tentamen. 21/ kl Inga hjälpmedel är tillåtna (annat än ordbok).

Inst. för Data- och Systemvetenskap SU Maria Bergholtz. Tentamen. 21/ kl Inga hjälpmedel är tillåtna (annat än ordbok). Inst. för Data- och Systemvetenskap SU Maria Bergholtz Tentamen 2/3 205 kl. 4 8 Inga hjälpmedel är tillåtna (annat än ordbok). Skall även användas som omtentamen för DB:EIT/DSK/FK samt äldre databaskurser.

Läs mer

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

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem Webprogrammering och databaser! Idag: Diverse praktiskt om kursen Webprogrammering Databaser, terminogi Start på ER-modellering! Webprogrammering Kursöversikt! Databasteori och praktik! Fö, le, la + projekt!

Läs mer

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

Concepts learned this far. ER till relationer. ER till relationer. ER till relationer. TDDD12 Database Technology 2008-04-07 TDDD12 Lecture 3: EER and mapping E 1 TDDD12 Database Technology Concepts learned this far Lecture 3: EER/ER and mapping to relations by Juha Takkinen 2008-04-07 1 2 2008-04-07 TDDD12 Lecture

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem Exempeltenta för kursen ht2013 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan

Läs mer

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

SQLs delar. Idag. Att utplåna en databas. Skapa en databas Idag SQLs delar Hur skapar vi och underhåller en databas? Hur skapar man tabeller? Hur får man in data i tabellerna? Hur ändrar man innehållet i en tabell? Index? Vad är det och varför behövs de? Behöver

Läs mer

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. 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 TENTAMEN För kursen DATUM: 2014-12-18 TID: 9 14 Ansvarig för tentamen: Cecilia Sönströd Förfrågningar: 033-4354424 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p,

Läs mer

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

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Databasföreläsning Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Tabeller Personer Databas Nummer Namn Födelseår 1 Tina 1950 2 Siv 1965 3 Olle 1980 Platt databas: all information

Läs mer

Tentamen i Databasteknik

Tentamen i Databasteknik Tentamen i Lördagen den 21 oktober 2006 Tillåtna hjälpmedel: Allt skrivet material Använd bara framsidan på varje blad. Skriv max en uppgift per blad. Motivera allt, dokumentera egna antaganden. Oläslig/obegriplig

Läs mer

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen Webprogrammering och databaser Konceptuell datamodellering med ER-modellen 2 Programutveckling Interaktionsdesign, behovsanalys Programdesign, databasdesign Implementation 3 Programdesign, databasdesign

Läs mer

Konceptuell modellering

Konceptuell modellering Konceptuell modellering En konceptuell modell beskriver data och datasamband på ett representationsoberoende sätt. Vad modellen sen ska implementeras som/i får inte påverka modellens utformning! Grundbegrepp:

Läs mer

Lite om databasdesign och modellering

Lite om databasdesign och modellering Lite om databasdesign och modellering Konceptuell databasdesign Med konceptuell databasdesign avses processen att konstruera en datamodell för en verksamhet, oberoende av fysiska villkor. Modelleringen

Läs mer

Tentamen DATABASTEKNIK - 1DL116

Tentamen DATABASTEKNIK - 1DL116 Uppsala universitet Institutionen för informationsteknologi Kjell Orsborn Tentamen 2003-05-20 DATABASTEKNIK - 1DL116 Datum...Tisdagen den 20 Maj, 2003 Tid...12:00-17:00 Jourhavande lärare...kjell Orsborn,

Läs mer

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen Webprogrammering och databaser Konceptuell datamodellering med ER-modellen 2 Programutveckling Interaktionsdesign, behovsanalys Programdesign, databasdesign Implementation 3 Programdesign, databasdesign

Läs mer

Databaser design och programmering. Design processen ER- modellering

Databaser design och programmering. Design processen ER- modellering Databaser design och programmering Design processen ER- modellering 2 Programutveckling Förstudie, behovsanalys Programdesign, databasdesign Implementation 3 Programdesign, databasdesign Databasdesign

Läs mer

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY! ÖVNING 10 2NF HÄST (Hästnamn, Mankhöjd, Favoritmat, Art, Medelvikt, Spiltnummer, Bredd, Höjd) PERSON(Personnummer, Namn, Adress, Telefon) RIDKURS(KursId, StartDatum, SlutDatum, Ledare) KURS(KursId, Svårighetsgrad)

Läs mer

Universitetet: ER-diagram

Universitetet: ER-diagram Databaser Design och programmering Fortsättning på relationsmodellen: Normalisering funktionella beroenden normalformer informationsbevarande relationsschemauppdelning Varför normalisera? Metod att skydda

Läs mer

Exempel-tentamen 1. + Lösningsförslag. Inga hjälpmedel är tillåtna.

Exempel-tentamen 1. + Lösningsförslag. Inga hjälpmedel är tillåtna. Institutionen för Data- och Systemvetenskap SU/KTH Maria Bergholtz Exempel-tentamen + Lösningsförslag Inga hjälpmedel är tillåtna. Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt,

Läs mer

Relationsdatabasdesign, 2I-4067

Relationsdatabasdesign, 2I-4067 Relationsdatabasdesign 2I-4067 Relationsdatabasdesign, 2I-4067 Lärare Maria Bergholtz, rum 4636, telefon 6658, e-mail maria@dsv.su.se Nikos Dimitrakas, e-mail nikos-di@dsv.su.se Michael Persson, rum 2675,

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem 13 Mars 2014 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan på varje blad.

Läs mer

Relationell databasdesign

Relationell databasdesign Relationell databasdesign Kapitel 7 Relationell databasdesign sid Uppdelning m.h.a. funktionella beroenden 3 Funktionella beroenden - teori 12 Uppdelningsalgoritmer 27 Designprocess 33 Relational oath

Läs mer

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

1.Lär känna MS SQL Observera. Tips. Förberedelse 1.Lär känna MS SQL 2008 Observera Övningar som finns tillgängliga är till för att du ska kunna testa dina kunskaper och träna på dem. Det är helt upp till dig när du vill genomföra och om du vill genomföra

Läs mer

Exempel tentamen. Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt, annars rättas inte tentamen Alla hjälpmedel är tillåtna

Exempel tentamen. Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt, annars rättas inte tentamen Alla hjälpmedel är tillåtna Inst. för Data- och Systemvetenskap SU/KTH Maria Bergholtz, Paul Johannesson Exempel tentamen 2I-1100 Informationssystem och Databasteknik Tentamen är öppen i så motto att läroböcker, föreläsningsanteckningar,

Läs mer

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

Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem Hösten 2011 1. a) Jag följer kokboken (förel 3, bild 34) a. Regeln säger att alla objektklasser med e-termer ska bilda

Läs mer

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

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Namn: Personnummer: Individuell prövning 41E03B Öppen för alla Tentamensdatum: 2013-08-20 Tid: 09:00-13:00 Hjälpmedel: Inga hjälpmedel

Läs mer

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: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor TENTAMEN För kursen DATUM: 2015-11-06 TID: 14 19 Ansvarig för tentamen: Anna Palmquist Förfrågningar: 0734-612003 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p,

Läs mer

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20 Idag Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten 2009 1 / 20 Idag Hur skapar vi och underhåller en databas? Hur skapar man tabeller?

Läs mer

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

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info. Normalisering Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info. Tillbaka i modelleringsfasen. 1NF: Vad menas med ett sammansatt attribut? Exempel:

Läs mer

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

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU Databaser Design och programmering, IDA Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp Kursöversikt Teori och praktik Fö och bok lektioner, labbar i projekt (3,5hp=100h)

Läs mer

Databaser. Vad du ska lära dig: Ordlista

Databaser. Vad du ska lära dig: Ordlista Databaser Vad du ska lära dig: Ordlista Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda en

Läs mer

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

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året 729G28 Webprogrammering och databaser Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminogi Webprogrammering och databaser Personal: Examinator Jalal Maleki, jalma@ida.liu.se

Läs mer

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

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Disposition 1. Kopplingen mellan Processanalys (DFDdiagram) och konceptuell modellering (ERdiagram) (se kap 4) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Databasen (Kap 2) Den relationella

Läs mer

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

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7) 1 (7) Försättsblad till skriftlig tentamen vid Linköpings universitet Datum för tentamen Sal (1) Tid Kurskod Provkod Kursnamn/benämning Provnamn/benämning Institution Antal uppgifter som ingår i tentamen

Läs mer

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

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser? Databaser Design och programmering! Diverse praktiskt! Varför databaser?! Vad är en databas?! Andra viktiga begrepp Kursöversikt! Teori och praktik! Samläsning! Olika projekt! Examination (tenta, labb

Läs mer

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag 729G28 Webprogrammering och Kursansvarig: Eva Ragnemalm, IDA eva.ragnemalm@liu.se Kursassistent: Anders Märak Leffler anders.marak.leffler@liu.se Webprogrammering och Föreläsning 1: Diverse praktiskt om

Läs mer

Lösningsförslag till Tentamen,

Lösningsförslag till Tentamen, Institutionen för Data- och Systemvetenskap SU/KTH Maria Bergholtz och Paul Johannesson Lösningsförslag till Tentamen, 022 2I-00 Informationssystem och databasteknik För att erhålla betyget tre räcker

Läs mer

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

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna Databasteknik 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Tentamen NDA01G Öppen för alla Tentamenskod: Tentamensdatum: 2016-11-04 Tid: 14:00-19:00 Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

(Data)Modellering. nikos dimitrakas rum 2423

(Data)Modellering. nikos dimitrakas rum 2423 (Data)Modellering nikosd@kth.se 08-161295 rum 2423 Connolly/Begg (3rd edition) Kapitel 11, 12 och 14 (4th edition) Kapitel 11, 12 och 15 (5th edition) Kapitel 12, 13 och 16 (6th edition) Kapitel 12, 13

Läs mer

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

Databaser design och programmering. Fö 2: Design processen, ER-modellering Databaser design och programmering Fö 2: Design processen, ER-modellering 2 Programutveckling Interaktionsdesign, behovsanalys Programdesign, databasdesign Implementation 3 Programdesign, databasdesign

Läs mer

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

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information. Vad är en databas? Exempel på databaser: Kortregister på kontor Sjukvårdsjournal Bokregister på bibliotek Medlemsregister i en förening Kundregister på företag Telefonkatalogen Databas = Organiserad samling

Läs mer

Starta MySQL Query Browser

Starta MySQL Query Browser Starta MySQL Query Browser 1. Starta MySQL Query Browser genom att antingen välja i Startmenyn: 2. eller leta upp ikonen på skrivbordet för start av MySQL Query Browser och dubbelklicka på den. 3. Du bör

Läs mer

Webbprogrammering, grundkurs 725G54

Webbprogrammering, grundkurs 725G54 Webbprogrammering, grundkurs 725G54 Bootstrap jquery SEO RWD MuddyCards. Tidigare Muddycards Många positiva kommentarer Ibland för högt tempo på föreläsning Lägg ut labbar tidigare Mer föreläsningar (2

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem 24 Augusti 2015 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan på varje

Läs mer

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

Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5 Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5 1 Frågor mot en tabell och något selektionsvillkor. A Ta fram personnummer, namn, adress och postnummer på personer som bor i Solna! B Ta fram

Läs mer

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

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng Datum: 2016-11-02 Tid: 08:15 13:15 Lärare: Peter Bellström, Katarina Groth, Remigijus Gustas Hjälpmedel: Inga Tentamen är på 40 poäng. Gränsen

Läs mer

732G16: Databaser - Design och programmering

732G16: Databaser - Design och programmering 732G16: Databaser - Design och programmering Eva L. Ragnemalm, IDA (eva.ragnemalm@liu.se) Johan Falkenjack, IDA (johan.falkenjack@liu.se) Fö 1 Introduktion 2 Kursöversikt Teori och praktik Kursbok, lektionshäfte,

Läs mer

Modul DB1-1 Databasmodellering

Modul DB1-1 Databasmodellering 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

Läs mer

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

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning 08/12/14 Behövs Föreläsning 8? Databasteknik och informationssystem DD1370 Idag F7 - (sista nyheterna & repetition) F8 (?) - (repetition, repetition, repetition ) Föreläsning 7 Svara med knapptryckning

Läs mer

Databaser - Design och programmering

Databaser - Design och programmering Databaser - Design och programmering Eva L. Ragnemalm, IDA (eva.ragnemalm@liu.se) Fö 1; introduktion Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp 2 Kursöversikt

Läs mer

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

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index INNEHÅLL SQL DEL 4 DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index Chapter 3, 6, 8 delar av. Beginning SQL Server 2008 for Developers 1 CREATE

Läs mer

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

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse Lär känna MS SQL 2008 / Övning Observera Övningar som finns tillgängliga är till för att du ska kunna testa dina kunskaper och träna på dem. Det är helt upp till dig när du vill genomföra och om du vill

Läs mer

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik 2008-08-11 kl. 14 18

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik 2008-08-11 kl. 14 18 LiTH, Tekniska högskolan vid Linköpings universitet 1(5) IDA, Institutionen för datavetenskap Juha Takkinen Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik 2008-08-11 kl. 14 18 Lokal T2 och

Läs mer

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

25/11/14. Databasteknik och informationssystem DD1370. Påminnelse inför Lab 1 redovisningen. Repetition: ER modellering (gammalt + nytt) 25//4 Påminnelse inför Lab redovisningen Databasteknik och informationssystem DD370 Föreläsning 5: ER-modellenà Databas Påminnelse: Kursens mål. Förklara ett databashanteringssystems funktioner och uppbyggnad

Läs mer

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.

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. 1 Datafiler tillhör alltid en filgrupp. Det måste alltid finnas en PRIMARY group. Det är inget som hindrar att datafiler på olika diskar tillhör samma filgrupp. PRIMARY gruppen innehåller huvudfilen till

Läs mer

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

02/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Dagens föreläsning. Om Lab 1. De 11 Stegen (Kokbok) 02/2/4 Behövs Föreläsning 8? Databasteknik och informationssystem DD370 Idag F6 ästa vecka: F7 (sista nyheterna & repetition) Föreläsning 6: ER-modellenà Databas (del 2) F8 (?) (repetition, repetition,

Läs mer

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

Del 2: ER-modellering och överföring till Databasstruktur v0.9 DD1370: Databaser och Informationssystem Hösten 2014 Del 2: ER-modellering och överföring till Databasstruktur v09 Petter Ögren 1:e December Disclaimer: Dessa anteckningar har producerats under viss tidspress,

Läs mer

Lösningsförslag Tentamen, 25 april 03

Lösningsförslag Tentamen, 25 april 03 Lösningsförslag Tentamen, 25 april 03 Uppgift 1 Kommentar: Svårigheterna ligger i att differentiera mellan BIL och BILMODELL och MOTOR och MOTORTYP. Båda avbildare ett sk. powertype-förhållande (templatecopy)

Läs mer