1 Datenbanken

Werbung
1 Datenbanken (Allgemeine Einführung)
1. Einleitung:

Ziel: Datenspeicherung und -organisation zentral (anwendungsübergreifend) gelöst.
Datenbank
Menge von Daten, für die ein globales Modell bzgl. ihrer Struktur festgelegt
ist (Datenbankschema oder Datenmodell).
Datenbanksystem
Besteht aus einer Sammlung gespeicherter Daten (Datenbank) sowie der
(DBS)
Software, welche Dienste zur Speicherung und zum Zugriff auf strukturierte
Daten zur Verfügung stellt: Operationen zum Eintragen, Löschen, Suchen
und Verknüpfen von Daten. Wichtig ist die Verwaltung von Daten mit
langer Lebensdauer sowie der effiziente Zugriff auf große Mengen von
Daten.

Logischer Aufbau einer Datenbank
Datenbankmanagementsystem
(DBMS)
Ein DBMS ist die Gesamtheit aller Programme für den Umgang mit den
Daten. Es ist verantwortlich für
 sichere und einheitliche Verwaltung persistenter (langlebiger) Daten,
 Datenaustausch zwischen Datenbank und Anwendungsprogrammen,
 Verhinderung von unkontrollierten Zugriffen auf den Datenbestand und
 effiziente Zugriffsmöglichkeit auf die in der Regel sehr großen
Datenbestände.
Anforderungen:
1. Kontrolle über Daten (gemeinsame Nutzung)
2. Eliminierung von Redundanzen
3. Kontrolle der Datenintegrität
a. Zugriffskontrollen (Datenschutz).
b. Erhaltung der logischen Datenintegrität.
c. Kontrollierter Mehrbenutzer-Betrieb.
4. Leichte Handhabbarkeit der Daten: Datenmodell, Datenzugriff (z.B. SQL).
5. Datenunabhängigkeit: Anwendungen von der Organisation und Speicherungen der Daten
unabhängig.
2. Logische Datenorganisation – Unterschied zwischen semantisch konzeptionellem
Datenmodell und DBVS-gestütztem konzeptionellem Datenmodell
Ein Realitätsausschnitt wird
semantisch vollständig (mit
vollständigem Bedeutungsinhalt)
wiedergegeben
Realitätsausschnitt
Semantisches
konzeptionelles
Datenmodell
Semantische konzeptionelle Datenmodelle sind semantisch reichhaltiger als
DBVS-gestützte konzeptionelle
Datenmodelle
DBVS-gestütztes
konzeptionelles
Datenmodell
Bezüglich der Semantik
sind die Restriktionen
des DBVS zu
beachten.
3. Entwurfsschritte
(1) Erstellung eines Modells der Daten und der Beziehungen zwischen diesen Daten
-> Datenmodell, z.B. ER-Modell
(2) Abbildung des Datenmodells auf eine Menge von Tabellen (relationales Modell)
(3) Normalisierung: Entfernen aller Redundanzen. Eine Redundanz liegt vor, wenn
dieselbe Information an mehreren Stellen eingetragen ist, z.B. der Name eines
Studenten in verschiedenen Tabellen der Datenbank, wenn der Student durch die
Matrikelnummer eindeutig identifizierbar ist. Bei einer Änderung des Namen
müssten alle Stellen in der Datenbank geändert werden; bei Vergessen einer
Änderungsstelle können Fehler auftreten.
(4) Eintragen der Daten in die Tabellen.
(5) Realisierung der möglichen Abfragen -> Sichten auf die Daten in den Tabellen.
4. Datenmodell
Definition: Ein Datenmodell ist ein (oft mathematischer) Formalismus
mit einer Notation zur Beschreibung und Definition der Datenobjekte,
einer Menge von Operationen zur Manipulation der Daten.
Beispiele Entity-Relationship-Modell (ER-Modell), Objektorientiertes Modell,
Hierachisches Modell.
Beispiel für ein ER-Modell:







Graphisches Hilfsmittel zur sematischen Modellierung eines Anwendungsgebietes, d.h.
zum Entwurf einer Datenbank, unabhängig vom konkreten DBS.
Dient vor allem zur Kommunikation zwischen DB-Designer und Auftraggeber.
Grundidee: Reale Welt (Mini-Welt) läßt sich durch Objekte und Beziehungen zwischen
Objekten beschreiben (Objekte: Entities, Beziehungen: Relationships).
Gleichartige Entities (Objektinstanzen) werden zu Entity-Typen bzw. Relationships zu
Relationship-Typen zusammengefasst.
Beispiele: Entity-Typen: "Bibliotheksbenutzer", "Buch", und Relationship-Typ: "Entleihe".
Entities und Relationships können Attribute besitzen, z.B. Attribut "Name" bei Entity
"Bibliotheksbenutzer", "Entleihdatum" bei Relationship "Entleihe".
Entity-Typ: Ein Entity-Typ fasst eine Menge von gleichartigen Objektinstanzen, die durch
gleiche Attribute charakterisiert sind, zusammen.
 Relationship-Typ
