45
Datenbanksysteme Einführung und Grundlagen Burkhardt Renz Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2020

Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

DatenbanksystemeEinführung und Grundlagen

Burkhardt Renz

Fachbereich MNITechnische Hochschule Mittelhessen

Sommersemester 2020

Page 2: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Gliederung der Veranstaltung

GrundlagenÜberblick über das Datenbank-ManagementDatenbankarchitektur und DatenunabhängigkeitDatenmodelle

Das relationale ModellSQLRelationen und relationale AlgebraDatenbankintegrität

Datenbank-EntwurfSemantische Modellierung – Entity/Relationship-ModellSchema-EntwurfFunktionale Abhängigkeiten und Normalformen

Page 3: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Gliederung der Veranstaltung

Transaktionen und Synchronisation konkurrierender ZugriffeTransaktionenRecoveryIsolationslevel in SQL

Verwendung von DatenbanksystemenProgrammierung von Datenbank-Zugriffen mit JDBCZugriffsrechte und Datensicherheit

Page 4: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Ziele

Konzepte von DBMS – was steckt dahinter?– keine speziellen ProdukteSQL anwenden könnenInformationen strukturieren könnenProgrammieren mit Datenbanken – erste Schritte

Page 5: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Literatur

Gunter Saake, Kai-Uwe Sattler, Andreas Heuer: Datenbanken– Konzepte und Sprachen mitpThomas Studer: Relationale Datenbanken Springer ViewegRamez Elmasri, Shamkant B. Navathe: Grundlagen vonDatenbanksystemen – Bachelorausgabe Pearson StudiumMatthias Schubert: Datenbanken – Theorie, Entwurf undProgrammierung relationaler Datenbanken TeubnerWolfgang Gerken: Datenbanksysteme für DummiesWiley-VCHLehrbücher von Kifer, Bernstein und LewisElmasri und NavatheC.J. DateSilberschatz, Korth und SudarshanUllman, Garcia-Molina und Widom . . .

Page 6: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Internet-Quellen

Jennifer Widom: Introduction to Databases Online-Kurs derStanford University https://www.youtube.com/playlist?list=PLroEs25KGvwzmvIxYHRhoGTz9w8LeXek0

GNU: SQLtutor Interaktiver Web-basierter Tutor für SQLhttp://sqltutor.fsv.cvut.cz

Spiel zum Erlernen von SQL: http://www.sql-island.de/

SQL-Tutorial: https://sqlbolt.com/

Übungen zu SQL: https://www.pgexercises.com/

Page 7: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Übersicht

Warum Datenbankmanagementsysteme?Eine kleine GeschichteWas ist ein DBMS?Begriffe

Datenunabhängigkeit und DatenbankarchitekturModell, Schema, ZustandANSI/SPARC-Architektur & DatenunabhängigkeitDatenbanksprache

Datenmodelle

Page 8: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Ein erfolgreicher Web-Shop

Wir machen einen Web-Shop zum Verkauf von Spitzenweinenauf.Speichern von Daten wird notwendig: Artikel, Kunden,Aufträge. . .Speichern der Daten im Dateisystem, also: eine Datei fürArtikel, eine Datei für Kunden, eine Datei für Bestellungenusw.Welche Probleme treten auf?

DatenredundanzAnwendungen müssen Navigation programmierenAbhängigkeit aller Verwender von der Repräsention der DatenWenn mehrere Verwender die Daten gleichzeitig verändernwollen, können die Daten inkonsistent werden

Das kann ja doch nicht die Wahrheit sein!

Page 9: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Ein Zitat

Das Problem wurde schon vor langer Zeit erkannt und auch gelöst:

Future users of large data banks must be protected fromhaving to know how the data is organized in the machine(the internal representation). ... Activities of users at ter-minals and most application programs should remain unaf-fected when the internal representation of data is changedand even when some aspects of the external representationare changed. Changes in data representation will often beneeded as a result of changes in query, update, and reporttraffic and natural growth in the types of stored informa-tion.

– E.F. CoddQuelle: E. F. Codd: A Relational Model of Data for Large SharedData Banks Communications of the ACM Juni 1970

