Databasesystemer, oversikt Evgenij Thorstensen V18 Evgenij Thorstensen Databasesystemer, oversikt V18 1 / 23
Kurset Databasesystemer og databaser. Databaser er abstrakte objekter (datastrukturer, spørrespråk). Databasesystemer er programvare som tillater oss å håndtere disse objektene. Evgenij Thorstensen Databasesystemer, oversikt V18 2 / 23
Kursets temaer Databaseteori/databasedesign Funksjonelle avhengigheter, nokler, normalformer, flerverdiavhengigheter Relasjonsalgebra SQL Databasesystemer Logging Transaksjoner Indeksering Evgenij Thorstensen Databasesystemer, oversikt V18 3 / 23
Kursets temaer, forts. Distribuerte databaser XML Grafdatabaser Distribuert commit Avansert Optimisering av sporringer (relalg pluss sql) Uløste problemer/forskningsfronten Evgenij Thorstensen Databasesystemer, oversikt V18 4 / 23
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 og linjeskriver) Nettverks- og hierarkiske databaser likner. Evgenij Thorstensen Databasesystemer, oversikt V18 5 / 23
Et eksempel: set name is EmnerTilbudt owner is Institutt member is Emne Hierarkisk database: Asyklisk nettverk. Spørringer via et eget språk. Fordeler og ulemper? Evgenij Thorstensen Databasesystemer, oversikt V18 6 / 23
Nettverksdatabaser Fordeler Kan implementeres lett. Datamodell følger fysisk modell. Lett å lære seg? Ulemper Bare lett å skrive spørringer som følger hierarkiet. Oppdateringer? Evgenij Thorstensen Databasesystemer, oversikt V18 7 / 23
Relasjonsdatabaser E. F. Codd. 1970. A relational model of data for large shared data banks. Commun. ACM 13, 6 (June 1970), 377-387. Future users of large data banks must be protected from having to know how the data is organized in the machine (the internal representation). A prompting service which supplies such information is not a satisfactory solution. Activities of users at terminals and most application programs should remain unaffected when the internal representation of data is changed and even when some aspects of the external representation are changed. Changes in data representation will often be needed as a result of changes in query, update, and report traffic and natural growth in the types of stored information. Evgenij Thorstensen Databasesystemer, oversikt V18 8 / 23
Hva mente Codd? Intern representasjon (filer, pekere) bør ikke vises til bruker. Brukere jobber med abstrakt datamodell. Codd foreslo relasjoner som abstrakt datastruktur. Dette ble siden standard i hierarkiske databaser også. Evgenij Thorstensen Databasesystemer, oversikt V18 9 / 23
Relasjoner Tabeller med rader (tupler) og kolonner (attributter). Et tuppel har en verdi for hvert attributt. Som matematisk objekt: Mengde av tupler R d(a 1 ) d(a k ). Kan manipuleres via operasjoner på tabellene og sammenlikning av verdier. Evgenij Thorstensen Databasesystemer, oversikt V18 10 / 23
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 helt like. I virkeligheten: Attributter kan ha den spesielle verdien nil (null). Tabeller tillater like tupler. Evgenij Thorstensen Databasesystemer, oversikt V18 11 / 23
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 SQL er basert på. Tillater vilkårlige spørringer, er universell datamodell. Evgenij Thorstensen Databasesystemer, oversikt V18 12 / 23
Spol fremover Relasjonsdatabaser spiste verden. Samtidig er både hierarkiske databaser og annet fremdeles i live. NoSQL er paraplybegrepet for Dokumentdatabaser Key-value store Grafdatabaser I tillegg har vi distribuerte databaser som eget tema. Evgenij Thorstensen Databasesystemer, oversikt V18 13 / 23
Databasesystemer Hittil har vi snakket om databaser. Hva gjør et databasesystem? Evgenij Thorstensen Databasesystemer, oversikt V18 14 / 23
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, oversikt V18 14 / 23
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, oversikt V18 15 / 23
ACID Fire viktige egenskaper Atomicity Consistency Isolation Durability Evgenij Thorstensen Databasesystemer, oversikt V18 16 / 23
Front-end Tilgangsrettigheter, diverse APIer. Optimisering og indeksering. Evgenij Thorstensen Databasesystemer, oversikt V18 17 / 23
users Database administrators Casual users Application programmers Parametric users Typiske komponenter i et DBMS DDL statements DDL compiler user interfaces Privileged commands query and transaction execution stored database system catalogue/data dictionary Storage manager Storage Interactive query Query compiler Query optimiser Buffer manager Application programs Precompiler DML compiler Execution manager Host language compiler Compiled transactions Concurrency control Logging Backup Recovery INF3100 - xx.1.2017 Ellen Munthe-Kaas 38 Evgenij Thorstensen Databasesystemer, oversikt V18 18 / 23
Datamodellering I en database ønsker vi å lagre data om verden. Data er strenger/tall/datoer/etc. Visse dataverdier hører sammen. Naturlig å modellere dette som objekter og koblinger mellom dem. Evgenij Thorstensen Databasesystemer, oversikt V18 19 / 23
Mer om relasjoner som datamodell Relasjoner samler dataverdier. Kan sees på som objekter og koblinger mellom objekter. Dette likner på ORM, og mer generelt på Entity-Relationship modell. Hva er et objekt? Evgenij Thorstensen Databasesystemer, oversikt V18 20 / 23
Objekter og relasjoner Et objekt er en samling av attributtverdier. (Tenk java) Vare(Varenr, Navn, Beholdning) Eierskap(Bilnr, Personnr) Eksamensresultat(Studentnr, Kurskode, Karakter) Vi kan snakke om gyldige og ugyldige tupler/verdier. Evgenij Thorstensen Databasesystemer, oversikt V18 21 / 23
Nøkler Hvis en tabell representerer en klasse, trenger vi å kunne finne objekter. Kan velge noen attributter til å unikt identifisere et tuppel (primærnøkkel). Kan gjenbruke disse attributtene som en peker til dette objektet (fremmednøkkel). Bil(Bilnr, Merke, Motor...); Eierskap(Bilnr, Personnr). Evgenij Thorstensen Databasesystemer, oversikt V18 22 / 23
Nøkler, peker videre Primær- og fremmednøkler er eksempler på integritetsregler. Bak disse enkle observasjonene ligger det interessant teori. Kan se på primærnøkkel/nøkler enten som noe vi krever eller noe som er tilfelle i den virkelige verden. Evgenij Thorstensen Databasesystemer, oversikt V18 23 / 23