Databasesystemer,introduksjon · Relasjonsdatabaser...

27
Databasesystemer, introduksjon Evgenij Thorstensen V19 Evgenij Thorstensen Databasesystemer, introduksjon V19 1 / 25

Transcript of Databasesystemer,introduksjon · Relasjonsdatabaser...

Page 1: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Databasesystemer, introduksjon

Evgenij Thorstensen

V19

Evgenij Thorstensen Databasesystemer, introduksjon V19 1 / 25

Page 2: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Kurset

Databasesystemer og databasebruk.

Databaser er abstrakte objekter (datastrukturer, spørrespråk).

Databasesystemer er programvare som tillater oss å håndtere disseobjektene.

Evgenij Thorstensen Databasesystemer, introduksjon V19 2 / 25

Page 3: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Målene i kurset

vet du hva databasehåndteringssystemer (DBMSer) gjør, hvordan devirker og hvordan de er implementert;

har du inngående kjennskap til hvilke teoretiske og praktiske problemersom er knyttet til drift av DBMSer;

har du kunnskap om bruk av avansert SQL og hvordan spørringer kanoptimaliseres;

forstår du de grunnleggende prinsippene for transaksjonshåndtering;

har du kjennskap til hva slags typer transaksjonshåndtering(isolasjonsnivåer) moderne DBMSer tilbyr og hvilke styrker ogsvakheter de enkelte isolasjonsnivåene har;

Evgenij Thorstensen Databasesystemer, introduksjon V19 3 / 25

Page 4: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Databasen som en svart boks

Jeg skriver en spørring i SQL; postgres gjør resten.

Virkeligheten er mer komplisert. Kurset er ment å vise dere hva somskjer under panseret.

Evgenij Thorstensen Databasesystemer, introduksjon V19 4 / 25

Page 5: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Noen problemstillinger

Hva kan man gjøre hvis noen spørringer går tregt?

Hvordan kan mange brukere skrive og lese til/fra samme databasesamtidig uten å ødelegge for hverandre? Og hvordan påvirker detytelsen?

Hva skjer hvis datamaskinen kræsjer midt under en oppdatering avdataene?

Evgenij Thorstensen Databasesystemer, introduksjon V19 5 / 25

Page 6: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Materiale for læringsmålene

Vi vil trenge en del bakgrunnsstoff:

Relasjonsalgebra (for optimisering)

DBsystemers arkitektur

DBsystemers filsystem

Diverse datastrukturer og algoritmer

Ellers kan pensum grovt deles inn i tre deler.

Evgenij Thorstensen Databasesystemer, introduksjon V19 6 / 25

Page 7: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Pensum: Spørringer

SQL og optimisering av spørringer:

Avansert SQL

Optimisering av spørringer (herunder relasjonsalgebra)

Indekser og indeksbruk

Skjemadesign

Evgenij Thorstensen Databasesystemer, introduksjon V19 7 / 25

Page 8: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Pensum: ACID

Hvordan databasesystemer håndterer flere brukere samtidig og sikrerdata:

Transaksjonshåndtering

Logging

Evgenij Thorstensen Databasesystemer, introduksjon V19 8 / 25

Page 9: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Pensum: Andre databaser

Litt om graf- og multimodale DBer.

Evgenij Thorstensen Databasesystemer, introduksjon V19 9 / 25

Page 10: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Praktisk info

To obliger, med tentative frister 1. mars og 3. mai.

Avsluttende skriftlig eksamen uten hjelpemidler.

Viktig om obliger:

Pass på å ikke samarbeide for tett; sjekk obligreglement.

Gruppetimer dedikert til oblighjelp er uken før obligen leveres.

Evgenij Thorstensen Databasesystemer, introduksjon V19 10 / 25

Page 11: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Litt databasehistorie

1960-tallet: IDS, nettverksdatabase, og IMS, hierarkisk database.

Dette er mainframe-tiden. En stor maskin (1 mill. 1964-$) hadde

512 Kbyte RAM

50 Mbyte disk

Annet I/O-utstyr (magnet- og papirbånd, hullkortleser oglinjeskriver)

Nettverks- og hierarkiske databaser likner.

Evgenij Thorstensen Databasesystemer, introduksjon V19 11 / 25

Page 12: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Et eksempel:

set name is EmnerTilbudtowner is Instituttmember is Emne

Hierarkisk database: Asyklisk nettverk av pekere og lister.

Spørringer via et eget språk. Fordeler og ulemper?

Evgenij Thorstensen Databasesystemer, introduksjon V19 12 / 25

Page 13: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Nettverksdatabaser

FordelerKan implementeres lett.Datamodell følger fysisk modell.Lett å lære seg?

UlemperBare lett å skrive spørringer som følger hierarkiet.Oppdateringer?

Evgenij Thorstensen Databasesystemer, introduksjon V19 13 / 25

Page 14: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Relasjonsdatabaser

E. F. Codd. 1970. A relational model of data for large shared databanks. Commun. ACM 13, 6 (June 1970), 377-387.

“Future users of large data banks must be protected from having toknow how the data is organized in the machine (the internalrepresentation). A prompting service which supplies such informationis not a satisfactory solution. Activities of users at terminals and mostapplication programs should remain unaffected when the internalrepresentation of data is changed and even when some aspects of theexternal representation are changed. Changes in data representationwill often be needed as a result of changes in query, update, and reporttraffic and natural growth in the types of stored information.”

Evgenij Thorstensen Databasesystemer, introduksjon V19 14 / 25

Page 15: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Hva mente Codd?

