69
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Embed Size (px)

Citation preview

Page 1: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Betrieb von DatenbankenMarco Skulschus & Marcus Wiederstein

Datenbank-Management-Systeme (DBMS)

Lehrbuch, Kapitel 1

Page 2: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Seminar-Inhalt

•Grundlagen•Einfache Abfragen•Komplexe Abfragen•Datenmanipulation•Grundlagen T-SQL•Programm-Module in der DB•Administration

Page 3: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Modul-Inhalt

1. Beispieldatenbank AdventureWorks

2. Das relationale Modell

3. Das relationale Datenbank-System

4. SQL – Structured Query Language

Page 4: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Beispiel-Datenbank AdventureWorks

Das Thema der Datenbank ist die fiktive Firma AdventureWorks, welche Fahrräder produziert und weltweit per Internet oder lokale Läden vertreibt.

Die Datenbank erhalten Sie in verschiedenen Versionen unter http://msftdbprodsamples.codeplex.com/.

Page 5: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Beispiel-Datenbank AdventureWorks

Innerhalb der Personaldaten werden die Angestellten in der Employee-Tabelle gespeichert.

Sie arbeiten in einer Abteilung, die in einer Department-Tabelle dargestellt ist. Da ein Angestellter nicht notwendigerweise permanent in der gleichen Abteilung arbeitet, gibt es eine Beziehungstabelle EmployeeDepartmentHistory.

Darüber hinaus arbeiten die Mitarbeiter in Schichten, wobei die Schichteinteilung in der Shift-Tabelle angegeben ist.

Page 6: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Beispiel-Datenbank AdventureWorks

Die Contact-Tabelle enthält die allgemeinen persönlichen Daten wie Vorname, Nachname etc.

Die Address-Tabelle enthält Adressinformationen mit Straße, Stadt und PLZ. Für beide Tabellen existieren jeweils zwei Type-Tabelle, d.h. eine Tabelle namens ContactType und eine AddressType-Tabelle, durch die die jeweiligen Datensätze kategorisiert werden können.

Länder und allgemeine geografische Bereiche sind in verschiedenen weiteren Tabellen wie CountryRegion oder StateProvince gespeichert.

Page 7: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Beispiel-Datenbank AdventureWorks

Die zentrale Tabelle ist Product, in der die Informationen Nummer, Bezeichnung, Farbe, Sicherheitsbestand im Lager, Standardkosten und Listenpreis enthalten sind.

Für die beiden Attribute Größe und Verkaufseinheit gibt es Tabellen mit Wertelisten.

Man unterscheidet zwei Kategorieebenen: ProductSubcategory und ProductCategory, wobei die Product-Tabelle zunächst die Unterkategorie verknüpft und diese Unterkategorie wiederum die Oberkategorien.

Page 8: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Beispiel-Datenbank AdventureWorks

Die SalesOrderHeader-Tabelle enthält die zusammenfassenden Informationen für einen Verkauf (Bestell-, Auslieferungs-, Fälligkeitsdatum, Preise (Netto, Steuer, Total, Fracht) und Referenzen wie Adressen, Kunden- und Kontaktinformationen sowie Verkaufsgebiet).

Jede Bestellung enthält einzelne Positionen, die in SalesOrderDetail gespeichert werden, welche insbesondere eine Referenz zur Product-Tabelle enthält.

Page 9: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Fragen...

Page 10: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Modul-Inhalt

1. Beispieldatenbank AdventureWorks

2. Das relationale Modell

3. Das relationale Datenbank-System

4. SQL – Structured Query Language

Page 11: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Grundbegriffe

Beim relationalen Modell handelt sich um ein mathematisches Modell, dessen grundlegende Einheit die so genannte Relation ist, welche in einer Datenbank schließlich zu einer Tabelle wird.

Eine solche Relation wiederum wird als eine Menge von n-Tupeln bezeichnet.

Ein Tupel ist in einer Datenbanktabelle eine einzelne Zeile bzw. ein Datensatz.

Die Menge aller Zeilen bildet dann die gesamte Tabelle, während die Menge aller Tupel die Relation bildet.

Page 12: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Grundbegriffe

Operationen, die man auf einer solchen Relation ausführen kann, werden als relationale Algebra bezeichnet.

Sie baut auf der Mengenlehre auf.

Ihre Ausprägung in einer Datenbank ist dann die SQL-Sprache, mit der diese Operationen formuliert werden können.

Grundlegende Züge der Mengen-Theorie und ihrer Operationen sind auch in SQL gut zu erkennen und bereits ein grundlegendes und allgemeines Verständnis dieser Operationen bzw. der Mengenlehre hilft sehr beim Erlenen von SQL und Formulieren von komplexen Abfragen.

