Datenbank Data Base Def.: Eine Datenbank ist ein System zur Beschreibung, Speicherung und Widergabe von umfangreichen Datenmengen. Das Data Dictionary enth„lt die Beschreibungen aller Tabellen einer Datenbank. (Ist damit eine Beschreibung der Beschreibung; Metadata). Die deutsche Bezeichnung "Bank" l„át einem an zwei Dinge denken: zum einen die auf den Datenschutz im Sinne der Regelungen der Zugriffsrechte zur Verhinderung von unbefugten Datenzugriffen, Datenver„nderungen und Datenl”schungen; zum anderen die Datensicherheit als Schutz vor technisch bedingten St”rungen die beispielsweise zu Datenverlusten durch L”schung oder zu Ver„nderungen der Daten fhren. Datensicherungen zur Rekonstruktion von Datenbest„nden lassen sich auf drei Ebenen durchfhren: Level 1: die Vollsicherung, d. h. die komplette Sicherung der Datenbank; Level 2: die zus„tzliche Sicherung aller Žnderungen seit der letzten Level 1-Sicherung; Level 3: die zus„tzliche Sicherung aller Žnderungen seit der letzten Level 2-Sicherung . Daneben gibt es noch die Datenbank-Logs: Protokolle, die alle Žnderungen an der Datenbank aufzeichnen und so ebenfalls eine Rekonstruktion erm”glichen. Bei Online-Datenbanken werden Vollsicherungen im laufenden Betrieb, also w„hrend der gleichzeitigen Nutzung, gefahren. Dieses Verfahren ist entsprechend anspruchsvoller. Der Sinn einer Datenbank liegt in der betrieblichen Information. Die strukturierte Aufbereitung aller verfgbaren Daten ist zum einen eine betriebliche Dokumentation und erm”glicht zugleich das sichere Auffinden jedes Eintrages. Entsprechende Filterungen der Daten lassen beliebige Nutzungen zu: Data Warehouses bieten verdichtetet Daten ber l„ngere Zeitr„ume fr Managementfunktionen an. Die Daten liegen in maschinenlesbarer Form vor, werden m”glichst schon maschinell erzeugt. Unter betriebswirtschaftlichen Aspekten lassen sich diese Daten schnell unter den verschiedensten Aspekten aufbereiten: Performanz; die Geschwindigkeit des Systems h„ngt von verschiedenen Parametern ab: der Hardware; der Indexierung der Daten; der Suche nach HASH-Verfahren; HASH Verfahren bieten eine L”sung fr das Problem aus einer groáen Anzahl von Daten ein bestimmtes Datum schnell herausfinden zu k”nnen. Dazu wird ein HASH-Schlssel gebildet durch den die Daten durch eine groáe Anzahl von Klassen indexiert werden, so daá verschiedenen Teilmengen mit „hnlichen Attributen entstehen. (Z. B. die alphabetische Ordnung der Namen in einem Telefonbuch). šber diese Tabelle wird dann ein Inhaltsverzeichnis des Inhaltsverzeichnisses gelegt, ber das der Suchvorgang beschleunigt werden kann. Der Nachteil diese Systems besteht darin, das neue Daten eine Erg„nzung der Tabelle und eine damit verbundene sorgf„ltige Pflege des Indexes erforderlich machen. der angemessenen Art der Informationsdarstellung; dem mehr oder weniger geschickten Datenbankentwurf. Preis-Leistungsverh„ltnis: Fixkosten: Anschaffungskosten fr Soft- und Hardware; Entwicklungskosten fr neue Datenbanken; Migrationskosten bei bestehenden Datenbanken auf neue Software (und ev. auch Hardware); variable Kosten: Sicherungskosten; Administration; Lizenzgebhren ( von der Anzahl der Benutzer abh„ngige Gebhrenstaffelung etwa 1 - 50 Nutzern, 51 - 100, etc.) Releasewechsel: diese k”nnen einen ganzen Ratenschwanz von Ver„nderungen nach sich ziehen, etwa die eingeschr„nkte Zusammenarbeit mit einer bestimmten Softwareversion einer mit dieser zusammen genutzten Software, vielleicht sogar eines Updates des Betriebssystems, damit verbunden einer Hardewareaufrstung bis zur Neuanschaffung der Hardeware. Die Skalierbarkeit einer Datenbank. Ingenieurtechnisch ausgedrckt: Der Hersteller bietet ein Baukastensystem mit unterschiedlich leistungsstarken Komponenten, aus denen die richtige nicht nur fr den Moment , sondern auch fr die absehbare Zukunft herauszugreifen ist - unter Bercksichtigung des Kostenaspektes! Redundanzprobleme der Datenbank: Jede Information sollte nur an einem Ort abgelegt werden. Die Ablage an verschiedenen Orten sorgt in der Folge fr Unbersichtlichkeit. Konsistenz: Die logische Widerspruchsfreiheit einer Datenbank kann nur durch eindeutige Informationskennzeichnung erreicht werden. Integrit„t: ist die Konsistenz und die Korrektheit ( d. h. der richtige Eintrag der Daten an der richtigen Stelle in der Datenbank). Gute Administrierbarkeit durch klare Anlage und Dokumentation der Datenbank. Historischer Exkurs: Wie kam es berhaupt zu Datenbanken? Es geht um die Integration betriebswirtschaftlicher Daten. In der Anfangszeit der Elektronischen Datenverarbeitung verlief diese anwendungs- oder applikationszentriert: Jede Anwendung hatte "ihre" Datenformate auf ihren Magnetb„ndern und nur sie konnte auf diese zurckgreifen. Damit waren die Applikationen aber auch von ihrem Datenformat abh„ngig. Nur bei einer Einigung ber ein gemeinsames Format war es berhaupt m”glich, das zwei Applikationen auf denselben Datenbestand zugreifen konnten. Erst eine Standardisierung der Datenformate fhrte zu einer Unabh„ngigkeit der Applikationen und der M”glichkeit, die unterschiedlichsten Daten in einem einheitlichen Datenbankkonzept zusammenzufassen und Applikationen hierauf zugreifen zu lassen. Das 3-Ebenen-Konzept: Zu Beachten sind dabei die unterschiedlichen Normenkonventionen in der Bezeichnung der verschiedenen Elemente in den verschiedenen Ebenen! Constraints sind zugesicherte Eigenschaften eines Feldes, auf die hin ein Wert geprft wird, bevor er in ein bestimmtes Feld eingetragen werden kann. Die Datenbankmodellierung Das Entity-Relationsship-Modell Unter einer Entit„t wird die gedankliche Einheit verstanden, die unabh„ngig von anderen Entit„ten einer Datenbank existieren kann. Realisiert wird sie in einer Datenbank als Tabelle. Eine Entit„t hat Attribute; realisiert als Spaltenberschriften. Schreibkonventionen: ( ) bedeutet: besteht aus; [ ] bedeutet: zusammengesetztes Attribut; { } bedeutet: optionales Attribut (hier w„re ein NULL-Eintrag zul„ssig). Die Relation ist die Beiziehung zwischen zwei oder mehr Entit„ten. Sie ist von der Existenz der Entit„ten abh„ngig Sie hat eine bestimmte Auspr„gung. Bin„re Relation: 1 bedeutet: eine Relation muá vergeben werden ( einer muá reparieren) 0..n bedeutet: 0: die Relation muá nicht vergeben werden, n: kann aber beliebig oft vergeben werden Auch hier gilt: die Notationen beruhen auf šbereinknften, die von Firma zu Firma unterschiedlich sein k”nnen! Optionale Relation: kann, aber muá nicht eintreten. Relation h”herer Ordnung: mehrstellige Relation Mehrstellige Relationen lassen sich in bin„re Relationen und eine zus„tzliche Entit„t aufl”sen. Die zus„tzliche Entit„t enth„lt die Zuordnung der Ausgangsrelationen. Beispiel: Entwicklung einer Datenbank fr ein Autohaus: KFZ-Verkauf und Wartung: es bedeuten: 1... eine MUSS-Relation; jedes Teil muá mindestens einem Element der anderen Entit„t zugeordnet sein. 0... eine KANN-Relation; es kann zugeordnet werden, es muá aber nicht zwangsl„ufig ein Element geben, das zugeordnet werden muá! Beschreibung der Relationen: muá haben 1 wenn nur die Monteure einen Ausweis haben; 0 wenn auch andere Mitarbeiter einen Ausweis haben. 0 Monteur steht noch nicht fest 1 Monteur muá zugeordnet sein verantwortet 0 keine n mehrere oder: die Zuordnung eines Meisters, der fr die Reparatur verantwortlich ist. ben”tigt 0 keine Ersatzteile n Ersatzteile wird ben”tigt 0 Teil ist im Augenblick nur fr das Lager bestimmt 1 wird in einem oder mehreren Exemplaren ben”tigt wird durchgefhrt am 1 fr ein KFZ ben”tigt 0 Aufnahme in DB ist nicht von Reparaturauftrag abh„ngig n kann diverse Reparaturen ben”tigen geh”rt 0 (Neu-)Wagen im Firmenbesitz 1 geh”rt einem Kunden ist Eigentum von 0 hat kein KFZ n kann beliebig viele KFZ haben Problemf„lle bei der Bestimmung von Relationen: Mehrstellige Relationen sollten m”glichst in bin„re Relationen aufgel”st werden, indem Entit„ten aufgespalten werden. Ist dieses nicht m”glich, so kann man diese ber eine neue Entit„t, welche die Zuordnung enth„lt, aufgel”st werden: Eine n : m -Relationen kann mit Hilfe einer Entit„t "Zuordnungstabelle" auf zwei 1 : n -Relationen reduziert werden: Eine weitere M”glichkeit besteht darin, daá ich eine Entit„t in zwei Entit„ten aufspalte, die in einer 1 : 1-Relation zueinander stehen. Prim„rschlssel und Fremdschlssel Prim„rschlssel sind an Entit„ten gebunden. Potentiell hat jede Entit„t einen Prim„rschlssel, auch wenn es F„lle geben mag, in denen er nicht angelegt wird. Ein Prim„rschlssel muá: 1. eindeutig sein, d. h. dieser Eintrag darf genau nur einmal auftreten und nur einmal an eine Entit„t vergeben werden. 2. Ein Schlsselfeld ist ein Pflichtattribut, das einen Eintrag heben muá (Musseintrag). A) Unter Umst„nden k”nnen verschiedenen Attribute einer Tabelle fr die Funktion Prim„rschlssel in Frage kommen. B) Ein Prim„rschlssel kann unter Umst„nden durch die Kombination mehrerer Attribute einer Tabelle gebildet werden - Kombinationsschlssel. Beispiel: Zwei Niederlassungen eines Konzerns vergeben unabh„ngig voneinander Personalnummern. In einer Tabelle "Mitarbeiter", in der alle Angestellte des Konzerns eingetragen sind, k”nnen die Attribute "Werk-Nr." und "Personalnummer" zusammen den Prim„rschlssel bilden. Notation: Attribute, die den Prim„rschlssel darstellen, werden unterstrichen. Eine gestrichelte Linie kennzeichnet den Fremdschlssel. Ohne Prim„rschlssel kann ich keine Relationen zwischen Entit„ten herstellen. Ein Fremdschlssel ist eine Deklaration an einem oder mehreren Feldern (entsprechend dem Prim„rschlssel der Entit„t) in einer anderen Entit„t. Lege ich zur Aufl”sung einer mehrstelligen oder einer n : m - Relation eine neue Entit„t an, so entsprechen die dort angelegten Attribute jeweils dem oder den Schlsselattribut(en) der durch die neue Entit„t verbundenen Entit„ten. Dadurch wir referentielle Integrit„t erzwungen: 1. Die Eintr„ge des Fremdschlssel werden nur entsprechend dem Prim„rschlssel vergeben. 2. Im Prim„rschlssel k”nnen Eintr„ge nur dann gel”scht werden, wenn diese nicht auch vom Fremdschlssel verwendet werden. Wird die Kombination aller Attribute der erzeugten Entit„t zum Prim„rschlssel (Kombinationsschlssel) deklariert, so werden damit Doppeleintr„ge ausgeschlossen. Wird ein Prim„rschlssel auch als Fremdschlssel verwendet, so kann er nicht bearbeitet werden. Schlsselfelder drfen keine NULL-Eintr„ge haben und mssen unique sein: jeder Wert darf nur einmal auftreten. Wird ein Eintrag des Prim„rschlssels im ebenfalls im Fremdschlssel gefhrt, so kann er nicht bearbeitet werden. Vorsicht: der Begriff Sekund„rschlssel kann synonym mit diesem Begriff des Fremdschlssels verwendet werden. Aber: Zum Sekund„rschlssel kann ein Attribut in einer Entit„t deklariert werden, in der schon ein Prim„rschlssel deklariert ist. Das Attribut muá ebenfalls den Voraussetzungen eines Prim„rschlssels entsprechen. Die Normalformen nach Codd Notation: 1NF, 2NF, 3NF Es gilt: 2NF => 1NF 3NF => 2NF, 1NF 1NF besagt: "one fact in one place". Eine Entit„t(stabelle) befindet sich in der 1. Normalform genau denn wenn jeder Attributwert eine atomare (nicht weiter zerlegbare) (Informations-)Einheit darstellt. 2NF besagt: Eine Entit„t(stabelle) befindet sich genau dann in der 2. Normalform, wenn sie sich in der 1NF befindet und wenn der Inhalt eines jeden einzelnen Attributs, das nicht zum Prim„rschlssel geh”rt, von dem Inhalt des gesamten Prim„rschlssels abh„ngt. Mit 2NF werden drei Ph„nomene oder Anomalien vermieden: Insert-Anomalien (Speicheranomalien) entstehen dadurch, daá sich bei der Eingabe eines Datensatzes ganz menschliche Fehler ergeben k”nnen: ein Wert wird falsch zugeordnet, ... Update-Anomalien entstehen, wenn sich ein Datum, daá fr mehrere Datens„tze gleichermaáen von belang ist „ndert. Z. B. Eine Bank ver„ndert Ihre Bankleitzahl Delete- Anomalien ( L”schanomalien) entstehen dadurch, daá ich einen Datensatz l”sche. D. H.: alle Daten dieses Datensatzes gehen verloren, auch wenn dies nicht unbedingt gewnscht ist. 3NF besagt: Eine Entit„t(stabelle) befindet sich genau dann in der 3. Normalform, wenn sie sich in der 2NF (und damit in 1NF) befindet und wenn jedes Nicht-(Prim„r-)Schlsselattribut ausschlieálich vom gesamten Prim„rschlssel abh„ngt. Es gibt keine Abh„ngigkeiten irgendwelcher Attribute von nicht Schlsselattributen. [Der Prim„rschlssel und nichts als der Prim„rschlssel und nur der reine Prim„rschlssel.] šbung: Ausgangssituation: Lieferant liefert Produkte Attribute: L-ID, L-NAME, P_ID, P_BEZ, MENGE Sicht des Kunden 1. Normalisieren Sie in die 3NF (Klammernotation). 2. Erstellen Sie eine graphische Darstellung der Abh„ngigkeiten der Tabellen (ERM). 3. In der Lieferantentabelle wird nachtr„glich zus„tzlich die Bankverbindung des Lieferanten mit aufgenommen. (BLZ, KTO_NR, BANK_BEZ; Voraussetzung: die BLZ steht in einer eindeutigen Beziehung zur Bezeichnung der Bank.) a) Erl„utern Sie in diesem Zusammenhang die Begriffe : Insert, Update, Delete an diesem Beispiel b)Normalisieren Sie erneut nach 3NF. Wie realisiert man in einer Datenbank die Beziehungen von verschiedener Kardinalit„t? 1:1-Relation Der Prim„rschlssel aus Entit„t 1 entspricht dem Attribut mit der Funktion Sekund„rschlssel in Entit„t 2. Diese Relation ist in einer Datenbank nicht realisierbar, dar sie weder Eintr„ge noch L”schungen in beiden Entit„ten blockiert. Realisierbar ist lediglich eine Verbindung 1:0,1. 1:n-Relation ealisierbar ist lediglich eine Verbindung 1:0,n. n:m-Relation Realisierbar ist lediglich eine Verbindung 1,n:0,m.