Datenbanksysteme - Einführung und GrundlagenWeiterdieBeispieldatenbankWein Kunde: KndNr Name...

Preview:

Citation preview

DatenbanksystemeEinführung und Grundlagen

Burkhardt Renz

Fachbereich MNITechnische Hochschule Mittelhessen

Sommersemester 2020

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

Gliederung der Veranstaltung

Transaktionen und Synchronisation konkurrierender ZugriffeTransaktionenRecoveryIsolationslevel in SQL

Verwendung von DatenbanksystemenProgrammierung von Datenbank-Zugriffen mit JDBCZugriffsrechte und Datensicherheit

Ziele

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

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 . . .

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/

Übersicht

Warum Datenbankmanagementsysteme?Eine kleine GeschichteWas ist ein DBMS?Begriffe

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

Datenmodelle

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!

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

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

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

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

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.

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

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

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

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

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

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.

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

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

Übersicht

Warum Datenbankmanagementsysteme?Eine kleine GeschichteWas ist ein DBMS?Begriffe

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

Datenmodelle

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.

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

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

Fazit

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

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

Die ANSI/SPARC-Architektur

Internes Schema

ExternerView

Anwendungs-programm

ExternerView. . . . . .

KonzeptuellesSchema

gespeicherte Datenbank

Externe Ebene

Konzeptuelle Ebene

Interne Ebene

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.

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

Anwendungsarchitektur

Benutzerschnittstelle

Anwendungslogik

DBMS-Schnittstelle

DB-Server DB-Server

Benutzerschnittstelle

Anwendungslogik

DBMS-Schnittstelle

R

Die Datenbanksprache SQL

Parsen

Validieren

Optimieren

Ausführen

select name from Kunde where ...

BinärerZugriffsplan

WAS

WIE

SQL-Grammatik

Systemkatalog

regel- undkostenbasiert

Sprachumfang

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

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

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

Übersicht

Warum Datenbankmanagementsysteme?Eine kleine GeschichteWas ist ein DBMS?Begriffe

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

Datenmodelle

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.

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

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

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

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

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 . . .

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

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

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

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)

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

Recommended