Presentation laddar. Vänta.

Presentation laddar. Vänta.

DATABASER Digitalisering av kulturarvet. IDAG  Vad är en databas?  Begrepp  Relationer  Datamodeller  Tabeller, fält och poster  Nycklar  Attribut,

Liknande presentationer


En presentation över ämnet: "DATABASER Digitalisering av kulturarvet. IDAG  Vad är en databas?  Begrepp  Relationer  Datamodeller  Tabeller, fält och poster  Nycklar  Attribut,"— Presentationens avskrift:

1 DATABASER Digitalisering av kulturarvet

2 IDAG  Vad är en databas?  Begrepp  Relationer  Datamodeller  Tabeller, fält och poster  Nycklar  Attribut, egenskaper och fält  Normalisering  SQL

3 VAD ÄR EN DATABAS?  En samling av logiskt organiserade data  I en databas kan dataentiteter effektivt lagras, relateras till varandra och extraheras  Databas är inte detsamma som dokument  Databas är inte heller detsamma som databashanteringssystem  Dokument ~= träd, databas ~= skog

4 DATABASHANTERINGSSYSTEM  DBMS, DataBase Management System  Ett programvarusystem som möjliggör för användare att definiera, skapa, underhålla och kontrollera tillgång till en databas  Access, SQL Server, Oracle, MySQL, FileMaker

5 BEGREPP  Relation – En tabell med rader och kolumner  Attribut – En namngiven kolumn i en relation  Domän – En uppsättning tillåtna värden för ett eller flera attribut  Tipel – En rad i en relation

6 FLER BEGREPP  Grad (av en relation) – Antalet attribut som relationen innehåller  Kardinalitet – Antalet tipler i en relation  Relationsdatabas – En samling normaliserade relationer med distinkta relationsnamn  Normalisering – En teknik för att producera en uppsättning relationer med önskade egenskaper

7 MATEMATISKA RELATIONER  Kartesisk produkt – Alla möjliga kombinationer av element hos två eller flera entiteter a {2,4} b {1,3,5} a*b = { (2,1), (2,3), (2,5), (4,1), (4,3), (4,5) } a {1,3} b {2,4} c {5,6} a*b*c = { (1,2,5), (1,2,6), (1,4,5), (1,4,6), (3,2,5), (3,2,6), (3,4,5), (3,4,6) }

8 EGENSKAPER HOS RELATIONER  En relation har ett namn som är distinkt från alla andra relationsnamn i relationsschemat  Varje cell i relationen innehåller exakt ett värde  Varje attribut har ett distinkt namn  Det finns inga dubblett-tipler (varje tipel är unik)  Ordningen av attribut är oväsentlig  Ordningen av tipler är (teoretiskt) oväsentlig

9 DATAMODELLER  Ett ramverk för hur data ska organiseras i en databas  Nätverksdatamodellen  Hierarkiska datamodellen  Relationsdatamodellen

10 RELATIONSDATAMODELLEN  Baserad på matematiska relationer  Data och relationer representeras som tabeller  Varje tabell har ett antal kolumner med (för tabellen) unika namn skivnrartisttitelpris 1Chemical BrothersExit planet dust149 2Fat Boy SlimHalfway between the gutter and the stars 159 3RadioheadKid A159

11 RELATIONSDATAMODELLEN skivnrartisttitelpris 1Chemical BrothersExit planet dust149 2Fat Boy SlimHalfway between the gutter and the stars 159 3RadioheadKid A159 Attribut Relation Tipel

12 TABELLER, FÄLT OCH POSTER skivnrartisttitelpris 1Chemical BrothersExit planet dust149 2Fat Boy SlimHalfway between the gutter and the stars 159 3RadioheadKid A159 Fält Tabell Post

13 NYCKLAR  Primärnyckel – ett fält, eller en kombination av fält, som unikt identifierar en tipel (post) Naturlig primärnyckel Surrogatnyckel  Främmande nyckel – ett fält, eller en kombination av fält, som är primärnyckel i en annan relation och samtidigt existerar i aktuell relation

14 NYCKLAR skivnrartisttitelpris 1Chemical BrothersExit planet dust149 2Fat Boy SlimHalfway between the gutter and the stars 159 3RadioheadKid A159 Primärnyckel (surrogatnyckel)

15 NYCKLAR låtnrtitellåtlängdskivnr 1 National Anthem Treefingers Optimistic Leave home In dust we trust Chicos groove287 1 PrimärnyckelFrämmande nyckel

16 NYCKLAR PKlåtnr titel låtlängd PK, FKskivnr PKskivnr artist titel pris

