E-Business Datenmodell - Informatik

Werbung
E-Business
E-Business
E-Business und Electronic Marketing
1. Einführung
2. Online-Marktforschung / Überblick
3. Online-Marktforschung / Webserver-Logfiles
4. Online-Marktforschung / Adaptive Conjointanalyse
5. Online-Werbung
6. Software-Agenten / Einführung
7. Software-Agenten / Agentenbasierte Marktplätze
8. Datenbanken / Relationale Datenbanken
9. Datenbanken / Data Warehousing
Dr. Lars Schmidt-Thieme: Tel. 0721/608-8941
Email [email protected]
Sprechstunde Montag 11-12 Uhr, Zimmer 101.4, Bau III.
Einführung
ER-Modell
Relationales Schema
SQL
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ [11.06.2002 11:27:22]
Datenmodell
Datenmodell
Schema und Zustand:
l Schema (Intension): bechreibt die Struktur
einer Datenbank mittels sogenannter
Schema-Konstrukte. Das Schema wird oft
graphisch als Diagramm veranschaulicht.
l Zustand (Extension): beschreibt den Inhalt
einer Datenbank zu einem bestimmten
Zeitpunkt (snapshot). Der Zustand kann
durch eine Menge von Vorkommen oder
Instantiierungen von Schema-Konstrukten
beschrieben werden.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/datamodel.xml [11.06.2002 11:27:22]
Einführung
ER-Modell
Relationales Schema
SQL
Datenmodell
Datenmodell
Datenmodell:
l
Unter dem Datenmodell versteht man eine Menge
von Begriffen, mit denen das Schema (d.h. die
Struktur) einer Datenbank beschrieben werden
kann.
l Konzeptuelle Datenmodelle (High
Level-Datenmodelle): beschreiben
Datenstrukturen mittels Begriffen, die nahe
an den Vorstellungen der Benutzer sind.
m Entitiy Relationship-Modell
(ER-Modell): beschreibt Daten als
Entitäten mit Attributen und
Relationen.
m Objekt-Datenmodell: beschreibt
Daten als Objekte, die Instanzen von
Klassen sind, die wiederum
Eigenschaften und Methoden
besitzen können; die Klassen sind in
eine Vererbungshierarchie
eingeordnet.
l
repräsentierende Datenmodelle
(Implementations-Datenmodelle):
beschreiben Datenstrukturen mittels
Begriffen, die relativ direkt in Software
umgesetzt werden können.
m relationales Datenmodell:
Datenstrukturen werden mittels
Tabellen (Relationen) beschrieben.
m Netzwerk-Datenmodell:
Datenstrukturen werden mittels
Records und Mengen beschrieben.
m hierarchisches Datenmodell:
Datenstrukturen werden mittels
Records und Hierarchien
beschrieben.
Netzwerk- und hierarchische Datenmodelle
werden nur noch in älteren Datenbanken
verwendet (legacy systems).
physikalische Datenmodelle (Low
Level-Datenmodelle): beschreiben die Art
und Weise der Speicherung, d.h. die
Organisation der Daten in einem Computer
im Detail.
Einführung
ER-Modell
Relationales Schema
SQL
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/datamodel2.xml [11.06.2002 11:27:23]
Datenmodell
Datenmodell
Analog zu den drei verschiedenen Ebenen von
Datenmodellen unterscheidet man i.d.R. drei
verschiedene Schemata
(Drei-Schema-Architektur):
l internes Schema: beschreibt die
physikalischen Strukturen, die die Daten
halten.
l konzeptuelles Schema: beschreibt die
Struktur einer Datenbank für die Nutzer.
l externes Schema (oder user view):
beschreibt einen Teil der Struktur einer
Datenbank für einen bestimmten
Nutzer/Nutzergruppe.
Die Daten werden in Strukturen, die gemäß dem
internen Schema organisiert sind, gehalten;
zwischen internem Schema und höheren Schemata
vermitteln sogenannte Abbildungen (mappings).
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/datamodel3.xml [11.06.2002 11:27:23]
Einführung
ER-Modell
Relationales Schema
SQL
Klassifizierung von Datenbanken
Klassifizierung von Datenbanken
Datenbanken können nach
verschiedenen Kriterien
eingeteilt werden:
l Datenmodell: relational
oder objektorientiert
(ältere auch:
hierarchisch,
Netzwerk-Datenmodell).
l Anzahl von Nutzern:
Einplatz- und
Mehrplatzsysteme.
l Lokalisierung:
Zentralisierte Systeme,
die auf einem Rechner
leben, oder verteilte
Systeme, die auf
mehrere Rechner verteilt
sind. Bei den verteilten
Systemen unterscheidet
man weiter in homogene
Systeme, die auf allen
Rechnern die gleiche
Datenbanksoftware
einsetzen, und
heterogenen Systemen,
die auf verschiedenen
Rechnern
unterschiedliche
Datenbanksoftware
einsetzen.
l Anwendbarkeit:
Allgemein anwendbare
Systeme und spezielle
Systeme.
l Kosten: i.d.R. zwischen
Hersteller
IBM
Produkt
DB2
Typ
Website
RDBMS http://www-4.ibm.com/software/data/db2/
Oracle
Oracle9i
RDBMS http://www.oracle.com/database/oracle8i/
Informix
MySQL
PostgreSQL
Software
AG
Microsoft
Object
Design
Informix
RDBMS http://www.informix.com
MySQL
RDBMS http://www.mysql.com
PostgreSQL RDBMS http://www.postgresql.org
Poet
Versant
Exoffice
Verfügbarkeit
Evaluation
Personal
Einführung
Edition
open source
open source
Personal
Adabas
RDBMS http://www.adabas.com
Edition
Access
RDBMS http://www.microsoft.com/office/access/default.htm Personal
ObjectStore ODBMS http://www.exceloncorp.com
Edition
Object
ODBMS http://www.poet.de
Evaluation
Server
Versant
ODBMS http://www.verdant.com
Evaluation
Ozone
ODBMS http://www.ozone-db.org
open source
Tab. 1: Datenbank-Software
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/klassifikation.xml (1 von 2) [11.06.2002 11:27:24]
Klassifizierung von Datenbanken
$10.000 und $100.000.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/klassifikation.xml (2 von 2) [11.06.2002 11:27:24]
ER-Modell
Relationales Schema
SQL
ER-Modell
ER-Modell
Das
Entity-Relationship-Modell
wurde 1976 von P. Chen
eingeführt. Bestandteile
des ER-Modells sind:
l Entität: modelliert
einen Gegenstand.
Eine Entität besitzt
Attribute.
l Attribut: modelliert
eine Eigenschaft
eines Gegenstandes.
Jede Instanz einer
Entität besitzt zu
jedem Attribut einen
Wert.
l Relation: modelliert
eine Beziehung
zwischen zwei
Gegenständen.
Name
Entität
Attribut
Relation
modelliert
Gegenstand
Eigenschaft eines Gegenstandes
Beziehung zwischen Gegenständen
Diagramm-Darstellung
Rechteck
Oval
Raute
Einführung
ER-Modell
Tab. 1: Bestandteile des ER-Modells
Relationales Schema
SQL
Abb. 1: Beispiel: Eine Entität Kunde mit gewöhnlichen Attributen (Name, Geschlecht), einem
zusammengesetzten Attribut (Adresse), einem mehrwertige Attribut (Vorname) und einem
abgeleiteten Attribut (Anrede).
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell.xml [11.06.2002 11:27:25]
ER-Modell
ER-Modell
Attribute:
l einfach-zusammengesetzt:
einfache (oder atomare)
Attribute können nicht
weiter in Bestandteile
zerlegt werden;
zusammengesetzte
Attribute hingegen
bestehen aus anderen
Attributen.
l einwertig-mehrwertig:
einwertige Attribute
besitzten für jede Instanz
genau einen Wert,
mehrwertige Attribute
können für eine Instanz
mehrere Werte besitzen.
l gespeichert-abgeleitet:
gespeicherte Attribute
werden in der Datenbank
abgelegt, abgeleitete
Attribute können aus
anderen Informationen
erschlossen werden.
Einführung
ER-Modell
Relationales Schema
SQL
Abb. 1: Beispiel: Eine Entität Kunde mit gewöhnlichen Attributen (Name, Geschlecht), einem
zusammengesetzten Attribut (Adresse), einem mehrwertige Attribut (Vorname) und einem
abgeleiteten Attribut (Anrede).
l Wertebereich: Die Werte eines Attributes für eine Instanz stammen aus einem zuvor festgelegten
Bereich (z.B. ganze Zahlen, Daten, Zeichenketten bestimmter Maximallänge etc.).
l null-Wert: Der Wert null als Wert eines Attributes für eine Instanz bezeichnet einen fehlenden
Wert oder ein nicht-zutreffendes Attribut.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell1b.xml [11.06.2002 11:27:25]
ER-Modell: Entitäten
ER-Modell: Entitäten
Entitäten:
Gegenstände vom gleichen Typ, d.h. solche, die
durch die gleichen Attribute und Relationen
beschrieben werden können, modelliert man als
Instanzen einer Entität.
l Schlüsselattribut: ein Attribut, dessen Wert
unter allen Instanzen einer Entität höchstens
einmal vorkommen darf, d.h. die Entität
eindeutig bestimmt, nennt man Schlüssel.
Eine Entität besitzt meistens einen
Schlüssel, kann aber auch keinen oder
mehrere Schlüssel besitzen.
Schlüsselattribute werden durch
Unterstreichung gekennzeichnet.
l regulär-schwach: eine Entität mit
mindestens einem Schlüssel heißt regulär,
eine Entität ohne Schlüssel nennt man
schwach.
Einführung
ER-Modell
Relationales Schema
SQL
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell2.xml [11.06.2002 11:27:25]
ER-Modell: Relationen
ER-Modell: Relationen
Relationen:
Relationen dienen zur
Modellierung von Beziehungen
zwischen Gegenständen, d.h.
sie setzen verschiedene
Entitäten zueinander in
Beziehung; diese heißen
partizipierende Entitäten.
l Wertigkeit: die Anzahl
der Entitäten, die über
eine Relation in
Beziehung zueinander
gesetzt werden,
bezeichnet man als
Wertigkeit der Relation.
Oft sind Relationen
zweiwertig (binär), etwa
[Kunde]
erteilt
[Auftrag]
Eine dreiwertige Relation
wäre etwa:
[Kunde]
erteilt
[Auftrag]
bei
[Mitarbeiter]
Einführung
Abb. 1: Zweiwertige (binäre) Relation.
ER-Modell
Relationales Schema
SQL
l
Abb. 2: Dreiwertige (ternäre) Relation.
Rollennamen: die Stellen, an denen Instanzen von Entitäten in eine
Relation eingesetzt werden können, bezeichnet man als Rollen. Im
obigen Beispiel könnte man die Rollen als Auftragserteiler,
Auftrag und Auftragsbearbeiter bezeichnen. Rollen sind
wichtig, wenn Instanzen von Entitäten in mehreren Rollen gleichzeitig
vorkommen können.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell2b.xml [11.06.2002 11:27:26]
ER-Modell: Relationen
ER-Modell: Relationen
Kardinalitäts-Nebenbedingung:
eine optionale
Kardinalitäts-Nebenbedingung
bei einer binären Relation gibt
an, wie oft eine bestimmte
Instanz einer Entität mit einer
anderen Instanz in der Relation
vorkommen darf.
l 1:1: jede Instanz einer
Entität darf mit
höchstens einer anderen
Instanz in Beziehung
gesetzt werden. Bsp.:
l
[Rechnung]
erstellt für
[Auftrag].
(Jeder Auftrag besitzt
höchstens eine
Rechnung und jede
Rechnung bezieht sich
auf höchstens einen
Auftrag.)
1:n (oder n:1): Instanzen
in der ersten Rolle
dürfen mit bis zu n
verschiedenen Instanzen
in der zweiten Rolle in
Beziehung gesetzt
werden, aber Instanzen
in der zweiten Rolle mit
höchstens einer in der
ersten Rolle (bzw.
umgekehrt). Bsp.:
Einführung
ER-Modell
Abb. 1: Kardinalitätsnebenbedingung 1:1.
SQL
Abb. 2: Kardinalitätsnebenbedingung 1:n.
Abb. 3: Kardinalitätsnebenbedingung n:m.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell3.xml (1 von 2) [11.06.2002 11:27:27]
ER-Modell: Relationen
l
Relationales Schema
[Kunde]
erteilt
[Auftrag].
(Ein Kunde kann
mehrere Aufträge
erteilen aber derselbe
Auftrag kann nicht von
mehreren Kunden erteilt
werden.)
n:m: Instanzen in der
ersten Rolle dürfen mit
höchstens m Instanzen
in der zweiten und
Instanzen in der zweiten
Rolle mit höchstens n
Instanzen in der ersten
Rolle in Beziehung
gesetzt werden. Bsp:
[Auftrag]
enthält
[Produkt].
(Ein Auftrag kann
mehrere Produkte
enthalten und ein
Produkt in mehreren
Aufträgen enthalten
sein.)
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell3.xml (2 von 2) [11.06.2002 11:27:27]
ER-Modell: Relationen
ER-Modell: Relationen
partielle und
vollständige
Partizipation:
Muß jede Instanz
einer Entität (in einer
bestimmten Rolle) in
einer bestimmten
Relation in
Beziehung gesetzt
sein, spricht man von
vollständiger
Partizipation der
Entität an der
Relation (in der
gegebenen Rolle);
falls eine solche
Nebenbedingung
nicht besteht, spricht
man von partieller
Partizipation. Bsp.:
Einführung
ER-Modell
Abb. 1: Vollständige und partielle Partizipation.
[Kunde]
erteilt
[Auftrag].
Die Entität Auftrag
partizipiert
vollständig an der
Relation, da kein
Auftrag ohne
erteilenden Kunden
existiert; die Entität
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell3b.xml (1 von 2) [11.06.2002 11:27:27]
ER-Modell: Relationen
Kunde partizipiert
nur partiell, da es
Kunden ohne
bisherige Aufträge
geben kann.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell3b.xml (2 von 2) [11.06.2002 11:27:27]
Relationales Schema
SQL
ER-Modell: Entitäten & Relationen
ER-Modell: Entitäten & Relationen
Relationen:
l Attribute: Wie
Entitäten
können
Relationen
Attribute
besitzen. Jede
Instanz der
Relation (d.h.
jedes Tupel
von in der
entsprechenden
Beziehung
stehenden
Instanzen von
Entitäten)
besitzt zu
jedem Attribut
einer Relation
einen Wert.
Einführung
ER-Modell
Relationales Schema
SQL
Abb. 1: Relation mit Attribut.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell4.xml [11.06.2002 11:27:28]
ER-Modell: Entitäten & Relationen
ER-Modell: Entitäten & Relationen
Schwache Entitäten:
l Unter
schwachen
Entitäten
versteht man
Entitäten ohne
Schlüssel.
l Schwache
Entitäten
werden stets
über eine
Relation
identifiziert.
Unter allen mit
einer
bestimmten
anderen Instanz
einer Entität in
dieser Relation
in Beziehung
stehenden
Instanzen der
schwachen
Entität wird eine
Instanz der
schwachen
Entität durch ein
Attribut (oder
eine Menge von
Attributen)
eindeutig
gekennzeichnet.
- Man nennt
diese Relation
die
identifizierende
Relation, die
andere Entität
Einführung
ER-Modell
Relationales Schema
SQL
Abb. 1: Schwache Entität Auftrag
mit identifizierender Relation erteilt,
identifizierender Entität Kunde
und partiellem Schlüssel Bestelldatum.
Abb. 2: Durch Einführung eines Schlüssels Auftragsnr entsteht eine reguläre Entität Auftrag.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell4b.xml (1 von 2) [11.06.2002 11:27:30]
ER-Modell: Entitäten & Relationen
l
die
identifizierende
Entität (oder
Besitzer-Entität)
und das Attribut
den partiellen
Schlüssel.
Schwache
Entitäten
partizipieren an
ihrer
identifizierenden
Relation stets
vollständig.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell4b.xml (2 von 2) [11.06.2002 11:27:30]
ER-Modell: Beispiel
ER-Modell: Beispiel
Einführung
ER-Modell
Relationales Schema
SQL
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ermodell5.xml [11.06.2002 11:27:31]
Relationales Datenmodell
Relationales Datenmodell
Das relationale Datenmodell wurde 1970 von
Ted Codd (IBM Research) eingeführt. Es basiert
auf Tabellen. Man nennt:
l Attribut: der Name einer Spalte.
l Bereich: Wertebereich für die Inhalte
einer Spalte.
l Tupel: eine Zeile.
l Relation: die ganze Tabelle.
l null-Wert: Zellen ohne Eintrag besitzen
den speziellen Wert null (fehlende
Werte, unzutreffende Attribute).
l Schlüssel: jede minimale Menge von
Attributen, die die Tupel einer Relation
eindeutig kennzeichnet. I.d.R. wird einer
dieser Schlüssel als Primärschlüssel
hervorgehoben (in den Diagrammen
unterstrichen).
Einführung
ER-Modell
Abb. 1: Beispiel für eine Relation mit
Primärschlüssel Kundennr.
Relationales Schema
SQL
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/relationalmodel.xml [11.06.2002 11:27:32]
Relationales Datenmodell
Relationales Datenmodell
l
Fremdschlüssel: unter einem
Fremdschlüssel versteht man
ein Attribut (oder eine Menge
von Attributen), in denen der
Schlüsselwert einer anderen
Relation gehalten wird, d.h.:
m das
Fremdschlüssel-Attribut
muß den gleichen
Wertebereich haben wie
das Schlüsselattribut
der referenzierten
Relation,
m für jedes Tupel der
referenzierenden
Relation muß der Wert
des Fremdschlüssels
sich entweder als
Abb. 1: Beispiel für einen Fremdschlüssel. Der Fremdschlüssel Kundennr
Schlüsselwert eines
der referenzierende Relation Bestellung verweist auf den Schlüssel
Tupels der
Kundennr der referenzierten Relation Kunde. - Die letzte Zeile verletzt die
referenzierten Relation
referentielle Integrität (es gibt keinen Kunden mit Kundennumer 5).
finden oder null sein
(referentielle Integrität).
Im ersten Fall sagt man,
das Tupel der
referenzierenden
Relation referenziert
das Tupel der
referenzierten Relation.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/relationalmodel1a.xml [11.06.2002 11:27:33]
Einführung
ER-Modell
Relationales Schema
SQL
Abbildung ER -> Relational
Abbildung ER -> Relational
Aus einem ER-Modell kann man durch einfache
Umformungen ein relationales Modell gewinnen:
1. reguläre Entität: Relation mit allen
einfachen Attributen als Attribute; von
zusammengesetzten Attributen werden nur
die einfachen Bestandteile übernommen
(und die Struktur vernachlässigt). Ein
Schlüsselattribut wird als Primärschlüssel
ausgewählt (im Fall eines
zusammengesetzten Schlüsselattributes
bildet die Menge dessen einfacher
Bestandteile den Primärschlüssel).
2. schwache Entität: Relation mit allen
einfachen Attributen sowie allen einfachen
Bestandteilen zusammengesetzter Attribute
als Attribute; zusätzlich werden die
Attribute des Primärschlüssels der
identifizierenden Entität als Fremdschlüssel
aufgenommen. Diese bilden zusammen mit
den Attributen des partiellen Schlüssels den
Primärschlüssel.
3. binäre 1:1-Relation: Nehme in eine der
beiden partizipierenden Entitäten die
Attribute des Primärschlüssels der anderen
partizipierenden Entität als Fremdschlüssel
sowie alle Attribute der Relation als
Attribute auf.
4. binäre 1:n-Relation: Nehme in die
partizipierende Entität auf der n-Seite die
Attribute des Primärschlüssels der
partizipierenden Entität auf der 1-Seite als
ER-Modell
Entität
Relation binär 1:1
Relation binär 1:n
Relation binär n:m
Relation n-wertig
Einfaches Attribut
Zusammengesetztes
Attribut
Mehrwertiges Attribut
Schlüssel
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ertorel.xml (1 von 2) [11.06.2002 11:27:33]
Abbildung ER -> Relational
Fremdschlüssel sowie alle Attribute der
Relation als Attribute auf.
5. binäre n:m-Relation: Erzeuge eine neue
Relation ("relationship relation" im
Gegensatz zu "entity relation") mit den
Attributen der Primärschlüssel der beiden
partizipierenden Entitäten als
Fremdschlüssel sowie allen Attributen der
Relation als weiteren Attributen; die beiden
Fremdschlüssel bilden gemeinsam den
Primärschlüssel.
6. mehrwertige Relation: Erzeuge eine neue
Relation ("relationship relation") mit den
Attributen der Primärschlüssel der
partizipierenden Entitäten als
Fremdschlüssel sowie allen Attributen der
Relation als weiteren Attributen; die
Fremdschlüssel bilden gemeinsam den
Primärschlüssel.
7. mehrwertiges Attribut: Erzeuge eine neue
Relation mit den einfachen Attributen als
Attributen sowie den Attributen des
Primärschlüssels der Entität oder Relation,
zu der das Attribut gehört, als
Fremdschlüssel. Die Attribute plus der
Fremdschlüssel bilden den Primärschlüssel.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ertorel.xml (2 von 2) [11.06.2002 11:27:33]
Relationales Modell
Relation ("entity
relation")
Fremdschlüssel in
Relation zu einer der
beiden Entitäten
Fremdschlüssel in
Relation zu der Entität
auf n-Seite
Relation ("relationship
relation") mit 2
Fremdschlüsseln
Relation ("relationship
relation") mit n
Fremdschlüsseln
Attribut
Menge von Attributen
der einfachen
Bestandteile
Relation mit
Fremdschlüssel
Primär- bzw.
Sekundärschlüssel
Tab. 1:
Einführung
ER-Modell
Relationales Schema
SQL
Abbildung ER -> Relational
Abbildung ER -> Relational
Einführung
ER-Modell
Relationales Schema
Abb. 2: Relationales Modell der Entität.
SQL
Abb. 1: ER-Modell: Entität mit verschiedenen Arten von Attributen.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ertorel2.xml [11.06.2002 11:27:34]
Abbildung ER -> Relational
Abbildung ER -> Relational
Einführung
ER-Modell
Relationales Schema
Abb. 3: Relationales Modell der Entität.
SQL
Abb. 1: ER-Modell: binäre Relation 1:n.
Abb. 2: ER-Modell: Variante der obigen Relation mit Attribut an der Relation.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ertorel3.xml [11.06.2002 11:27:35]
Abbildung ER -> Relational
Abbildung ER -> Relational
Einführung
ER-Modell
Relationales Schema
Abb. 2: Relationales Modell der Entität.
SQL
Abb. 1: ER-Modell: schwache Entität.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ertorel4.xml [11.06.2002 11:27:35]
Abbildung ER -> Relational
Abbildung ER -> Relational
Einführung
ER-Modell
Relationales Schema
SQL
Abb. 2: Relationales Modell der Entität.
Abb. 1: ER-Modell: binäre Relation n:m.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/ertorel5.xml [11.06.2002 11:27:36]
Relationales Datenmodell
Relationales Datenmodell
Einführung
ER-Modell
Relationales Schema
SQL
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/relationalmodel2.xml (1 von 2) [11.06.2002 11:27:38]
Relationales Datenmodell
Abb. 1: Beispiel für ein relationales Schema.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/relationalmodel2.xml (2 von 2) [11.06.2002 11:27:38]
SQL
SQL
SQL (Standard Query Language) ist der
Industriestandard zur
l Definition relationaler Schemata (data
definition language (DDL)) und
l Manipulation der Inhalte relationaler
Datenbanken (data manipulation language
(DML)).
SQL ist ein ISO/ANSI-Standard:
l Die Grundlage von SQL war SEQUEL
(Structured English Query Language) von
IBM.
l 1986 wurde SQL von ISO/ANSI normiert
(SQL/1, SQL-86).
l 1992 Update des Standards zu SQL/2,
SQL-92.
l Seitdem wird an einem zweiten Update des
Standards gearbeitet (SQL/3).
SQL wird von nahezu allen relationalen
Datenbanksystemen unterstützt.
l Bei vielen einfacherern DBMS (etwa
mysql) ist die Umsetzung des Standards
unvollständig.
l Fast alle DBMS bieten eine Fülle
nicht-Standard-konformer Erweiterungen.
SQL ist ein Textformat, in dem Anfragen an die
Datenbank direkt formuliert werden können. Das
Ergebnis einer Anfrage kann eine Fehlercode oder
eine Ergebnismenge (result set) sein. Der Zugriff
auf die Datenbank kann über verschiedene
Schnittstellen erfolgen:
l direkter Zugriff: der Benutzer kann selbst
SQL anfragen formulieren und bekommt
die Fehlermeldungen bzw. das Resultset als
Tabelle angezeigt.
m einfache standalone-Clients als
Konsolenanwendung oder mit GUI
(Bestandteil der Datenbank, für
mysql etwa mysql und kmysql).
m WWW-Clients (realisert mittels CGI,
Servlet, JSP, XSP etc.).
l indirekter Zugriff: der Benutzer editiert
Daten im GUI einer Anwendung, die die
Veränderungen in geeignete
SQL-Statements formuliert und die
Resultsets von Anfragen entsprechend
darstellt.
Einführung
ER-Modell
Relationales Schema
SQL
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql.xml [11.06.2002 11:27:39]
SQL - DDL
SQL - DDL
Datenbanken:
Bezeichnung
DBMS können i.d.R. mit mehreren Datenbanken int
gleichzeitig verwalten. Das Anlegen einer solchen smallint
Datenbank geschieht oft nicht selbst in SQL,
sondern mittels eines Tools (durch Aufruf einer
float(p)
Methode des DBMS-APIs). In mysql
beispielsweise kann wie folgt eine neue
Datenbank auch via SQL angelegt und ausgewählt
werden:
decimal(p,q)
create database database-name;
use database-name;
Alle Folgeoperationen beziehen sich auf die
ausgewählte Datenbank. Mit
drop database database-name;
kann eine Datenbank wieder zerstört werden.
Tabellen:
Jede Datenbank besitzt ein Schema in Form einer
Menge von Tabellen. Eine Tabelle kann mit
create table table-name ({ table-spec })
;
erzeugt werden, wobei table-spec eine durch
Kommata getrennte Liste von Tabellenangaben
ist, d.h. von
l Spaltenangaben:
column-name column-type [not
null] [primary key]
[references table-name
[(column-commalist)] ]
char(n)
varchar(n)
bit(n)
varbit(n)
date, time,
timestamp
blob
clob, nclob
bfile
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql2.xml (1 von 2) [11.06.2002 11:27:39]
Beschreibung
ganze Zahl (4 Byte)
ganze Zahl (2 Byte)
Fließkommazahl
(Genauigkeit p: Anzahl
gültiger Ziffern)
formatierte Fließkommazahl
(Genauigkeit p: Anzahl
gültiger Ziffern, Skala q:
Anzahl der
Nachkommastellen)
Zeichenkette der (festen)
Länge n
Zeichenkette mit maximaler
Länge n
Bitfolge der (festen) Länge n
Bitfolge mit maximaler
Länge n
Datum, Uhrzeit bzw.
kombinierte Angabe von
Datum und Uhrzeit
binary large object
character large object
(variabler bzw. konstanter
Länge)
binary file (außerhalb der
Datenbank gespeichert)
Tab. 1: Datentypen in SQL.
Einführung
ER-Modell
Relationales Schema
SQL
SQL - DDL
l
Angabe des Primärschlüssels:
l
primary key (column-commalist)
Angabe eines Fremdschlüssels:
foreign key (column-commalist)
references table-name
[(column-commalist)]
Mit
drop table table-name;
kann eine Tabelle wieder gelöscht werden.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql2.xml (2 von 2) [11.06.2002 11:27:39]
SQL - DDL
SQL - DDL
create table kunde (kundennr integer not null primary key,
name varchar(30)) ;
Einführung
create table bestellung (rechnungsnr integer not null primary key,
rechnungsdatum date,
rechnungsbetrag integer,
kundennr integer references kunde);
create table produkt (bezeichnung varchar(30) not null primary key,
stueckkosten integer);
create table posten (rechnungsnr integer not null references bestellung,
produktbezeichnung varchar(30) not null references produkt
(bezeichnung),
stueckzahl integer,
primary key (rechnungsnr, produktbezeichnung) );
Abb. 2: Erzeugung des Beispiel-Schemas mittels SQL.
Abb. 1: Beispiel für ein relationales Schema.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql3.xml [11.06.2002 11:27:40]
ER-Modell
Relationales Schema
SQL
SQL - DML
SQL - DML
Tabelleninhalte
modifizieren:
Zur Modifikation von
Tabelleninhalten stehen
drei SQL-Befehle zur
Verfügung: Mit
insert into
table-name {
[column-commalist]
table-expr };
können Zeilen in eine
Tabelle eingefügt
werden, wobei die
Ausdrücke table-expr
im einfachsten Fall die
Gestalt
values
(scalar-expr-commalist)
besitzen.
Mit
insert
insert
insert
insert
into
into
into
into
kunde values (1, "Frank Mueller");
produkt values ("Spark II", 400);
bestellung values (2001, "2000-06-31", 2000, 1);
posten values (2001, "Spark II", 1);
Einführung
ER-Modell
Abb. 1: Einfügen von Daten.
Relationales Schema
SQL
delete from kunde where kundennr = 2000;
delete from bestellung where rechnungsdatum < "2000-07-01";
Abb. 2: Löschen von Daten.
update produkt set stueckkosten = 1.2 * stueckkosten ;
Abb. 3: Verändern von Daten.
delete from
table-name [where
cond-expr];
können Zeilen aus einer
Tabelle wieder entfernt
werden, wobei die
Ausdrücke cond-expr
im einfachsten Fall die
Gestalt
column-name
comparision-operator
value
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql4.xml (1 von 2) [11.06.2002 11:27:40]
SQL - DML
besitzen oder eine
Kombination solcher
Ausdrücke mittels der
boolschen Operatoren
and, or und not.
Mit
update table-name
set column-name =
scalar-expr [where
cond-expr];
können Zeilen einer
Tabelle verändert
werden.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql4.xml (2 von 2) [11.06.2002 11:27:40]
SQL - Querys
SQL - Querys
Anfragen:
select * from bestellung;
rechnungsnr rechnungsdatum rechnungsbetrag
2001
2000-06-31
2000
2002
2000-07-01
6000
2003
2000-07-04
1600
select select-item-commalist
from table-ref-commalist
[where cond-expr]
[group by column-ref-commalist]
[having cond-expr]
wobei die Ausdrücke select-item von der Gestalt
scalar-expr [as column-name] | [range-variable .] *
sind. Die Ausdrücke table-ref sind wie folgt aufgebaut:
kundennr
1
3
1
Einführung
ER-Modell
Relationales Schema
Abb. 1: Einfache Anfrage (vollständige Tabelle).
SQL
table-name [AS range-variable [(column-commalist)]]
| table-expr [AS range-variable [(column-commalist)]]
| join-table-expr
select kundennr as knr, rechnungsbetrag from bestellung;
knr rechnungsbetrag
1 2000
3 6000
1 1600
Abb. 2: Einfache Anfrage (Auswahl und Umbennung von Feldern).
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql5.xml [11.06.2002 11:27:41]
SQL - Querys
SQL - Querys
Anfragen:
select
Einfache Anfragen richten sich an
eine Tabelle (Abb. 1 und 2 letzte
Folie), komplexere Anfragen
select
verbinden mehrere Tabellen des
Schemas:
l Der join-Operator
select
(dargestellt als Komma oder
mittels join) bildet das
kartesische Produkt beider
Tabellen.
l I.d.R. möchte man nicht alle
Kombinationsmöglichkeiten
der Zeilen zweier Tabellen,
sondern lediglich die
Kombination von durch
einen foreign key
miteinander verbundenen
Zeilen. Dies erreicht man
entweder durch
m eine nachgeschaltete
where-Klausel,
m einen left join
oder right
join-Operator mit
Angabe einer
on-Klausel oder
m einen natural
left join- bzw.
natural right
join-Operator (ein
join auf allen
Attributen mit
gleichen Namen).
Siehe Abb. 3.
name,rechnungsbetrag from kunde,bestellung
where kunde.kundennr = bestellung.kundennr;
Einführung
name,rechnungsbetrag from bestellung left join kunde
on kunde.kundennr = bestellung.kundennr;
name,rechnungsbetrag from bestellung natural left join kunde;
name
rechnungsbetrag
Frank Mueller 2000
Heribert Mayer 6000
Frank Mueller 1600
Abb. 1: Anfrage (Verbindung zweier Tabellen).
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql5b.xml [11.06.2002 11:27:41]
ER-Modell
Relationales Schema
SQL
SQL - Querys
SQL - Querys
Aggregation:
Man kann über die Werte einer
Spalte aller zu einer
bestimmten Gruppe gehörigen
Zeilen aggregieren, indem man:
l in einer group
by-Klausel
Spaltennamen angibt, die
eine Gruppierung der
Zeilen definieren,
l in einem select-expr eine
Aggregierungsfunktion
auf einer der Spalten
angibt. Zulässige
Aggregierungsfunktionen
sind:
sum, count,
max, min,
avg
Siehe Abb. 1.
select name,sum(rechnungsbetrag) from bestellung natural left join kunde
group by name;
name
sum(rechnungsbetrag)
Frank Mueller 3600
Heribert Mayer 6000
Einführung
ER-Modell
Relationales Schema
Abb. 1: Anfrage (Aggregation).
SQL
select name,sum(rechnungsbetrag) from bestellung natural left join kunde
group by name having count(*) > 1;
name
sum(rechnungsbetrag)
Frank Mueller 3600
Abb. 2: Anfrage (Aggregation).
Mittels einer having-Klausel
kann man aus den aggregierten select kundennr,rechnungsbetrag from bestellung order by rechnungsbetrag desc;
Zeilen noch mal solche
kundennr rechnungsbetrag
auswählen, die zu
3
6000
spezifizierenden Kriterien
1
2000
genügen (Abb. 2).
1
1600
Sortierung:
Durch Angabe einer order
Abb. 3: Anfrage (Sortierung).
by-Klausel kann man die
Zeilen des Resultsets sortieren.
Man gibt die Spaltennamen an,
nach denen sortiert werden soll,
sowie asc oder desc für aufbzw. absteigende Sortierung
(Abb. 3).
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql6.xml [11.06.2002 11:27:41]
SQL - Querys
SQL - Querys
Schachtelung:
select-Ausdrücke select name
from posten natural left join bestellung
können als
natural left join kunde
Bestandteil in
where produktbezeichnung in
where-Klauseln
(select produktbezeichnung
erscheinen,
from posten natural left join bestellung
insbesondere also
natural left join kunde
geschachtelt
where name="Frank Mueller");
werden. Abb. 1
name
etwa zeigt ein
SQL-Statement,
Heribert Mayer
mithilfe dessen man
folgende Anfrage
Abb. 1: Anfrage (Schachtelung).
formuliert:
Finde
die
Namen
aller
Kunden,
die ein
Produkt
gekauft
haben,
das
auch
Frank
Mueller
gekauft
hat.
(Geschachtelte
select-Ausdrücke
werden derzeit von
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql7.xml (1 von 2) [11.06.2002 11:27:42]
Einführung
ER-Modell
Relationales Schema
SQL
SQL - Querys
mysql noch nicht
unterstützt.)
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql7.xml (2 von 2) [11.06.2002 11:27:42]
SQL - Querys
SQL - Querys
Weitere SQL-Konzepte:
l Transaktionen.
l Definition und Verwendung von
Views.
l Verwaltung von
Zugriffsrechten.
l Verwendung von Triggern.
l Verwendung von Cursorn.
l Stored Procedures.
http://viror.wiwi.uni-karlsruhe.de/ebusiness/script/8/sql8.xml [11.06.2002 11:27:42]
Einführung
ER-Modell
Relationales Schema
SQL
Herunterladen