Einführung - Till Hänisch

Werbung
Datenbanken
In 21 Minuten ;-)
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Datei- vs. Datenbankorganisation
Programm 1
Datei A
Datei B
Programm 2
Datei C
Datenbank
Programm 1
Logische Datei A
Logische Datei B
Programm 2
Datenbankverwaltungssystem
Logische Datei C
Web-DB-Kopplung, © Till Hänisch 2003
Physikalische
Datei X
Physikalische
Datei Y
Datenbanksysteme 2
Benutzer 1
Benutzer 2
Programm A
Externes
Modell A
Externes
Modell B
DML
Transformationsregeln
Konzeptionelles Modell
(Schema)
DDL
Transformationsregeln
internes Modell
(Schema)
Speichermedien
Web-DB-Kopplung, © Till Hänisch 2003
DSDL
hierarchisches Modell
Lieferant
Adresse
Artikel
Lager
Web-DB-Kopplung, © Till Hänisch 2003
Netzwerk-Modell
Lieferant
Adresse
Warengruppe
Artikel
Lager
Auftrag
Web-DB-Kopplung, © Till Hänisch 2003
Lagerposition
Relationale Datenbanken 1



Für den Anwender stellen sich die Daten in Form von Tabellen
dar
mögliche Operationen erzeugen neue Tabellen aus bestehenden
 Untermenge der Zeilen einer Tabelle
 Untermenge der Spalten einer Tabelle
Mögliche Operationen
 Tabellen hinzufügen
 Datensätze hinzufügen (insert)
 Datensätze holen (select)
 Datensätze ändern (update)
 Datensätze löschen (delete)
 Tabellen löschen
Web-DB-Kopplung, © Till Hänisch 2003
Relationale Datenbanken 2
Tabelle
Auftragskopf
PS
Auftragspositionen
FS
Datensatz
Web-DB-Kopplung, © Till Hänisch 2003
Relationale Datenbanken 3

Eigenschaften der Relationen
(zweidimensionalen Tabellen)





Die Zeilen der Tabelle sind paarweise verschieden
Die Reihenfolge der Zeilen ist irrelevant
Das Tauschen der Spalten ändert die Relation
(Tabelle) nicht
Die Attributwerte von Relationen sind atomar
Die Spalten der Tabelle sind homogen (= alle
Werte einer Spalte sind vom gleichen Datentyp)
Web-DB-Kopplung, © Till Hänisch 2003
Normalisierung
Normalform
Test
Abhilfe
1. NF
Relation sollte keine mehrwertigen
Attribute haben
Neue Relation für jedes
mehrwertige Attribut
2. NF
Bei Relationen mit
zusammengesetztem PK sollte kein
Attribut von einem Teil des
Schlüssels funktional abhängig sein
Zerlegung, neue Relation für jeden
Teil des Schlüssels mit den
abhängigen Attributen.
(Achtung: Beziehung zum PK der
ursprünglichen Relation und allen
abhängigen Attributen muß
erhalten bleiben)
3. NF
Kein Nicht-Schlüsselattribut sollte
von einem anderen NichtSchlüsselattribut funktional
abhängig sein
Zerlegung, neue Relation mit den
Nicht-Schlüsselattributen und ihren
abhängigen Attributen
"Your attributes shall depend on the key, the whole key and nothing but the
key so help me Codd"
(Usenet, comp.databases.oracle, Autor unbekannt)
Web-DB-Kopplung, © Till Hänisch 2003
Transaktionen



Transaktionen stellen ein Bündel logisch und fachlich zusammen
gehörender Buchungen dar. Besonderes Kennzeichen
transaktionaler Systeme ist die konsistente Veränderung eines
gemeinsamen Datenbestandes durch mehrere, parallel
ablaufende Dialoganwendungen
Beispiel Überweisung:
Eine Überweisung besteht in aus zwei Buchungen:
 Der Soll-Buchung auf dem Konto des Überweisenden, und
 Der Haben-Buchung auf dem Konto des Empfängers
Da es nur sinnvoll ist, wenn beide Buchungen gemeinsam
vorgenommen werden, ist dies von einem Transaktionssystem
sicherzustellen (Commit vs. Rollback)
Web-DB-Kopplung, © Till Hänisch 2003
ACID-Eigenschaften

Atomicity




Änderungen finden so statt, daß das System konsistent bleibt
Beispiel: Der von Konto 1 angehobene Betrag ist der gleiche wie der Konto 2
gutgeschriebene
Isolation



Beispiel: Geld wird von Konto 1 abgehoben und Konto 2 gutgeschrieben
Consistency


Die Änderungen an den Daten durch eine Transaktion finden entweder vollständig
oder gar nicht statt
Für jede Transaktion Ti sieht das System so aus, als ob alle Tj mit i<>j entweder vor
oder nach Ti ablaufen
Beispiel: Wenn jemand anderes gleichzeitig eine Buchung auf Konto1 oder Konto 2
macht, wird die Überweisung trotzdem korrekt ausgeführt
Durability


Wenn eine Transaktion abgeschlossen ist, bleiben die Daten auch bei Abstürzen,...
erhalten
Beispiel: Auch wenn der Geldautomat nach der Auszahlung abstürzt, taucht die
Auszahlung im Konto (Auszug) auf
Web-DB-Kopplung, © Till Hänisch 2003
Tabellen



In relationalen DB werden Daten in
Tabellen organisiert
Jede Spalte enthält eine bestimmte Art
von Information, jede Zeile einen
Datensatz
Jede Spalte hat einen Datentyp

CHAR, VARCHAR, NUMBER, DATE,...
Web-DB-Kopplung, © Till Hänisch 2003
Tabellen anlegen


CREATE TABLE tabname (columns);
z.B. Tabelle Artikel
CREATE TABLE Artikel (
Nr INTEGER,
Name VARCHAR2(50),
Beschreibung VARCHAR2(500),
Preis INTEGER
);

Löschen mit DROP TABLE tabname;
Web-DB-Kopplung, © Till Hänisch 2003
Daten einfügen


INSERT INTO tabname(col) values(val)
z.B. Tabelle Artikel
INSERT INTO
Artikel(Nr,Name,Beschreibung)
VALUES(1,‘Buch',‘über das Leben');

Strings in einfachen Hochkomma '
Web-DB-Kopplung, © Till Hänisch 2003
Daten abrufen


SELECT cols FROM tabname;
z.B. Tabelle Artikel
SELECT Nr, Name FROM Artikel;

Vereinfachung: * = alle Spalten
SELECT * FROM Artikel;

Auswahl
SELECT Name, Preis FROM Artikel
WHERE Nr=10;
Web-DB-Kopplung, © Till Hänisch 2003
Daten löschen


DELETE FROM tabname [WHERE ...];
z.B. Tabelle Artikel
DELETE FROM Artikel WHERE Nr=1;
Achtung:
DELETE FROM Artikel;
löscht alle Datensätze der Tabelle !
Web-DB-Kopplung, © Till Hänisch 2003
Tabellen verknüpfen


Informationen sind auf mehrere
Tabellen verteilt und sollen
zusammengefasst werden: Join
z.B. Name der Angestellten in EMP,
Name der Abteilung in DEPT
SELECT E.ENAME,D.DNAME
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO;
Web-DB-Kopplung, © Till Hänisch 2003
Herunterladen