17 ATTRIBUT, EGENSKAPER OCH FÄLT  Hur ska du beskriva det du ska beskriva? Egenskaper/Attribut Fält Datatyper Entiteter

18 EGENSKAPER  Vi ska skapa en förteckning över en skivsamling där vi vill spara information om en skiva är utlånad eller inte  Vilka egenskaper kan urskiljas? Artist, titel, pris, antal spår, total speltid Låttitel, låtlängd Låneinformation Med mera… Eklund: Tio steg mot en databas i MS Access

19 EGENSKAPER  R = (artist, titel, pris, antal spår, total speltid, låttitel, låtlängd, låneinformation) artisttitelprisantalSpårspeltidlåttitellåtlängdlån RadioheadKid A Kid A292Utlånad RadioheadKid A National Anthem352Utlånad RadioheadKid A Treefingers223Utlånad RadioheadKid A Optimistic316Utlånad Chemical BExit planet Leave home333 Chemical BExit planet In dust we trust317 Chemical BExit planet Chicos groove287 Chemical BExit planet One too many mornings251 Chemical BExit planet Alive alone315

20 INGEN LÄMPLIG KONSTRUKTION…  Varje tipel är förvisso unik…  …men redundans förekommer  Detta resulterar i vissa uppdateringsproblem samt ineffektivitet  Lösning: normalisering!

21 ONORMALISERAD FORM  Multipla värden i cellerna  Kom ihåg: Varje cell i relationen innehåller exakt ett värde  Vår relation är i 1NF

22 FÖRSTA NORMALFORMEN (1NF)  Data med multipla värden per objekt tilldelas egen tabell  R = (skivnr, artist, titel, pris, antal spår, total speltid, låttitel, låtlängd, låneinformation) skivnrartisttitelprisantalSpårspeltidlåttitellåtlängdlån 1RadioheadKid A Kid A285Utlånad 1RadioheadKid A Optimistic316Utlånad 2Chemical BExit planet Alive alone315

23 ANDRA NORMALFORMEN (2NF)  Attribut som inte är funktionellt beroende av hela primärnyckeln placeras i egen tabell  R1 = (skivnr, artist, titel, pris, antal spår, total speltid)  R2 = (låtnr, låttitel, låtlängd, skivnr)  R3 = (personnr, namn, postnr, ort, skivnr, låndatum) Förklaring till denna PK?

24 ANDRA NORMALFORMEN (2NF) lån personnr skivnr skivor skivnr låtar låtnr skivnr

25 TREDJE NORMALFORMEN (3NF)  Attribut som är funktionellt beroende av andra attribut, vilka inte är nycklar, placeras i en egen tabell  R3 = (personnr, namn, postnr, ort, skivnr, låndatum)  R3 = (personnr, namn, postnr, skivnr, låndatum)  R4 = (postnr, ort)

26 FLER NORMALFORMER FINNS…  BCNF – En relation är i BCNF (Boyce-Codd Normal Form) om och endast om varje determinant är en kandidatnyckel En determinant är något som något annat är beroende av  4NF  5NF  3NF eller BCNF brukar funka utmärkt

27 MED DETTA I BAGAGET…  …går vi raskt vidare till Johan Eklunds tio steg mot en databas i Access!

28 VAD SKALL INGÅ?  Vilka objekt/entiteter kan urskiljas? Skivor Låtar Låntagare Ägare? (Artist)  (Vi bortser från postnr och ort här)

29 HUR SKA VI BESKRIVA DET SOM SKA INGÅ?  Attribut Skivor: skivnr, artist, titel, pris, antal spår, total speltid Låtar: låtnr, låttitel, låtlängd, skivnr Låntagare: namn, skivnr, låndatum Ägare: namn, skivnr

30 VANLIGA DATATYPER  BOOLEAN Kan anta värdena TRUE, FALSE och ibland även UNKNOWN  CHAR och VARCHAR Fast respektive varierande längd −CHAR(4) innebär att fältet rymmer 4 tecken −VARCHAR(30) innebär att fältet anpassar sig efter innehållet men aldrig tillåter fler än 30 tecken  DATE och TIME DATE: år, månad, dag TIME: timme, minut, sekund

31 DATATYPER  NUMERIC, DECIMAL, INTEGER och SMALLINT NUMERIC och DECIMAL för decimaltal −Antal siffror och decimaler måste anges INTEGER och SMALLINT för heltal −Stora respektive små heltal  FLOAT, REAL och DOUBLE PRECISION Används för reella tal, dvs tal som kan skrivas med en ändlig eller oändlig följd av siffror  BINARY LARGE OBJECTS Används för bildfiler, videofiler, ljudfiler och liknande

