Entity-Relationship-modellen

Save this PDF as:
 WORD  PNG  TXT  JPG

Storlek: px
Starta visningen från sidan:

Download "Entity-Relationship-modellen"

Transkript

1 Entity-Relationship-modellen 1 Varför behöver man kunna E-R design? E-R diagram är ett visuellt sätt att designa databasers struktur Enkelt och överskådligt sätt att beskriva data, samt de samband som finns mellan data Ger en mera högnivå beskrivning av databasens struktur än relationstabeller Ger bra stöd för att diskutera databasens design med dess användare Ger relationsscheman som vanligtvis är väl normaliserade Det finns en hel del grafiska editorer för E-R design Man kan designa E-R diagram med en grafisk editor, och sedan (mer eller mindre) automatiskt översätta de här till relationssceman Strukturen på relationstabellerna blir ofta bra om man först designar databasen i form av E-R diagram. Relationsscheman blir vanligtvis automatiskt väl normaliserade 2 1

2 Designprocess Innan man kan definiera schemat för en databas måste man förstå hur verksamheten fungerar i det företag eller den organisation där databassystemet skall användas. Man måste göra en konceptuell (dvs. begreppsmässig) beskrivning av verksamheten som databassystemet skall stöda. Vilken data behövs, hur är data sinsemellan relaterat, hur vill man använda data i verksamheten, Den konceptuella beskrivningen kan sedan översättas till ett relationsschema Relationsschemat beskriver strukturen på tabellerna som bygger upp databasen. Ett vanligt sätt att göra den konceptuella beskrivningen är med hjälp av E-R-modellen Entity-Relationship-modellen! Entity = entitet, sak, objekt! Relationship = samband, förhållande 3 Modellering En databas kan modelleras som: en samling av entiteter, samband mellan entiteter (på engelska relationships). En entitet är ett objekt som existerar och som kan särskiljas från andra objekt. Exempel: en person, ett företag, en händelse som t.ex. ett uttag från ett bankkonto, en beställning som görs, Entiteter har attribut Exempel: människor kan ha namn och adress, ett uttag från ett bankkonto kan ha attributen kontonummer, belopp och tidpunkt En entitetsmängd är en mängd entiteter av samma typ som alla har samma egenskaper. Exempel: mängden av alla personer, mängden av alla kurser, mängden av alla banktransaktioner, mängden av alla helgdagar. 4 2

3 Entitetsmängderna och - _ Crick Katz Srinivasan Kim Singh Einstein Tanaka Shankar Zhang Brown Aoi Chavez Peltier 5 Sambandsmängder Ett samband (på engelska relationship) är en association mellan flera entiteter Till exempel: Student-entiteten (Peltier) är associerad med entiteten (Einstein) En sambandsmängd (relationship set) är en mängd av samband, alla av samma typ Definitionen på en sambandsmängd är en matematisk relation mellan n 2 entiteter, var och en från entitetsmängder {(e 1, e 2, e n ) e 1 E 1, e 2 E 2,, e n E n } där (e 1, e 2,, e n ) är ett samband och E 1, E 2, E n är entitetsmängder Exempel: (44553, 22222) advisor uttrycker att en (44553, Peltier) har som handledare föreläsaren (22222, Einstein). 6 3

4 Sambandsmängden advisor Crick Katz Srinivasan Kim Singh Einstein Tanaka Shankar Zhang Brown Aoi Chavez Peltier 7 Sambandsmängder (forts.) Sambandsmängder kan också ha egna attribut. Till exempel, sambandsmängden advisor mellan entitetsmängderna och kan ha ett attribut date som anger när läraren blev handledare för en i fråga Crick Katz Srinivasan Kim Singh Einstein 3 May June June June June May May Tanaka Shankar Zhang Brown Aoi Chavez Peltier 8 4

5 Graden av en sambandsmängd Graden av en sambandsmängd beskriver hur många entitetsmängder som deltar i sambandsmängden dvs. för hur många entiteter som sambandet gäller Sambandsmängder som har två deltagande entitetsmängder kallas binära (eller är av graden två). De flesta sambandsmängder i en databas är binära. Man kan också ha sambandsmängder som involverar flera än två entitetsmängder.! Exempel: er kan arbeta inom ett projekt som leds av en lärare! Man skulle då ha en sambandsmängd som involverar tre entiteter, och project Samband mellan flera än två entitetsmängder förekommer relativt sällan. De flesta relationer är binära. 9 Attribut En entitet representeras av en mängd attribut, dvs. av en mängd beskrivande egenskaper som alla medlemmar av entitetsmängden har. Exempel: = (,, dept_, ) course= (course_id, title, dept_, credits) Domänen för ett attribut är mängden av de tillåtna värden för varje attribut Exempel: domänen för attributet i kunde t.ex. vara femsiffriga heltal Attribut kan vara av olika typer: Enkla och sammansatta attribut. Envärda och flervärda attribut. Deriverade (härledda) attribut. 10 5

6 Enkla och sammansatta attribut Enkla attribut kan inte delas upp i mindre beståndsdelar Sammansatta attribut byggs upp av ett antal andra attribut Exempel: det sammansatta attributet består av tre komponenter first_ middle_initial last_ Det sammansatta attributet address består av 6 attribut sammansatt i två nivåer composite attributes address first_ middle_initial last_ street city state postal_code component attributes street_number street_ apartment_number 11 Envärda, flervärda och härledda attribut Envärda attribut har ett enda värde Exempel: attributet _id kan ha ett enda värde för varje entitet En kan ha exakt ett id-nummer Flervärda attribut kan ha flera värden Exempel: antag att vi för varje också vill representera telefonnummer För varje lärare vill vi kunna lagra nummer till arbetstelefon, mobiltelefon och hemtelefon Olika lärare kan ha olika antal telefonnummer: inget, ett eller flera Härledda eller deriverade attribut kan beräknas från värden på andra attribut Exempel: antag att vi också har ett attribut födelsedatum för lärare Då kunde vi ha ett härlett attribut ålder som man beräknar från födelsedatum och dagens datum Härledda attribut behöver inte lagras i relationer, utan de kan beräknas när de behövs 12 6

7 Sambandstyper (mapping cardinality) Beskriver till hur många entiteter en annan entitet kan associeras via en sambandsmängd Mest användbar för att beskriva binära sambandsmängder. För en binär sambandsmängd mellan två entitetsmängder A och B måste sambandstypen vara en av följande : En-till-en (1:1)! En entitet i en entitetsmängd A är associerad med högst en entitet i B och en entitet i B är associerad med högst en entitet i A En-till-många (1:N)! En entitet i A är associerad med godtyckligt många (noll, en eller flera) entiteter i B och en entitet i B är associerad med högst en entitet i A Många-till-en (N:1)! En entitet i A är associerad med högst en entitet i B och en entitet i B kan vara associerad med godtyckligt många entiteter i A (noll, en eller flera) Många-till-många (N:N)! En entitet i A är associerad med godtyckligt många entiteter i B och en entitet i B kan vara associerad med godtyckligt många entiteter i A 13 Sambandstyper A B A B a 1 b 1 a 2 b 1 a 1 b 2 a 3 b 2 a 2 b 3 a 4 b 3 a 3 b 4 b 5 (a) En till en (1:1) (b) En till många (1:N) OBS: En del element i A och B behöver inte vara associerade med något element i den andra mängden 14 7