Page 13: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Grundbegriffe

Die nachfolgende Tabelle enthält einen Vergleich zwischen Begriffen des relationalen Modells und einer relationalen Datenbank:

Relationales Modell Relationale Datenbank

Relation Tabelle

n-Tupel mit n Attributen Datensatz mit n-Feldern

Attribut Feld, Spalte, Attribut

Relationale Algebra SQL (Structured Query Language)

Page 14: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Semantisches Modell

Ein semantisches Modell versucht, die Objekte der Realität möglichst genau zu erfassen und so eine Basis für die endgültig zu erstellende Datenbank zu liefern.

Im Idealfall entsteht ein Text, der bereits alle– Objekte, – Beziehungen und – Attribute nennt.

Die Entwicklung des semantischen Modells stellt die erste analytische Phase dar.

Dieses Thema berührt sehr viele verschiedene angrenzende Bereiche der Analyse und beschreibenden Darstellung zum Zwecke der Anwendungsentwicklung.

Page 15: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Semantisches Modell

Beschreibung von Abläufen und Prozessen

mit ihren Eigenschaften, die an verschiedenen Stationen wertmäßig erfasst werden,

und den Einschränkungen und Bedingungen, die für Abläufe und die Auswahl von bedingten Prozessschritten notwendig sind.

Identifikation und Beschreibung von Objekten und Entitäten

mit ihren Eigenschaften sowie den Beziehungen zwischen

ihnen und Einschränkungen und

Validierungsregeln für Eigenschaftswerte.

Zur Analyse zählen die folgenden groben Themen:

Page 16: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Semantisches Modell

Nahezu alle Mittel zur Analyse und Präsentation ihrer Ergebnisse lassen sich denken:

– Texte und schriftliche Beschreibungen von Abläufen und Objekten mit den üblichen Techniken wie

• Fließtext, • Listen • Tabellen.

– Zeichnungen und Abbildungen von Abläufen sowie den Objekten und ihren jeweiligen Beziehungen.

– Einsatz von Darstellungs- und Analysetechniken für die Abbildung von Strukturen sowie Abläufen:

• Entity-Relationship-Diagramm (ER-Diagramm) • UML (Unified Modeling Language)• Ältere Techniken sind alle Arten von Flussdiagrammen.• Sehr moderne Techniken sind Ontologien und ontologische

Datenmodelle.

Page 17: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Semantisches Modell

Es empfiehlt sich hier, Techniken des strukturierten Schreibens zu verwenden.

Bspw. gehören dazu: – einfache und klar gegliederte Aussagen – klare Hauptwörter, – Sinn tragende Verben – nur die notwendigsten Adjektive.

Es ist auch empfehlenswert, Aussagen durch Formelsprache zur Abbildung von Einschränkungen und Bedingungen zu verkürzen.

Page 18: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Eigenschaften von Daten

Die kleinsten Einheiten in einem Datenbanksystem (DBS) sind die Daten, die in einem sinnvollen Zusammenhang stehen und von Programmen unterschiedlicher Art für Zwecke der – Kontrolle (Finanzsituation), – des Marketing (personalisierte Kundenprofile) – der Verwaltung (Stammdaten) verarbeitet werden.

Page 19: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Eigenschaften von Daten

NameAdresseBuchung

InternetBenutzer (Kunde)

Benutzer (Hotel)

Werbebrief mit Hotel-Tipps und Reise-Infos Angebot

Rechnung

Übernachtung

Restaurantbesuch

Aus

gabe

nT

atsä

chlic

he

Akt

ivitä

ten

Page 20: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Klassifikation von Datentypen

Gast

Stammdaten Leistungen

Aufenthalte Reservierungen

Stornierungen

Aufenthalt

Aufenthalt

Name Vorname Nachname

Adresse (…) Straße PLZ Stadt

Präferenzen Top-Stadt Ausstattung (…)

Zeit Beginn Ende

Raum

Services Minibar (…) Restaurant (…)

(…)

(…)

Page 21: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Beziehungen zwischen Daten

Eine wichtige Eigenschaft von Daten innerhalb eines Datenmodells ist die Beziehungsstruktur.

Sie ist zunächst in der Realität vorhanden und wird durch die Abbildung im Datenmodell für die DB ersichtlich.

In der Datenbank werden sie vor allen Dingen durch die so genannte Primärschlüssel-Fremdschlüssel-Beziehung abgebildet.

Zwei hierarchische Ebenen müssen unterschieden werden:– Beziehungen innerhalb eines Objekts– Beziehungen zwischen Objekten

