Klassischer Klausuraufbau:
Ein Datenbanksystem besteht aus:
Big Data Problem: Erfassung, Verarbeitung und Analyse von Daten erfordert immer häufiger effiziente Datenbanksysteme
Bestimmung der Struktur und des allgemeinen Aufbaus der Datenbank.
Anforderungsanalyse Entwurf Implementierung Validierung Betrieb ( Evolution)
Entity-Typ (Objekt):
Entity-Set (Objektmenge): Menge von konkreten Instanzen des Entity-Typ
Attribute:
Ein Attribut beschreibt die Eigenschaften einer zugehörigen Entity.
Schlüssel:
Einzigartig für eine Instanz.
Ein Attribut kann aus mehreren Attributen bestehen.
Mehrwertige Attribute:
Relationship:
Rekursive Beziehung:
isA Beziehung: partiell:
Relationen: von Domänen z.B. oder
Tupel:
Schlüssel: Teilmenge S der Attribute, sodass für Tupel gilt:
Im geordneten Relationenschema spielt ist . Im ungeordneten Relationenschema spielt die Reihenfolge im Tupel keine Rolle.
n:m Beziehungen Relationen für Relation und Entities:
1:n Beziehungen
1:1 Beziehungen
Rekursive Beziehungen
isA Beziehungen
Mehrwertiges Attribut:
Relationen als Wertebereich. Somit sind R,S Mengen von Tupeln
Vereinigung:
Differenz:
Kartesisches Produkt:
Selektion:
Projektion:
Umbenennung: oder
Alle Grundoperationen sind induktiv definiert, sodass eine Relation auch durch eine gültige Operation auf einer Relation ersetzt werden kann.
Natürlicher Verbund (natural join):
Theta-Join:
Deklarative Sprache (im Gegensatz zur prozeduralen Sprache der relationalen Algebra)
Alle Tupel t die die Formel erfüllen
z.B.
Ein Ausdruck mit k Bereichsvariablen:
z.B.
Structured Query Language ist eine Mischung aus relationaler Algebra und des relationalen Kalküls. SQL ist eine deklarative Datenbankanfragensprache.
CREATE TABLE Cars (
SerialNumber INTEGER NOT NULL,
CarName VARCHAR (50),
OwnerId VARCHAR (50) REFERENCES Owner(OwnerId)
PRIMARY KEY (SerialNumber)
);
ALTER TABLE Cars
ADD LicencePlate VARCHAR (50);
ALTER TABLE CARs
DROP COLUMN CarName;
CREATE UNIQUE INDEX CarIndex
ON Cars (SerialNumber);
DROP INDEX CarIndex;
// DROP TABLE;
CREATE VIEW OwnedCars AS
SELECT * FROM Cars WHERE OwnerId IS NOT NULL;
Data Manipulation Language (DML) von SQL
SELECT * // Projektion
FROM Cars // Kreuzprodukt
WHERE CarName LIKE '%BMW%' // Selektion
SELECT DISTINCT
gibt nur einmalig eine Zeile zurück. Duplikate werden ignoriert.
SELECT [COUNT, MIN, MAX, SUM, AVG] ([Distinct] <Attribut>)
FROM ... WHERE ...
COUNT: Anzahl der Zeilen zu gegebener Querry
SUM : Summe der Werte eines Attributs
SELECT * FROM ...
GROUP BY <Liste von Attributen>
ORDER BY <Liste von Attributen> ASC/DESC
// Theat-Join
SELECT * FROM Cars ...
JOIN ... ON <Bedingung für Attribute>
Es exestieren noch LEFT (OUTER) JOIN, RIGHT (OUTER) JOIN, FULL (OUTER) JOIN
, welche analog zu JOIN
verwendet werden können. Die funktionsweise lässt sich an der Grafik gut veranschaulichen.
INSERT INTO Cars (CarName, OwnerId)
VALUES ('BMW',1)
DELETE FROM Cars WHERE ...
UPDATE Cars
SET Price = Price + 200
WHERE CarName = %'BMW'%
Günstigsten Auswertungsplan ermitteln.
SQL zu relationaler Algebra (kanonisch)
Beispiel:
SELECT VName, NName
FROM Studenten AS S, Professoren AS P
WHERE S.NName = P.NName
AND S.Alter < P.Alter - 20
Wird zu:
Restrukturierungsalgorithmus
Die Idee ist Selektionen möglichst früh durchzuführen und somit eine Performance-Verbesserung zu erreichen.
Prozesse sollen nebenläufig auf Daten arbeiten können. Für sowas verwendet man Festplatten als Sekundärspeicher. Die Daten werden in Blöcken gespeichert.
Mehrwege-Bäume: Alle Knoten haben viele Nachfolger ud M viele Schlüssel.
B-Baum: M+1 Mehrwege Suchbaum für eine gerade Zahl M.
Einfügen
Löschen
Einfügen:
-Baum: B-Baum Variante mit zwei Knotentypen
-Baum speichert Schlüssel ohne Daten. Dadurch ist der -Baum meist breiter und weniger hoch als ein B-Baum.
Invertierte Listen
Quadtree
R-Baum (Rectangel-Baum)
Sei eine Attributmenge und ein Relationenschema. .
funktional abhängig von :
intrarelationale Abhängigkeit: : 1, falls in R gilt, sonst 0
voll funktional abhängig: Es gilt , aber für alle .
Schlüsselkandidat: Attributmenge ist ein Schlüsselkandidat, wenn voll funktional abhängig von ist
Primärschlüssel: Einer der Schlüsselkandidaten
R erfüllt funktionale Abhängigkeiten , wenn für Tupel p,q gilt und