8 Sambandstyper (forts.) A B A B a 1 a a 2 b 1 a 1 a 2 b 1 b 2 a 3 b 2 a 3 b 3 a 4 b 3 a 4 b 4 a 5 (a) Många till en (N:1) (b) Många till många (N:N) 15 Fullständigt och partiellt deltagande Om varje entitet i en entitetsmängd E måste delta i åtminstone ett samband i en sambandsmängd R säger vi att deltagandet är fullständigt. på engelska kallas det här total participation t.ex. om varje måste delta i ett advisor-samband med åtminstone en, så är deltagandet av entitetsmängden i sambandsmängden advisor totalt uttrycker att alla er måste ha åtminstone en handledare Om bara en del av entiteterna i entitetsmängden E behöver delta i ett samband i sambandsmängden R säger vi att deltagandet är partiellt det får finnas entiteter i E som inte deltar i något samband i R deltagandet av entitetsmängden i sambandsmängden advisor är partiellt alla lärare måste inte nödvändigtvis ha er som de handleder 16 8

9 Nycklar för entitetsmängder För att kunna identifiera olika entiteter utser vi ett visst attribut till att vara en nyckel för entitetsmängden En nyckel kan unikt identifiera entiteterna En supernyckel för en entitetsmängd är en mängd av ett eller flera attribut vars värden unikt bestämmer varje entitet. det måste finnas attribut som gör det möjligt att unikt identifiera en viss entitet En kandidatnyckel för en entitetsmängd är en minimal supernyckel är kandidatnyckel för course_id är kandidatnyckel för course Det kan finnas flera kandidatnycklar en av dessa väljs till att vara primärnyckel. 17 Nycklar för sambandsmängder För sambandsmängder bildar kombinationen av primärnycklarna för de deltagande entitetsmängderna en supernyckel för sambandsmängden. T.ex. (s_id, i_id) är en supernyckel för sambandsmängden advisor Det här betyder att ett par av entitetsmängder kan ha högst ett samband i en viss sambandsmängd. Om sambandet har attribut begränsar det här hur många attributvärden vi kan lagra för ett samband Crick Katz Srinivasan Kim Singh Einstein Man kan bara lagra ett par av (s_id, i_id) för varje par av studerande och lärare Om man behöver lagra flera attributvärden kan man använda flervärda attribut Tanaka Shankar Zhang Brown Peltier Kombinationen av de deltagande entitetsmängdernas primärnycklar är en supernyckel för sambandsmängden, men beroende på sambandets kardinalitet kan en av primärnycklarna för de deltagande entiteterna räcka 3 May June June June June May May Aoi Chavez 18 9

10 Primärnyckel för sambandsmängder Man måste beakta mappningskardinaliteten för sambandsmängden när man besluter vilka attribut som är kandidatnycklar. Primärnyckeln skall vara en minimal supernyckel, dvs. den skall inte innehålla några onödiga attribut Om sambandet är av typen ett-till-många (eller många-till-ett) räcker en av primärnycklarna till för att unikt identifiera sambandet T.ex. anta att sambandet advisor är av typen ett-till-många från till Dvs. en kan ha högst en handledare, men en lärare kan handleda många er Primärnyckeln för sambandet advisor blir då primärnyckeln i Tanaka Brown Zhang Shankar Chavez Student Crick Katz Singh Einstein Instructor 19 Redundanta attribut i entitetsmängder Antag att vi har identifierat att vi vill ha de två entitetsmängderna med attributen,, dept_ och department med attributen dept_, building och budget samt en sambandsmängd inst_dept mellan dessa som kopplar föreläsare till institutioner Attributet dept_ som är primärnyckel i department förekommer också i, men är onödigt om det finns ett samband mellan en föreläsare och en institution så säger ju det till vilken institution föreläsaren hör vi kan i så fall lämna bort attributet dept_ från Det är bättre att behandla kopplingen mellan föreläsare och institutioner som ett samband än som ett attribut som alla lärare har det kan ju också finnas lärare som inte hör till någon institution (t.ex. en inbjuden gäst från ett företag som håller en kurs) 20 10

11 E-R diagram advisor tot_cred Rektanglar representerar entitetsmängder. Överst i rektangeln anges namnet på entitetsmängden ( och i figuren) Efter det listas attributen för entitetsmängden. De attribut som hör till primärnyckeln är understreckade Romber representerar sambandsmängder. Sambandets namn skrivs inne i romben (advisor i figuren) Linjer länkar ihop de entitetsmängder som ingår i en sambandsmängd. I figuren har vi ett samband advisor mellan entitetsmängderna och 21 E-R diagram med sammansatta, flervärda och härledda attribut Sammansatta attribut (som ) representeras genom att med indentering lista de attribut som det består av attributet består av förnamn, mellannamnets initial och efternamn Flervärda attribut betecknas genom att skriva dem inneslutna av klamrar attributet phone_number är flervärt anger att en lärare kan ha flera telefonnummer Härledda attribut betecknas med en parentes efter attributets namn age är ett härlett attribut beskriver att det beräknas från andra attribut first_ middle_initial last_ address street street_number street_ apt_number city state zip { phone_number } date_of_birth age ( ) 22 11

12 Sambandsmängder med attribut Om en sambandsmängd har attribut anger vi de här i en rektangel och länkar dem till sambandsmängdens romb med en streckad linje advisor är ett samband mellan en lärare och en Sambandet advisor har ett attribut date: datum när läraren blev handledare för en date advisor tot_cred Om ett samband har flera attribut listas de alla i samma rektangel. Flervärda och sammansatta attribut behandlas på samma sätt som attribut för entiteter. 23 Roller Entitetsmängder i ett samband behöver inte vara distinkta En entitetsmängd kan delta i ett samband med sig själv T.ex. i ett samband som beskriver förkunskaper för kurser Ett samband prereq som anger att en viss kurs kräver en annan kurs som förkunskap Man anger då vilken roll entitetsmängden har i sambandet med ett märke (label) på linjen mellan entiteten och sambandet. Märkena anger hur entiteterna förhåller sig till varandra i sambandet Märket course_id anger att en kurs kräver en annan kurs som förkunskap Märket prereq_id anger att en annan kurs utgör ett förkunskapskrav för den här course course_id title credits course_id prereq_id prereq 24 12

13 Begänsningar på kardinalitet Vi uttrycker begränsningar på kardinalitet genom att rita antingen en riktad linje ( ), som betyder högst en, eller en oriktad linje ( ), som betyder många, mellan en sambandsmängd och en entitetsmängd. Exempel på samband: En associeras med högst en lärare via sambandet advisor en kan ha högst en handledare En associeras med högst en institution genom sambandet stud_dept en kan höra till högst en institution 25 En-till-en samband Exempel: en-till-en samband mellan lärare och er en lärare är associerad med högst en genom sambandet advisor en är associerad med högst en lärare genom sambandet advisor advisor tot_cred Ett mera realistiskt exempel skulle vara sambadet anställd mellan entiteterna befattning och lärare lärare anställd befattning befattnings benämning institution 26 13

