1 / 62

DATABASER

DATABASER. Digitalisering av kulturarvet. IDAG. Vad är en databas? Begrepp Relationer Datamodeller Tabeller, fält och poster Nycklar Attribut, egenskaper och fält Normalisering SQL. VAD ÄR EN DATABAS?. En samling av logiskt organiserade data

vera
Télécharger la présentation

DATABASER

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  11. RELATIONSDATAMODELLEN Attribut Relation Tipel

  12. TABELLER, FÄLT OCH POSTER 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 Primärnyckel (surrogatnyckel)

  15. NYCKLAR Primärnyckel Främmande nyckel

  16. NYCKLAR

  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)

  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)

  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) skivor skivnr lån personnr 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 ägare skivor lå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… skivor_verk låtar ägare skivor_exemplar låntagare

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

  40. NY LÖSNING… skivor_verk låtar ägare skivor_exemplar lån 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

  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

More Related