Idag. Hur vet vi att vår databas är tillräckligt bra?



Relevanta dokument
Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet...

Idag. Hur skapar vi och underhåller en databas? Index? Vad är det och varför behövs de? Behöver jag bry mig om index?

Vi skall skriva uppsats

Lathund till Annonsportalen

Lathund, procent med bråk, åk 8

Distribuerade Informationssystem VT-04

Jämförelse länder - Seminarium

Presentationsövningar

Systematiskt kvalitetsarbete

Tränarguide del 1. Mattelek.

Träning i bevisföring

Intervjumall. Datum: Intervjuare: Kandidatens namn: Kandidatens uppgifter: Växel: (5)

EN BÄTTRE KREDITAFFÄR

Individuellt Mjukvaruutvecklingsprojekt

Skriva B gammalt nationellt prov

Syftet med en personlig handlingsplan

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Rapport uppdrag. Advisory board

Hur du presenterar och marknadsför dig under själva intervjun är avgörande för att du ska bli en intressant kandidat.

Enkätresultat för elever i år 2 i Mega Musik gymnasium hösten Antal elever: 47 Antal svarande: 46 Svarsfrekvens: 98% Klasser: MM13

Enkätresultat för elever i år 2 i Praktiska Skövde i Praktiska Sverige AB hösten 2014

Algebra, polynom & andragradsekvationer en pampig rubrik på ett annars relativt obetydligt dokument

7. SAMHÄLLSORIENTERING ÅK 5

Enkätresultat för elever i åk 9 i Borås Kristna Skola i Borås hösten Antal elever: 20 Antal svarande: 19 Svarsfrekvens: 95% Klasser: Klass 9

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

FAQ Barnkonsekvensanalys i Svenska kyrkan

När jag har arbetat klart med det här området ska jag:

UPPGIFT: SKRIV EN DEBATTARTIKEL

Volymer av n dimensionella klot

Det är bra om även distriktsstyrelsen gör en presentation av sig själva på samma sätt som de andra.

Introduktion till Open 2012

Enkätresultat för elever i år 2 i Nösnäsgymnasiet 2 i Stenungsund våren 2014

Koll på cashen - agera ekonomicoach!

Denna talesmannapolicy gäller tillsammans med AcadeMedias kommunikationspolicy. I kommuniaktionspolicyn finns följande formulering:

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

Erfarenheter från ett pilotprojekt med barn i åldrarna 1 5 år och deras lärare

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

Modul 6: Integraler och tillämpningar

Och hur föreslår ni att man lyfter frågan om KA - ta upp det själv eller låta facket sköta snacket?

Sammanfatta era aktiviteter och effekten av dem i rutorna under punkt 1 på arbetsbladet.

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

För dig som är valutaväxlare. Så här följer du reglerna om penningtvätt i din dagliga verksamhet INFORMATION FRÅN FINANSINSPEKTIONEN

Vad är WordPress? Medlemmar

08/11/13. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Deadline på tisdag

Sammanfattning på lättläst svenska

Webb-bidrag. Sök bidrag på webben Gäller från

ELEV- HANDLEDNING (Ansökan via webben)

Boll-lek om normer. Nyckelord: likabehandling, hbt, normer/stereotyper, skolmiljö. Innehåll

Scoot Boot - frågor & svar

P-02/03 säsongen 2016

Idag. 1. En enkel databas. 2. Prata med databaser (frågepsråket SQL)

Enkätresultat för vårdnadshavare till elever i Centralskolan Söder 4-9 i Grästorp hösten Antal svar: 50

3.1 Linjens ekvation med riktningskoefficient. y = kx + l.

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

skuldkollens ordlista

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Intyg om erfarenhet och lämplighet att undervisa som lärare i gymnasieskolan

MR 5 FRÅN FÖRBUD TILL RÄTTIGHET WORKSHOP I KLASSRUMMET TEMA: MÄNSKLIGA RÄTTIGHETER (MR)

Till dig som vill bli medlem i SEKO

Systematiskt kvalitetsarbete

Mätningar på op-förstärkare. Del 3, växelspänningsförstärkning med balanserad ingång.

En förskola med barnen i centrum

Rörelse ger dig mer energi, och du sover bättre.