14 En-till-många samband Om vi har ett en-till-många samband mellan och så associeras en lärare med flera (också möjligtvis noll) er via advisor dvs. en lärare kan handleda många er (noll, en eller flera) En associeras med högst en lärare via sambandet advisor dvs. en kan bara ha en (eller möjligtvis ingen) handledare Ett en-till-många samband mellan och är naturligtvis det samma som ett många-till-en samband mellan och advisor tot_cred 27 Många-till-en samband Om vi i stället skulle ha ett många-till-en samband mellan och så associeras en lärare med en (eller möjligtvis noll) er via advisor dvs. en lärare kan bara handleda en (eller möjligtvis ingen) En associeras med flera lärare via sambandet advisor dvs. en kan ha noll, en eller flera handledare advisor tot_cred Det här är ju inte en speciellt realistisk modell av ett universitet 28 14

15 Många-till-många samband En lärare associeras med flera (möjligen också 0) er via sambandet advisor En associeras med flera (möjligen också 0) lärare via advisor En kan ha flera (eller noll) handledare och en lärare kan handleda noll eller flera er advisor tot_cred När man designar en E-R modell av någon verksamhet måste man noga tänka igenom vilket av dessa alternativ som motsvarar verkligheten 29 Totalt och partiellt deltagande Totalt deltagande indikeras av dubbla linjer: varje entitet i entitetsmängden måste delta i åtminstone ett samband i sambandsmängden T.ex. deltagande av entiteterna i sambandet inst_dept är totalt! varje måste vara associerad med exakt en institution inst_dept department dept_ building budget Partiellt deltagande: En del entiteter behöver inte nödvändigtvis delta i något samband i sambandsmängden. Exempel: deltagande av i sambandet advisor är partiellt. advisor tot_cred 30 15

16 Alternativ notation för kardinalitetsbegränsningar Kardinalitetsbegränsningar kan också uttryckas explicit med en minimi- och maximigräns för hur många samband de olika entiteterna kan delta i I figuren anger gränserna 1..1 på linjen mellan och advisor att en måste vara associerad med exakt en via sambandet advisor Gränserna 0..* på linjen mellan och advisor anger att en lärare kan ha mellan noll och oändligt många er som den handleder Alternativt uttryckt: sambandet advisor är en-till-många från till 0..* advisor 1..1 tot_cred 31 E-R diagram med trefaldigt samband Samband behöver inte alltid vara binära, dvs. mellan två entitetsmängder Samband mellan tre entitetsmängder kallas på engelska ternary relationship (ternärt samband på svenska?) I exempeldiagrammet har vi ett samband proj_guide mellan tre olika entitetsmängder:, och project representerar att en är involverad i ett projekt under ledning av en lärare project... proj_guide tot_cred 32 16

17 Kardinalitetsbegränsningar på ternära samband Vi tillåter högst en pil ut från en ternär (eller en högre grads) samband för att beteckna en kardinalitetsbegränsning T.ex. en pil från sambandsmängden proj_guide till indikerar att en kan ha högst en ledare för ett projekt som den deltar i. Om man tillåter fler än en pil ut från ett ternärt samband så blir betydelsen av sambandet oklart kan tolkas på två olika sätt project... proj_guide tot_cred 33 Kardinalitetsbegränsningar på ternära samband (forts.) Om det finns fler än en pil finns det två olika sätt att definiera betydelsen. T.ex. ett ternärt samband R mellan A, B och C med pilar till B och C kunde betyda att varje A entitet är associerad med högst en kombination av entiteter från B och C eller att varje par av entiteter från (A, B) är associerat med en unik C entitet, och varje par (A, C) är associerat med en unik B entitet B A R C Båda alternativen har använts i olika formalismer För att undvika risken för sammanblandning bestämmer vi att det inte får finnas fler än en pil i ternära samband 34 17

18 Binära vs. icke-binära samband En del samband som ser ut att vara icke-binära kan bättre representeras med binära samband. T.ex. ett tre-vägs samband parents, som relaterar ett barn till sina två föräldrar kan hellre ersättas med två binära samband, father och mother! gör det enklare att lagra partiell information, t.ex. att bara modern är känd Det finns också en del samband som av naturen är icke-binära T.ex. ett samband works_on som beskriver att en anställd jobbar i en viss position i en avdelning Att ersätta det här med tre binära samband skulle dölja meningen med sambandet och vara svårare att förstå anställd job works_on avdelning 35 Svaga entitetsmängder En entitetsmängd som inte har en egen primärnyckel kallas en svag entitetsmängd (weak entity set). En svag entitetsmängd kan bara existera om det finns en identifierande entitetsmängd (identifying entity set) Man kan också säga att den identifierande entitetsmängden äger den svaga entitetsmängden En svag entitetsmängd måste vara relaterad till den identifierande entitetsmängden via en total, en-till-många sambandsmängd (från den identifierande till den svaga entitetsmängden) Ett identifierande samband beskrivs med en dubbelstreckad romb Diskriminatorn (eller den partiella nyckeln) för en svag entitetsmängd är den mängd av attribut som skiljer entiteterna från varandra i en svag entitetsmängd. Primärnyckeln för en svag entitetsmängd utgörs av primärnyckeln för den starka entitetsmängden som den svaga entitetsmängden beror på, plus diskriminatorn för den svaga entitetsmängden

19 Svaga entitetsmängder (forts.) Identifierande samband avbildas med en dubbelstreckad romb måste vara ett många-till-en samband från den svaga entitetens sida deltagande av den svaga entitetsmängden i det identifierande sambandet måste vara totalt (avbildat med en dubbel linje) Diskriminatorn i en svag entitetsmängd är understreckad med en streckad linje. course_id är primärnyckel för den identifierande entitetsmängden Primärnyckel för entitetsmängden section är kombinationen av (course_id, sec_id, semester, year) course course_id title credits sec_course section sec_id semester year 37 Svaga entitetsmängder (forts.) Identifierande samband skall inte ha några egna beskrivande attribut de kan istället placeras i den svaga entitetsmängden En svag entitetsmängd kan delta i andra samband än det med det identifierande entitetsmängden T.ex. kunde section också delta i ett samband med entiteten time_slot, för att representera information om när en viss kurs föreläses Man kan också ha en svag entitetsmängd med flera än en identifierande entitetsmängder en viss svag entitet identifieras då av en kombination av entiteter från de identifierande entitetsmängderna 38 19