Intern representasjon (filer, pekere) bør ikke vises til bruker.

Brukere jobber med abstrakt datamodell.

Codd foreslo relasjoner som abstrakt datastruktur.

Evgenij Thorstensen Databasesystemer, introduksjon V19 15 / 25

Page 16: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Relasjoner

Tabeller med rader (tupler) og kolonner (attributter).

Et tuppel har en verdi for hvert attributt.

Som matematisk objekt: Mengde av tupler R ⊆ d(A1)× · · · × d(Ak).

Kan manipuleres via operasjoner på tabellene og sammenlikning avverdier.

Evgenij Thorstensen Databasesystemer, introduksjon V19 16 / 25

Page 17: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Egenskaper relasjoner

Hvert attributt har eget domene (mengde av verdier det er lov å bruke)

Alle attributter har ulike navn (hvis vi ikke gir dem rekkefølgenummer)

Relasjoner er mengder: Tupler har ikke rekkefølge, og ingen to er heltlike.

I virkeligheten: Attributter kan ha den spesielle verdien nil (null).

Tabeller tillater like tupler.

Evgenij Thorstensen Databasesystemer, introduksjon V19 17 / 25

Page 18: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Relasjonsdatabaser

Relasjoner er en abstract datamodell. Implementasjon kan endres“fritt”.

Tillater oss å elegant definere redundans og andre egenskaper.

Tillater et elegant og kompakt spørrespråk (relasjonsalgebra) som SQLer basert på.

Tillater “vilkårlige” spørringer, er universell datamodell.

Evgenij Thorstensen Databasesystemer, introduksjon V19 18 / 25

Page 19: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Spol fremover

Relasjonsdatabaser spiste verden (etter hvert).

I dag liker alle å snakke om big data. Når er data store?

Følgende server kan leies til NOK900 per måned:

Cores: 10x 2.20 GHz (Single 10 Core)

RAM: 64 GB DDR4 ECC

HDDs: 2x 1TB SATA 7.2k RPM

Evgenij Thorstensen Databasesystemer, introduksjon V19 19 / 25

Page 20: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Spol fremover

Relasjonsdatabaser spiste verden (etter hvert).

I dag liker alle å snakke om big data. Når er data store?

Følgende server kan leies til NOK900 per måned:

Cores: 10x 2.20 GHz (Single 10 Core)

RAM: 64 GB DDR4 ECC

HDDs: 2x 1TB SATA 7.2k RPM

Evgenij Thorstensen Databasesystemer, introduksjon V19 19 / 25

Page 21: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

NoSQL

Samtidig er både hierarkiske databaser og annet fremdeles i live.

NoSQL er paraplybegrepet for

Dokumentdatabaser

Key-value store

Grafdatabaser

Evgenij Thorstensen Databasesystemer, introduksjon V19 20 / 25

Page 22: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Databasesystemer

Hittil har vi snakket om databaser.

Hva gjør et databasesystem?

Utfører spørringer; manipulerer tabellene/grafene/annet.

Hva mer?

Evgenij Thorstensen Databasesystemer, introduksjon V19 21 / 25

Page 23: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Databasesystemer

Hittil har vi snakket om databaser.

Hva gjør et databasesystem?

Utfører spørringer; manipulerer tabellene/grafene/annet.

Hva mer?

Evgenij Thorstensen Databasesystemer, introduksjon V19 21 / 25

Page 24: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

Den harde virkelighet

Flere brukere jobber samtidig.

Vi har ikke kontroll på hva de finner på.

Datamaskiner og disker kan dø/feile.

For distribuerte databaser: Nettverket kan gå ned/meldinger kan gåtapt.

Evgenij Thorstensen Databasesystemer, introduksjon V19 22 / 25

Page 25: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

ACID

Fire viktige egenskaper

Atomicity

Consistency

Isolation

Durability

AC handler om korrekthet; I om flerbrukerproblemer; D om datatap.

Evgenij Thorstensen Databasesystemer, introduksjon V19 23 / 25

Page 26: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

ACID på vanlige maskiner

Vi vil ha disse egenskapene på vanlige maskiner.

Altså under windows/linux/whatever.

DBsystemer lagrer derfor alt som vanlige filer, men med eget filsysteminni.

Lure algoritmer over lure datastrukturer garanterer ACID effektivt.

Evgenij Thorstensen Databasesystemer, introduksjon V19 24 / 25

Page 27: Databasesystemer,introduksjon · Relasjonsdatabaser E.F.Codd.1970.Arelationalmodelofdataforlargeshareddata banks.Commun.ACM13,6(June1970),377-387 ...

user interfaces

query and transaction execution

Query compilerQuery

compiler

Storage managerStorage manager

Buffer manager

Buffer manager

Execution managerExecution manager

Concurrency control

Concurrency control

LoggingLogging

DDL compiler

DDL compiler

Casual users

Database administrators

38INF3100 - xx.1.2017 – Ellen Munthe-Kaas

Typ

iske

kom

pone

nter

i et

DB

MS DDL

statementsDDL

statementsPrivileged commandsPrivileged commands

Interactive query

Interactive query

Application programs

Application programs

Storage Storage

syst

em c

ata-

logu

e/da

ta

dict

ion

ary

stor

ed

dat

abas

e

Application programmers

Parametric users

Query optimiser

Query optimiser

Pre-compiler

Pre-compiler

Host language compiler

Host language compiler

Compiled transactions

Compiled transactions

DML compiler

DML compiler

RecoveryRecovery

BackupBackup

users

Evgenij Thorstensen Databasesystemer, introduksjon V19 25 / 25