Page 22: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Beziehungen zwischen Daten

Beziehungstyp DefinitionEineindeutig1:1

Jedem Objekt vom Typ A ist genau ein Objekt vom Typ B zugeordnet.

Funktional1:n

Jedes Objekt vom Typ A steht mit beliebig vielen Objekten vom Typ B in Beziehung. Dagegen steht ein Objekt vom Typ B höchstens mit einem Objekt vom Typ A in Beziehung.

Komplexn:m

Beliebig viele Objekte vom Typ A stehen mit beliebigen Objekten vom Typ B in Beziehung und umgekehrt.

Page 23: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Beziehungen zwischen Daten

Ehemänner

Ehefrauen

1:1

{Ralf, Reinhard, Tom, Nils}

{Susanne, Birte, Tina, Anja}

In einer eineindeutigen Beziehung zwischen zwei Wertebereichen gehört zu jedem Wert des einen Wertebereichs ein Wert des anderen Wertebereichs.

In einem Ehepaarkreis mit vier Ehepaaren kann man die beiden Objekte Ehemänner und Ehefrauen unterscheiden.

Ralf ist mit Susanne, Reinhard mit Birte, Tom mit Tina und Nils mit Anja verheiratet.

Page 24: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Beziehungen zwischen Daten

Eine funktionale Beziehung zeichnet sich dadurch aus, dass zu den Werten des einen Wertebereichs null, einer oder mehrere Werte des anderen Wertebereichs gehören.

Susanne und Tina sind bereits Mütter, während Birte und Anja noch keine Kinder haben. Jeweils ein Kind hat genau eine Mutter. Umgekehrt kann aber eine Mutter mehrere Kinder haben. So kann also Susanne zwei Kinder haben, Tina eines und die anderen Mütter keine

Mütter

Kinder

1:n

{Susanne, Birte, Tina, Anja}

{Stefan, Holger, Kristina}

Page 25: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Beziehungen zwischen Daten

Eine komplexe Beziehung liegt vor, wenn es zu jedem Wert eines Wertebereichs null, einen oder mehrere Werte eines anderen Wertebereichs gibt und umgekehrt.

Eine Tante kann sowohl einen als auch mehrere Neffen oder Nichten haben. Umgekehrt ist es auch möglich, dass ein Kind mehrere Tanten besitzt. So ist Birte sowohl von Stefan als auch von Kristina die Tante, während Holger als Tanten Tina und Anja nennen kann.

Tanten

Kinder

n:m

{Susanne, Birte, Tina, Anja}

{Stefan, Holger, Kristina}

Page 26: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Beziehungen zwischen Daten

Objekte vom Typ A

Objekte vom Typ B

1 : 1eineindeutig

1 : nfunktional

n : mkomplex

Objekte vom Typ A

Objekte vom Typ B

Objekte vom Typ A

Objekte vom Typ B

Page 27: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Entity-Relationship-Modell

Bevor man sich daranmacht, für ein Datenbankprojekt sofort Tabellen und Feldnamen zu erstellen, kann man mit Hilfe eines grafischen Modells versuchen, die zu modellierenden Objekte zu finden und sich einen Überblick über die Beziehungen zu verschaffen.

Seit 1976 wird das von P.P. Chen vorgeschlagene Entity-Relationship-Modell (ER-Modell oder ERM) für eine erste Annäherung verwendet, dessen Vorteile in der grafischen Darstellung und der mathematischen Verständlichkeit liegen.

Es besteht aus den Elementen – Entity, – Entity-Typ, – Relationship und – Attribut.

Page 28: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Entity-Relationship-Modell

Element Bedeutung Zeichen

Entity zu modellierendes Objekt Rechteck

Entity-Typ Objekte mit ähnlichen Eigenschaften Rechteck

Relationship Beziehung zwischen Objekten Raute

Attribut Eigenschaft eines Objekts Oval

Page 29: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Entity-Relationship-Modell

Semantisches Modell

En

tität

en

Be

zieh

unge

n

Ein Buch hat eine ISBN und einen Titel.

Ein Autor hat einen Namen und eine Adresse.

Ein Verlag hat einen Namen und eine Adresse.

Ein Autor schreibt allein oder mit anderen Autoren ein oder mehrere Bücher.

Ein Verlag veröffenticht ein oder mehrere Bücher.

schreibt / geschrieben von

veröffentlicht /veröffentlicht von

1

n

n

m

Verlag

Autor

Buch

NrISBN

Titel

Nr

Name

Adresse

Nr

Name

Adresse

Datum

Auflage

Page 30: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Entity-Relationship-Modell

