Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | amalia-stritzinger |
View: | 103 times |
Download: | 0 times |
Betrieb von DatenbankenMarco 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
Modul-Inhalt
1. Beispieldatenbank AdventureWorks
2. Das relationale Modell
3. Das relationale Datenbank-System
4. SQL – Structured Query Language
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/.
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.
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.
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.
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.
Fragen...
Modul-Inhalt
1. Beispieldatenbank AdventureWorks
2. Das relationale Modell
3. Das relationale Datenbank-System
4. SQL – Structured Query Language
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.
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.
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)
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.
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:
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.
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.
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.
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
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 (…)
(…)
(…)
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
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.
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.
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}
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}
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
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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
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.
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
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
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%
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
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
Fragen...
Modul-Inhalt
1. Beispieldatenbank AdventureWorks
2. Das relationale Modell
3. Das relationale Datenbank-System
4. SQL – Structured Query Language
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.
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
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.
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)
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
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
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
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)
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)
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)
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)
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)
Fragen...
Modul-Inhalt
1. Beispieldatenbank AdventureWorks
2. Das relationale Modell
3. Das relationale Datenbank-System
4. SQL – Structured Query Language
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
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.
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.
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.
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.
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.
Fragen...
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.
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?
Fragen...