Presentation laddar. Vänta.

Presentation laddar. Vänta.

ITK3:DB/EIT:DB ht2008 nikos dimitrakas ITK3:DB/EIT:DB Databasmetodik nikos dimitrakas Rum 6626 1 Kapitel 1, 2, 3 och 13.

Liknande presentationer


En presentation över ämnet: "ITK3:DB/EIT:DB ht2008 nikos dimitrakas ITK3:DB/EIT:DB Databasmetodik nikos dimitrakas Rum 6626 1 Kapitel 1, 2, 3 och 13."— Presentationens avskrift:

1 ITK3:DB/EIT:DB ht2008 nikos dimitrakas ITK3:DB/EIT:DB Databasmetodik nikos dimitrakas Rum Kapitel 1, 2, 3 och 13

2 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Innehåll Introduktion till databasmetodik Relationsmodellen Normalisering Relationsalgebra Databasmodellering SQL Databashanteringssystem Embedded SQL i Java Trender och fördjupning 2

3 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Upplägg Föreläsningar Lektioner Introduktioner Labbar Quizzar Projektarbete –Redovisningar –Inlämning –Handledning Tenta Närvarouppföljning! 3

4 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Material Bok –Database Systems, Connoly/Begg, upplaga 3 / 4 Föreläsningsbilder Delkursanvisningar Introduction to Microsoft Access MySQL Essentials Annat material –Exempeldatabaser –Gamla tentor –Lösningsförslag till lektioner –Extra övningar 4

5 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Examination Examination 1 (3 hp) F-A eller U-VG –Tenta Examination 2 (4,5 hp) –Projektuppgift –2 Labbar –3 Quizzar ”Examination” 3 (0 hp) –Utvärdering 5

6 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Övrigt Läs igenom delkursanvisningarna –Förslag på arbetsgång –Handledning –Projektarbetet –Gruppindelning (projektet) »3 per grupp »Anmäl er i Daisy –Datormiljö »FirstClass (EITKDB) »Daisy »Rational Rose »Modellator »Access »MySQL »Java –Och mycket annat! 6

7 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Databaser Vad är data? –Värden Vad är en databas? –En gemensam samling av logiskt relaterade data för att möta en verksamhets informationsbehov –A shared collection of logically related data, and a description of this data, designed to meet the information needs of an organization 7

8 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Databasegenskaper Avspeglar en minivärld, "Universe of Discourse" (UoD) En databas är en logiskt sammanhängande samling data med viss inbyggd betydelse –Data Dictionary / Metadata / Modell En databas är skapad för ett visst syfte och för en viss användargrupp (eller applikationer) 8

9 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Filbaserade system Data lagras i filer Varje applikation använder sina filer Problem: –Redundans –Svåråtkomliga data –Databeroende: program är beroende av filernas struktur –Oflexibelt –Kompatibilitetsproblem –En användare i taget 9

10 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Mål / Fördelar (med databaser) Gemensam resurs Tillgänglighet Centraliserad kontroll Aktualitet Ej redundans (= konsekvens) Flexibilitet - utbyggbarhet Generella säkerhetssystem Dataoberoende 10

11 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Dataoberoende Data oberoende av program 3-nivåer (ANSI-SPARK) –Extern »Användarnas vyer –Konceptuell »Datamodellen för hela organisationen –Intern »Fysisk lagring av data 11

12 ITK3:DB/EIT:DB ht2008 nikos dimitrakas ANSI-SPARK - dataoberoenden 12

13 ITK3:DB/EIT:DB ht2008 nikos dimitrakas ANSI-SPARK - dataoberoenden Logiskt dataoberoende –Ändringar kan göras i det konceptuella schemat, utan att externa scheman eller applikationer behöver ändras Fysiskt dataoberoende –Ändringar kan göras i det interna schemat, utan att det konceptuella schemat behöver ändras 13

14 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Databashanteringssystem DBHS (DataBasHanteringsSystem) DBMS (DataBase Management System) Definition av databasschemat (modellen) –Regler för integritet Mellan användaren (applikationen) och data Behörighetskontroller Konsekvens och samtidighet Återställning 14