32 DATATYPER I ACCESS  Text – textsträngar som kan innehålla alla tecken (maxlängden är 255 tecken i Access)  Number (några exempel) Integer – heltal, mindre domän Double – stort heltal, större domän Decimal - decimaltal  Date/Time – datum och tid  Currency – valutor  Autonumber – ökar automatiskt med 1 när en ny post läggs till, används för surrogatnycklar  Yes/No – kan anta något av två värden

33 VAD FINNS DET FÖR RELATIONER?  Analys av multipliciteten mellan objekten  Dvs hur relationerna dem emellan ser ut En skiva kan lånas ut till flera personer (dock ej samtidigt) En person kan låna flera skivor En låt tillhör exakt en skiva En skiva kan innehålla flera låtar En person kan äga flera skivor En skiva ägs av exakt en person

34 RELATIONER ägareskivorlåtar låntagare En Flera

35 EXEMPLARINFORMATION?  Ett verk Ett uttryck av verket −En manifestation av uttrycket  Ett individuellt ting som representerar manifestationen  Functional Requirements for Bibliographic Records (FRBR)

36 FRBR - Exempel  Verk: The Wild Rover Uttryck: The Wild Rover framförd av Dropkick Murphys på Berns −Manifestation: En ljudupptagning av låten från spelningen  Ting: Ett exemplar av en cd innehållande ljudupptagningen av låten från spelningen  Hur gör vi med en skivsamling där vi har flera exemplar av samma manifestation?

37 VERK & EXEMPLAR  I en skivsamling av den här typen dyker det gärna upp flera exemplar av samma skiva  Det är exemplaret vi lånar ut och inte verket  För att hålla reda på vilket exemplar som lånas ut skapar vi en extra tabell

38 LÖSNINGEN… ägareskivor_exemplar låtar låntagare skivor_verk

39 INTE HELT OPTIMALT DOCK…  Vore det inte bättre att registrera lån i en egen tabell?

40 NY LÖSNING… ägareskivor_exemplar låtar lån skivor_verk låntagare

41 DAGS ATT FUNDERA PÅ TABELLERNA  En tabell per objekttyp  Mellantabeller för många till många-relationer låtar (huvudtabell för låtar) skivor_verk (huvudtabell för verk) skivor_exemplar (huvudtabell för exemplar) ägare (huvudtabell för ägare) låntagare (huvudtabell för låntagare) lån_exemplar (mellantabell mellan lån och exemplar) lån (huvudtabell för lån)

42 UTSE NYCKLAR  Primärnycklar och främmande nycklar  En primärnyckel är ett eller flera fält som unikt identifierar en post  En främmande nyckel är ett eller flera fält som refererar till en primärnyckel i en annan tabell för att möjliggöra relationer mellan tabeller  Vi börjar med huvudtabellerna  Princip: följ gaffeln

43 FÖLJ GAFFELN  Primärnyckeln från Ägare följer gaffeln till Skivor_exemplar där den utgör en främmande nyckel ägare ägarnr skivor_exemplar exemplarnr ägarnr

44 NYCKLAR - Huvudtabeller skivor_verk (skivnr, artist, titel, antalSpår, totalSpeltid) skivor_exemplar (exemplarnr, skivnr, ägarnr, beskrivning) låtar (låtnr, låttitel, låtlängd, skivnr) lån (lånnr, låntagarnr, exemplarnr, låndatum, tillbakadatum) låntagare (låntagarnr, namn) ägare (ägarnr, namn) Vi utgår ifrån att låntagaren alltid returnerar skivan på utsatt datum

45 NYCKLAR – Komplett uppsättning skivor_verk (skivnr, artist, titel, antalSpår, totalSpeltid) skivor_exemplar (exemplarnr, skivnr, ägarnr, beskrivning) låtar (låtnr, låttitel, låtlängd, skivnr) lån (lånnr, låntagarnr, exemplarnr, låndatum, tillbakadatum) lån_exemplar (lånnr, exemplarnr) låntagare (låntagarnr, namn) ägare (ägarnr, namn)

46 SKAPA DATABASEN I ACCESS  Detta sparar vi till senare

47 STRUCTURED QUERY LANGUAGE  Generellt databasspråk  SQL är både ett datadefinitionsspråk och ett datamanipulationsspråk  Detta innebär att vi kan dels definiera restriktioner och villkor hos datan och dels hämta, uppdatera, sätta in och ta bort fält och poster i databasen  I SQL anger man vad som ska utföras och inte hur