20 Designfrågor Det är inte alltid lätt att avgöra vad som är det bästa sättet att modellera den verklighet som man försöker avbilda designprocessen är en iterativ process man börjar med en initial design och förfinar den efter hand Kan ibland vara svårt att avgöra om något skall representeras av en entitetsmängd, ett attribut eller en sambandsmängd. ofta finns det flera olika sätt att modellera någonting kan inte alltid säga att något sätt är rätt eller fel, utan en del av dessa beslut är designfrågor Hur man utformar modellen beror mycket på strukturen av det företag eller organisation som man modellerar, och på hurudan roll de saker som man modellerar har i verksamheten saker som är väsentliga för verksamheten får en mera framträdande roll i modellen 39 Entitetsmängd eller attribut för att representera en viss sak? Skall man använda en entitetsmängd eller ett attribut för att representera en viss sak? Exempel: skall man modellera telefonnummer som ett attribut hos eller skall telefoner vara en egen entitet? om man anser att det är viktigt att representera de telefoner som anställda har så kan man skapa en egen entitetsmängd för dessa, samt en sambandsmängd inst_phone som förbinder anställda med telefoner om telefoner inte har en så betydande roll så behövs inte en egen entitetsmängd för dem phone_number inst_phone phone phone_number location 40 20

21 Entitetsmängd eller sambandsmängd? Skall man använda en entitetsmängd eller en sambandsmängd för att representera en viss sak? En riktlinje för att avgöra om man skall använda entiteter eller samband är att man ofta använder entiteter för att beskriva objekt (eller saker) för vilka man vill lagra information använder ett samband för att beskriva en händelse som kan ske mellan entiteter Entitetsmängders namn är ofta substantiv,, course, classroom, Sambandsmängders namn är ofta härledda från verb som beskriver någon händelse teaches, takes, 41 Binär eller n-värd sambandsmängd? Skall man använda binära eller n-värda sambandsmängder? Det är alltid möjligt att ersätta en n-värd sambandsmängd med ett antal binära sambandsmängder Ibland visar en n-ary sambandsmängd tydligare att flera entiteter deltar i ett och samma samband. Exempel: en anställd som kan ha olika befattningar i olika avdelningar anställd skulle bli svårare att förstå meningen med det här om vi ersatte works_on med tre skilda sambandsmängder En del samband som ser ut att vara n-värda kan i själva verket bättre representeras som binära Exempel: man kunde tänka sig ett ternärt samband parent mellan tre personer, som relaterar ett barn till sina föräldrar men det är bättre att representera det här som två skilda samband, mother och father man kan då bättre representera personer för vilka vi saknar information om den ena föräldern jobb works_on avdelning 42 21

22 Placering av attribut i entiteter eller samband Var vi väljer att placera attribut (i en entitetsmängd eller en sambandsmängd) har betydelse för vad som kan representeras Antag att advisor är ett samband av typen ett-till-många från till En kan bara ha en handledare, men en lärare kan handleda många er Attributet date, som anger när läraren blev ens handledare, kan då placeras som ett attribut i vi kunde också lika väl lagra det här attributet i sambandet advisor, eftersom det är av typen ett-till-många Men om vi skulle välja att lagra date som ett attribut i så kunde vi inte lagra olika datum för olika er som den läraren handleder Crick Tanaka May Katz Shankar June Srinivasan Zhang June Kim Brown June Singh Aoi June Einstein Chavez May Peltier May E-R diagram för ett universitet course_dept department dept_ building budget inst_dept stud_dept advisor tot_cred teaches takes grade course_id course course_id title credits prereq prereq_id sec_course section sec_id semester year sec_class sec_time_slot time_slot time_slot_id { day start_time end_time } classroom building room_number capacity 44 22

23 Nu är det dags att designa ett E-R diagram för ett enkelt exempel: Ett bibliotek vid ett universitet som t.ex. ÅA:s bibliotek 45 Beskrivning av biblioteket Bibliotekets databas lagrar information om böcker, bibliotekskunder, lån och reserveringar av böcker. Böcker identifieras av ett ISBN. Övriga attribut är författarens namn (bestående av förnamn och efternamn) samt bokens titel. Kunder identifieras av ett unikt kundnummer. Övriga attribut är namn (förnamn och efternamn) samt kundens adress, bestående av gata, gatunummer, postnummer och stad. En bok kan finnas i många exemplar. Ett visst exemplar av en bok identifieras av ett exemplarnummer. För varje exemplar lagrar man också information om var den boken finns (Axelia, ASA, huvudbiblioteket, ) En kund kan låna ett visst exemplar av en bok. För varje lån lagras lånedatum och förfallodatum. En kund kan också reservera en bok som är utlånad. Kunder reserverar en viss bok, inte ett specifikt exemplar. För varje reservering lagras datum när den reserverats

24 Entiteter och samband Entiteter: Kunder Böcker Exemplar av en bok Samband Lån (mellan kund och exemplar) Reservering (mellan kund och bok) kund kundnr namn förnamn efternamn adress gata nr postnr stad ISBN namn förnamn efternamn titel Bok_exemplar (mellan en bok och ett exemplar av den boken) Det kan inte finnas ett exemplar om det inte finns en bok bok exemplar ex_nr plats Vad är sambandens kardinalitet? Lån : en bok lånas av en kund, och en kund kan låna många ex av en bok 1 N från kund till exemplar Reservering: En kund kan reservera många böcker, och en bok kan reserveras av många kunder N N Bok_exemplar: En bok kan finnas i många exemplar, men ett exemplar är alltid av en specifik bok 1 N från bok till exemplar Exemplar är en svag entitetsmängd som identifieras av bok 47 E-R diagram för biblioteket exemplar ex_nr plats lånedatum förfallodatum lån bok bok_ex ISBN namn förnamn efternamn titel reservering datum kund kundnr namn förnamn efternamn adress gata nr postnr stad 48 24

25 Översättning av E-R diagram till relationsschema Man kan översätta ett E-R diagram på ett systematiskt sätt till relationsscheman som representerar databasens struktur. En databas som beskrivs av ett E-R diagram representeras av en samling av scheman som beskriver samma databas. Man genererar ett schema för de entitetsmängder och sambandsmängder som finns i E-R diagrammet Scheman ges samma namn som den motsvarande entitetsmängden eller sambandsmängden i E-R diagrammet Scheman beskriver strukturen på de tabeller som används för att lagra information om entiteterna och sambanden i databasen Varje schema har ett antal kolumner med namn som är unika inom schemat Motsvarar vanligtvis attributen i E-R diagrammet 49 Att representera entitetsmängder som scheman En stark entitetsmängd översätts till ett schema med samma attribut som entitetsmängden. (,, tot_cred) Primärnyckel i schemat blir samma attribut som är primärnyckel i entitetsmängden tot_cred Schemat beskriver att information om -entiteter lagras i en tabell som har tre kolumner:, och tot_credit Efter att vi har satt in data i databasen kan tabellen vid någon tidpunkt ha t.ex. följande värden tot_credit Zhang Brandt Williams Brown

