Presentation laddar. Vänta.

Presentation laddar. Vänta.

ITK3:DB/EIT:DB Databasmetodik

Liknande presentationer


En presentation över ämnet: "ITK3:DB/EIT:DB Databasmetodik"— Presentationens avskrift:

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

2 Innehåll Introduktion till databasmetodik Relationsmodellen
Normalisering Relationsalgebra Databasmodellering SQL Databashanteringssystem Embedded SQL i Java Trender och fördjupning

3 Upplägg Föreläsningar Lektioner Introduktioner Labbar Quizzar
Projektarbete Redovisningar Inlämning Handledning Tenta Närvarouppföljning!

4 Material Bok Föreläsningsbilder Delkursanvisningar
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

5 Examination Examination 1 (3 hp) F-A eller U-VG Examination 2 (4,5 hp)
Tenta Examination 2 (4,5 hp) Projektuppgift 2 Labbar 3 Quizzar ”Examination” 3 (0 hp) Utvärdering

6 Ö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!

7 Databaser Vad är data? Vad är en databas? Värden
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

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

9 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

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

11 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

12 ANSI-SPARK - dataoberoenden

13 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

14 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

15 Roller Dataadministratör (DA) Databasadministratör (DBA)
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.

16 Roller Databasdesigner Applikationsutvecklare (Slut)Användare
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)

17 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

18 Risker / Nackdelar Komplexitet Kostnad Centralisering
Effekter av systemkrasch Prestanda

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

20 Domäner & NULL Domän NULL 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)

21 Terminologi – Relation/Tabell
Tabellnamnet Kolumnnamn Kolumn Bok ISBN Titel År Förlag Pris Prins Annorlunda 2005 Brombergs 140 Svensk Maffia 2007 155 De välvilliga Bonniers Rad

22 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

23 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 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 Nycklar - exempel Supernyckel? Kandidatnyckel? Primärnyckel?
Bok ISBN Titel År Förlag Pris Prins Annorlunda 2005 Brombergs 140 Svensk Maffia 2007 155 De välvilliga Bonniers Supernyckel? Kandidatnyckel? Primärnyckel? Alternativnyckel? 25

26 Nycklar - exempel Främmande nyckel? Bok Förlag ISBN Titel År Förlag
Pris Prins Annorlunda 2005 Brombergs 140 Svensk Maffia 2007 155 De välvilliga Bonniers Förlag Främmande nyckel? Namn Webbplats Kontaktperson Brombergs Marie Lind Bonniers Karl Sigg Green Planet Lisa Brown 26

27 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

28 Vyer (Views) Presentation av data i form av virtuella tabeller
Lagras oftast inte Alltid uppdaterad (automatiskt) Redundant eller härledbar information

29 Normalisering Mål Metod
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 Normalformer Normalformer bygger på varandra
Normalformer testas per tabell Alla tabeller Tabeller i 1NF Tabeller i 2NF Tabeller i 3NF

31 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 Normalisering – 0NF Projekt ProjNr ProjNamn Deltagare 1 Panda 2 Koala
PersNr PersNamn Arbetsgivare Webbplats Projektroll 1111 Karl Nilson StepStone ledare 2222 Lisa Berg ManPower testare 3333 Tove Wass PersNr PersNamn Arbetsgivare Webbplats Projektroll 1111 Karl Nilson StepStone PR 3333 Tove Wass ledare 32

33 Normalisering – 1NF Alla celler har atomära värden
Projektdeltagande ProjNr ProjNamn PersNr PersNamn Arbetsgivare Webbplats Projektroll 1 Panda 1111 Karl Nilson StepStone ledare 2222 Lisa Berg ManPower testare 3333 Tove Wass 2 Koala PR Alla celler har atomära värden Primärnyckel: ProjNr och PersNr Funktionella beroenden: ProjNr, PersNr  ProjNamn, PersNamn, Arbetsgivare, Webbplats, Projektroll

34 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 Normalisering – 2NF Partiella funktionella beroenden på PN:
Projektdeltagande (1NF) ProjNr ProjNamn PersNr PersNamn Arbetsgivare Webbplats Projektroll 1 Panda 1111 Karl Nilson StepStone ledare 2222 Lisa Berg ManPower testare 3333 Tove Wass 2 Koala PR Partiella funktionella beroenden på PN: ProjNr  ProjNamn PersNr  PersNamn, Arbetsgivare, Webbplats 35

36 Normalisering – 2NF Tabellnamn Primärnycklar Främmande nycklar Person
Projektdeltagande PersNr PersNamn Arbetsgivare Webbplats 1111 Karl Nilson StepStone 2222 Lisa Berg ManPower 3333 Tove Wass ProjNr PersNr Projektroll 1 1111 ledare 2222 testare 3333 2 PR Projekt ProjNr ProjNamn 1 Panda 2 Koala Tabellnamn Primärnycklar Främmande nycklar Projektdeltagande.ProjNr << Projekt.ProjNr Projektdeltagande.PersNr << Person.PersNr 36

37 Normalformer – 3NF En tabell är i 3NF om Transitivt beroende:
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 Normalisering – 3NF Person Projektdeltagande Projekt
PersNr PersNamn Arbetsgivare Webbplats 1111 Karl Nilson StepStone 2222 Lisa Berg ManPower 3333 Tove Wass ProjNr PersNr Projektroll 1 1111 ledare 2222 testare 3333 2 PR Projekt ProjNr ProjNamn 1 Panda 2 Koala Projekt redan i 3NF Projektdeltagande redan i 3NF Person har ett transitivt funktionellt beroende PersNr  Arbetsgivare  Webbplats PersNr t Webbplats 38

39 Normalisering – 3NF Person Företag Tabellnamn Primärnycklar
PersNr PersNamn Arbetsgivare 1111 Karl Nilson StepStone 2222 Lisa Berg ManPower 3333 Tove Wass Namn Webbplats StepStone ManPower Tabellnamn Primärnycklar Främmande nycklar Person.Arbetsgivare << Företag.Namn 39

40 Normalisering 0NF  1NF 1NF  2NF 2NF  3NF
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

41 Dataanomalier Lägga till ett företag Ändra ett företags webbadress
Ta bort den sista personen från ett företag Projektdeltagande (1NF) ProjNr ProjNamn PersNr PersNamn Arbetsgivare Webbplats Projektroll 1 Panda 1111 Karl Nilson StepStone ledare 2222 Lisa Berg ManPower testare 3333 Tove Wass 2 Koala PR

42 Dataanomalier Lägga till ett företag Ändra ett företags webbadress
Ta bort den sista personen från ett företag Projektdeltagande (3NF) Person (3NF) ProjNr PersNr Projektroll 1 1111 ledare 2222 testare 3333 2 PR PersNr PersNamn Arbetsgivare 1111 Karl Nilson StepStone 2222 Lisa Berg ManPower 3333 Tove Wass Företag (3NF) Projekt (3NF) Namn Webbplats StepStone ManPower ProjNr ProjNamn 1 Panda 2 Koala

43 Normalisering Starkare definition BCNF 4NF 5NF
2NF och 3NF för varje kandidatnyckel (istället för endast PN) BCNF 4NF 5NF


Ladda ner ppt "ITK3:DB/EIT:DB Databasmetodik"

Liknande presentationer


Google-annonser