48 KOMMANDON  Varje sats i SQL innehåller ett kommando som anger vilken operation som ska utföras  SELECT – hämta från databasen  INSERT – sätt in data i databasen  UPDATE – uppdatera data i databasen  DELETE – ta bort data från databasen  SQL kan också användas för att skapa, redigera och ta bort tabeller

49 EXEMPEL: SELECT-sats  Hämta data från alla skivor med 11 spår skivnrartisttitelantalSpårtotalSpeltid 1Chemical Brothers Exit Planet Dust RadioheadKid A Fat Boy SlimHalfway between the gutter and the stars

50 EXEMPEL: SELECT-sats  SELECT artist, titel FROM skivor_verk WHERE antalSpår = 11 ORDER BY artist ASC Hämtar fältvärden för artist och titel i tabellen skivor_verk och sorterar resultatet efter artist i stigande ordning (fallande ordning – DESC)  Tips: använd VERSALER för reserverade ord och gemener för egendefinierade ord

51 SELECT-SATSENS STRUKTUR  SELECT Vilka fält som ska visas i resultatet  FROM Vilken eller vilka tabeller  WHERE Villkor för poster som ska returneras  ORDER BY Fält på vilka sortering ska ske

52 VILLKOR  Tredelat: Fältnamn – jämförelse – fältvärde Operand – operator – operand  namn = 'David'  antalSpår > 10  Fältvärden av typen text omsluts av 'apostrofer'  Villkor kan kombineras med booleska operatorer (AND, OR, NOT IN, <>)

53 TRUNKERING  Görs med ordet LIKE (istället för likhetstecknet) och % som trunkeringsoperator  SELECT * FROM ägare WHERE namn LIKE 'Da%' Returnerar alla ägare som börjar på 'Da'  Maskering (ett tecken) sker med _  'T_m' returnerar 'Tom' och 'Tim'

54 AGGREGATFUNKTIONER  COUNT – räknar poster SELECT COUNT(*) AS antalExemplar FROM skivor_exemplar  SUM – summerar värden SELECT SUM(totalSpeltid) AS antalSekunder FROM skivor_verk  AVG – beräknar medelvärde SELECT AVG(antalSpår) AS genomsnittSpår FROM skivor_verk  MIN, MAX – minsta resp högsta värde

55 KARTESISK PRODUKT OCH JOIN SELECT * FROM skivor_verk, låtar  Returnerar samtliga kombinationer av posterna i skivor_verk och låtar  Restriktioner måste läggas till Rätt låtar ska paras ihop med rätt skivor  Detta kan göras på två sätt

56 UTAN JOIN SELECT * FROM skivor_verk, låtar WHERE skivor_verk.skivnr=låtar.skivnr  Då skivnr är främmande nyckel i låtar kan vi para ihop låtar med rätt skivor  Tabellnamn anges i villkoret för att disambiguera skivnr (som återfinns i bägge tabellerna)

57 MED JOIN SELECT * FROM skivor_verk INNER JOIN låtar ON skivor_verk.skivnr=låtar.skivnr

58 INNER JOIN ELLER OUTER JOIN?  INNER JOIN – endast poster som matchar varandra kombineras  OUTER JOIN – samtliga poster från den ena tabellen plus matchande poster från den andra tabellen

59 INNER VS OUTER JOIN  SELECT * FROM skivor_verk INNER JOIN låtar ON skivor_verk.skivnr=låtar.skivnr Enbart verk som har låtar i db returneras  SELECT * FROM skivor_verk LEFT JOIN låtar ON skivor_verk.skivnr=låtar.skivnr Även verk utan låtar i db returneras

60 TRE TABELLER lån (lånnr, låntagarnr, exemplarnr, låndatum, tillbakadatum) lån_exemplar (lånnr, exemplarnr) skivor_exemplar (exemplarnr, skivnr, ägarnr, beskrivning)

61 UTAN JOIN SELECT * FROM lån, lån_exemplar, skivor_exemplar WHERE lån.lånnr=lån_exemplar.lånnr AND lån_exemplar.exemplarnr= skivor_exemplar.exemplarnr

62 MED JOIN SELECT * FROM lån INNER JOIN lån_exemplar ON lån.lånnr=lån_exemplar.lånnr INNER JOIN skivor_exemplar ON lån_exemplar.exemplarnr= skivor_exemplar.exemplarnr


Ladda ner ppt "DATABASER Digitalisering av kulturarvet. IDAG  Vad är en databas?  Begrepp  Relationer  Datamodeller  Tabeller, fält och poster  Nycklar  Attribut,"

Liknande presentationer


Google-annonser