Entity-Relationship-modellen
|
|
- Jonas Isaksson
- för 8 år sedan
- Visningar:
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! 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
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
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
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
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
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
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
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
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
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
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,
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
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
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
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,
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
(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
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
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",
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
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
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
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
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
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.
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,
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
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,
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,
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
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
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
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
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
! 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!
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
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,
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
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,
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
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
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
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
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. 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: 2017-11-02 Tid: 14:00-19:00 Hjälpmedel: Inga hjälpmedel är tillåtna
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
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
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,
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
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:
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
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
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
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
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:
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:
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
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
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
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
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
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ö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ösningar till tentamen i EDAF75
Lösningar till tentamen i EDAF75 4 april 2018 Lösning 1 (a) Här är ett förslag till E/R-modell: Det finns flera rimliga alternativa sätt att modellera, så du behöver inte vara orolig bara för att du inte
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
Objektorientering Användning
Objektorientering Användning Samt repetition av klasser Suzana Ramadani 1 Repetition Objektorientering bygger på Abstraktion Hierarkisk strukturering Inkapsling Klassificering Generalisering specialisering
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
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
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
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
16/11/14. Databasteknik och informationssystem DD1370. Information. Dagens föreläsning: ERmodeller Dagens föreläsning. Påminnelse: Kursens mål
6//4 Information Vi har ingen kursbok Kanske ändå användbart med sammanhängande text inför Seminarieuppgift och Lab? Utkast: Databasteknik och informationssystem DD370 - Introduktion till SQL (2 sidor)
Konceptuell modellering. Formalisering, automatisering och effektivisering
Konceptuell modellering. Formalisering, automatisering och effektivisering LUSP. HT2012. Föreläsning 7. Övning 7 Erik Perjons perjons@dsv.su.se Modeller och modellering 1 Verksamheten två nivåer Människor
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
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
Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng
Tentamen ISGB01, ISGB24 Databasdesign 7,5 Poäng Datum: 2016-09-30 Tid: 08.15-13.15 Lärare: Peter Bellström, Katarina Groth, Johan Högberg Tentamen är på 40 poäng. Gränsen för Godkänd (G) är 20 poäng. Gränsen
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
Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.
Databaser och Affärssystem Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng Tentamen 41F08A Itek14 TentamensKod: Tentamensdatum: Tid: 2015-10-29 14-17 (3 timmar) Hjälpmedel: Inga hjälpmedel är
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
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
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
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
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
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
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
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