Die Grundterminologie

Slides:



Advertisements
Ähnliche Präsentationen
Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) ENTITY-TYPES RELATIONSHIP-TYPES (1:N / N:M / 1:1) Generalisierungshierarchie.
Advertisements

Datenbankdesign mit ACCESS.
Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Relationaler Datenbankentwurf (II)
spezielle Nutzersichten formale Ebene (deskriptive Regeln)
Datenmodellierung Externe Phase Informationsstruktur
Frame-Logik Eine Einführung Andreas Glausch.
Bauinformatik II Softwareanwendungen 1
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Kapitel 3: Das Relationenmodell
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
Datenbankdesign und Normalisierung
Kapitel 5 Stetigkeit.
Kapitel 2 Die rationalen und die irrationalen Zahlen.
Das Relationen-Modell
Das Relationenmodell 1.
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Prof. Dr. T. Kudraß1 Relationen-Algebra. Prof. Dr. T. Kudraß2 Relationale Anfragesprachen Query Language (QL): Manipulation und Retrieval von Daten einer.
Access 2000 Datenbanken.
Normalformen Normalisieren Schlüssel
Datenintegrität Referentielle Integrität create table
6 Normalformen Normalisieren Schlüssel
Einführung Dateisystem <-> Datenbanksystem
Kapitel 5: Relationenmodell und algebraorientierte Anfragesprachen
Abbildungsverfahren (1)
1 Polymorphe Operatoren Zunächst: Beschränkung auf Operatoren zum Abfragen der in Relationen enthaltenen Information. Forderung nach mathematischer Exaktheit.
Polymorphe Operatoren: Bewertung
3.5.2 Fremdschlüssel/ Referentielle Integrität (1/9)
1 Gruppierung (1) Motivation: Bisher existierte nur die gesamte Relation als eine einzige Gruppe. Interessanter ist es, Aggregierungen über Teilmengen.
Folie 1 Kapitel II. Vom Raumbegriff zu algebraischen Strukturen Neubeginn: Herleitung des Begriffs Vektorraum aus intuitiven Vorstellungen über den Raumbegriff.
Relationale Datenbankmodelle
Datenbank.
SS 2013 – IBB4B Datenmanagement Fr 17:00 – 18:30 R Vorlesung #5 Relationale Entwurfstheorie.
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Datenbanken Dantenbanksystem Data Base System Datenbasis (Daten)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #4 Das relationale Modell.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #2 Das relationale Modell (Teil 1)
WS 2013/14 Datenbanksysteme Fr 17:00 – 18:30 R Vorlesung #3 Das relationale Modell (Teil 2)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
Freiwillige Feuerwehr der Stadt Perg
Agenda für heute, 19. Januar 2007 Informationssysteme: ETH-BibliothekInformationssysteme: ETH-Bibliothek Logische Verknüpfungen als Grundlage für die Informationsgewinnung.
Relationale Algebra Vortrag am © 2007 Daniel Birkholz.
Relationentheorie AIFB SS Relationen in 1NF und relationale Datenbanken(1/5) Attribut a Wertebereichdom(a) (domain) AttributemengeA = {a 1,...,
Ihr Trainer: Gerold Hämmerle
Das relationale Modell
Normalisierungsprozess
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Agenda für heute, 13. Januar 2006
Grundlagen des Relationenmodells
1 Polymorphe Konsistenzbedingungen (1) Polymorphe Konsistenzbedingungen legen fest, welche Arten von Zustandsbeschränkungen nach einer Konkretisierung.
1 Polymorphe Operatoren Zunächst: Beschränkung auf Operatoren zum Abfragen der in Relationen enthaltenen Information. Forderung nach mathematischer Exaktheit.
Tupelkalkül: Notation (1)
Algebraische Optimierung (1)
Einführung Dateisystem <-> Datenbanksystem
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
SS 2014 – IBB4B Datenmanagement Do 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
1 Relationale Datenbasisschemata (1) Substitution der Variablen zu Tupel- und Relationstypen. Für das Beispiel: Typ tupel EineArtikelArt ( ANr:Zeichen(8),
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Übungsblatt 4 Erläuterungen Wintersemester 15/16 DBIS.
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
SQL Basics Schulung –
ER-Modell und Relationales Schema
 Präsentation transkript:

Die Grundterminologie Relationale Objekte Relation (Tabelle) Attribut (Spalte, Feld) Domain (Wertebereich) Degree(Ausdehnungsgrad der Tabelle) Tupel (Datensatz, Rekord) Cardinalität Key (Schlüsselfeld) Candidate – Key (eindeutiger Schlüssel) Primary – Key ( Hauptschlüssel) Alternate – Key (Zweitschlüssel) Foreign – Key (Fremdschlüssel)

Relationale Integritätsregeln Entity – Integrität Referentielle Integrität Relationale Operationen Restriction (Zeilenselektion) Projection (Spaltenselektion) Union (Vereinigung) Intersection (Schnittmenge) Difference (Diferenz) Product (Kartesisches Produkt) Join (Verbindung) Division (Division)

Datenmodelle In jedem System, in dem Daten verwaltet werden, müssen diese eine bestimmte Struktur haben. Diese Struktur heißt "SCHEMA" einer Datenbank. Diese Struktur, zusammen mit den assoziirten Operatoren wird als Datenmodell, logisches Modell oder konzeptuelles Modell bezeichnet. Das bekannste und zugleich abstakteste Modell stammt von 1970 und wird relationales Datenbankmodell gennant. Der verfasser heisst CODD. 3

Codd’s Principles Jede Relation muss ein Identifikationsatributt haben (falls dieser nicht existiert muss er hergestellt werden); Jedes Attribut muss atomar (unzerteilbar) sein; Jedes Tupel einer Relation muss für ein Attribut einen einzige Wert enthalten; Jedes Attribut mus direkt und vollständig vom Identifikationsatributt abhängen; Ein Attribut darf nur ein einziges Mal innerhalb einer Relation auftreten. Um Codds Prinzipien einzuhalten und um die Redundanzheit innerhalb einer DB zu reduzieren, muss man die "Normalisierung von Relationen" zu benutzen.

Relationenalgebra Um die Relationen zu manipulieren, d.h. in einen vom Benutzer der Datenbank gewünschten Zustand zu bringen, gibt es eine Anzahl von Operatoren. Diese Operatoren nehmen Relationen als Input an und erzeugen Relationen.

Basisoperationen Es gibt 5 Basisioperationen (genügend um Algebra zu definieren und andere Operationen damit auszudrücken): Vereinigung (Union) R  S Differenz (Set difference) R – S Kartesisches Produkt(Product) R x S Projektion (Projection) Ak... (R) Restriktion (Selection) F (R)

Es seien die Relationen R und S als Basisirelationen gegeben: R A B C S D E F a b c b g a d a f d a f c b d

Die Vereinigung R  S ist auch eine Relation (E) und zwar die Menge aller Tupel, die in R oder S oder in beiden Relationen sind. Die Verknüpfung zweier Relationen mit UNION ist nur erlaubt, wenn beide Relationen den gleichen Degree besitzen und jedes Attribut der ersten Relation kompatibel ist mit dem korrespondierenden Attribut der zweiten Relation (d.h. dass die Folge der Attribute die selbe ist. Die Folge und nicht die Namen der Attribute!). Wenn diese Voraussetzung erfüllt ist, sind diese zwei Relationen "UNION-kompatibel".

Differenz. Die Differenz R – S ist eine Relation E Differenz. Die Differenz R – S ist eine Relation E. Diese Relation ist die Menge aller Tupel die in R aber nicht in S enthalten sind. Die Relationen R und S müssen denselben Degree haben und die Folge der Attribute muß dieselbe sein. (Die Folge und nicht die Namen der Attributen!). Auch bei der Differenz müssen die Relationen UNION-kompatibel zueinander sein.

Kartesisches Produkt. Seien R und S Relationen mit Degree D1 und D2. Das kartesische Produkt R x S ist die Menge aller (D1+D2) gradigen Tupel, deren erste D1 Elemente ein Tupel in R und deren letzte D2 Elemente ein Tupel aus S darstellen.

Man bezeichnet: E = PRODUCT(R,S) , wobei E A B C D E F a b c b g a a b c d a f d a f b g a d a f d a f c b d b g a c b d d a f Die Ergebnisrelation (E) hat die Cardinalität C(E) = C(R) * C(S) , wenn sie nicht Duplikate enthält! Also, man bildet das kartesische Produkt aus zwei Relationen, indem man jedes Tupel der ersten Relation mit jedem Tupel der zweiten Relation kombiniert (es wird also jede Kombinationsmöglichkeit der beiden Relationen gebildet).

Projektion. Bei der Projektion werden einzelne Spalten einer Relation auf eine neue Relation abgebildet. Die Projektion einer Relation ist gleichbedeutend mit einer Ausschnittbildung der Relation in vertikaler Richtung. Sei R eine Relation mit Degre k. Dann ist A1,A2,. . ., Am(R) die Abbildung von R auf die Komponenten A1,A2, ..., Am. Die entstehende Relation ist m-gradig.

Die formalen Beschreibungen sind: E = A1,A2,. . ., Am(R) E = R[A1,A2,...,Am] E = PROJ(R,<A1,A2, . . ., Am>) Der Algorithmus: 1. Man löscht aus der Relation R alle Attribute welche nicht als Parametern der Projektion erwähnt sind. 2. Man liest die Tupeln in der bestimmten Reihenfolge. 3. In der Relation RP löscht man die Duplikate (Tupeln !)

Restriktion. Manchmal auch Selektion bezeichnet, diese Operation entwickelt eine Relation, indem nur bestimmte Tupel berücksichtig werden. Die Auswahl der Tupel erfolgt dieses Mal zusätzlich in horizontaler Art. Die Auswahl der Tupel wird nach einem bestimmten Kriterium gemacht.

Die Bedingung ist eine Formel. Diese Formel enthält: Operanden (Konstante oder Komponente einer Relation); Aritmethische Vergleichsoperatoren <, =, >, <>; Logische Operatoren AND, OR, NOT. Sei F die Formel. Dann ist die Selektion F(R) die Menge aller Tupel t in R, für die die Formel F wahr ist.

Schnittmenge. Ermittelt gleiche Tupel aus zwei Relationen. Die Relationen müssen UNION-kompatibel zueinander sein. Das Ergebnisrelation ist die Menge der Tupel welche sowohl R als auch S gehören. Bemerkung. R  S kann als R  S = R – (R-S) ausgedrückt werden.

JOIN (Verbund). Durch eine Verknüpfung werden zwei Relationen zu einer Relation verbunden, indem die Attribute vergleicht werden und bei Übereinstimmung die Tupel kombiniert werden. Der Join verbindet zwei Relationen ähnlich wie das kartesische Produkt.

Die Ergebnisrelation E kann wie folgt berechnet werden: Man bildet das kartesische Produkt RxS. Für jedes Attribut, das sowohl in R als auch in S erscheint, selektiert man die Tupel, für die die Werte der gleichnamigen Attribute übereinstimmen. Eine der gleichen Spalten wird ausprojektiert.

Der Vergleichsoperatoren sind =, >, <, <>, >=, <=. Die allgemeine Form des Join ist das Theta-Join, geschrieben R  S wobei  eine Formel ist, die Elemente der Spalten i und j vergleicht. Der Vergleichsoperatoren sind =, >, <, <>, >=, <=. Die formale Beschreibung ist: E = JOIN(R, R.Ak  S.Ak, S) wobei E = PROJ(REST(PRODUCT(R,S), R.A1  S.A1), <R.A1, . . ., R.An, S.A1, ..., S.Am>)

E = PROJ(REST(PRODUCT(R,S), R.A1 = S.A1), Ein Theta-Join mit dem Vergleich-operator "=", wird Equi-Join gennant, wobei auch hier wie bei allen Theta-Joins die Ergebnis-relation beide Join Attribute beinhaltet. E = PROJ(REST(PRODUCT(R,S), R.A1 = S.A1), <R.A1, . . ., R.An, S.A1, ..., S.Am>)

E = PROJ(REST(PRODUCT(R,S), R.A1 = S.A1), Natural-Join. Ein Equi-Join,dessen Ergebnis relation die beiden gleichen Attributwerte nur einmal beinhaltet, heißt natürlicher Join. E = PROJ(REST(PRODUCT(R,S), R.A1 = S.A1), <R.A1, . . ., R.An, S.A2, ..., S.Am>)

Folgende Regeln gelten für Join’s: Die Attribute, über die der Join ausgeführt wird (Join-Attribute), müssen keine Keys sein. Die Join-Attribute der beiden betroffenen Relationen müssen nicht den gleichen Namen haben. Jede Relation kann mit jeder anderen gejoint werden (auch mit sich selbst).

Auto-Join. Der Auto-Join, auch Self-Join genannt, ist eine Verknüpfung einer Relation mit sich selbst. E = REST(PRODUCT(R,R), R.A1 = R.A2). Inner-Join, Outer-Join. Der “normale” Join erzeugt nur Tupel in der Ergebnisrelation, wenn der Attributwert der ersten Relation in der zweiten Relation vorkommt. Dieser Join wird auch INNER-JOIN genannt.

Beispiel: Es seien die Relationen : ARTIKEL A_Nr A_Bez A_Art Lief_Nr 1 ACER Monitor 2 LG 3 Herkules Grafikkarte 4 Samsung 5 Compaq 6 HP Druker 7 HP+ 8 Cannon

Und die Relation LIEFERANT Lief_Nr Lief_Name 1 Oktalgroup 2 Audio Master 3 Elnicron 4 Easyprint 5 Sharp

Erste Frage: Welche Artikel (Artikelbezeichnung) werden vom Lieferanten nr.4 geliefert ? Die Lösung: E= PROJ(REST(ARTIKEL, Lief_Nr=4), A_Bez)

Zweite Frage: Welche Lieferanten liefern einen Monitor? Die Lösung: E=PROJ(REST(JOIN(ARTIKEL,Lief_Nr= Lief_Nr, LIEFERANTEN), A_Art="Monitor"), Lief_Name) oder E1=JOIN(ARTIKEL,Lief_Nr=Lief_Nr, LIEFERANTEN) E2 = REST(E1, A_Art=„Monitor“) E = PROJ(E2, Lief_Name)

Oder E1=REST(PRODUCT(ARTIKEL,LIEFERANTEN), Lief_Nr=Lief_Nr) E2=REST(E1, A_Art="Monitor) E=PROJ(E2, Lief_Name)

Beispiel: Es seien die Relationen: PRODUKT (Code,Bennenung, Maßeinheit,Preis) KUNDE (KNr,Name,Adresse,Konto) RECHNUNG (RNr,Datum,KNr,Code, Liefermenge)

Problem 1 Die Bennenungen aller Produkte welche an der Kunden GRIRO geliefert wurden. Lösung E1= REST(KUNDE, Name="GRIRO") E2= JOIN(RECHNUNG,KNr=KNr, E1) E3=PROJ(PRODUKT, Code, Bennenung) E4=JOIN(E2,E3, E2.Code = E3.Code) E = PROJ(E4, Bennenung)

Problem 2 Die Namen der Kunden an die, nach dem 01.01.2007, keine Produkte mehr geliefert wurden. Lösung E1=REST(RECHNUNG,Datum >#01.01.2007#) E2=PROJ(E1, KNr) E3=PROJ(RECHNUNG, KNr) E4=MINUS(E3,E2) E5=JOIN(KUNDE,KNr=KNr, E4) E=PROJ(E5, Name)

Problem 3 Die Rechnungen für die Produkte mit einem höheren Preis als 100 Lei. Lösung E1 = REST(PRODUKT, Preis>100) E2 = JOIN(E1, Code = Code, RECHNUNG) E = PROJ(E2, RNr)