Page 10: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Wie sieht dann so eine relationale Datenbank aus?

Artikel:ArtNr Bez Weingut Jahrgang Farbe Preis

100001 Les Châteaux Louis Max 2002 rot 17.90100002 Chablis Louis Max 2005 weiß 15.50100003 Château Caraguilhes Louis Max 2005 rosé 14.90604851 Prosecco Val Monte Cave Bellenda <null> weiß 7.60145119 Le Cop de Cazes Domaine Cazes 2004 rot 6.90

Page 11: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Weiter die Beispieldatenbank Wein

Lieferant:LftNr Firma Postfach PLZ Ort

1 Weinimport Lehr 45367 F-68567 Colmar2 Bremer Weinkontor 56 28195 Bremen

LieferBez:LftNr ArtNr

1 1000011 1000021 1000032 1000022 1451192 604851

Page 12: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Weiter die Beispieldatenbank Wein

Kunde:KndNr Name Vorname Str PLZ Ort

100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl100102 Kehl Thomas Im Riesling 3 68734 Eltville100105 Riesling Karin 67, Rue du Château F-68567 Colmar

Auftrag und AuftrPos:AuftrNr Datum KndNr

1003 2007-03-01 1001011001 2006-10-12 1001011002 2006-02-12 1001021004 2006-02-12 <null>

AuftrNr Anzahl ArtNr

1003 12 1000011003 12 1000021003 12 1000031001 1 1000011001 1 1000021001 1 1000031001 1 1451191002 48 100003

Page 13: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Definition

Ein Datenbankmanagementsystem (DBMS) ist eine Soft-ware, die große Mengen von persistenten Daten für Spei-cherung und Zugriff verwaltet, und zwar

effizient,zweckmäßig,sicher undfür den parallelen Zugriff vieler Anwender undAnwendungen.

Page 14: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Diskussion, 1

große Menge von Datenviel zu groß für den Hauptspeicherpersistente DatenDaten bleiben erhalten, auch wenn Programme, die sieverwenden, beendet werdenMultiuser-ZugriffSynchronisation der ZugriffeVerschiedene Sichten für verschiedene Anwendungen

Page 15: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Diskussion, 2

sicherin Bezug auf Systemausfällein Bezug auf Berechtigungen von Anwendernzweckmäßigeinfache „Kommandos“ für den Zugriffaber auch: es ist einfach möglich, neue, bisher nichtvorgesehene Abfragen zu macheneffizientGeschwindigkeit eines ZugriffsZahl der Transaktionen in einer bestimmten Zeit

Page 16: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Arten von Datenbanksystemen

Informations- und Verbuchungssysteme, z.B. Reisebuchung,Finanzielle Transaktionen etc.OLTP = Online Transaction ProcessingMultimedia-DatenbankenGeografische Informationssysteme (GIS)Data Warehouses, Informationssysteme für strategischeEntscheidungenOLAP = Online Analytic ProcessingEchtzeit-Datenbanksysteme, z.B. zur ProduktionssteuerungInternet-Suchmaschinen, Information Retrieval

Schwerpunkt der Vorlesung: klassische Informationssysteme

Page 17: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Einige Begriffe

Daten = bekannte Tatsachen über die interessierendeDomäne (Miniwelt)Datenbank = strukturierte Sammlung von Daten über eineMiniwelt, d.h.

logisch zusammenhängendsystematisch aufgezeichnetgespeichert und gepflegtzweckmäßig für (evtl. verschiedene) Anwender

Datenbankmanagementsystem (DBMS) = Software zumErstellen und Pflegen von Datenbanken; generisch, d.h.unabhängig von einem bestimmten AnwendungsgebietDatenbanksystem = Einsatz eines DBMS für eine bestimmteDatenbank und bestimmte Anwendungen

Page 18: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Was leistet ein DBMS?

Datenbank definierenTabellen, Struktur der Datensätze in den Tabellen,Datentypen, IntegritätsbedingungenDatenbank konstruierenDaten in die Datenstruktur einbringen und speichern, oft ausanderen elektronischen QuellenDatenbank verwendenAnfragen stellen = neue zutreffende Aussagen aus bekanntenFakten herleitenDaten pflegen = Aktualisieren der Daten, damit sie dem„Zustand“ der (Mini-)Welt immer entsprechen