Das RDM (relationale Datenmodell) beruht auf der Überführung der einzelnen Objekte im ER-Modell in Tabellen, die über die Primärschlüssel, die in der anderen Tabelle Sekundärschlüssel sind, in Beziehung stehen.

Dieses Datenmodell wurde von E.F.Codd 1970 entwickelt und bildet die Grundlage für relationale Datenbanksysteme.

In diesem Zusammenhang wird ein Datenmodell mit nur einer einzigen Tabelle und sämtlichen Informationen als Universal Relation bezeichnet.

Page 31: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Entity-Relationship-Modell

Folgende Schritte sind dabei zu berücksichtigen:

1. Entwickeln Sie ein semantisches Modell.

2. Leiten Sie aus dem semantischen Modell die benötigten Objekte ab.

3. Erstellen Sie das Entity-Relationship-Diagramm.

4. Transformieren Sie das ER-Modell in das relationale Daten-Modell.

5. Spalten Sie die Beziehungen in Primärschlüssel-Fremdschlüssel (1:1 und 1:n) oder Beziehungstabellen (n:m) auf.

6. Verhindern Sie Dateninkonsistenzen.

7. Testen Sie das Datenmodell durch beispielhafte Einträge.

Page 32: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Entity-Relationship-Modell

Leiten Sie aus dem semantischen Modell die benötigten Objekte ab.

– Es ist leicht, sich mehr und mehr Attribute auszudenken, sodass man sich zunächst auf die wichtigsten beschränken sollte.

– Normalerweise findet man die benötigten Attribute über eine Tätigkeitsanalyse oder eine Objektanalyse.

• In einer Tätigkeits- oder Prozessanalyse durchläuft man die gesamten Tätigkeiten, die ein Objekt ausführt. Sie verlaufen teilweise auch parallel zu den Tätigkeiten anderer Objekte, die entweder schon von Anfang an bestehen oder sich erst im Prozessverlauf herausbilden.

• Die Objektanalyse fokussiert mehr die Beschreibung von Objekten, die real vorhanden sind.

Page 33: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Entity-Relationship-Modell

Transformieren Sie das ER-Modell in das relationale Daten-Modell.

– Ein Objekt bildet eine eigene Tabelle.– Die Datensätze sind die einzelnen Zeilen einer solchen

Tabelle.– Die Attribute stellen die Spalten (Feldnamen) dar.– Ein Schlüssel ist ein spezielles Attribut, das einen Datensatz

eindeutig identifiziert. Oft können die übrig bleibenden Attribute bei Entfernung eines Attributes einen Datensatz nicht mehr korrekt oder eindeutig identifizieren.

– Der Wertebereich einer Spalte entspricht der Domäne, die dem Attribut zugeordnet wurde.

– Eine Beziehung wird entweder über Fremdschlüssel oder über eine eigene Beziehungstabelle ausgedrückt.

Page 34: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Entity-Relationship-Modell

Verhindern Sie Dateninkonsistenzen.

– Hierbei müssen entsprechende Konventionen aus realen Gegebenheiten abgeleitet werden, um die Daten konsistent zu machen.

– Nur so können Sie garantieren, dass Abfragen auch tatsächlich korrekt ablaufen.

– Zwei typische Konzepte helfen bei diesem Ziel: • Wertebereiche oder Domänen und • Namensdefinitionen.

Page 35: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Normalisierung

Ein in einer Universal-Relation (nicht normalisierte Struktur/Tabelle) vorliegendes Datenmodell kann über Normalisierung in ein korrektes relationales Schema überführt werden.

Dabei werden – für die 1NF (erste Normalform) alle Attribute atomisiert,– für die 2NF die funktionalen Abhängigkeiten zwischen

Primärschlüssel und anderen Attributen elementar gemacht und

– für die 3NF die funktionalen Abhängigkeiten der Attribute untereinander direkt gemacht.

Page 36: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Normalisierung

Definitionen der ersten drei Normalformen:

– Eine Tabelle ist in der 1. Normalform, wenn sie einen Schlüssel besitzt und alle Attribute atomisiert sind. Atomisiert sind Attribute genau dann, wenn sie nicht weiter aufgeteilt werden können.

– ´– Eine Tabelle ist in 2. Normalform, wenn sie in der 1.

Normalform ist und die funktionalen Abhängigkeiten zwischen Schlüssel und den anderen Attributen elementar ist.

– Eine Tabelle ist in der 3. Normalform, wenn sie in der 2. Normalform ist und die Eigenschaft und die funktionalen Abhängigkeiten zwischen dem Schlüssel und den anderen Attributen direkt sind.