26 Svaga entitetsmängder som scheman I exemplet är section en svag entitetsmängd, som har den identifierande starka entitetsmängden course Beskriver att det inte kan existera någon entitet section utan att det finns en entitet course som den hör till. En svag entitetsmängd representeras av ett schema som innehåller attributen för den svaga entitetsmängden, samt primärnyckeln för den identifierande starka entitetsmängden. section (course_id, section_id, semester, year) Man skapar inget eget eget schema för sambandet mellan en identifierande och en svag entitetsmängd. course course_id title credits sec_course section sec_id semester year 51 Exempel E-R diagram: Vi får scheman course course_id title credits course (course_id, title, credits) sec_course section (course_id, section_id, semester, year) section sec_id semester year Databasen kan då t.ex. innehålla följande tabeller: course course_id title credits CS-190 Game design 4 CS-347 Databases 3 BIO-301 Genetics 4 BIO-101 Intro. to biology 3 section course_id section_id semester year CS Spring 2009 CS Fall 2009 BIO Summer 2010 BIO Summer

27 Sambandsmängder som scheman Sambandsmängder kan antingen representeras av ett eget schema, eller genom att i schemat för den ena entitetsmängden sätta in ett referensattribut till den andra entitetsmängden Vilket alternativ som används beror på typen av sambandet För N:N samband skapar man alltid ett eget schema För 1:N samband sätts ett referensattribut in i många-sidans schema! Referensattributet består av primärnyckeln för 1-sidans entitet För 1:1 samband sätts ett referensattribut in i den ena av de deltagande entiteternas scheman! Man kan välja i vilken av entiteterna man sätter referensattributet! Referensattributet är primärnyckeln för den andra entiteten För 1:1 samband kan man också slå ihop scheman för de två deltagande entiteterna till ett enda schema. 53 N:N sambandsmängder som scheman Många-till-många sambandsmängder representeras som ett eget schema som har som attribut primärnycklarna för de deltagande entitetsmängderna, samt eventuella beskrivande attribut för sambandsmängden. primärnycklarna för de deltagande entitetsmängderna blir främmande nycklar i sambandsmängdens schema Exempel: schema för sambandsmängden advisor, som relaterar entiteterna och med varandra advisor är här ett N:N samband, dvs. en lärare kan handleda många er och en kan ha många handledare Scheman: advisor (_id, _id ) (,, ) (,, tot_credit) advisor tot_cred 54 27

28 Exempel Vi får scheman advisor (_id, _id ) (,, ) (,, tot_credit) Databasens tabeller kan då vid någon tidpunkt tänkas se ut på följande sätt: tot_credit Katz Zhang Brandt Peltier Einstein Williams Brown 58 advisor _id _id :N sambandsmängder som scheman 1:N sambandstyper blir till ett schema med ett referensattribut i N-entitetstypens tabell De båda entitetstyperna representeras av var sitt schema I schemat för entiteten på N-sidan inkluderas primärnyckeln för entiteten på 1-sidan (som en främmande nyckel) Om sambandsmängden har egna attribut så inkluderas de också i schemat på N-sidan Exempel: Vi behöver inte skapa ett eget schema för sambandet inst_dept I stället sätts ett referensattribut dept_ till schemat för t department dept_ building budget inst_dept stud_dept advisor tot_cred 56 28

29 Exempel E-R diagram: totalt deltagande av i inst_dept inst_dept department dept_ building budget Vi får scheman (,, dept_, ) department (dept_, building, budget) dept_ Wu Finance Einstein Physics Katz Comp.Sci Brandt Comp.Sci department dept_ building budget Biology Watson Comp.Sci. ICT Finance Painter History Painter Physics Watson :N sambandsmängder med partiellt deltagande I exemplet var deltagandet av i sambandet inst_dept totalt dvs. alla lärare måste vara associerade med en institution Likaså är stud_dept ett totalt 1:N samband från till department alla er måste vara associerade med exakt en institution Om deltagande är partiellt kan det vara bättre att skapa en egen tabell för sambandet annars får vi null-värden i tabellerna för de entiteter som inte deltar i något samband t department dept_ building budget inst_dept stud_dept advisor tot_cred 58 29

30 Exempel Om vi istället skulle ha partiellt deltagande behöver inte alla er höra till en institution Om en stor mängd av entiteterna på N-sidan inte deltar i något samband med en entitet på 1-sidan så får vi null-värden för attributet dept_ i tabellerna I det fallet är det bättre att skapa en egen tabell för sambandet stud_dept department tot_cred stud_dept dept_ building budget tot_credit Zhang Peltier Williams Chavez Sanchez 38 stud_dept _id dept_ Comp.Sci Physics Finance 59 1:1 sambandsmängder som scheman Ett-till-ett sambandsmängder representeras som ett referensattribut i den ena sidans schema Man skapar inget eget schema för 1:1 samband De båda entitetstyperna representeras med var sitt schema Välj en av de deltagande entitetsmängderna och sätt till primärnyckeln för den andra entitetsmängden som en främmande nyckel Eventuella attribut för sambandet sätts till i samma schema Man väljer att placera referensattributet i det av de två scheman som har ett mera fullständigt deltagande i sambandet Leder till färre null-värden i tabellerna Om ett av deltagandet i sambandet är totalt så placeras referensattributet i schemat för den entiteten Man får då inga null-värden i relationstabellerna Om deltagande för båda entitetsmängderna i sambandet är totalt så kan vi kombinera de båda entitetstyperna till ett enda schema Varje entitet av den ena typen motsvaras av exakt en entitet av den andra typen 60 30

31 Exempel Exempel: antag vi har entiteter för personer och rum de sitter i Varje person har ett rum, och varje rum används av högst en person person first last person_room Vi kan då sätta in room_nr som ett referensattribut i schemat för person person (, first, last, room_nr ) room (room_nr, building, floor) Alternativt kan vi sätta in som ett referensattribut i room person (, first, last) room (room_nr, building, floor, ) room room_nr building floor 61 Sammansatta och flervärda attribut Sammansatta attribut blir till ett schema som består av attributets enkla komponenter Plattar ut den hierarkiska strukturen i sammansatta attribut Endast attributen på löv-nivå tas med i schemat Exempel: schema för entitetsmängden (, first_, middle_initial, last_, street_number, street_, apt_number, city, state, zip_code, date_of_birth) För flervärda attribut skapas ett eget schema Består av entitetstypens primärnyckel samt det flervärda attributet inst_phone (, phone_number) Lagrar alla telefonnummer för en viss föreläsare Härledda attribut skall inte representeras i schemat De kan beräknas utgående från andra entiteter och samband first_ middle_initial last_ address street street_number street_ apt_number city state zip { phone_number } date_of_birth age ( ) 62 31

32 Ternära sambandstyper som schema Ternära sambandsmängder (eller sambandsmängder av högre grad) representeras av ett eget schema Inkluderar primärnyckeln från varje av de deltagande entitetstyperna, samt eventuella egna attribut för sambandet Exempel: sambandet proj_guide beskriver att en arbetar i ett projekt under ledning av en (,, tot_cred) (,, ) project (proj_number,, ) proj_guide (stud_, _, proj_number) project... proj_guide tot_cred 63 Exempel: ett bibliotek Vi genererar relationsscheman för E-R diagrammet över universitetsbiblioteket som vi använde som exempel exemplar ex_nr plats lånedatum förfallodatum lån bok bok_ex ISBN namn förnamn efternamn titel reservering datum kund kundnr namn förnamn efternamn adress gata nr postnr stad 64 32