Page 19: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Merkmale des Datenbankansatzes

Gemeinsamer Datenbestand, integrierte Daten fürverschiedene Anwendungen, gemeinsame Nutzung derselbenDatenDatenunabhängigkeit = Immunität von Anwendungen inBezug auf Änderungen der physischen Repräsentation derDaten und von ZugriffstechnikenUnterstützung spezifischer Sichten auf die Daten, auchverschiedener BerechtigungenSteuerung des Mehrbenutzerbetriebs = Synchronisationkonkurrierender Zugriffe.

Page 20: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Akteure im Zusammenhang mit Datenbanksystemen

Akteure auf der BühneDatenadministrator/Datenbankdesigner, auch DatenarchitektDatenbankadministratorEndbenutzerAnwendungsentwickler

Akteure hinter der BühneDesigner und Entwickler eines DBMSWerkzeug-EntwicklerOperateure und Wartungsingenieure

Page 21: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Erstes Fazit

Vorteile von DBMS1 Gemeinsame Nutzung von Daten2 Kontrolle von Redundanz3 Überwachung der Konsistenz der Daten4 Sicherheit bzgl. von Berechtigungen5 Sicherheit bzgl. der Persistenz der Daten6 Synchronisation konkurrierender Datenzugriffe7 Ausbalancieren konfligierender Anforderungen8 Einhalten von Standards

Page 22: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Übersicht

Warum Datenbankmanagementsysteme?Eine kleine GeschichteWas ist ein DBMS?Begriffe

Datenunabhängigkeit und DatenbankarchitekturModell, Schema, ZustandANSI/SPARC-Architektur & DatenunabhängigkeitDatenbanksprache

Datenmodelle

Page 23: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Datenmodell

Anwender und Anwendungen sollen die Datenbank unabhängig vonihrer physischen Repräsentation, ihrer Implementierung sehen. Wiesollen sie sie dann sehen?

Erster Begriff von DatenmodellA data model is an abstract, self-contained, logical defini-tion of the objects, operators, and so forth, that togetherconstitute the abstract machine with which the users in-teract.The objects allow us to model the structure of data. Theoperators allow us to model its behavior.

– C.J. DateBeispiel: das relationale Datenmodellkonkret: Wir organisieren die interessierenden Informationen als Werte in Tupeln (=Datensätzen), die Relationen (= Tabellen) bilden und geben an, wie diese Relationenzusammenhängen.

Page 24: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Datenbankschema

Beschreibung der Struktur der Daten für ein bestimmtesAnwendungsgebiet.Metadaten sind die Informationen über den Aufbau der Daten – siewerden im relationalen Modell selbst wieder in Relationengespeichert – Systemkatalog

Zweiter Begriff von Datenmodell (= Datenbankschema)A data model is a model of the persistent data of someparticular enterprise.

– C.J. Date

Beispiel: die Struktur unserer Datenbank für den Weinhandel

Page 25: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Datenbankzustand

Der Datenbankzustand istder konkrete Inhalt der Datenbank zu einem bestimmtenZeitpunktabgelegt in den Tabellen der Datenbank und dort gespeichert

Beispiel: der Inhalt unserer Datenbank für den Weinhandel

Page 26: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Fazit

Datenmodell = Konzept der Strukturierung von DatenDatenbankschema = Struktur einer bestimmten Miniwelt(auch: Intension)Datenbankzustand = Inhalt einer Datenbank, also Faktenüber eine Miniwelt (auch: Extension)

Page 27: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Wie erreicht man Datenunabhängigkeit?

Verwendungder Daten

Sicht der Anwenderund Anwendungen

Speicherungder Daten

trennen

1. Schlussfolgerung

Wir brauchen Schichten=

die Belange trennen

2. Schlussfolgerung

Wir brauchen eine Sprache=

Verbindung der Schichtennormiert herstellen

ANSI/SPARC-Architektur Datenbanksprachen wie SQL

Sicht derImplementierung

