datenbanksysteme - einführung und grundlagenweiterdiebeispieldatenbankwein kunde: kndnr name...
TRANSCRIPT
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