33 Relationsscheman för biblioteket Entitetsmängden bok är en vanlig (starkt) entitetsmängd Får ett schema med de samma enkla attributen som i E-R diagrammet:! Bok (ISBN, förnamn, efternamn, titel) kund är också en vanlig (starkt) entitetsmängd Får ett schema som innehåller de enkla attributen! Kund (kundnr, förnamn, efternamn, gata, nr, postnr, stad) Schemat för den svaga entitetsmängden exemplar skall innehålla primärnyckeln för den identifierande entiteten (dvs. ISBN ), diskriminanten ex_nr, samt attributet plats Exemplar (ISBN, ex_nr, plats) bok ISBN namn förnamn efternamn titel kund kundnr namn förnamn efternamn adress gata nr postnr stad exemplar ex_nr plats bok_ex bok ISBN namn förnamn efternamn titel 65 Relationsscheman för biblioteket Sambandsmängden lån mellan exemplar och kund är av typen N:1 (från exemplar till kund ) och kan representeras genom att sätta in ett referensattribut till kund i schemat för exemplar Exemplar (ISBN, ex_nr, plats, kundnr, lånedatum, förfallodatum) exemplar ex_nr plats lånedatum förfallodatum lån kund kundnr namn förnamn efternamn adress gata nr postnr stad Sambandsmängden reservering är av typen N:N och representeras med en egen tabell som innehåller primärnycklarna för de deltagande entiteterna, samt det egna attributet Reservering (ISBN, kundnr, datum) reservering datum bok ISBN namn förnamn efternamn titel 66 33

34 Exempel på relationstabeller Vid en viss tidpunkt kan relationstabellerna i databasen ha följande innehåll Reservering Bok ISBN namn titel ISBN kundnr datum A.Silberschatz E.Hemmingway Old man and the sea K-O.Knausgård Min kamp 1 Kund kundnr förnamn efternamn gata gatunr postnr stad Mats Aspnäs Backgatan Åbo Annamari Soini Tavastgatan Åbo Eija Karsten Sydmovägen Pargas Exemplar ISBN ex_nr plats kundnr lånedatum förfallodatum ASA Axelia Axelia ASA Arken Sambandet lån som en egen tabell N:1 sambandet lån mellan exemplar och kund representerades genom att sätta in ett referensattribut till kund i schemat för exemplar Exemplar (ISBN, ex_nr, plats, kundnr, lånedatum, förfallodatum) De flesta böcker i ett bibliotek är inte utlånade Deltagandet av exemplar i lån är mycket lågt Vi får en massa null-värden på de attribut som lagrar information om vem som lånat en bok och utlåningstiden Därför är det i det här fallet bättre att skapa ett eget schema för sambandet lån Bok (ISBN, förnamn, efternamn, titel) Exemplar (ISBN, ex_nr, plats) Kund (kundnr, förnamn, efternamn, gata, nr, postnr, stad) Lån (ISBN, ex_nr, kundnr, lånedatum, förfallodatum) Reservering (ISBN, kundnr, datum) Notera att kundnr inte hör till primärnyckeln i lån Primärnyckeln skall vara minimal 68 34

35 Exempel på relationstabeller Bok Vi undviker null-värden i exemplar-tabellen genom att skapa en egen tabell för lån ISBN författare titel A.Silberschatz E.Hemmingway Old man and the sea K-O.Knausgård Min kamp 1 Exemplar ISBN ex_nr plats ASA Axelia Axelia ASA Arken Kund kundnr förnamn efternamn gata gatunr postnr stad Mats Aspnäs Backgatan Åbo Annamari Soini Tavastgatan Åbo Eija Karsten Sydmovägen Pargas Lån Reservering ISBN ex_nr kundnr lånedatum förfallo-datum ISBN kundnr datum Utökade E-R egenskaper: Specialisering Top-down design process; vi identifierar distinkta subgrupper i en entitetsmängd subgrupper som skiljer sig från andra entiteter i mängden. Dessa subgrupper blir lägre-nivås entitetsmängder som har attribut eller deltar i samband som inte gäller för entitetsmängderna på den högre nivån. Beskrivs av en triangel-komponent med beteckningen ISA (t.ex. en is a person). Attributnedärvning entitetsmängder på en lägre nivå ärver alla attribut och deltagande i samband av entitetsmängder på högre nivå till vilka det är länkat. person ISA employee 70 35

36 Exempel på specialisering En person kan antingen vara en anställd (employee) eller en En anställd (employee) kan antingen vara en lärare () eller en sekreterare person address Alla personer har de tre attributen, och address En anställd har dessutom ett attribut En har dessutom ett attribut tot_credits rank employee secretary hours_per_week tot_credits Entitetsmängden har de 5 attributen,, address, och rank 71 Utökade ER egenskaper: Generalisering En bottom-up design process kombinera ett antal entitetsmängder som delar samma egenskaper till en högre-nivås entitetsmängd. Specialisering och generalisering är direkta inverser av varandra; de representeras i E-R diagram på samma sätt. Termerna specialisering och generalisering används båda för att beteckna samma sak. Kan ha flera specialiseringar av en entitetsmängd baserat på olika egenskaper. T.ex. permanent_employee och temporary_employee, tillsammans med och secretary Varje entitet av typen employee skulle vara antingen en permanent_employee eller temporary_employee, också antingen vara eller secretary Sambandet ISA kallas också ett superklass - subklass samband

37 Att representera specialisering med scheman Metod 1: Gör ett schema för entiteten på högre nivå Gör ett schema för varje entitetsmängd på lägre nivå och inkludera primärnyckeln för entitetsmängden på högre nivå, samt lokala attribut Exempel: person (,, address) employee (, ) (, tot_credit) employee person address tot_credits Nackdel för att få information om en employee måste man accessera två relationer, en som motsvarar låg-nivå schemat employee och en som motsvarar hög-nivå schemat person 73 Att representera specialisering som scheman (forts.) Metod 2: Gör ett schema för varje entitetsmängd med alla lokala och ärvda attribut person = (,, address) employee (,, address, ) (,, address, tot_credit) Om specialiseringen är total behöver schemat för den generaliserade entitetsmängden (person) inte laga information total betyder att varje entitet på högre nivå också måste höra till en av entitetsmängderna på lägre nivå kan definieras som en vy relation (view) som innehåller unionen av de specialiserade relationerna explicita scheman kan fortfarande behövas för begränsningar på främmande nycklar Nackdel:, address kan lagras redundant för de som är både er och anställda 74 37