15 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Roller Dataadministratör (DA) –Dataadministratören (DA) har till uppgift att ansvara för organisationens data och innebär planering, utveckling och underhåll av standarder, policy och rutiner, samt konceptuell och logisk databasutformning. –DA är involverad i de tidiga etapperna av en databas livscykel Databasadministratör (DBA) –Databasadministratören är ansvarig för implementationen och driften av databasen, inklusive säkerhet (back-up, återställning), behörighet, integritet och prestanda. 15

16 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Roller Databasdesigner –Analyserar verksamheten och modellerar en databas utifrån verksamhetens databehov (konceptuell och logisk design) (DA) –Analyserar databasens användning och anpassar den för bättre prestanda, säkerhet och integritet (fysisk design) (DBA) Applikationsutvecklare –Analyserar processer i organisationen och utvecklar användarapplikationer som använder sig av databasen för att stödja processerna och aktörerna (Slut)Användare –Använder databasen via en applikation, oftast omedvetna om att en databas existerar –Använder databasen direkt via DBHS (DA, DBA, expertanvändare) 16

17 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Databasevolutionen Filbaserade system Första generations DBHS –Hierarkiska modellen –Nätverksmodellen –CODASYL / DBTG –DDL & DML –1960-talet Andra generations DBHS –Relationsmodellen –Codd –SQL –1970-talet Tredje generations DBHS –Objektorienterade –Objekt-relations –Slutet på 1980-talet 17

18 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Risker / Nackdelar Komplexitet Kostnad Centralisering –Effekter av systemkrasch –Prestanda 18

19 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Relationsmodellen Relation (eng. relation, INTE relationship) –Tabell Data struktureras i form av relationer/tabeller –Rader/tupler (rows/tuples) –Kolumner/attribut (columns/attributes) –Domäner/värdeförråd (domains) 19

20 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Domäner & NULL Domän –Värdeförråd –Datatyp eller mer begränsad –Kontroll NULL –Ett icke-värde –NULL är inte noll –NULL är inte en tom sträng –NULL är inte större eller mindre än ett annat värde. Kan inte jämföras. –Kan betyda att »Värdet finns inte (ännu) »Värdet är inte tillämpligt »Värdet kan inte visas (t ex pga låg behörighet) 20

21 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Terminologi – Relation/Tabell 21 ISBNTitelÅrFörlagPris Prins Annorlunda2005Brombergs Svensk Maffia2007Brombergs De välvilliga2007Bonniers140 Bok Tabellnamnet Kolumnnamn Kolumn Rad

22 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Relationsmodellen - Krav Inga dubblettrader (inom relationen) Ordningen mellan raderna är betydelselös Ordningen mellan attributen (vänster-höger) är oväsentlig Varje attribut har ett unikt namn (inom relationen) Inga multipla värden (endast atomära) Ett attribut hämtar värden från en domän 22

23 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Terminologi – Relation/Tabell Intension –Tabellens beskrivning, strukturens beskrivning, vilka kolumner, vilka domäner, etc. Extension (state) –Tabellens innehåll (raderna) Grad –Antal kolumner Kardinalitet –Antal rader 23

24 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Terminologi – Nycklar Supernyckel (superkey) –Ett eller flera attribut (kolumner) som identifierar raderna unikt. Kandidatnyckel (candidate key) –En supernyckel som inte innehåller onödiga kolumner. –Minimalitet (irreducibility) Primärnyckel (primary key) –Den kandidatnyckel som vi väljer att använda för att identifiera raderna unikt. Alternativnyckel (alternate key) –Kandidatnycklar som inte valdes till primärnyckel. Främmande nyckel (foreign key) –En eller flera kolumner i en tabell som matchar en kandidatnyckel i någon tabell (oftast en annan tabell, men det kan vara samma). –Möjliggör att länka tabeller genom att referera från en tabell till en annan. 24

25 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Nycklar - exempel 25 ISBNTitelÅrFörlagPris Prins Annorlunda2005Brombergs Svensk Maffia2007Brombergs De välvilliga2007Bonniers140 Bok Supernyckel? Kandidatnyckel? Primärnyckel? Alternativnyckel?