Ein Relationship-Typ umfasst die Menge gleichartiger Relationships. Ein Relationship-Typ R
stellt die Beziehung zwischen Entity-Typen E1 und E2 her.
– Ein wichtiges Charakteristikum von 2-stelligen Relationship-Typen ist ihre Kardinalität.
Dadurch wird zum Ausdruck gebracht, mit wie vielen Entities ein gegebenes Entity in
Beziehung stehen kann.
Bezeichnung
einfach
konditionell
multipel
multipel-konditionell
Symbol Anzahl der Entitäten in E2, die der Entität E1
zugeordnet werden können
1
genau eine
c
keine oder eine, d.h. c=0 oder c=1
m
mindestens eine, d.h. m >=1
mc
keine, eine oder mehrere, d.h. mc >=0
– Man kann verschiedene Kardinalitätsarten unterscheiden – z.B.
1:1, ein Entity aus E1 kann mit höchstens einem Entity aus E2 über R in Beziehung stehen
kann und umgekehrt.
n:1, ein Entity aus E1 kann mit höchstens einem Entity aus E2 , aber ein Entity aus E2 mit
beliebig vielen Entities aus E1 über R in Beziehung stehen.
1:n, ein Entity aus E1 kann mit beliebig vielen Entities aus E2 , aber ein Entity aus E2 mit
höchstens einem Entity aus E1 über R in Beziehung stehen.
n:m, ein Entity aus E1 kann mit beliebig vielen Entities aus E2 über R in Beziehung stehen
und umgekehrt.
Beispiel: Teil eines ER-Models für eine “Gläserne Produktion von
Fleisch“ bezogen auf die Tiermedikation
2 Relationale Datenbanksysteme
Mit Entity-Relationship-Diagrammen läßt sich das logische Modell einer Datenbank
darstellen. Wird diese Datenbank in einem DBS implementiert, dann ist dieses logische
Modell in ein physikalisches Modell zu transformieren.
Ein Beispiel für ein physikalisches Datenbankmodell ist das relationale Datenbankmodell.
Allgemeine Eigenschaften relationaler Datenbanken
In relationalen Datenbanken "sieht" der Benutzer die Information in Form von Tabellen. Jede
dieser Tabellen besteht aus Spalten, den sog. Attributen.
• Die Daten werden in einer Menge von Tabellen gespeichert. Normalerweise eine Tabelle je
Entity-Typ und eine Tabelle je Relationship-Typ (bei manchen 1:1 und 1:n Relationships sind
Optimierungen möglich, die ohne eine eigene Tabelle auskommen).
• Jede Tabelle hat einen Tabellennamen ("Relationenname") sowie Spalten und Zeilen.
• Jede Zeile repräsentiert einen zusammengehörigen Datensatz; Zeile wird als Tupel einer
Relation aufgefasst; Spalten werden als Attribute bezeichnet.
• Jede Tabelle hat einen Primärschlüssel, durch den eine Zeile (Datensatz) eindeutig
identifiziert ist. Beispiel: Jeder einzelne Student wird durch die Matrikelnummer identifiziert.
• Die Ordnung der Zeilen ist ohne Bedeutung; durch ihre Reihenfolge wird keine für den
Benutzer relevante Information ausgedrückt.
• Die Ordnung der Spalten ist ohne Bedeutung, da sie einen eindeutigen Namen
(Attributnamen) tragen.
• Alle für den Benutzer bedeutungsvollen Informationen sind ausschließlich als Datenwerte in
den Tabellen ausgedrückt.
• Weisen zwei Tabellen eine Spalte auf, die das gleiche Attribut (Bedeutungsinhalt und –
„verträglicher“ – Datentyp) beschreiben, kann eine Beziehung zwischen den beiden Tabellen
hergestellt werden. Damit können Daten verschiedener Tabellen einander zugeordnet
werden.
• Beispiel: Tabelle Studenten
Die Tabelle Studenten modelliert den Entity-Typ Studenten, d.h. jede Zeile repräsentiert
einen Studenten; Primärschlüssel ist die Matrikelnummer.
Matrikelnummer
Nachname Vorname
PLZ
Ort
Straße
Hausnummer
3 Übungsaufgabe ER-Modell - Einführung einer
datenbankgestützten Prüfungsverwaltung
Aufgaben
a) Die Prüfungsverwaltung an der Monaco-International-University erfolgt bisher
manuell. Sie wurden als Projektleiter(in) eingestellt, die fachlichen Vorgaben für eine
Prüfungsverwaltung zu erstellen und in diesem Zusammenhang insbesondere ein
adäquates Datenmodell zu entwickeln, das folgende Entitätsmengen und Attribute
enthält:
 Studentenstammdaten,
die
u.a.
folgende
Informationen
enthalten:
Matrikelnummer, Nachname, Vorname, Strasse, Hausnummer, PLZ, Ort
 Prüfungsstammdaten, die u.a. folgende Informationen enthalten: FachID,
Fachbezeichnung
 Die Beziehung zwischen den o.g. Entitätsmengen sollen die erbrachten
Prüfungsleistungen darstellen.
Zeichnen Sie ein ER-Modell (Entitätsmengen und ihre Beziehungen
untereinander) auf der Basis der o.g. Informationen. Führen sie an den
Entitätsmengen die relevanten Attribute (insbesondere Schlüsselattribute) auf und
ergänzen Sie ggf. geeignete Attribute.
b) Erläutern Sie das Ziel und die Vorgehensweise zur Normalisierung von
Datenbanktabellen
c) Normalisieren Sie folgende Datenbanktabelle
MatrikelNr
Name
Anschrift
Geburtsdatum
Alter
4711
Bond, James
1.7.2003
1
4712
Jürgen Ewald
1.7.2002
2
4713
Ewald Schmidt
Ringstr.
35;
85395
Attenkirchen
91154
Roth,
Kneippstr. 25
Am
alten
Gefängnis 99 in
83977
Reichersbeuern
1.7.2000
4
Herunterladen