Page 37: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Normalisierung

PersNr ProjNr LeitNr Zeit Name Jahr AbtNr AbtName MaZahl AbtLeit1020 C13 1020 15% Ralf

Tauzieh1995 2 Medien 4 1020

1020 B12 1042 30% Ralf Tauzieh

1992 2 Medien 4 1020

1035 C13 1020 50% Jana Grün

2001 3 FiBu 2 1035

1042 B12 1042 25% Tom Schnell

1993 1 Seminare 3 1042

1042 D10 1049 30% Tom Schnell

1990 1 Seminare 3 1042

1048 D10 1049 15% Fritz Bachler

1999 4 Programmierung 5 1048

1049 C13 1020 40% Tanja Sieben

1996 4 Programmierung 5 1048

Page 38: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Normalisierung

PersNr Name Jahr1020 Ralf Tauzieh 19951035 Jana Grün 20011042 Tom Schnell 19901048 Fritz Bachler 19991049 Tanja Sieben 1996

PersNr Vorname Name Jahr1020 Ralf Tauzieh 19951035 Jana Grün 20011042 Tom Schnell 19901048 Fritz Bachler 19991049 Tanja Sieben 1996

Für die 1. Normalform gilt, dass sie einen Schlüssel besitzt und alle Attribute atomisiert sind.

Page 39: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Normalisierung

PersNr ProjNr LeitNr Zeit AbtNr AbtName MaZahl AbtLeit1020 C13 1020 15% 2 Medien 4 10201020 B12 1042 30% 2 Medien 4 10201035 C13 1020 50% 3 FiBu 2 10351042 B12 1042 25% 1 Seminare 3 10421042 D10 1049 30% 1 Seminare 3 10421048 D10 1049 15% 4 Program-

mierung5 1048

1049 C13 1020 40% 4 Program-mierung

5 1048

Page 40: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Normalisierung

Gemäß Definition ist ein Objekt in der 2. Normalform, wenn es in der 1. Normalform ist und die funktionalen Abhängigkeiten zwischen Schlüssel und den anderen Attributen elementar sind.

Tabelle SpaltenPROJEKTE PersNr, Name, Jahr, AbtNr, AbtName, MaZahl, AbtLeitZEITEN PersNr, ProjNr, ZeitPROJEKTLEITER ProjNr, LeitNr

Page 41: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Normalisierung

ProjNr LeitNrC13 1020B12 1042B12 1042D10 1049

PersNr ProjNr Zeit1020 C13 15%1020 B12 30%1035 C13 50%1042 B12 25%1042 D10 30%1048 D10 15%1049 C13 40%

Page 42: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Normalisierung

Damit ein Datenmodell in der 3. Normalform ist, muss es zunächst in der 2. Normalform sein und die Eigenschaft besitzen, dass die funktionalen Abhängigkeiten zwischen dem Schlüssel und den anderen Attributen direkt ist.

Tabelle SpaltenMITARBEITER PersNr, Vorname, Name, Jahr, AbtNrABTEILUNGEN AbtNr, AbtName, AbtLeiter, MaZahlPROJEKTE ProjNr, LeitNrZEITEN PersNr, ProjNr, Zeit

Page 43: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale Modell: Normalisierung

ProjNr LeitNrC13 1020B12 1042B12 1042D10 1049

PersNr ProjNr Zeit1020 C13 15%1020 B12 30%1035 C13 50%1042 B12 25%1042 D10 30%1048 D10 15%1049 C13 40%

AbtNr AbtName MaZahl AbtLeit2 Medien 4 10203 FiBu 2 10351 Seminare 3 10424 Program-

mierung5 1048

PersNr Vorname Name Jahr AbtNr1020 Ralf Tauzieh 1995 21035 Jana Grün 2001 31042 Tom Schnell 1990 11048 Fritz Bachler 1999 41049 Tanja Sieben 1996 4

Page 44: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Fragen...

Page 45: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Modul-Inhalt

1. Beispieldatenbank AdventureWorks

2. Das relationale Modell

3. Das relationale Datenbank-System

4. SQL – Structured Query Language

Page 46: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Begriffe

Datenbank-ServerDatenbank-System (DBS)

Datenbank Management System (DBMS)

Datenbank 1(DB)

Datenbank 2(DB)

Datenbanksystem heißt eine Struktur, die aus Datenbank und Datenbankmanagementsystem besteht.– Datenbank heißt der Speicherort

strukturierter Daten. Die Datenbank als solche stellt den Speicherort sämtlicher Daten auf einem physikalischen Datenträger dar.