26 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Nycklar - exempel 26 ISBNTitelÅrFörlagPris Prins Annorlunda2005Brombergs Svensk Maffia2007Brombergs De välvilliga2007Bonniers140 Bok Främmande nyckel? NamnWebbplatsKontaktperson Brombergswww.blombergs.seMarie Lind Bonnierswww.bonniers.seKarl Sigg Green Planetwww.greenplanet.netLisa Brown Förlag

27 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Terminologi – Regler/Constraints Regler för tillåtna värden –NOT NULL –UNIQUE –Domän –Verksamhetsregler –Kandidatnycklar –Främmande nycklar (referensintegritet) Entitetsintegritet (entity integrity) –Varje rad är unik (PN är unik och kan användas för att identifiera varje rad) –PN (eller del av PN) får inte vara NULL Referensintegritet (referential integrity) –Värdet i en främmande nyckel måste motsvara ett värde som finns i den refererade kandidatnyckeln eller vara NULL 27

28 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Vyer (Views) Presentation av data i form av virtuella tabeller Lagras oftast inte Alltid uppdaterad (automatiskt) Redundant eller härledbar information 28

29 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalisering Mål –Minimera redundans –Undvika dataanomalier Metod –Dela upp en tabell i flera tabeller (Tabellerna skall alltid kunna slåss ihop för att komma till den ursprungliga tabellen utan att förlora information) –Utgå från funktionella beroenden (2NF-3NF) Används oftast som en komplementmetod till modellering Funktionellt beroende –Attribut "bestämmer" andra attribut –Givet värdet i A vet man värdet i B 29

30 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalformer Normalformer bygger på varandra Normalformer testas per tabell Alla tabeller Tabeller i 1NF Tabeller i 2NF Tabeller i 3NF

31 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalformer – 1NF En tabell är i 1NF om –Alla kolumner innehåller atomära värden (inga listor, inga tabeller) –Tabellen har en primärnyckel –Alla kolumner som inte ingår i primärnyckeln är funktionellt beroende av primärnyckeln Är en tabell inte i 1NF kan man säga att den är i 0NF (eller är onormaliserad) En tabell som inte är i 1NF följer inte relationsmodellen. Funktionellt beroende –A  B

32 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalisering – 0NF ProjNrProjNamnDeltagare 1Panda 2Koala 32 Projekt PersNrPersNamnArbetsgivareWebbplatsProjektroll 1111Karl NilsonStepStonewww.ss.sePR 3333Tove WassStepStonewww.ss.seledare PersNrPersNamnArbetsgivareWebbplatsProjektroll 1111Karl NilsonStepStonewww.ss.seledare 2222Lisa BergManPowerwww.mp.setestare 3333Tove WassStepStonewww.ss.setestare

33 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalisering – 1NF ProjNrProjNamnPersNrPersNamnArbetsgivareWebbplatsProjektroll 1Panda1111Karl NilsonStepStonewww.ss.seledare 1Panda2222Lisa BergManPowerwww.mp.setestare 1Panda3333Tove WassStepStonewww.ss.setestare 2Koala1111Karl NilsonStepStonewww.ss.sePR 2Koala3333Tove WassStepStonewww.ss.seledare 33 Projektdeltagande Alla celler har atomära värden Primärnyckel: ProjNr och PersNr Funktionella beroenden: –ProjNr, PersNr  ProjNamn, PersNamn, Arbetsgivare, Webbplats, Projektroll

34 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalformer – 2NF En tabell är i 2NF om –Den är i 1NF och –Alla kolumner som inte ingår i PN är fullt funktionellt beroende på PN (det finns inga partiella funktionella beroenden på PN) Partiellt funktionellt beroende –A  B –A,X p  B

35 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalisering – 2NF ProjNrProjNamnPersNrPersNamnArbetsgivareWebbplatsProjektroll 1Panda1111Karl NilsonStepStonewww.ss.seledare 1Panda2222Lisa BergManPowerwww.mp.setestare 1Panda3333Tove WassStepStonewww.ss.setestare 2Koala1111Karl NilsonStepStonewww.ss.sePR 2Koala3333Tove WassStepStonewww.ss.seledare 35 Projektdeltagande (1NF) Partiella funktionella beroenden på PN: –ProjNr  ProjNamn –PersNr  PersNamn, Arbetsgivare, Webbplats

