Zusammenfassung SQL bzw. GD1

Werbung
SQL/Datenbanken Klausur: Basics
Kapitel 1: Einführung in Datenbanken
1.1 Historische Entwicklung Dateisysteme
Nach und nach wurde in Unternehmen immer mehr EDV eingesetzt, diese
gewachsenen EDV-Systeme arbeiteten mit Dateien und waren zunächst nicht für den
Parallelzugriff verschiedener Prozesse sondern für Batch-Abläufe, in denen immer
ein Prozess auf eine Datei zugreift.
Wurden neue Anforderungen gestellt, so musste eine neue Datei erzeugt werden,
die oft auch Informationen enthielt, die bereits in anderen Dateien gespeichert waren.
Wesentliche Nachteile dieser gewachsenen Dateisysteme:
a) Redundanz (Mehrfachspeicherung ein und derselben Information in
verschiedenen Dateien = höherer Speicherplatzbedarf, höherer
Aktualisierungsaufwand!)
b) Inkonsistenz (Bei Redundanz wird eine Information nicht in allen Dateien
aktualisiert!)
c) Logische Datenabhängigkeit (Veränderungen an den Record-Schnittstellen,
z.B. Erweiterung um ein neues Feld im Record, betrifft alle diesen Record
benutzenden Programme, diese müssen alle geändert werden!)
d) Physikalische Datenabhängigkeit (Veränderungen der Dateizugriffsart
betreffen alle diese Datei verwendenden Programme, z.B. Umstellung von
sequentiell auf indexsequentiell, diese Programme müssen alle geändert
werden!)
e) Ablaufsicherheit (Parallelzugriffe verschiedener Programme auf ein und
dieselbe Datei müssen synchronisiert werden, sonst kommt es zu
inkonsistenten Zuständen! (Sehr schwierig, da es keine zentrale Instanz gibt!)
)
f) Datenschutz/Datensicherheit (Datenschutz muss jedes Programm selbst
realisieren, da es keine zentrale Instanz gibt, dies ist unsicher, jedes
Programm macht es anders! Datensicherheit außer genereller
Sicherheitskopien ist ohne zentrale Instanz nicht möglich!)
1.2. Konzeption von Datenbanksystemen
(A) Zentralisierte Sicht: Man „sieht“ die Daten als ganzes und schafft eine
koordinierende zentrale Instanz, die die Daten verwaltet und den Anwendungen zur
Verfügung stellt (nicht die Anwendungen oder deren Programmierer bestimmen
somit die Datenstruktur, sondern die zentrale Instanz!
Entfernen der engen
Verzahnung mit dem Dateisystem)
(B) Struktur eines Datenbanksystems:
1. Datenbank (DB) := integrierte Sammlung von Daten, nach einheitlichen Regeln
gespeichert, als Basis aller Informationsabfragen
2. Datenbankmanagementsystem (DBMS) := einheitliches Softwareprodukt, das eine
Datenbank kontrolliert und organisiert, hat exklusiven Zugriff auf die Datenbank, alle
Informationsanfragen laufen an das DBMS, welches hierfür Schnittstellen bereitstellt
1.3 Sichten (= spezielle externe/logische Sichtweise auf Daten!)
DBMS setzt Daten für bestimmte Anwendungen in bestimmte Sichten um, dies
betrifft im wesentlichen Datenstrukturen, Datenmengen und Datenformate!
Zwei wesentliche Vorteile hierbei:
a) Anwenderfreundlichkeit, da nutzeradäquater Teil der Daten:
so viel sehen wie nötig!
b) Datenschutz, da Anwendungen keinen Zugriff auf nicht benötige Daten haben:
so wenig sehen wie möglich!
1.4 Schema/Data Dictionary
Die Strukturbeschreibung einer Datenbank wird selbst in einer Datenbank
gespeichert, diese Datenbank wird Schema genannt, für jede Abfrage der Datenbank
interpretiert das DBMS zunächst das Schema, dieses wird im Data Dictionary
abgelegt, wo auch alle Metainformationen (auch z.B. die über Nutzersichten) der
Datenbank in weiteren Schemata gespeichert werden.
Vorteil der separaten Speicherung der DB-Struktur: DBMS ist nicht logisch von der
Datenbankstruktur abhängig!
Ohne Data Dictionary kann eine Datenbank nicht verarbeitet werden!
1.5 Vorteile des Datenbankeinsatzes
(A) Logische Datenunabhängigkeit (Auch wenn neue Spalten in eine
Tabelle/Datenbank kommen, sind die Sichten der einzelnen Anwendungen nicht
betroffen, diese sind logisch unabhängig, eine Anwendung braucht nicht mehr die
Gesamtstruktur der Daten zu kennen)
(B) Physikalische Datenunabhängigkeit (Nur das DBMS speichert Daten
physikalisch; wie es sie speichert, ist den Anwendungen unbekannt, auch wenn es
die Daten physikalisch völlig reorganisiert, so sind die Anwendungen hiervon
unabhängig)
(C) Datenmodelle
(Definition Datenmodell: abstrakte, abgeschlossene, logische Definition einer Menge
von Objekten (für die Modellierung der Datenstrukturen) und Operatoren (für die
Modellierung des Verhaltens
bekannteste Modelle: Relationenmodell, objektorientiertes Modell, Netzwerkmodell,
hierarchisches Modell
Dies alles nur möglich, da nicht an Speicherform gekapselt
anwendungsnah!)
(B) Datenschutz (Alle Zugriffe auf DB erfolgen über DBMS, strenge Kontrollen
möglich, da DBMS nicht zu umgehende Instanz für Benutzerberechtigungen etc. (im
Data Dictionary gespeichert) )
(C) Integrität/Konsistenz (Regeln/Domänen für Daten werden im Data Dictionary
abgelegt, da DBMS einzige Instanz für Zugriff auf die DB ist, kann es diese Regeln
streng auf Einhaltung prüfen, so kommt es zu keinen Inkonsistenzen (Wiederspruch
mit abgebildeter Umwelt)
Inkonsistente Daten können in DB (bei Dateien nicht) zu
Kettenreaktion führen und weitere Daten infizieren!
Semantische Integrität!)
(D) Kontrollierte Redundanz (gewünschte Redundanz ist dem DBMS bekannt, da im
Data Dictionary gespeichert, Änderungen an den Daten betreffen somit immer alle
Kopien!
so sind die Daten in jedem Fall konsistent!)
(E) Standardisierung (Zentralisierung der Daten in einer DB und damit verbundene
Gruppe der Datenbankadmins ermöglichst die Festlegung und Einhaltung von
Standards, besonders vorteilhaft bei Portierungen oder bei Schnittstellen zu anderen
Systemen)
1.6 Verwaltungsfunktionen des DBMS
(A) Synchronisation (Gleichzeitig Nutzerzugriffe auf die selben Daten: DBMS trennen
alle Nutzerzugriffe dermaßen voneinander, als wenn jeder Nutzer die Datenbank für
sich alleine hätte)
(B) Transaktionen
(Definition Transaktion: Eine Transaktion ist eine logisch zusammenhängende
Menge von Änderungs-Operationen, die entweder ganz oder gar nicht ausgeführt
werden
Alle Änderungen auf der DB laufen unter Transaktionskontrolle ab! Wurde eine
Änderung (Transaktion) nicht korrekt beendet (kein „Commit“), wird ein „Rollback“,
das Zurücksetzen in den Zustand vor der Transaktion ausgelöst!
Weitere Gründe für Rollbacks: 1. Verletzung der Integritätsregeln, 2.Verletzung der
Datenschutzkregeln, 3. expliziter Transaktionsabbruch)
(C) Datensicherheit (Datensicherung durch Backups jeder Zeit problemlos möglich,
zusätzliche durch Transaktionskontrolle („Rollback“ bei Fehlern) jederzeit
gewährleistet
Datenverlust immer auf letzte Transaktion begrenzt!)
1.7 Nutzerklassen beim Datenbankeinsatz
1. Anwendungsprogrammierer
2. Endnutzer
3. Datenbank-Administratoren
Kapitel 2: Das relationale Modell
2.1 Der Begriff des Datenmodells
a) Struktur: relationale Strukturen = Tabellen (logische Beschreibung, nicht
physikalisch!
anwendungsnah!)
b) Integritäten: Bedingungen – Constraints
c) Datenmanipulation: UNION, JOIN, etc.
2.2 Informale Definition einer Relation
Objektklassen: Tabellen
Beziehungen: Tabellen
Einfachheit des Modells sorgt für Natürlichkeit!
(Anzahl der Spalten einer Tabelle: Grad!)
2.3 Formale Definition von Relationen
(A) Attribute (Spalten einer Relation/Tabelle, Attribut-Betzeichner = Name des
Attributs, müssen im Relationenmodell elementar sein!)
(B) Domänen (abgegrenzte Wertebereiche für Attribute, vom DBMS kontrolliert)
[Anmerkung: Cardinal: natürliche Zahlen!]
(C) Tupel (Zeile einer Tabelle/Relation: besteht aus einer endlichen, geordneten
Menge von Werten (mathematisch Tupel)
pro Zeile eine Entität)
(D) Relationen (Eine Relation ist Teilmenge aus M1 x M2, also: R ⊆ M1 x M2
kartesisches Produkt (= engl. Relation)
Eine n-stellige Relation ist also: R ⊆ M1 x M2 x ... x Mn mit den Tupeln (x1,x2,...,xn),
wobei xi ∈ Mi )
(E) Relationen und Tabellen (gleich zu verwenden, R ⊆ D1 x D2 x ... x Dn gilt für die
verschiedenen Domänen, Tupel sind in DBs nicht wie laut mathematischer Definition
vorgeschrieben immer paarweise verschieden!)
(F) Relationale Struktur (Anordnung der Attribute macht die relationale Struktur aus!
R = R(A1,A2,...,An) )
2.4 Relationenalgebra
Operationenmenge heißt Algebra, daher heißt die Operationenmenge des
Relationenmodell Relationenalgebra
(1) Mengentheoretische Operationen
Vereinigung: T = ∪ (R, S) [in einem von beiden]
Durchschnitt: R ∩ (R, S) [in beiden]
Differenz: T = \ (R, S) [in R aber nicht ins S]
(2) Selektion
S = Sel (R, <Bedingung> ) [die aus R, die <Bedingung> erfüllen]
(3) Projektion
S = Proj ( R, [A1, …, An]) [bestimmte Spalten von R oder neu ordnen der Attribute]
(4) Verbund
T = Join (R, S, [A1,..., An]) [alle in die […] dieselben Werte haben, natürlicher
Verbund, alle weiteren gehen verloren!)
2.5 Relationale Integritäten
Relationale Integritäten = Bedingungen, die die Objekte erfüllen müssen
(A) Eindeutigkeit von Tupeln (mathematische Definition der Relation als Menge,
daher keine doppelten Tupel erlaubt! in SQL aber schon, identische Entitäten
werden abgebildet, fragwürdig!)
(B) Reihenfolge der Tupel beliebig (auch das aus mathematischer Mengendefinition
ableitbar!)
(C) Schlüssel
Definition Schlüsselattribut: eine minimale Menge von Attributen für eindeutige
Identifikation eines Tupels unter allen Tupeln
Definition Schlüssel: der konkrete Wert eines/der Schlüsselattributs/e heißt Schlüssel
Gibt es mehrere Attributkombinationen, die eindeutig identifizieren so redet man von
Schlüsselattributkandidaten und wählt ein passendes Primärschlüsselattribut!
(D) Fremdschlüssel
Definition: Eine Attributkombination in einer Relation heißt Fremdschlüsselattribut,
wenn diese Attributkombination in einer anderen Relation Primärschlüssel ist!
Die konkreten Werte dieser Attribute heißen entsprechend Fremdschlüssel
Problem der referentiellen Integrität! Fremdschlüssel dürfen nicht ins Leere zeigen!
2.6 Bewertung des Modells
Einzige Struktur: Relation:
Objekte: sind in Tupeln
Beziehungen: realisiert durch Fremdschlüssel
Kapitel 3.0 SQL
-
-
-
-
1970 Codd veröffentlicht erste Theorien zu relationalen Datenbanken
Definition eines relationalen Datenbanksystems nach Codd:
1. Alle Werte nur in Relationen und Zugriff nur über diese Strukturen (keine
Zeiger etc.)
2. relationale Operatoren für Selektion, Projektion und Verbund werden
unterstützt
Unterteilung von SQL:
a. DDL (Data Definition Language) [Tabellen, Sichten, Rechte etc.
anlegen]
b. DDM (Data Manipulation Language) [Eingabe, Änderung, Löschen
von Daten etc.]
SQL ist nicht prozedural! Gewünschte Daten werden durch Eigenschaften
beschrieben, das Ergebnis ist eine Menge von Tupeln, was die Verarbeitung
in imperativen Programmiersprachen, die satzorientiert arbeiten, schwierig
macht
Sprachstandard ANSI/ISO hat Vorteile:
1. Systeme portabel
2. Systeme herstellerunabhängig
3. mehrere DBMS können in einer Umgebung parallel laufen
4. Lebensdauer einer standardisierten Schnittstelle ist wesentlich höher
5. definierte Schnittstellen zwischen Anwendungen und Datenbanken
© 2002 by Marc Heubes, auf der Basis des Skripts von Prof. Dr. Krägeloh
Herunterladen