– Datenbankmanagementsystem heißt die Komponente eines DBS, das Datenverwaltung und Datensicherheit bereitstellt.

Page 47: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Sichten

Mit dem Begriff Sicht (engl. View) sollen unterschiedliche Betrachtungsweisen einer Datenbankkonzeption bezeichnet werden.

Es entspricht einem Drei-Ebenen-Modell, das von ANSI/SPARC (engl. American National Standards Institute/Standards Planning and Requirements Committee) in den 70er Jahren empfohlen wurde.

Interne Sicht

Speicher-Ebene/-Strukturen

Tabelle

DateiDaten-

satz

Konzeptionelle Sicht

Entitäten/Tabellen Spalten/FelderBeziehungen

Externe Sicht

Gefilterte/Transformierte Anzeigen in Formularen/Berichten

Maske

Bericht

Page 48: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Anforderungen

Gute Repräsentation der realen Welt: Die Datenbank muss ein getreues Abbild der Realität mit aktuellen Daten liefern.

Keine Datenredundanz: Die Informationen einer Datenbank sollen in ihrer Beschreibung und Speicherung einzigartig sein.

Unabhängigkeit der Daten mit Blick auf Benutzung: Die Programme zur Benutzung der Datenbank sollen auf Hard- und Software-Seite (physische Unabhängigkeit) wie auf organisatorischer Seite (logische Unabhängigkeit) unabhängig sein.

Leichter Datenzugriff: Auch mit Datenbanken nicht vertrauten Benutzern muss ein einfacher Informationszugriff möglich sein.

Sicherheit und Vertraulichkeit: Sowohl auf physischer (Datenverlust durch Hardwarebeschädigung oder Mutwillen) wie auch auf logischer Seite (inhaltliche Zugriffskontrolle) müssen Sicherheitsstandards bestehen.

Leistung der Abfragen und Anwendungsprogramme: Auch bei gleichzeitigem Zugriff auf die Daten muss eine akzeptable Antwortzeit gegeben sein.

Page 49: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Bestandteile einer Tabelle

Die gesamte Tabelle heißt Relation. Ein Datensatz der Relation / Tabelle nennt sich Tupel. Die Breite der Tabelle / die Anzahl der Spalten oder Felder heißt Grad der

Relation. Ein einzelnes Feld oder eine einzelne Spalte heißt Attribut der Tabelle. Mit Domänen werden die Wertebereiche bezeichnet, die für ein Attribut

bzw. ein Feld der Relation vorgegeben wurden. Kardinalität bedeutet die Höhe / Länge der Relation / Tabelle.

Spalte 1 …. Spalte n

Relation (Tabelle) Tupel (Zeile)Kardinalität

(Länge)

Grad(Breite)

Relationen-Schema(Struktur) Attribut

(Spalte, Feld, Eigenschaft)

Wert

int(5) char(25)Domäne

(Datentyp, Wertebereich)

Page 50: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Inhalte

Tabelle: Eine Tabelle stellt den Speicherort der Daten eine relationalen Datenbank dar.

Die Daten liegen in für den schnellen Zugriff optimierten Datei- und Datenstrukturen auf der Festplatte.

Elemente:– Spalten oder Felder, in welchem unter einem Namen

und unter Berücksichtigung der Einschränkungen durch einen Datentyp einzelnen Daten einer Zeile getrennt voneinander verfügbar gemacht werden.

– Schlüssel: Der Primärschlüssel identifiziert einen Datensatz eindeutig, während der Fremdschlüssel einen Datensatz in einer anderen Tabelle referenziert.

– Einschränkungen: Spalten können Prüfmechanismen und Validierungsregeln aufweisen.

– Index: Ein Index oder auch mehrere Indizes, die sich jeweils auf eine oder mehrere Spalten beziehen, ermöglichen eine beschleunigte Abfrage von großen Tabellen.

Tabelle

Sicht (View)

Tabelle

Trigger

Prozedur Funktion

Page 51: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Inhalte

Tabelle: Eine Tabelle stellt den Speicherort der Daten eine relationalen Datenbank dar.

Sicht: Eine Sicht kann man sich als gespeicherte Abfrage vorstellen. Durch die Art der Abfrage sind die Spalten und ihre Datentypen gegeben und kann man auf eine Sicht wie auf eine Tabelle mit Abfragen zugreifen. Die Daten werden dynamisch gemäß der Abfrage geladen und nicht in der Sicht gespeichert.

Tabelle

Sicht (View)

Tabelle

Trigger

Prozedur Funktion

Page 52: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Inhalte

Tabelle: Eine Tabelle stellt den Speicherort der Daten eine relationalen Datenbank dar.