36 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalisering – 2NF ProjNrPersNrProjektroll 11111ledare 12222testare 13333testare 21111PR 23333ledare 36 Projektdeltagande Tabellnamn Primärnycklar Främmande nycklar –Projektdeltagande.ProjNr << Projekt.ProjNr –Projektdeltagande.PersNr << Person.PersNr PersNrPersNamnArbetsgivareWebbplats 1111Karl NilsonStepStonewww.ss.se 2222Lisa BergManPowerwww.mp.se 3333Tove WassStepStonewww.ss.se Person ProjNrProjNamn 1Panda 2Koala Projekt

37 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalformer – 3NF En tabell är i 3NF om –Den är i 2NF och –Alla kolumner som inte ingår i PN är direkt funktionellt beroende på PN (det finns inga transitiva funktionella beroenden) Transitivt beroende: –A  B –B  C –A t  C

38 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalisering – 3NF ProjNrPersNrProjektroll 11111ledare 12222testare 13333testare 21111PR 23333ledare 38 Projektdeltagande Projekt redan i 3NF Projektdeltagande redan i 3NF Person har ett transitivt funktionellt beroende –PersNr  Arbetsgivare  Webbplats –PersNr t  Webbplats PersNrPersNamnArbetsgivareWebbplats 1111Karl NilsonStepStonewww.ss.se 2222Lisa BergManPowerwww.mp.se 3333Tove WassStepStonewww.ss.se Person ProjNrProjNamn 1Panda 2Koala Projekt

39 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalisering – 3NF 39 Tabellnamn Primärnycklar Främmande nycklar –Person.Arbetsgivare << Företag.Namn PersNrPersNamnArbetsgivare 1111Karl NilsonStepStone 2222Lisa BergManPower 3333Tove WassStepStone Person NamnWebbplats StepStonewww.ss.se ManPowerwww.mp.se Företag

40 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalisering 0NF  1NF –Eliminera repetitiva grupper –Eliminera tabeller eller listor i celler –Tabellnamn –Primärnyckel 1NF  2NF –Eliminera partiella funktionella beroenden »Skapa nya tabeller »Främmande nycklar 2NF  3NF –Eliminera transitiva funktionella beroenden »Skapa nya tabeller »Främmande nycklar

41 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Dataanomalier Lägga till ett företag Ändra ett företags webbadress Ta bort den sista personen från ett företag ProjNrProjNamnPersNrPersNamnArbetsgivareWebbplatsProjektroll 1Panda1111Karl NilsonStepStonewww.ss.seledare 1Panda2222Lisa BergManPowerwww.mp.setestare 1Panda3333Tove WassStepStonewww.ss.setestare 2Koala1111Karl NilsonStepStonewww.ss.sePR 2Koala3333Tove WassStepStonewww.ss.seledare Projektdeltagande (1NF)

42 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Dataanomalier Lägga till ett företag Ändra ett företags webbadress Ta bort den sista personen från ett företag ProjNrPersNrProjektroll 11111ledare 12222testare 13333testare 21111PR 23333ledare Projektdeltagande (3NF) ProjNrProjNamn 1Panda 2Koala Projekt (3NF) PersNrPersNamnArbetsgivare 1111Karl NilsonStepStone 2222Lisa BergManPower 3333Tove WassStepStone Person (3NF) NamnWebbplats StepStonewww.ss.se ManPowerwww.mp.se Företag (3NF)

43 ITK3:DB/EIT:DB ht2008 nikos dimitrakas Normalisering Starkare definition –2NF och 3NF för varje kandidatnyckel (istället för endast PN) BCNF 4NF 5NF


Ladda ner ppt "ITK3:DB/EIT:DB ht2008 nikos dimitrakas ITK3:DB/EIT:DB Databasmetodik nikos dimitrakas Rum 6626 1 Kapitel 1, 2, 3 och 13."

Liknande presentationer


Google-annonser