Presentation laddar. Vänta.

Presentation laddar. Vänta.

B2KUNO Johan Eklund. Lästips  Connolly T., Begg C. (2002). Database systems.   Eklund, Johan (2005).

Liknande presentationer


En presentation över ämnet: "B2KUNO Johan Eklund. Lästips  Connolly T., Begg C. (2002). Database systems.   Eklund, Johan (2005)."— Presentationens avskrift:

1 B2KUNO Johan Eklund

2 Lästips  Connolly T., Begg C. (2002). Database systems.   Eklund, Johan (2005). Tio steg till en databas i Microsoft Access.

3 Data och information  Data : numeriska värden och text som utan kontext saknar självständig mening  Information : en uppsättning data som genom kontext och/eller struktur har självständig mening  Kunskap : information som har blivit medvetandegjord

4 Informationsteori (Shannon 1948)  Information kan ses som ett meddelande från en sändare till en mottagare  Mängden information i ett meddelande beräknas på basis av hur mycket nytt eller oväntat meddelandet innehåller

5 Vad är en databas?  En samling av logiskt organiserade data  Genom att använda en databas kan dataentiteter effektivt lagras, relateras till varandra (och därmed bilda information) samt hämtas upp (återvinnas)  Databas  dokument  Databas  databashanteringssystem

6 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  Exempel: Access, SQL Server, Oracle, MySQL, FileMaker

7 Datamodeller  Datamodell: en övergripande ramverk för hur data skall organiseras i en databas  Objektorienterade  Post-orienterade  Nätverksdatamodellen  Hierarkiska datamodellen  Relationsdatamodellen

8 Nu blir det lite matematik...

9 Mängdlära (set theory)  En mängd är en oordnad samling av unika objekt (dubbletter förekommer inte)  Notation:  A = {10, 3, 7, 24, 39}  En tipel (eng. tuple) är en ordnad sekvens av objekt där dubbletter kan förekomma  Notation:  A = (2, 5, 5, 3, 8)

10 Tillhörighet  x  Aobjektet x tillhör mängden A  A = {apelsin, banan, citron}, x = banan  x  Aobjektet x tillhör inte mängden A  A = {apelsin, banan, citron}, x = äpple

11 Delmängd  B  AB är en äkta delmängd till A  A = {3, 7, 10, 24, 39}, B = {7, 24, 39}  B  AB är en delmängd till A  A = {3, 7, 10, 24, 39}, B = {3, 7, 10, 24, 39}

12 Union och snitt  A  Bunionen av mängderna A och B  A = {3, 5, 8} B = {5, 6, 8} A  B = {3, 5, 6, 8}  A  Bsnittet av mängderna A och B  A = {3, 5, 8} B = {5, 6, 8} A  B = {5, 8}

13 Cartesisk produkt  En cartesisk produkt A  B av två mängder A och B är mängden av alla ordnade par (a, b) som kan bildas från elementen i A respektive B

14 Relation  En relation R är (informellt) en struktur för påståenden om tillstånd  Formellt: R  A 1  A 2  …  A n  Denna bok har titeln Örnens Gåva, är skriven av Carlos Castaneda och är utgiven år 1986  (Örnens Gåva, Carlos Castaneda, 1986)

15 Relationsdatamodellen  Codd, E. F. (1970). A relational model of data for large shared data banks.  Data struktureras i relationer  Relationer lagras som poster i tabeller  Poster identifieras genom nycklar

16 Relationsmodellen PlaggFärgStorlekPris ArmébyxaGrå52249 ChinosBeige54199 JeansIndigoblå Attribut Relation Tipel

17 Tabeller, fält och poster PlaggFärgStorlekPris ArmébyxaGrå52249 ChinosBeige54199 JeansIndigoblå Fält Tabell Post

18 Attribut / egenskaper / fält  När du vet vad du skall beskriva är det dags att fundera på hur  Egenskaper / attribut  Fält  235, , ”Information Retrieval”

19 Datatyper  Anger hur attributvärden är beskaffade  Numeriskt värde [Tal]  Sträng (sekvens av tecken där minst ett är icke-numeriskt, "text") [Text]  Datum [Datum/tid]

20 Datatyper plagg PKartnrText färgText storlekTal prisValuta

21 Nycklar  Primärnyckel (primary key): ett fält, eller en kombination av fält, som kan användas för att unikt identifiera en post  Naturlig primärnyckel resp surrogatnyckel  Främmande nyckel (foreign key): ett fält, eller en kombination av fält, som pekar på en primärnyckel

22 Nycklar låntagare PKkortnr efternamn förnamn telefon lån FKkortnr bok datum

23 Frågespråk

24 Relationsalgebra  Föreslagen av E.F. Codd som komplement till relationsdatamodellen  Språk innehållande operationer på relationer (tabeller)  Bygger på mängdlära  Föregångare till dagens frågespråk

25 Relationsalgebra  Urval:  age ≥ 30 (Person)  Projektion:  forename,surname (Person)  Cartesisk produkt: Person × Resultat  Union:   age ≥ 30 (Person)   surname = Karlsson (Person)  Snitt:   age ≥ 30 (Person)   surname = Karlsson (Person)

26 SQL, Structured Query Language  Generellt databasspråk  Är ett:  datadefinitionsspråk (DDL)  datamanipulationsspråk (DML)  Deklarativt språk: man anger vad som skall utföras, inte hur det skall gå till

27 Kommandon i SQL  Varje sats i SQL innehåller ett kommando som anger vilken operation som skall utföras  SELECT – hämta  INSERT – lägg till  UPDATE – uppdatera / modifiera  DELETE – ta bort