38 Sammanfattning av symboler i E-R notationen E R R entity set relationship set identifying relationship set for weak entity set E A1 A2 A2.1 A2.2 {A3} A4() E A1 a ributes: simple (A1), composite (A2) and multivalued (A3) derived (A4) primary key R E total participation of entity set in relationship E A1 discriminating a ribute of weak entity set 75 Sammanfattning av symboler (forts.) R many-to-many relationship R many-to-one relationship R one-to-one relationship R l..h E cardinality limits R role E role indicator E2 E1 E3 ISA: generalization or specialization E1 total total (disjoint) generalization E1 disjoint generalization E2 E3 E2 E

39 Alternativ E-R notation Crows feet notation många-till-många E1 R E2 en-till-en E1 R E2 många-till-en E1 R E2 totalt (E1) och partiellt (E2) deltagande E1 R E

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

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

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

E-R-modellen, E-R-diagram 6-14. E-R-diagram. representerar entitetsmängder E-R-modellen, E-R-diagram 6-14 Komponenter Rektanglar Ellipser Ruter Linjer E-R-diagram representerar entitetsmängder repr. attribut repr. relationskapsmängder länkar attribut till entitetsmängder och

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

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

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

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

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

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

Föreläsning 3 Dagens föreläsning går igenom Databasbaserad publicering Föreläsning 3 1 Föreläsning 3 Dagens föreläsning går igenom E/R-modellen & Läs om E/R-diagram i kapitel 2-3 i boken "Databasteknik" eller motsvarande avsnitt på http://www.databasteknik.se/webbkursen/er/index.html

Läs mer

INTRODUKTION TILL ER ENTITY-RELATIONSHIP

INTRODUKTION TILL ER ENTITY-RELATIONSHIP INTRODUKTION TILL ER ENTITY-RELATIONSHIP Mahmud Al Hakim mahmud@webacademy.se 1 REFERENS TILL DETTA MATERIAL: WWW.DATABASTEKNIK.SE/WEBBKURSEN 2 1 KONCEPTUELLA DATAMODELLER Om man ska skapa en databas som

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

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

Relationsalgebra. Varför behöver jag lära mig relationsalgebra?!

Relationsalgebra. Varför behöver jag lära mig relationsalgebra?! Relationsalgebra 1 Varför behöver jag lära mig relationsalgebra?! Relationsmodellen är den datamodell som används i de flesta moderna databassystemen Data beskrivs och lagras som relationer, dvs. som ett

Läs mer

ER-Diagram. Databasutveckling Diagram

ER-Diagram. Databasutveckling Diagram Databasutveckling Diagram Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se ER-Diagram En vanlig konceptuell datamodell är den så kallade ER-modellen. "ER" står för "Entity-Relationship",

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

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

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

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella Relationsmodellen 2-1 Relationsmodellen Relations modellen är idag den mest änvända datamodellen för kommersiella applikationer. Relationsdatabasstruktur En relationsdatabas består av en samling tabeller,

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

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

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

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

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

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

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

! 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

Reducering till relationsscheman

Reducering till relationsscheman E-R-modellen, Reducering till rel.scheman 6-26 Reducering till relationsscheman En databas som överensstämmer med ett E-R-databasschema kan representeras som en mängd relationsscheman ty E-R-modellen och

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

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

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

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

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

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

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

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

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

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

Databasteknik för D1 m fl

Databasteknik för D1 m fl 1 of 5 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Databasteknik för D1 m fl tisdag 10 januari 2017 Gäller som tentamen

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

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

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

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

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

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

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

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget Idag Varför modellera? Varför modellera? Konceptuell modell sverktyg Objektklasser Sambandsklasser Knepiga attribut sprocessen I all ingenjörsverksamhet där man hanterar komplicerade system behöver man

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

Introduktion. Byggstenar TDBA63 2005-11-22

Introduktion. Byggstenar TDBA63 2005-11-22 Introduktion UML står för Unified Modeling Language. Det är tänkt att fungera som hjälpmedel vid modellering av alla tänkbara typer av utvecklingsarbeten, inte bara inom dataomdrådet. Det största värdet

Läs mer

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

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen Idag Modellering Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen DD1370 (Föreläsning 3) Databasteknik och informationssystem

Läs mer

Ett annat exempel på en E-R modell. En bank. Beskrivning av banken

Ett annat exempel på en E-R modell. En bank. Beskrivning av banken Ett annat exempel på en E-R modell En bank 1 Beskrivning av banken En bankkedja har r på en mängd olika orter i Finland För varje r lagras dess -kod, rets och För er lagras nummer, och En måste ha minst

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

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

LDAP i KK2.1. Innehåll. Sammanställt av Roland Hedberg Version: 1.0 Datum: 2006 10 31

LDAP i KK2.1. Innehåll. Sammanställt av Roland Hedberg Version: 1.0 Datum: 2006 10 31 2006 10 31 LDAP i KK2.1 Sammanställt av Roland Hedberg Version: 1.0 Datum: 2006 10 31 Innehåll LDAP i KK2.1 1 Introduktion...1 2 Organisation...2 2.1 Placering i LDAP katalogen...2 2.2 Översättning mellan

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

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

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget Idag Varför modellera? Varför modellera? Konceptuell modell sverktyg Objektklasser Sambandsklasser Knepiga attribut sprocessen I all ingenjörsverksamhet där man hanterar komplicerade system behöver man

Läs mer

TDDI 60 Tekniska databaser

TDDI 60 Tekniska databaser Lena Strömbäck 2004-08-19 Skriftlig tentamen i kursen TDDI 60 Tekniska databaser Datum: 2004-08-19 Tid: 14-18 Lokal: TER1 Hjälpmedel: Engelsk ordlista tillåten ej elektronisk Miniräknare ej programmerbar

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

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

Föreläsning 4 Dagens föreläsning går igenom Databasbaserad publicering Föreläsning 4 1 Föreläsning 4 Dagens föreläsning går igenom E/R-modellen, fortsättning Frågor till flera tabeller samtidigt Många-till-många-relationer Läs om E/R-diagram i kapitel

Läs mer

GIS, databasteknik och kartografi. Databasmodellering

GIS, databasteknik och kartografi. Databasmodellering Databasmodellering 1. När vi studerar verkligheten för att beskriva (en del av) den i ett system (inte bara datorer), måste vi göra en modell. 2. Modelleringsverktyget ska ha egenskaper som gör att vi:

Läs mer

Objektorienterad Systemutveckling 1 (7,5 hp)

Objektorienterad Systemutveckling 1 (7,5 hp) [ sida 1 ] Objektorienterad Systemutveckling 1 (7,5 hp) Provmoment: Ladokkod: Tentamen ges för: Tentamen (5 hp) 21OB1B ASYST13h, NGIMI13h, ADAEK13h Datum och tid: 2015-01-14, kl. 09.00 13.00 Hjälpmedel:

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

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

Databasteori. Övningar

