8. Vorlesung: Datenorganisation SS 2007 Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik 6 Objektorientierte Datenmodelle 6.1 6.2 6.3 Objektorientiertes Datenmodell Objektrelationales Datenmodell Konzeptionelle Modellierung mit UML 7 Datenmanipulation 7.1 7.2 Grundlagen Relationale Abfragesprachen 7.2.1 Überblick 7.2.2 Beispiel: Structured Query Language (SQL) 7.3 Objektorientierte Abfragesprachen Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 2 Datenmanipulation Grundlagen Operationen zur Speicherung, Nutzung und Verwaltung von Daten Verarbeitungsformen von Daten Verwaltung von Daten • kopieren • neue Datei anlegen • Daten zählen Bereitstellung von Daten • lesen • auswählen • darstellen Pflege des Inhalts • einfügen • ändern • löschen Änderung der Ordnung • sortieren • Bestand teilen • Bestände zusammenfügen Änderung der Struktur • Felder ergänzen • Felder löschen • Feldlänge ändern Vgl. Schwarze, J.: Einführung in die Wirtschaftsinformatik. Neue Wirtschafts-Briefe, 5. Auflage 2000, S. 213. Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 3 Datenmanipulation Grundlagen Aufbau eines Datenbankmanagementsystems Anwender 1 Anwender 2 Anwender n Anwendungsprogramm 1 Anwendungsprogramm 2 Anwendungsprogramm n DBMS Datenmanipulation (DML) Datendefinition (DDL) Physische Datenspeicherung (DSDL, DCL) Hardware: Speichermedium Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 4 Datenmanipulation Grundlagen Teilprogramme eines DBMS Datenorganisation SS2007 Datenbanksprache: Data Manipulation Language (DML) zum Abfragen, Einfügen, Ändern und Löschen von Daten Datenbankbeschreibungssprache: Data Definition Language (DDL) zur Definition von Tabellen, Objekten, Indizes etc. Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 5 Datenmanipulation Grundlagen Teilprogramme eines DBMS Physische Datenspeicherung: Data Storage Description Language (DSDL) für die eigentliche (physische) Speicherung der Daten Speicherverwaltung und Optimierung der Speicherausnutzung Zugriff auf die gespeicherten Daten: Data Control Language (DCL) zur Definition von Zugangs- und Zugriffsberechtigungen Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 6 Datenmanipulation Grundlagen Operationen auf Datenbanken Operationen Abfragen strukturierte Abfragen Datenorganisation SS2007 Mutationen freie Abfragen Leibniz Universität Hannover Transaktionen Institut für Wirtschaftsinformatik einfache Mutationen Dipl.-Math Frank Köller | 03.07.2007 | Folie 7 Datenmanipulation Grundlagen Definitionen Eine Abfrage (query) erlaubt, einen bestimmten Ausschnitt einer Datenbank abzugrenzen und aufzufinden, sowie dessen Inhalt in geeigneter Form darzustellen. Eine Mutation (update) erlaubt, einen bestimmten Ausschnitt einer Datenbank abzugrenzen und aufzufinden, sowie dessen Inhalt konsistenzerhaltend zu verändern. Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 8 Datenmanipulation Grundlagen Definitionen Eine einfache Mutation (Datenmanipulation) ist eine beliebige Operation auf einer Datenbank. Eine Transaktion ist eine konsistenzerhaltende Operation auf einer Datenbank, d.h. sie lässt die Datenbank in konsistenten Zustand zurück (wenn diese vor Beginn der Transaktion schon konsistent war). Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 9 Datenmanipulation Grundlagen Transaktionstypen Datenorganisation SS2007 direkte (durch Beschreibung) oder indirekte (Navigation) Suchanfragen datensatz- (Tupel) oder datenmengen(Relationen) orientiert deskriptive (zielorientiert) oder prozedurale (schrittweise) Beschreibung der Datenauswahl Liste oder Anzahl von Ergebnissen Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 10 Datenmanipulation Grundlagen Datenbankeinsatz für Massenarbeiten Transaktionen lassen sich nicht nur dialogorientiert (interaktiv) durchführen, sondern auch als Massenarbeiten (Stapelbetrieb) automatisieren, z. B. Monats-, Jahresabschlüsse, Kontoauszüge bei Banken Prämienrechnungen bei Versicherungen Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 11 Datenmanipulation Grundlagen Transaktionstypen und Benutzerklassen Benutzerklassen vorb. Transaktionen freie Abfragen geleg. Benutzer, Dialogbetrieb ja, falls genügend einfach und Ergebnis genügend motivierend selten und nur, falls genügend einfach prof. Benutzer, Dialogbetrieb Normalfall nein prof. Auftrag, Stapelbetrieb ja, für Massenarbeiten nein Suchspezialisten, selten Dialogbetrieb ja Zehnder, C. A.:Informationssysteme und Datenbanken. 6. Aufl. Zürich 1998, S. 161. Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 12 Datenmanipulation Grundlagen Klassifizierung und Vergleich von DML‘s Datenorganisation SS2007 Selbstständigkeit: selbstständig (frei) oder eingebettet Sprachenparadigma: deskriptiv oder prozedural Granulation: mengen- (Relationen) oder datensatzorientiert (Tupel) Datenmodell: hierarchisch, netzwerkorientiert, relational, objektorientiert Darstellungsform: textuell oder grafisch Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 13 Datenmanipulation Grundlagen Zusammenfassung (I): Umfangreiche Anwendungen werden typischerweise mit eingebetteten, prozeduralen, textuellen Sprachen programmiert, die über Sprachelemente für den Datenbankzugriff verfügen. Für einfache Anwendungen stehen oft zusätzlich benutzernahe Entwicklungswerkzeuge zur Verfügung (z. B. grafische). Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 14 Datenmanipulation Grundlagen Zusammenfassung (II): Freie Abfragen erfolgen in selbstständigen Sprachen, zunehmend auch mit grafischen Sprachelementen. Deskriptive Sprachen liegen der menschlichen Denkweise näher als prozedurale. Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 15 7 Datenmanipulation 7.1 7.2 Grundlagen Relationale Abfragesprachen 7.2.1 Überblick 7.2.2 Beispiel: Structured Query Language (SQL) 7.3 Objektorientierte Abfragesprachen Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 16 Überblick Relationale Abfragesprachen Operatorensprache: Relationale Algebra selbstständig, deskriptiv, mengen-orientiert grundlegende DML zum ursprünglichen Relationenmodell von E. F. Codd mathematische Operatorensprache mit umfassender Ausdrucksfähigkeit relational vollständig in ursprünglicher Form nicht praktisch eingesetzt Grundlage von SQL Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 17 Überblick Relationale Abfragesprachen Operatorensprache: Relationale Algebra Mitarbeiter PersNr Nachname Vorname 623 Voss Dorothea 255 Schneider Martin Beispiel: Selektion σNachname='Voss'(Mitarbeiter) Beispiel: Projektion πNachname,Vorname(Mitarbeiter) Beispiel: Kombinierte Operationen πNachname(σPersNr=255(Mitarbeiter)) Mitarbeiter PersNr Nachname Vorname 623 Voss Dorothea Mitarbeiter Nachname Vorname Voss Dorothea Schneider Martin Mitarbeiter Nachname Schneider Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 18 Überblick Relationale Abfragesprachen Eingebettetes SQL eingebettet, deskriptiv, mengen-orientiert Einbettung von SQL in Wirtssprache (COBOL, FORTRAN, C, C++, Pascal usw.) Erweiterung um Datenbankzugriffe Datenorganisation SS2007 passt syntaktisch zur Wirtssprache erhält Funktionalität von SQL als DML SQL hat dadurch eine sehr starke Stellung auf dem Markt der DML erlangt! Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 19 Überblick Relationale Abfragesprachen Grafikorientierte relationale Sprache: Queryby-Example (QBE) Datenorganisation SS2007 selbstständig, deskriptiv, mengen-orientiert, grafisch QBE wurde für den selbstständigen und interaktiven Gebrauch am Bildschirm entwickelt grafische und zweidimensionale Syntax Access-QBE basiert auf relationalen DBMS mit grafischen Abfrage-Entwurfs-Werkzeug Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 20 Überblick Relationale Abfragesprachen Query-by-Example (QBE): Beispiele Orte, in denen es Kunden gibt KUNDE kdnr kname adresse ort P. Alle Kunden aus Bremen KUNDE kdnr kname adresse P. ort ='Bremen' Kunden mit Bestellung KUNDE kdnr P. _kdnr AUFTRAG auftragsnr kname adresse ort kdnr warennr menge Quelle: http://de.wikipedia.org/wiki/QBE _kdnr Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 21 Überblick Relationale Abfragesprachen Entwurf einer Abfrage in Access-QBE Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 22 Überblick Relationale Abfragesprachen Prozedurale Datenmanipulationssprache: Access Basic (ab Version 7: VBA) eingebettet, prozedural, mengen- und tupelorientiert ermöglicht zusätzliche Sprachelemente zum Öffnen von Tabellen, zur datensatzweisen Navigation, zum Lesen und Ändern einzelner Attribute, zum Einfügen und Löschen ganzer Datensätze. Einbau in Schleifen, Fallunterscheidungen… Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 23 7 Datenmanipulation 7.1 7.2 Grundlagen Relationale Abfragesprachen 7.2.1 Überblick 7.2.2 Beispiel: Structured Query Language (SQL) 7.3 Objektorientierte Abfragesprachen Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 24 Beispiel: Structured Query Language (SQL) Bedeutung und Entstehung Verwendung in allen relationalen Systemen einzige standardisierte Datenbanksprache Erstes kommerzielles System SQL/Data System von IBM 1981 1986 Verabschiedung (ANSI) von SQL-86 als kleinster gemeinsamer Nenner von bestehenden Implementierungen seit 1992 SQL-92 (SQL2) Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 25 Beispiel: Structured Query Language (SQL) Bedeutung und Entstehung SQL3 (1999) für Unterstützung OODB SQL2003 für ORDB SQL umfasst DDL DML DCL ausdrucksstarkes Werkzeug für freie Abfragesysteme Verwendung normalerweise für Aufrufe aus Anwenderprogrammen Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 26 Beispiel: Structured Query Language (SQL) Bedeutung und Entstehung Trotz der Standardisierung (ANSI / ISO) existieren unterschiedliche Dialekte, die oft untereinander inkompatible Erweiterungen definieren, nur eine Teilmenge eines der Standards definieren, verschiedene Teilmengen eines Standards implementieren oder gar keiner Variante von ANSI SQL folgen. Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 27 Beispiel: Structured Query Language (SQL) Erfolgsfaktoren von SQL Portabilität – die meisten Produkte bemühen sich, nicht allzu sehr vom ANSI/ISO Standard abzuweichen Einbettung – SQL lässt sich aus prozeduralen Sprachen (C, COBOL usw.) aufrufen Terminalunabhängigkeit – SQL lässt sich unabhängig von einem bestimmten GUI bedienen (im Gegensatz zu QBE) Deklarativität – keine notwendige Darstellung von Abfragen als geordnete Folge von Operationen, umgangssprachliche Abfragen aus einem einzigen SQLAusdruck Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 28 Beispiel: Structured Query Language (SQL) Kategorien von SQL-Anweisungen Zweck SQL-Anweisungen Data Definition Language (DDL) Definition von Datenbankobjekten create, alter, drop table; view, index Data Manipulation Language (DML) Abfrage Änderung select insert, delete, update Data Control Language (DCL) Transaktionssteuerung Schutz und Sicherheit lock, commit, rollback grant, revoke Lusti, M.: Dateien und Datenbanken. 4. Aufl. Berlin u.a. 2003, S. 171. Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 29 Beispiel: Structured Query Language (SQL) Erstellen einer Datenbank (DDL) Allgemeine Form: CREATE DATABASE Datenbankname; Beispiel: CREATE DATABASE Vertrieb; Anmerkung: Datenbank wird physisch angelegt, im Data Dictionary verzeichnet und bekommt eine LOG-Datei als Wiederherstellungsprotokoll Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 30 Beispiel: Structured Query Language (SQL) Erstellen einer Tabelle (DDL) Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 31 Beispiel: Structured Query Language (SQL) Datentypen in SQL INTEGER oder INT ganze Zahl zwischen -2147483648 und 2147483647 SMALLINT ganze Zahl zwischen -32768 und 32767 DECIMAL(p,q) Zahl mit maximal p Ziffern mit q hinter dem Komma FLOAT CHARACTER(p) CHAR(p) VARCHAR(p) Gleitkommazahl DATE TIME Datumsvariable Datenorganisation SS2007 String mit fixer Länge von p Zeichen String mit variabler Länge von maximal p Zeichen Zeitvariable Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 32 Beispiel: Structured Query Language (SQL) Ändern einer Tabelle (DDL) Allgemeine Form: ALTER TABLE Tabellenname (ADD|DROP AttributnameN Datentyp [NOT …] [, ADD|DROP PRIMARY KEY (AttributnameX)]); NULL] [, Beispiel: ALTER TABLE Abteilung (DROP Anr INT NOT NULL, ADD Abtnr INT NOT NULL); Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 33 Beispiel: Structured Query Language (SQL) Löschen einer Tabelle (DDL) Allgemeine Form: DROP TABLE Tabellenname; Beispiel: DROP TABLE Abteilung; Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 34 Beispiel: Structured Query Language (SQL) Einfügen von Tupeln in eine Tabelle (DML) Allgemeine Form: INSERT INTO Tabellenname [(Attribut1,…)] (Attributwert1, Attributwert2, …); VALUES Beispiel: INSERT INTO Abteilung (AbtNr,Name) VALUES (18, 'Research'); INSERT INTO Mitarbeiter VALUES (3685, 'Roßbach', 'Peter', 18); Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 35 Beispiel: Structured Query Language (SQL) Ändern von Daten in einer Tabelle (DML) Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 36 Beispiel: Structured Query Language (SQL) Operatoren in SQL Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 37 Beispiel: Structured Query Language (SQL) Löschen von Daten in einer Tabelle (DML) Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 38 Beispiel: Structured Query Language (SQL) Einfache Abfragen (DML) Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 39 Beispiel: Structured Query Language (SQL) Beispiele für einfache Abfragen (I) Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 40 Beispiel: Structured Query Language (SQL) Beispiele für einfache Abfragen (II) Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 41 Beispiel: Structured Query Language (SQL) Funktionen in SQL Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 42 Beispiel: Structured Query Language (SQL) Beispiele für einfache Abfragen (III) Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 43 7 Datenmanipulation 7.1 7.2 Grundlagen Relationale Abfragesprachen 7.2.1 Überblick 7.2.2 Beispiel: Structured Query Language (SQL) 7.3 Objektorientierte Abfragesprachen Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 44 Objektorientierte Abfragesprachen Von Simula bis Java Wesentliche Beeinflussung der Softwareentwicklung von 2 Programmiersprachen Simula sollte Ende der 60er Jahre schwer berechenbare Naturphänomene berechenbar machen hat Paradigmen Klasse, dynamische Objekte und Vererbung geprägt Smalltalk aus 70er Jahren grafische Benutzeroberflächen und Umgebungen für Prototyping Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 45 Objektorientierte Abfragesprachen Objektorientierte Programmiersprachen Meier, A.; Wüst, T.: Objektorientierte und objektrelationale Datenbanken. 3. Aufl. Heidelberg 2003, S. 58. Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 46 Objektorientierte Abfragesprachen 3 Grundkonzepte für Objektorientierte Programmiersprachen Unterstützung von Objekten, die über einen Zustand (Attribute) und ein Verhalten (Methoden) verfügen Definition von Klassen, um gleichartige Objekte zu erzeugen, zu verändern und zu verwalten Ermöglichung von Vererbung, in dem Klassen von anderen Klassen Verhaltensinformationen erben können Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 47 Objektorientierte Abfragesprachen Weitere Merkmale für Objektorientierte Programmiersprachen Klassen und Basismethoden Typhierarchie und Wiederverwendung Arten von Polymorphismus Aufruf von Methoden Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 48 Objektorientierte Abfragesprachen Konzepte objektorientierter Datenbanksprachen Persistenz und Erreichbarkeit persistenter Objekte Beziehungen mittels Objektidentifikationen Unterstützung des Mehrbenutzerbetriebs Forderung nach Sprachunabhängigkeit Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 49 Datenmanipulation Literatur: insbesondere Meier, A.; Wüst, T.: Objektorientierte und objektrelationale Datenbanken. dpunkt-Verlag, 3. Auflage 2003, S. 57 ff. Zehnder, C. A.: Informationssysteme und Datenbanken. vdf Hochschulverlag, 6. Auflage 1998, S. 153-196. Datenorganisation SS2007 Leibniz Universität Hannover Institut für Wirtschaftsinformatik Dipl.-Math Frank Köller | 03.07.2007 | Folie 50