Vorlesung: Relationale Datenbanksysteme Softwareentwicklungsprojekt 1+2 Softwaretechnik 2 Dienstorientiertes Rechnen in der Praxis Dipl.-Inf. Andreas Göbel Friedrich-Schiller-Universität Jena Lehrstuhl für Datenbanken und Informationssysteme 03.05.2011 AGENDA 1. 2. 3. 4. 5. Motivation ANSI-SPARC-Architektur Relationales Datenbankmodell SQL Zwischenpräsentation der Projekte 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 2 MOTIVATION – ANWENDUNGSSYSTEME In sehr vielen Anwendungssystemen stehen Datenbestände im Mittelpunkt der Betrachtungen Unternehmensdaten • • • Stammdaten: Daten über Kunden, Artikel, Personal, Filialen, etc. Bewegungsdaten: Aufträge, Lieferungen, Rechnungen, E-Mails, etc. Bestandsdaten: Lagerangaben, Bestandsmengen Datenbestände werden zum Zugriff und zur Veränderung bereitgestellt Zugriff über eine Anwendung oder direkt (Ad-hoc) 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 3 MOTIVATION – BEGRIFFE Anwender/ Benutzer Anwendungs programm (DBS) Datenbanksystem (DBS) Entspricht DBMS + DB, üblicherweise auf separatem DB-Server DBMS Datenbankmanagementsystem (DBMS) Verwaltet den Datenbestand und alle Zugriffe darauf Datenbank (DB) DB 03.05.2011 Strukturierte Sammlung von Datensätzen Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 4 MOTIVATION – ANFORDERUNGEN Persistente Datenhaltung Sicherheit vor Datenverlust Hohe Verfügbarkeit der Daten Sicherheit vor unberechtigtem Zugriff / Verändern Sehr schneller Datenzugriff Hohe Benutzerfreundlichkeit Paralleler Zugriff Verwaltung sehr großer Datenmengen Hohe Flexibilität bezüglich der Datenverteilung Hohe Flexibilität bezüglich der Lastverteilung Hoher Grad an semantischer Integrität Hoher Grad an Datenunabhängigkeit 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 5 AGENDA 1. 2. 3. 4. 5. Motivation ANSI-SPARC-Architektur Relationales Datenbankmodell SQL Zwischenpräsentation der Projekte 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 6 ANSI-SPARC-ARCHITEKTUR Anwender/ Benutzer Anwendungs programm Externes Schema 1 Externes Schema 2 … Logische Datenunabhängigkeit Konzeptuelles Schema Physische Datenunabhängigkeit Internes Schema DB 03.05.2011 Spezielle Sichten des Gesamtmodells nutzer- oder anwendungsspezifische Sichten auf den Datenbestand bzw. einen Ausschnitt Gesamtmodell der Miniwelt Gesamtdarstellung des Datenmodells auf logischer, systemunabhängiger und anwendungsunabhängiger Ebene Interne, physische Darstellung der Daten Wo und wie werden die Daten physisch abgelegt und welche Hilfsstrukturen stehen zur Effizienzsteigerung zur Verfügung Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 7 AGENDA 1. 2. 3. 4. 5. Motivation ANSI-SPARC-Architektur Relationales Datenbankmodell SQL Zwischenpräsentation der Projekte 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 8 RELATIONALES DATENBANKMODELL – ZIELSTELLUNG Einfaches Daten(bank)modell mit mathematisch fundierter Grundlage Einfache Datenbanksprache • • • • Ebenfalls mit mathematisch fundierter Grundlage Deskriptive Anfragen statt Navigation Trennung von logischen (was) und physischen Aspekten (wie) DBMS verwaltet den Zugriff zu den Daten und kann durch den Optimizer eine optimale Ausführungsstrategie wählen Ermöglicht neben Zugriffen durch Anwendungsprogramme auch Ad-hocAnfragen 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 9 RELATIONALES DATENBANKMODELL – BEGRIFFE Bestandteile eines Relationenschemas • • • • Schemaname Menge von Attributnamen A1, A2, ..., An Menge von Wertebereichen (Domänen) D1, D2, ..., Dn Integritätsbedingungen: Keine angestellten Bergmänner aus Schneeberg Datenbankschema: Menge von Relationenschemata + relationenübergreifende Integritätsbedingungen Relation R D1 × D2 × ... × Dn Tupel r є R mit r = (d1, d2, ..., dn), wobei gilt: di є Di Attribut(name) Ai mit zugehörigem Wertebereich Di Schemaname Angest Tupel (als Tabellenzeilen dargestellt) Name Müller Meier Schulze Beruf Schreiner Schmied Bergmann Wohnort GebJahr Schema Jena Jena Seiffen 1960 1958 1965 Daten, konkrete Relation Attribut(wert) 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 10 RELATIONALES DATENBANKMODELL – SCHLÜSSEL Relationen sind Mengen, es dürfen also in einer Relation keine identischen Tupel auftauchen Angest unzulässig Name Müller Müller Beruf Schreiner Schreiner Wohnort GebJahr Jena Jena 1960 1960 Relationenmodell verlangt für jede Relation einen Schlüssel (identifizierende Attributkombination) Angest Angest PNR 1 2 3 Name Müller Meier Schulze Beruf Schreiner Schmied Bergmann Wohnort GebJahr Jena Jena Seiffen 1960 1958 1965 Falls für eine Relation mehrere Schlüssel(kandidaten) existieren, muss einer ausgewählt werden als Primärschlüssel 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 11 RELATIONALES DATENBANKMODELL – VIEWS UND INDIZES Anwender/ Benutzer Anwendungs programm Externes Schema 1 Externes Schema 2 … Konzeptuelles Schema Internes Schema Spezielle Sichten des Gesamtmodells: Views Gesamtmodell der Miniwelt: Tabellen Interne, physische Darstellung der Daten: Indizes 1|Müller|Schreiber|Jena|1960|2|Meier| Schmied|Jena|1958 3|Schulz|Bergmann|Seiffen|1965 + 2, Meier 1, Meier 3, Schulz DB 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 12 AGENDA 1. 2. 3. 4. 5. Motivation ANSI-SPARC-Architektur Relationales Datenbankmodell SQL Zwischenpräsentation der Projekte 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 13 SQL – GRUNDLAGEN DIE Datenbanksprache zur Definition, Manipulation und Abfrage von Daten in relationalen Datenbanken Entstand in 1970er Jahren • • im Rahmen des IBM-Projekts System R unter dem Namen SEQUEL (Structured English QUEry Language) Von allen bedeutenden DBMS verwendet • • Kommerziell: Oracle Database, IBM DB2, Microsoft SQL Server, Informix (IBM), Sybase (SAP), etc. Open Source: PostgreSQL, MySQL, Ingres, etc. 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 14 SQL – NORMIERUNG Durch American National Standards Institute, ISO (und DIN) Meilensteine 1987, 1989, 1992, 1999, 2003, 2006, 2008 Produkte sind weitgehend SQL-89 konform, teils SQL-92 Sie bieten zudem zahlreiche „Spezialitäten“ und Eigenheiten, die nicht normkonform sind • • werden ggf. später in die Norm aufgenommen Aufnahme jedoch meist in veränderter Form 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 15 SQL – DATENDEFINITION Anwender/ Benutzer Anwendungs programm Externes Schema 1 Externes Schema 2 … Konzeptuelles Schema Internes Schema Spezielle Sichten des Gesamtmodells: Views create view drop view Gesamtmodell der Miniwelt: Tabellen create table alter table drop table Interne, physische Darstellung der Daten: Indizes 1 2 3 create Schreiner index alter index Meier Schmied drop index Schulz Bergmann Müller Jena 1960 Jena 1958 Seiffen 1965 + 2, Meier 1, Meier 3, Schulz DB 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 16 SQL – DATENDEFINITION (CREATE TABLE) Angest PNR Name Beruf Wohnort GebJahr ... Syntax am Beispiel: CREATE TABLE Angest( pnr CHAR(3) PRIMARY KEY, name VARCHAR(20) NOT NULL, beruf VARCHAR(30) NOT NULL, wohnort VARCHAR(30) NOT NULL, gebjahr INTEGER CHECK (gebjahr >= 0)); Tabelle ist nach dem Anlegen leer, d.h. sie enthält keine Tupel Die not null Klausel verbietet das Auftreten von Nullwerten (Null Values, „undefiniert“) in jenen Spalten 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 17 SQL – DATENDEFINITION (ALTER TABLE) Änderung von Relationenschemata (Schemaevolution) Beispiele: • Hinzufügen neuer Attribute (Spalten) zu einer Tabelle ALTER TABLE Angest ADD COLUMN nationalitaet CHAR(3) NOT NULL DEFAULT 'GER'; • Löschen von Attributen (Spalten) ALTER TABLE Angest DROP COLUMN nationalitaet; • (Sehr eingeschränktes) Ändern von Eigenschaften von Tabellenattributen ALTER TABLE Angest ALTER wohnort SET DEFAULT 'Jena'; 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 18 SQL – DATENDEFINITION (ALTER TABLE) Mehr Möglichkeiten in Produkten wären wünschenswert Schemaänderungen sind generell ein heikles Thema • • Was geschieht mit den vorhandenen Daten bei einer Schemaevolution? Sofortige Transformation in neues Format Verzögerte Transformation in neues Format Was, wenn Transformation scheitert / nicht automatisch durchführbar? Auswirkungen auf vorhandene Anwendungen ? Bisher genutzte SQL-Anfragen müssen geändert werden Sichten (Views) lösen das Problem teilweise 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 19 SQL – DATENDEFINITION (DROP TABLE) Löschen von Tabellen (Relationsschema und Daten) Syntax: drop table tablename {restrict|cascade} • • restrict-Angabe: Das Löschen unterbleibt, wenn noch „Bezugnahme“ von außen auf die Tabelle via Integritätsbedingungen/Sichtdefinitionen cascade-Angabe: Bezugnehmende Integritätsbedingungen/Sichten werden mitgelöscht Beispiel: drop table Angest cascade 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 20 SQL – DATENÄNDERUNG ALTER TABLE zur Änderung des Relationenschemas Änderungen der Daten in SQL: Update, Insert, Delete (+Select) Alle Änderungsanweisungen sind dazu in der Lage, mengenorientiert zu arbeiten (Verarbeitung von ≥ 1Tupel je Anweisung) Benutzungsvorteile und Effizienzvorteile Angest Beispiele: • • • PNR Name Beruf Wohnort GebJahr ... INSERT INTO Angest(pnr, name, beruf, wohnort) VALUES ('P01', 'Müller', 'Schreiner', 'Jena'), ('P02', 'Meier', 'Schmied', 'Jena'), ('P03', 'Schulze', 'Bergmann', 'Seiffen'); UPDATE Angest SET wohnort='Lichtstadt' WHERE wohnort='Jena'; DELETE FROM Angest WHERE beruf='Bergmann' 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 21 SQL – DATENZUGRIFF Geschieht über SELECT-FROM-WHERE-Konstrukt (kurz SFW) • SELECT: bestimmt Ergebnisstruktur einer Anfrage • FROM: Definiert, welche Relationen zur Beantwortung der Anfrage benötigt werden • WHERE: legt fest, welche Daten genau geholt werden sollen Beispiel: SELECT Name, Beruf FROM Angest WHERE Wohnort = 'Jena' OR Wohnort = 'Lichtstadt'; Ergebnis ist Multimenge, die Duplikate erlaubt 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 22 ERGÄNZUNGEN ZUM SFW-KONSTRUKT explizites Verbieten von Duplikaten über DISTINCT-Klausel SELECT DISTINCT Name, Beruf FROM Angest Sortiertes Anfrageergebnis über ORDER BY SELECT Name, Beruf FROM Angest ORDER BY Name DESC Nutzung eingebauter Funktionen wie COUNT, SUM, AVG, MIN, MAX SELECT COUNT(*) FROM Angest SELECT MIN(GebJahr) FROM Angest Weitere Details in der Veranstaltung Datenbanksysteme 1 • • Gruppierung durch GROUP BY, HAVING Relationenübergreifende Anfragen via Joins und Subqueries 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 23 AGENDA 1. 2. 3. 4. 5. Motivation ANSI-SPARC-Architektur Relationales Datenbankmodell SQL Zwischenpräsentation der Projekte 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 24 ZWISCHENPRÄSENTATION DER PROJEKTE Zwischenvortrag für ALLE Studenten zum Status des jeweiligen Projekts Organisatorisches: • Termin: Mittwoch, 11.05., 10-11Uhr, SR 130 CZ3 • Jedes Team erhält 15 Minuten • Jedes Team-Mitglied soll in etwa dieselbe Redezeit haben Inhalt: • Bisherige Tätigkeiten, aktuelle Arbeiten • erste Erfahrungen, weitere Planung Weitere Zwischentermine: • Anfang Juni (15 Minuten je Team) • Abschlusspräsentation (30 Minuten je Team) 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 25 FRAGEN Vielen Dank für Ihre Aufmerksamkeit! 03.05.2011 Kompromiss zwischen RDBMS und NoSQL (DBIS-Oberseminar ) Folie 26