Vorlesung: Relationale Datenbanksysteme

Werbung
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
Herunterladen