Databashantering

Download Report

Transcript Databashantering

Databaskonstruktion

@ B2KUNO Johan Eklund

Lästips

 Connolly T., Begg C. (2002).

Database systems

.

 http://www.w3schools.com/sql  Eklund, Johan (2005). Tio steg till en databas i Microsoft Access. http://www.adm.hb.se/~jek/b2kuno/tensteps.html

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

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 H b ( x )   i n   1 p ( i ) log b p ( i )

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

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

Datamodeller

  Datamodell: en övergripande ramverk för hur data skall organiseras i en databas Objektorienterade 

Post-orienterade

 Nätverksdatamodellen  Hierarkiska datamodellen 

Relationsdatamodellen

Nu blir det lite matematik...

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)

Tillhörighet

x

A

objektet

x

tillhör mängden 

A

= {apelsin, banan, citron},

x

= banan

A

x

A

objektet

x

tillhör inte mängden 

A

= {apelsin, banan, citron},

x

= äpple

A

Delmängd

B

A B

är en äkta delmängd till 

A

= {3, 7 , 10, 24 , 39 },

B

= {7, 24, 39}

A

B

A B

är en delmängd till

A

A

= {3, 7, 10, 24, 39},

B

= {3, 7, 10, 24, 39}

Union och snitt

A

 

B

unionen av mängderna

A A

= {3, 5, 8}

B

= {5, 6, 8}

A

 och

B B

= {3, 5, 6, 8} 

A

 

A B

snittet av mängderna

A

= {3, 5 , 8 }

B

= { 5 , 6, 8 }

A

B

och

B

= {5, 8}

Cartesisk produkt

 En cartesisk produkt mängder

A

och

B A

B

av två är mängden av alla ordnade par (

a

,

b

) som kan bildas från elementen i

A

respektive

B

A

B

 {(

a

,

b

) |

a

A

och

b

B

}

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

skriven av har titeln

Örnens Gåva,

är

Carlos Castaneda och

är utgiven år

1986  (Örnens Gåva, Carlos Castaneda, 1986)

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

Relationsmodellen

Relation Attribut

Plagg Färg

Armébyxa Grå Chinos Jeans Beige

Storlek

52 54 Indigoblå 108

Pris

249 199 199 Tipel

Tabeller, fält och poster

Tabell Fält

Plagg Färg

Armébyxa Grå Chinos Jeans Beige

Storlek

52 54 Indigoblå 108

Pris

249 199 199 Post

Attribut / egenskaper / fält

 När du vet beskriva är det dags att fundera på

vad hur

du skall  Egenskaper / attribut  Fält  235, 2006-01-16, ”Information Retrieval”

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]

Datatyper

PK artnr färg storlek pris

plagg

Text Text Tal Valuta

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):

en kombination av fält, som pekar på en primärnyckel ett fält, eller

Nycklar

låntagare

PK kortnr efternamn förnamn telefon

lån

FK kortnr bok datum

Frågespråk

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

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)

SQL

, Structured Query Language  Generellt databasspråk  Är ett:  datadefinitionsspråk (DDL)  datamanipulationsspråk (DML)  Deklarativt språk: man anger

vad

skall utföras, inte

hur

som det skall gå till

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

En SELECT-sats

Tabell Fält

Plagg Färg

Armébyxa Grå Chinos Jeans Beige

Storlek

52 54 Indigoblå 108

Pris

249 199 199 Post

En SELECT-sats

SELECT plagg, färg, storlek, pris FROM sortiment WHERE pris < 200 ORDER BY plagg ASC, pris DESC

Tips: använd VERSALER för reserverade ord och gemener för egendefinierade ord

SELECT-satsens struktur

6.

7.

8.

1.

2.

3.

4.

5.

SELECT

Vilka fält som skall visas i resultatet

FROM

Vilken eller vilka tabeller

WHERE

Villkor för vilka poster som skall returneras

ORDER BY

Fält på vilka sortering skall ske

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, <>)

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)

Funktion

 En funktion om

y i

y j f

är en binär relation (

x i

,

y i

) gäller även

x i

x j

sådan att , annorlunda uttryckt:

f

(

x i

) 

f

(

x j

) 

x i

x j

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

Cartesisk produkt och JOIN

låntagare

PK kortnr efternamn förnamn telefon

lån

FK kortnr bok datum

Cartesisk produkt

SELECT * FROM låntagare, lån

från tabellen

låntagare

från tabellen

lån kortnr 25

25

32

32

efternamn förnamn

Karlsson Jan Karlsson Hagström Hagström Jan Lena Lena

telefon

------- ------- ------- --------

kortnr 25

28

32

40

bok

Livet Ofredsår Om ett ord I cirkelns mitt

datum

060202 060203 060126 060124

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 >= #2006-02-01#

JOIN

 I en JOIN operation mellan två tabeller

A

och

B

kombineras poster och fält i

A

poster och fält i

B

enligt ett villkor med  

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

INNER JOIN

SELECT * FROM låntagare INNER JOIN lån ON låntagare.kortnr = lån.kortnr

WHERE datum >= #2006-02-01#

LEFT OUTER JOIN

SELECT * FROM titles LEFT JOIN publishers ON titles.pub_id = publishers.pub_id

 Denna konstruktion garanterar att poster tas med från

titles

även där

pub_id = NULL

Datamodellering

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

Lästips

 Unified Modeling Language (UML)  Hidefjäll, M. & Axelsson, L. (1993).

Praktisk datamodellering – ta greppet om begreppen

.

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

Konceptuell design

Låntagardatabas – situationsbeskrivning Låntagare 1 utför n Lån n Böcker 1 består av

Konceptuell design

Bok:

författare, titel, isbn, hyllplacering 

Låntagare:

förnamn, efternamn, telefon, adress, kortnr 

Lån:

isbn, kortnr, datum

Relationstyper

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

Relationsintegritet

Entitetsintegritet:

inte ha värdet NULL en primärnyckel kan 

Referensintegritet:

om en främmande nyckel finns i en tabell måste motsvarande värde existera i den relaterade tabellen

Relationsintegritet

låntagare

PK kortnr efternamn förnamn telefon

lån

FK kortnr bok datum

Logisk design

PK

låntagare

kortnr efternamn förnamn telefon FK FK

lån

kortnr isbn datum PK

bok

isbn titel författare

Normalisering

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

Första normalformen (1NF)

 Data med multipla värden per objekt tilldelas egen tabell

kortnr namn

012 236 Lars Svensson Malin Bergkvist

bok datum

0-123-45678-9 20030628 1-234-56789-0 20030628 2-345-67890-1 20030804 3-456-78901-2 20030804

Andra normalformen (2NF)

 Attribut som inte är funktionellt beroende av hela primärnyckeln placeras i egen tabell

lån

FK, PK kortnr FK, PK isbn PK titel författare datum

bok

PK isbn titel författare

Tredje normalformen (3 NF)

 Attribut som är funktionellt beroende av andra attribut, vilka inte är nycklar, placeras i egen tabell

person

PK person_id förnamn efternamn postnr postort

Fysisk design

låntagare

PK kortnr Efternamn Förnamn Telefon Tal Text (40) Text (40) Text (20) NOT NULL NOT NULL NOT NULL NULL