28 En SELECT-sats PlaggFärgStorlekPris ArmébyxaGrå52249 ChinosBeige54199 JeansIndigoblå Fält Tabell Post

29 En SELECT-sats SELECT plagg, färg, storlek, pris FROM sortiment WHERE pris < 200 ORDER BY plagg ASC, pris DESC Tips: Tips: använd VERSALER för reserverade ord och gemener för egendefinierade ord

30 SELECT-satsens struktur 1. SELECT 2. Vilka fält som skall visas i resultatet 3. FROM 4. Vilken eller vilka tabeller 5. WHERE 6. Villkor för vilka poster som skall returneras 7. ORDER BY 8. Fält på vilka sortering skall ske

31 Villkor för urval av poster  Ett villkor är alltid tredelat:   efternamn = 'Andersson'  betyg > 3  Observera att fältvärden av typen text skall omgärdas av apostrof  Villkor kan kombineras med boolska operatorer (AND, OR, NOT IN, <>)

32 Trunkerad sökning  Sökning med trunkering är exempel på en teknik som kallas mönstermatchning  Trunkering anges med ordet LIKE (istället för =) och % som trunkeringsoperator  SELECT * FROM person WHERE efternamn LIKE 'Lun%'  S k maskning sker med _ (understreck)

33 Funktion  En funktion f är en binär relation (x i, y i ) sådan att om y i  y j gäller även x i  x j, annorlunda uttryckt: f (x i )  f (x j )  x i  x j

34 Aggregatfunktioner  Funktioner som utför beräkningar på en eller flera poster och returnerar sammanfattande värden  COUNT: räknar poster  SUM: summerar värden  AVG: beräknar medelvärde  MIN, MAX: minsta resp. största värde

35 Cartesisk produkt och JOIN låntagare PKkortnr efternamn förnamn telefon lån FKkortnr bok datum

36 Cartesisk produkt  SELECT * FROM låntagare, lån kortnrefternamnförnamntelefonkortnrbokdatum 25KarlssonJan Livet KarlssonJan Ofredsår HagströmLena Om ett ord HagströmLena I cirkelns mitt från tabellen låntagarefrån tabellen lån

37 Cartesisk produkt  För att få poster där informationen ”stämmer” filtrerar vi resultatet på relationen primärnyckel – främmande nyckel  SELECT * FROM låntagare, lån WHERE låntagare.kortnr = lån.kortnr AND datum >= # #

38 JOIN  I en JOIN-operation mellan två tabeller A och B kombineras poster och fält i A med poster och fält i B enligt ett villkor  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

39 INNER JOIN  SELECT * FROMlåntagare INNER JOIN lån ON låntagare.kortnr = lån.kortnr WHERE datum >= # #  SELECT * FROM låntagare INNER JOIN lån ON låntagare.kortnr = lån.kortnr WHERE datum >= # #

40 LEFT OUTER JOIN  SELECT * FROM titles LEFT JOIN publishers ON titles.pub_id = publishers.pub_id titlespub_id = NULL  Denna konstruktion garanterar att poster tas med från titles även där pub_id = NULL

41 Datamodellering All beskrivning av verkligheten sker genom att identifiera objekt, egenskaper hos objekt och relationer mellan objekt.

42 Lästips  Unified Modeling Language (UML)  Hidefjäll, M. & Axelsson, L. (1993). Praktisk datamodellering – ta greppet om begreppen.

43 Databasdesign  Konceptuell design: vad skall jag beskriva, vilka objekt finns, hur är de relaterade till varandra  Logisk design: tabeller, relationer  Fysisk design: anpassning för det konkreta DBMS:et

44 Konceptuell design Låntagardatabas – situationsbeskrivning Böcker LånLåntagare utför består av 1n 1 n

45 Konceptuell design  Bok: författare, titel, isbn, hyllplacering  Låntagare: förnamn, efternamn, telefon, adress, kortnr  Lån: isbn, kortnr, datum

46 Relationstyper  1:1-relationer (binära relationer)  person - låntagare  1:N-relationer  låntagare - lån  N:N-relationer  låntagare - bok

47 Relationsintegritet  Entitetsintegritet: en primärnyckel kan inte ha värdet NULL  Referensintegritet: om en främmande nyckel finns i en tabell måste motsvarande värde existera i den relaterade tabellen

48 Relationsintegritet låntagare PKkortnr efternamn förnamn telefon lån FKkortnr bok datum

49 Logisk design låntagare PKkortnr efternamn förnamn telefon lån FKkortnr FKisbn datum bok PKisbn titel författare

50 Normalisering  En process som delar upp enskilda tabeller i flera tabeller för att undvika upprepningar (redundans) av data

51 Första normalformen (1NF)  Data med multipla värden per objekt tilldelas egen tabell kortnrnamnbokdatum 012Lars Svensson Malin Bergkvist

52 Andra normalformen (2NF)  Attribut som inte är funktionellt beroende av hela primärnyckeln placeras i egen tabell lån FK, PKkortnr FK, PKisbn titel författare PKdatum bok PKisbn titel författare

53 Tredje normalformen (3 NF)  Attribut som är funktionellt beroende av andra attribut, vilka inte är nycklar, placeras i egen tabell person PKperson_id förnamn efternamn postnr postort

54 Fysisk design låntagare PKkortnrTalNOT NULL EfternamnText (40)NOT NULL FörnamnText (40)NOT NULL TelefonText (20)NULL


Ladda ner ppt "B2KUNO Johan Eklund. Lästips  Connolly T., Begg C. (2002). Database systems.   Eklund, Johan (2005)."

Liknande presentationer


Google-annonser