Anna Kinberg Batra Inledningsanförande 15 oktober 2015

Vet du vilka rättigheter du har?

Två konstiga klockor

Ha det kul med att förmedla och utveckla ett knepigt område!

Detta kan du förvänta dig av kommunens service. Lokala värdighetsgarantier inom socialtjänstens omsorg om äldre

Koncept Katalog 2009

Utvärdering av informationsinsatserna. Konflikten inom Väg och Ban Maj 2007

Omvandla Vinklar. 1 Mattematiskt Tankesätt

Kvalitetsrapport Så här går det

Senaste Nytt. Läs sida 2. I detta nummer. Lite information. Har det någon gång hänt att någon har stulit något? Ja... (Susanne Wahlgren svarar)

Presentation vid dialogmöte i Råneå av Arbetsgruppen för Vitåskolan. Presentationen hölls av Ingela Lindqvist

Kapitel 6. f(x) = sin x. Figur 6.1: Funktionen sin x. 1 Oinas-Kukkonen m.fl. Kurs 6 kapitel 1

Sandeplanskolan. Kunskap, arbetsro och trivsel. Likabehandlingsplan

Manual för BPSD registret. Version 6 /

Notera att illustrationerna i denna broschyr är förenklade.

Gruppenkät. Lycka till! Kommun: Stadsdel: (Gäller endast Göteborg)

FAIR JOBB. Vill du få lite mer koll på arbetslivet? Här är några bra sajter att kolla in:

13/11/14. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Vad är en Databas?

Administratör Rollbeskrivning och stödjande instruktion. e-tjänst för ansökan om statsbidrag Senast uppdaterad:

e-cm Elektronisk Cash Management dygnet runt, världen över.

Information till elever och föräldrar i skolår 5

Snapphanalegen. Firekángabogena. Spelregler. (4 spelare)

Arbetsbeskrivning, att förbereda för studenternas registrering kommande termin. 1. Studenter antagna på fristående kurs 2

Utbildningsplan för arrangörer

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

Kulturmöten. Det var vi som gjorde det.

Kundservicerapport Luleå kommun 2015

Vad vill jag bli, och vad vill jag ha gjort?

Att köpa HUND. Goda råd inför ditt hundköp SVENSKA KENNELKLUBBEN

Nationella prov i årskurs 3 våren 2013

Riktlinjer - Rekryteringsprocesser inom Föreningen Ekonomerna skall vara genomtänkta och välplanerade i syfte att säkerhetsställa professionalism.

TIMREDOVISNINGSSYSTEM

Energi & Miljötema Inrikting So - Kravmärkt

Kvinnor som driver företag pensionssparar mindre än män

HT 2011 FK2004 Tenta Lärare delen 4 problem 6 poäng / problem

Kvalitetsrapport Så här går det

Transkript:

Idag 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? DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 1 / 18

Databaskvalitet(??) Det finns metoder för att kontrollera kvaliteten på det man åstadkommit och för att förbättra den om man hittar problem Med kvalitet i det här sammanhanget menar man hur enkelt (eller svårt) det är att hitta i databasen och hur enkelt det är att upprätthålla dataintegritet (försäkra sig om att data enkelt kan hållas korrekt) Man vill minimera dubbellagringen (utom vad gäller nyckelvärden i index) DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 2 / 18

Databaskvalitet... enkelt och lätt att förstå (en sammanslagning av tre tabeller, create view avdvara as select * from försäljning natural join vara natural join avdelning) avd varunr volym typ våning möbler 334 332 stol 8 möbler 335 305 stol 8 väskor 336 87 stol 4 möbler 336 95 stol 8 priset är dubbellagring (= redundans) och om vi vill uppdatera så måste vi hitta alla platser där en viss information finns representerad. Vill vi ta bort något kanske det inte går utan att annan viktig information försvinner och vill vi sätta in något nytt kanske det inte går utan att ta reda på mer information. DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 3 / 18

Databaskvalitet... informativt avd våning möbler 8 väskor 4 avd varunr volym möbler 334 332 möbler 335 305 väskor 336 87 möbler 336 95 varunr typ 334 stol 335 stol 336 stol till priset av att det inte är lika lätt att förstå men vi kan mata in nya varor utan att tvingas veta vilken avdelning som ska sälja dem, vi kan flytta en avdelning till en annan våning utan att behöva uppdatera alla rader med varor, vi kan lägga till avdelningar utan att tvingas förse dem med varor direkt... DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 4 / 18