Sicht: Eine Sicht kann man sich als gespeicherte Abfrage vorstellen.

Programm-Module:– Prozedur: Eine Prozedur erlaubt, häufig

wiederkehrende Operationen für Datenmanipulation oder auch Administration in der Datenbank zu automatisieren.

– Funktion: Eine Funktion ermöglicht die Definition von häufig durchgeführten Berechnungen oder Datenumwandlungen.

– Trigger: Ein Trigger ist ein automatisch durch vorab definierte Ereignisse aufgerufenes Programm (ähnlich einer Prozedur), mit dem anspruchsvolle Validierungs- und Gültigkeitsregeln sowie hoch automatisierte Datenänderungen durchgeführt werden.

Tabelle

Sicht (View)

Tabelle

Trigger

Prozedur Funktion

Page 53: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Architektur

Für die Architektur-Muster werden die folgenden Systemkomponenten eingesetzt.

Server (Datenbank-Server oder Anwendungsserver)

Rechner mit Klient-Software

Relationale Datenbank

Server-Software

Datenbank-Management-System

Datenbank 1(DB)

Page 54: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Architektur

Relationale Datenbanken sind aus geschäftlichen Anwendungen und auch Internet-Anwendungen kaum wegzudenken.

Da ein Datenbanksystem normalerweise auf einem eigenen Server betrieben wird, lassen sich verschiedene Architekturvarianten unterscheiden, die verschieden komplex sind.

Klient-Software

Datenbank-Server

Datenbank Management System (DBMS)

Datenbank 1(DB)

Datenbank 2(DB)

Anwendungsserver

Server-Software(bspw.: Web-Anwendung Web Services)

Page 55: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Architektur

Das DBMS und die Klient-Software sind auf dem selben Rechner (Benutzer-Rechner) installiert.– Klient-Software ist bspw. eine Java / .NET-Desktop-Anwendung– DBMS ist bspw. Oracle, MS SQL Server oder MySQL (usw.)– Kommunikation innerhalb des Rechners

Klient-Software

Datenbank Management System (DBMS)

Datenbank(DB)

Page 56: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Architektur

Das DBMS ist auf einem Datenbank-Server installiert. Die Klient-Software ist auf einem eigenen Rechner (Benutzer-

Rechner) installiert und greift auf die Datenbank zu.– Klient-Software ist bspw. eine Java / .NET-Desktop-Anwendung– Kommunikation über das Netzwerk/Internet

Klient-Software

Datenbank-Server

Datenbank Management System (DBMS)

Datenbank(DB)

Page 57: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Das relationale DB-System: Architektur

Das DBMS ist auf einem Datenbank-Server installiert. Auf einem eigenen Anwendungsserver ist eine Server-Software mit

DB-Zugriff und Geschäftslogik installiert. Die Klient-Software ist auf einem eigenen Rechner (Benutzer-

Rechner) installiert und greift auf die Datenbank zu.– Klient-Software ist bspw. ein Internet Browser– Server-Software ist bspw. eine Web-Anwendung in Java / .NET / PHP– Kommunikation über das Netzwerk/Internet

Klient-Software

Datenbank-Server

Datenbank Management System (DBMS)

Datenbank(DB)

Anwendungsserver

Server-Software(bspw.: Web-Anwendung Web Services)

Page 58: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Fragen...

Page 59: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Modul-Inhalt

1. Beispieldatenbank AdventureWorks

2. Das relationale Modell

3. Das relationale Datenbank-System

4. SQL – Structured Query Language

Page 60: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

SQL: Sprachbestandteile

SQL bedeutet „Structured Query Language“ (Strukturierte Abfragesprache) und wird von so unterschiedlichen DBS wie Oracle, MySQL oder MS SQL unterstützt.

Zusätzlich finden Sie Implementierungen in MS Access oder auch in MS Excel über die MS Query Schnittstelle.

SQL

Structured Query Language

SQL

Structured Query Language

DML

(Dat

a M

anipu

lation

Lan

guag

e)

DDL

(Data Definition Langugage)

DCL(Data Control Language)

SELECT

UPDATE

DELETE

INSERT

GRANT REVOKE

CREATE

ALTER

DROP

Page 61: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

SQL: Sprachbestandteile

Datendefinitionssprache (DDL - Data Definition Language): Bei der Entwicklung eines neuen DB-Projekts stellen diese Sprachelemente die ersten Befehle dar, die die DB mit ihren Tabellen und den zugehörigen Datentypen erzeugen.

