Themen des Kurses Einführung: Zweck, Aufbau, Benutzung und Entwicklung von Datenbanken Datenbankmanagementsysteme Konzept, Typen, Leistungsumfang, Aufbau Entwurf von Datenbanken: Semantische Datenmodellierung: ERM, EERM, UML Datenmodelle: Historische Datenmodelle Das relationale Datenmodell Objektorientierte Datenmodelle Implementierung von Datenbanken Integritätssicherung, Sichten, Rechte Softwareschnittstellen: Datenbanken und Java (c) schmiedecke 06 DBS-1 : Einführung 2 !!!" # $ % &' * ( $ ) # . + , -, /0 $ 1 & 2$ ' ' ' 0 & 2$ 0 -3 (c) schmiedecke 06 0 DBS-1 : Einführung 3 Vorstellung des Moduls Datenbanken, das kann doch heute jeder! Na ja, mal sehen .... Vorlesung Übung Theorie der DBMS Arbeiten mit Relationalen Datenbanken (SQL) Datenbankentwurf Theorie Relationaler Datenbanken Datenbankimplementierung Integritätsssicherung DB und Programmierung (c) schmiedecke 06 DBS-1 : Einführung 4 Modul-Organisation Alle Materialien in Moodle – – – – – – LV-Infos (Literatur, Bewertung etc.) Folien Zusatzmaterial Aufgaben, Punkte Termine und Hinweise Theorie-Tests zur Selbsteinschätzung Registrierung dbw6 bitte Foto hochladen Arbeit allein oder in 2-er Gruppen Hochladen des Ergebnisses zwecks Zeitstempel Punkte erst nach persönlicher Abnahme Punktabzug bei Verspätung (20% pro Woche) Zum Bestehen des Moduls müssen alle Aufgaben bearbeitet sein. Übungspunkte machen (leider nur) 25% der Note aus. (c) schmiedecke 06 DBS-1 : Einführung 5 (c) schmiedecke 06 DBS-1 : Einführung 6 Was ist eine Datenbank? intuitiv - pragmatisch Sammlung von Tabellen einfach strukturiert intuitiv verständlich einfach zu handhaben (???) Tatsächlich: Datengefüge mit inneren Beziehungen Ziel der LV: Theorie verstehen Datenbanken korrekt und optimal entwickeln und verwenden (c) schmiedecke 06 DBS-1 : Einführung 7 Wozu Datenbanken? Daten sind Werte! – – – – – Große, veränderliche Datenbestände Komplexe Datenzusammenhänge Nutzung durch mehrere Anwendungen Datenschutz (vor Missbrauch) Absicherung gegen System- und Anwendungsfehler Deshalb werden die Daten der Herrschaft der Anwendungsprogramme entzogen. Wer herrscht dann? (c) schmiedecke 06 DBS-1 : Einführung 8 ... das DBMS Datenbank (Datenbasis, engl. Data Base): struktutrierter Datenbestand auf einem Speichermedium, typischerweise mit zugehörigen Benutzern, Zugriffsrechten etc. Datenbank-Management-System (DBMS): Software zur Verwaltung von Datenbanken, bietet Benutzern komfortablen und abgesicherten Zugriff auf die Datenbanken. Administration von Benutzern und Rechten. (c) schmiedecke 06 DBS-1 : Einführung 9 Schema Datenhaltung auf Dateien Anwendung Anw. 1 Datenbestand der Anwendung 1 2 Anw. 2 Anw. 3 Daten in 1-5 Datum 1 Datum 2 Datum 3 3 4 5 © P.Sauer (c) schmiedecke 06 DBS-1 : Einführung 10 Beispiel Keramische Werkstatt Bestellung: Kunde: • Name • Strasse • PLZ, Ort • Soll • Datum • Name • Strasse • PLZ, Ort • Produktbez. • Preis • Anzahl Produkt • Bezeichnung • Größe • Glasur • Dekor • Preis Buchhaltung Lagerverwaltung Werbung Materialeinkauf (c) schmiedecke 06 DBS-1 : Einführung 11 Probleme der Datenhaltung auf Dateien Bindung der Daten- an die Programmstrukturen - Datenabhängigkeit, Inflexibilität Wiederholte Speicherung gleicher Daten (Datenredundanz) - Speicherplatzbedarf, Integritätsprobleme Lösung gleicher Aufgaben in allen Anwendungsprogrammen: Speicherverwaltung, Änderungsdienst, Retrieval, Schutzfunktionen Probleme bei Mehrbenutzerbetrieb Probleme im Fehlerfall (Welche Anwendung ist verantwortlich?) Mißbrauch der Daten / Schutz der Daten (c) schmiedecke 06 DBS-1 : Einführung 12 Schema Datenbankeinsatz Anwendungsprogramm 1 Anwendungsprogramm 2 Datenbankmanagementsystem Anwendungsprogramm 3 …….. Anwendungsprogramm n Datenbank © P.Sauer (c) schmiedecke 06 DBS-1 : Einführung 13 Vorteile des Datenbankeinsatzes Datenunabhängigkeit Zentrale Datenverwaltung, Programm- und Benutzer-unabhängig Datenintegration (einheitliche Datenbank für alle Anwendungen) Benutzerfreundliche Schnittstelle für alle Anwendungssysteme (interaktive Abfragen bis Programmierschnittstellen) Datensicherheit Redundanzarme Speicherung Zentrale Sicherung der Datenintegrität Datensicherungs- und -schutzprozeduren global und ausgereift Performance bei großen Datenmengen: optimierte Such- und Zugriffsalgorithmen Offenheit für neue Auswertungs- und Definitionsbedürfnisse (c) schmiedecke 06 DBS-1 : Einführung 14 Datenabhängigkeit bei Dateiorganisation Beispiel: Liste aller Kunden aus Darmstadt (C-Programm) // Definition der Recordstruktur typedef struct { char *name [20]; int plz; char *ort [30]; double soll; } kunde_record; // Definition eines Lesepuffers kunde_record buffer[1]; FILE *kunde_file; kunde_file = fopen("kunden.dat","rb"); // Lesen der Datei nach dem Record-Schema while (!eof) { fread(buffer, sizeof(kunde_record), 1, kunde_file); if (buffer[0].ort == "Darmstadt") { // Record ausgeben } } // (nach Erbs et al, "Datenbanken) (c) schmiedecke 06 DBS-1 : Einführung Wehe, wenn das nicht (mehr) passt! 15 Datenunabhängigkeit durch DSL - Data Sub Language Beispiel: Liste aller Kunden aus Darmstadt (SQL-Abfrage) SELECT name, plz, ort FROM kunde WHERE ort = 'Darmstadt' ; (c) schmiedecke 06 DBS-1 : Einführung Funktioniert auf jeden Fall, solange die Tabelle Kunde die angegebenen Spalten hat... 16 Zeitachse Datenbanken Fifth Generation (1990 - today) Client-server architectures Massively parallel processors Open interfaces (esp. ODBC) Integration of Internet and databases (esp. JDBC) Object-relational Database Systems Deductive Databases (rules & facts) Fourth Generation (1980 - 1990) Database Systems developed for Personal Computers; examples: dBASE, Paradox Object-oriented Database Systems; examples: POET by POET, O2 by O2 Technology Third Generation (1970 - 1980) Data Independence Non-procedural languages (WHAT instead of HOW) Computer-independent database systems (Network DBS: CODASYL-DBTG) Relational Data Model; examples: SQL / DS (Standard Query Language / Data System), DB2 by IBM, Oracle by Oracle Entity-Relationship Model introduced by Chen Second Generation (1960 - 1970) data on magnetic disks (files) interactive data processing direct access to data multiple access / parallel access Hierarchical Data Model; example: IMS (Information Management System) by IBM Network Model; example: UDS (Universelles Datenbank System) by Siemens Data structure diagrams introduced by Bachman First Generation (1945 - 1960) data on punched cards or on magnetic tapes offline services / batch processing sequential access to data (c) schmiedecke 06 DBS-1 : Einführung 17 Bekannte DBMS • • • • • • • • • • • • • • • Ingres DB2 PostgreSQL Informix Sybase Oracle Cloudscape MySQL Access SQL Server dBase Paradox Poet O2 .... (c) schmiedecke 06 DBS-1 : Einführung 18 Generationen von DBMS Aus heutiger Sicht.... – Historische DBMS (Hierarchische Daten und Datennetze) – Standard-DBMS (einfach strukturierte Daten RDBMS) – Nicht-Standard-DBMS (Multimedia-Daten, Strukturierte Daten, Erweiterbare Datenmodelle OO und OR DBMS) Unterscheidungskriterium Datenmodell: Die für den Benutzer nutzbare Struktur der Daten – Heterogene Datenbanken – Wissenssysteme (c) schmiedecke 06 DBS-1 : Einführung Grafik: IBM 19 Auswahlkriterien für DBMS Ein- oder Mehrbenutzersystem Zentrale / verteilte Datenbanken Datenmodell Administrative Möglichkeiten Interne Datenorganisation / Tuningmöglichkeiten Open source / kommerziell .... (c) schmiedecke 06 DBS-1 : Einführung 20 DBMS-Schnittstellen interaktive Anfrage ( ad hoc-Anfragen) Programmierschnittstellen Administrationsschnittstellen Datenbanksprachen mindestens für - Datendefinition Datenmanipulation Datenabfragen Datenbankadministration (c) schmiedecke 06 DBS-1 : Einführung 21 Praxis – Übung Relationale Übungs-DB mat_inf: Kaufmännische Anwendung – Vertrieb von Waren über Vertreter ist auf 3 relationalen DBMS implementiert: Access, MySQL und Oracle Umgang mit verschiedenen DBMS kennen lernen Nutzung der Ad-hoc-Schnittstelle 3 Vorübungen ohne Bewertung 1 bewertete Aufgabe Selbststudium Die Datenbank ist klein alle Aufgaben lassen sich auch "von Hand" bearbeiten ---- VERBOTEN! Die DBMS stellen grafische Werkzeuge zur Anfragegenerierung zur Verfügung ---- VERBOTEN! Sie sollen alle Aufgaben mit SQL bearbeiten, und zwar jeweils mit einer einzigen SQL-Anweisung (c) schmiedecke 06 DBS-1 : Einführung 22 Aufbau einer Relationalen DB Geschäftspartner $ ', & #( ) $) * + , - # ' + - . + / ) 0& 1 Märkte ! ! & * ' & ' "#$ % # & #( ) )+ % % Wird angeboten auf ( ! ' #( ) ' #( ) ' #( ) ' Produkte ! % !' # $ # $ )+ " # (c) schmiedecke 06 $ DBS-1 : Einführung 23 Die Datenbanksprache SQL deskriptiv – nicht algorithmisch! genormt: – 1970 – – – – 1976 1986 1992 1999 – 2003 (c) schmiedecke 06 Edgar F. Codd, „A Relational Model of Data for Large Shared Data Banks“ SQL von IBM (ursprünglich SEQUEL/2) SQL ANSI-Standard (ISO 1987) SQL-92, SQL2 – große Revision SQL:1999, SQL3 – Objektrelationale Sprachelemente; - Einbindung von Java - Einbindung von XML - OLAP: Wissensbasierte Systeme - Multimedia- u.a. Applikationspakete SQL:2003 – bisher kaum implementiert DBS-1 : Einführung 24 Bestandteile der Datenbanksprache SQL DCL – Data Control Language DDL – Data Definition Language DML – Data Manipulation Language ! "# $ %& " QL – Query Language ' ( ' ' ,, ' 2 " ' ! (c) schmiedecke 06 " " ) " # " - , "% & , / " * * )/ , 3) # )/ , # " ,, # " 4 * " 0 " , & , / ) " + & *. " / " DBS-1 : Einführung , ) " ) + ", + & , ) " ) 1 , ) " " / %& + ", 1 25 QL – Query Language Was bietet SELECT? ' ( " " ) * + & ) + ", "% & " * + & ) + ", * , / " 1 " / %& 1 # & ) , ) " " # " - , ' . " , ) " " ' ,, , / 0 " , ) " ' 2 " * )/ , 3) )/ , ' ! # " ,, , / # " 4 (c) schmiedecke 06 " DBS-1 : Einführung 26 Grundform der SELECT-Anweisung SELECT [DISTINCT] Auswahlliste FROM Quelle WHERE Where-Klausel ; Beispiele: 5 67 5 7 8 8 0 0 0 9 :, 0 0 8 5 7 8 1 < 5 7 8 1 < 0 0 ; : ( " ; : ( " ; : ( " ; 9 0 0 0 " = $>9 : 0 0 (c) schmiedecke 06 ) 9 5 7 SFW-Block 0 0 ? @A @ " = B>9 DBS-1 : Einführung " : ( : # )" . " " ; ; 0" , , ; 27 Abfragen über mehrer Tabellen (Joins) SELECT [DISTINCT] Auswahlliste FROM Quelle1, Quelle2, Quelle3, ... WHERE Where-Verbundklausel AND Where-Klausel ; JOIN nach SQL-86 Intuitive Formulierung nach SQL-86: 7 8 1 < # # 0 0 0 1 "0 , ) / 0 # # C 1 "0 , ) " D E>9 (c) schmiedecke 06 " / DBS-1 : Einführung # # 28 Das reicht für heute! Nächstes Mal geht es Ansätze zur Datenstrukturierung. (c) schmiedecke 06 DBS-1 : Einführung 29