Widerholung • DBVS = eine Softwaresystem zum Organisieren, Speichern, Zugreifen, Analysieren und Aendern von Datenbestaenden. Ein DBVS arbeitet mit Daten welche in Datenbanken organisiert sind und garantiert die Richtigkeit der Daten, die Richtigkeit im Mehrbenutzerbetrieb, das Datensicherheit. • Die Datenbank = eine electronisch organisierte Datensammlung zu einem tematisch oder organisatorisch umgrenztnen Gebiet. • Die Datenbank = eine Sammlung von nichtredundanten Daten, die von mehreren Anwendungen benutzt werden. Bemerkung 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. Es gibt hierarhische Datenmodelle (mit einer Baumstruktur), Netzwerkdatenmodelle (mit einer Netzstruktur) relationale Datenmodelle und OO Datenmodelle. ARCHITEKTUR VON DATENBANKVERWALTUNGSSYSTEMEN • • • • • Hierarchische Datenbanksysteme Netzwerk - Datenbanksysteme Relationale Datenbanksysteme Objekt-relationale Datenbanksysteme Objektorientierte Datenbanksysteme Gemäss der Konzeption ANSI-SPARC[1] entwickelt sich eine Datenbank auf drei funktionellen Ebenen: • Externe Ebene (Benutzersichten) • Konzeptuelle Ebene (Logische Gesamtsicht) • Interne Ebene (Physische Sicht) [1] Standard Planning and Requirement Committee a)konzeptuelle Ebene (logische Sicht) beschreibt die Daten einer Unternehmung sowie deren Beziehungen aus Unternehmensgesamtsicht. b) externe Ebene (Benutzersicht) beschreibt die Sicht eines Anwenders/ einer Anwendung auf die Daten der konzeptuellen Ebene. Auf der externen Ebene erfolgt die Koordination der Datenbank mit den Benutzerbedürfnissen. c)interne Ebene (technische Sicht) beschreibt wie die Daten auf dem physischen Speichermedium gespeichert werden. Die wesentliche Speicherformen sind: • sequentielle Speicherung; • indizierte Speicherung; • index-sequentielle Speicherung; Externe Sicht 1 Externe Sicht 2 …. Externe Sicht n Externe Schemata externe/konzeptuelle Modellierung Konzeptuelles Schema konzeptulle/interne Modellierung Internes Schema Geschpeicherte Datenbank Relationale Datenmodell Das Model benutzt eine eigene formale Sprache, obwohl logisch äquivalente Begriffe aus der Dateiorganization bekannt sind. Dateiorganization Relationale Modell Repräsentant für Datei Relation Objekttyp (Z.B. Kunde) Feld Attribut Objekteigenschaft (z.B. Name) Satz Tupel Objektausprägung (Daten zur einem spezielle Kunden) Beispiel Attribute Relation PERSONAL Name Vorname Schneider Anne Derer Franz Müller Günter Matr.Nr. 2312 2000 2222 Gehalt 5200 8000 6000 Tupeln 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) Relation – eine Tabelle, in der in zweidimensionaler Anordnung die Datenelemente erfaßt sind, wobei: • Bestandsrelation: bildet eine Objektklasse mit identischen Merkmale (Feldern); • Beziehungsrelation: schafft eine Beziehung zwischen zwei verschiedenen Bestandsrelationen. Eine Relation hat zusätzlich folgende Eigenschaften: • Keine doppelten Tupel. D.h. es gibt zu keinem Zeitpunkt zwei Tupel, deren Attributwerte den gleichen Inhalt haben. • Tupelreihenfolge. Die Reihenfolge, mit der die Tupel in einer Relation gespeichert sind, ist nicht definiert. Man darf sich also nie auf eine bestimmte Reihenfolge der Tupel in einer Relation verlassen! • Attributreihenfolge. Die Reihenfolge der Attribute in einer Relation ist nicht definiert. Es ist also nicht möglich, das n-te Attribut einer Relation anzusprechen. Man kann ein bestimmtes Attribut nur mit seinem Namen ansprechen. • Attributenwerte sind atomar. Die Werte eines Attributes unterliegen einer Domäne. Da alle Elemente einer Domäne atomar sind, sind auch die Elemente eines Attributes atomar. Wenn eine Relation diese Eigenschaft hat, erfüllt sie die Bedingung der ersten Normalform (siehe Normalformen). Relationsschema. Die Menge der Felder (Attributen)die einer Relation entsprechen wird Relationsschema genannt. Die Syntax ist folgende <Relationsname> (<Feld1>,<Feld2>,<Feld3>, ...<Feld n>) Attribut. Unter einem Attribut versteht man ein Feld innerhalb der Beschreibung eines Tupels (z.B. Möbelart). Domäne bezeichnet den Definitionsbereich eines Attributes. So besteht zum Beispiel die Domäne Möbelart aus den Werten "Stuhl", "Tisch", "Sessel". Degree. Die Anzahl der Attribute einer Relation wird mit Degree (Ausdehnungsgrad) bezeichnet. Eine Relation mit nur einem Attribut wird unär, eine mit zwei Attributen binär genannt. Eine Relation mit n Attributen wird n-ary gennant. Tupel. Ein Tupel entspricht einer Zeile innerhalb der Tabelle und enthält alle auf ein Objekt bezogenen Feldwerte bzw. Merkmalsausprägungen. Cardinalität. Mit Cardinalität bezeichnet man die Anzahl der Tupel einer Relation. Diese ist zeitabhängig und kann auch gleich Null sein, wenn die Relation leer ist. Schlüsselfeld dient der eindeutigen identifikation eines Tupels in einer Relation und der Herstellung von Beziehungen zwischen verschiedenen Relationen. Schlüsselkandidat (Candidate – Key). Eine Attributmenge wird Schlüsselkandidat genannt, wenn alle Werte dieser Attributmenge unique (eindeutig) sind. Es existieren somit zu keinem Zeitpunkt zwei Werte eines Candidate-Keys mit gleichem Inhalt. Eine Relation kann ein oder mehrere CandidateKeys besitzen: Relation BÜCHERREGAL Nr. Titel 1 Einsicht ins Ich 2 Metamagicum 3 Gödel, Escher, Bach 4 Das Sein 5 Der Pfahl im Fleische Autor Hofstadter Hofstadter Hofstadter Sartre Sartre ISBN 3-608-9303038 3-608-930089 3-608-93037 3-498060600 3-33499105268 Relation mit mehreren Candidate-Keys Primärschlüssel(Primary–Key): Attribut mit eindeutig identifizierender Eigenschaft; kann sich aus einem oder mehreren Attributen zusammensetzen. Jede Relation besitzt genau einen Primary – Key, um ein Tupel der Relation eindeutig zu identifizieren. Es wird definiert, indem einer der Candidate- Keys zum Primärschlüssel erklärt oder ein neues Attribut speziell für diesen Zweck eingeführt wird. (z.B. eine Nummer). Der Primärschlüssel darf keine Null-Werte enthalten und sie ist "die Adresse" des Tupels, was nicht bedeutet, daß ein Zugriff nur über ihn möglich sein soll. Der Primärschlüssel soll mindestens einen schnellen Zugriffspfad garantieren, mit dem exakt ein Tupel angesprochen werden kann. Mit Hilfe dieses Primary-Keys werden meist die Verknüpfungen der Relationen in der Datenbank hergestellt. Fremdschlüssel (Foreign Key). Ein Attribut einer Relation B wird als Fremdschlüssel bezeichnet, wenn es nicht Primärschlüssel von B ist, aber Primärschlüssel der Relation A ist. Beide Attribute(oder Attributmengen, wenn der Key aus mehr als einem Attribut besteht) müssen der gleichen Domäne unterliegen. Es ist wichtig, daß ein Datenbanksystem weiß, welche Attributmenge den Primärschlüssel definiert und welche Fremdschlüssel existieren. Nur so kann das DBVS die referenzielle Integrität der Datenbank gewährleisten. Relation ARTIKEL Artnr. 110 120 125 Name Felix Bruno Pascha Möbelart Sthul Tisch Sessel Artgrnr. M10 M10 M15 Relation ARTIKELGRUPPE Artgrnr. M10 M15 M37 Bezeichnung Eßmöbel Kleinmöbel Gartenmöbel Lagerort A25 B13 C12 Primärschlüssel und Fremdschlüssel Aus Performancegründen (durch Performance versteht man die Arbeitsgeschwindigkeit eines DVSystems) können zusätzlich beliebig viele Keys in einer Relation definiert werden. Diese werden dann Alternate-Keys oder auch Secondary–Keys (Zweitschlüssel oder Sekundärschlüssel) genannt. Sekundärschlüssel (Secondary–Key) : jedes beliebige Attribut, das schlüssel ist und Eigenschaften haben kann. Relation KUNDE Kunden Name nr. 25 64 35 46 66 67 99 Honeywell IBM Müller AG Epson Schmidt KG K&N Köbig nicht PrimärKlassifizierende Strasse PLZ Wohnort Kontonr Friedenstr.34 Kaiser-Ring 10 Waldstr. 123 Rheinstr. 75 Sonnenstr. 243 5450 6500 6200 6000 6000 Neuwied Mainz Wiesbaden Frankfurt Frankfurt 739495 94588324 5632734 63744 8377402 Industriestr. 12 Flachstr. 45 6200 6500 Wiesbaden Mainz 748288 8474700 Mit Hilfe dieses Konzepts lassen sich aber nicht nur verschiedene Objekte darstellen, sondern auch Beziehungen zwischen diesen. Relation LAND Name Einwohner Deutschland 62.150.200 Scheweden 8.358.000 Norwegen 4.190.000 Finland 4.925.772 Hauptstadt Berlin Stockholm Oslo Helsinki Relation STADT Name Einwohner Stockholm 663.217 Oslo 449.337 Bonn 292.727 München 1.290.079 Berlin 1.860.000 Moskau 8.801.000 AbL S N D D D RF AbL D S N SF Relation ARTIKEL Haupschlüssel Artnr. 110 120 125 Name Felix Bruno Pascha Fremdschlüssel Möbelart Sthul Tisch Sessel Artgrnr. M10 M10 M15 4 Attribute aus 4 Wertebereiche 3 Tupel , Cardinalität = 3 Degree = 4 Die wichtigsten Begriffe des Relationalen Modells die Grundeigenschaften des relationallen Modelles • eine Relation wird durch eine Tabelle dargestellt in welcher jede Reihe einen Tupel (Satz) und jede Spalte ein Domän darstellt; • jede Reihe der Tabelle muss verschieden von den anderen Reihen sein (Duplikate sind verboten); • die Reihenfolge der Reihen in der Tabelle ist nicht festgelegt und kann ohne Einschränkungen verändert werden; • die Spalten der Tabellen werden durch verschiedene Namen identifiziert und stellen die Felder (Attribute) dar; • Ein Attribut darf nur ein einziges Mal innerhalb einer Relation auftreten. • in jeder Spalte der Tabelle sind die Ausprägungen vom selben Typen und bilden ein Domän. Relationale Integritätsregeln Integrität im Bezug auf eine Datenbank bedeutet, das sie unversehrt ist, also keine wiedersprüchlichen Daten in ihr gespeichert sind. Die relationale Integritätsregeln beziehen die Entity – Integrität und die Referenzielle- Integrität. Mit der Entity – Integrität wird sichergestellt, daß jedes Tupel (Entity) in einer Relation einen eindeutigen Schlüssel besitzt. Also, wenn ein Attribut die Komponente eines Primärschlüssels ist, dann darf dieses Attribut zu keinem Zeitpunkt einen NULL-Wert enthalten. Durch die referentielle Integrität wird sichergestellt, daß z.B. alle Artikelgruppennummern in der Artikel-relation auch in der Relation Artikelgruppe sind. Also, für die referentielle Integrität, besitzt eine Relation R2 einen Fremdschlüssel, der auf einen Primärschlüssel in einer Relation R1 verweist. Dabei muß jeder Wert des Fremdschlüssel in R2 gleich einem Wert des Primärschlüssel in R1 sein oder der Wert des Fremdschlüssels muss ein NULL-Wert sein.