Databasteori. Övningar Databasteori Övningar Erik Prytz Uppdaterad november 2014, november 2015 Eva L. Ragnemalm November 2009, uppdaterad april 2010 Kapitel 1: ER- modellering Skapa ER- diagram för nedanstående övningar (läs

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

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

Objektorientering Klasser

Objektorientering Klasser Objektorientering Klasser VSA110 1 OOA I analysen upprättas: Klassdiagram Objektdiagram Tillståndsdiagram Scenario Användningsfall Sekvensdiagram Användardialoger (skärmbilder) 2 Analys - en översikt Vi

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

Objektorientering Användning

Objektorientering Användning Objektorientering Användning Samt repetition av klasser Suzana Ramadani 1 Repetition Objektorientering bygger på Abstraktion Hierarkisk strukturering Inkapsling Klassificering Generalisering specialisering

Läs mer

Nationell informationsstruktur 2015:1 Bilaga 1: Läsanvisning till modellerna

Nationell informationsstruktur 2015:1 Bilaga 1: Läsanvisning till modellerna Nationell informationsstruktur 2015:1 Bilaga 1: Läsanvisning till modellerna Innehåll Inledning... 3 Ord och uttryck... 4 Processmodeller... 5 Vad är en processmodell?... 5 Hur används processmodeller

Läs mer

Mitthögskolan ITM Telefon 063-16 53 00. Access. Laborationskompendium för grunderna i databasen Microsoft Access. Detta exemplar tillhör:

Mitthögskolan ITM Telefon 063-16 53 00. Access. Laborationskompendium för grunderna i databasen Microsoft Access. Detta exemplar tillhör: Mitthögskolan ITM Telefon 063-16 53 00 Access Laborationskompendium för grunderna i databasen Microsoft Access Detta exemplar tillhör: HT 2003 Innehållsförteckning Tema...1 Databasmiljön...2 Tabeller...2

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

Riktlinjer för. INFORMATIONSMODELLER I Sparx EA 1.0

Riktlinjer för. INFORMATIONSMODELLER I Sparx EA 1.0 Riktlinjer för INFORMATIONSMODELLER I Sparx EA.0 Målgrupp och syfte med dokumentet Denna manual fungerar som stöd till dig som arbetar med informationsarkitektur och ska dokumentera informationsmodellering

Läs mer

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

TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18 Institutionen för datavetenskap Linköpings universitet TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18 Jourhavande lärare: Pawel Pietrzak (013/28 24 10, 013/21 01 17) Poäng: Tentan

Läs mer

INFORMATIONSMODELLERING

INFORMATIONSMODELLERING Uppdaterad 065 Petronella Enström Utbyte av ordet objekt och entitet till informationsobjekt Nivå 6 (sid 5-) En introduktion i Sparx EA INFORMATIONSMODELLERING Välj var diagrammet ska finnas. För att skapa

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

Funktionella beroenden - teori

Funktionella beroenden - teori Relationell databasdesign, FB Teori 7-12 Funktionella beroenden - teori Vid utformning av databassystem är det av största vikt att man kan resonera systematiskt om funktionella beroenden bl.a. för att

Läs mer

Objektorientering. Grunderna i OO

Objektorientering. Grunderna i OO Objektorientering Grunderna i OO 1 Systemutveckling Tre systemnivåer: Verksamhet Informationssystem Datasystem Huvuduppgifterna i ett systemutvecklingsarbete: Verksamhetsanalys Informationsbehovsanalys

Läs mer

En introduktion i Sparx EA INFORMATIONSMODELLERING

En introduktion i Sparx EA INFORMATIONSMODELLERING En introduktion i Sparx EA INFORMATIONSMODELLERING Välj var diagrammet ska finnas. För att skapa ett diagram så väljer man mapp (package) där du vill skapa sina informationsmodeller.. Klicka på ikonen

Läs mer

Kvalitetstänkande. Utgångsläge Samtliga ER-diagram har överförts till scheman

Kvalitetstänkande. Utgångsläge Samtliga ER-diagram har överförts till scheman Kvalitetstänkande Utgångsläge Samtliga ER-diagram har överförts till scheman Förbättra kvaliteten på relationsscheman Normalformler ger dugligare nycklar Hitta funktionella beroenden med hjälp av slutsatsdragning

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

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

D0004N 2008-11-24 Databaser I. Greenline. Petter Hedlin / epeehi-4 Rikard Stenmark / rikste-8 Markus Almberg / maralm-5 D0004N 2008-11-24 Databaser I Greenline Petter Hedlin / epeehi-4 Rikard Stenmark / rikste-8 Markus Almberg / maralm-5 Inledning Det här är en mindre rapport om datamodellering. Vi blev tilldelade en kravspecifikation

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

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

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

TDDI60 Tekniska databaser

TDDI60 Tekniska databaser Lena Strömbäck 2006-10-13 Skriftlig tentamen i kursen TDDI60 Tekniska databaser Datum: 2006-10-13 Tid: 8-12 Lokal: T2, U3 Hjälpmedel: Engelsk ordlista tillåten ej elektronisk Poängränser: Tentamen består

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

Föreläsning 15: Repetition DVGA02

Föreläsning 15: Repetition DVGA02 Föreläsning 15: Repetition DVGA02 Vad handlar kursen om? Kursen kan i grova drag delas upp i tre delar: 1. Objekt-orienterad programmering 2. Grafiska användargränssnitt 3. Datastrukturer Dessutom genomsyras

Läs mer

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

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA... INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...6 2 (6) 2D1954 Programutvecklingsprojekt vt 2003 Installation

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

I kursen i endimensionell analys är mängden av reella tal (eng. real number), R, fundamental.

I kursen i endimensionell analys är mängden av reella tal (eng. real number), R, fundamental. Lunds tekniska högskola Datavetenskap Lennart ndersson Föreläsningsanteckningar EDF10 4 Mängder 4.1 Motivering Mängden är den mest grundläggande diskreta strukturen. Nästan alla matematiska begrepp går

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

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

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

TENTAMEN TDDB77 Databaser och Bioinformatik 22 augusti 2006, kl 14-18 Institutionen för datavetenskap Linköpings universitet TETAME TDDB77 Databaser och Bioinformatik 22 augusti 2006, kl 14-18 Jourhavande lärare: Lena Strömbäck (Patrick Lambrix, 0703-492066) Poäng: Tentan

Läs mer

Tal i bråkform. Kapitlet behandlar. Att förstå tal

Tal i bråkform. Kapitlet behandlar. Att förstå tal Tal i bråkform Kapitlet behandlar Test Användning av hälften och fjärdedel 2 Representation i bråkform av del av antal och av del av helhet 3, Bråkform i vardagssituationer Stambråk, bråkuttryck med 1

Läs mer

Objektorienterad analys och design

Objektorienterad analys och design Objektorienterad analys och design Objektorienterad analys och design 1 Dagens föreläsning Första delen, innan rasten: Motivation och bakgrund Analys Funktioner Andra delen, efter rasten: Objektorienterade

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

Informationsmodellering och e-infrastrukturer

Informationsmodellering och e-infrastrukturer Informationsmodellering och e-infrastrukturer Semiotik Sign = Tecken Semiotik = Teckenlära Tecken är representationer Tecken är intentionella Tecken förmedlar information Figure 3.1: Levels of semiotics

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

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