Kapitel 2 - Prinzipien des Entwurfs
|
Inhalt
|
- Welche Qualitätsmerkmale sollten Schemas unterliegen?
- Die Hauptschritte des Datenbankentwurfs.
- Welche Mittel bietet das ER-Diagramm?
- Entities und Entity-Typen
- Aggregation und Generalisierung
- Was heißt Integrität?
- Assertions und Trigger zur Integritätsüberwachung.
|
Welche fünf wichtigen Qualitätsmerkmale sind zu beachten?
- Vollständigkeit
- Korrektheit
- Minimalität
- Lesbarkeit
- Modifizierbarkeit
Was heißt Vollständigkeit? Vollständigkeit in Bezug auf den nachgebildeten Umweltausschnitt!
Was heißt Korrektheit des Datenbankschemas? ist gegeben, wenn die Konzepte des betreffenden Datenmodells korrekt verwendet werden und das Schema syntaktisch und semantisch Korrekt ist.
Was heißt Minimalität eines Datenbankschemas in Bezug auf einmaliges vorkommen verschiedener Anforderungen. Gleichzustellen mit Redundanzvermeidung, welche aber manchmal z.B. durch Normalisierung, sogar erwünscht ist.
Was heißt Lesbarkeit des Schemas durch z.B. ER-Diagramme (symmetrisch etc) und selbsterklärende Entity-Bezeichnungen.
Was heißt Modifizierbarkeit eines Datenbank Schemas durch gute Modularisierung und Dokumentation des Schemas.
Beschreiben sie die vier Schritte des Datenbankentwurfs!
- Anforderungsanalyse und -spezifikation (Herausfinden was gewollt wird)
- Konzeptueller Entwurf (ER-Diagramm, Beschreibung etc.)
- Logischer Entwurf (Umsetzung in ein Daten-Modell wie z.B. das Relationelle)
- Datendefinition (Implementierung des Schemas mit DDL)
- Physischer Entwurf (Tuning, Indexe u.s.w)
- Wartung
Die Schritte errinnern sehr an das veraltete Wasserfallmodell der Softwaretechnik!
Welche Anforderungen werden an den Entwurfsprozeß gestellt?
- Informationserhalt
- Konsistenzerhaltung
- Redundanzfreiheit
- Vollständigkeit bezüglich Anforderungsanalyse
- Konsistenz des Beschreibungsdokuments
- Ausdrucksstärke, Verständlichkeit des benutzten Formalismus
- Formale Semantik der Beschreibungskonstrukte
- Lesbarkeit der Dokumente
Was gehört zur Anforderungsanalyse und -spezifikation?
- Informationsanforderung (statische Informationen und Integritätsbedingungen
- Bearbeitungsanforderungen (Analyse der Häufigkeit verschiedener Anfragen)
- Benutzergruppenanalyse
- Einsicht in vohandene Dokumentation
- Fragebögen und Besprechungen mit Betroffenen des modellierten Umweltausschnitts
Was gehört zum Konzeptueller Entwurf?
- Erstellung eines Zielsystemunabhängigen Datenbankschemas
- z.B. als Entity-Relationship Modell
- Zusammensetzen von Einzelschichten (der jeweiligen Nutzergruppen) zu einem global view
Was gehört zum Logischer Entwurf?
- Umsetzung eines Konzeptuellen Schemas auf ein gewähltes DBMS
- Einhaltung von Transformationsregeln wie z.B. Normalisierung von Relationen
Was gehört zum physischen Entwurf?
- Definition des internen Schemas
- Wahl geeigneter Speicherstrukturen
- Festlegung von Zugriffsmechanismen mit Ziel, Suchpfade zu minimieren
- Später Tuning um Parametereinstellungen zu korrigieren
Welche Tuningmöglichkeiten gibt es dabei?
- Speicherformat (Records,Baum,Hash)
- Block- Seitenzuweisung auf Platte
- Clustering
- Indexauswahl
- Denormalisierung eines Schemas, falls häufig zwei Schemas in Anfragen
wieder zusammengesetzt werden müssen, nachdem diese durch Normalisierung zerlegt wurden
Welche Mittel bietet das ER-Diagramm?
- "Eine Relation entspricht einem Entity-Set" (Vossen Seite 115 unten)
- Eine Relation ist partiell, wenn sie partielle Tupel enthält, d.h. nicht jedes Attribut einen Wert haben muß.
- Datenabhängigkeiten sind semantischer Natur und müssen zusätzlich betrachtet werden.
- Entity Integrität ist die Forderung, daß Nullwerte auf Attribute ausgeschlossen werden.
- Intraregionale Abhängigkeiten beziehen sich nur auf eine Attributmenge.
- 1NF bedeutet, daß alle Attribute elementar sind und nicht aus Sets oder Mengen zusammengesetzt sind,
Was sind Entities und Entity-Typen?
Eine Entity beschreibt ein wohlunterscheidbares Objekt der realen Welt welche mit anderen Objekten in Beziehung stehen.
Entity-Typen beschreiben Klassen von Objekten bzw. Entities gleicher Charakteristika und Eigenschaften, aber unterschiedlicher
Ausprägungen. Entities werden über Schlüssel identifiziert.
Was sind Quantifizierungen
Quantifizierungen werden im ER-Diagramm auf den Verbindungslinien angebracht und beschreiben die Art der Beziehung (1:n,1:1 oder m:n).
Was ist ein schwacher Entity Typ?
Schwache Entities sind solche, welche nicht durch ihre eigenen Attribute eindeutig identifizierbar sind und somit nicht
autonom existieren können. Sie werden im ER-Diagramm durch doppelt gerahmnte Rechtecke dargestellt.
Was ist Aggregation? (part of)
Mit Aggreagation bezeichnet man die Zusammenfassung verschiedener Objekte zu einer Objekthierarchie, welche dann
für bestimmte Betrachtungen als Ganzes bzw. als Einheit betrachtet wird. Im ER-Diagramm werden einem obergordneten
Entity-Typ mehrere Entity-Typen untergeordnet, um eine Part-Of Hierachie herzustellen.
Was ist Generalisierung? (is a)
als Generalisierung wird die Zusammenfassung ähnlicher Objekte zu einem generischen Objekttyp verstanden.
Die Is-A Relation ist ein wesentliches Element der Generalisierung. Dabei werden Attribute von Entities weiter oben
in der Hierarchie an die Entities nach unten hin vererbt. (Bsp: Student (Matr) IS-A Uni-Mitglied (Name))
Was heißt Integrität von relationalen Datenbanken?
Gespeicherte Informationen in Datenbanken sind normalerweise bestimmten Randbedingungen unterworfen. Sinn und Zweck ist,
die gültigen Zustände aus der Menge aller möglichen Zustände einer Datenbank herauszufiltern. Sind die semantischen
Bedingungen der jeweiligen Anwendung und werden zur Entwurfszeit der Datenbank erstellt.
Welche Arten von Integritätsbedingungen gibt es?
Integritätskontrolle soll semantische Fehler und sinnlose Zustände der Datenbank verhindern. Sie wird in der Regel dem DBMS
überlassen, welches über einen speziellen Monitor die Integrität der DB überwacht. Dies hat den Vorteil, dass im Grunde alle
Transaktionen problemlos gestartet werden können und selbst ad-hoc Benutzer sich nicht um die Integrität der DB kümmern brauchen.
Was sind Statische Integritätsbedingungen?
Entstehen durch Festlegung des jeweiligen Schemas definierte Regeln. Bsp: Jahr beetween 1900 and 2030
- Schlüsselbedingungen (primary key (idx))
- referentielle Integrität und Fremdschlüssel
- Attribut-Bedingungen (not null etc..)
- Bereichseinschränkungen (Check-Klausel)
Referentielle Integrität ist die Integrität von Fremdschlüsseln, die gegeben ist, wenn der Fremdschlüssel entweder
nur Nullwerte oder ausnahmslos keine Nullwerte enthält. Falls keine Nullwerte exisitieren gibt es in beiden Relationen
ein Tupel, wo Fremdschlüssel und Schlüssen übereinstimmen. Falls die Referentielle Integrität nicht gegeben ist würde bei
Änderungen zu Inkonsistenten kommen
Erlaubte Änderungen sind:
- Einfügen eines Tupels verlangt, daß Fremdschlüssel auf existierendes Tupel in verweist
- Ändern eines Tupels verlangt, daß der neue Fremdschlüssel auf existierendes Tupel verweist.
- Ändern eines Primärschlüssels in R verlangt, daß kein Tupel aus S auf ihn verwiesen hat.
- Löschen eines Tupels verlangt, daß kein Tupel aus der anderen Relation auf ihn verwiesen hat.
Was sind transitionale Bedingungen?
Sind halbdynamische Bedingungen und schränken die möglichen Übergangszustände ein.
Was sind dynamische Bedingungen?
Sind temporale Bedingungen und schränken als Verallgemeinerung der transitionalen Bedingungen die möglichen Zustandsfolgen ein.
Was sind Assertions und Trigger?
Assertions und Trigger sind Mittel zur Integritätskontrolle. Assertions werden durch "check" geprüft.
Eine Assertion bildet meist eine Mengendifferenz und prüft, ob eine gültige
Teilmenge vorliegt.
Bsp:
create assertion GueltigesFachgebiet
Check ( not exists
(select distinct Fachgebiet from Lektor
Except select distinct Fachgebiet from Buch)
)
Die Behanldung kann entweder immediate oder deferred (verzögert) erfolgen.
Integritätsüberwachung:
- transaktionsorientiert ( Überprüfung erfolgt im Kontext eines Programmes)
- ereignisorientiert (durch Trigger definierte Bedingungen)
Trigger sind benutzerdefinierte Prozeduren, die automatisch bei Erfüllung einer bestimmten Bedingung vom DBMS
gestartet werden. Diese Prozeduren können BEFORE oder AFTER gesteuert sein.
Before-Trigger werden oft genutzt, um Berechnungen vorzunehmen, um diese in die Integritätsprüfung aufzunehmen.
After-Trigger eignen sich besonders gut, um Änderungen in Tabellen zu loggen, um z.B. Change Notes abzuspeichern.
Trigger z.B. werden gestartet, wenn eine Integritätsverletzung aufgetreten ist, um diese zu beseitigen.
Aktive DBMS verfolgen diese Strategie viel intensiver.
Ereignis -> Bedingung -> Aktion
|
|
|
|
|
| Kapitel 1 | DBMS Konzept |
|
Eigenschaften, Bestandteile, Ebenen...
|
| Kapitel 2 | DB Entwurf |
|
Qualitätsmerkmale, funktionale Abhängigkeiten, ER...
|
| Kapitel 3 | Normalformen |
|
Übersicht Normalformen, Anomalien...
|
| Kapitel 4 | Relationalität |
|
Regeln und Vorgehensweisen...
|
| Kapitel 5 | Sprachen |
|
relationale Sprachen, SQL, Query...
|
| Kapitel 6 | Datenorganisation |
|
Tertiärspeicher, Adressierung, Indexe, ISAM...
|
| Kapitel 7 | Transaktionskonzept |
|
Datenintegrität, Serialisierbarkeit, ACID...
|
| Kapitel 8 | Concurrency Control |
|
Read-Write Modell, Schedules, Prinzip...
|
| Kapitel 9 | Scheduler & Recovery |
|
2-Phasen-Sperren,Deadlocks,Recovery...
|
|
|
|
|
|
|
Quellen:
|
Gottfried Vossen
Datenbankmanagementsysteme
|
Heuer und Saake
Konzepte und Sprachen
|
Prof. Benn
Skript und Vorlesung
|
Relationale Datenbanken
Andreas Kelz
|
Word Wide Web
Verschiedenste Seiten
|
|
|
|
|
|
|