Page 28: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Die ANSI/SPARC-Architektur

Internes Schema

ExternerView

Anwendungs-programm

ExternerView. . . . . .

KonzeptuellesSchema

gespeicherte Datenbank

Externe Ebene

Konzeptuelle Ebene

Interne Ebene

Page 29: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Datenunabhängigkeit

Datenunabhängigkeit Die Immunität von Anwendungsprogrammengegenüber Änderungen desDatenbankmanagementsystems.Änderungen des DBMS entkoppeln von denAnwendungen, die es benutzen.

Physische Datenunabhängigkeit Änderungen an der Art derDatenspeicherung und den Zugriffstechniken habenkeinen Einfluss auf Anwendungsprogramme.

Logische Datenunabhängigkeit Änderungen am konzeptuellenSchema haben nur erwünschten Einfluss aufAnwender und Anwendungsprogramme.

Page 30: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Komponenten eines DBMS

Administrations-Werkzeuge

Anfrage-Werkzeuge

AnwendungenApp Front Ends

Loggingund

Recovery

Zugriffssystem

DML-ÜbersetzerQuery Compiler

ZugriffsmaschineExecution Engine

DDL- undDCL-Prozessor

Puffer-verwaltung

Speicher-verwaltung

Synchronisations-kontrolle

Concurrency Control

Transaktions-verwaltung

SperrverwaltungLock Manager

Datenspeicher

DatenIndexeSystemkatalogStatistikdaten

DML-Anweisungen DDL- und DCL-Anweisungen

DBMS

Page 31: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Anwendungsarchitektur

Benutzerschnittstelle

Anwendungslogik

DBMS-Schnittstelle

DB-Server DB-Server

Benutzerschnittstelle

Anwendungslogik

DBMS-Schnittstelle

R

Page 32: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Die Datenbanksprache SQL

Parsen

Validieren

Optimieren

Ausführen

select name from Kunde where ...

BinärerZugriffsplan

WAS

WIE

SQL-Grammatik

Systemkatalog

regel- undkostenbasiert

Page 33: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Sprachumfang

DDL Data Definition LanguageDatendefinitionSQL: create table..., alter table...

DML Data Manipulation LanguageDatenverwendungSQL: select..., insert..., update...,delete...

DCL Data Control LanguageDatenberechtigungenSQL: grant..., revoke...

Page 34: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Übersicht

Warum Datenbankmanagementsysteme?Eine kleine GeschichteWas ist ein DBMS?Begriffe

Datenunabhängigkeit und DatenbankarchitekturModell, Schema, ZustandANSI/SPARC-Architektur & DatenunabhängigkeitDatenbanksprache

Datenmodelle

Page 35: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Diskussion der Datenmodelle

Warum?Wir brauchen logisches Modell, wie wir über Daten und ihreStruktur sprechen können wegen Datenunabhängigkeit.→ Datenmodelle

LeitbeispielEin Lieferant (S = Supplier) hat eine Nummer <SNo>, einenNamen <SName> und einen Firmensitz <City>.Ein Teil (P = Part) hat eine Nummer <PNo>, einen Namen<PName>, ein Gewicht <Weight> und wird in der Stadt <City>gelagert.Ein Lieferant liefert Teile, ein Teil kann von verschiedenenLieferanten kommen. Wir verzeichnen die Menge <Qty> des voneinem Lieferanten gelieferten Teils.

Page 36: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Hierarchisches Datenmodell

Geschichtespäte 60er Jahre1968 IBM erste Version von IMS (Information ManagementSystem)heute Version 15

KonzeptRecord Type = Struktur eines Datensatzes mit benanntenFelder und definierten WertebereichenJeder Record hat einen eindeutigen KeyAlle Records sind in einem Baum organisiert durch sogenannteParent-Child-Relationships, PCR

Page 37: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Netzwerk-Datenmodell

Geschichte1971 CODASYL (Committee on Data System Languages)Implementierung z.B. UDS/SQL von Siemens/Fujitsu aufBS2000Datenmodell erlebt eine gewisse Renaissance durch dassemantische Web (semantisches Netz, Graphdatenbanken)

