Databasesystemer,introduksjon · Relasjonsdatabaser...
Transcript of Databasesystemer,introduksjon · Relasjonsdatabaser...
Databasesystemer, introduksjon
Evgenij Thorstensen
V19
Evgenij Thorstensen Databasesystemer, introduksjon V19 1 / 25
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
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
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
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
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
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
Pensum: ACID
Hvordan databasesystemer håndterer flere brukere samtidig og sikrerdata:
Transaksjonshåndtering
Logging
Evgenij Thorstensen Databasesystemer, introduksjon V19 8 / 25
Pensum: Andre databaser
Litt om graf- og multimodale DBer.
Evgenij Thorstensen Databasesystemer, introduksjon V19 9 / 25
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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