Datenmanipulationssprache (DML - Data Manipulation Language): Mit Hilfe von einfachen Befehlen können Datensätze in eine Tabelle eingetragen, gelöscht oder inhaltlich geändert werden. Zusätzlich stellt dieses Sprachsegment von SQL sämtliche Abfragewerkzeuge zur Verfügung.

Datenkontrollsprache (DCL - Data Control Language): In diesem Bereich stellt SQL Befehle zur Verfügung, mit denen man die in der Datenbank enthaltenen Daten schützen kann. Die am häufigsten benutzten DCL-Befehle sind GRANT und DENY.

Page 62: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

SQL: Relationale Algebra

Die relationale Algebra basiert auf der Mengenlehre und definiert Operationen auf Relationen, aus denen das relationale Modell besteht.

Sie ist damit die theoretische Basis für die Abfragesprache SQL. Insbesondere beim SELECT-Befehl, mit dem man Daten aus der Datenbank abrufen kann, sind sehr leicht die Parallelen zur Relationenalgebra zu sehen.

Page 63: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

SQL: Relationale Algebra

SQL basiert auf einem mathematischen Modell, das wiederum an die Mengenlehre angelehnt ist.

Es heißt „relationale Algebra“.

Die Selektion stellt eine der beiden Grundformen für die häufigste Abfrage bereit, nämlich die horizontale Auswahl von Zeilen einer Tabelle. Die Auswahl erfolgt dabei über eine Bedingung.

Eine Projektion stellt eine Auswahl der Spalten aus einer Tabelle dar. Die Ergebnis- oder die Abfragetabelle wird mindestens eine Spalte weniger als die Ursprungstabelle enthalten.

Page 64: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

SQL: Relationale Algebra

SQL basiert auf einem mathematischen Modell, das wiederum an die Mengenlehre angelehnt ist.

Es heißt „relationale Algebra“.

Der Union stellt eine Vereinigungsmenge aus zwei Tabellen her. Dabei gilt, dass die beiden eingehenden Tabellen das gleiche Schema, also die gleiche Spaltenstruktur, haben müssen.

Die Differenz stellt das logische Gegenstück zur Vereinigung dar. Wiederum müssen die eingehenden Tabellen das gleiche Schema besitzen. Die Differenzbildung verläuft so, dass nur die Datensätze in der Ergebnistabelle übrig bleiben, die zur Tabelle T1, aber nicht zur Tabelle T2 gehören.

Die Schnittmenge erzeugt eine Ergebnistabelle, die in beiden Tabellen vorhanden sind.

Page 65: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

SQL: Relationale Algebra

SQL basiert auf einem mathematischen Modell, das wiederum an die Mengenlehre angelehnt ist.

Es heißt „relationale Algebra“.

Der Join (Verbund) aus zwei eingehenden Tabellen ergibt eine Verknüpfung beider Wertemengen, wobei die Datensätze übernommen und miteinander kombiniert werden, die einen gleichen Wert in zwei angegebenen Spalten besitzen.

Das kartesische Produkt aus zwei eingehenden Tabellen ergibt eine Verknüpfung beider Wertemengen, wobei sämtliche Kombinationsmöglichkeiten gebildet werden.

Page 66: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Fragen...

Page 67: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Architektur: Übungen

Fragen zur Diskussion in der Gruppe:

Wie lässt sich die Architektur von MS Access beschreiben? Beschreiben Sie die Architekturkomponenten und erläutern Sie deren

Funktionen. Gehen Sie die verschiedenen Architekturmuster noch einmal durch und

diskutieren Sie gemeinsam deren Anwendbarkeit für Ihren Arbeitsplatz Überlegen Sie sich die Vor- und Nachteile von dateibasierten

Datenbanksystemen wie z.B. MS Access. Überlegen Sie sich einige Vor- und Nachteile von serverbasierten

Datenbanksystemen wie SQL Server, Oracle etc.

Page 68: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Architektur: Übungen

Aufgaben zur Erstellung in Gruppen zu zweit:

Die Stadtverwaltung von SQL-Stadt möchte eine DB-gestützte Webseite betreiben. Welche Architektur ist hier möglich, wenn die Kontrolle über Webseite und DB komplett beim IT-Referat liegen soll?

Das Museum zur Heimatgeschichte benötigt für den Kartenverkauf für drei Mitarbeiter(innen) eine Software-Lösung mit Abrechnungssystem. Welche Architektur wird die Lösung voraussichtlich haben?

Wie könnte eine Lösung aussehen, wenn nur ein(e) Mitarbeiter(in) beschäftigt werden soll/kann?

Wie sieht eine Lösung aus, die SAP einsetzt?

Page 69: Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenbank- Management- Systeme (DBMS) Lehrbuch, Kapitel 1

Fragen...