Vad är ett beroende? Hur kommer man då fram till att den mer informativa är bättre? Vi behöver ett verktyg som låter oss avgöra vilka värden som hör ihop Om vi betraktar den sammanslagna tabellen avdvara ser vi att varje gång avdelningen möbler dyker upp så har vi alltid samma värde på våning Vi förväntar att det ska vara så och bestämmer att våning beror av avd Vi säger att våning är funktionellt beroende av avd och skriver det: avd våning Med motsvarande resonemang kan vi se att varunr typ och att trots att {avd, varunr} {volym, typ, våning} så är avd våning och varunr typ starkare Det ger oss också ett verktyg för att normalisera, dela upp tabeller som inte uppfyller de restriktioner som beroendena lägger på datamängden DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 5 / 18

Vad finns det för normalformer? Det finns ett stort antal normalformer, några med kryptiska och svårbegripliga definitioner, men man brukar kunna nöja sig med de tre första 1NF 2NF 3NF BCNF 4NF 5NF Högre NF DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 6 / 18

Hur resonerar man? Några exempel från varuhuset: En person kan bara arbeta på en avdelning: namn avd På varje avdelning kan det arbeta mer än en person: avd namn Man måste veta varunumret för att få reda på en varas typ: varunr typ Det kan finnas mer än en vara av en viss varutyp: typ varunr Ett visst företag levererar varor till varje avdelning för sig: {företag, avd, varunr} volym DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 7 / 18

Hur når man de olika normalformerna? Man kan använda beroenden för att, utgående från en universell relation, finna en uppdelning som är i 3NF eller högre Men vanligast är att man använder beroenden för att analysera varje tabell man får från en modell. Har man minst 3NF så är man nöjd För att kunna det behöver man definitionerna för de olika normalformerna Det räcker med de tre första, högre normalformer är ganska kryptiskt formulerade Man har 1NF om man bara har ett värde i varje kolumn för varje rad Man har 2NF om man har 1NF och inget värde är beroende av bara en del av nyckeln (alltså behöver man bara kolla sambandsklasser) Man har 3NF om man har 2NF och om dessutom inget värde är beroende av nyckeln via ett annat attribut. Vi ska titta på lite bilder och också vässa de här informella definitionerna DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 8 / 18

1NF Antag att vi har en tabell över böcker och deras författare Bok Titel Författare Datum Språkkod Språk DBTeori Lindqvist 940322 46 Svenska Dahl ODBMS Johnson 940312 0 Engelska Peterson Tabellen är inte i 1NF! Men om vi gör en rad per upprepat värde Bok Titel Författare Datum Språkkod Språk DBTeori Lindqvist 940322 46 Svenska DBTeori Dahl 940322 46 Svenska ODBMS Johnson 940312 0 Engelska ODBMS Peterson 940312 0 Engelska så är den det DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 9 / 18

1NF... Man kan i den sista tabellen också se att det inte räcker med bokens titel för att unikt identifiera en rad i tabellen. Ett resonemang kring beroenden i tabellen ger följande: Både Titel och Författare behövs för att identifiera en rad Titel {Datum, Språkkod, Språk} Språkkod Språk Språk Språkkod (!!) Alla de beroendena visar att tabellen bör delas upp så det endast finns ett beroende i varje resulterande tabell. För detta behövs verktyg (regler) En av reglerna har vi just sett, vi kan utöka antalet i-termer tills vi hittar ett sätt att unikt identifiera en tabellrad Man kan också gå motsatt väg. Antag att alla termer är i-termer och tag sedan bort de termer som nås via något beroende DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 10 / 18

1NF... reducera fram en nyckel Antag att {Titel, Författare, Datum, Språkkod, Språk} är nyckel Börja med de enklaste, t.ex. Språkkod Språk, så tag bort Språk. {Titel, Författare, Datum, Språkkod} är kvar Titel {Datum, Språkkod} så tag bort {Datum, Språkkod}. {Titel, Författare} är kvar Fler beroenden finns inte så en möjlig nyckel, {Titel, Författare}, har vi hittat Har man många beroenden testar man olika reduceringsordning DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 11 / 18

