Themen 1 Grundlagen • Definition und Bedeutung von DB’s • Klassifikation von DB-Systemen Datenbanksysteme • Relationale Datenbanken • Einführung in SQL • Clientseitige Programmierung Prof. Dr. Christoph Dalitz 2 Datenmodelle Hochschule Niederhein - Bachelor Informatik • Drei Schichten Modell und Entwurfsmethodik Lehrveranstaltung im Sommersemester 2017 • Relationales Modell • Abhängigkeiten und Normalformen • relationale Algebra • Semantische Modelle (z.B. Entity-Relationship) Hochschule Niederrhein University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Themen Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -2- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Themen 3 Fortgeschrittene Themen Praxis− Anforderungen • Weitere Datenobjekte (Sequence, View...) • Serverseitige Programmierung (PL/SQL, Trigger) • Datenbank Tuning Anwendungs− programm Verwal− tung Speich− erung • Datensicherheit und Transaktionen DBS 1 Datenbankpraxis Was bietet ein DBS? Wie nutzt man es? 2 Datenmodellierung Umsetzung realer Datenstruktur in relationale DB 3 DBS-Implementierung Wie ist ein DBS intern implementiert? • Interne Implementierung von Datenbanksystemen I Speicherstrukturen und Indizes I Recovery bei Systemabsturz I Abfrageverarbeitung • verteilte Datenbanken • objektorientierte Datenbanken Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -1- Nicht behandelte Themen University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -3- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Literatur 1.1 Definition, Bedeutung DBS-Architektur Vorlesung Elmasri, Navathe: Grundlagen von Datenbanksystemen. Pearson Studium 2005 (3. Auflage, Grundstudiumsausgabe) Abfrage, Manipulation Struktur− definition DML Prozessor DDL Prozessor Garcia-Molina, Ullman, Widom: Database Systems - The Complete Book. Prentice Hall 2002 Optimizer D B S Praktikum PostgreSQL Online-Dokumentation: http://www.postgresql.org/docs/ Datenbank Manager Mehrbenutzer Synchronisation RDBMS Matthew, Stones: Beginning Databases with PostgreSQL. Apress 2005 Logbuch Indizes Daten− basis System Katalog Speicher Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -4- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.1 Definition, Bedeutung University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.2 Klassifikation Aufgaben eines DBS Einteilung von Datenbank-Systemen“ ” nach verschiedenen Kriterien • Datendefinition I Data Definition Laguage (DDL) I System Catalog (Data Dictionary) • Leistungsumfang • Datenmanipulation I Data Manipulation Language (DML) I Abfrageoptimierung Welche Aufgaben eines DBS sind implementiert? ⇒ Desktop, Client-Server, verteilte Datenbank • Datenschutz I Benutzerrechte und Zugriffsbeschränkung • logische Datensicht (”Datenmodell”) Wie präsentieren sich Daten aus Sicht des Anwenders? ⇒ hierarchisch, relational, objektorientiert • Datensicherheit I Konsistenzprüfung, Integrity Constraints I Transaktionen I Concurrency Control I Recovery bei Systemfehlern Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -5- Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -6- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -7- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.2 Klassifikation 1.2 Klassifikation Pgm2 KD# Kunde Pgm1 BSD Sockets Client 1 Domain Sockets VS# Versicherg. BK# Bankverb. DBMS KS# Klausel BSD Sockets Pgm1 Hierarchisches Modell DB Server Client 2 • 1969 von IBM mit IMS eingeführt • Datensätze in geordnetem Baum gespeichert Client-Server DBS • Zugriff durch Direktzugriff über Schlüssel und Manövrieren in Baumhierarchie • DBS eigenständiger Prozess • Zugriff über IPC-Mechanismen ⇒ Abhängigkeit von physischer Datenstruktur • Multi-User Systeme Hochschule Niederrhein University of Applied Sciences Dalitz: Datenbanksysteme Kap1.1-3. -8- Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.2 Klassifikation Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -10- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.2 Klassifikation Pgm Pgm Pgm DB−Lib DB−Lib DB−Lib KD# Kunde VS# KD# Versicherg. BK# KD# Bankverb. KD# Kunde Client 1 DB Desktop Rechner Client 2 VS# KD# Versicherg. KS# VS# Klausel Fileserver Relationales Modell • 1970 von Codd vorgeschlagen • Daten in Tabellen gespeichert Desktop Datenbank • Direktzugriff auf Daten über dazugelinkte Library-Routinenen • Mehrbenutzersynchronisation nur über primitives Filelocking • Single-User Systeme Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -9- VS# KD# Versicherg. Kunde DB University of Applied Sciences • Zugriff durch Erzeugung von neuen Tabellen aus alten ⇒ physische Datenunabhängigkeit Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -11- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.2 Klassifikation 1.3 Relationale Datenbanken Objektorientierte Datenbanken Aspekte des relationalen Modells • seit 1985 für komplexe Anforderungen (z.B. CAD) entwickelt • Daten in benutzerdefinierten Strukturen gespeichert • Daten-Struktur: Anwender sieht Daten als Tabellen • Zugriff über benutzerdefinierte Funktionen • DBS ist Bausatz“ für eigene DB-Implementierung ” ⇒ Abhängigkeit von Klassenimplementierung • Daten-Integrität: Tabellen erfüllen Integritätsbedingungen Objekt-Relationale Datenbanken • Daten-Manipulation: • relationales Modell Operatoren werden auf Tabellen angewendet Output ist wieder eine Tabelle • objektorientierte Erweiterungen: benutzerdefinierte Datentypen + Operatoren, Vererbung ⇒ beide Welten vereinigt Hochschule Niederrhein University of Applied Sciences Dalitz: Datenbanksysteme Kap1.1-3. -12- Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.2 Klassifikation Name Oracle Hersteller Oracle Informix DB2 Interbase Sybase Access (Informix) IBM Borland Sybase Microsoft MS SQL-Server mySQL Microsoft freie Software PostgreSQL SQLite freie Software freie Software University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.3.1 Struktur Bemerkung Marktführer, sehr teuer, viele Highend-Features, alle Plattformen (AS400, Unix, Windows) von IBM gekauft jetzt als “Firebird” OpenSource Desktop-Datenbank mit umfangreicher Benutzeroberfläche nur Windows Teilfunktionalität, speziell für manche Web-DB’s hinreichend Das relationale Modell • Aus Benutzersicht besteht DB aus Tabellen (logische Struktur). Physische Struktur bleibt dem Benutzer verborgen. • Kompletter Informationsgehalt dargestellt in einer Form: als Feldwerte in Tabellenzeilen. (Date: The Information Principle“) ” verbreitet als embedded SQL Datenbank Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -13- Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -14- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -15- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.3.1 Struktur 1.3.3 Manipulation nr# :int4 name :char(30) stadt :char(30) Erfolgt in relationaler Datenbanksprache Internationaler Standard ist SQL 11 Thyssen Duisburg Daten-Auswertung 12 Siemens München • erzeugt aus bestehenden Tabellen neue Tabellen ⇒ Ausgabe kann wieder Input für weitere Auswertung sein Eigenschaften einer Tabelle: • SQL-Befehl: select • alle Spalten haben skalaren Typ • alle Spaltenbezeichner sind verschieden Daten-Änderung • jede Zeile hat eindeutigen Primary Key • weist bestehenden Tabellen neue Werte zu • Felder können leer (NULL) sein • SQL-Befehle: insert, update, delete (Ausnahme: Primary Key) Hochschule Niederrhein University of Applied Sciences Dalitz: Datenbanksysteme Kap1.1-3. -16- Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.3.2 Integrität University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.3.4 weitere Objekte weitere Datenbankobjekte zur Verwaltung Integrity Constraints Objekt index sequence trigger user group Bedingungen, die unzulässige Einträge verhindern • Primary Key eindeutiges Zeilenmerkmal; verhindert doppelte Zeilen • Foreign Key Verweis auf andere Tabelle; verhindert Verweis ins Leere Hersteller Produkt nr# nr# name name database schema Hochschule Niederrhein University of Applied Sciences Bedeutung beschleunigter Zugriff automatische Schlüsselgenerierung Callback Mechanismus Datenbankbenutzer Benutzergruppe (vereinfacht Rechteverwaltung) logische Speichereinheit Namespace Die verfügbaren Objekttypen können je DBS variieren. Z.B. unterstützt Postgres schema erst in Version 7.3 herstellernr Dalitz: Datenbanksysteme Kap1.1-3. -17- Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -18- Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -19- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.3.4 weitere Objekte 1.3.5 System Catalog Index System Catalog PostgreSQL: • ermöglicht Direktzugriff über Spaltenwert(e) Catalog Name pg attribute pg class pg database pg group pg index pg relcheck pg trigger pg type pg user • beschleunigt Zugriff, aber verlangsamt Änderungen • sinnvoll insbesondere bei Foreign Keys (häufige Joins) Produkt pnr# automatischer Index durch Primary Key name preis zusätzlicher Index auf hnr sinnvoll hnr Bemerkung: Zugriff über Index nicht notwendig schneller als sequentiell. Bei Postgres Statistikauswertung mit (vacuum) analyze nötig. Hochschule Niederrhein University of Applied Sciences Dalitz: Datenbanksysteme Kap1.1-3. -20- Purpose table columns (“attributes”, “fields”) tables, indexes, sequences (“relations”) databases within this database cluster groups of database users additional index information check constraints triggers data types database users In psql können Beschreibungen mit \d abgefragt werden. \set ECHO HIDDEN (oder psql -E) gibt Abfragen mit aus. Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.3.5 System Catalog Hochschule Niederrhein University of Applied Sciences Dalitz: Datenbanksysteme Kap1.1-3. -22- Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 1.3.5 System Catalog Data Dictionary Oracle: • Strukturinformationen werden vom DBS in Tabellen gespeichert • statt Tabellen Views, die Benutzerrechte berücksichtigen • Präfix USER ⇒ eigene Objekte • Sammlung dieser Tabellen heißt System Catalog • Präfix ALL ⇒ alle Objekte auf die User zugreifen darf oder Data Dictionary • Präfix DBA ⇒ alle Objekte Beispiel: View * tables * tab columns * sequences * indexes * ind columns * users * role privs pg attribute: PostgreSQL column meta data attrelid attname atttypid ... The table this column belongs to (references pg class.oid) Column name The data type of this column (references pg type.oid) ... Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -21- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Purpose Shows all relational tables Shows all table and view columns Lists all sequences in the database Lists all indexes Lists all indexed columns Lists all users Lists all roles granted to users and other roles Hochschule Niederrhein Dalitz: Datenbanksysteme Kap1.1-3. -23- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science