KonzeptRecord Type – DatensatzstrukturJeder Record hat einen eindeutigen KeyRecords sind organisiert als zusammenhängender Graph durchsogenannte Owner-Child-RelationshipsFür jede Datenbank gibt es einen oder mehrere Entry Points

Page 38: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Relationales Modell

Geschichte1970 Edgar Frank „Ted“ Codd: Publikation des Modellserste Implementierungen etwa 1980: Oracle, INGRESIBM kündigt 1984 DB2 anheute vorherrschendes Datenmodell

KonzeptRelation – Mengen von Tupeln von WertenInformationsprinzip – Die Daten sind in genau einer Weiseorganisiert, als Werte in Tupeln in RelationenZugriff durch eine deklarative Sprache

Page 39: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Entity-Relationship-Modell

Geschichte1974 Peter Chen Publikation des ModellsIdee: Vereinheitlichung von Hierarchie – Netz – Relational

KonzeptEntitätstypen – Klassen von „Dingen“, Objekten der WeltAttribute – Eigenschaften dieser ObjekteBeziehungstypen zwischen den EntitätstypenAbbildung des ER-Modells in die anderen Datenmodelle

Page 40: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Objektorientiertes Datenmodell

Geschichteab Mitte der 80er Jahre im Zuge der OO-SprachenZiel: Überwindung des Konzeptbruchs (impedance mismatch)ODMG (Object Data Management Group) Spezifikation 3.02000

KonzeptObjektmodell – Objekte mit Methoden, PolymorphismusObject Definition Language ODLObject Query Language OQL – Sprache, die Navigation inObjektstruktur unterstütztSprachbindung – für C++, Java, SmallTalk . . .

Page 41: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Objekt-relationales Datenmodell

GeschichteAnfang der 80erSQL-Erweiterung in SQL:1999, SQL:2003, SQL:2008,SQL:2011Geografische Informationssysteme (PostGIS)

KonzeptFüge zu (klassischem) SQL hinzu:

benutzerdefinierte Datentypen samt Methodeninklusive Vererbung und Polymorphismusbenutzerdefinierte Operatorenbenutzerdefinierte Zugriffsmethoden

Page 42: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Semistrukturierte Daten/XML

GeschichteHTML – Dokumentenstruktur auf Basis von SGMLÜbertragung auf Datenstruktur

KonzeptMetadaten durch Tags mit Daten kombiniertSemantische Heterogenität möglichHierarchische StrukturLinks möglich – Netz-DatenmodellXML Schema – Vererbungsmechanismen aller CouleurXPath, XQuery – Navigation und Anfragesprache

Page 43: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

NoSQL, Big Data

GeschichteXML – XML-DatenbankenSuchmaschinen im InternetCloud

KonzeptVerschiedene DatenmodelleThema 0: Performanz bei großen Datenmengen für spezielleAnwendungenThema 1: Verteilung der DatenThema 2: Parallele VerarbeitungThema 3: KonsistenzThema 4: Heterogenität der Daten

Page 44: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

NoSQL – Arten

Datenmodelle in NoSQLMapReduce Framework (z.B. Hadoop)Key-Value Store (z.B. Google Big Table, Amazon Dynamo,Cassandra)Dokumentenorientierte Datenbanken (z.B. Apache CouchDB,MongoDB)Graphendatenbanken (z.B. Neo4j)

Page 45: Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name Vorname Str PLZ Ort 100101 Kehl Thomas Weinstr. 3 79675 Kaiserstuhl 100102 Kehl Thomas

Literatur und Links zum Thema Datenmodell

Michael Stonebraker und Joseph M. Hellerstein: What GoesAround Comes Around https://people.cs.umass.edu/~yanlei/courses/CS691LL-f06/papers/SH05.pdf

Jeffrey Dean und Sanjay Ghemawat: MapReduce: SimplifiedData Processing on Large Clusters https://static.googleusercontent.com/media/research.google.com/de//archive/mapreduce-osdi04.pdf

Pramod J. Sadalage und Martin Fowler: NoSQL Distilled,Addison-Wesley Professional, 2012Präsentation des Buchs https://youtu.be/ASiU89Gl0F0