Kandidatnycklar, primärnycklar och prima attribut Det kan hända att man hittar flera möjligheter att unikt identifiera en rad i en tabell. Varje uppsättning attribut som duger kallas för en kandidatnyckel Hittar man mer än en kandidatnyckel väljer man en som primärnyckel Alla attribut som ingår i någon kandidatnyckel kallar man primattribut eller prima attribut med betydelsen att de kan ingå i en primärnyckel De är viktiga så man brukar hålla reda på primärnyckel, alla kandidatnycklar och ha en lista över alla prima attribut DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 12 / 18

Fullständigt funktionellt beroende (FFD) Om man har flera attribut (i-termer) i nyckeln kan man kontrollera om alla e-termer är beroende av hela nyckeln eller bara av en del av nyckeln. Ex.: i varuhusets tabell för försäljning är det klart att man måste veta både avdelning och varunr för att få reda på försäljningsvolymen för en viss vara. Alltså beror volym av både avd och varunr ({avd,varunr} volym. Man säger att volym är fullständigt funktionellt beroende av avd och varunr. Faktiskt gäller även {avd,varunr,typ} volym men det är meningslöst att utvidga vänsterledet i ett beroende. Med det utvidgade vänsterledet har vi inte längre ett fullständigt funktionellt beroende. Vi kan kontrollera om vänsterledet är minimalt eller inte genom att på försök ta bort ett eller flera attribut ur vänsterledet och se om beroendet med reducerat vänsterled fortfarande gäller DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 13 / 18

2NF En tabell är i 2NF omm den är i 1NF och det varje attribut som inte är primt är fullständigt funktionellt beroende av varje kandidatnyckel Låter krångligt men är i själva verket enkelt att kontrollera Vi kan strunta i alla primattribut och kontrollera om övriga är FFD av alla nycklar Om villkoret inte är uppfyllt så är något attribut beroende av bara en del av någon nyckel och då delar vi tabellen Titel Författare Titel Datum Språkkod Språk DBTeori 940322 46 Svenska ODBMS 940312 0 Engelska DBTeori DBTeori ODBMS ODBMS Lindqvist Dahl Johnson Peterson DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 14 / 18

3NF Om ett attribut är beroende av någon kandidatnyckel i en tabell via ett icke primt attribut så säger vi att det är ett transitivt beroende. Sådana ger också upphov till redundans och uppdaterings-, borttagnings- och insättningsproblem En tabell är i 3NF omm den är i 2NF och det inte finns några transitiva beroenden. Finns sådana delar vi tabellen Titel Datum Språkkod DBTeori 940322 46 ODBMS 940312 0 Språkkod Språk 46 Svenska 0 Engelska DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 15 / 18

Normalformer Här kan vi sluta och vara nöjda Vi har förvandlat en orimlig tabell till något generellt användbart: Titel Författare Datum Språkkod Språk DBTeori Lindqvist 940322 46 Svenska Dahl ODBMS Johnson 940312 0 Engelska Peterson Till: DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 16 / 18

Normalformer Titel Datum Språkkod DBTeori 940322 46 ODBMS 940312 0 Språkkod Språk 46 Svenska 0 Engelska Titel DBTeori DBTeori ODBMS ODBMS Författare Lindqvist Dahl Johnson Peterson DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 17 / 18

Funktionella beroenden Komplexa modeller blir lätt oöverskådliga och även i relativt små modeller händer det att man får in oavsiktliga och dolda beroenden. Med normalisering kan vi avslöja och eliminera dessa oönskade beroenden Ur diskussionen som varit kan vi härleda regler för funktionella beroenden. Låt X, Y, Z betyda mängder av attribut 1. För varje attributmängd X gäller alltid att X Y om Y är en del av X. Detta kallas för trivialt beroende. 2. Om X Y så X Z YZ 3. Om X Y och Y Z så X Z 4. Om X YZ så X Y (och X Z) 5. Om X Y och X Z så X YZ DD1370 (Föreläsning 6) Databasteknik och informationssystem 7,5 hp Hösten 2011 18 / 18