Zusammenfassung ST

Werbung
Zusammenfassung ST-Traub
Inhalt
1.
ERM/ERD ......................................................................................................................................... 2
1.1 Begriffe .......................................................................................................................................... 2
1.2 Aufbau ERD .................................................................................................................................... 2
Regeln und Vorgehensmuster ............................................................................................................. 4
2. Relationales Datenmodell (RDM) ........................................................................................................ 4
2.1 Unterschiede zu ERM .................................................................................................................... 4
2.2 Umsetzung ERD zu RDM ................................................................................................................ 5
2.3 Normalisierung .............................................................................................................................. 5
2.3.1 Erste Normalform ................................................................................................................... 5
2.3.2 Zweite Normalform ................................................................................................................ 6
2.3.3 Dritte Normalform .................................................................................................................. 6
3. SQL ....................................................................................................................................................... 6
3.1 SELECT ........................................................................................................................................... 6
3.2 JOIN ............................................................................................................................................... 7
3.3 CREATE .......................................................................................................................................... 7
3.4 UPDATE, INSERT, DELETE .............................................................................................................. 8
3.5 VIEW .............................................................................................................................................. 8
3.6 INDEX ............................................................................................................................................. 8
4. Embedded SQL ................................................................................................................................... 8
5. Oracle .................................................................................................................................................. 9
5.1 PL/SQL ........................................................................................................................................... 9
5.2 Rechteverwaltung unter Oracle .................................................................................................. 10
6. RDBMS ............................................................................................................................................... 10
1
1. ERM/ERD
Dient der Modellierung eines Ausschnitts der realen Welt, dabei steht das Was (Sachlogik), und nicht
das Wie (Technik) im Vordergrund. Das ERM ist Grundlage
1.1 Begriffe
Datenmodell
Legt Regeln für Datenstrukturen fest (z.B. ERD)
Entität
Repräsentiert ein Objekt/Ding/Vorgang/Sachverhalt aus der Wirklichkeit, der Informationen hat die
in einer DB gespeichert werden können
Entitätsmenge
Zusammenfassung von Entitäten mit gleichen Merkmalen, aber evtl. unterschiedlichen
Ausprägungen.
Entitätstyp/Teilmenge
Eine Menge von Entitäten mit gleichen Attributen/gleichen Ausprägungen von Merkmalen.
Beziehung/Relationship
Semantischer Zusammenhang zwischen zwei Dingen. Wird als Beziehungsname an Kante geschrieben.
Rolle
Bezeichnung für eine Teilmenge von Entitäten, die die entsprechende Beziehung eingehen (z.B.
„Vorgesetzter“).
Aggregation
Eine „part-of“-Beziehung.
1.2 Aufbau ERD
Entitätstyp
Kardinalität
Haus
1
wird bewohnt von
n
Person
wohnt in
Beziehungsname
Beziehung/Kante
2
Rekursive Beziehung
ist Vater von
1
Person
n
Part-of-Beziehung (Aggregation)
Roboter
1
part of
n
Armelement
Block
c1
part of
n
Blatt
Attribute
RNr
ANr
Datum
Preis
Rechnung
n
n
hat
Artikel
Anzahl
Schlechtere Alternative
RNr
RNr
ANr
ANr
Datum
Preis
Rechnung
1
hat n
Position
n
hat
1
Artikel
Anzahl
Vererbung
Person
Angestellter
Kind-Entitäten erben Primarykey und
alle Attribute der Eltern-Entität.
Die Kind-Entitäten können nur neue,
eigene Attribute definieren.
Kunde
3
Mehrfachbeziehungen
a) = N Firmen liefern n Produkte in n Länder.
Land
Vorgehensweise:
Die Beziehung von Entitätstyp A zu B wird an
Entitätstyp C geschrieben.
n
a
n
Firma
n
Produkt
Regeln und Vorgehensmuster
Vererbung
Attribute und Primärschlüssel stehen beim Eltern-Entitätstyp. Die Sub-Entitätstypen müssen
mindestens ein eigenes Attribut haben.
Primärschlüssel
Jeder Entitätstyp benötigt einen Primärschlüssel.
Fremdschlüssel
Ein ERD hat keine Fremdschlüssel
Historie
Wird über Beziehungsattribute abgebildet (z.B. für Beziehung “hat” Attribute “von” und “bis”)
Listen
Werden als part-of-Beziehung realisiert (Listenteil ist Teil von Liste)
Rollen
Werden über mehrere Beziehungen zwischen den Entitäten abgebildet (z.B. zischen „Hotel“ und
„Person“ die Beziehungen „Gast“, „Mitarbeiter“ und „Besitzer“
4
2. Relationales Datenmodell (RDM)
2.1 Unterschiede zu ERM
ERM
Entität
Entitätsmenge
n:m-Beziehung
Beziehungsattribute
Mehrfachbeziehungen
ERD
Tupel
Relation
Domäne
max. 1:n-Beziehung, daher n:m Join-Tabelle
Fremdschlüssel
neue Relation
neue Relation
2.2 Umsetzung ERD zu RDM
MatNr
Student
Student (MatNr, …)
123, …
111, …
987, …
VorlNr
n
hört
Hört (MatNr,
123,
123,
987,
m
VorlNr)
1
2
1
Ein ERM enthält keine Beispieldaten wie hier in der Zeichnung!
5
Vorlesung
Vorlesung (VorlNr, …)
1,
…
2,
…
3,
…
2.3 Normalisierung
Ziel: Verhindern von Redundanzen und Anomalien (Widersprüche) , so dass ein RDM zur Speicherung
von Daten in einer relationalen DB verwendet werden kann.
Manchmal ist es sinnvoll nicht vollständig zu normalisieren, um eine höhere Performance zu
erreichen oder leichtere Abfragen zu ermöglichen.
2.3.1 Erste Normalform
Keine multiplen Attribute, d.h. ein Attribut kann nicht weiter (sinnvoll) zerlegt werden.
Beispiel: Adresse (Johannes Degler, Weiherstr. 18. 72585 Riederich)
Name (Johannes), Nachname (Degler), Straße (Weiherstr.), Nr (18), PLZ (72585), Ort (Riederich)
2.3.2 Zweite Normalform
Jedes Nicht-Schlüsselattribut ist vom gesamten Primärschlüssel abhängig.
Beispiel:
CD_Lied (Track,
CD_ID,
Albumtitel,
Interpret,
Titel)
1
1000,
Remasters,
Led Zeppelin
Communication Breakdown
4
1000,
Remasters,
Led Zeppelin
Dazed and Confused
Album und Interpret sind von CD_ID abhängig, aber nicht von Track Verletzung der 2NF
Lösung: Auslagern von CD_ID, Interpret und Albumtitel in extra Tabelle. CD_ID bleibt weiter Teil des
Primarschlüssels von CD_Lied, ist aber gleichzeit ein Fremdschlüssel.
2.3.3 Dritte Normalform
Nicht-Schlüsselattribute sind nicht von anderen Nicht-Schlüsselattributen abhängig.
Beispiel:
CD (
CD_ID,
Albumtitel,
Interpret,
Gründungsjahr)
Das Gründungsjahr ist vom Interpreten und nicht von CD_ID abhängig, hängt also nur indirekt mit
CD_ID zusammen.
Lösung: Auslagern von Interpret und Gründungsjahr in extra Tabelle
6
3. SQL
Datenbanksprache für relationale Datenbanken zur Manipulation von Datenbeständen.
Ermöglicht Sicherung der Datenintegrität durch Primary Keys, Unique-Spalten, Check-Bedingungen,
Default-Werte, Foreign Keys, On-Delete-Aktionen.
3.1 SELECT
SELECT [DISTINCT] Auswahlliste
FROM Quelle
WHERE Where-Klausel
[GROUP BY (Group-by-Attribut)+
[HAVING Having-Klausel]]
[ORDER BY (Sortierungsattribut)+ [ASC|DESC]]
DISTINCT
Entfernen gleicher Ergebnistupel
GROUP BY &HAVING
Zusammenfassen von Tupeln (Aggregationsfunktion) mit GROUP BY. Mit HAVING werden
Bedingungen angegeben (wie in WHERE).
3.2 JOIN
Spezialfall von SELECT bei dem Daten aus mehreren Tabellen abgefragt werden.
Equi-Join / Inner-Join
Nennung mehrerer Tabellen bei FROM, Verknüpfung in WHERE-Bedingung.
SELECT a.NAME, b.GEHALT FROM Mitarbeiter a, Gehalt b WHERE a.NR = b.NR
Auto-Join / Self-Join
Nur eine Tabelle mit zwei Synonymen, Verknüpfung über WHERE
Natural-Join
Verknüpfung automatisch über gleichnamige Spalten
SELECT Name, Gehalt FROM Mitarbeiter NATURAL JOIN Teile [USING Nr]
Outer-Join
Wie Innter-Join (nur eben ON statt WHERE), gibt auch Zeilen aus, die auf einer Seite keine Daten
haben (z.B. Lieferanten die nichts liefern).
SELECT * FROM Mitarbeiter a LEFT|RIGHT|FULL OUTER JOIN Gehalt b ON a.NR = b.NR
Z.B. bei LEFT: Alle linken Zeilen (Mitarbeiter) und nur die rechten Zeilen die der Bedingung
entsprechen (alle Mitarbeiter, auch solche ohne Gehalt)
7
3.3 CREATE
CREATE TABLE Kurs
(
Nummer
INT NOT NULL,
ReferentNr INT NOT NULL,
Beginn
DATE NOT NULL,
Ende
DATE CHECK (Beginn < Ende),
PRIMARY KEY(Nummer),
FOREIGN KEY (ReferentNr) REFERENCES Referent
ON DELETE RESTRICT
)
NOT NULL
CHECK (…)
PRIMARY KEY
FOREIGN KEY
Einträge dürfen nicht leer sein
Einträge müssen der Bedingung entsprechen
Primärschlüssel (bei Angabe mehrere Spalten zusammengesetzter PK)
Fremdschlüssel, muss gleichen Namen wie PK in referenzierter Tabelle haben
ON DELETE:
Gibt an, was passieren soll, wenn der als Fremdschlüssel in seiner Herkunfts-Tabelle gelöscht werden
soll.
RESTRICT
Darf nicht gelöscht werden
SET [NULL|DEFAULT] Auf NULL oder DEFAULT-Wert setzen
CASCADE
Tupel löschen. Vorsicht: Kann weitere Löschaktionen auslösen!
3.4 UPDATE, INSERT, DELETE
UPDATE tabelle SET spalte = wert WHERE bedingung
INSERT INTO tabelle VALUES wert1, wert2
DELETE FROM tabelle WHERE bedingung
3.5 VIEW
Dritte Ebene im ANSI-SPARC-Architekturmodell (VIEW, Table, Tablespace). Bildet eine virtuelle,
temporäre Ergebnistabelle. Updates sind möglich, aber nur wenn die DB die zu ändernden Daten
einer Tabelle zuordnen kann.
Vorteile: Logische Datenunabhängigkeit und Sicherheit
CREATE VIEW name AS SELECT …
3.6 INDEX
Beschleunigt Zugriff aus Schlüsselfelder (einzelne oder mehrere Spalten) durch Indexierung .#
CREATE INDEX name ON tabelle (spalte1 [, spalte 2])
8
4. Embedded SQL
Einbetten von SQL-Befehlen in eine höhere Programmiersprache (Hostsprache).
•
•
•
SQL-Anweisungen und –Deklarationen werden in Schlüsselwörter eingeschlossen.
Für den Datenaustausch zwischen Programm und DB werden HOST-Variablen benötigt, diese
werden in der DECLARE-SECTION deklariert
NULL-Werte werden über eine Indikator-Variable (int) erkannt if(indikator < 0)
Ablauf Quellcode zu Programm
Precompiler
•erzeugt Quellcode in
Sprache der
Hostprogramms
HostsprachenCompiler
•erzeugt
Objektprogramm
Loader/Binder
•Linkt DB-Bibliothek
(herstellerspezifisch)
Ausführbares
Programm
9
5. Oracle
5.1 PL/SQL
Proprietäre Sprache von Oracle
Programmaufbau
CREATE OR REPLACE PROCEDURE machwas (zahl IN INT) IS
DECLARE
CURSOR cur1 IS SELECT * FROM Tabelle WHERE Anzahl = zahl;
rec1 Tabelle%ROWTYPE;
BEGIN
Deklarationsteil
OPEN cur1;
FETCH cur1 INTO rec1;
LOOP
…
EXIT WHEN cur1%NOTFOUND;
END LOOP;
CLOSE cur1;
Cursor-Handling
END;
Trigger
Spezielle Stored Procedure die nur automatisch aufgerufen wird (bei best. Aktion gegen eine Tabelle)
Kann aufgerufen werden: BEFORE|AFTER
INSERT|DELETE|UPDATE [OF spaltenname]
ON tabelle
Zusätzlich kann FOR EACH ROW angegeben werden, dann ist ein Zugriff auf alte und neue Daten über
„:OLD“ bzw. „:NEW“ möglich (natürlich nur wenn sinnvoll, z.B. kein :OLD bei INSERT).
5.2 Rechteverwaltung unter Oracle
Rechtevergabe erfolgt an Benutzer, Rolle oder Alle (Public).
Ein Benutzer bzw. eine Rolle wird mit CREATE USER, ALTER USER und DROP USER bzw. CREATE
ROLE,…
Mit GRANT erfolgt die Zuordnung von Rollen zu Benutzern, aber auch von Rechten zu einer Rolle
oder zu einem Benutzer:
- GRANT administratorrolle TO testbenutzer
- GRANT INSERT ON tabelle TO administratorrolle
Mit REVOKE wird eine Zuordnung wieder aufgehoben.
10
6. RDBMS
Eine DB ist in drei Schichten zu betrachten:
Interne Ebene: TABLESPACE
Ort an dem Tabellen und andere DB-Objekte gespeichert werden.
Die Speicherverwaltung (Memory  Harddisk) wird vom Betriebssystem oder von der DB
übernommen.
Konzeptionelle Ebene: TABLE
Abbildung der internen auf die externe Ebene und umgekehrt. Z.B. die physisch gespeicherten Daten
als Tabelle.
Externe Ebene: VIEW
Physisch nicht vorhandene, zur Laufzeit erstellte Sichten auf Daten (nicht nur View, sondern z.B. auch
die Sicht auf die Daten durch eine Anwendung).
11
Herunterladen