ITK3:DB/EIT:DB Databasmetodik

Slides:



Advertisements
Liknande presentationer
Databaser & databasdesign
Advertisements

Vad är en databas? “En databas är en delad samling logiskt relaterade data som designats för att möta informationsbehovet i en organisation eller för.
Relationsdatabasdesign
Databasadministration
Access med Sebastian och Robert
(Data)Modellering nikos dimitrakas rum 6626
MS Excel 2010 – Dag 2 Mahmud Al Hakim
1 Medarbetarenkät 2011 • 573 svar. 2 Kön 3 Jag är knuten till en klass, undervisningsgrupp eller barngrupp.
BENÄMNA lätta ord SPRÅKTRÄNING VID AFASIKg VIII
Klasser och objekt.
DATABASHANTERING för programmerare
B2KUNO Johan Eklund.
Hämta företagsdata till Excel
Leif Håkansson’s Square Dancer Rotation
GNS järnväg Håkan Sjöström
MS Excel 2010 – Dag 1 Mahmud Al Hakim. Kursens innehåll 2 DagInnehåll 1 Introduktion till Excel 2010 Hantera arbetsböcker Formler Formatering Litteratur:
Datamodellering med E/R-diagram
Eddie Arnold - Make The World Go Away Images colorées de par le monde Déroulement automatique ou manuel à votre choix 1 för dig.
Elkraft 7.5 hp distans: Kap. 3 Likströmsmotorn 3:1
IT och kommunikationsvetenskap Teresa Cerratto Pargman, DSV
Svenska WebDewey Introduktion
WEBMASTER DAG 13 Mahmud Al Hakim
1 Medarbetarenkät svar. 2 Kön 3 Jag är knuten till en klass, undervisningsgrupp eller barngrupp.
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
V E R S I O N N R 2. 0 T A V E L I D É E R I M I L J Ö.
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2007.
Databaser och databas-system
Praktisk databasdesign (kap 12)
DAV B04 - Databasteknik Indexering (kap 14).
Datamodellering med E/R-diagram
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Svenska WebDewey Introduktion Harriet Aagaard Svenska Deweyredaktion
15 x 25 meter. Skriv banenavn Skriv designet af Skriv dato MÅL sväng vänster 6 sväng höger 5 runt 7 Vänster runt hund höger runt.
Tabeller.
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
DATABASHANTERING för programmerare
Det handlar om multiplikation
DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim
Databashanteringssystem
TÄNK PÅ ETT HELTAL MELLAN 1-50
DATABASHANTERING för programmerare Lektion 4 Mahmud Al Hakim
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Listor En lista är en föränderlig ordnad samling objekt.
Kouzlo starých časů… Letadla Pár foteček pro vzpomínku na dávné doby, tak hezké snění… M.K. 1 I Norrköping får man inte.
Enkätresultat för Fritidshem Elever 2014 Skola:Fritidselever, Gillberga skola.
Innehåll, kommunpresentation 3. Rangordning av ordningsstörningar (fråga 1) 4. Problem med nedskräpning (fråga 1a) 5. Problem med skadegörelse (fråga 1b)
Best pictures on the internet 2007 Awards 1http:// (s), (v), och (mp) i Norrköping, gillar inte att vi använder grundlagarna.
Databashantering MS Access 2003 Lektion 2
2 Agenda 1. Börja arbeta med Excel Hantera arbetsböcker 3. Formler 4. Formatera 5. Diagram 6. Skriva ut 7. Referenser mellan kalkylblad 8. Arbeta.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
MODELLER Modell: struktur som avbildar vissa aspekter av någon del av verkligheten Exempel: Kartor Differentialekvationer Miniatyrmodeller Syfte med modeller:
Mahmud Al Hakim 2  Mål för kursen  Kursplanering  Kurslitteratur  Betygsättning  Grunder om databaser  Tabeller.
Enkätresultat för Grundskolan Föräldrar 2014 Skola - Gillberga skola.
Databaser och databassystem
OpCon/xps - A case study. Club2200Page 1 OpCon/xps – A case study Club2200 Magnus Nyman & Hans Forslind.
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
Bevarande utifrån nya Ladoks perspektiv
Informationsteknologi - Lektion 2 Trådlöst nätverk (WLAN) Trådlöst nätverk (WLAN) Filarkivet: Filarkivet:
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
BVForum - en genomgång för revisorer Sören Thuresson.
DATABASHANTERING för programmerare Lektion 5 Mahmud Al Hakim
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
1 Jan Lundström OV’s Hemsida Utbildning Ledare. 2 Jan Lundström OV’s Hemsida Standard Lagrum.
Delarna i en Access-databas
IT Databas Göran Wiréen
Operativ informationshantering, databaser
KaU - Datavetenskap - DAV B04 - MGö
Presentationens avskrift:

ITK3:DB/EIT:DB Databasmetodik nikos dimitrakas nikos@dsv.su.se Rum 6626 Kapitel 1, 2, 3 och 13

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

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

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

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

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

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

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)

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

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

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

ANSI-SPARK - dataoberoenden

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

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

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.

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)

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

Risker / Nackdelar Komplexitet Kostnad Centralisering Effekter av systemkrasch Prestanda

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)

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)

Terminologi – Relation/Tabell Tabellnamnet Kolumnnamn Kolumn Bok ISBN Titel År Förlag Pris 123-122-121 Prins Annorlunda 2005 Brombergs 140 234-234-222 Svensk Maffia 2007 155 123-435-777 De välvilliga Bonniers Rad

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

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

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

Nycklar - exempel Supernyckel? Kandidatnyckel? Primärnyckel? Bok ISBN Titel År Förlag Pris 123-122-121 Prins Annorlunda 2005 Brombergs 140 234-234-222 Svensk Maffia 2007 155 123-435-777 De välvilliga Bonniers Supernyckel? Kandidatnyckel? Primärnyckel? Alternativnyckel? 25

Nycklar - exempel Främmande nyckel? Bok Förlag ISBN Titel År Förlag Pris 123-122-121 Prins Annorlunda 2005 Brombergs 140 234-234-222 Svensk Maffia 2007 155 123-435-777 De välvilliga Bonniers Förlag Främmande nyckel? Namn Webbplats Kontaktperson Brombergs www.blombergs.se Marie Lind Bonniers www.bonniers.se Karl Sigg Green Planet www.greenplanet.net Lisa Brown 26

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

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

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

Normalformer Normalformer bygger på varandra Normalformer testas per tabell Alla tabeller Tabeller i 1NF Tabeller i 2NF Tabeller i 3NF

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

Normalisering – 0NF Projekt ProjNr ProjNamn Deltagare 1 Panda 2 Koala PersNr PersNamn Arbetsgivare Webbplats Projektroll 1111 Karl Nilson StepStone www.ss.se ledare 2222 Lisa Berg ManPower www.mp.se testare 3333 Tove Wass PersNr PersNamn Arbetsgivare Webbplats Projektroll 1111 Karl Nilson StepStone www.ss.se PR 3333 Tove Wass ledare 32

Normalisering – 1NF Alla celler har atomära värden Projektdeltagande ProjNr ProjNamn PersNr PersNamn Arbetsgivare Webbplats Projektroll 1 Panda 1111 Karl Nilson StepStone www.ss.se ledare 2222 Lisa Berg ManPower www.mp.se 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

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

Normalisering – 2NF Partiella funktionella beroenden på PN: Projektdeltagande (1NF) ProjNr ProjNamn PersNr PersNamn Arbetsgivare Webbplats Projektroll 1 Panda 1111 Karl Nilson StepStone www.ss.se ledare 2222 Lisa Berg ManPower www.mp.se testare 3333 Tove Wass 2 Koala PR Partiella funktionella beroenden på PN: ProjNr  ProjNamn PersNr  PersNamn, Arbetsgivare, Webbplats 35

Normalisering – 2NF Tabellnamn Primärnycklar Främmande nycklar Person Projektdeltagande PersNr PersNamn Arbetsgivare Webbplats 1111 Karl Nilson StepStone www.ss.se 2222 Lisa Berg ManPower www.mp.se 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

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

Normalisering – 3NF Person Projektdeltagande Projekt PersNr PersNamn Arbetsgivare Webbplats 1111 Karl Nilson StepStone www.ss.se 2222 Lisa Berg ManPower www.mp.se 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

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 www.ss.se ManPower www.mp.se Tabellnamn Primärnycklar Främmande nycklar Person.Arbetsgivare << Företag.Namn 39

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

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 www.ss.se ledare 2222 Lisa Berg ManPower www.mp.se testare 3333 Tove Wass 2 Koala PR

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 www.ss.se ManPower www.mp.se ProjNr ProjNamn 1 Panda 2 Koala

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