Home

Datenbanken

image

Contents

1. SELECT JOB GEHALT JOB TITEL ANGESTELLTE NAME ANGESTELLTE ABT_ID FROM ANGESTELLTE JOB WHERE JOB GEHALT gt ANY SELECT GEHALT FROM JOB ANGESTELLTE ABTEILUNG WHERE ABTEILUNG BEZEICHNUNG PERSONALABTEILUNG AND ABTEILUNG ABT_ID ANGESTELLTE ABT_ID AND ANGESTELLTE JOB_ID JOB JOB_ID AND JOB JOB_ID ANGESTELLTE JOB_ID ORDER BY GEHALT DESC 100 Datenbanken Die Vergleichs Operatoren einer vergleich_bed 9 d rfen in Unterabfragen Subquery durch ALL ANY oder SOME Synonym f r ANY modifiziert werden Eine Anfrage darf mehrere Subqueries enthalten Unterabfragen d rfen geschachtelt sein Es ist m glich IN f r ANY und NOT IN f r ALL zu setzen Die ORDER BY Klausel ist in Unterabfragen nicht zugelassen EXISTS Unterabfragen k nnen auch mit dem Operator EXISTS verkn pft werden Der Ausdruck exists select f hrt zum logischen Wert wahr falls das Ergebnis des in Klammern eingeschlossenen select Ausdrucks nicht leer ist SELECT JOB TITEL FROM JOB WHERE EXISTS SELECT FROM ANGESTELLTE WHERE ANGESTELLTE JOB_ID JOB JOB_ID RDER BY JOB TITEL O ber EXISTS kann der Existenzquantor in SQL interpretiert werden SQL hat den Allquantor nicht im
2. adb_string len strlen db_string arr E x7 Definition eines Fehlerausgangs fuer den Fall dass ein Fehler bei der Ausfuehrung eines SQL Kommandos passiert EXEC SQL WHENEVER SOLERROR DO fehler Einloggen in das ORACLE System unter Benutzung von USERID und Passwort KA J EXEC SQL CONNECT uid IDENTIFIED BY pwd USING db_string printf Connected to ORACLE as user s n uid arr jx Deklaration eines CURSORS fuer das gewuenschte SQL Kommando F Ein CURSOR ist ein Arbeitsbereich der von ORACLE Pro C benutzt wird und der die Ergebniss iner SQL Abfrage enthaelt EmA F Der CURSOR wird mit dem folgenden Kommando mit einer SQL Abfrage in Beziehung gebracht x7 F x EXEC SQL DECLARE C1 CURSOR FOR SELECT ANGESTELLTE ANG_ID ANGESTELLTE NAME TO_CHAR ANGESTELLTE GEBJAHR dd mm yy FROM ANGESTELLTE ABTEILUNG WHERE ANGESTELLTE ABT_ID ABTEILUNG ABT_ID AND ABTEILUNG BEZEICHNUNG KONSTRUKTION FE x Der zuvor definierte CURSOR wird eroeffnet xf Die mit ihm assoziierte Abfrage wird ausgefuehrt und all gefundenen Loesungen in der einer Tabelle im Arbeitsbereich abgespeichert 7 Der CURSOR
3. QZ 2 Bestimme eine Liste die die Identifikation Bezeichnung einer Abteilung und die Zahl der Beschaeftigten in dieser Abteilung zeigt ELECT ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG COUNT ANGESTELLTE ANG_ID ROM ABTEILUNG ANGESTELLTE HERE ANGESTELLTE ABT_ID ABTEILUNG ABT_ID ROUP BY ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG azaH un GROUP BY und HAVING Die Anweisung GROUP BY erm glicht es Datens tze Tupel gruppenweise zu ordnen Auf diese Gruppen lassen sich verschiedene Operationen in der Regel mit Aggregatsfunktionen ausf hren Die Klauseln GROUP BY und HAVING bewirken 102 Datenbanken da sich diese Funktionen nicht mehr auf alle Zeilen einer Tabelle sondern auf alle Zeilen innerhalb einer Gruppe auswirken Die GROUP BY Klausel f hrt Zeilen aus der Ergebnistabelle einer SELECT Anweisung zu Gruppen zusammen in denen bestimmte Spalten den gleichen Wert haben Jede Gruppe wird in der Ergebnistabelle zu einer einzigen Zeile reduziert Somit kann ber GROUP BY projiziert werden auf Attribute ber die gruppiert wird Gruppen Funktionen angewendet auf Attribute der Haupttabelle Konstante Mit der HAVING Klausel kann der Anwender den einzelnen Gruppen bestimmte Bedingungen auferlegen Sie ist eine Selektion von Gruppen Da im Ausgangspu
4. struktur pl bl 2 struktur pl b2 3 struktur pl e3 10 struktur p2 bl 3 struktur p2 e3 83 struktur bl el 7 struktur bl e2 8 struktur b2 e2 10 struktur b2 e3 4 Ein Tupel in einer relationalen Datenbank entspricht einem Prolog Fakt Der Name der Tabelle die Relation kann als Name des Pr dikats gew hlt werden die Spalten der Tabelle entsprechen den Positionen der Argumente des Pr dikats Im relationalen Datenmodell sind keine Regeln vorgesehen Das bedeutet nicht Regeln sind in der Datenbankwelt generell berfl ssig Falls ein Datenbanksystem Fakten und Regeln verarbeiten kann dann k nnen Daten u U sehr vorteilhaft organisiert werden Derartige Vorteile sind das Einbringen und ndern von Daten wird erleichtert z B durch Errechnen von Tabellenwerten es wird weniger Speicherplatz verbraucht Sichten views f r spezifische Benutzer sind leichter zu definieren Integrit tsbedingungen sind einfach zu definieren Die 3 grundlegenden Basisabfragen einer relationalen Datenbank vgl 2 2 3 lassen sich mit dem vorliegenden Prolog Programm einfach realisieren So ist struktur X Y Z eine Anfrage die alle Zeilen der Tabelle liefert X pl Y bl Z 2 x pl Y b2 Z 3 X pl Y e3 Z 10 etc SErUKEUNI amp X Y LOJ ist eine Anfrage die nur einige Zeilen der Tabelle bereitstellt X pl Y e3 x b2 Y e2 194 Datenbanken teil _ Bezeichn
5. 7er RJ x Das Programm ermittelt Loesungen fuer die SOL E Abfrage gt Ermittle alle Angestellten die in der Abteilung R Konstruktion beschaeftigt sind i SELECT ANGESTELLTE ID ANGESTELLTE NAME TO_CHAR ANGESTELLTE GEBJAHR dd mm yy RA I FROM ANGESTELLTE ABTEILUNG xy WHERE ANGESTELLTE ABT_ID ABTEILUNG ID AND E ABTEILUNG BEZ KONSTRUKTION yx Ry x include lt stdio h gt In der DECLARE SECTION muessen alle Variablen RY deklariert werden die von einem der SQL Makros benutzt werden sollen Mode ANSI C Character Strings mit schliessendem Ef fx 0 Byte koennen ohne Aenderung benutzt werden fuer SQL Aufrufe E x XEC SQL BEGIN DECLARE SECTION VARCHAR uid 20 VARCHAR pwd 20 VARCHAR anggeb 8 VARCHAR angid 4 VARCHAR angname 11 VARCHAR angabt 4 VARCHAR abtid 317 VARCHAR abtbez 41 VARCHAR db_string 20 EXEC SQL END DECLARE SECTION EXEC SQL INCLUDE sqlca 273 void fehler Datenbanken Beginn des Hauptprogrammes main int argi strcpy uid uid len st strcpy pwd pwd len st strcpy db_st char argv arr xyz12345 ORACLE USERID rlen uid arr arr xyz12345 ORACLE Passwort rlen pwd arr ring arr rfhs1012_ora2
6. ER Reicht der zur Verf gung gestellte Platz von Tabellenspalten nicht aus dann kann ber ALTER TABLE mit einer MODIFY Klausel die Bereichsgr e dieser Felder erweitert werden 4 Hinzuf gen von Datens tzen Zeilen Zum Einf gen eines einzelnen neuen Datensatzes dient der INSERT Befehl mit einer VALUE Klausel z B inser KO inser KA inser A1 insert into abteilung values Konstruktion into job values Kaufm Angestellter 3000 00 j to angestellte values ritz 02 JAN 50 0D SY fe into qualifikation values Fa SY y 107 Datenbanken 5 Aktualisieren von Daten Beim ndern von S tzen werden die zu ver ndernden Felder angegeben und die zu ndernden S tze durch eine Selektion bestimmt z B update abtkosten set anzahl select count angestellte abt_id from abtkosten angestellte where abtkosten abt_id KO and angestellte abt_id KO group by abtkosten abt_id where abtkosten abt_id KO Falls die WHERE Klausel fehlt werden alle Spalten nach der Angabe in der SET Anweisung ver ndert 6 L schen von Daten Das L schen von Datens tzen kann durch eine Selektion spezifiziert werden DELETE FROM lt Tabellen Name gt WHERE lt Bedingung gt Weitere Klauseln des SELECT Befehls sind in der DELETE Anweisung nicht sinnvoll und daher auch nicht zugelassen
7. EXEC SQL WHENEVER NOT FOUND GOTO loop for loop printf Please enter your SQOL Command n strcepy input gets input printf s n input if strcmp input exit 0 exit 0 strcpy order arr input order len strlen order arr EXEC SQL PREPARE S1 FROM order EXEC SQL DECLARE C1 CURSOR FOR S1 EXEC SQL OPEN C1 for EXEC SQL FETCH C1 INTO ang_id name abt_id job_id printf s s s s n ang_id arr name arr abt_id arr job_id arr error printf Fehler aufgetreten n printi 2d n sqlca sqlcode exit 1 278 Datenbanken 2 3 5 3 Call Schnittstelle CLT SQL Anweisungen werden in Funktionsaufrufen als String Parameter bergeben und zur Laufzeit vom Datenbanksystem interpretiert Diese spezielle Form des dynamischen SQL wird im Rahmen von SQL3 Standards als SQL CLI Call Level Interface ebenfalls normiert Der wesentliche Vorteil der Call Schnittstelle gegen ber Embedded SQL ist Realisierung der SQL Befehle ber C Funktionsaufrufe Es ist kein Precompiler n tig 2 3 5 3 1 ODBC Die wohl am weitesten verbreitete Version einer Call Schnittstelle ist zur Zeit ODBC unter Microsoft Windows Im wesentlichen st tzt sich ODBC auf einen CLIStandard von X Open und der SQL Access Group Diese Spezifikation wurde bei der ISO als Erweiterung von SQL vorgeschlagen und hat gro e Chancen
8. static int oci_error erg fct cda doterm int erg char fet char cda int doterm ifdef VERBOSE printf fet s Result d d n fct erg short amp cdall2 endif VERBOSE if erg 0 amp amp doterm exit 1 I xl Beginn des Hauptprogrammes fx main F Logon Data Area x Ueber diesen Puffer findet die Kommunikation zwischen ORACLE und dem Anwenderprogramm statt ETA EA C char logon_data_area LOGON_DATA_SIZE F x Cursor Data Area xl Der Cursor dient als Aufnahmepuffer fuer Zeilen x der Loesungsmeng iner SQL Abfrage xf x y char cursor_data_area CURSOR_DATA_SIZI CA a 296 Datenbanken J Datenbereiche fuer ORACLE Kennung und ORACLE ug Passwort E x char uid 40 char psw 20 Jx Hilfsgroessen Br F E int erg short rlen short rcod J Zielpuffer fuer die Ergebniss iner einzelnen ug Zeile aus der Ergebnismeng iner SQOL Abfrage aA x char angid 4 char angnam 11 char anggeb 9 af Puffer fuer Uebergaben vom C Programm aus an ff das ORACLE System 274 px char konst 255 Einloggen in das ORACLE System unter Angabe von E
9. NAME ALTER GEWICHT BEURTEILUNGSKRITERIUM STUDIENFACH Karl 20 66 gut Mathematik Fritz 25 gt 9 mittel Chemie Juergen 2768 schlecht Informatik Josef 24 87 Physik 7 vgl Vetter M Aufbau betrieblicher Informationssysteme 6 Auflage Stuttgart 1990 31 Datenbanken Darstellung von Entit ten Jedem Entit ts Typ kann man eine Kombination von Attributen jeder Entit t dieses Typs eine entsprechende Kombination von Attributwerten zuordnen Bsp Produktionsdaten eines Unternehmens Dem Entit tstyp ANGESTELLTE kann zugeordnet werden NAME Karl BERUFSBEZEICHNUNG Programmierer NAME_DER_KINDER Fritz Anna In der Regel sind Attributkombinationen so beschaffen da sie die zugeh rige Entit t eindeutig beschreiben Alle Entit ten des gleichen Typs bilden eine Entit tsmenge Bsp Alle Studenten einer Hochschule charakterisiert durch die Eigenschaften NAME ALTER WOHNORT Ein Entit ts Schl ssel Schl sselkandidat candidate key ist dann ein Attribut das Entit ten innerhalb einer Entit tsmenge eindeutig identifiziert Ein Entit tstyp kann mehrere Schl sselkandidaten haben Es ist sinnvoll aus den Schl sselkandidaten einen Prim rschl ssel primary key auszuw hlen Soweit es m glich ist sollte man zusammengesetzte Prim rschl ssel vermeiden 3 Beziehungen Zwischen Entit ten k nnen Beziehungen bestehen So sind bspw in den Produktionsdaten eines Unte
10. Ei Il oeza3 Hu 98 Datenbanken F r den Verbund einer Tabelle mit sich selbst wird genutzt da jeder Name einer Tabelle eine gewisserma en selektionsinterne Abk rzung alias erhalten kann durch Leerzeichen getrennt dem Tabellennamen in der rom Klausel nachgestellt Unterabfragen Bedingungen in SELECT DELETE oder UPDATE Kommandos sowie HAVING Klauseln d rfen sogenannte Subqueries Unterabfragen enthalten In diesem Fall wird ein Wert bzw eine Menge von Werten in einer Bedingung errechnet Das Ergebnis dieser Berechnung wird direkt in die befreffende Anfrage eingesetzt jedoch nicht gespeichert Der Aufbau der bergeordneten select Anweisung h ngt ab von der Anzahl der Werte die als Ergebnis der untergeordneten SELECT Abfrage ausgegeben werden Folgende F lle sind m glich Unterabfrage mit einem Ergebnis Unterabfrage mit mehreren Ergebnissen Eine Unterabfrage mit einem Ergebnis ist SELECT JOB TITEL JOB GEHALT FROM JOB WHERE JOB JOB_ID SELECT ANGESTELLTE JOB_ID FROM ANGESTELLTE WHERE ANGESTELLTE NAME Fritz Bsp Bestimme alle Angestellten die diesselbe Funktion Titel wie Fritz haben oder in der gleichen Abteilung besch ftigt sind SELE
11. MNR Gebdat Adr MNR Mitarbeiternummer 23 Diplomarbeit Thema Beginn Ende Note Student Matrikelnummer Name Vorname Vorlesung Name Professor MNR Fachbereich Name Diese Entit tsmenge besitzt eine ist_ein Beziehung zu Hochschulmitarbeiter Beziehungsmengen sind Betreut Professor Diplomarbeit Der Beziehungstyp ist hierarchisch 1 n Erarbeitet 21 vgl 1 3 1 2 22 Identifizierende Attribute sind unterstrichen 23 Die Mitarbeiternummer ist ein Attribut das allen Hochschulmitarbeitern gemeinsam ist und veerbt wird 41 Datenbanken Der Beziehungstyp Student Vorlesung Professor ist vom Typ n p m und besitzt die Attribute Semester Jahr Schreibt Der Beziehungstyp Diplomarbeit Student ist vom Typ m n und besitzt das Attribut Semester Das f hrt zu dem folgenden Entity Relationship Diagramm GID An ad am Hochschulmitarbeiter Crema gt lt ist_ein ame u m o n Abb 1 3 7 Entity Relationship Diagramm zu einer Hochschul Verwaltung Homogene Zusammenstellungen von Beziehungsmengen der Klassifikation E E sind ebenfalls im ERM darstellbar z B St ckliste und Verwendungsnachweis bilden sich im ER Diagramm so ab 42 Datenbanken besteht_aus verwendet_in Analyse Synthese Bezeichnung Einzelteil 1 Einzelteil_2 Einzelteil_3 Baugruppe_l Baugruppe_ 2 Endprodukt_1 Endprodukt_2 Abb 1 3 8 Entity Relat
12. eine Pr sentationskomponente zur Realisierung der Benutzerschnittstelle eine Logikkomponente zur Ausf hrung von Verarbeitungsfunktionen und ber nahme des Kontrollflusses in Anwendungssystemen eine Datenkomponente mit der Aufgabe der Datenverwaltung Die Datenkomponente kann weiter sog 5 Schichten Architektur unterteilt werden in das Datenbanksystem Das ist heute in der Regel ein relationales Datenbanksystem Anforderungen an das System werden in SQL formuliert Das System l st mengenorientierte Anforderungen in satzorientierte Zugriffe S tze von Tabellen auf Im Rahmen der 5Schichen Architektur spricht man hier von der mengenorientierten Schnittstelle Diese Schnittstelle umfa t eine Klasse von Hochsprachen z B SQL das Datensatzverwaltungssystem Recordmanagementsystem Es l st Anforderungen nach Datens tzen ber die Kenntnis von Zugriffspfaden z B ber einen Index auf und bestimmt die Position der angeforderten S tze in den Dateien Tabellen Das Datensatzverwaltungssystem setzt Aufrufe an das Dateisystem ab Im Rahmen der 5Schichten Architektur spricht man von der satzorientierten Schnittstelle Der Zugriff zur Datenbasis erfolgt satzweise Pufferverwaltung Einbringstrategie Von der satzorientierten Schnittstelle aus will man die Abspeicherung von Satzmengen steuern Zur Kontrolle der Transportvorg nge von und zum Hinter grundspeicher ist ein homogener und linearer Speicher w nschenswert der Einze
13. GRANT Rechte ALL ON Tabellenname TO PUBLIC Benutzerliste WITH GRANT OPTION Rechte Das sind hier die lokalen Rechte Zus tzlich kann man dem Recht UPDATE eine Spaltenliste hinzuf gen Diese Liste kann die Namen einer oder mehrere Spalten umfassen und ist mit einzugrenzen ALL Vereinbarung da die unter Benutzerliste angegebenen Anwender alle lokalen Rechte erhalten PUBLIC Altenative Vereinbarung zu Benutzerliste Das Recht bzw die Rechte werden auf alle Anwender bertragen WITH GRANT OPTION Vereinbarung da der Empf nger die erhaltenen Rechte an andere Anwender weitergeben darf Ein erteiltes Zugriffsrecht kann mit REVOKE Rechte ALL ON Tabellenname FROM PUBLIC Benutzerliste zur ckgenommen werden 45 Derjenige ist Inhaber einer Tabelle der sie mit dem CREATE TABLE Befehl angelegt hat 46 beschr nkt den Zugriff auf die Inhalte bestimmter Spalten 259 Datenbanken Indexe und Cluster a Indexe Ein Index besteht aus einer Tabelle die zu den Werten einer Spalte Indexspalte die interne Adresse der zugeh rigen Tabelle enth lt Jede Spalte jedes Atrribut kann indiziert werden unabh ngig von Typ und L nge Ausnahme Spalten vom Typ LONG Ein Index darf mehrere Spalten umfassen Maximal k nnen das 16 Spalten sein Die Gesamtl nge darf jedoch 240 Zeichen nicht berschreiten Je Tabelle sind beliebig viele Indexe erlaubt Indexe kann der Ei
14. Gibt es in Qualifikation eine job_id die nicht job definiert wurde select j job_id q job_id from job j qualifikation q where j job_id q job_id JO JO IN IN IN IN IN IN IN IN KA KA KA KA KA KA OP OP PR PR PR PR PR PR SY SY SY SY SY SY SY SY A TA A TA 232 Datenbanken 18 rows selected 2 Gibt es in Qualifikation eine ang_id die nicht in angestellte definiert ist select a ang_id q ang_id from angestellte a qualifikation q where a ang_id q ang_id Drehen einer Tabelle Kreuztabellenabfrage In einer derartigen Abfrage werden Zeilen zu Spalten und Spaten werden zu Zeilen Solche Tabellen werden Kreuztabellen genannt Der folgende View angabt zeigt Abteilungsbezeichnungen als Spaltenbezeichner und die Titel der Angestellten als Datens tze Dazu wird die Tabelle angestellte gedreht create view angabt as select angestellte ang_id angestellte name decode angestellte abt_id KO angestellte job_id KO decode angestellte abt_id OD angestellte job_id OD decode angestellte abt_id PA angestellte job_id PA a a a a O decode angestellt bt_id RZ angestellte abt_id RZ decode angestellt pt irid VE angestellte abt_id VT from angestellte Die decode Funktion sorgt f r die korrekte Zuordnung von Berufsbezeichnungen in Zeilen und Spalten desc angabt Name Null Type ANG_ID NOT NULL VARC
15. Jede Entit t ist nur ber einen Einstiegpunkt Wurzelsegment erreichbar Bsp Datenbankstruktur Diagramm Abb 1 3 25 Datenbankstruktur im hierarchischen Datenmodell Occurrence Diagramm Weg der hierarchischen Ordung Abb 1 3 26 Auspr gung hierarchischer Strukturen 56 Datenbanken 2 Wesentliche Einschr nkungen gegen ber dem Netzwerkmodell Nur Baumstrukturen keine allgemeine Netzstrukturen sind erlaubt Zugriff kann nur ber einen gerichteten Weg der von der Wurzel ausgeht erfolgen Nur in einem Baum kann ein Entit ts Typ vorkommen Ist bspw die Beziehung E E in einem Baum realisiert ist e nur ber die zugeh rige Entit t e vom Typ E zu erreichen Eine selbstst ndige Verarbeitung von Entit ten des Typs E ist nur so m glich Duplizieren aller zu diesem Entit ts Typ zugeh rigen Entit ten Redundanz Beziehungen zwischen Entit ts Typen Segmenten sind nur in einer Baum struktur zu realisieren Beziehungstypen gibt es daher nur in der Form 1 1 bzw 1 m Segmente der obersten Hierarchiestufe hei en Wurzelsegmente Ein von einem solchen Segment ausgehende Hierarchie ist ein Datenbanksatz Die Menge der von den Wurzelsegmenten ausgehenden S tze bilden eine Datenbasis Ein Segment ist nur ber einen gerichteten Weg erreichbar dessen Ausgangspunkt das Wurzelsegment ist 3 Beispiele zur Anwendung hierarchischer Strukturen a heterogene Strukturen E E Bsp Stammsegment Typ FUNKTI
16. PUBLIC Mit dem GRANT Befehl erfolgt die Definition der Zugriffsrechte f r Tabellen und Domains REVOKE nimmt die mit GRANT vergegebenen Rechte zur ck RESTRICT CASCADE bezieht sich hier auf die der GRANT Option weitervergebenen Rechte 18 nur relevant wenn der View updatef hig ist 213 Datenbanken Privilege SELECT INSERT UPDATE DELETE REFERENCES USAGE REVOKE GRANT OPTION FOR privelege commalist ON DOMAIN domain TABLE table FROM user user PUBLIC RESTRICT CASCADE Column Defintion column data type domain DEFAULT literal NULL ceolumn constraint definition Data Types Zeichenkette fester L nge n Abk rzungen CHAR n und CHAR f r CHAR 1 Zeichenkette variabler L nge maximal n abgek rzt VARCHAR BIT n Bitfolge fester L nge n BIT VARYING n Bitfolge variabler L nge maximal n Dezimalzahl mit genau p Vorkomma und q Nachkomma stellen NUMERIC p wenn ohne Nachkommastellen DECIMAL p q Dezimalzahl mit mindestens p Vorkomma und q Nachkommastellen DECIMSAL p wenn ohne Nachkommastellen Ganze Zahl mit Vorzeichen Die Gr e ist ebenfalls der Implementierung berlassen SMALLINT Ganze Zahl mit Vorzeichen Die Gr e ist ebenfalls der Implementierung berlassen darf aber die von INT nicht berschreiten Flie kommazahl mit p Nachkommastellen alternative Bezeichnung ist
17. bersetzen 2 Auswerten des Anfrage Headers um zu bestimmen welche Transaktion gefordert wird und welches Programm die Anfrage abarbeiten soll 3 Starten der Transaktion und des Programms welches in 2 bestimmt wurde dieses Programm ruft typischerweise Aktionen auf einer Datenbank auf 4 Commit zum Beenden der Transaktion im Erfolgsfall bzw Abbruch im Fehlerfall 5 Zur cksenden eines Output zum Display oder einem anderen Ger t 68 XT API X Open Interface Standart f r die Kommunikation zwischen Applikation und Transaktion Manager 121 Datenbanken 1 5 3 Client Server Systeme 1 5 3 1 Fernzugriff in Netzen aus autonomen Rechnern Kommunikationsprotokolle Es ist zweckm ig kleinere Datenverarbeitungssysteme zur F hrung lokaler Datenbanken f r Verarbeitungsaufgaben am Arbeitsplatz vorzusehen und diese ber ein Netz an ein oder mehrere Rechenzentren anzuschliessen distributed processing Jeder Bildschirmarbeitsplatz hat einen eigenen Prozessor und Speicher Das Anwendungsprogramm l uft auf diesem Arbeitsplatzrechner Beim Fernzugriff auf die Datenbank findet eine InterprozeBkommunikation zwischen den Anwendungsprogrammen und dem Datenbankverwaltungssystem auf dem Zentralrechner statt Das Client Server Modell ist das dominierende Konzept f r verteilte Datenverarbeitung mit ber ein Kommunikationsnetz verbundenen Rechnern Man versteht darunter eine Architektur bei der eine Anwendung in einen benutzernahen Teil
18. 6 Mitgliedsklassen Ergibt sich aus den Anforderungen des Anwendungsgebiets da jedes Exemplar eines Entit tstyps an einer Beziehung teilhaben mu dann wird diese Klasse des Entit tstyps in dieser Beziehung als mandatory zwingend bezeichnet Andernfalls ist die Mitgliedsklasse optional freigestellt 8 vgl Abb 1 3 1 33 Datenbanken Bsp Eine Datenbank f r die Verwaltung einer Gemeinde umfa t B rger alle Einwohner und Haushaltsvorst nde zweckm igerweise sind das die Einwohner der Gemeinde von denen man Steuern erheben kann Jeder B rger ist zwingend mit dem Datum der Geburt Einwohner der Gemeinde und bleibt das bis er gel scht wird z B beim Tod oder einem Umzug Zum Steuerzahler wird er dann im bertragenene Sinne optional falls er Grundbesitz Grundsteuer hat oder ein Gewerbe betreibt Die Entscheidung ob eine Mitgliedsklasse eines Entit tstyps in einer Beziehung zwingend oder freigestellt ist liegt h ufig im Ermessen des Datenbank Model ierers 1 3 1 2 Beziehungen und Beziehungsattribute Ein Beziehungsattribut beschreibt die Verkn pfung einer Beziehungsmenge mit einer Dom ne bzw mehreren Dom nen z B Beziehungen zwischen Studenten repr sentiert durch den Entit tsschl ssel s mit den Erscheinungsformen S1 S2 s3 und Dozenten repr sentiert durch den Entit tsschl ssel D mit den Auspr gungen D1 D2 werden durch die Beziehungs menge BELEHRT beschrieben der das Beziehungsa
19. Datenbanken Wenn man die Objekt Klassen Beziehung Exemplarbeziehung Instanzbeziehung darstellen m chte wird zwischen einem Objekt und seiner Klasse ein gestrichelter Pfeil in Richtung Klasse gezeichnet GG Ze Obiekt Die Definition einer Klasse umfa t die bedeutsamen Eigenschaften Das sind Attribute d h die Struktur der Objekte ihre Bestandteile und die in ihnen enthaltenen Informationen und Daten Abh ngig von der Detaillierung im Diagramm kann die Notation f r ein Attribut den Attributnamen den Typ und den voreingestellten Wert zeigen Sichtbarkeit Name Typ voreingestellter Wert Operationen d h das Verhalten der Objekte Manchmal wird auch von Services oder Methoden gesprochen Das Verhalten eines Objekts wird beschrieben durch die m glichen Nachrichten die es verstehen kann Zu jeder Nachricht ben tigt das Objekt entsprechende Operationen Die UML Syntax f r Operationen ist Sichtbarkeit Name Parameterliste R ckgabetypausdruck Eigenschaften Sichtbarkeit ist ffentlich gesch tzt oder privat Name ist eine Zeichenkette Parameterliste enth lt optional Argumente deren Syntax dieselbe wie f r Attribute ist R ckgabetypausdruck ist eine optionale sprachabh ngige Spezifikation Eigenschaften zeigt Eigenschaftswerte ber String an die f r die Operation Anwendung finden Zusicherungen Die Bedingungen Voraussetzungen und Regeln die die Objekte erf llen m ssen werden Zu
20. 2 r TNR G1 G2 G1 Teilgewicht mit Verpackung G2 Teilgewicht ohne Verpackung Welche Teile werden ohne Verpackung geliefert r G1 G2 TNR 3 Verbund Die Operation Verbund join verkn pft zwei Relationen r1 A1 An X und ro X B 1 Bm die ein gemeinsames Attribut besitzen Mit Hilfe der Verkn pfungs operationen lt gt lt gt wird ber die Werte von X eine neue Relation bestimmt die sowohl alle Attribute aus r4 und r umfa t Falls t4 in r4 und to in ro enthalten ist dann umfa t r3 t1 Alr sese y 1 An t s Bp sws t2 Bm Allgemein schreibt man dann zur Verkn pfung der beiden Relationen ber die vereinigungsvertr glichen Attribute A und B r A B r 2 Jedes Element der Spalte r4 A ist mit jedem Element der Spalte r B vergleichbar Zwei Werte x und y sind vergleichbar wennx y entweder wahr oder falsch ist Das Ergebnis eines Verbunds ist dann eine neue Relation die sich paarweise aus r und s zusammensetzt Bsp 1 Gegeben ist r A B C und s D E a 1 xx a 4 a 2 xx b 2 b 1 yy 3 amp 3 ZZ a Gleichverbund equi join r A D s A B Gr D E a 1 xxa 4 a 2 xxa 4 b 1 yyb 2 3 Z 3 4 ist einer der 6 Vergleichsoperatoren 175 Datenbanken b Nat rlicher Verbund natural join Das redundante Attribut wird entfernt A B C E a xx 4 a 2 xx 4 b yy 2 E zz 3 c Verlustfreier Verbund Keine Information ist in einem Gle
21. Artikel und der Beziehungstyp bestellt zusammengefa t werden Auftrag 45 Datenbanken Auftrag Lager Abb 1 3 12 Aggregation Schwache Entit tstypen Manchmal ist es nicht m glich eine Entit t des Typs E anhand der Auspr gungen seiner Attribute zu identifizieren In solchen F llen wird eine Entit t E ber die Beziehungsmenge E E identifiziert E ist dann ein schwacher Entit tstyp Jeder Beziehungstyp der mit einem schwachen Entit tstyp verkn pft ist ist ein schwacher Beziehungstyp Im ER Diagramm wird ein schwacher Entit tstyp durch ein doppelt umrahmtes Rechteck die Richtung der Abh ngigkeit durch einen Pfeil symbolisiert z B Rechnungskopf Rechnungsposition Abb 1 3 13 Entity Relationship Diagramm f r eine Rechnung Durch das Konzept des schwachen Entit ts Typs werden Existenzabh ngigkeiten in das ERM eingef hrt In dem vorliegenden Beispiel h ngt die Existenz einer Rechnungsposition von der Existenz des zugeh rigen Rechnungskopfes ab Es besteht eine Sch sselabh ngigkeit zu einer anderen Entit t Beziehungstypen die diese Identifizierung herbeif hren werden h ufig auch im ER Diagramm in einer Raute mit doppeltem Umri gezeichnet Erweiterungen des ERM Zum ERM wurde eine Vielzahl von Varianten und Erweiterungen vorgeschlagen Eine sehr sinnvolle Erweiterung bezieht sich auf die Pr zisierung der Komplexit t von Beziehungen Die bisher angegebene Darstellung der Kompexit t von
22. Datenbanken Operationen die alle insgesamt abgeschlossen sein m ssen Zu jeder Transaktion wird ein Protokolleintrag Anfangszeitpunkt der Transaktion Transaktionsnummer Transaktionstyp Datenobjekt vor Ver nderung before image Zustand des Datenobjekts nach Ver nderung after image Fehlerstatus Endzeitpunkt der Transaktion erstellt Im Fehlerfall besteht die M glichkeit fehlerfreie von fehlerhaften Transaktionen aus dem Protokoll zu rekonstruieren Fehlerhafte Transaktionen k nnen dann in umgekehrter Reihenfolge zur ckgesetzt werden 1 7 2 Integrit tsregeln Sie gew hrleisten die logische Korrektheit Widerspruchsfreiheit der Datenbank und sorgen damit f r die Einhaltung der Integrit tsbedingungen Sie k nnen in Datenbanksystemen z B in Oracle V 7 als Trigger oder Constraints implemen tiert werden Constraints beschreiben Integrit tsregeln im Rahmen der Datende finitionen bei der Erstellung des Datenbank Schema Trigger sind Programme die komplexe F lle die nicht mit Constraints gel st werden k nnen beschreiben In beiden F llen erfolgt die Ausf hrung einer Integrit tsregel ereignisorientiert d h Das ndern Einf gen oder L schen eines Datenelements f hrt zur Ausf hrung einer Integrit tsregel 155 Datenbanken 156 Datenbanken 2 Relationale Datenbanken 2 1 Entwurf relationaler Datenbanken durch Normalisieren 2 1 1 Normalformen 2 1 1 1 Relationen in der 1 Normalform 1 Erste N
23. H ufig ist die Einteilung komplexer Strukturen E E E E abh ngig von der Abgrenzung der Entit tsmengen z B a Die Beziehung Pers Nr des Ehemanns zur Pers Nr der Ehefrau ist von der Art E E wenn alle Personen einer Menge zusammengefasst werden b Erfolgt die Zusammenfassung getrennt nach M nnern und Frauen so liegt die At E E vor 5 Kardinalit tsverh ltnis Es gibt dar ber Auskunft in welchem Verh ltnis zwei Entit tstypen ber einen be stimmten Beziehungstyp miteinander verbunden sind Man unterscheidet Beziehungen vom Verh ltnis 1 1 Zwischen zwei Entit tstypen Entit tstyp 1 und Entit tstyp 2 kann zu einem Zeit punkt nur eine einzige Entit t aus Entit tstyp 1 mit einer einzigen Entit t aus Enti t tstyp 2 in Verbindung stehen So ist der Beziehungstyp Heirat eine 1 1 Verbindung zwischen zwei Personen Entit ten Beziehungen vom Verh ltnis 1 N Zwischen den beiden Entit tstypen kann zu einem Zeitpunkt nur eine einzige Enti t t aus Entit tstyp 1 mit mehreren Entit ten aus Entit tstyp 2 in Verbindung stehen So ist bspw der Beziehungstyp zwischen Abteilung und Angestellte vom Verh ltnis 1 N Beziehungen vom Verh ltnis M N Zwischen zwei Entit tstypen k nnen zu einem Zeitpunkt mehrere Entit ten aus Entit tstyp 1 mit mehreren Entit tstypen aus Entit tstyp 2 ber den Beziehungstyp in Verbindung stehen So ist bspw der Beziehungstyp zwischen Projekte Teile vom Verh ltnis M N
24. SQL 89 auch ANSI 89 genannt SQL 92 auch SQL2 genannt SQL2 kennt drei Standardisierungsebenen Entry SQL Intermediate SQL und Full Level SQL Der Sprachumfang einer unteren Ebene Level ist immer eine echte Teilmenge der n chsth heren Ebene Entry SQL entspricht den ANSH89 Standard mit minimalen Erweiterungen Intermediate SQL kennt schon eine Vielzahl von Erweiterungen Full Level SQL realisiert den Standard vollst ndig Full Level SQL unterscheidet datendefinierende DDL und datenmanipulierende DML Sprachelemente Die DDL erlaubt neben der Strukturdefinition von Tabellen Festlegung von Integrit tsbedingungen Schl sselkandidaten Prim r Femdschl ssel Spalten und Tabellenbedingungen generelle Versicherungen Assertions etc Die DML enth lt Operationen zur mengenorientierten Abfrage und Manipulationen der Daten SQL 92 bietet mehrere neue JOIN Operatoren an sowie die Mengenoperationen Vereinigung Schnittmenge Differenz 13 SQL wurde im Rahmen eines IBM Forschungsauftrages Mitte der siebziger Jahre entwickelt Seit der Markteinf hrung von SQL im Jahre 1979 haben zahlreiche Unternehmen SQL als Standard Datenbanksprache f r Gro rechner und auch f r Minicomputer bernommen 206 Datenbanken Im wesentlichen umfassen die Erweiterungen zu SQL 89 Datenbankabfragen insbesondere den uJOoIn Befeh und Methoden zur Abbildung von Integrit tsbedingungen Datenbankabfragen Join Befehl SQL 89 war kein expliz
25. ber eine Oracle Installation verf gen mu um online auf eine Datenbank zuzugreifen F r diese spezielle Zugriffsm glichkeit wurde der Oracle JDBC Thin Treiber konzipiert Connection conn DriverManager getConnection jdbc oracle thin scott tiger irgendwo nirwana de 1527 oradb 284 Datenbanken Im Connectstring wird das OCI7 durch thin ersetzt Name und Passwort bleiben gleich die nderung in der Zusammensetzung des Strings ist optional Nach dem wird der komplette Hostname eingetragen Der Port 1527 ist derjenige auf dem die Datenbank mit dem Identifizierer oradb ber ihre Listener auf Anfragen wartet Das verwendete Protokoll ist selbstverst ndlich TCP IP Auch f r diesen String gibt es eine zweite M glichkeit Connection conn DriverManager getConnection jdAbc oracle thin description address host myhost protocol tcp port 1521 connect_data sid orcl scott tiger Der Connecitstring im Falle eines JDBC Aufrufs nennt sich JDBC URL Die Methode getConnection geh rt zur Klasse DriverManager Der Treibermanager berpr ft welcher der geladenen Treiber den angegebenen JDBC URL ffnen kann und ruft die entsprechende Methode dieses Treibers auf 2 Als Ergebnis liefert die Methode ein Objet vom Typ Connection Dieses Connection Objekt ist f r alle weiteren Datenbankoperationen notwendig Senden von SQL Anweisungen an die Datenbank Der Client sendet seine SQL An
26. bertragungsmedium Abb 1 5 4 OSI Referenzmodell und ONC Netzwerkprotokolle in einem UNIX Betriebssystem Ethernet beschreibt die Leistungen des LAN Local Area Network auf Bit bertragungs und Datensicherungsschicht Die Hauptaufgabe der Vermittlungsschicht Network Layer ist die Verkehrsienkung des Netzwerks Nachrichten sollen ber das Internet Protokoll IP auf optimalem Weg ihr Zielsystem erreichen Der Adressierungsmechanismus dieser Ebene basiert auf der Internet Adresse Die Transportschicht bernimmt den Transport von Nachrichten zwischen den Kommunikationspartnern steuert den Datenflu und definiert die Transportqualit t gerichtet ungerichtet der Daten bertragung Das TCP Transmission Control Protocol beinhaltet verbindungsorientierte Dienste Jede Ankunft eines TCP Protokolls mu beantwortet werden Die Kommunikationssteuerschicht Session Layer steuert den Austausch von Nachrichten auf der Transportverbindung Durch die Darstellungsschicht Presentation Layer wird die sog Transfermatrix Codierung f r die zu bertragenden Daten festgelegt Die Anwendungsschicht stellt die Schnittstelle zum Anwendungsproze bereit Protokollbeispiele f r diese Schicht sind Mail FTP Telnet NFS Der langwierige ISO OSHNormungsproze hat dazu gef hrt da sich in weiten Bereichen andere Kommunikationsprotokolle durchgesetzen konnten z B 123 Datenbanken IPX SPX IPX l uft auf der OSI Schicht 3 Vermittlung
27. da mehrere Aktionen erfolgreich abgeschlossen sein m ssen bevor die nderungen wirksam werden k nnen d h entweder alle SQL Anweisungen m ssen erfolgreich aus gef hrt werden oder aber keine Die Anwendung mu um in den Transaktionsbetrieb zu schalten die AutoCommit Funktion abschalten die beim Verbindungsaufbau standardm ig aktiviert wird Da es sich um eine Eigenschaft der Verbindung zur Datenbank handelt wird hierf r eine Methode der Klasse Connection verwendet Connection setAutoComnmit false Um nun zu einem definierten Zeitpunkt die nderungen wirksam werden zu lassen oder sie g nzlich zu verwerfen kann auf der Datenbank mit Connection commit jegliche nderung best tigt werden oder mit Connection rollback der Urzustand des Datenbestandes wieder hergestellt werden Ob nun AutoCommit ein oder ausgeschaltet ist l t sich ber Connection getAutoCommit feststellen Die sogenannte Transaktions Isolation regelt wie Transaktionen voneinander amp bge schottet sind JDBC definiert f nf Abstufungen die sich ber Connection setTransactionIsolation einstellen lassen Die aktuelle Einstellung verr t ein Aufruf von Connection getTransactionlIsolation Die einzelnen Stufen der Isolation sind als Konstanten in der Connection Klasse definiert 54 Rainer Klute JDBC in der Praxis Addison Wesley S 134 286 Datenbanken TRANSACTION_NONE Keine Unterst tzung von Transaktionen TR
28. jna PE PR PE PR ZEIT 11 A 101 11 60 12 B 101 12 40 13 102 13 100 10311 20 103 12 50 1 03 13 30 104 11 80 104 13 20 PERSON PE NAME WOHNORT A 101 Hans Regensburg 1 102 Rolf N rnberg 2 103 Udo M nchen 2 104 Paul Regensburg 1 ABTEILUNG A A NAME 1 Physik 2 Chemie 169 Datenbanken 2 1 3 2 Der Syntheseprozess Hier wird versucht realit tskonforme Feststellungen mit Hilfe von Elementar relationen festzuhalten Diese Elementarrelationen werden dann zur effizienten Verarbeitung systematisch zusammengefa t Das Resultat der Kombinationen darf aber kein Normalisierungskriterium verletzen 1 Problemstellung Gesucht ist ein Modell das die Entit tstypen PERSON Mitarbeiter MASCHINE PRODUKT ber cksichtigt Eine Analyse ergab folgende Fakten 1 Fakt Ein Mitarbeiter bedient mehrer aschinen und produziert dabei 2 Fakt mehrere Produkte Eine Maschine wird immer nur von einer 3 Fakt Person bedient kann aber durchaus 4 Fakt mehrere Produkte produzieren Die Herstellung eines Produkts erfordert immer nur 54 Pakt eine Maschine sowie 6 Fakt eine Person 2 Elementarrelationen zur Darstellung der im Problem angef hrten Feststellungen PERSON ist Entit tstyp PERSON PE MASCHINE ist Entit tstyp MASCHINE M PRODUKT ist Entit tstyp PRODUKT PR 1 und 3 Feststellung M PE M PE 2 und 6 Feststellung PE PR PR PE
29. nicht ohne weiteres feststellbar da es sich bei X und Y um Variablen handelt die beliebig mit Werten belegt werden k nnen Erst nach der Belegung der Variablen hat man es wieder mit einem aussagen logischen Ausdruck zu tun Mit Hilfe der Quantoren k nnen allgemeine Aussagen formuliert werden juergen lehrte josel alles Die bersetzung in die Pr dikatenlogik lautet F r alle X gilt lehrte juergen josef X d h F r alle X gilt da juergen es josef lehrte Die Variable X umfa t den Bereich geeigneter Objekte Sie wird hier durch den Allquantor symbolische Darstellung gebunden Eine andere Quantifizierung ist juergen lehrte josef etwas 6 mit Zeichenkettenliteralen die in Anf hrungszeichen gesetzt werden 7 Konstante werden generell in der Pr dikatenlogik mit kleinem Anfangsbuchstaben angegeben 8 Variablen definieren einen Gro buchstaben 183 Datenbanken Die bersetzung in die Pr dikatenlogik lautet Es gibt ein X lehrte juergen josef X Die Aussage wird vom Existenzquantor symbolische Darstellung angef hrt und besagt da mindestens ein g ltiger Wert existiert den juergen josef lehrte Terme 1 Jede Individuenvariable ist ein Term 2 Jede Individuenkonstante ist ein Term 3 f t f ist ein Term falls f ein n stelliges Funktionssymbol ist und t4 tn Terme sind 4 Nur so gebildete Zeichenketten sind Terme Primformeln Piel ist eine Primformel falls p
30. Bsp Funktionale Abh ngigkeiten in der Relation Student_E funktional abh ngig STUDENTL_E S SPRACHE KRITERIUM NAME ALTER nicht funktional abh ngig funktional abh ngig Abb 2 1 1 Funktionale Abh ngigkeiten in der Relation STUDENT_E Nur die Spalte KRITERIUM ist nicht funktional abh ngig vom Schl sselteil S Alle brigen Nichtschl sselspalten sind vom Schl sselteil S funktional abh ngig Normalisierungskriterium 2 Normalform In einer Relation sollte jede Nichtschl sselspalte abh ngig sein vom Gesamtschl s sel und nicht von Schl sselteilen berf hrung von der 1 in die 2 Normalform Normalisierungskriterien verletzende Nichtschl sselspalten werden aus der problembehafteten Relation eliminiert und zu neuen problemlosen Relationen vereinigt Bsp STUDENT_E wird ersetzt durch STUDENT S NAME ALTER S1 Karl 20 S2 Vera 35 S3 Vera 26 SPRACHK S SPRACHE KRITERIUM SL SEC gut Sl Prolog mittel S2 gut S2 Pascal schlecht S3 gut S3 Pascal mittel 160 Datenbanken 2 1 1 3 Die dritte Normalform DNF Transitive Abh ngigkeiten Bsp STUDENT_X S NAME GEB ADR FB FBNAME DEKAN S1 Karl 01 10 48 xxx 20 Informatik Hechler S2 Vera 21 08 49 xxx 20 Informatik Hechler S3 Vera 13 05 48 xxx 19 Elektrotechnik Jung SA Maria 04 12 47 xxx 20 Informatik Hechler S5 Tom 11 01 47 xxx 20 Informatik Hechler S6 Fritz 01 03 49 xxx 1
31. Das Phantomproblem verhindert der Isolation Level SERIALIZABLE 212 Datenbanken Ausgew hlte Befehle aus dem Full Level SQL Datendefinitionen DDL Schema und Tabellendefinition Ausgangspunkt ist das Schema das Datenbeschreibungen zu Domains Tabellen Views Integrit tsbedingungen und Zugrifsrechten umfa t CREATE SCHEMA schema schema element list Schema Element domain definition base table definition view definition authorization definition general constraint definition Domain Defintion CREATE DOMAIN domain AS data type DEFAUL literal NULL CONSTRAINT constraint CHECK conditional expression INITIALLY DEFERRED IMMEDIATE NOT DEFERABLE Base Table Definition CREATE TEMPORARY TABLE basetable column definition list base table constraint definition list on Commit DELETE PRESERVE ROWS Mit der ON COMMIT Klausel wird festgelegt ob bei jedem COMMIT alle Datens tze der Tabelle gel scht werden oder erhalten bleiben Tempor re Tabellen eignen sich ideal zum Speichern von Zwischenergebnissen CREATE VIEW column commalist AS table expression WITH CASCADED LOCAL CHECK OPTION 8 Authorization Definition GRANT privilege commalist ALL PRIVILEGES ON DOMAIN domain TABLE table TO user user
32. Datenbanken 1 5 Klassifikation der DB Anwendungen 1 5 1 Elementare Anwendungsformen 1 5 2 Transaktionsbetrieb 1 5 2 1 Das Zwei Phasen Commit Protokoll 1 5 2 2 TP Monitore 1 5 3 Client Server Systeme 1 5 3 1 Fernzugriff in Netzen aus autonomen Rechnern 1 5 3 2 Client Server Architekturen 1 5 3 2 1 Architekturformen 1 5 3 2 2 2 Tier und 3 Tier Client Server Architekturen 1 5 3 3 Client Server und Internet Intranet 1 6 Verteilte Systeme 1 6 1 Verteilte Datenbanken 1 6 2 Datenbankmaschinen und Datenbankrechner 1 7 Integrit t 1 7 1 Integrit tsbedingungen 1 7 2 __ Integrit tsregeln 2 Relationale Datenbanken 2 1 Entwurf relationaler Datenbanken durch Normalisieren 2 1 1 Normalformen 2 1 1 1 Relationen in der ersten Normalform 2 1 1 2 Die zweite Normalform 2 1 1 3 Die dritte Normalform 2 1 2 Spezielle Normalformen 2 1 3 Der Normalisierungsproze 2 1 3 1 Normalsierungsproze als Zerlegungsproze 2 1 3 2 Normalisierungsproze als Syntheseproze 2 2 Mathematische Grundlagen f r Sprachen in relationalen Datenbanken 2 2 1 Relationenalgebra 2 2 1 1 Die Basis Mengenalgebra 2 2 1 2 Operationen der relationalen Algebra 1 Projektion 2 Selektion 3 Verbund 4 Division 5 Nichtalgebraische Operationen 2 2 1 3 22 2 22 2 1 2222 2 2 2 3 2 2 2 4 2 2 3 2 3 2 3 1 232 2 3 2 1 2 3 2 2 2323 2 3 2 4 2 325 2 3 2 6 2 3 3 2 3 4 2 3 4 1 2 3 4 2 2 3 5 3 2 3 5 3 1 3 1 1 3 1 2 3 1
33. Ernst Grundlagen bungen AE Anwendungsentwicklung Alex Einf hrung bungen Abb 2 1 4 Beispiel einer nicht normalisierten Relation In dieser Tabelle werden folgende Fakten ausgedr ckt Eine bestimmte Vorlesung kann von beliebig vielen Dozenten gehalten werden und kann beliebig viele Merkmale zeigen Zwischen Dozenten und Merkmalen eines Kurses Vorlesung bestehen keinerlei Abh ngigkeiten Dozenten und Merkmale k nnen mit jedem beliebigen Kurs in Verbindung stehen Es handelt sich um eine Dreifachbeziehung die normalisiert folgende Form aufweist VORLESUNG_DOZENT_NORMALISIERT VORLESUNG DOZENT_NAME MERKMAL DB Grundlagen DB bungen DB Grundlagen DB bungen AE Einf hrung AE bungen Abb 2 1 5 Normalisierte Relation mit redundanten Daten Die vorliegende normalisierte Relation enth lt redundante Daten die zu Anomalien f hren k nnen Soll z B ein neuer Dozent Datenbanken DB mit den bekannten Merkmalen lehren dann sind zwei Tabellenzeilen in die Relation aufzunehmen Die vorliegende normalisierte Relation ist aber sogar in BCNF denn alle Attributwerte sind Prim rschl ssel Es gibt au er der Kombination der Attribute VORLESUNG DOZENT NAME MERKMAL kein weiteres funktional determinie rendes Attribut Spaltet man die vorliegende Tabelle in zwei Relationen auf Projektionen der urspr nglichen Relation so ergibt sich die L sung des Problems 164 Datenbanken VORLESUNG_DOZENT_VNF VORLE
34. Functions und Packages PL SQL Module lassen sich in kompilierter Form unter einem bestimmten Namen als Objekt in der Datenbank abspeichern Stored Procedures sind Prozeduren die der Entwickler mit Ein oder Ausgabeparametern versehen kann Eine derartige Prozedur kann ber ihren Namen aufgerufen werden Functions unterscheiden sich von Procedures nur dadurch da sie einen R ckgabewert an die rufende Programmeinheit liefern Packages fassen eine logisch zusammenh ngende Sammlung von Prozeduren und Funktionen zusammen und legen sie in der Datenbank ab 1 PL SQL a Aufbau eines PU SQL Programms PL SQL ist eine blockorientierte Sprache Ein PL SQL Programm besteht aus Prozeduren Funktionen oder anonymen Bl cken und ist generell so aufgebaut Abschnitt mit Deklarationen Ausf hrbarer Abschnitt Abschnitt mit Exceptions Datenbanken Definitionskopf Deklarationsteil BEGIN EXCEPTION Ausnahmebehandlung END END Abb Struktur auf oberster Ebene eines PL SQL Blocks Auf oberster Ebene der Struktur eines PL SQL Blocks k nnen sich ein optionaler Abschnitt mit Deklarationen ein ausf hrbarer Abschnitt und ein optionalen Abschnitt f r die Behandlung von Exceptions und Fehlern von PL SQL bzw SQL befinden Der Definitionskopf bestimmt welche Aufgaben das PL SQL Programm erf llen soll Es kann sich bspw um einen Datenbank Trigger ein Paket eine Prozedur oder eine Funktion h
35. Vererbung zur Geltung bringen berladen wird durch die gleiche Namensvergabe f r verschiedene Operatoren erzwungen berschreiben ist eine Methode die sowohl in der bergeordneten Klasse als auch in der untergeordneten Klasse definiert ist F r die Instanzen der untergeordneten Klasse ist die Methode der untergeordneten Klasse ma gebend Sp tes Binden bedeutet Das Binden eines Operatornamens an den zugeh rigen ausf hrbaren Programmcode erfolgt dynamisch erst zur Laufzeit Standard f r objektorientierte Datenbanken ODMG 93 Die Mitgliederfirimen der ODMG Object Database Management Group 36 haben einen Standard f r objektorientierte Datenbanksysteme ODBS 3 definiert mit Standardisierungsvorschl gen f r die Bereiche Objektmodell Objekt Definitionssprache ODL Objekt Abfragesprache OQL C und Smalltalk Anbindung f r ODL und OQL sowie OML Object Manipulation Language Anbindung f r Programmiersprachen Eine ODMG ODBS sieht daf r folgende M glichkeiten vor Definition von Datenbankschemata Einf llen von Daten Zugriff und Manipulation von Daten Verwendung der OQL Das Typ System der Programmiersprache und das Datenbankmodell des Datenbanksystems sollen m glichst integriert werden k nnen So soll das DBS mit dem erweiterten Typ System der jeweiligen Programmiersprache definiert werden k nnen 36 eine Gruppe f hrender Hersteller objektorientierter Datenbanksysteme 37 Sp
36. der Standard von 1986 bereits zweimal aktualisiert 1989 1992 Die aktuelle Fassung SQL 92 aus taktischen Gr nden SQL2 genannt umfa t bereits eine 600 Seiten umfassende Beschreibung 1 Die select Anweisung Die zentrale Idee Die zentrale Idee die SQL zugrundeliegt und in der select Anweisung verwirklicht wurde ist eine Abbildung bestimmter Tabellenspalten Die Tabellen bilden den Definitionsbereich ber eine Auswahlkriterium wird aus dem Definitionsbereich ein Abbildungsbereich bestimmt select lt spalten gt 1 Klausel from lt tabellen gt 2 Klausel where lt bedingung gt 3 Klausel Der 1 Klausel legt fest welche Spalten Attribute im Ergebnis Abbildungsbereich ber cksichtigt werden sollen Die 2 Klausel bezeichnet die Tabellen und Views Sichten aus denen Zeilen und Spalten abgefragt werden sollen Die 3 Klausel ist optional und bestimmt da nur diejenigen Zeilen im Ergebnis angezeigt werden sollen die einer bestimmten Bedingung gen gen Der formale Aufbau des select Befehls ist an bestimmte Regeln gebunden die die folgenden Syntax Diagramme s f r den Standard von 1989 beschreiben 44 vgl Sandberg G A primer of relational data base concepts IBM Systems Journal Heft 1 S 23 61 1980 45 vgl Zloof M M Query by Example a database language IBM Systems Journal Heft 4 S 324 342 1977 46 Alle Bezeichnungen in nicht fettgedruckten Kleinbuchs
37. die einer bestimmten Bedingung gen gen F gt eine andere Transaktion einen Datensatz ein der ebenfalls diese Bedingung erf llt dann f hrt die Wiederholung der Abfrage innerhalb einer Tarnsaktion zu unterschiedlichen Ergebnissen Bei jeder Wiederholung einer Abfrage innerhalb einer Transaktion enth lt das zweite Abfragergebnis mehr Datens tze als das erste wenn in der Zwischenzeit neue Datens tze eingef gt wurden SQL 92 definiert vier Isolation Level Read Uncommitted Read Comitted Repeatable Read Serializable die nur bestimmte der angegebenen Effekte zulassen bzw ausschlie en Lost Update Dirty Read Non Repeatable Phantom Isolation Level Read 0 Read Uncommitted nicht erlaubt 1 Read Committed nicht erlaubt nicht erlaubt 2 Repeatable Read nicht erlaubt nicht erlaubt nicht erlaubt 3 Serializable nicht erlaubt nicht erlaubt nicht erlaubt Abb 2 3 1 Dirty Read l t im Isolation Level zu Die eigene Transaktion darf Daten lesen die andere Transaktionen ge ndert haben obwohl die anderen Transaktionen nicht mit COMMIT beendet wurden Im Fall Read Committed ist das ausgeschlossen Hier kann aber beim Non Repeatable Read vorkommen Die Datens tze die die eine Transaktion liest werden vor Ende deser Transaktion durch andere Transaktionen ver ndert Dadurch kann wiederholtes Lesen desselben Datensatzes innerhalb einer Transaktion unterschiedliche Ergebnisse liefern Repeatable Read verhindert diesen Effekt
38. eines Statement und von Umgebungs Handles Vorbereiten und Ausf hren von SQL Statements Einholen von Ergebnisdaten und Informationen F higkeiten zur Ausf hrung von Transaktionen und zum Aufrollen von Transaktionen von Anfang an ist eine Core API plus der F higkeit Einholen und Versenden partieller Datens tze Holen von Katalog Informationen Verschaffen von Informationen ber Treiber und Datenbankf higkeiten Stufe 2 umfa t Core API plus Stufe 1 plus der F higkeit Verarbeiten von Arrays als Parameter Verarbeiten scrollbarer Cursors Aufrufe der bersetzungs DLL SQL Minimale Erzeugen von Table und drop Table Funktionen in der Grammatik Grammatik DLL die Funktion Auswahl Einf gen Aktualisieren konformit tsstufe L schen in der DML einfache Ausdr cke Core Grammar Minimale Grammatik plus ALTER TABLE Erzeugen und Aufheben eines Index bzw eines View f r DDL volle SELECT F higkeiten f r DML Extended F gt Funktionalit ten wie Outer Join positioned update Grammar delete weitere Ausdr cke weitere Datentypen Prozeduraufrufe usw hinzu Abb API und SQL Konformit ts Level ODBC Funktionen und Befehlssatz Alle ODBC Funktionen haben das Pr fix SQL und k nnen einen oder mehrere Parameter vom Typ Input f r den Treiber oder Output von dem Treiber umfassen Bestimmen der Umgebungs und Verbindungs Handles Verbinden mit der Datenbank Ausf hren der SQL Anweisungen Sc
39. in der Datenbank gespeichert ist sondern aus den gespeicherte Tabellen abgeleitet wird Nachdem ein View definiert wurde kann er in gleicher Weise benutzt werden wie jede andere Relation 37 Datenbanken Die Suche in einer relationalen Datenbank erfolgt durch Angabe von bestimmten Attributwerten eingebettet in Abfragesprachen Da das Durchsuchen aller Daten s tze viel zu lang dauern w rde mu die f r das Suchen wichtige Information ber einen Index herausgezogen werden Im Index steht neben der Suchinformation dann ein Verweis auf den vollst ndigen Datensatz Selbstverst ndlich ist der Index so einzurichten da die Suchzeit m glichst kurz ist Au erdem belegt der Index zus tzlichen Speicherplatz Man kann nat rlich auch mehrere Indexe f r verschiedene Suchkriterien einrichten Die Architektur einer relationalen Datenbank ist somit intern wesentlich durch die Organisation der Daten und Indexdatei en bestimmt Durch Integration der logischen Programmierung Prolog mit relationalen Datenbanken entstehen deduktive Datenbanken Sie erg nzen die Fakten der relationalen Datenbank Tupel mit Regeln Relationale Datenbanken werden dadurch zu Wissensbasen Die zur Manipulation logischer Datenbanken entwickelten Datenbanksprachen z B Datalog st tzen sich auf die Pr dikatenlogik 38 Datenbanken 1 3 3 Das Entity Relationship Modell Grundlagen Das Entity Relationship Modell 15 von Chen ist ein Versuch Beziehungen
40. junktionen von sog Programm Klauseln universelle definierte Horn Formeln definite clauses Programm Klauseln sind Implikationen von nichtnegierten Konditionen Bedingungen und einer nichtnegierten Konklusion Eine Horn Klausel ist eine spezielle Klausel b apena b4 ist die Konklusion der Horn KLausel Enh lt die Horn KLausel Variablen X4 Xk so ist das so zu interpretieren 187 Datenbanken F r alle X4 Xk gilt b a a Vier F lle sind zu unterscheiden m 1 n 0 b Die ist eine einfache atomare Formel die von keiner Bedingung abh ngig ist In Prolog schreibt man bspw teil el einzelteil_l struktur pl bl 2 Jede Klausel wird in Prolog durch einen Punkt abgeschlossen Klauseln die durch Fall 1 beschrieben werden sind Fakten m 1 n lt gt 0 b a a Dies ist der bliche DANN WENN Fall In Prolog schreibt man anstelle von das Symbol anstelle von 7 ein Komma In dieser Form beschreibt Prolog Regeln Das folgende Pr dikat definiert eine derartige Regel grossvater Y X vater Y Z vater Z X Das bedeutet X ist der Gro vater von Y wenn Z der Vater von Y und X Vater von Z ist Das Pr dikat grossvater Y X ist nur beweisbar wenn die beiden Fakten vater Y Z undvater Z X vorliegen Regeln haben in Prolog folgendes allgemeines Format schlussfolgerung bedingung_l bedingung_2 Eine Regel besteht formal aus dem Regelkopf un
41. nderungen sind bis zu dieser definierten Stelle r ckg ngig zu machen SQL erkennt den Beginn einer Transaktion durch eine Datenmanipulation mit UPDATE DELETE INSERT Zur Beendigung einer Transaktion gibt es die Befehle COMMIT und ROLLBACK COMMIT Mit diesem Befehl gibt der Anwender dem Datenbanksystem bekannt Alle Operationen der Transaktion wurden richtig ausgef hrt die damit verbundenen Anderungen k nnen auf der Datenbank dauerhaft gespeichert werden Im interaktiven Modus unter 260 Datenbanken SQL PLUS f hrt ORACLE nach UPDATE INSERT oder DELETE automatisch COMMIT durch Ein au erplanm iges Ende einer Applikation z B Division durch 0 f hrt zum Ende der Transaktion das automatisch mit ROLLBACK nachvollzogen wird Weitere Endekriterien f r eine Transaktion sind der Aufruf von DDL Kommandos Deadlocks f hren auf ein automatisches COMMIT Beim normalen Ende der Arbeit mit SQL PLUS SQL Forms oder einem dar anderen Tools wird der Benuzer aufgefordert sich f r COMMIT oder ROLLBACK zu entscheiden COMMIT und ROLLBACK bezeichnen jeweils das Ende einer Transaktion und den Beginn der n chsten Hinweise Mit dem SQL PLUS Befehl SET AUTOCOMMIT ON kann man vereinbaren da jede nderung automatisch eingetragen wird d h Nicht mehr zur ckgenommen werden kann Diese Vereinbarung wird mit SET AUTOCOMMIT OFF wieder aufgehoben ORACLE verf gt ber die Befehle AUDIT und NOAUDIT Sie bestimmen welche Tabe
42. ngig machen k nnen u s w Der Server muss garantieren dass die gleichen Anfragen nur einmal abgearbeitet werden Dies ist insbesondere bei mehreren Servern wichtig wenn die Anfrage vielleicht an den zweiten Server abgesetzt wird wenn der erste nicht reagiert Um mit RPC eine sichere und atomare Ausf hrung von Funktionen auch unter der Ber cksichtigung aller m glichen Fehler zu gew hrleisten ist ein erheblicher Entwurfs und Implementierungsaufwand erforderlich 3 Message Oriented Middleware MOM Mit Hilfe von MOM Nachrichten und Warteschlangen k nnen Clients und Server ber ein Netzwerk kommunizieren ohne dass sie ber eine spezielle Verbindung fest miteinander verbunden sind also asynchron Clients und Server k nnen so zu unterschiedlichen Zeiten laufen Man kommuniziert einfach indem man Nachrichten in eine Warteschlange stellt bzw Nachrichten aus der Warteschlange entnimmt 1 y LLI O 126 Datenbanken Dieses Prinzip l st alle Probleme die beim RPC oder bei der peer to peer Verbindung aufgetreten sind Der Client kann immer noch eine Anfrage senden auch wenn der Server besch ftigt runtergefahren oder gar nicht angeschlossen ist Es muss nur die Warteschlange verf gbar sein in die der Client seine Anfrage ablegen kann Ist der Server wieder verf gbar kann dieser dann die Nachrichten aus der Schlange abholen und bearbeiten Umgekehrt kann auch der Server eine Antwort senden wenn der Client ru
43. sseleindeutigkeit bedeutet Kein neues Tupel kann eingetragen werden falls Schl sselwerte mit Werten des bestehenden Tupels in dieser Realtion bereinstimmen Entit tsintegrit t Sie verbietet Null Werte im Feld des Prim rschl ssels und garantiert da S tze erst dann in die Datenbank aufgenommen werden wenn das wichtigste Attribut der Satzschl ssel vorhanden ist Beziehungsintegrit t referentielle Integrit t Sie sorgt in relationalen Datenbanken daf r da jedem Wert eines Fremdschl ssels ein entsprechender Prim rschl ssel des gleichen Bereichs zur Verf gung steht Idealerweise speichern Datenbankverwaltungssysteme DBMS die Integrit ts konzepte unterst tzen Integrit tsbedingungen z B zul ssige Wertebereiche f r Daten im Data Dictionary Pragmatische Integrit tsbedingungen Dazu z hlen gesetzliche und organisatorische Vorschriften Ablaufintegrit t Hierunter versteht man die Datenkonsistenz bei der Verwaltung des Mehrbenutzer betriebes Die Ablaufintegrit t kann beeintr chtigt werden wenn mehrere Benutzer zugleich auf eine Datenbank zugreifen Falls eine Verletzung der Integrit t festgestellt wurde so mu sie wiederhergestellt werden Dies geschieht durch einen Wiederherstellungsproze der von der Art des Fehlers abh ngig ist So verf gt das Datenbankverwaltungssystem in der Regel ber eine transaktions orientierte Fehlerbehebung Eine Transaktion ist bekanntlich eine Folge von 154
44. und regelt den Transport von Daten zwischen den einzelnen Netzknoten sowie den Austausch von Statusinformationen SPX ist auf der Schicht 4 Transportschicht angesiedelt und besorgt Auf und Abbau von Verbindungen zwischen Client PCs und Server Anwendungen 3 SNA70 TCP IP7 Im Gegensatz zum OSl Referenzmodell und auch zu SNA weist diese Kommunikationsschnittstelle nur 4 Schichten auf Netzwerk Internet Transport und Anwendung TCP IP l t sich auf verschiedenen Tr germedien serielle Leitungen X 25 Ethernet usw einsetzen und ist vor allem im UNIX Bereich weit verbreitet Die Familie der TCP IP Protokolle hat sich bei Weitverkehrsnetzen WAN als Quasi Standard durchgesetzt Weltweit sind ungef hr zwei Millionen Rechner ber das Internet 2 verbunden Die Unterst tzung der verschiedenen Netzwerkmodelle z B TCP IP und Betriebssysteme z B Windows Unix erfolgt durch die einzelnen Software Hersteller der DBS Oracle Sybase Informix bzw durch die Werkzeug Hersteller z B Oracle Microsoft die Komponenten z B ODBC Treiber f r besondere Plattformen und DBS liefern Network Operating System Das Network Operating System NOS hat die schwierige Aufgabe den Service der im Netz erh ltlich ist als ein System darzustellen single system image Es setzt also die verteilten Teile des Netzwerkes zusammen und stellt sie als ein System dar macht es also transparent NOS verwalten bspw Datei und Druckerressourcen und
45. view wird mit Hilfe der Datenmanipulationssprache DML aus der Basis deren Struktur durch eine Datendefinitionssprache ODL festgelegt wurde bestimmt Auf der anderen Seite sollte eine Reihe von Abbildungen das Interne Schema zur Beschreibung physischer Strukturen erzeugen Sie enthalten mit ihren Katalogen die Details zu Zugriffspfaden und zur physischen Speicherung Eine Speicherstrukturierungssprache SSL unterst tzt die verschiedenen Alternativen zur physischen Speicherung Ein hohes Ma an Datenunabh ngigkeit und neutralit t ist mit hierarchischen und auch mit netzwerkorientierten Datenbanken nicht zu erreichen Datenbanken Bsp Gegeben ist RECHNUNG RECH NR 2010 DATUM 31 12 1995 KUNDEN NR 50118 NAME ADRESSE anne ARTIKEL NR BEZEICHNUNG PREIS MENGE BETRAG A Widerstand 5 00 2000 10 000 00 B 3 000 00 18 000 00 Abb 1 3 36 Ein Rechnungsformular Das zugeh rige Datenbankstrukturdiagramm einer netzwerkorientierten Datenbank das die Daten des vorliegenden Rechunungsformulars benutzt sieht so aus RECH KOPF RECH NR ADRESSE SUMME RECH RUMPF ARTIKEL NR BETRAG Abb 1 3 37 Datenbankstrukturdiagramm zum Rechnungsformular Besitzt dieser Entwurf f r eine netzwerkorientierte Datenbank die Eigenschaften Datenunabh ngigkeit und Datenneutralit t Datenunabh ngigeit Ein Zugriffspfad wesentlich bestimmt durch die Zeilenposition ist zur Daten wiedergewinnung une
46. 3 3 2 Datenbanken Die Operationen der realtionalen Algebra in Standard SQL SQL 89 Relationenkalk l Grundlage Das Aussagenlogik Pr dikatenlogik Logische Systeme Prolog Relationenkalk l und Pr dikatenlogik Datenbankmanipulationssprachen mit Bezugspunkten auf Relationenalgebra Relationenkalk l SQL SQL 92 Oracle SQL Das Datenbanksystem Oracle Aufbau der Datenbank Kommunikation zwischen Benutzer und System SQL Anweisungen von Oracle Datenbankprogrammierung 1 PL SQL 2 Constraints 3 Trigger 4 Procedures Functions Packages Grundlagen der Oracle Datenbankverwaltung Rekursive und iterative Abfragen mit SQL Einbindung von SQL in prozedurale Sprachen Embedded SQL 1 Embedded SQL in Oracle mit dem Precompiler Pro C 2 Embedded SQL mit Java SQLJ Dynamisches SQL Call Schnittstelle CLD 1 ODBC 2 JDBC 3 Oracle Call Interface OCI SQL 3 Objektorientierte Datenbanken Die objekt relationale Architektur von Oracle8 Datenbanken Datenbanken Empfohlene Literatur Date C J An Intoduction to Database Systems Volume I Fifth Edition Addison Wesley Reading Massachusetts 1990 Date C J An Introduction to Database Systems Volume NH Addison Wesley Reading Massachussets 1985 Gardarin G Valduriez P Relational Databases and Knowledge Bases Addison Wesley Reading Massachusetts 1989 Heuer A Objektorientierte Datenbanken Addison Wesley Bonn 1992 Ullman J D Da
47. Attribut mit dem Prim rschl ssel gemeinsam Falls Relationen mehrere zusammengesetzte und sich berlappende Schl sselkan didaten aufweisen wird die Boyce Codd Normalform zur Normalisierung herangezogen Boyce Codd Normalform BCNF Eine Relation ist dann in BCNF falls jedes funktional determinierendes Attribut zugleich Schl sselkandidat ist Ein funktional determinierendes Attribut z B A bzw eine determinierende Attributkombination liegt dann vor wenn jeder Attributwert des determinierenden Attributs bzw der determinierenden Attributkombination genau einen Attributwert eines anderen Attributs z B A bzw einer anderen Attributkombination festlegt Man spricht in diesem Zusammenhang auch von Determinanten Eine Determinante ist demnach ein Attribut oder eine Gruppe von Attributen Schl sselkandidat von der beliebig andere Attribute funktional abh ngig sind Bsp Gegeben sind folgende Fakten 1 Ein Student belegt eine bestimmte Vorlesung bei einem Dozenten 2 Ein Dozent h lt Vorlesungen nur zu einem Thema d h lehrt nur ein Fach 3 Ein Vorlesungsthema kann von mehreren Dozenten unterrichtet werden 162 Datenbanken L sungsversuche 1 BELEGUNG DOZENT STUDENT VORLESUNG Das Schema dieser Relation zeigt eine teilweise Abh ngigkeit DOZENT VORLESUNG und ist nicht einmal in 2 Normalform 2 BELEGUNG STUDENT VORLESUNG DOZENT Die Relation ist in DNF nicht aber in BCNF da die Abh ngigkeit DO
48. Be ziehungen ist durch das Verh ltnis zwischen 2 Entit ten bestimmt Eine 1 n Beziehung zwischen z B einem Kunden und einer Rechnung sagt aber nichts dar ber aus ob jedem Kunden wenigstens eine Rechnung zugeordnet sein mu oder nicht Auch ist nicht ersichtlich ob sich die Rechnung genau auf einen Kunden bezieht oder ob Rechnungen ohne Kunden zul ssig sind Bei drei und mehrstelligen Beziehungen ist die 1 m n Schreibweise berhaupt nicht sinnvoll interpretierbar Wird f r jeden Entit tstyp durch einen Komplexit tsgrad comp E b angegeben mit 46 Datenbanken wievielen Beziehungen des Typs b eine Entit t minimal in Beziehung stehen mu bzw maximal in Beziehung stehen kann dann liegt die min max Schreibweise vor Es gilt 0 lt min lt 1 lt max lt 24 Eine Beziehung b A B wird durch 2 Komplexit tsgrade comp A b und comp B b beschrieben z B a a Der als Zahlenpaar angegebene Komplexit tsgrad bedeutet Die erste Zahl vor dem Komma gibt die Mindestzahl an Die zweite Zahl nach dem Komma gibt die H chstzahl an bedeutet viele Eine Beschreibung des Beziehungstyps b A B kann durch die Komplexit tsgrade comb A b bzw comp B b allgemein so erfolgen b A B comp A b comp B b 0 1 oder 1 1 0 1 oder 1 1 0 oder 1 0 1 oder 1 1 0 1 oder 1 1 0 oder 1 0 oder 1 0 oder 1 Abb 1 3 14 Komplexit tsgrade im ERM Bsp Ein typische
49. Client Frontend und einen von allen Benutzern gemeinsam beanspruchten Teil Server Backend aufgeteilt ist Voraussetzung der verteilten Datenverarbeitung sind einheitliche Kommunikationsschnittstelen ein Kommunikationssystem zur Unterst tzung der Interproze kommunikation Dienste f r die Nutzung der Ressourcen etc Die Kommunikation zwischen Rechnern erfordert Kenntnis und Einhaltung bestimmter Regeln Kommunikationsprotokolle sind Regeln nach denen Kommunikationspartner Verbindungen aufbauen Information austauschen und wieder abbauen Von der International Standardisation Organisation ISO zusammen mit Open System Interconnection OSI wurde ein Architekturmodell entwickelt das heute generell als Ausgangspunkt aller Kommunikationsprotokolle zwischen Rechnern verwendet wird In diesem Modell werden die einzelnen f r die Kommunikation zwischen Rechnern ben tigte Dienste in 7 aufeinanderfolgenden Schichten abgewickelt Jede Schicht erf llt bestimmte Dienstleistungen bzw Aufgaben und stellt das Ergebnis der n chsten Schicht zur Verf gung 122 Datenbanken Application Layer telnet fto NFS NIS Anwendungsschicht mail rsh Presentation Layer Darstellungsschicht TI RPC Transport Layer TCP Transmission Control Transportschicht Protocol Network Layer IP Internet Protokoll Vermittlungsschicht Data Link Layer Ethernet CSMA CD Datensicherungsschicht Physical Layer Ethernet Bit bertragungsschicht Physikalisches
50. Datenbanksystemunabh ngigkeit Es mu m glich sein unterschiedliche Datenbanksysteme auf den enzelnen Rechnern einzusetzen solange sie eine einheitliche Benutzerschnittstelle z B gemeinsame SQL Version anbieten Referenzarchitektur f r verteilte Datenbanken Sie beschreibt ein idealtypisches Modell f r konzeptionelle Schichten in verteilten Datenbanken Globales Schema Es beschreibt Datenobjekte ihre Integrit tsbedingungen und Berechnungs strukturen aus globaler d h nicht verteilter Sicht Fragmentierungsschema Es teilt eine globale Relation Tabelle in ein oder mehrere logische Teile Fragmente und verteilt diese auf geeignete Rechnerknoten Fragmente des Fragmetierungsschemas m ssen bzgl Auf die ihnen zugeordneten globalen Relationen drei Bedingungen erf llen 1 Alle Daten der globalen Relation m ssen in ihren Fragmenten vertreten sein 2 Jede globale Relation mu sich aus ihren Fragmenten vollst ndig rekonstuieren lassen 3 Die Fragmente sollen berschneidungsfrei sein92 Allokierungsschema Es beschreibt auf welchen Datenbankknoten des verteilten Systems ein Fragment physikalisch gespeichert wird 1 1 oder 1 n Verh ltnis Im Falle der 1 1 Verteilung spricht man von einer Dispersion andernfalls von einer Replikation der Daten Die Replikation erlaubt die permanente Abbildung des Fragments Lokales Schema Hier werden die physikalischen Abbilder in die Objekte und das Datenmodell des jeweiligen datenba
51. Grady u a Das UML Benutzerhandbuch Seite 451 86 Datenbanken 1 4 Standards Auf dem DB Markt existieren Systeme verschiedener Hersteller die in ihren Strukturen ihrer Terminologie und vor allem in den Sprachen erhebliche Unterschiede aufweisen Schrittweise wurden zur Behebung dieses Zustandes von verschiedenen Gremien DIN ANSI CODASYL ISO allgemeine DB Standards empfohlen und Normenvorschl ge unterbreitet Die Empfehlungen weisen teilweise bzgl Funktionsumfang und Realisierungsaufwand erhebliche Unterschiede auf sind aber dennoch bedeutende Eckpfeiler der DB Geschichte Von gro er Bedeutung sind auch die durch die Position des Marktf hreres IBM verbreiteten defacto Standards z B IMS DL 1 oder das System R 1 4 1 CODASYL Konzept Die Conference on Data Systems Languages CODASYL ist ein Ausschu von Herstellern und gro en amerikanischen Anwendern der sich um die Normung von Programmiersprachen bem ht Auch im Bereich der Datenbanken wurde die CODASYL Gruppe aktiv Gegen Ende der 60er Jahre wurde die Data Base Task Group DBTG beauftragt einen Standardisierungsvorschlag f r das bereits weit auseinanderlaufende Feld der Datenbankentwicklung auszuarbeiten Die wichtigsten Empfehlungen der Ausarbeitung waren 1 Definition der Syntax einer Datenbank Beschreibungssprache DDL 2 Definition der Syntax einer Datenbank Manipulationssprache DML Dar ber hinaus wurde in einer Feature Analysis ein Modell DB
52. Inder FOREIGN KEY Klausel wird die Referenz auf die Tabelle Abteilung definiert Eine nderung des Prim rschl ssels verletzt in der referenzierenden Tabelle die referentielle Integrit t Mit referentiellen Aktionen referential actions legt man w hrend der Fremdschl sseldefinition fest wie die Datenbank auf das ndern ON UPDATE oder L schen ON DELETE eines Prim rschl ssels reagieren soll CASCADES wird der Prim rschl ssel ge ndert gel scht so werden alle referenzierten Datens tze ebenfalls ge ndert gel scht 210 Datenbanken NO ACTION Der Prim rschl ssel wird ohne weitere Pr fung ge ndert gel scht Sollte dadurch die referentielle Integrit t verletzt werden dann zieht das System die Operation zur ck ndern oder L schen hat nur Erfolg wenn kein Datensatz auf diesen Prim rschl ssel referenziert SET NULL Alle Fremdschl ssel in den referenzierenden Datens tzen erhalten den Wert Null Diese Aktion st nat rlich nur dann m glich falls sie entsprechenden Felder nicht mit dem Column Constraint NOT NULL belegt sind SET DEFAULT Alle Fremdschl ssel werden mit ihrem Defaultwert belegt Ist kein DEFAULT definiert wird der Nullwert zugewiesen Zeitpunkt der Pr fung Es kann ein Zeitpunkt f r Integrit tspr fungen angegeben werden Jede Integrit tsbedingung ist zu jedem Zeitpunkt eine Transaktion in einem der 2 Modi IMMEDIATE oder DEFERRED IMMEDIATE bedeutet Diese Bedingung wird nach je
53. Java Programm einen Datenbank URL an den JDBC Manager weiter Der JDBC Manager ruft dann einen der geladenen JDBC Treiber auf Die URLS von JDBC haben die Form jdbc subprotocol subname subprotocol ist der Name der jeweiligen Datenbank z B jdbc oracle oci7 rfhs8012_ora3 143 Datenbanken i GetConnection E Initialisieren und Allokieren i createStatement g A prepareCall g EO Bearbeiten j executeUpdate von Anwei Callable Prepared sungen ern Statement Statement Al executeQuery 5 Verarbeitung getMoreResults Resultat GetResultSet g E Deallokieren Bereinigen Abb 1 5 20 JDBC Objekte Methoden Ablauf 144 Datenbanken 1 6 Verteilte Systeme 1 6 1 Verteilte Datenbanken Definition und Anforderungen Verteilte Datenbanken sind auf verschiedenen Rechnern eines Rechnernetzes verteilt und besitzen ein Datenbankverwaltungssystem DBMS das die Daten in einheitlicher Form verwaltet F r den Benutzer eines derartigen Systems soll die physische Verteilung der Daten nicht sichtbar sein d h Das System der verteilten Datenbanken VDBS realisiert eine logisch zentrale Sicht der physisch dezentral abgespeicherten Daten Die Information ber die Datenverteilung wird im Systemkatalog gehalten Verteilte Datenbanksysteme VDBS lassen sich einteilen in homogene und heterogene Systeme Ein VDBS ist homogen falls Datenmodell und Software auf allen Rechnern einheitlich sind andernfalls
54. Methoden angesprochen bzw bearbeitet werden Konzept der Datenkapselung Lediglich ber die Implementierung der Operatorprogramme k nnen direkte Zugriffe auf die Wertepr sentation codiert werden 27 z B ein Typkonstruktor zur Mengenbildung mit SET OF 66 Datenbanken Die Definition neuer Objekttypen schlie t die f r diese Typen charakterischen Operatoren Methoden mit ein Objekktypen werden in diesem Zusammenhang Klassen genannt Objektorientierte Systeme unterst tzen eine Reihe von Klassen sog Basisklassen die h ufig verwendete Datenstrukturen Listen Mengen etc bereithalten Basisklassen sind evtl in Klassenbibliotheken verf gbar In einem OODM m ssen alle Objekte eigenst ndig von ihren aktuelle Werten unabh ngig identifiziert werden und zu diesem Zweck eine eindeutige unver nderliche Kennung erhalten Objektidentifikator Surrogat Dadurch ist der Anwender entlastet von der Festlegung eindeutiger unver nderlicher Schl ssel f r alle Objekte er darf dies auf Wunsch aber auch weiterhin tun Jedes Objekt ist ber seinen Identifikator ansprechbar Gleichheit und Identit t von Objekten k nnen unterschieden werden Innerhalb des objektorientierten Datenbanksystems O0DBs erfolgen alle Objektidentifizierungen ber Surrogate Das sind systemgenerierte global eindeutige Bezeichner die unabh ngig vom physischen Speicherungsort sind Ablageunabh ngigkeit Der Benutzer hat keinen Einflu auf Surrogat
55. Net wird f r zwei Dinge verwendet Einerseits als Oberbegriff f r alle Netzwerkprotokolle und die Middleware von Oracle andererseits als Bezeichnung f r diejenige Softwarekomponente die auf Client und Serverseite installiert ist 133 Datenbanken und SQL Net Das Multiprotocoll Interchange des Server verf gt ber eine Listener TNS der ankommende Verbindungen auf das Ziel berpr ft und ann einen Serverproze zur Abarbeitung der SQL Anweisungen startet Von der SQL Net Schicht werden Daten an das Oracle Programmatic Interface OPI weitergegeben arbeitet entgegengesetzt zum UPI F r jeden Aufruf des UPI gibt es im OPI eine Funktion die die angeforderte Aufgabe erf llt Oberhalb des OPI setzt der Server auf der die Anforderungen des Client erf llt und die Ergebnisse ber das OPI an den Client zur cksendet SQL Server SQL Server bauen auf der Client Server Architektur auf Der Datenbankserver database server l uft auf einem eigens daf r vorgesehenen Rechner und bietet die notwendigen Datenbankfunktionen f r alle Netzteilnehmer an Der Datenbankserver ist auf die Sprache SQL ausgerichtet Der Client fordert mit einer SQL Anfrage eine Ergebnistabelle an die er dann weiterverarbeitet Der Server ist in der Lage SQL Anfragen auszuwerten und ganze Tabellen zu bergeben SQL Server haben einen transaction manager zur Synchronisation von Tabellen und Indexverzeichnissen z B bei einem Absturz Dauerhaft enthalten Tab
56. Passwort und Kennung Jx strcpy uid SAUER T rfhs1012 oral strcpy psw SAUER erg olon logon_data_area uid 1 psw 1 0 oci_error erg olon cursor_data_area 1 Oeffnen des Cursors der beim naechsten osql3 EA Aufruf fuer die Aufnahme von Ergebnissen dienen x soll erg oopen cursor_data_area logon_data_area char 1 1 char 0 1 oci_error erg oopen cursor_data_area 1 Ex x7 Angabe des SQL Kommandos das beim nachsten oexec Kommando auf die angegebene CURSOR DATA AREA durchgefuehrt werden soll B A 297 Datenbanken erg osql3 cursor_data_area SELECT ANGESTELLTE ANG_ID ANGESTELLTE NAME TO_CHAR ANGESTELLTE GEBJAHR DD MM YY FROM ANGESTELLTE ABTEILUNG WHERE ANGESTELLTE ABT_ID ABTEILUNG ABT_ID AND ABTEILUNG BEZEICHNUNG konst 1 oci_error erg osql3 cursor_data_area 1 1 RL Es muessen nun die C Programmvariablen angegeben werden in die die in dem SOL SELECT Kommando abgefragten Werte abgespeichert werden sollen Fuer jedes Element des SELEC
57. Projektion bestimmt aus einer gegebenen Relation eine zweite Relation m durch Entfernen aller Attribute Spalten die nicht speziell als Parameter bestimmt durch die Namen der Attribute der Projektion angegeben sind Nur jeweils eine Auspr gung eines Tupels bei evtl auftretenden Duplikate wird ausgegeben 173 Datenbanken Die Projektion der Relation r 3 kann allgemein dann so beschrieben werden r Ai A4 An Aj Az Am Sind Namen der Attribute Bsp Operationen zur Projektion 1 Gegebenist r Al A2 A a bb a bb a cc r A1 A2 a bb a cc r A2 A3 bb 5 bb 6 ee y permutierte Relation r A2 Al A3 bb a 5 bb a 6 cc a 7 2 Gegeben ist r LNR TNR a 1 a 2 b Welche Lieferanten mit welcher Lieferantennummer LNR sind in der Lieferantenliste 3 5 6 7 L sung Projektion von r auf LNR r LNR 2 Selektion Restriktion Hierbei handelt es sich um die Auswahl der Tupel einer Relation die eine bestimmte Bedingung erf llen r A B t t rund r A r B Voraussetzung Jedes Element von r A ist vergleichbar mit jedem Element von r B 3 Vereinbarung r A 1 A gt An ist eine Relation vom Grad n t ist die zugeh rige Tupelvariable R A1 A A beschreibt das Schema der Relation 174 Datenbanken Bsp Operationen zur Selektion 1 r A B C pr 2 f r B C A B C g 2 3 ne q 5 4 E B gt C A B P 3n 3 D12 q5 4
58. R1 weist eine transitive Abh ngigkeit auf verletzt DNF 5 Zusammenfassung Syntheseschritt 1 Definition eines Modells mit den Konstruktionselementen Entit tsmenge Entit tsattribute Beziehungsmenge Beziehungsattribute und Festhalten dieser Konstruktionselemente mit Hilfe von normalisierten Elementaroperationen 171 Datenbanken Syntheseschritt 2 Zusammenfassen von Elementaroperationen mit identischen Schl sseln Syntheseschritt 3 In seltenen F llen fallen bei der Zusammenfassung von Elementaroperationen Relationen an die die Kriterien der DNF verletzen Sie k nnen mit Hilfe der genannten Bedingungen systematisch erkannt und einer Normalisierung zugef hrt werden Hinweis Nach der Zusammenfassung und der anschlie enden Normalisierung k nnen erneut mehrere Relationen mit identischen Schl sseln anfallen Im vorliegenden Bsp betrifft dies MASCHINE M PE M PE M PE Diese Relationen betreffen ein und denselben Sachverhalt eine Maschine wird nur von einer Person bedient und ein und diesselbe Person kann mehrere Maschinen bedienen Zusammengefa t ergibt sich MASCHINE M PE 2 2 Mathematische Grundlagen f r Sprachen in relationalen Datenbanken 2 2 1 Relationenalgebra 2 2 1 1 Die Basis Mengenalgebra Da Relationen Mengen sind mu es m glich sein Ergebnisse und Begriffe aus der Mengenlehre auf DB Manipulationen anzuwenden Eine DML Anweisung ist dann Eine
59. REAL Datum TIME Zeit TIMESTAMP Zeitstempel Abb Datentypen in SQL 92 nderungen der Datendefinitionen k nnen ber den Befehl ALTER ausgef hrt werden ALTER DOMAIN domain SET DEFAUL literal NULL DROP DEFAULT ADD CONSTRAINT constraint CHECK conditional expression D INITIALLLY DEFERRED IMMEDIATE NOT DEFERABLE ROP constraint 214 TER TABLE Dase D T Im h column R COLUMN table column SE DROP DROP DROP DROP DROP Die Optionen RESTR DROP DEFAU T DROP COL A DROP CONST SC DO TAB VIEW ASSE H UMN EMA schema RES AIN domain RES E base table view RESTRIC RTION constraint column Datenbanken column definition Oo FAULT RE RAINT constraint R RI C RI R CT CASCAI STRIC TED DD base table constraint definition CASCADE CASCADE ESTRICT CASCADE CASCADE ESTRICTE DE im lite CASCADE D ral CASCADES NULL DROP Befehl bestimmen das Verhalten der Operation falls das zu entfernende Objekt Spalte Tabelle CONSTRAINT noch in anderen Defintionen verwendet wird RESTRI CT verbietet das L schen CASCADE l scht zus tzlic
60. Relation 94 Konto nach Filialen Jede Filiale speichert auf ihrem Rechner die sie betreffenden Daten Horizontale Fragmente Konto Nr Inhaber Filiale Kontostand Bad Hersfeld Bad Hersfeld Globale Relation Bad Hersfeld Konto Nr Inhaber Filiale Kontostand Konto Nr Inhaber Filiale Kontostand Bad Hersfeld Regensburg Regensburg Regensburg Bad Hersfeld M nchen Bad Hersfeld Konto Nr Inhaber Filiale Kontostand Abb 1 5 23 Horizontale Fragmentierung der Kontorelation Die vertikale Fragmentierung teilt die globale Relation in Abh ngigkeit von den Attributen auf Die Fragmentierung wird mit Hilfe der Projektion gebildet Die Zuordnung der verteilt gespeicherten Attributgruppen erfolgt ber den redundant abgebildeten Prim rschl ssel Bsp Aufteilung der Relation Artikel in ein bestandsbezogenes und in ein preisbezogenes Tupel 94 In relationalen Datenbanken ist die Relation Tabelle Ausgangspunkt f r die Verteilungseinheit 149 Datenbanken Vertikale Fragmente Globale Relation ana ra um Abb 1 5 24 Vertikale Fragmentierung der Realtion Artikel Auch Mischformen sind denkbar Dabei l t sich bspw ein vertikal gebildetes Fragment nochmals in eine Gruppe von horizontal gebildeten Fragmenten unterteilen Auf dem Fragmetierungsschema baut das Allakationsschema auf Hier ist ane Entscheidung ber Dispersion und Replikation der Fragmente zu treffen Bei der Dispersion werden das Fragment e
61. Rundungsfaktor scale definiert ist Wird die Stellenzahl ausgelassen dann wird das Maximum angenommen Ohne Angabe des Rundungsfaktors wird als Wert O verwendet Der Wertebereich von NUMBER liegt zwischen 1 0E 120 und 9 99E125 Aus Kompatibilt tsgr nden werden folgende Subtypen zum Datentyp NUMBER unterst tzt DEC DECIMAL DOUBLE PRECISION FLOAT INTEGER INT NUMERIC REAL SMALLINT F r die Speicherung von Ganzzahlen steht der Datentyp BINARY_INTEGER mit dem Wertebereich 2147483647 bis 2147483647 zur Verf gung Dieser Typ hat 2 Subtypen NATURAL mit Werten von 0 bis 2147483647 und POSITIVE mit Werten von 1 bis 2147483647 Alphanumerische Datentypen Sie entsprechen den SQL Datentypen k nnen aber in der Regel Ausnahme LONG l ngere Zeichenketten speichern BOOLEAN Variable dieses Datentyps sind TRUE oder FALSE Zus tzlich ist auch der Wert NULL m glich36 Bsp Deklaration einer Variablen vom Typ boolean und Initialisierung dieser Variablen set serveroutput on declare spaeteBezahlung boolean TRUE begin dbms_output enable if spaeteBezahlung then abms_output put_line Die Bezahlung erfolgt spaet end if end 35 wird zur Initialisierung herangezogen 36 Zustand nicht bestimmt 242 Datenbanken DATE ROWID type erm glicht den Datentyp einer Variablen als quivalent zum Datentyp der angegebenen Spalte zu deklarieren variablen name tabellen name spalten name TYPE Bsp Verwenden eine
62. STELLEN ERNENNUNGS TITEL BESCHREIBUNGS NUMMER BESCHREIBUNG DATUM KINDER NAME DES KINDES GEHALTLICHE ENTWICKLUNG GEHALTS GEHALT ERHOEHUNGSDATUM Abb 1 3 30 Datenbankstrukturdiagramm mit Pfadabh ngigkeiten Das Segment BERUFLICHE ENTWICKLUNG ist ohne Bezug auf das Segment ANGESTELLTE bedeutungslos Das Segment GEHALTLICHE ENTWICKLUNG ist nicht nur vom WVatersegment sondern sogar vom Gro vater Segment ANGESTELLTE abh ngig Eine Schl sselkombination von ANGESTELLTER und ERNENNUNGSDATUM ist zur Identifizierung des Feldes GEHALT 59 Datenbanken notwendig Die Schl sselkombination ABTEILUNGS NUMMER und STELLEN BESCHREIBUNGS NUMMER identifiziert die STELLENBESCHREIBUNG 5 Verbindungen bei hierarchischen Datenbanken IMS DL 1 Sie werden durch Zeiger realisiert Das Segment auf das verwiesen wird hei t logisches Kind logical child Es ist i a kein Tr ger von Daten sondern dient als Zeigersegment auf den logischen Vater logical parent Ein logical child kann nur als abh ngiges Segment auftreten das zur Vermeidung redundanter Speicherung dient Logische Elternsegmente k nnen mehrere logische Kinder besitzen Ein logisches Elternsegment kann aber nicht zugleich auch logisches Kind eines logischen parent sein Zugriff zu Zeigersegmenten Der Zugriff zu einem Zeigersegment kann ber 2 verschiedene Wege erfolgen 1 Der physische parent ist Ausgangspunkt der Abfrage 2 Der logis
63. Schnittstelle ber die Implementierung zusammen Eine Schnittstelle modelliert man in der Form einer gestrichelten Linie mit einem gro en unausgef llten Dreieck das neben der Schnittstelle steht und auf diese zeigt Bei der Bildung einer Unterklasse wird beides vererbt Eine reine Schnittstelle wie bspw in Java ist eine Klasse ohne Implementierung und besitzt daher nur Operationsdeklarationen Schnittstellen werden oft mit Hilfe abstrakter Klassen deklariert Bei abstrakten Klassen oder Methoden wird der Name des abstrakten Gegenstands in der UML u U kursiv geschrieben Ebenso kann man die Bedingung abstract benutzen a erg OrderReader Abh ngigkeit lt lt interface gt gt Datalnput lt InputStream Generalisierung Verfeinerung DatalnputStrea Abb Schnittstellen und abstrakte Klassen Ein Beispiel aus Java Irgendeine Klasse z B OrderReader ben tigt die Datalnput Funktionalit t Die Klasse DatalnputStream implementiert Datalnput und InputStream Die Verbindung zwischen DatalnputStream und Datalnput ist eine Verfeinerung refinement Eine Verfeinerung ist in UML ein allgemeiner Begriff zur Anzeige eines h heren Detaillierungsniveaus Die Objektbeziehung zwischen OrderReader und Datalnput ist eine Abh ngigkeit Sie zeigt da OrderReader die Schnittstelle Datalnput f r einige Zwecke benutzt Abstrakte Klassen und Schnittstellen erm glichen die Definition einer Schnitts
64. Spezielle Cursor Attribute erm glichen die Koordinierung der Abl ufe NOTFOUND ist TRUE falls die letzte FETCH Anweisung keinen Datensatz mehr liefert Der Inhalt der Variablen die in der FETCH Anweisung verwendet wurde ist in diesem Fall undefiniert FOUND ist TRUE falls bei die letzte FETCH Anweisung eine Datenzeile gelesen wurde ISOPEN ist TRUE falls der benannte Cursor offen ist ROWCOUNT liefert die Anzahl der bisher durch die FETCH Anweisung gelesenen Zeilen ROWCOUNT erh lt vor dem 1 FETCH NULL und wird bei gelesenen Zeilen um 1 erh ht Bsp Die folgenden beiden Implementierungsbeispiele zeigen wie durch Cursor Schleifen S tze einer SELECT Anweisung satzweise verarbeitet werden 38 vgl Cursorkonzept 248 Datenbanken 1 Implementierung set serveroutput on rem auf Kommandozeilenebene SOL Plus eingeben DECLARE string VARCHARZ2 40 status INTEGER cursor cl_title is select job titel from job where exists select from angestellte an where an job_id job job_id order by job titel BEGIN abms_output enable open cl_title loop fetch cl_title into string if cl_title NOTFOUND then exit end if abms_output put_line string end loop close cl_title END 2 Implementierung Hier ist die Schleifenvariable job_rec implizit als Record definiert der alle im Cursor selektierten Spalten umfa t Die Variable bekommt je Durchlauf den j
65. Welt h ufig vorkommenden bin ren Relationen z B 1 Die Beziehung zwischen Ehemann und Ehefrau ist vom Typ 1 1 2 Professoren k nnen mehr als eine Diplomarbeit gleichzeitig betreuen eine Diplomarbeit mu von genau einem Professor betreut werden Das ist eine hierarchische 1 n Beziehung Gelegentlich stehen Entit tsmengen auch ber eine ist_ein IS_A Beziehung in Verbindung So ist bspw ein Professor an einer Hochschule ein Hochschulangestellter Hochschulangestellte sind aber auch die Verwaltungsangestellten Der Professor an einer Hochschule besitzt neben der Identifikation die ihn als Hochschulmitarbeiter ausweist und einer Reihe weiterer Attribute Name Geburtsdatum Adresse Merkmale die ihn als Mitglied eines 15 vgl Chen P S The Entity Relationship Modell toward a unified view of data ACM Transactions on Database Systems March 1976 16 yg 1 3 1 1 17 Es spielt auch eine wesentliche Rolle bei den Werkzeugen des comp uterunterst tzten Software Engineering CASE 39 Datenbanken Fachbereichs in einer bestimmten Hochschule z B Fachhochschule Regensburg ausweisen Die zweistellige Beziehung E4 ist_ein E2 besagt E4 ist eine Spezialisierung von Ep bzw Eo ist eine Verallgemeinerung von E4 Im vorliegenden Fall k nnte E4 Professoren auch als Teilmenge von E gt Hochschulmitarbeiter verstanden werden Die Darstellung von E4 und E gt als verschiedene Mengen erm glicht es jedoch Besonder
66. auf lokale Objekte nicht unterscheiden 5 Fragmentierungstransparenz Eine Relation Tabelle der Datenbank sollte verteilt auf mehrere Knoten gespeichert werden k nnen Die dazu zugrundeliegende horizontale oder vertikale Fragmentierung der Relation bleibt f r den Datenbankbenutzer unsichtbar 6 Replikationstransparenz Die mehrfache Speicherung von Teilen der Datenbank auf unterschiedlichen Rechnern bleibt f r den Benutzer unsichtbar Die Wartung der Redundanz obliegt ausschlie lich der DB Software 7 Verteilte Anfragebearbeitung 90 C J Date An Introduction to Database Systems 5th Edition chapter 23 Addison Wesley 1990 145 Datenbanken Innerhalb einer DB Operation SQL Anweisung sollte die M glichkeit bestehen auf Daten mehrerer Rechner zuzugreifen Zur effizienten Bearbeitung sind durch verteilte DBMS geeignete Techniken bereitzustellen z B Query Optimierung 8 Verteilte Transaktionsverarbeitung Das DBMS hat die Transaktionseigenschaften auch bei der verteilten Bearbeitung einzuhalten Dazu sollten geeignete Recovery und Synchronisationstechniken bereitstehen 9 Hardwareunabh ngigkeit Die Verarbeitung der Datenbank sollte auf verschiedenen Hardware Plattformen m glich sein S mtliche Hardware Eigenschaften bleiben dem Benutzer verborgen 10 Betriebssystemunabh ngigkeit 11 Netzwerkunabh ngigkeit Die verwendeten Kommunikationsprotokolle und netzwerke haben keinen Einflu auf die DB Bearbeitung 12
67. aus W hrend einer laufenden Transaktion darf der Modus demnach nicht ge ndert werden Informationen ber die Art und Weise wie die Datenbank Transaktionen unterst tzt k nnen ber die Methoden der Klasse DatabaseMetaData erhalten werden supportsTransactions Database Management Systems nach SQL2 Standard unterst tzen auf jeden Fall Transaktionen supportsMultipleTransactions gibt an ob ein DBMS auch ber verschiedene Verbindungen mehrere Transaktionen gleichzeitig unterst tzt getDefaultTransactionlsolation Welche Isolationsstufe ist standardm ig f r die Datenbank eingestellt supportsTransactionlsolationLevel n liefert die Information ob ein DBMS eine bestimmte Isolationsstufe n unterst tzt dataDefinitionIgnoredinTransactions dataDefinitionCausesTransactionCommit supportsDataDefinitionAndDataManipulationTransactions supportsDataManipulationTransactionsOnly liefern Informationen dar ber welche Operationen bei Datendefinitionsanweisungen innerhalb einer Transaktion durchgef hrt werden 287 Datenbanken Hinweise zur Fehlerbehandlung Jede Funktion die eine Operation in Verbindung mit der Datenbank durchf hren soll mu entweder eine throws SQLException Anweisung beinhalten oder den Anweisungsteil in einem t ry Block durchf hren Die Beispielanwendung verwendet in jedem Fall die t ry Kapselung um auf einzeln auftretende Fehler individuell reagieren zu k nnen Gene
68. aus Zust nden Zustands berg ngen Ereignissen und Aktivit ten besteht Bei Zustandsdiagrammen steht das nach Ereignissen geordnete Verhalten eines Objekts im Vordergrund Zust nde werden symbolisch ber Rechtecke mit abgerundeten Ecken dargestellt Durch das Eintreffen von Ereignisssen kann ein anderer Zustand erreicht werden was durch Pfeile angedeutet wird Die Pfeile haben eine Beschriftung f r das ausl sende Ereignis und stellen berg nge dar In den Zust nden werden Operationen mit einer gewissen Zeitdauer ausgef hrt die Aktivit t genannt werden Im Gegensatz dazu wird die Zeitdauer von Aktionen mit Null angenommen Aktionen sind Operationen die an berg ngen ausgef hrt werden Angezeigt werden Aktionen durch einen Schr gstrich vor dem Namen Selbstverst ndlich k nnen berg nge auch an Bedingungen die in eckigen Klammern stehen gekn pft werden Start stop KennwortEingabe Zustandsname 17 Kennwort String Ereignis Argument Bedingung Aktion Variable Typ lnitialwert entry Echo ausschalten entry Aktion do Zeicheneingabe do Aktivit t exit Echo einschalten exit Aktion Abb Symbole im Zustandsdiagramm 80 Datenbanken Die W rter entry do exit sind reserviert und k nnen als Bezeichnungen f r Ereignisse nicht verwendet werden entry gibt an welche Aktion im Hintergrundausgef hrt wird exit gibt an welche Aktion beim Verlassen des Zustands ausgef hrt wird do beschreibt den Aufruf eines v
69. bedeutet die Korrektheit der in der Datenbank gespeicherten Daten Dazu geh rt die technische oder physische Integrit t d h richtiges Arbeiten des Datenbanksystems Dar ber hinaus sollen die Daten aber weitgehend den Abh ngigkeiten und Bedingungen gen gen denen die durch die Daten dargestellten realen Objekte unterworfen sind logische Konsistenz 95 vgl Eberhard L und andere Datenbankmaschinen berblick ber den derzeitigen Stand der Entwicklung Informatik Spektrum Heft 4 S 31 39 1981 153 Datenbanken 1 7 1 Integrit tsbedingungen Sie k nnen auf verschiedene Weise klassifiziert werden Physische Integrit t Darunter versteht man neben der physischen Datenkonsistenz die Vollst ndigkeit der Zugriffspfade die Vollst ndigkeit der Speicherstrukturen die Vollst ndigkeit der Beschreibungsinformationen Semantische Integrit tsbedingungen Ganz allgemein versteht man unter semantischer Integrit t die bereinstimmung von realen und gespeicherten Daten Speziell k nnte man hier unterscheiden Bereichsintegrit t Sie umfa t den Erhalt der Attributwerte innerhalb der Relationen Jedes Attribut einer Relation hat einen bestimmten Wertebereich Intra relationale Integrit t Sie umfa t die Korrektheit der Beziehungen zwischen den Attributen in einer Relation z B funktionale Abh ngigkeiten Eine der wichtigsten Integrit tsreglen ist in diesem Zusammenhang Die Eindeutigkeit des Schl ssels Schl
70. ber logische Verkn pfungen miteinander verbunden werden und bilden dann Aussageformen Durch Belegung ihre Aussagenvariablen mit Aussagen bzw Wahrheitswerten Deutung erh lt man jedoch wieder eine Aussage Aussageformen k nnen auch durch Verbindungen mit Redewendungen f r alle Allquantor es gibt Existenzquantor in Aussagen berf hrt werden Allgemein lassen sich Abfragen an Datenbanken als pr dikative Aussageformen formulieren die durch Einsetzen von Namen der Objekte bzw Verbindungen mit All Existenzquantoren zu Aussagen und damit zur Antwort wahr oder falsch f hren Die Regeln dazu sind in der Pr dikatenlogik der 1 Stufe zusammengefa t Viele grunds tzliche Gedanken k nnen aus der Aussagenlogik in die Pr dikatenlogik bernommen werden Die Aussagenlogik beinhaltet wesentliche Grundlagen sie sind deshalb anschliessend zusammengefa t 2 2 2 2 Pr dikatenlogik Grundlagen Die Pr dikatenlogik untersucht die innere Struktur von Aussagen Sie zergliedert einen Satz Aussagen in ein Pr dikat und Argumente z B intelligent josef intelligent ist das Pr dikat josef ist das Argument vorlesung juergen datenbanken beschreibt den Aussagen Satz J rgen h lt die Vorlesung ber Datenbanken Pr dikat ist hier vorlesung Argumente sind juergen datenbanken ist_intelligent Student ist dann eine Aussage die bestimmt da ein Student wer auch immer das sein mag int
71. dazu eine Relation in der SPRACHE als Dom ne an einem Entit tsattribut partizipiert PERSON PE SPRACHK PE SPRACHE QUALITAET 2 Gib eine relationsm ige Darstellung der Problemstellung an bei der SPRACHE als Entit tsmenge an einer Beziehungsmenge partizipier die ihrerseits an einem Beziehungsattribut beteiligt ist PERSON PE SPRACHE SPRACHE SPRACHK PE SPRACHE QUALITAET Dr Daraus folgt Werden Sprachen im Sinne eines Attributs behandelt so kann eine bestimmte Sprache nur im Zusammenhang mit einer die Sprache sprechenden Person genannt werden Werden Sprachen im Sinne von Entit ten aufgefa t so kann eine bestimmte Sprache auch eigenst ndig d h ohne Nennung einer die Sprache sprechenden Person behandelt werden Damit kommt dem Entit tsbegriff folgende Bedeutung zu Mit der Definition einer Entit tsmenge wird beabsichtigt die der Entit tsmenge angeh renden Entit ten eigenst ndig d h ohne Nennung anderweitiger Begriffe behandeln zu k nnen 2 1 1 2 Die zweite Normalform ZNF Was bezweckt die Normalisierung Eliminieren von Redundanz Eliminieren von Schwierigkeiten in Zusammenhang mit Speicheroperationen Einschub L schen Modifikation Eindeutiges Festhalten realit tskonformer Sachverhalte d h Ermitteln von Relationen die keine M glichkeiten bieten realit tskonforme funktionale Abh ngigkeiten zu verletzen 159 Datenbanken
72. ein Operateur OP 3500 DM ein Programmierer 5000 00 DM im Monat Der Angestellte A2 mit dem Namen Tom ist am 2 3 1951 geboren und arbeitet in der Abteilung KO Konstruktion als Ingenieur IN Er besitzt zus tzliche Qualifikation zur Systemplaner SY T tigkeiten Ein Systemplaner verdient 6000 00 DM ein Ingenieur IN 6000 DM im Monat Der Angestellte A3 mit dem Namen werner ist am 23 1 1948 geboren und arbeitet in der Abteilung OD Organisation und Datenverarbeitung als Programmierer SY Er besitzt zus tzliche Qualifikationen f r Operateur OP Programmierer PR T tigkeiten Ein Programmierer verdient 5000 00 DM im Monat Der Angestellte a4 mit dem Namen Gerd ist am 3 11 1955 geboren und arbeitet in der Abteilung VT Vertrieb als Kaufm Angestellter KA Ein Kaufm Angestellter verdient 3000 00 DM im Monat Der Angestellte A5 mit dem Namen Emil ist am 2 3 1960 geboren und arbeitet in der Abteilung PA Personalabteilung als Programmierer PR Ein Programmierer verdient 5000 00 DM im Monat Der Angestellte A6 mit dem Namen Uwe ist am 3 4 1952 geboren und arbeitet in der Abteilung RZ Rechenzentrum als Operateur OP Ein Operateur OP verdient 3500 DM ein Programmierer im Monat Die Angestellte a7 mit dem Namen Erna ist am 17 11 1955 geboren und arbeitet in der Abteilung KO Konstruktion als Techn Angestellte TA
73. eine feste vordefinierte Struktur auf Jeder Datensatz jedes Tupel beschreibt i a ein bestimmtes Objekt der Anwen dung ein Konto ein Lagerbestand Die Menge der ber ein Objekt gespeicherten Daten ist i a klein wenige 100 Bytes Daten k nnen mit hoher Frequenz eingef gt modifiziert und gel scht werden Es sind i a viele Benutzer gleichzeitig auf derselben Datenbank aktiv Die Daten m sen gegen Bedienungsfehler Systemausf lle Datentr gerverluste u a wirksam gesch tzt werden und automatisch wiederherstellbar sein Expertensysteme wurden bzw werden f r Anwendungen konzipiert die sich etwa durch folgende Punkte beschreiben lassen ber einen bestimmten Wirklichkeitsausschnitt liegen eine Reihe feststehender Fakten und Regeln vor sowie Gesetzm ssigkeiten Konventionen Erfahrungen Das System soll dem Benutzer bei allgemeinen Probleml sungsaufgaben in der Anwendungsumgebung unterst tzen d h berpr fen von Entscheidungs prozessen Nachweis der G ltigkeit von Fakten Untersuchen der Korrektheit von Aussagen Die hierzu ben tigten Operationen sind Auffinden einschl giger Regeln f r eine zutreffende Entscheidung Ableitung neuer Fakten und Regeln Bewertung von Entscheidungsvarianten Dem Benutzer mu eine Schnittstelle angeboten werden an der in m glichst einheitlicher Weise die Struktur der momentanen Fakten und Regeln dargestellt und ver ndert werden kann Neben diesen anwendungsspezifischen Eig
74. falls alle Daten ber Dateien und Programmsysteme in das W rterbuch aufgenommen werden zur zentralen Kontrollinstanz ber alle gespeicherten Daten ausbauen Man spricht h ufig auch von aktiven und passiven Data Dictionaries und bezieht sich dabei auf den Grad der Integration des Data Dictionary mit dem Datenbank verwaltungssystem DBMS Falls das DBMS die Definition des DD zur Laufzeit von Programmen auf den neuesten Stand bringt liegt ein aktives DD vor Ist dazu ein eigenst ndiger Regenerationslauf n tig handelt es sich um ein passives DD In beiden F llen ist dann die Architektur einer Datenbank um das Datenw rterbuch DD organisiert 6 vgl 1 2 4 6 28 Datenbanken Verwalter der bergeordneten Einheit Datenbank Konzeptuelles Anwendungs Verwalter Schema Verwalter Internes Schema Datenw rterbuch Externes Schema data dictionary Umformen zur Umformen zur Umformer zur internen internen Verarb externen Speicherung des konz Schemas Repr sentation Ein Ausgabe Sytem Anwendung Abb 1 2 9 Organisation einer DB Architektur um das DD 29 Datenbanken 1 3 Datenbankmodelle f r formatierte Datenbanken DB Sie werden danach eingeteilt wie die elementaren logischen Einheiten der Datenbank die Datens tze zu Datenstrukturen Baum einfaches Netz Tabelle zusammengefa t sind 1 3 1 Beschreibung der Daten in formatierten Datenbanken 1 3 1 1 Entit tsmengen und ihre Be
75. gebdatum yy to_char gebdatum yy NAME SYSDAT GEBDATUM TO_CHAR SYSDATE YY TO_CHAR GEBDATUM YY aria 26 DEC 97 17 SEP 64 33 Ute 26 DEC 97 08 SEP 62 35 Emil 26 DEC 97 02 MAR 60 37 Rita 26 DEC 97 02 DEC 57 40 Willi 26 DEC 97 07 JUL 56 41 Gerd 26 DEC 97 03 NOV 55 42 Erna 26 DEC 97 17 NOV 55 42 Uwe 26 DEC 97 03 APR 52 45 Josef 26 DEC 97 02 AUG 52 45 Tom 26 DEC 97 02 MAR 51 46 Fritz 26 DEC 97 02 JAN 5O 47 Werner 26 DEC 97 23 JAN 48 49 Anton 26 DEC 97 05 JUL 48 49 13 rows selected 229 Datenbanken Mit der Funktion to_char lt date gt lt format gt ist die Konvertierung aus dem Standardformat in andere Formatdarstellungen m glich M gliche Formate in die konvertiert werden kann sind bspw DD MM YYYY MM DD YY Verbund Die Operation Verbund richtet sich im Datenbanksystem Oracle nach folgendem Algorithmus 1 Das kartesische Produkt der am Verbund JOIN beteiligten Tabellen wird gebildet 2 Alle nicht der Join Bedingung entsprechenden Datens tze werden aus dem kartesischen Produkt gestrichen 3 Alle nicht der den Restriktion en entsprechenden Datens tze werden gestrichen 1 Bestimme die Abteilungen in denen Angestellte mit der Berufsbezeichnung Systemplaner arbeiten und die nach 1950 geboren sind select distinct abteilung bezeichnung from abteilung angestellte job where angestellte abt_id abteilung abt
76. generelle Versicherungen Sie sind nicht mit einer Spalte oder eine Tabelle verkn pt Die Defintion erfolgt direkt ber CREATE ASSERTION z B CREATE ASSERTION AbtGroesse CHECK NOT EXIST SELECT FROM Abteilung WHERE SELECT COUNT FROM Angestellte WHERE Angestellte Abt_ID Abteilung Abt_ID gt Abteilung MaxAngstellte Eine Assertion erh lt einen Namen z B AbtGroesse und ist ein bedingter Ausdruck der eine Integrit tsbedingung formuliert Eine Assertion ist im Gegensatz zum Constraint weder einer Spalte noch einer Tabelle zugeordnet Relationale Integrit t Eine relationale Datenbank mu sich an die durch das relationale Modell bedingten Integrit tsregeln der Prim r und Fremdschl sselintegrit t Entity und Referential Integrity halten Entity Integrity besagt Jede Tabelle mu ein Attribut oder eine Attributmenge besitzen die Datens tze eindeutig identifiziert Referential Integrity bezieht sich auf die Abbildung von Beziehungen durch Fremdschl ssel jeder Fremdschl ssel mu auf einen existierenden Prim rschl ssel referenzieren Bsp CREATE TABLE Abteilung ID CHAR 2 Bez CHAR 40 MaxAngestellte INTEGER PRIMARY KEY ID Create TABLE Angestellte ID CHAR 3 NOT NULL ABT_ID CHAR 2 PRIMARY KEY ID FOREIGN KEY Abt_ID REFERENCES Abteilungl ID
77. gungen Anderungen L schungen unter folgenden Bedingungen Bie L schungen ber einen view darf der view keine GROUP BY oder DISTINCT Klausel enthalten und das Pseudo Attribut ROWNUM nicht verwenden Anderenfalls k nnten zu einem ber den view sichtbaren Datensatz in der Tabelle mehrere Datens tze existieren die wegen der DISTINCT Klausel nicht unterscheidbar w ren Bei nderungen ber einen view darf der nderungswert nicht ber einen Ausdruck bestimmt werden Es gelten diesselben Bedingungen wie beim L schen Beim Einf gen ber einen view sind alle vorstehenden Restriktionen zu beachten und es darf keine NOT NULL Bedingung der realen Tabelle verletzt werden d h alle NOT NULL Felder m ssen im view enthalten sein 106 Mit DROP TABLE DROP VIEW Datenbanken Sichten Indexe gel scht werden z B oj ROP ROP J ROP ROP ROP ROP Ka R RA ROP ROP ROP ROP EA AA ONA EA EW EINKOMMEN TABLE ABTKOSTEN EX ABT_IDX EX JOB_IDX EX ANGEST_IDX EX QUAL_IDX ABLE QUALIFIKATION ABLE ANGESTELLTE ABLE JOB ABLE ABTEILUNG 3 ndern der Tabellenstruktur DROP INDEX k nnen Tabellen Zum Einf gen neuer Felder dient der ALTER TABLE Befehl mit der Aanp Klausel z B ALTER TABLE ABTKOSTEN ADD ANZAHL INTEG
78. halten sie transparent indem sie Anfragen ber das LAN zu angeschlossenen Datei und Druckerservern weiterleiten Das NOS bietet daf r Proxies die die Anfragen abfangen und an die entsprechenden Server weiterleiten Transparenz hei t also dass das Netzwerk mit seinen Servern vor seinen Benutzern versteckt bzw unsichtbar gemacht wird Die wichtigsten Transparenz typen sind Location transparency Es ist unwichtig wo sich eine Ressource im Netz befindet man muss z B nicht eine Ortsinformation in den Namen der Ressource mit eingeben Namespace transparency Man soll die gleichen Namensvereinbarungen und namespaces auf der lokalen oder irgendeiner Ressource im Netz verwenden k nnen unabh ngig vom Ort Typ oder Hersteller Logon transparency Es sollte ein einziges Passwort zum einloggen an allen Servern und Diensten die im Netzwerk verf gbar sind gen gen Replication transparency Es ist unbekannt wie viele Kopien einer Ressource existieren Distributed time transparency Keine Zeitunterschiede zwischen Servern Failure tranparency Das NOS soll uns von Netzwerk Fehlern abschirmen 69 Protokollsammlung von Novell Internet Package Exchange Sequential Package Exchange 70 Vernetzungskonzept von IBM System Network Architecture 71 Transmission Control Protocol Internet Protocol 72 Weitverkehrsnetz das etwa 4000 Netze mit ber 6000 Rechnern verbindet 124 Datenbanken Kommunikation Client Server Appl
79. heran Dort werden die dem gesuchten Schl sselwert entsprechenden Satzadressen gelesen Databasekeys und der Zugriff auf die Bl cke der zugeordneten Tabellen Dateien durchgef hrt 24 Datenbanken 1 2 3 4 Grundfunktionen der Datenbanksoftware Betriebssysteme bieten nur Zugriffsmethoden zu einfachen Dateien an Zur Datenbank geh rt demnach Verwaltungssoftware mit den Aufgaben Verwaltung der Speicherstruktur Entfernen bzw Einordnen der gew nschten Daten Man spricht von einem Datenbankverwaltungs Programm oder Data Base Management System DBMS Die Nutzung eines DBMS kann auf 2 Arten erfolgen 1 Die Nutzung des DBMS findet zwischen Endbenutzer und dem DBMS auf direktem Wege statt Es handelt sich dabei um ein geschlossenes System aus Datenbank und Daten bankverwaltung Die Systeme werden self contained exekutiv oder anwen dungsorientiert genannt 2 Die Kommunikation mit der Datenbank erfolgt ber Programme Die Bedienung eines solchen eingebetteten oder host language Systems erfordert Programmierkenntnisse denn Datenbankanweisungen und Datenbank beschreibung richten sich nach den Konventionen der Gastsprache der Benutzerprogramme Man spricht von programmorientierten operierenden bzw host language Systemen Weiterhin mu es eine Methode zur Strukturdefinition der Datenbank Design geben das Design in einer Struktur Definitions Sprache Data Description Language DDL als Quellcode Schema dekl
80. heterogen Verteilte Datenbanken werden in vielen F llen der Organisationsstruktur eines Unternehmens besser gerecht als herk mmlich zentralisierte Datenspeicher da nderungen in der Datenverteilung keine Auswirkungen auf bestehende Anwendungen haben Die Verteilung auf mehrere DBMS in der Regel auf verschiedenen geographisch verteilten Rechnern unterst tzt auf der einen Seite das Lokalit tsverhalten vieler Anwendungen erm glicht andererseits auch die zentrale logische Sicht der Daten Die wichtigsten Anforderungen die Verteilte Datenbanksysteme idealerweise erf llen sollten formulierte C J Date in 12 Regeln 1 Lokale Autonomie Lokale Daten werden unabh ngig von anderen Standorten verwaltet Jeder Rechner sollte ein Maximum an Kontrolle ber die auf ihm gespeicherten Daten aus ben Der Zugriff auf diese Daten darf nicht von anderen Rechnern abh ngen 2 Keine zentralen Systemfunktionen Zur Unterst tzung einer hohen Autonomie der Knoten und Verf gbarkeit sollte die Datenbankverarbeitung nicht von zentralen Systemfunktionen abh ngen Solche Komponenten bilden au erdem einen potentiellen Leistungsengpa 3 Hohe Verf gbarkeit Fehler im System z B Rechnerausfall oder Konfigurations nderungen Installation neuer Software und Hardware unterbrechen nicht die Datenbankbearbeitung 4 Ortstransparenz Der physische Speicherort sollte f r Benutzer verborgen bleiben Der Datenbankzugriff darf sich vom Zugriff
81. in einer Nachricht verpackt zur ck zum Client Stub Die R ckgabedaten werden hier wieder ausgepackt und an die aufrufende Applikation bergeben 125 Datenbanken Client Server Application Application i Y va Y i Client Stub Server Stub 4 v u Client Runtime Server Runtime Library Library Es EA Transport Transport u rn Die Schnittstelle des RPC muss in der Interface Description Language IDL deklariert werden damit das Ein und Auspacken korrekt funktioniert Ein IDL Compiler erzeugt daraus dann die Client bzw Server Stubs Die Implementierung der Prozedurr mpfe erfolgt wieder wie bei normalen Prozeduren Obwohl RPC das Leben eines Programmierers bereits erheblich vereinfachen gibt es einige Schwierigkeiten und Fehlerquellen zu beachten Wenn sehr viele Clients auf die Serverfunktionen zugreifen wird schnell ein gro er Anteil der Rechenleistung des Servers nur f r das Starten und Stoppen des Service f r die Priorisierung der Anfragen Sicherheitsabfragen und Load Balancing verbraucht Wie wird bei Fehlern reagiert Ein recht umfangreicher Punkt da beide Seiten separat ausfallen k nnen Es ist daher wichtig dass die eingesetzte Software alle auftretenden Fehlerkombinationen abfangen kann Wenn der Server nicht antwortet blockiert der Client normalerweise Nach einem Timeout muss er seine Anfrage wiederholen St rzt der Client nach einer Anfrage ab muss der Server alle bis dahin vorgenommenen Ver nderungen r ckg
82. ist ein recht ungenauer Begriff der all die verteilte Software beinhaltet die ben tigt wird um Interaktionen zwischen Client und Server zu erm glichen oder anders gesagt Ist die Verbindung die dem Client erm glicht einen Service vom Server zu erhalten Middleware beginnt beim Client API ber welchen ein Serviceaufruf abgesetzt wird beinhaltet die bertragung des Aufrufes ber ein Netzwerk und die resultierende Antwort auf den Aufruf Sie beinhaltet nicht die Software die den eigentlichen Service bietet das befindet sich im Server Block oder das User Interface welches sich im Client Block befindet Der Datenbankserver berechnet das Ergebnis und das Programm auf dem Client wird automatisch mit diesen Daten versorgt Im Unterschied zum Dateiserver f hrt der Datenbankserver komplexe Operationen aus Eine Transaktionsverwaltung ist ber den Datenbank Server m glich Es k nnen auch Server eingesetzt werden die eine andere Betriebssystem oder Hardwarearchitektur haben als Client Rechner So sind spezielle Datenbankrechner als Datenbank Server einsetzbar sobald sie ber ein Kommunikationssystem von den Clients aus erreicht werden k nnen Bekannte Produkte sind Oracle Ingres IBM Database Manager sowie Server von SyBase und Gupta Technologies Das Oracle Client Server Konzept Ab Version 7 hei t das relationale Datenbanksystem der Firma Oracle Oracle7 Server Dieser Begriff betont ab Version 7 ausgepr gte Serverf higkeite
83. ist flexibel Fakten k nnen w hrend der Laufzeit hinzugef gt gel scht oder ge ndert werden Das Hinzuf gen L schen und ndern von Daten bernehmen in Prolog eingebaute Pr dikate Beim Beenden der Arbeit mit dem Prolog System geht der Inhalt der dynamischen Datenbank verloren sofern er nicht gesichert wurde Zur Manipulation der dynamischen Datenbank gibt es Standarpr dikate asserta Damit werden der Datenbank im Arbeitsspeicher Fakten hinzugef gt Der hinzu f gende Fakt wird vor die bereits vorhandenen Klauseln gleichen Namens geschrieben Durch asserta praedikat wird das als Argument aufgef hrte Pr dikat als Fakt in die aktuelle dynamische Datenbank an vorderster Stelle eingetragen 11 assertz f gt einen Fakt hinzu Der Fakt wird nach allen bereits vorhandenen Klauseln gleichen Namens geschrieben Mit assertz praedikat wird das als Argument bergebene Pr dikat als Fakt hinter die Klauseln der aktuellen Wissensbasis eingetragen Der Fakt wird erst dann auf eine m gliche Unifizierung hin berpr ft wenn alle anderen Klauseln mit gleichem Pr dikatsnamen zuvor als nicht unifizierbar erkannt sind retract l scht Fakten aus der Datenbank Durch den Aufruf von retract wird die 1 Klausel die mit dem bei retract anzugebenden Argument unifizierbar ist gel scht Mit retract praedikat wird der erste Fakt gezielt aus der Wissensbasis gel scht der mit dem Argument von retract unifiziert werden kann abolish l scht s
84. mit folgender Bedeutung definiert Gesamtliste enth lt nacheinander die Elemente von liste_1 und liste_2 Die L sung ist zweckm ssigerweise rekursiv verketten L L verketten Kopf L1 L2 Kopf L3 verketten L1 L2 L3 Der Aufruf verketten a b d e X f hrt zun chst in der vorliegenden Version von verketten zu Kopf a L1 b L2 d e f und X alL3 und zu einem Aufruf verketten b d e f L3 Das ergibt Kopf b L1 L2 def L3 b L3 und f hrt zum Aufruf verketten d e f L3 Mit der 1 Klausel erh lt man L bzw L3 d e f und das Ergebnis x Jallbl d e f a b d e f Mit Hilfe des Backtracking k nnen nacheinander alle Objekte erzeugt werden die irgendein Ziel erf llen Allerdings verschwindet eine L sung bzw ist nicht mehr im Zugriff wenn eine neue L sung erzeugt wird Manchmal ist es jedoch zweckm ig alle erzeugten Objekte in einer Liste zu sammeln In Prolog gibt es daf r das Mengenpr dikat findall findall X Z L erzeugt die Liste aller Objekte X f r die das Ziel Z wahr ist Bsp Gegeben ist das folgende Prolog Programm interesse interesse herbert mathematik interesse wolfgang statistik juergen informatik interesse peter linguistik interesse josef informatik 202 Datenbanken Die Anfrage findall X interesse X informatik L ergibt L juergen josef Dynamische Datenbanken Prolog
85. t t rundt s 3 Die Differenz von r und s f hrt zu einer Relation deren Tupel t in r nicht aber in s vorkommen 4 Die symmetrische Differenz von r und s f hrt zu einer Relation deren Tupel t in r oder s nicht aber in beiden Relationen vorkommen Da Datenelemente hier Tupeln einer Menge normalisierter Relationen sind braucht die bekannte Mengenalgebra nur um tupelorientierte Operationen erweitert werden Voraussetzung daf r ist die Definition einer Tupelvariablen t der man die Zeile einer Tabelle Relation als Wert zuweisen kann Datenelemente werden aus Tupeln von Mengen gebildet Die bekannten Gesetzm igkeiten der Mengenalgebra sind demnach um tupelorientierte Operationen zu erweitern Eine solche Algebra ist die Relationenalgebra Auswertungen aus einer Datenbank DB sind hier Mengen die aus Relationen der DB hergeleitet sind Relationenoperationen k nnen auch Relationen erzeugen die mit anderen Tupeln als denen der DB ausgestattet sind Wegen der Universalit t und des gro en Auswahlverm gens dient die algebraische Sprache h ufig sogar als Basissprache oder zumindest als Vergleichssprache Relational vollst ndig heissen Sprachen die das gleiche Auswahlverm gen wie die Relationenalgebra haben Damit k nnen alle Fragen in diesen Sprachen ausgedr ckt werden die semantisch in der DB enthalten sind 2 2 1 2 Operationen der relationalen Algebra 1 Projektion Entfernen von Spalten aus einer Tabelle Die
86. und dann der FETCH Befehl nochmals aktiviert wird WHERE Bedingungen k nnen sich auf Programmvariable beziehen Das bedeutet Eine Abfrage wird beim Programmstart ge ffnet und bleibt w hrend des gesamten Programmablaufs ge ffnet Das Programm kann den Datensatz durch Ver nderung der in den WHERE Bedingungen verwendeten Variablenwerte gezielt ausw hlen Ein Cursor 267 Datenbanken kann ebenfals f r die gesamte Programmdauer ge ffnet werden das Schlie en mu erst bei Programmende erfolgen Die m gliche Anzahl gleichzeitig ge ffneter Cursor richtet sich nach dem verwendeten Datenbankprodukt ber mehrere Cursor k nnen die von der Abfrage zur ckgegebenen Werte unmittelbar zur Aktivierung anderer Abfragen verwendet werden Werden keine Zeilen ermittelt die die gegebenen Bedingungen erf llen dann wird sqlcode gesetzt Fehler werden ebenfalls ber den sqlcode angezeigt In einem Programm wird ber die Anweisung WHENEVER NOT FOUND der Fehler erkannt Falls die Ergebnismenge leer ist gibt FETCH no data found zur ck und markiert dies ber den sqlcode 2 3 5 1 1 Embedded SQL in Oracle mit dem Precompiler Pro C Pro Cc ist ein Werkzeug da SQL Anweisungen in einem C Quellcode Programm in Oracle Datenbankanweisungen umsetzen kann Programm Entwicklung Host Programm mit SQL und PL SQL Programm Anweisungen programm pc bersetzt SQL und PL SQL Kommandos TI in Funktionsaufrufe reines C Programm mit
87. wurden Die 1 20 ber en oracle 7 3 unter Solaris 2 5 im Datenbanklabor der FH Regensburg 21 im Mehrbenutzerbetrieb zwingend vorgeschrieben 218 Datenbanken Zeile der Datei mu USER ID und Passwort im Format USERID Passwort enthalten SQL wird dann gestartet durch Eingabe von sqlplus datei_name 2 3 2 2 Aufbau der Datenbank Die Datenbank besteht aus Dateien und dem Data Dictionary das die Daten in den Dateien beschreibt DATABASE Eine Oracle Datenbank besteht aus einer oder mehreren Datenbankdateien Eine Datenbank kann mit dem Befehl CREATE DATABASE durch den Datenbank Administrator eingerichtet werden Die Anweisung erzeugt und initialisert CONTROL FILES mit Informationen ber die Datenbank z B Name der Datenbank Name der Logdatei Erzeugungsdatum Die Kontrolldatei darf weder gel scht noch ver ndert werden DATABASE FILES enthalten alle Daten und Information ber Daten Einer Datenbank mu mindestens ein Database File zugeordnet werden Mit der Datenbank wird automatisch der Tablespace SYSTEM und die Tablespaces TS_ROLLBACK TS_TOOLS TS_TEMP TS_USERS erzeugt Hier wird zun chst der Database File eingeordnet Au erdem wird hier das Oracle Data Dictionary abgelegt Die DD Tabellen und Views m ssen die ersten Objekte sein die in einer Datenbank angelegt werden Im System Tablespace werden sp ter auch die Dictionaries zu den Oracle En
88. zuerst wird hier immer die Regel q X p X aufgerufen dh Um q X zu beweisen ist wieder p X zu beweisen Das Programm erreicht also wegen dieser Anordnung und dem vorgegebenen in Prolog fest implementierten Ablauf von oben nach unten von links nach rechts nie den Kandi daten q a und ger t in eine Endlosschleife 192 Datenbanken Nach welcher nderung im vorstehenden Programm kann ein korrekter Ablauf er zwungen werden p X q X ala gX p X Fakten Regeln Anfragen bestehen aus Pr dikaten das sind logische Funktionen die immer nur die Werte wahr und falsch annehmen k nnen In Prolog werden Pr dikate so beschrieben praedikat Term Ein Term kann eine Konstante eine Variable eine beliebig geschachtelte Struktur oder eine Liste sein Die syntaktischen Elementarformen von Prolog sind Terme Jede Verkn pfung von Termen ergibt wiederum Terme Diese rekursive Definition erm glicht da Prolog den Term als einzige syntaktische Form kennt Zusammengesetzte Terme hei en Strukturen Variable beginnen mit einem Gro buchstaben Ausgenommen davon ist die anonyme Variable Sie ist durch das Symbol _ gekennzeichnet und definiert eine Variable deren Wert nicht von Belang ist Konstanten sind Zahlen oder Zeichenketten die mit Kleinbuchstaben beginnen oder in Anf hrungszeichen eingeschlossen sind Der lexikalische Geltungsbereich von Variablennamen ist eine Klausel Der gleiche Name der in 2 Klausel
89. zugreifen Es gibt u U zahlreiche unabh ngige Datenbanksysteme jedoch nur ein Dateisystem Die einzelnen Workstations sind mit dezentraler Intelligenz ausgestattet so da alle Programme im lokalen Arbeitsspeicher ablaufen Zur Inanspruchnahme bestimmter Dienste werden Programmaufrufe ber die in einer Workstation eingebaute Netzwerkkarte an den Server weitergeleitet Nach dem Prinzip des File Server arbeiten die meisten Netzwerkbetriebssysteme Bekanntestes Produkt ist zur Zeit Novell Netware Mit Hilfe sog Netware Loadable Moduls NLM l t sich das Netzwerk an verschiedene Architekturen anpassen Den restlichen Markt f r Netzwerkbetriebssysteme teilen sich LAN Manager bzw LAN Server 5 und Banyan Vines 74 Viele Systemdienste wie etwa die ganze Schichtung m glicher Netzwerkprotokolle IPX ZCP IP usw wurden auf der Server Seite als NLM realisiert 75 Der LAN Manager kommt von Microsoft der LAN Server von IBM Der Ansatz ist aber gleich Der Server Teil setzt auf OS 2 als Betriebssystem Nachfolger des LAN Manager ist inzwischen der Windows NT Advanced Server der Netzwerkfunktionen von Windows NT benutzt 129 Datenbanken Netware File Server Netware Betriebssystem Btrieve Record Manager Netware SQL Datenbankmaschine SPX DOS OS 2 Netware SQL DOS Requester Netware SQL OS 2 Requester Anwendung Anwendung MS Windows Netware SQL Windows Requester Interface Anwendung Abb 1 5 7 Client Server A
90. zur ckweist Dann fordert der Manager alle Subtransaktionen und diese wiederum ihre Subtransaktionen usw auf ein Rollback durchzuf hren D h alle beteiligten Stationen machen die getroffenen Ver nderungen r ckg ngig und versetzen sich wieder in den Ausgangszustand 1 Phase Transaction Manager Resource Manager Resource Manager in M nchen in Regensburg 2 Phase Transaction Manager Resource Manager Resource Manager in M nchen in Regensburg Abb Ablauf des 2PC Protokoll Der gr te Nachteil des 2PC Protokoll ergibt sich aus der hohen Anzahl der Nachrichten die versendet werden m ssen Dies f hrt zu Performanz Einbu en Nicht jede Transaktion braucht die Sicherheit eines 2PC Protokolls z B read only Transaktionen Diese m ssen erkannt und durch ein einfaches Protokoll abgearbeitet werden 119 Datenbanken 1 5 2 3 Transaktionsmonitor Operating Systeme f r Transaction Processing Den Transaktionsbetrieb mit Datenbankanwendungen realisieren DC Komponenten Man spricht auch von einem Transaktionssystem TP System transaction processing system Transaktionsmonitor Dieses Systemprogramm koordiniert f r viele Endbenutzer die unterschiedlichen Transaktionsauftr ge und unterst tzt dabei die logisch zusammenh ngenden Verarbeitungssequenzen Transaktionen Bei der Implementierung eines Transaktionssytems mu ber cksichtigt werden Eine meist gro e Anzahl von Benutzern ruft gleichzeitig Fu
91. zwischen den Daten zu formalisieren Die Objekte der Wirklichkeit die durch die Daten modelliert werden hei en Entit ten entities Dies k nnen beliebige Objekte sein z B reale Gegenst nde gedankliche Einheiten Vorg nge Es gibt zwei Arten von Relationen 1 Entit ts Relationen Entit tsmengen Sie beschreiben die Eigenschaft einer Klasse von Entit ten d h eines Entit tstyps 2 Relationship Relationen Beziehungsmengen Sie verkn pfen 2 oder mehr Entit ten und beschreiben diese Verkn pfung mit Attributen die nur dieser Beziehung zugeordnet werden k nnen Es gibt zahreiche Varianten des Entity Relationship Modells 7 All diese Modelle dienen in erster Linie theoretischen berlegungen oder der Strukturierung von Da tensammlungen konzeptioneller Entwurf um Verkn pfungen deutlich zu machen und danach Dateien in einem der blichen Datenbanksysteme sinnvoll definieren und einrichten zu k nnen Mit Entit ts und Beziehungsmengen l t sich jeder Ausschnitt der realen Welt Miniwelt beliebig detailliert beschreiben Eine Beziehung kann dabei auch aus mehr als zwei Entit tsmengen bestehen Bsp Die Beziehung Hoert zwischen Student Vorlesung und Professor ist eine dreistellige Beziehung Das Entity Relationship Modell stellt den Rahmen f r die Angabe derartiger mehr stelliger Beziehungen bereit konzeptioneller Entwurf Nat rlich kennt das Entity Relationship Modell auch die in der realen
92. 1 G S2 Vera S2 35 D2 Pascal 53 Vera 53 26 SPRACHKENNTNISSE S SPRACHE KRITERIUM S1 C gut S1 Prolog mittel SA C gut S2 Pascal schlecht S3 C gut S3 Pascal mittel Am einfachsten w re es all diese Tabellen so weit es m glich ist zu einer Relation zusammen zu fassen STUDENT_E S SPRACHE KRITERIUM NAME ALTER SL gut Karl 20 sl Prolog mittel Karl 20 s2 C gut Vera 35 S2 Pascal schlecht Vera 35 S3 C gut Vera 26 S3 Pascal mittel Vera 26 Die vorliegende Zusammenfassung ist jedoch keine korrekte Darstellung des Sachverhalts in einer relationalen Datenbank Sie erm glicht realit tskonforme Sachverhalte zu verletzen z B s3 hat neben C Pascal auch Prolog gelernt Das bedeutet Hinzuf gen des Tupels 63 Prolog schlecht Maria 28 Der Einschub enth lt realit tswidrige Aussagen Maria 28 Trotzdem ist er systemm ig tolerierbar weil ein bisher noch nicht existenter Schl sselwert S3 Prolog eingebracht wird 2 Relationen zum Festhalten einer Beziehungsmenge BELEHRT D S 3 J N n nn nn 2 3 3 Relation zum Festhalten eines Beziehungsattributs BEURTEILUNG D S KR TERIUM D1 S gut D1 S3 mittel D2 S1 gut D2 S2 schlecht D2 S3 gut 158 Datenbanken Aufgabe In einer Relation soll festgehalten werden welche Personen welche Sprachen mit welchem Qualit tskriterium k nnen 1 Beschreibe
93. 2 Chemie 13 C 30 104 Paul Regensburg 1 Physik 11 A 80 104 Paul Regensburg 1 Physik 13 C 20 Ein PE Wert steht in der Regel mit mehreren PR Werten in Beziehung Umgekehrt steht ein PR Wert mit mehreren PE Werten in Beziehung Schwierigkeiten mit Speicheroperationen Speicheranomalien sind immer noch vorhanden Update und Einschuboperationen erm glichen entgegen den genannten Fakten Eine Person hat mehrere Namen mehrere Wohnorte mehrere Abteilungen F r eine Abteilung und ein Produkt k nnen mehrere Namen vergeben werden 4 ZNF Hier ist jedes nicht dem Schl ssel zugeh rende Attribut funktional abh ngig vom Gesamtschl ssel nicht von den einzelnen Schl sselteilen Die Analyse der ENF f hrt zu den folgenden funktionalen Abh ngigkeiten DaO l I l ij J I I l I I I j PERSON_ENF P E WOHNORT A A NAME PR NAM av ID zZ D E x N I i i eae a NL ENL Ense Bi a Abb 2 1 6 Relation PERSON_ENF in erster Normalform 167 Datenbanken Alle nicht dem Schl ssel PE PR angeh renden Attribute sind funktional abh ngig vom Gesamtschl ssel Kriterium der ENF Nicht dem Schl ssel angeh rende Attribute sind funktional abh ngig von Schl sselteilen Hier ist lediglich ZEIT weder vom Schl sselteil PE noch vom Schl sselteil PR funktional abh ngig in der vorstehenden Abbildung mit X markiert Offensichtlich verl
94. 4 8 9 Fakt Entit tsattribute vgl 1 2 6 7 Fakt ein Beziehungsattribut vgl 5 Fakt 2 Nichtnormalisierte Relation Die Fakten lassen sich alle in der folgenden Tabelle zusammen fassen PERSON_UN PE NAME WOHNORT A A NAME PR PR NAME ZEIT 101 Hans Regensburg 1 Physik 11 12 A B 60 40 102 Rolf N rnberg 2 Chemie 13 C 100 103 Udo M nchen 2 Chemie 11 12 13 A B C 20 50 30 104 Paul Regensburg 1 Physik 11 13 A C 80 20 Nachteile dieser Zusammenfassung sind 1 Die Anzahl der Elemente variiert von Zeile zu Zeile schwierige Handhabung 2 Mit nichtnormalisierten Relationen gibt es Schwierigkeiten bei Speicheropera tionen Verletzung realit tskonformer Sachverhalte 3 Komplexe Verifikations Programme sind erforderlich die sicherstellen da ein und dasselbe redundant auftretende Faktum auch nach der Speicheroperation durchgehend den gleichen Wert aufweist 166 Datenbanken 3 ENF Die unter 2 angegebene Relation wird in die erste Normalform berf hrt Hier ist in Verbindung mit einem bestimmten Schl sselwert immer h chstens ein einziger Wert eines Attributs erlaubt PERSON_ENF PE NAME WOHNORT A A NAME PR PR NAME ZEIT 101 Hans Regensburg 1 Physik 11 A 60 101 Hans Regensburg 1 Physik 12 B 40 102 Rolf N rnberg 2 Chemie 13 Q 100 103 Udo M nchen 2 Chemie A 20 103 Udo M nchen 2 Chemie 12 B 50 103 Udo M nchen
95. 4 und 5 Feststellung M PR PR M 3 Zusammenfassung von Elementarrelationen mit identischen Schl sseln PRODUKT PR M PR PR M PE PR PR PE PRODUKT PR M PE i Funktionale Abh ngigkeit verletzt DNF MASCHINE M M PE M PI igal MASCHINE M PE PERSON PE 170 Datenbanken Normalisierung PRODUKT PR M PE M PE MASCHINE M PE PERSON PE 4 Systematisches Erkennen von Verletzungen der DNF beim Zusammenfassen von Elementaroperationen Allgemeiner Fall g PRODUKT PR M PE MASCHINE M PE Bedingungen f r das Erkennen 1 Die das Kriterium der DNF verletzende Relation R1 im Bsp PRODUKT weist einen Fremdschl ssel A auf M Das bedeutet Es existiert eine Relation R2 MASCHINE in der das Attribut A M den Prim rschl ssel darstellt Ein Attribut einer Relation ist ein Fremdschl ssel in dieser Relation falls das Attribut nicht Prim rschl ssel der Relation ist aber als Prim rschl ssel in einer anderen Relation in Erscheinung tritt 2 Sowohl R1 im Bsp PRODUKT und R2 MASCHINE weisen ein zus tzliches identisches Attribut B PE auf Treffen die genannten Bedingungen zu so ist das Attribut B in der Relation R2 mit Sicherheit vom Attribut A funktional abh ngig M glicherweise liegt diese funktionale Abh ngigkeit auch in der Relation R1 vor Das w rde bedeuten
96. 7 geboren un ELECT FROM ANGESTELLTE HERE GEBDATUM lt 02 DEC 57 ORDER BY NAME Komplexe Bedingungen Mehrere Suchbedingungen k nnen in einer WHERE Klausel kombiniert werden z B SELECT FROM ANGESTELLTE WHERE NAME Fritz AND JOB_ID SY Drei logische Operatoren NOT AND OR erm glichen die logische Kombination von Suchbedingungen Die angegebene Reihenfolge entspricht der Priorit t ihrer Verarbeitung Mit Klammern kann die Abarbeitungsfolge beeinflu t werden IN BETWEEN undLIKE SELECT kann auch in Zusammenhang mit den Operatoren BETWEEN LIKE und IN Suchbedingungen ber die wWHERE Klausel festlegen Die 2 Operatoren BETWEEN LIKE ersetzen relationale Operatoren und legen den Geltungsbereich der WHERE Klausel fest Der mit BETWEEN festgelegte Bereich ist inklusiv Auch Zeilen deren Feldwert einem der beiden Grenzwerte entspricht werden in der Ergebnistabelle aufgenom men genauso wie alle dazwischenliegenden Werte SELECT FROM ANGESTELLTE WHERE GEBDATUM BETWEEN O1 JAN 55 AND 31 DEC 55 Der Operator IN pr ft ob ein Feldwert mit einem Wert in der angegebenen Werteliste bereinstimmt ELECT ABT_ID BEZEICHNUNG ROM ABTEILUNG HERE ABT_ID IN KO OD RDER BY ABT_ID oza3 Hu LIKE erm glicht di
97. 9 Elektrotechnik Jung Der Wechsel eines Dekans bewirkt hier mehrere nderungen in der Tabelle update dependence Sie sind verursacht durch folgende Abh ngigkeiten die sich durch die folgenden Transitivit ten ausdr cken lassen S FB DEKAN S Dekan FBName STUDENT _X ist in der zweien Normalform ZNF nicht in dritter Normalform DNF Dritte Normalform DNF Eine Relation R ist in DNF wenn sie sich in der ZNF befindet und jedes Nicht schl sselattribut von R nicht transitiv abh ngig ist von jedem Schl sselkandidaten Prim rschl ssel abh ngige Daten Abb 2 1 2 Funktionale Abh ngigkeiten in DNF 161 Datenbanken berf hrung in die DNF Bsp STUDENT S NAME ADR GEB FB SI Karl xxx 01 10 48 20 S2 Vera xxx 21 08 48 20 S3 Vera xxx 13 05 48 19 S4 Maria xxx 04 12 47 20 S5 Tom xxx 11 01 47 20 S6 Fred xxx 01 03 49 19 FACHBEREICH EB FBNAME DEKAN 20 Informatik Hechler 19 Elektrotechnik Jung 2 1 2 Spezielle Normalformen Mit der DNF ist in der Regel der Normalisierungsproze abgeschlossen Unter den folgenden Voraussetzungen ist aber der Normalisierungsproze nicht befriedigend beendet die Relation hat mehrere Schl sselkandidaten die Schl sselkandidaten sind zusammengesetzt bestehen also aus mehreren Attributen die Schl sselkandidaten berlappen sich mit dem Prim rschl ssel d h Sie haben mindestens ein
98. ANSACTION_READ_UNCOMMITTED Transaktion B kann Daten lesen die Transaktion A ge ndert aber noch nicht per commit dauerhaft an die Datenbank bergeben hat Dirty Read TRANSACTION_READ_COMMITTED Dirty Reads sind nicht m glich Die Transaktion B kann nur solche Daten lesen die Transaktion A bereits per commit dauerhaft an die Datenbank bergeben hat Da w hrend der Ausf hrung von B jedoch parallele Transaktionen die gleichen Daten mehrfach ndern k nnen erh lt B beim wiederholten Lesen eines Tupels nicht unbedingt immer die gleichen Daten Non repeatable read TRANSACTION_REPEATABLE_READ Dirty Reads und Non repeatable reads erfolgen nicht Es kann aber passieren da Transaktion A ein neues Tupel in eine Tabelle eintr gt das Transaktion B beim wiederholten Lesen erh lt Phantom read TRANSACTION_SERIALIZABLE Dirty reads Non repeatable reads und Phantom reads erfolgen nicht Transaktionen die auf die gleichen Daten zugreifen werden serialisiert also nacheinander ausgef hrt Die Datenbank arbeitet am schnellsten wenn sich die Transaktionen nicht gegenseitig behindern d h im Modus TRANSACTIONS _NONE Maximale Datenintegrit t wird nur durch den letzten Modus TRANSACTION_SERIALIZABLE gew hrleistet Der JDBC Treiber initialisiert keinen dieser Modi sondern verwendet die Voreinstellung der Datenbank Eine nderung des Modus l st einen COMMIT auf der Datenbank
99. Abarbeitung gleichzeitiger Aktionen dient eine Datenverarbeitungszentrale im Hauptspeicher Communication Pool System Clobal area Alle Daten die das Datenbanksystem f r mehrere verschiedene Aufgaben ben tigen k nnte werden hier zwischengespeichert DB Proze e bearbeiten Transaktionen Unter Transaktion versteht man eine Folge von Datenbankzugriffen die eine Datenbank von einem g ltigen Zustand in einen neuen ebenfalls g ltigen Zustand berf hren Die Aktionen einer Transaktion sind aus Sicht des DBS die kleinsten ausf hrbaren atomaren Einheiten deren korrekte Ausf hrung das DBS bernimmt das Kommunikationssystem DC System Es bernimmt die Verbindung der einzelnen Komponenten Drei F lle k nnen unterschieden werden 1 Terminalnetze Beim Anschlu dummer Terminals ber gr ere Entfernungen dient das Netz als Verl ngerungsschnur Auf der Seite des Terminals m ssen Kommunikations protokolle bereitgestellt werden die wegen ihres geringf gigen Aufwands in Hardware implementiert werden k nnen Auf der Seite des Rechners liegt der Schwerpunkt der Verarbeitung z B Aufbau und Kontrolle der Verbindung Program mierung des Bildschirms 2 Netze zwischen autonomen Rechnern Zum Anschlu von Intelligenten Bildschirmarbeitspl tzen z B PC CAD Arbeitsstation mit integriertem Rechner mu ein Kommunikationsnetz zwischen eigenst ndigen Rechensystemen bereitgestellt werden 3 Verteilte Datenbanken Das Netz dient zu
100. Auswahl einer Untermenge aus einer Menge von Datenelementen Die Mengenalgebra stellt daf r Operationen z B Durchschnitt Vereinigung und Differenz als Sprachelemente zur Verf gung Eine Anwendungsm jglichkeit solcher Operationen ist stets auf vereinigungsvertr gliche Relationen gegeben Definition der Vereinigungsvertr glichkeit Zwei einfache Attribute sind vereinigungsvertr glich wenn die zu diesen Attributen zugeh rigen Werte entweder aus Zahlen oder Zeichenketten bestehen Zwei zusammengesetzte Attribute sind vereinigungsvertr glich wenn sie aus derselben Zahl von Attributen bestehen und die jeweiligen j ten Attribute vereinigungsvertr glich sind Zwei Relationen sind vereinigungsvertr glich wenn zusammengesetzte Attribute von denen die beiden Relationen Teilmengen bilden vereinigungsvertr glich sind d h Die Anzahl der Dom nen Wertebereiche Attribute von Relationenschema R und S stimmt berein f r ale 1 lt j lt n Wertebereiche stimmt das Format der Daten in dem j ten Wertebereich von Relation r mit dem jten Wertebereich von Relation s berein 172 Datenbanken F r vereinigungsvertr gliche Relationen sind folgende Mengenoperationen definiert 1 Die Vereinigung von rund s f hrt zu einer Relation deren Tupel tin r oder s oder in beiden vorkommen ft t 7 rodert s oder beides 2 Der Durchschnitt von r und s f hrt zu einer Relation deren Tupel t sowohl in r als auch in s vorkommen
101. BEZEICHNUNG KONSTRUKTION AND ABTEILUNG ABT_ID ANGESTELLTE ABT_ID AND ANGESTELLTE JOB_ID JOB JOB_ID AND JOB TITEL IN SELECT JOB TITEL FROM JOB ANGESTELLTE ABTEILUNG WHERE ABTEILUNG BEZEICHNUNG Organisation und Datenverarbeitung AND ANGESTELLTE JOB_ID JOB JOB_ID T 3 Finde alle Mitarbeiter Angestellte in der Abteilung Konstruktion die einen Beruf job titel haben der zu einem Mitarbeiter der Abteilung Organisation und Datenverarbeitung nicht gleich ist SELECT ANGESTELLTE NAME JOB TITEL FROM ANGESTELLTE JOB ABTEILUNG WHERE ABTEILUNG BEZEICHNUNG Konstruktion AND ABTEILUNG ABT_ID ANGESTELLTE ABT_ID AND ANGESTELLTE JOB_ID JOB JOB_ID AND JOB TITEL NOT IN SELECT JOB TITEL FROM JOB ANGESTELLTE ABTEILUNG WHERE ABTEILUNG BEZEICHNUNG Organisation und Datenverarbeitung AND ANGESTELLTE JOB_ID JOB JOB_ID 4 Finde alle Angestellten die mehr verdienen als irgendein Mitarbeiter in der Personalabteilung Die Ausgabe soll in eine Tabelle mit folgenden Spalten berschriften erfolgen JOB GEHAL JOB TITEL ANGESTELL H E NAME ANGESTELLTE ABT_ID
102. CT NAME FROM ANGESTELLTE WHERE ANGESTELLTE JOB_ID SELECT ANGESTELLTE JOB_ID FROM ANGESTELLTE JOB WHERE NAME Fritz AND ANGESTELLTE JOB_ID JOB JOB_ID OR ABT_ID SELECT ABT_ID FROM ANGESTELLTE WHERE NAME Fritz ORDER BY NAME In Unterabfragen mit mehr als einem Ergebnis mu eine where Klausel verwendet werden die mehr als einen Wert akzeptiert Eine solche Abfrage kann die Operatoren IN ANY ALL verwenden z B 1 Welche Angestellten ben die T tigkeiten eines Systemplaners bzw eines Ingenieurs aus SELECT ANGESTELLTE NAME FROM ANGESTELLTE WHERE ANGESTELLTE JOB_ID IN SELECT JOB JOB_ID FROM JOB WHERE JOB TITEL Systemplaner OR JOB TITEL Ingenieur Datenbanken bzw SELECT ANGESTELL FROM ANGESTELLTE H E NAME WHERE ANGESTELLTE JOB_ID ANY SELECT JOB JOB_ID FROM JOB WHERE JOB TITEL Systemplaner OR JOB TITEL Ingenieur 2 Finde alle Mitarbeiter Angestellte in der Abteilung Konstruktion die einen Beruf job titel haben der zu einem Mitarbeiter der Abteilung Organisation und Datenverarbeitung gleich ist SELECT ANGESTELLTE NAME JOB TITEL FROM ANGESTELLTE JOB ABTEILUNG WHERE ABTEILUNG
103. CURSOR FOR Select Anweisung FOR READ ONLY UPDATE OF Spalte Bsp EXEC SQL DECLARE C1 CURSOR FOR SELECT ANGESTELLTE ANG_ID ANGESTELLTE NAME TO_CHAR ANGESTELLTE GEBJAHR dd mm yy EI FROM ANGESTELLTE AB UNG WHERE ANGESTELLTE ABT_ID ABTEILUNG ABT_ID AND ABTEILUNG BEZEICHNUNG KONSTRUKTION Standarm ig gilt f r jeden Cursor die Einstellung FOR UPDATE Ein Cursor mu vor der Bearbeitung ge ffnet werden EXEC SQL OPEN Cursorname Das Schlie en funktioniert analog EXEC SQL CLOSE Cursorname Ein nicht explizit geschlossener Cursor bleibt ge ffnet bis die Anwendung beendet wird Die Datenbank kann auf eine maximale Anzahl ge ffneter Cursor beschr nkt sein Ein einzelner datensatz aus der Ergebnismenge wird mit FETCH geholt FETCH FROM Cursorname INTO Variablenliste Bei der Variablenliste handelt es sich um durch Kommas getrennte Hostvariablen mit dem typischen Doppelpunkt davor Die Reihenfolge der Variablen mu der Reihenfolge der im Cursor befindlichen Attribute entsprechen 271 Datenbanken Eine nderung am Datenbestand in Abh ngigkeit vom aktuell g ltigen Tupel im Cursor kann durch zwei Anweisungen erreicht werden DELETE FROM Tabellenname Viewname WHERE CURRENT OF Cursorname Diese Anweisung l
104. Das Common Gateway Interface Allgemeine Vermittlungsrechner Schnittstelle ist eine M glichkeit Programme im WWW bereitzustellen die von HTML Dateien aus aufgerufen werden k nnen und die selbst HTML Code erzeugen und an einen WWW Browser senden k nnen CGI umfa t Programme die auf einem Server Rechner im Internet liegen und bei Aufruf bestimmte Daten verarbeiten Die Datenverarbeitung geschieht auf dem Server Rechner CGl Programme k nnen auf dem Server Rechner Daten speichern zum Beispiel wie oft auf eine WWW Seite zugegriffen wurde Bei entsprechendem Aufruf kann ein CGl Programm gespeicherte Daten auslesen und daraus HTML Code generieren Dieser dynamisch erzeugte HTML Code wird an den aufrufenden WWW Browser eines Anwenders bertragen und kann dort individuelle Daten in HTML Form anzeigen zum Beispiel den aktuellen Zugriffsz hlerstand einer WWW Seite Die sogenannte CGl Schnittstelle mu von der WWW Server Software unterst tzt werden 8 Es gibt keine Vorschriften daf r in welcher Programmiersprache ein CGI Programm geschrieben ist Damit das Programm auf dem Server Rechner ausf hrbar ist mu es entweder f r die Betriebssystem Umgebung des Servers als ausf hrbares Programm kompiliert worden sein oder es mu auf dem Server ein Laufzeit Interpreter vorhanden sein der das Programm ausf hrt Wenn der Server zum Beispiel ein Unix Rechner ist f hrt er C Programme aus die mit einem Unix C Compiler zu einer ausf hrbaren D
105. EADY_OPEN DUP_VAL_ON_INDEX INVALID_CURSOR INVALID_NUMBER LOGON_DENIED NO_DATA_FOUND NOT _LOGGED_ON PROGRAM_ERROR STORAGE _ERROR TIMEOUT_ON_RESPONSE ZERO_DIVIDE TOO_MANY_ROWS Es k nnen auch eigene f r die jeweilige Anwendung spezifische Exceptions definiert werden Benutzerdefinierte Ausnahmen m ssen explizit ber eine Anweisungsfolge ausgedr ckt werden die mit raise name_der_ausnahme eingeleitet wird Die Ausnahmebehandlung eines Blocks steht an dessen Ende und beginnt mit dem reservierten Wort EXCEPTION Diesem folgen die einzelnen Ausnahmen jeweils durch WHEN name_der_ausnahme THEN eingeleitet Sobald es in PL SQL zu einem Fehler kommt wird eine Ausnahme signalisiert raised Die Abarbeitung des aktuellen Blocks wird beendet und in den Ausnahmebehandlungsteil dieses Blocks gewechselt Jeder PL SQL Block kann seine eigenen Ausnahmebehandlungsteil besitzen Nachdem die dort stehenden 241 Datenbanken Anweisungen ausgef hrt wurden wird die Abarbeitung bei der n chsten Anweisung des einschlie enden Blocks fortgesetzt Es ist nicht m glich aus dem Ausnahmebehandlungsteil in den aktuellen Block zur ckzuspringen b Deklaration von Variablen variablen _name CONSTANT datentyp NOT NULLIJ ausdruck gt PL SQL verwendet alle SQL Datentypen Es gibt aber eine Reihe von Erg nzungen bzw Einschr nkungen Numerische Datentypen Haupttyp ist NUMBER der mit Stellenzahl precision und
106. Eine Techn Angestellte verdient 3000 00 DM im Monat Die Angestellte a8 mit dem Namen Rita ist am 2 12 1957 geboren und arbeitet in der Abteilung KO Konstruktion als Techn Angestellte TA Eine Techn Angestellte verdient 3000 00 DM im Monat Die Angestellte A9 mit dem Namen Ute ist am 3 9 1962 geboren und arbeitet in der Abteilung OD Organisation und Datenverarbeitung als Systemplaner SY Sie besitzt zus tzliche Qualifikation f r Ingenieur IN T tigkeiten Ein Systemplaner verdient 6000 00 DM ein Ingenieur IN 6000 DM im Monat 48 Datenbanken Der Angestellte A10 mit dem Namen willi ist am 7 6 1956 geboren und arbeitet in der Abteilung KO Konstruktion als Ingenieur IN Ein Ingenieur verdient 6000 00 DM im Monat 2 Daraus lassen sich die folgendenen Entit ten ableiten Abteilung Angestellte Job 3 die folgende Attribute besitzen Abteilung Abt_ID Bezeichnung Angestellte Ang_ID Name Gebjahr Abt_ID Job_ID Job Job_ID Titel Gehalt 4 Beziehungen bestehen zwischen Abteilung und Angestellte Angestellte und Job ausge beter Beruf Angestellte und Job Qualifikation 5 Ermitteln der H ufigkeit von Entit tsmengen zwischen denen Beziehungen bestehen Ein Angestellter arbeitet in einer Abteilung Eine Abteilung hat mehrere Angestellte Ein Angestellter bt eine bestimmte berufliche T tigkeit aus Eine
107. HAR2 3 NAME VARCHAR2 10 KO VARCHAR2 2 OD VARCHAR2 2 PA VARCHAR2 2 RZ VARCHAR2 2 VT VARCHAR2 2 233 Datenbanken select from angabt ANG NAME KO OD PA RZ VT Al Fritz SY A2 Tom IN A3 Werner PR A4 Gerd VT A5 Emil PR A6 Uwe RZ A7 Erna TA A8 Rita TA A9 Ute SY A10 Willi IN A12 Anton SY A13 Josef SY A14 Maria KA 13 rows selected Decode oder Case Funktion Bestandteil des Intermediate Levels Syntax DECODE Wert Bedingung_1 Ergebnis_l Bedingung_2 Ergebnis_2 Bedingung_n Ergebnis_n Defaultergebnis Beschreibung Wenn der wert eine der folgenden Bedingungen entspricht wird das entsprechende Ergebnis zur ckgegeben Wenn keiner der Vergleiche zum Ergebnis f hrt wird das Defaultergebnis zur ckgegeben Wenn es dieses nicht gibt ist das Ergebnis NULL 1 Filtern von Daten mit decode select count count decode job_id SY 1 NULL from angestellte COUNT COUNT DECODE JOB_ID SY 1 NULL 13 4 2 Ermitteln von Prozentwerten mit decode select count decode job_id SY 1 NULL count 100 Prozent from angestellte 30 769231 34 Bestandteil des Intermediate Levels des SQL Standards 234 Datenbanken Operationen der relationalen Algebra MINUS INTERSECT UNION Operation der relationalen Algebra MINUS MINUS bestimmt welche ausgew hlten Werte der ersten Anweisung mit denen der zweiten und oder weit
108. Hochkommata eingeschlossen Numerische Werte werden ohne besondere Kennzeichnung eingegeben Der Abschlu einer Eingabe wird mit einem Semikolon markiert Es bewirkt23 da der Befehl nach dem lt RETURNS gt sofort ausgef hrt wird Soll der Befehl nicht sofort ausgef hrt werden dann kann man die Eingabe durch lt RETURN gt am Anfang einer neuen Zeile abschlie en Dann erscheint wieder der Prompt SQL gt SQL PLUS kann auch zum Editieren von SQL Anweisungen z B zum Korrigieren von Tippfehlern verwendet werden Der SQL PLus Befehl LIST ruft die letzte Anweisung wieder auf Eine Markierung zeigt an welche Zeile der SQL Anweisung von der beabsichtigten nderung betroffen sein wird Durch Angabe einer Zeilennummer nach LIST kann auf die zu korrigierende Zeile direkt Bezug genommen werden Die nderung kann durch den SQL Plus Befehl CHANGE realisiert werden Durch Schr gstriche getrennt gibt man nach CHANGE zuerst den zu korrigierenden Ausdruck und dann den korrigierten Ausdruck an Die Anweisung kann anschlie end mit SOL gt RUN zum Ablauf gebracht werden Auch das L schen Hinzuf gen von Zeilen und die Angabe von zus tzlichem Text zu einer vorhandenen Zeile ist m glich HELP ist ein spezieller SQL PLUS Befehl der SQL bzw SQL PLUS Befehle zeigt z B SQL gt HELP help zeigt eine Liste der Hilfe M glichkeiten SQL gt HELP insert zeigt Syntax und Beschreibung des SQL Kommandos INSERT Auch Sprachbesch
109. ID FROM ANGESTELLTE UNION S F ELE JOB_ID ROM JOB Q 103 Datenbanken 2 Erzeugen bzw L schen von Tabellen Views Sichten und der Indexe Tabellen werden ber die Anweisung CREATE TABLE erzeugt z B CREATE TABLE ABTEILUNG ABT_ID CHAR 2 NOT NULL BEZEICHNUNG CHAR 40 N CREATE TABLE JOB JOB_ID CHAR 2 NOT NULL TITEL CHAR 30 GEHALT DECIMAL 8 2 CREATE TABLE ANGESTELLTE ANG_ID CHAR 3 NOT NULL NAME CHAR 10 GEBDATUM DATE ABT_ID CHAR 2 JOB_ID CHAR 2 CREATE TABLE QUALIFIKATION ANG_ID CHAR 3 JOB_ID CHAR 2 Jede Tabellenspalte umfa t Werte einer bestimmten Dom ne Dom nen lassen sich ber Angabe des Datentyps der Spaten und der Anzahl Zeichen definieren Generell unterscheidet SQL vier Basistypen Datentyp Erl uterung char lt Laenge X gt Zur Speicherung von Zeichenketten der L nge X Zur Speicherung von ganzen Zahlen decimal lt Laenge X Dezimalstellen Y gt Zur Speicherung von Zahlen im Festkommaformat Das Festkommaformat kann insgesamt aus X Stellen und Y Stellen nach dem Dezimalpunkt bestehen Die Datumsangaben sind in den Datenbanksystemen spezifisch formatiert In CREATE TABLE ist nach dem Datentyp die Angabe NULL Standardm iger Default Wert bzw NOT NULL m glich Damit wird festgelegt ob eine Spalte NULL W
110. L avg job gehalt 12 JAHRESDURCHSCHNITTSGEHALT from job angestellte where angestellte job_id job Jjob_id group by job titel having count angestellte ang_id gt 2 231 Datenbanken 8 Verbundanweisungen mit virtuellen Spalten Berechne das t gliche Taeglich und st ndliche STUENDLICH Gehalt der Mitarbeiter der Abteilung Organisation und Datenverarbeitung Monatlich fallen 22 Arbeitstage an die t gliche Arbeitszeit betr gt 8 Stunden select angestellte name gehalt MONATLICH round gehalt 22 2 TAEGLICH round gehalt 22 8 2 STUENDLICH from angestellte job abteilung where abteilung bezeichnung Organisation und Datenverarbeitung and abteilung abt_id angestellte abt_id and angestellte job_id job job_id NAME ONATLICH TAEGLICH STUENDLICH Werner 3000 136 36 17 05 Fritz 6000 TARLI 34 09 Anton 6000 212 513 34 09 Ute 6000 21213 34 09 Der OUTER JOIN wird in ORACLE ber die WHERE Klausel bestimmt z B WHERE Spaltenname_l Spaltenname_2 Datens tze der mit durch die Markierung Spaltenname_1 in der JOIN Bedingung gekennzeichneten Tabelle denen kein Datensatz aus der zweiten Tabelle gekennzeichnet durch spaltenname_2 in der JOIN Bedingung zugeordnet werden kann werden mit einem imagin ren Datensatz der nur aus Nullwerten besteht verbunden Bsp 1 Finde heraus ob gegen die referentielle Integrit t verstossen wurde
111. LECT FROM Angestellte Abteilung Angestellte INNER JOIN Abteilung USING Abt_ID 14 Vgl 1 4 3 2 207 Datenbanken quivalent dazu ist in SQL 89 SELECT FROM Angestellte Abteilung WHERE Angestellte Abt_ID Abteilung Abt_ID Der Inner JOIN nimmt nur Datens tze einer Tabelle in die Ergebnismenge auf Der Outer JOIN dagegen gew hrleistet Bei der JOIN Verkn pfung erscheint jeder Datensatz der Ausgangstabelle in der Ergebnistabelle auch wenn er kein Pendant in der verkn pften Tabelle hat Das erfolgt beim Left Outer JOIN f r die linke Tabelle beim Right Outer JOIN f r die rechte und beim Full Outer JOIN f r beide Der Outer JOIN ist bei der Verkn pfung von Tabellen ber Prim r und Fremdschl ssel von Bedeutung falls dabei der Fremdschl ssel den Nullwert annehmen darf Auch vom Outer JOIN existieren 2 Varianten eine mit ON und eine mit USING Klausel Union JOIN Alle Datens tze der ersten und zweiten Tabelle werden in die Ergebtabelle mit aufgenommen Im Gegensatz zum OUTER JOIN wird aber nicht versucht die Datens tze ber eine Bedingung oder ber die Datenfelder miteinander zu verkn pfen Mengenoperationen Der UNION Operator bildet die Vereinigungsmenge der INTERSECT Operator die Schnittmenge und der EXCEPT Operator die Differenz aus beiden Tabellen Doppelte Datens tze werden bei allen 3 Operatoren aus der Ergebnismenge eliminiert Alle Befehl
112. Liste gt VALUES lt Wert Liste gt ROLLBACK Macht alle Ver nderungen an der Datenbank seit dem letzten COMMIT Kommando wieder r ckg ngig SELECT DISTINCT ALL lt Spalten Liste Funktionen Konstanten etc gt FROM lt Tabellennamen Liste oder Namen von Views gt WHERE lt Bedingung en gt GROUP BY lt Gruppierte Spalte n gt HAVING lt Bedingung gt ORDER BY lt Geordnet nach Spaltenwerte gt ASC IDESC UPDATE lt Spalte n gt SET lt Spalten Name gt lt Wert gt WHERE lt Bedingung gt SQL arbeitet mit verschiedenen Objekten Tabelle Spalte Zeile View skalare Werte und Operationen auf diesen Objekten wie die verschiedenen Syntax Diagramme zum SELECT Kommando zeigen SQL besteht aber nicht nur aus der SELECT Anweisung sondern setzt sich insgesamt aus 12 Befehlen zusammen Diese Befehle lassen sich zur Datendefinitions Sprache Data Definition Language DDL der Datenmanipulationssprache Data Manipulation Language DML und der Datenkontroll Spache Data Control Language DCL zuordnen Au erdem geh rt zu SQL der Systemkatalog zur Verwaltung der Tabellenstruktur und Werkzeuge f r Performance Optimierung zur Beschleunigung der Arbeits abl ufe 51 UNIQUE steht in eckigen Klammern und ist deshalb eine optionale Angabe 52 Die Gr enangabe ist nur bei bestimmten Datentypen erforderlich 53 NULL bzw NOT NULL und UNIQUE 54 Die Angaben zu den Spal
113. MS konzepitiert Dieses Konzept von f hrenden DB Fachleuten erarbeitet steht allen Herstellern und Anwendern zur Verf gung Seine externen Schnittstellen sind exakt beschrieben die interne Realisierung bleibt jedem Hersteller selbst berlassen CODASYL DB werden bzw wurden angeboten von Honeywell IDS Univac DMS 1100 Cullinane Corp IDMS und Siemens UDS 1 4 2 IMS IMS Integrated Mangement System ist eines der ltesten Systeme und daher eines der am weitesten entwickelten DB DC Systeme IMS wurde bereits Mitte der 60er Jahre konzipiert die 1 Version Ende 1968 freigegeben Seit 1973 ist IMS in den virtuellen Systemen OS VS1 und OS VS2 verf gbar IMS VS Dar berhinaus wurden am Markt die Varianten DL 1 DOS VS und DL 1 Entry angeboten die funktionell eine Untermenge von IMS VS darstellen 87 Datenbanken Anwendungsprogramm C Anwendungsprogramm B Anwendungsprogramm A PSB A BE EEE gramm DBD DBD DBD DBD DBD DBD DBD DBD DI Physische Datenbanken Abb 1 4 1 Aufbau IMS Kurzbeschreibung der DB Struktur von IMS IMS besteht in der Regel nicht aus einer einzigen sondern aus mehreren Daten banken IMS erlaubt den Aufbau hierarchisch strukturierter Datenbest nde die f r das System in 3 verschiedenen Stufen beschrieben werden Man unterscheidet zwischen der Beschreibung des hierarchischen Datenbankaufbaus der Beschreibung des Zugriffs f r ein bestimmtes Programm und der Beschreibung de
114. NULL INITIALLY DEFERED IMMEDIATE NOT DEFERABLE CHECK conditional expression INITIALLY DEFERRED IMMEDIATE NOT DEFERABLE SET CONSTRAINT constraint commalist ALL DEFERRED IMM 215 EDIATE Datenbanken 2 3 2 Oracle SQL 2 3 2 1 Das Datenbanksystem Oracle Oracle ist ein Produkt der Oracle Corporation Belmont California USA Oracle 9 wird haupts chlich auf UNIX Rechnern eingesetzt Es handelt sich um ein relationales DB System das ber SQL leicht zug nglich ist Gemeinsamer Speicher f r die durch SQL Anweisungen ausgel sten Datenbankoperationen ist die System Global Area SGA Sie enth lt Datenbank und Logpuffer sowie Informationen ber das Data Dictionary DD Die SGA ist der Hauptspeicherbereich auf den alle Benutzer einer Datenbank zugreifen und besteht aus dem Blockpuffer dem Logpuffer dem Shared Fool und einem fest allokierten Bereich Der Blockpuffer bietet Platz f r die beim Systemstart festgelegte Anzahl von Datenbank Bl cken Im Logpuffer werden f r die Rekonstruktion der DB in Fehlerf llen Ver nderungen an dem Datenbankpuffer protokolliert bevor sie permanent gesichert werden Der Shared Pool nimmt haupts chlich SQL und PL SQL Befehle sowie den Dictionary Cache zur Beschleunigung der Befehle auf Der Dictionary Cache enth lt Informationen aus dem Data Dictionary die bei der Interpretation der Befehle ben tigt werden Logisch geseh
115. OCI Connects geeignet ist verwendet den Datenbankalias oder TNSName der in der tnsnames ora spezifiert wird wie bereits im vorangegangenen Kapitel ber die Konfiguration des SQL Nets beschrieben wurde Connection conn DriverManager getConnection jdbc oracle oci7 mydatabase scott tiger Scott ist in diesem Fall der Username Tiger das Passwort und mydatabase der TNSName der Datenbank Weiterhin ist angegeben da es sich um einen Aufruf des OCI7 Treibers handelt Eine weitere M glichkeit das ffnen der Datenbank durchzuf hren falls keine sauber erstellte Dateitnsnames ora vorliegt ist die Erg nzung des Strings um eine g ltige SQL Net Namensspezifikation Connection conn DriverManager getConnection jdAbc oracle oci7 description address host myhost protocol tcp port 1521 connect_data sid orcl scott tiger Man erkennt die hnlichkeit zu den Eintragungen in der Datei tnsnames ora Im Connectstring werden direkt der Hostname das Protokoll und der Port angegeben Weiterhin enth lt er eine SID System Identifier hier den String orc1 Username und Passwort bleiben gleich Diese Aufrufe gelten aber nur f r eine Verbindung ber das Oracle Call Interface von einem normalen Java Programm aus Im Falle eines Applets wird der Zugriff auf die Datenbank ber das Internet gew nscht Selbstverst ndlich ist f r diese Art der Verbindung das SQL Net nutzlos da nicht jeder Client Rechner
116. ON Abh ngige Segment Typen AUSBILDUNG ERFAHRUNG Abb 1 3 26 Datenbankstrukturdiagramm f r eine heterogene Struktur 57 Datenbanken AUSBILDUNG ASSEMBLER ERFAHRUNG ERFAHRUNG ASSEMBLER Abb 1 3 27 Occurrence Diagramm einer heterogenen Struktur b Homogene Strukturen E E Bsp NAME TODESART TODESDATUM Abb 1 3 28 Struktur einer Herschaftsfolge Diese Schemadarstellung beschreibt bspw die Folge deutscher K nige im Mittelalter Die Herrscher wurden gew hlt h ufig gab es sogar Gegenk nige 1 n Beziehung der Nachfolge In einer physischen Datenbank des hierarchischen Datenbankmodells sind aber nur 1 1 bzw 1 n Verbindungen zu realisieren Es mu also zu der vorliegenden Struktur eine Erg nzung ein Zeiger Segment geben damit die Forderung nach einer 1 n Verbindung erf llt werden kann Das Zeigersegment ist mit der Zwischensatzart im Netzwerk Datenbankmodell vergleichbar 58 Datenbanken NAME TODESART TODESDATUM Zeiger Segmenttyp Abb 1 3 29 Datenbankstrukturdiagramm zur Darstellung einer Herrschaftsfolge 4 Pfadabh ngigkeiten Die auf tieferen Ebenen vorkommenden Segmente sind ohne ihre Vorg nger Segmente unvollst ndig Bsp Gegeben ist folgende Datenbankstruktur ABTEILUNGS ABTEILUNGS MANAGER BUDGET NUMMER NAME ABTEILUNGEN ANGESTELLTE ANGESTELLTEN NAME GEHALT TITEL ADRESSE NUMMER STELLEN BERUFLICHE ENTWICKLUNG STELLEN
117. ORE UPDATE AFTER DELETE AFTER INSERT AFTER UPDATE 6 Trigger auf Anweisungsebene f r BEFORE DELETE BEFORE INSERT BEFORE UPDATE AFTER DELETE AFTER INSERT AFTER UPDATE Bsp Der folgende befehlsorientierte BEFORE Trigger speichert in einer Protokolldatei den Benutzernamen die verwendete Anweisung und das Datum rem TABELLE EVTL LOESCHEN drop table protokoll rem TABELLE ERZEUGEN create table protokoll Benutzer varchar2 30 Anweisung varchar2 20 Datum date rem DATENBANK TRIGGER ERZEUGEN create or replace trigger audit_angestellte before delete or insert or update on angestellte declare statement varchar2 20 begin if deleting then statement DELETE end if if inserting then statement INSERT end if if updating then statement UPDATE end if insert into protokoll values USER statement SYSDATE end 257 Datenbanken In einem Datenbank Trigger k nnen keine COMMIT oder ROLLBACK Anweisungen ausgef hrt werden Au erdem kann ein Trigger keine gespeicherte Funktion Prozedur oder kein vordefiniertes Unterprogramm aufrufen die eine COMMIT oder ROLLBACK Anweisung ausf hren 4 Stored Procedures Functions Packages PROCEDURES und FUNCTIONS Eine PROCEDURE kann folgenderma en definiert werden CREATE OR REPLACE PROCEDURE prozedurname parameterliste IS
118. Ohne WHERE Klausel wird der Inhalt det Tabelle gel scht z B DELETE FROM ANGESTELLTE 7 Zusammenfassung ALTER TABLE lt TABLE NAME gt ADD DROP MODIFY lt Spalten Spezifikationen gt gt 0 COMMIT Macht alle Ver nderungen seit der letzten Transaktion permanent und schlie t die aktuelle Transaktion ab Die mit INSERT DELETE und UPDATE gesetzten nderungen werden nicht sofort der Datenbank bergeben Der Benutzer sieht zwar eine konsistente Sicht seiner nderungen andere Benutzer sehen diese nderungen aber noch nicht Erst wenn der Befehl COMMIT gegeben wird gehen die gesammelten nderungen in die Datenbank ein und werden ffentlich 50 Vgl CREATE Befehl 108 Datenbanken CREATE UNIQUE NDEX lt Indextabellen Name gt ON lt TABLE NAME gt lt SPALTEN LISTE gt gt gt 1 CREATE TABLE lt Tabellen Name gt lt Spalten Name gt lt Datentyp gt lt Gr enangabe gt 2 lt Spaltenbedingung gt lt weitere Spalten CREATE TABLE lt Tabellen Name gt Spaltendefinitionl Spalten definitionN AS lt select Anweisung gt CREATE VIEW lt Tabellen Name gt AS lt Abfrage gt DELETE FROM lt Tabellen Name gt WHERE lt Bedingung gt NSERT INTO lt Tabellen Name gt lt Spalten
119. OpenLink Dieser Treiber kann jede Datenbank ansprechen die die Middleware unterst tzt 4 Der vierte Typ von JDBC Treibern ist ebenfalls rein in Java implementiert Er unterst tzt allerdings nicht das Dreischichten sonder nur das Zweischichtenmodell Auch der in der Beispielanwendung verwendete JDBC Treiber von Oracle ist in diese Kategorie einzuordnen Diese Treiber werden von den Herstellern f r ihr DBMS selbst entwickelt und ersetzen nach und nach immer mehr die althergebrach ten Typ 2 Treiber die als bergangsl sungen am Markt existierten W hrend ein Typ 4Treiber aus der Sicht des Anwendungsentwicklers als ein monolithisches St ck Java Software erscheint ist die interne Struktur komplexer Schlie lich kann der Treiber in seiner Eigenschaft als Java Klasse nicht unmittelbar Methoden des Datenbanksystems aufrufen bislang ist kein relationales DBMS in Java implementiert gt 2 Auch hier liegt zwischen Treiber und Datenbank eine Middleware nur mit dem Unterschied da es sich um eine propriet re Schicht des jeweiligen Herstellers handelt die nach au en hin unsichtbar und dem Entwickler nicht zug nglich ist Grundlagen der JDBC Anwendung Der Grundaufbau einer Datenbankanwendung unter Verwendung eines JDBC Treibers ist immer gleich Laden eines JDBC Treibers Das Laden der JDBC Klassen erfolgt ber zwei Import Anweisungen import java sql import java math Der erste Import stellt die reinen JDBC Klassen zur V
120. Organisation der Datenverarbeitung aufbereitet werden Methoden Recherchen Nachforschungen und Speicherung der Daten bilden durch diese Organisation der Datenverarbeitung ein Informationssystem zus tzliche Nachforschungen Organisation der Methodenbank Datenverarbeitung Abb 1 2 1 Aufbau eines Informationssystems Die Organisation der Datenverarbeitung ist weitgehend bestimmt durch die Anwendung Solche Organisationsformen haben sich herausgebildet f r Dokumentationssysteme Expertensysteme Data Warehouse Systeme 1 2 2 1 Dokumentations Systeme Informations bzw Dokumentations Systeme enthalten Stichwortkataloge Die Titel oder die Zusammenfassungen der zu dokumentierenden Zeitschriftenartikel oder B cher werden auf aussagenkr ftige Begriffe durchsucht Weggelassen werden dabei alle W rter die nichts zum Suchproze beitragen Artikel Pr positionen Konjunktionen wenig aussagekr ftige W rter Schlagwortkataloge Nicht aus dem urspr nglichen Dokument bestimmte Stichw rter sondern speziell ausgew hlte Schlagw rter aus einem Schlagwortregister bilden hier die Grundlage Der Benutzer mu seine Abfrage mit diesen Schlagw rtern Deskriptoren aufbauen vgl Schlagwortverzeichnis der Association of Computing Machinery ACM Deskriptoren k nnen aber zu Problemen der folgenden Art f hren das Synonymenproblem Mehrfachbenennung eines Begriffs das Polysemenproblem Verwendung einer B
121. Organisation der Objekte im Vordergrund steht die Nachrichten senden bzw empfangen Sequenz und Kollaborationsdiagramme sind isomorph so da man das eine in das andere umwandeln kann Sequenzdiagramme haben zwei Merkmale die sie von Kolloborationsdiagrammen unterscheiden 1 die Objektlebenslinie senkrechte gestrichelte Linie 2 Kontrollfokus langes schmales Rechteck T transient lt lt create gt gt Transaktion l t l setAction a d o i setValues d 3 4 setValues a CO committed lt lt destroy gt gt N lt Abb Sequenzdiagramm ae 79 Datenbanken Kollaborationsdiagramme haben zwei Merkmale die sie von Sequenzdiagrammen unterscheiden 1 Zur Anzeige wie ein Objekt mit einem anderen Objekt verbunden ist kann man einen Pfad Stereotyp am entferntesten Ende der Objektbeziehung angeben wie lt lt local gt gt zur Kennzeichnung dass dieses Objekt f r das zu sendende Objekt lokal ist 2 Zur Kennzeichnung der zeitlichen Anordnung schreibt man eine Nummer als Pr fix vor die Nachricht beginnend mit der Nummer 1 monoton wachsend f r jede weitere Nachricht f r den Kontrollfluss 1 lt lt create gt gt 2 setAction a d o 3 lt lt destroy gt gt lt lt local gt gt lt lt global gt transient 2 1 setValues d 3 4 2 2 setValues a CO Abb Kolloborationsdiagramm Zustandsdiagramm Ein Zustandsdiagramm zeigt einen Automaten der
122. Prof J rgen Sauer Datenbanken Skriptum zur Vorlesung im SS 2002 Datenbanken Datenbanken Inhaltsverzeichnis L Typologie der Datenbanksysteme 11 Einf hrung Grenzen der herk mmlichen Datenverarbeitung 1 2 Erl uterung von Begriffen 1 2 1 Datenbanken und Datenbanksysteme 1 2 2 _ Informationssysteme 1 2 2 1 Dokumentationssysteme 1 2 2 2 Data Warehouse 1 2 2 3 Expertensysteme 1 2 3 Klassifikation von Datenbanken 1 2 3 1 Grundlage Texte und Daten 1 2 3 2 Formatierte und unformatierte Datenbest nde 1 2 3 3 Daten und Speicherstrukturen 1 2 3 4 Grundfunktionen der Datenbanksoftware 1 2 3 5 Data Dictionary Data Directory Systeme 1 3 Datenmodelle f r formatierte Datenbanken 1 3 1 Beschreibung der Daten in formatierten Datenbanken 1 3 1 1 Entit tsmengen und ihre Beziehungen 1 3 1 2 Beziehungen und Beziehungsattribute 1 3 2 Das relationale Datenbankmodell 1 3 3 Das Entity Relationship Modell 1 3 4 Das netzwerkorientierte Datenbankmodell 1 3 5 Das hierarchische Datenbankmodell 1 3 6 Das Koexistenz Modell 1 3 7 Das Datenbankmodell f r objektorientierte Datenbanken 1 3 8 Die UML zur Beschreibung von Datenbankanwendungen 1 3 8 1 Die Diagramme der UML 1 3 8 2 Schema Modellierung 1 Ein logisches Datenbankschema modellieren 2 Ein physisches Datenbankschema modellieren 1 4 Standards 1 4 1 Das CODASYL Konzept 1 4 2 Integrated Management System IMS 1 4 3 System R und SQL 1 4 3 1 System R 1 4 3 2 Standard SQL
123. QL Das ist lediglich eine konzeptionelle Erweiterung von Embedded SQL SQL Anweisungen werden zur Laufzeit generiert und ausgef hrt Datenbankoperationen m ssen deshalb nicht im voraus feststehen Die Abfrage mu nicht vom Programmierer entwickelt sein Die Anweisung wird blicherweise in einem Puffer erstellt und mit folgendem Befehl ausgef hrt EXEC SOL PREPARE S FROM order Hier kann der FETCH Befehl ohne Angaben von Variablen ausgef hrt werden In einem solchen Fall gibt die Anweisung einen Zeiger auf ein Feld zur ck bzw die Summe der Feldelemente zur ck Das Programm bertr gt anschlie end die Felddaten in eigene Variablen Vier Methoden k nnen f r das Einbeziehen dynamischer SQL Anweisungen herangezogen werden 1 Methode Sie akzeptiert eine dynamische SQL Anweisung die sofort ber das EXECUTE IMMEDIATE Kommando ausgef hrt wird Die Anweisung darf keine Abfrage SELECT Anweisung sein und darf auch keine Platzhalter f r Eingabe host Variable besitzen 2 Methode Sie akzeptiert eine dynamische SQL Anweisung die ber die Kommandos PREPARE und EXECUTE ausgef hrt wird Die Anweisung darf keine Abfrage sein die Anzahl der Platzhalter f r Eingabe host Variable und die Datentypen f r Eingabe host Variable m ssen zur Precompile Zeit bekannt sein 3 Methode Hier ist die SQL Anweisung eine dynamische Anfrage die ber das PREPARE Kommando mit den Cursor Kommandos DECLARE OPEN FETCH und CLOSE verarb
124. SOL aufzurufen Einen geeigneten Satz von Funktionen f r den Datenbankzugriff unter Java enth lt die JDBC Java Database Connectivity Schnittstelle JDBC ist die Spezifikation einer Schnittstelle zwischen Client Anwendung und SQL Die Bearbeitung von Daten einer Datenbank durch ein Java Programm umfa t im Rahmen der JDBC Schnittstelle Zuerst ruft das Java Programm die getConnection Methode auf um das Connection Objekt zu erstellen Dann erg nzt es das Statement Objekt und bereitet die SQL Anweisungen vor Ein SQL Statement kann sofort ausgef hrt werden Statement Objekt oder ein kompilierbares Statement Prepared Statement Objekt oder ein Aufruf an eine gespeicherte Prozedur Callable Statement Objekt sein Falls die executeQuery Methode ausgef hrt wird wird ein Resultat Objekt zur ckgeschickt SQL Anweisungen wie update und delete verwenden die executeUpdate Methode Sie gibt einen ganzzahligen Wert zur ck der die Anzahl der Zeilen anzeigt die vom SQL Statement betroffen sind Der ResultSet enth lt Zeilen mit Daten die mit der Methode next abgearbeitet werden k nnen Bei einer Anwendung mit Transaktionsverarbeitung k nnen Methoden wie rollback und commit verwendet werden Zur Ausf hrung kann ein Java Programm ber mehrere JDBC Treiber angesteuert werden Jeder Treiber registriert sich beim JDBC Manager w hren der Initialisierung Beim Versuch sich mit einer Datenbank zu verbinden gibt das
125. STELLTE NAME ABTEILUNG BEZEICHNUNG JOB GEHALT FROM ANGESTELLTE ABTEILUNG JOB WHERE ANGESTELLTE ABT_ID ABTEILUNG ABT_ID AND ANGESTELLTE JOB_ID JOB JOB_ID SELECT FROM EINKOMMEN ANG NAME BEZEICHNUNG GEHALT Al Fritz Organisation und Datenverarbeitung 6000 A2 Tom Konstruktion 6000 A3 Werner Organisation und Datenverarbeitung 3000 A4 Gerd Vertrieb 3000 A5 Emil Personalabteilung 3000 A7 Erna Konstruktion 3000 A8 Rita Konstruktion 3000 A9 Ute Organisation und Datenverarbeitung 6000 A10 Willi Konstruktion 6000 A12 Anton Organisation und Datenverarbeitung 6000 A13 Josef Konstruktion 6000 A14 Maria Personalabteilung 3000 12 rows selected Bsp Bestimme aus der vorliegenden Sicht einkommen mit Hilfe einer SQL Anweisung eine Liste mit folgender Ausgabe Identifikation Name Gehalt des Angestellten das durchschnittliche Gehalt das in der Abteilung verdient wird der der Angestellte angeh rt ELECT A ANG_ID A NAME A GEHALT AVG ALL B GEHALT ROM EINKOMMEN A EINKOMMEN B HERE A BEZEICHNUNG B BEZEICHNUNG ROUP BY A ANG_ID A NAME A GEHALT azH un Allgemein k nnen ber views nicht nur Selektionen ausgef hrt werden sondern auch Einf
126. SUNG VORLESUNG DOZENT_NAME VORLESUNG MERKMAL Grundlagen bungen Einf hrung bungen Abb 2 1 6 Relation in VNF F r jede von einer bestimmten Person gehaltene Vorlesung gibt es eine identische Menge von Merkmalswerten Man sagt da Attribut MERKMAL ist mehrwertig abh ngig multi value dependent vom Attribut VORLESUNG bzw DOZENT Das f hrt zu der folgenden Definition einer mehrwertigen Abh ngigkeit In dem Relationenschema R A A A ist das Attribut A vom Attribut A mehrwertig abh ngig falls zu einem A Wert f r jede Kombination dieses A Werts mit einem A Wert eine identische Menge von A Werten erscheint Mehrwertige Abh ngigkeiten erscheinen in einer Relation immer paarweise Werden diese mehrwertigen Abh ngigkeiten beseitigt dann spricht man von einer Relation in vierter Normalform VNF Eine Relation ist in VNF falls sie in DNF bzw BCNF ist und keine mehrwertigen Abh ngigkeiten zeigt Verst e gegen die vierte Normalform entstehen h ufig bereits in der Entwurfsphase So h tte man im vorliegenden Beispiel erkennen k nnen da die Beziehung zwischen VORLESUNG und DOZENT bzw VORLESUNG und MERKMAL voneinander unabh ngig sind und keine Dreifachbeziehung darstellen 2 1 3 Der Normalisierungsproze Zwei Methoden wurden f r den Entwurf relationaler Datenbanken vorgeschlagen Die erste Methode ist ein Zerlegungsproze Ausgangspunkt ist ein universelles Schema Dieses Schema ist eine komple
127. T Kommandos muss ein odefin Kommando abgegeben werden kA erg odefin cursor_data_area 1 angid sizeof angid YPE_STRING CSHOLE 0 Geha 05 1 Erlen Creodd oci_error erg odefin angid cursor_data_area 1 erg odefin cursor_data_area 2 angnam sizeof angnam TYPE_STRING 1 short 0 tehar y 0 I L amp rlen reod oci_error erg odefin angnam cursor_data_area 1 erg odefin cursor_data_area 3 anggeb sizeof anggeb YPE_STRING 1 Short 7y 07 tehar j Op 1 l amp rlen Ereod oci_error erg odefin anggeb cursor_data_area 1 x Definition aller C Programm Variablen die zur UVebergabe von Daten aus dem C Programm an die 27 SQL Abfrage verwendet werden sollen F erg obndrv cursor_data_area konst 1 konst sizeof konst TYPE_STRING 1 short y O0 char 0 1 1 oci_error erg obndrv konst cursor_data_area 0 Jx Wertzuweisung an diese Uebergabevariablen Hier z B KONSTRUKTION PERSONALABTEILUNG a Gross und Kleinschreibung muessen bei Strings x beachtet werden printf Bitte geben Sie die Abteilung an n gets konst printf konst s n konst Muss mit Leerzeichen aufgefuellt sein while strlen konst lt 40 Streat konst Jx EA Durchfuehrung der SQL Abfrage Nach Durchfuehrung des oexec Kommandos liegen die gefundenen Loes ungen im angegeben
128. Tabellen_Name 256 Datenbanken Ein Trigger kann f r mindestens ein oder mehrere Ereignisse definiert werden Ist der Trigger f r mehrere Ereignisse definiert kann innerhalb des Trigger Runpfs das jeweilige Ereignis mit if inserting then if updating then oder if deleting then abgefragt werden Trigger Typ FOR EACH ROW Ohne diese Klausel ist der Trigger befehlsorientiert anderfalls zeilenorientiert Ein befehlsorientierter Trigger wird genau einmal nach der Ausf hrung desjenigen Befehls ausgef hrt der das Ereignis ausl st Ein zeilenorientierter Trigger wird einmal je Datensatz ausgef hrt der durch den Befehl ver ndert wurde Bei zeilenorientierten Triggern ist der Zugriff auf Werte vor und nach der nderung mit OLD lt Spaltenname gt und NEW lt Spaltenname gt m glich Bei Update Triggern k nnen OLD lt Spaltenname gt und NEW lt Spaltenname gt bei INSERT Triggern nur NEW lt Spaltenname gt und bei Delete Triggern nur OLD lt Spaltenname gt verwendet werden Trigger Restriktion WHEN Pr dikat Trigger Restriktionen stellen Bedingungen dar unter denen der Trigger ausgef hrt werden soll oder nicht Sie werden in Pr dikaten formuliert Trigger Rumpf Das ist ein anonymer PL SQL Block Kombiniert man die 3 Ereignisse INSERT UPDATE DELETE mit den 2 erlaubten Typen dann k nnen je Tabelle 12 Trigger definiert werden 6 Trigger auf Zeilenebene f r BEFORE DELETE BEFORE INSERT BEF
129. Variable auftauchen Negation as Failure kann nur dann sicher verwendet werden wenn keine Variablen vorliegen oder wenn Variable der negierten Ziele vorher ausreichend instanziiert werden Eine solche Instanziierung kann der Programmierer wie das vorliegende Beispiel zeigt durch Umordnen der Ziele erreichen 198 Datenbanken Disjunktion Eine logische ODER Verbindung wird durch das Semikolon gekennzeichnet z B ist_student X ist_informatik_student X Disjunktion ist_mathematik_student X Anstelle dieser Schreibweise ist es m glich die Komponenten der ODER Verbindung als alternative Regeln in der folgenden Form untereinander aufzuf hren ist_student X ist_informatik_student X ist_student X ist_mathematik_student X Der Universalalgorithmus Die spezielle Bedeutung von Prolog als KtSprache liegt in der Bereitstellung eines universellen Algorithmus Konventionelle Programmierung benutzt f r jedes spezifische Problem einen eigenen angepa ten Algorithmus Die Architektur der Rechner von Neumann Computer ist f r spezielle algorithmische L sungswege besonders gut geeignet Das f hrt zu der folgenden Vorgehensweise Problem L sung Daten __ gt Abb Probleml sen mit angepa tem Algorithmus Die logische Programmierung schl gt einen anderen Weg ein Sie versucht nur den Problembereich angemessen zu beschreiben die eigentliche Probleml sung auf dem Rechner bernimmt ein
130. ZENT VORLESUNG besteht und DOZENT ein Schl sselkandidat ist Die L sung zeigt folgende M ngel a Bevor nicht ein Student die Vorlesung belegt kann kein Dozent der die Vorlesung h lt eingetragen werden b F r jeden Studenten der eine bestimmte Vorlesung belegt hat wird der Dozent der die Vorlesung h lt redundant gespeichert L sung Sie kann durch Zerlegung der Relation in zwei Relationen erreicht werden Die Attribute die die BCNF verletzen werden in eine abgetrennte Tabelle heraus gezogen Das determinierende Attribut bernimmt die Funktion des Prim rschl ssels TRIFFT DOZENT STUDENT HAELT DOZENT VORLESUNG Der Grund f r die fehlerhafte L sungsm glichkeit unter 1 und 2 liegt in der falschen Darstellung der Beziehung DOZENT STUDENT VORLESUNG Es liegt hier keine Dreifachbeziehung vor sondern nur zwei unabh ngige Zweierbeziehungen wie es das folgende ERM Diagramm zeigt VORLESUNG Abb 2 1 3 ERM Diagramm zur Beschreibung der Zweifachbeziehungen Ziel eines Datenbankentwurfs ist ein Datenbankschema dessen Relationen schemata m glichst in BCNF sind Das kann durch fortschreitendes Zerlegen von Schemata die diese Kriterien nicht erf llen erreicht werden 163 Datenbanken Vierte Normalform VNF Ein einf hrendes Beispiel Gegeben ist die folgende nicht normalisierte Relation VORLESUNG_DOZENT VORLESUNG DOZENTEN_NAME DB Datenbanken J rgen
131. Zahl der Spalten die vom SQL Statement betroffen sind zur ck Die Klasse PreparedStatement Beim PreparedStatement Objekt bereitet das Anwendungsprogramm ein SQL Statement mit der java sql Connection prepeareStatement Methode vor Eine PreparedSatetement Methode nimmt eine SQL Zeichenkette die an das zugrundeliegende DBMS weitergegeben wird Das DBMS f hrt die SQL Anweisung aber nicht aus Die Methoden executeQuery executeUpdate und execute nehmen keine Parameter auf sondern nur Aufrufe f r das DBMS das bereits optimierte SQL Statement auszuf hren Die Klasse CallableStatement Ein CallableStatement Objekt wird von der prepared Methode eines Connection Objekts erzeugt Das Inteface ResultSet Die Ausf hrung eines Statements generiert eine Art virtuelle Tabelle die in einem ResultSet abgespeichert ist Die Datens tze sind sequentiell angeordnet Innerhalb eines Datensatzes kann in beliebiger Reihenfolge auf ein Attribut positioniert werden Ein ResultSet stellt einen Cursor zur Verf gung der auf den jeweils aktuellen Datensatz verweist Nach der Initialisierung des ResultSet steht dieser Cursor allerdings vor dem ersten Datensatz Mit der Methode next kann zum ersten Datensatz gesprungen werden Die Spalten in einem Datensatz k nnen ber den Index beginnend bei 1 oder aber den Spaltennamen angesprochen werden Der Spaltenname wird case insensitive behandelt Das Auslesen der Werte
132. Ziels mit einer alternativen Klausel Die R ckkehr ist verbunden mit der Freigabe der Variablen die seit dem ersten Anlaufen des Choicepoint instanziiert wurden Bsp Gegeben sind Fakten eines Prolog Programms das eine Tabelle einer relationalen Datenbank beschreibt boss_von josef anton juergen josef anna maria boss_von boss_von boss_von maria anton Eine Anfrage soll den Superboss ermitteln boss_von X Y boss_von Y Z 1 Der 1 Fakt der Wissensbasis wird mit der 1 Teilabfrage abgeglichen Das f hrt zu x josef Y anton 2 Der 2 Teil der Anfrage startet eine Suche nach einem Fakt mit dem 1 Argument anton Da es einen solchen Fakt nicht gibt kommt es zur Fehlanzeige 3 Backtracking f hrt zu einer anderen Auswahl Der 2 Fakt der Wissensbasis wird mit der 1 Teilabfrage abgeglichen und f hrt zum Ergebnis 196 Datenbanken X juergen Y josef Die Suche nach einem Fakt mit dem 1 Argument josef ist erfolgreich Es ergibt sich Z anton und damit ist die Abfrage erfolgreich abgewickelt Es wird nach einem weiteren Fakt gesucht dessen 1 Argument josef ist Einen solchen Fakt gibt es nicht Damit ist auf die 1 Teilabfrage zur ckverzweigt worden Es kann ein neuer Versuch gestartet werden Der erneute Abgleich f hrt auf X anna Y maria 9 Es wird jetzt nach einem Fakt gesucht dessen 1 Argument maria ist Ein solcher Fakt existiert und das f hrt zum Ergebnis z anton on
133. _id and angestellte job_id job job_id and job titel Systemplaner and to_char gebdatum yy gt 50 2 INNER JOIN Bestimme die Angestellten die im gleichen Jahr geboren sind select a ang_id a name b ang_id b name from angestellte a angestellte b where to_char a gebdatum yy to_char b gebdatum yy and a name lt gt b name ANG NAME ANG NAME A12 Anton A3 Werner A3 Werner A12 Anton A13 Josef A6 Uwe A6 Uwe A13 Josef A7 Erna A4 Gerd A4 Gerd A7 Erna 6 rows selected 3 Verbundanweisung kombiniert mit einer Unterabfrage die ein Ergebnis liefert Stelle eine Liste von Angestellten zusammen die am meisten verdienen select angestellte ang_id angestellte nam from angestellte job where angestellte job_id job job_id and job gehalt select max job gehalt from job 33 vgl e eingebaute Funktionen Formatangaben 230 Datenbanken 4 Verbundanweisung kombiniert mit einer Unterabfrage die ein Ergebnis liefert Bestimme alle Angestellten deren Gehalt den Durchschnitt der jeweiligen Abteilung der sie angehoeren bertreffen select al abt_id al name jl gehalt from angestellte al job j1 where al job_id j1 job_id and jl gehalt gt select avg j2 gehalt from angestellte a2 job j2 where a2 job_id j2 job_id and a2 abt_id al abt_id order by al abt_id 5 Verbundanweisung kombiniert mit einer Unterabfrage die mehr als ein Er
134. _wert d_format s_wert ist eine Zeichenfolgenliteral eine Zeichenfolge einer Spalte oder eine von einer zeichenfolge zur ckgegebene Zeichenfolge d_format ist ein g ltiges Oracle Datumsformat TO_MULTI_BYTE s Wandelt alle Einzelbyte Zeichen in ihr Multibyte Zeichen quivalent um TO _ NUMBER s1 s2 s3 Wandelt s1 It Format s2 und Sprache s3 in einen numerischen Wert um TO_SINGLE_BYTE s Wandelt alle Multibyte Zeichen in ihr Einzelbate Zeichen Aquivalent um Wird ein Datumswert umgewandelt dann k nnen folgende Formatangaben verwendet werden Formatangabe Bedeutung Bun S bedeutet Angaben vor Christi Geburt werden mit einem Minuszeichen gekennzeichnet KTITEEE TE TE FE IDDD Tag des Jahres 1 366 Tag des Monats 1 31 DAY ausgeschriebener Wochentag SUNDAY SATURDAY AM PM Meridian Kennzeichnung Quartal des Jahres 1 4 W Woche des Monats 1 5 A M P M Meridian Kennzeichnung mit Punkten 12 HH HH12 Stunden des Tages 1 12 Tag der Woche 1 7 Sonntag 1 M o Mel 42 i hat den Typ ROWID 252 Datenbanken Sonstige Funktionen R ckgabewert DECODE u u1 u243 44 Vergleicht einen Ausdruck u mit den vorgegebenen Ergebnissen u1 etc und gibt den entsprechenden Wert u2 etc zur ck DUMP u1 u2 Interne Darstellung von u1 It Format u2 GREATEST u u1 u2 Gr ter Wert der Liste LEAST u u1 u2 Kleinster Wert der Liste USERE 0 ale ne nn I f PU SQL Utilit
135. als SQL CLIHNorm bernommen zu werden Die ODBC Ebenen Eine ODBC Anwendung hat f nf logische Ebenen Layer Anwendung ODBC Schnittstelle Treibermanager Treiber und Datenquelle Application Layer Driver Manager SQL Server Oracle Driver SQL Server DB Oracle DB Abb Architekturschema mit f nf ODBC Ebenen Die Anwendungs Ebene ist in Sprachen wie Java Visual Basic und C geschrieben Die Anwendung verwendet die ODBC Funktionen in der ODBC Schnittstelle zur Interaktion mit der DB Die Treibermanager Ebene ist Teil von ODBC Da eine Anwendung nicht mit mehr als einer DB verbunden werden kann stellt der Treiber Manager sicher da das richtige DBMS alle Programmaufrufe bekommt die an es gerichtet sind Der Treiber ist die Komonente die die spezifische DB kennt Normalerweise ist der Treiber einer spezifischen DB zugewiesen z B einem Access Treiber einem SQL Server Treiber 279 Datenbanken einem Oracle Treiber Der Treiber k mmert sich um Das Schicken der Anfrage an die DB das Zur ckbekommen der Datenbank Daten die bermittlung der Daten an die Anwendung Bei Datenbanken die sich in einem lokalen Netzwerk oder im Internet befinden bernimmt der Teiber auch die Netzwerkkommunikation ODBC definiert f r die Treiber Konformit tslevel f r SQL und AP Grammatik API umfa t alle Funktionen in der SAG CLI Spezifikation Konformit tsstufe Ausrichten und Freigeben einer Verbindung
136. alytical Processing OLAP erf llen sollen Merdimensionale konzeptionelle Sicht auf die Daten Transparenz und Integration in die operativen Systeme Zug nglichkeit unterschiedlicher Datenbanken ber eine logische Gesamtsicht stabile volumenunabh ngige Antwortzeiten Client Server Architektur Mehrbenutzerunterst tzung flexibles Berichtswesen unbeschr nkt dimensions bergreifende Operatoren 1 2 2 3 Expertensysteme Ein Expertensystem ist ein Programm das sich in irgendeinem Anwendungs bereich wie ein Experte verh lt Expertensysteme m ssen f hig sein Probleme zu l sen die Expertenwissen in einem bestimmten Bereich verlangen Sie sollen in irgendeiner Form Wissen verarbeiten wissensbasierte Systeme Ein voll ausgebautes Expertensystem besteht im allg aus 5 verschiedenen Komponenten 3 Die Hersteller z B Oracle Sybase Software A G IBM Siemens etc vermarkten unter diesem Schlagwort alle m glichen Werkzeuge die mit der Verwaltung Integration und Auswertung gro er Datenbest nde zu tun haben 17 Datenbanken Die Wissensbasis bildet die Grundlage Sie enth lt die Kenntnisse des Experten meistens in Form von Fakten und Regeln oder auch als Rahmen Beschreibung von Objekten und Skripten Beschreibung von Abl ufen Die Inferenz Maschine inference machine dient der Wissensauswertung Sie sucht und verkn pft Fakten und Regeln nach einer vorgegebenen Strategie und produziert Forderung
137. an 61 Datenbanken BESTELLUNG Bestell Nr Lieferant Nr Bestelldatum Liefertermin Preis LIEFERANT Lieferant Nr Name Adresse Information BESTELLPOSITION ARTIKEL Artikel Nr Bestellmenge Preis Artikel Nr Name Beschr Vorrat PREISNOTIERUNG Artikel Nr Preis Lieferant Bestell Nr Abb 1 3 32 Schema zum maschinellen Abwicklung des Bestellwesens Der Schema Entwurf resultiert aus den unmittelbaren Beziehungen zwischen den Objekt bzw Satztypen Au erdem gibt es noch Querbeziehungen Es handelt sich dabei um erg nzende nicht unbedingt f r den unmittelbaren Verwendungszweck notwendige Informationen Subschema Das Schema ist die allumfassende Darstellung der Datenelemente und Satztypen die in der DB gespeichert sind Der jeweilige Anwender braucht davon nur einen Teil ein vom Schema abgeleitetes Subschema Sicht view Bsp 1 Anwendungsprogrammierer A hat die Aufgabe Maschinelle Abwicklung des Bestellwesens A braucht dazu Sicht Bestell Nr Lieferant Nr Bestell Name datum Bestellmenge Abb 1 3 33 Sicht des Anwendungsprogrammierers A 62 Datenbanken 2 Anwendungsprogrammierer B ist f r die maschinelle Abwicklung der Nachbestellungen aus dem Lagerwesen zust ndig B braucht dazu die Sicht Bestell Nr Lieferant Name Bestellmenge Bestelldatum Abb 1 3 34 Sicht des Anwendungsprogrammiereres B Das konzeptuelle Schema soll eine vollst ndige redundanzfreie und neutrale Darste
138. andeln Eine Prozedur wird mit dem reservierten Wort PROCEDURE eine Funktion mit FUNCTION eingeleitet Danach kann eine Parameterliste angegeben werden Bei Funktionsdefinitionen mu zus tzlich der Datentyp des R ckgabewerts durch die RETURN Klausel angegeben werden Ohne Defintionskopf ist das PL SQL Programm ein anonymer Block Dieser ist vergleichbar mit einer Prozedur ohne Parameter Anonyme Bl cke kommen h ufig in Skripten vor die in einer SQL Plus Sitzung ausgef hrt werden Bsp Einfacher anonymer PL SQL Block der einige Testdaten erzeugt rem loeschen Testtabell drop table test_tabelle rem Erzeugen der Tabell create table test_tabelle satz_nummer int aktuelles_datum date rem PL SOL Prozedur zum Initialisieren der Tabell DECLARE max_satzanzahl CONSTANT int 100 T int 1 BEGIN FOR i IN 1 max_satzanzahl LOOP INSERT INTO test_tabelle satz_nummer aktuelles_datum VALUES i SYSDATE END LOOP 240 Datenbanken Deklarationsteile reservieren Speicherplatz f r Variable und Konstante Der Deklarationsteil in einem PL SQL Block ist optional und beginnt mit dem Schl sselwort declare Alle Variablen und Konstanten die in PL SQL Anweisungen verwendet werden m ssen deklariert werden Jede Deklaration einer Variablen oder Konstanten besteht aus ihrem Namen den Datentyp und einem optionalen Initialisierungswert Die Deklaration von Variablen und K
139. andte Methoden Die h chste Klasse in der Hierarchie ist der DriverManager mit Treiberinformationen Statusinformationen Wenn ein Treiber geladen ist hat er sich beim DriverManager registriert Der DriverManager ist in der Lage eine gr ere Anzahl von JDBC Treibern zu verwalten Sollte in der Systemumgebung ein JDBC Treiber als Standard definiert sein so versucht der DriverManager diesen zu laden Zudem k nnen dynamisch jederzeit weitere Treiber nachgeladen werden Dies geschieht ber den Aufruf des ClassLoaders ber Class forName 288 Datenbanken Anhand der JDBC URL versucht der DriverManager bei Aufruf der Methode getConnection den richtigen Treiber ausfindg zu machen und die Datenbankverbindung zu initialisieren Methoden der Klasse jdbc sql Driver Methoden Name Return Typ String urljava util Properties info acceptsURL String ur Methoden der Klasse java sql DriverManager String ur Driver driver getLogStream 0 JavaioPrintStream String message Klassen lnitialisierungsroutinen Das Interface Connection Eine Connection repr sentiert immer ane Sitzung mit einer spezifischen Datenbank Jede Connection definiert einen Kontext Im G ltigkeitsbereich dieses Kontexts werden SQL Anweisungen an eine Datenbank gesandt und gegebenenfalls Ergebnismengen zur ckgeliefert Weiterhin k nnen ber eine Connection Metadaten ber die Datenbank erhalten werden Jede Connection i
140. ariert werden Es mu ein DDL bersetzer DDL Prozessor zur Verf gung stehen um Objektcode zu erzeugen es Ladebefehle Laden der Datenbank bzw allg Utilities zurAdministration geben eine Redefinition der Struktur leicht m glich sein zur Ein Ausgabe von Daten der Datenbank eine M glichkeit zur Daten manipulation vorhanden sein Diese M glichkeit kann in einer Datenmanipulations Sprache DML vorliegen die in eine gastgebende herk mmliche Programmiersprache Cobol Pascal C eingebettet ist Es kann aber auch eine eigenst ndige meistens abfrageorientierte Sprache QL vorliegen In vielen Datenbanksystemen gibt es gleichzeitig beide M glichkeiten Zu diesen Datenbankaufgaben kommt noch als weitere Aufgabe hinzu System steuerung zur Koordinierung der verschiedenen Auftr ge innerhalb des Datenbanksystems und Datenkommunikation zum Nachrichtenaustausch mit Au enstellen Transaktionsbetrieb Benutzerschnittstelle Hardware Abb 1 2 7 berblick zu den Komponenten eines DB DC Systems Datenbanken Aufgaben eines DC Systems Bereitstellen einer Schnittstelle f r Anwender Datenbankprogramm die die Eigenheiten der Datenstationen und die techn Eigenschaften der Daten bertragung verdeckt Abwicklung des Nachrichtentausches zwischen einer Vielzahl von Datenstationen und den Anwender Datenbankprogrammen Weiterleitung der Nachrichten in Abh ngigkeit von Priorit t Betriebsmittel verf gbarkeit und Schu
141. atei kompiliert wurden Wenn der Server ein Windows NT Rechner ist k nnen CGl Scripts auch EXE Dateien sein die mit 32 Bit Compilern f r C Pascal Visual Basic usw erzeugt wurden Die meisten heutigen CGl Programme sind in der Unix Shell Sprache oder in Perl geschrieben Die Unix Shell Sprache wird von allen Unix Rechnern interpretiert F r Perl mu ein entsprechender Interpreter installiert sein 88 Aus Sicht des Mieters von Speicherplatz auf einem WWW Server steht die CGI Schnittstelle in Form eines bestimmten Verzeichnisses zur Verf gung Meistens hat dieses Verzeichnis den Namen cgi bin In diesem Verzeichnis k nnen Programme abgelegt werden die CGI Aufgaben bernehmen 141 Datenbanken Client Anwender WWW Server CGi Skript aufrufen Formular Datenbank abschicken Sever Rechner HTML Client Datei Rechner Formular bertragen erzeugen Datenbank abfragen aus Abfrage Report aus DB Abfragerepor auswerten Automatisch erzeugte HTML Datei automatisch erzeugte HTML Dafei HTML Datei bertragen In dem Beispiel kann der Anwender in einer angezeigten HTML Datei i Formular Daten eingeben zum Beispiel eine Suche in einer Datenbank formulieren Nach dem Abschicken des Formulars an den Server Rechner wird ein CGl Programm aufgerufen Das CGl Programm setzt die vom Anwender eingegebenen Daten in eine Datenbankabfrage um Die Datenbankanwendung_ liefert die Suchergebn
142. aten aus dem C Programm an die SOL Abfrage verwendet werden sollen OEXE Durchf hrung einer SOL Anfrage Nach Durch f hrung des oexec Kommandos liegen die gefundenen L sungen im angegebenen CURSOR DATA AREA bereit und k nnen mit OFETCH ab geholt werden gt OFETCH Jeweils eine Zeil iner Tabell ird gem dem SQOL Ausfruf bereitgestellt EOF Falls das Ende eines OFETCH noch nicht erreicht ist wird der OFETCH Aufruf zur ja Bestimmung der n chsten Zeile ausgef hrt Falls alle Zeile bereitgestellt sind folgt vtl eine weitere SQL Anweisung Sprung nach OSQL3 OCLOSE Schlie en des SQL CURSOR v OLOGOFF Ausketten aus ORACLE f Das Programm ermittelt Loesungen fuer die SOL X Abfrage Ef Ermittle alle Angestellten die in der Abteilung x Konstruktion beschaeftigt sind x 297 SELECT ANGESTELLTE ID ANGESTELLTE NAME ANGESTELLTE GEBJAHR s FROM ANGESTELLTE ABTEILUNG peA 295 Datenbanken 1 WHERE ANGESTELLTE ABT_ID ABTEILUNG ID AND x IR ABTEILUNG BEZ konst 2 HR IR include lt stdio h gt 4 A Groesse der ORACLE Kommunikations Datenstrukturen AF x EY N define LOGON_DATA_SIZ 4 define CURSOR_DATA_SIZE 64 LE s7 Codes fuer ORACLE Datentypen A E 37 define TYPE_INTEGER 3 define TYPE_STRING 5
143. auf dessen Funktionalit t zur ck Dadurch kann man bereits zu einem fr hen Zeitpunkt auf jede x beliebige ODBC Datenbank zugreifen Allerdings hat diese Methode einen gewichtigen Nachteil der JDBC Treiber besteht nicht aus reinem Java Bytecode sondern zu einem Gro teil auch aus dem ODBC Treiber d h die Portabilit t des Treibers ist nicht gew hrleistet Clients die diesen Treiber verwenden sind dadurch an die Plattform gebunden auf der der ODBC Treiber l uft und sind zus tzlich auf die Installation des ODEC Treibers auf jedem Client Rechner angewiesen Ein Typ 1 Treiber ist daher nur eine bergangsl sung f r ODBC Datenbanken f r die noch kein JDBC Treiber existiert 2 Ein Typ 2 Treiber ist eine attraktive L sung f r diejenigen Datenbankhersteller die noch nicht in der Lage waren einen eigenen JDBC Treiber Typ 3 oder Typ 4 zur Verf gung zu stellen Dieser Treibertyp ist als aufgesetzte Schicht schnell und einfach zu implementieren da die Grundfunktionalit t bereits in einem alten z B in C geschriebenen Treiber vorhanden ist Auch hier handelt es sich demnach nur um eine plattformspezifische bergangsl sung 3 Typ 3 ist ein vollst ndig in Java geschriebener Treiber und bietet somit die gr tm gliche Flexibilit t Er f gt sich nahtlos in das Dreischichtenmodell ein Er kommuniziert ber das Netzwerk mit einer Middleware Diese bearbeitet s mtliche Anfragen Ein Beispiel f r einen Typ 3 Treiber ist der Treiber der Firma
144. aur Mit Hilfe des Backtracking k nnen nacheinander alle Objekte erzeugt werden die irgendein Ziel erf llen Backtracking mu manchmal u U auch verhindert werden Dies geschieht mit Hilfe des cut abgek rzt durch das Zeichen Zwei F lle sind zu unterscheiden 1 Steht der cut am Ende der Regel und das System erreicht den cut dann ist das Pr dikat erfolgreich und beim Backtracking werden keine alternativen L sungswege f r das Backtracking gesucht 2 Stehen hinter dem cut noch weitere Ziele so f hrt Backtracking innerhalb der Regel nur zum cut aber nicht weiter zur ck Au erdem ist dann die Entscheidung welche Klausel f r das Pr dikat gepr ft werden soll eingefroren Damit ist der Aufruf des Pr dikats in dem der cut programmiert ist falsch Der Cut sagt Prolog wie es ein bestimmtes Ziel beweisen soll Es handelt sich um ein metalogisches Symbol Eine besondere Bedeutung hat die fail Kombination Hiermit wird gezielt be stimmt da bei Benutzung einer bestimmten Klausel eines Pr dikats dieses falsch ist Bsp verschieden X Y ist wahr wenn X und Y verschieden sind d h X und Y passen nicht zusammen matchen nicht In einer Regel k nnte man das so formulieren Wenn X und Y zusammen passen dann scheitert verschieden X Y In Prolog l t sich diese Regel so ausdr cken verschieden X X fail verschieden X Y In vielen Prolog Dialekten gibt es das Pr dikat repeat Es l t sich le
145. ausel die immer dem Wert falsch entspricht Horn Klauseln sind Klauseln bzw Clausen auf deren linke Seite nur eine einzige atomare Formel stehen darf b apna n 186 Datenbanken Resolutionsprinzip Logik kann die Grundlage f r automatische Theorembeweis f r logisches Pro grammieren und f r die Darstellung von Wissen sein Dies sind verschiedene aber verwandte Aktivit ten Sie beinhalten den Mechanismus der Inferenz d h Wichtig ist vor allem die Frage welche Schl sse man aus einer gegebenen Menge von Klauseln ziehen kann und welche Schl sse zu einer L sung eines gegebenen Problems f hren Theorembeweiser benutzen nur eine einzige Inferenzregel die Resolution 1965 von Robinson beschrieben Sie kann als Verallgemeinerung von bekannten Regeln betrachtet werden z B dem Modus Ponens der bspw b ausa bund a ableitet dem Modus Tollens der bspw a ausa bund b ableitet der Kettenregel die bspw a causa bundb c ableitet Beim Resolutionsverfahren wird beweismethodisch ein Widerspruchsverfahren gef hrt Gelingt aus der Negation der zu beweisenden Klauseln ein Widerspruch herzuleiten so ist der Beweis gelungen Der Widerspruch ist festgelegt sobald die leere Klausel abgeleitet ist 2 2 2 3 Logische Systeme Prolog Grundlagen Grundlage von Prolog vor allem der in Prolog implementierten Logiksprache ist eine Teilmenge der Pr dikatenlogik die Horn Logik Prolog Programme sind Kon
146. avon ob die Tabelle ber einen auf dieser Spalte kasierenden Index verf gt oder nicht Ein Index kann sich nicht aus mehr als 16 Spalten zusammensetzen Ein Index speichert keine NULL Werte SQL verf gt ber keine Anweisung mit der der Inhalt eines Indexes berpr ft werden kann Ein Index kann nur f r eine Tabelle jedoch nicht f r eine Datensicht view erstellt werden Tabellen bzw Sichten views k nnen auch durch Auswahl aus eine anderen Tabelle erstellt werden create table bzw create view mit einer Unterabfrage Bsp Erzeugen einer Tabelle ABTKOSTEN CREATE TABLE ABTKOSTEN ABT_ID NOT NULL BEZEICHNUNG NOT NULL GEHAELTER AS SELECT DISTINCT ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG SUM JOB GEHALT FROM ABTEILUNG ANGESTELLTE JOB WHERE ABTEILUNG ABT_ID ANGESTELLTE ABT_ID AND JOB JOB_ID ANGESTELLTE JOB_ID GROUP BY ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG Eine Datensicht view ist eine gespeicherte Abfrage deren Ergebnis auf einer Abfrage einer oder mehrerer Tabellen beruht und gespeichert ist 105 Datenbanken Bsp Erstelle eine Sicht Einkommen die Identifikation Name Abteilungs bezeichnung Gehalt des Angestellten enth lt CREATE VIEW EINKOMMEN ANG_ID NAME BEZEICHNUNG GEHALT AS SELECT ANGESTELLTE ANG_ID ANGE
147. bauendes hypertext basiertes System vorgeschlagen Hypertext wird dabei als Weg verstanden Informationen derart miteinander zu verkn pfen da sich der Benutzer nach eigenem Belieben durch die Informationen bewegen kann Die Verkn pfungen erscheinen dabei als Knoten in einem verwobenen Netz Verweis Dokument Abb 1 5 12 Struktur des World Wide Web Eine verteilte Hypermedia Anwendung kann als Netz angesehen werden dessen Knoten Text Grafik Ton darstellen Verbindungen Links kennzeichnen die Beziehungen zwischen den Knoten und werden von der Systemsoftware verwaltet Die m glichen Verbindungen werden im Dokument Fenster an der entsprechenden Stelle gekennzeichnet Der Benutzer kann durch Anklicken derartiger Markierungen im Dokument oder durch Weiterbl ttern bzw R cksprung zu einem fr heren Knoten fortfahren solange er will Dokumente werden in einem speziellen Format dem Hypertext Format gespeichert Zum Erstellen von Dokumenten steht die Seitenbeschreibungssprache HTML Hypertext Markup Language zur Verf gung Die wichtigsten HTML Steueranweisungen sind Hyperlinks Damit kann man auf Dokumente verweisen die irgendein anderer Rechner im Internet bereitstellt Diese Verweise bilden ein weltumspannendes Netz das www Das Hypertext Transfer Protocol HTTP dient zur bertragung von Informationen aus dem World Wide Web WWW HTTP ist ein objektorientiertes Protokoll zur einfachen bertragung von Hypertext Dokumen
148. beiter frei gelassen werden Datenbanken Folgerungen In der herk mmlichen Datenverarbeitung treten eine Reihe von Problemen auf Diese Probleme verhindern den Aufbau von Informationssystemen Folgende Forderungen sind daher von einem System zu erf llen das diese Probleme l sen soll 1 Keine Programm nderung bei Erweiterung von Datens tzen 2 Zugriff nur auf solche Daten im Programm die f r die Probleml sung notwendig sind 3 Redundanzfreie Speicherung von Informationen 4 Beliebige Anzahl von Einf gungen solcher Informationen die mehrfach auftreten k nnen z B mehrere Ausbildungen der Mitarbeiter 1 2 Erl uterung von Begriffen 1 2 1 Datenbanken und Datenbanksyteme Die Grenzen herk mmlicher nicht integrierter Datenverarbeitung sog Insell sungen sind zu berwinden Das kann durch eine zentrale Datenhaltung in einem Datenbanksystem erreicht werden Datenbanken sind in der geschilderten Weise die Verwirklichung des Gedankens der integrierten Datenverarbeitung Was versteht man demnach unter einer Datenbank bzw einem Datenbank system Eine Datenbank DB ist eine Sammlung von Datenbest nden in einer hochgradig integrierten Speicherung Speicher mit Direktzugriff mit vielf ltigen Verarbeitungsm glichkeiten Ein Datenbanksystem DBS ist ein Software Paket das neutral gro e Datenmengen verwaltet die Beziehungen der m glichst redundanzfreien Daten zueinander kontrolliert unterschiedliche Verarbeitu
149. berufliche T tigkeit kann von mehreren Angestellten wahr genommen werden Ein Angestellter besitzt mehrere Qualifikationen Eine bestimmte Qualifikation haben mehrere Angestellte erreicht 6 Darstellung der Datenstruktur in einem ER Diagramm Abb 1 3 16 ER Diagramm zur Datenbank Personalverwaltung 49 Datenbanken b Schemaentwurf der reltionalen Datenbank Abteilung Abt_ID Bezeichnung Angestellte Ang_ID Name Gebjahr Abt_ID Job_ID Job Job_ID Titel Gehalt Qualifikation Ang_ID Job_ID c Die relationale Datenbank f r das Personalwesen ABTEILUNG ABT ID BEZEICHNUNG OD Organisation und Datenverarbeitung Personalabteilung ANGESTELLTE LANG ID A1 Fitz 21150 oD sy A3 Wemer 2341948 oD PR A5 _ Emi 23160 PA prR jas Uwe 24152 RZ op Ae Rta 0212197 KO 3 TA A9 Ute 08 09 1962 oD sy A11 Ema 1310 1966 ob ka A12 Anton 5 7 1948 ob s JOB JOB ID TITEL GEHALT Kaufm Angestellter 3000 00 DM Techn Angestellter 3000 00 DM Systemplaner 6000 00 DM PR____ Programmierer ___15000 00 DM OP__ Operateur 3500 00 DM 50 Datenbanken QUALIFIKATION ANG ID JOB ID Aai Js a2 Js A7 T a9 Js S ms N ma fka En FE Y IN Y KA A IN Y IN KA Y IN KA Abb 1 3 17 Tabellen zur relationalen Datenbank 51 Datenbanken 1 3 4 Das netzwerkorientierte Datenbankmodell Das Datenmodell einer netzwerkorientierten DB sie
150. che parent ist Ausgangspunkt der Abfrage physischer parent logischer parent A C logisches child phys Datenbank Nr 1 phys Datenbank Nr 2 Hierarchische Pfade Abb 1 3 31 Physischer und logischer Parent in hierarchischen Datenbanken Dem Anwender werden also nicht nur die Daten des log parent zur Verf gung gestellt wenn er das log child abfragt sondern eine Kombination concatenated segment der Daten des log Kindes und des Segments das nicht als Ausgangs punkt der Anfrage diente 6 Logische Datenbankstrukturen Ausgehend vom Root Segmenttyp einer logisch verkn pften phy sischen Datenbank kann jedes Segment unver ndert bernommen werden mit Ausnahme der logical child Segmente Statt dessen wird ein neuer Segmenttyp definiert der aus der Verkettung vom logical child und zugeh rigem logical parent besteht bergang zur logisch verkn pften Datenbank Die dem logical parent Segment ber untergeordneten Segmente k nnen in der logischen Datenbank als abh ngige Segmente des logical parent definiert werden Dabei wird die physische Datenstruktur teilweise invertiert 60 Datenbanken 1 3 6 Das Koexistenz Modell Datenbankarchitekturen bieten im Rahmen des sog Koexistenzmodells drei Ebenen Plattformen f r die Beschreibung von Daten an 1 Die Ebene der logischen Gestaltung Dateikonzept des jeweiligen Programmierers externes Schema Die in Anwenderprogrammen ben tigten Daten werden hi
151. chner f hren die Suche nach Antwortmengen nicht mehr ber physische Adressen aus sondern erm glichen das Wiederauffinden der Daten inhaltsm ig ber Assoziativspeicher 2 Auf konventionellen Rechnerarchitekturen beruhende autarke Prozessoren Die Konsequenz aus der 1 Entwicklungsrichtung f hrt zu spezieller Such und Verarbeitungshardware und diejenige aus der 2 Entwicklungsrichtung zu dem Konzept der Datenbankrechner Beide Trends f hren zur Datenbankmaschine Ein Datenbankrechner ist ein Rechensystem das ausschlie lich Datenbank aufgaben wahrnimmt Die Kommunikation zu einem Verarbeitungsrechner mu gew hrleistet sein Eine Datenbankmaschine ist ein Datenbankrechner der f r die Durchf hrung seiner Datenbankaufgabe durch spezielle diese Aufgabe unterst tzende Hardware ausger stet ist Neben einem intelligenten Kontroller der eine schnelle Reduktion der Gesamtmenge auf eine komprimierte Zwischenergebnismenge durchf hrt sollte eine Datenbankmaschine auch hardwaregest tzte Operationen z B zur Bildung von invertierten Listen Berechnen von Hashschl sseln bzw Sortieren und Verkn pfen von Tupelmengen umfassen Diese Operationen k nnen leistungsm ig entweder durch hohe Parallelit t von vielen relativ einfachen Hardwarebausteinen z B Mikroprozessoren oder von wenigen speziell entwickelten Hochleistungsbausteinen durchgef hrt werden 1 7 Integrit tsbedingungen und Integrit tsregeln Konsistenz oder Integrit t
152. cords u E PAGE CONTROL INFO PAGE INDICES Freier Platz Abb 1 2 5 Aufbau eines Datenbank Blocks Die logischen Strukturen der Datenbank z B Tabellen und Indexe werden in Dateien als Datenbank Segment abgebildet Jedes einzelne Segment besteht aus einer Anzahl von Bl cken Seiten Pages In jedem Bereich sind die Bl cke fortlaufend numeriert auch die Bereiche sind bekannt Alle Datens tze der Datenbank k nnen ermittelt werden falls die Blocknummer des Blocks in dem die Daten gespeichert sind und das Segment in dem sich der Block befindet bekannt sind physikalischer Databasekey Segment Typen werden in drei Gruppen unterteilt 1 Segment Typen die intern ben tigt werden 2 Segment Typen die Benutzer Daten Dateien Tabellen aufnehmen 3 B Indexe die zum schnellen Auffinden der Daten oder Sortierfunktionen genutzt werden Zur Speicherung und Verwaltung der Indexe werden B Ba me verwandt Index Set EEE EEE EI ze 2 Sequence Set Abb 1 2 6 Aufbau eines B Baums Die Knoten eines B Baums lassen sich in den sog Sequence Set Bereich der B tter der Schl ssel mit den Adressen der zugeh rigen Datenbl cke in sortierter Reihenfolge enth lt und den Index Set aufteilen der den schnellen gezielten Zugriff auf die Bl cke des Sequence Set erm glichen soll Ein typischer Zugriff auf einen B Baum beginnt bei der Wurzel und arbeitet sich ber die Zeiger des Index Set an die betreffenden Knoten des Sequence Set
153. d Data Banks Communications ofthe ACM June 1970 Seiten 377 387 10 Datenbanksysteme die auf diese Konzepte beschr nkt sind werden als minimal relational bezeichnet 11 vgl 1 2 3 4 12 vgl 1 4 3 2 13 vgl 2 1 1 35 Datenbanken Jeder Datensatz Tupel kommt nur ein einziges Mal in einer Tabelle vor die Reihenfolge der S tze Tupel ist beliebig Jede Tabellenzeile beschreibt einen Datensatz Die eindeutige Identifizierung eines Tupels erfolgt ber den Schl ssel Der Wert eines Attributs kommt aus einem bestimmten Wertebereich Dom ne Jede Tabellenspalte beschreibt eine bestimmte Eigenschaft Attribut des Datenobjekts Durch Kombination einzelner Spalten Attribute und Zeilen Datens tze k nnen neue Tabellen Relationen gebildet werden Im wesentlichen hei t Normalisieren Beseitigung der funktionalen Abh ngigkeiten die zwischen den einzelnen Attributen eines Relationenschemas vorliegen k nnen Eine funktionale Abh ngigkeit ist zwischen Attributmengen z B A und A dann gegeben falls in jedem Tupel der Relation der Attributwert unter A Komponeneten den Attributwert unter den A Komponenten festlegt Die funktionale Abh ngigkeit wird dann so beschrieben A A Schl ssel sind Spezialf lle funktionaler Abh ngigkeiten Ein Schl ssel X beschreibt f r ein Relationenschema eine funktionale Abh ngigkeit wenn X minimal ist d h aus der kleinsten Menge Tupel identifizierender Attributwerte gebildet
154. d dem Regelrumpf Beide sind verbunden ber das Symbol Die Schlu folgerung ist dann wahr wenn alle Bedingungen des Regelrumpfes erf llt sind 188 Datenbanken Regeln definieren den Zusammenhang in dem die Fakten eines Prolog Programms interpretiert werden Regeln und Fakten bilden die Wissensbasis des Programms 8 m 0 n lt gt 0 mei Die Formel besteht aus Bedingungen Sie kann so interpretiert werden Es ist nicht der Fall da gilt a a Diese Auspr gung einer Klausel gibt es in Prolog in der Form einer Anfrage Allerdings wird hier das Symbol durch ein ersetzt Anfragen leiten aus Fakten und Regeln Antworten ab Prolog interpretiert die Horn klauseln prozedural Eine Anfrage l st einen Aufruf eines Fakts bzw des Regelkopfs aus 4m 0 n 0 Diese leere Klausel erscheint im Prolog Programm selbst nicht Sie ist beweis technisch wichtig Der Ablauf des Programms besteht in dem Versuch ein Faktum aus dem Programm der Wissensbasis aus Fakten und Regeln abzuleiten Die Ableitung erfolgt nach einem fest vorgegebenen in Prolog implementierten Schlu folgerungsmechanismus Herzuleitende Fakten werden vom Benutzer in der Form von Implikationen ohne Konklusionsteil Anfrage goal an den Inferenz mechanismus bergehen z B struktur pl b2 X mit der Bedeutung Gibt es ein X so da struktur p1 b2 X aus dem Programm folgt Der in Prolog eingebettete Schlu folgerungsmechanismus Re
155. deklarationen BEGIN Anweisungsfolge EXCEPTION ausnahmebehandlungsroutinen END prozedurname Analog kann eine Funktion definiert werden CREATE OR REPLACE FUNCTION funktionsname parameterliste RETURN datentyp IS Gel scht werden k nnen Prozeduren bzw Funktionen ber DROP PROCEDURE prozedurname DROP FUNCTION funktionsname Im Gegensatz zu anonymen Bl cken braucht keine DECLARE Klausel angegeben werden PACKAGES Logische zusammengeh rige Bl cke Prozeduren Funktionen k nnen zusammengefa t werden Die Zusammenfassung sieht ein Interface vor das dem Benutzer die Funktionalit t bereitstellt Diese Art Modularisierung unterst tzt PL SQL ber PACKAGES Ein PACKAGE besteht aus der Spezifikation und dem PACKAGE K rper 258 Datenbanken 2 3 2 6 Datenbank Verwaltung National Language Support Dar ber werden sprachspezifische Konventionen eines Landes unterst tzt Die Implementierung erlaubt mehrsprachiges Arbeiten mit der Datenbank und den Tools Zugriffsrechte ORACLE ist ein Mehrbenutzer System Auch andere Benutzer nicht nur der Eigent mer der den CREATE Befehl f r eine Tabelle gegeben hat haben Zugriffsrechte In ORACLE gilt zun chst das Prinzip alles zu verbieten was nicht ausdr cklich erlaubt ist Zur Vergabe von Rechten mu man entweder das DBA Recht besitzen oder Inhaber einer Tabelle 5 sein Zur Vergabe lokaler Rechte steht der GRANT Befehl zur Verf gung
156. der fetch f hren auf no rows aktion kann sein STOP Das Programm endet mit einem exit Aufruf alle SQL Anweisungen die noch nict abgeschlossen wurden werden zur ckgesetzt CONTINUE Falls m glich wird das Programm mit der folgenden Anweisung die der fehlerhaften Anweisung folgt fortgesetzt DO funktion Das Programm verzweigt zu einer Fehlerbehandlungsfunktion funktion GOTO label Die Programmausf hrung verzweigt in das mit einem label markierte Statement 266 Datenbanken Die Anweisungen k nnen an beliebigen Programmstellen eingef gt werden Eine WHENEVER Bedingung wird durch den Ausdruck CONTINUE annuliert EXEC SQL WHENEVER NOT FOUND CONTINUE EXEC SQL WHENEVER SQLERROR CONTINUE DECLARE Anweisung Vor der Ausf hrung einer in dem Programm eingebundenen Abfrage mu die in der Abfrage verwendete SQL Anweisung deklariert werden EXEC SQL DECLARE ang_cursor CURSOR FOR SELECT Dadurch wird innerhalb des Programms ein Speicherbereich Context Area belegt in dem das Ergebnis einer Abfrage gespeichert ist ang_cursor ist ein Bezeichner der vom Precompiler benutzt wird und nicht in der DECARE SECTION definiert werden sollte Ein Cursor verwaltet die SQL Anweisung hat Zugriff auf die Daten in der zugeh rigen Context Area und steuert die Verarbeitung Es gibt 2 Cursor Typen implizit und explizit Implizit deklariert spricht der Cursor all
157. der Ausf hrung einer SQL Anweisung berpr ft DEFERRED legt fest Die berpr fung erfolgt erst am Ende einer Transaktion SET CONSTRAINT IMMEDIATE DEFERRED legt den Modus fest Bereits bei der Defintion einer Integrit tsbedingung kann bestimmt werden in welchem Modus sie arbeiten soll INITIALLY IMMEDIATE INITIALLY DEFERRED bzw ob sie berhaupt verz gert ausgef hrt werden kann DEFERABLE NOT DEFERABLE Ohne zus tzliche Angaben gilt defaultm ig NOT DEFERABLE Operationale Integrit t Sie sch tzt im Mehrbenutzerbetrieb bei konkurrierendem Zugriff vor Inkonsistenzen Die Erhaltung der operationalen Integrit t wird in einer datenbank durch Transaktionen gew hrleistet Der Beginn der Transaktion wird implizit mit bestimmten SQL Anweisungen ausgel st Eine Transaktion kann damit mit COMMIT ordnungsgem zur ckgesetzt werden Mit ROLLBACK lassen sich nderungen seit Beginn der Transaktion r ckg ngig machen COMMIT WORK ROLLBACK WORK SET TRANSACTION READ ONLY READ WRITE ISOLATION LEVEL READ UNCOMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE 211 Datenbanken Isolation Levels Zur Synchronisation des Mehrbenutzerbetriebs bietet SQL 92 ber SET TRANSACTION vier abgestufte Isolationsebenen ISOLATION LEVEL an Die unterschiedlichen Isolation Levels lassen unterschiedliche Effekte bei der Transaktio
158. der Daten wichtig sind berf hrung falls m glich mit Hilfe von Programmen des logischen in einen physischen Entwurf Bsp Modellierung eines Datenbankschemas f r eine Fachhochschule Fachhochschule persistent name Name adresse String telefon Number Fachbereich persistent studentHinzufuegen studentStreichen studentErmitteln 5 alleStudentenErmitteln dozentHinzufuegen fachbereichHinzufuegen dozentStreichen fachbereichStreichen dozentErmitteln fachbereichErmitteln alleDozentenErmitteln alleFachbereicheErmitteln ZustaendigFuer Mitglied s Student Vorlesung Dozent persistent i Besucht persistent persistent name Name name Name name Name studentID Number vorlesungsID ff ee ee Number Abb Modellieren eines logischen Datenbankschemas 42 Booch Grady u a Das UML Benutzerhandbuch Addison Wesley Bonn 1999 Seite 123 85 Datenbanken 2 Die Modellierung eines physischen Datenbankschemas Das Modellieren einer physischen Datenbank 3 umfa t Identifikation der Klassen die das logische Datenbankschema bilden Wahl einer Strategie zur Abbildung dieser Klassen auf Tabbellen Erstellen eines Komponentendiagramms mit den als Tabellen stereotypisierten Tabellen zur Visualisierung und Dokumentation Bsp Modellieren der physischen Datenbank FH db FH db Vorlesung Fachbereich Dozent Fachhochschule Student Dia Jun un u IE 43 vgl Booch
159. dieser Dienste zur Interaktion mit dem Benutzer 1 5 3 2 2 2 Tier und 3 Tier Client Server Architekturen Bei 2 Tier Client Server Systemen befindet sich die Applikationslogik entweder im User Interface des Clients oder in der Datenbank des Servers Beispiele f r 2 Tier Client Server Architekturen sind File Server und Datenbank Server mit gespeicherten Prozessen Resource Manager GUI amp Application z B DBMS Bei 3 Tier Systemen befindet sich die Applikationslogik in der Mittelschicht getrennt von den Daten oder dem User Interface Sie kann somit getrennt vom GUI und der Datenbank gewartet und entwickelt werden Beispiele f r 3 Tier Client Server Architekturen sind TP Monitore Object Transaction Monitore Web Application Server Browser Beans Application Resource Manager ActiveX Services z B DBMS SQL Data Access RPC ORB MOM HTTP Tier 1 Tier 2 Tier 3 80 X Window Ans tze realisieren die Window Manager OSF Motif Open Look 135 Datenbanken Vergleich von 2 und 3 Tier Architektur Der gr te Vorteil d
160. dleware und Server Im Client Block l uft der Client Teil der Applikation auf einem Betriebssystem welches ein Graphical User Interface GUI oder ein Object Orientet User Interface OOUI bietet und Zugriff zum verteilten Service hat Das Betriebssystem arbeitet mit der Middleware zusammen und berl sst ihr die Bearbeitung der nicht lokalen Servicees Au erdem l uft auf dem Client eine Komponente des Distributed System Management DSM Im Server Block l uft die Server Seite der Applikation Die Serversoftware l uft meist auf einem kompletten Server Software Package Die wichtigsten Serverplattformen sind dabei SQL Datenbank Server TP Monitore Groupware Server Objekt Server und Web Server Das Betriebssystem stellt das Interface zur Middleware bereit und liefert die Anfragen f r Service Auch auf dem Server l uft eine Komponente des DSM Der Middleware Block l uft auf der Client und der Serverseite der Applikation und kann wieder in drei gro e Kategorien unterteilt werden Transport Stacks Netzwerk Operating System NOS und Service spezifische Middleware Auch der Middleware Block hat eine DSM Komponente Client Middleware Server Service Specific AEE ODBC TRPC Mail ORB HTTP Objects Web Browser GUI OQUI DSM Web i SNMP CMIP Tivoli ORB OLTP nos DBMS Directory Security Distributed File DSM DSM RPC Massaging Peer to Peer z OS Transport Stack OS NetBios TCP IP IPX SPX SNA 131 Datenbanken Middleware
161. dt werden und deren Antworten dann wieder eingesammelt und verkn pft werden Die Auftragsbearbeitung erstellt dazu einen m glichst kosteng nstigen Ausf hrungsplan unter Ausnutzung der Kenntnisse von Speicherungsort Replizierung Fragmentierung und bertragungskosten Anwendung_1 DBMS_1 Anwendung_2 DBMS_2 Anwendung_4 DBMS_4 Anwendung_3 DBMS_3 Abb 1 5 22 Verteilte Datenbanken 93 Die Anwendung arbeitet mit globalen Relationen d h der Programmierer braucht keinen Kenntnis ber Fragmentierung und Allokation 148 Datenbanken Verteilungsstrategien Verteilte Datenbanken k nnen Verteilungen hinsichtlich der Daten des Datenbankschemas des Systemkatalogs der Query Auswertungen der Synchronisation und der Verfahren zur Fehlerbehandlung auf verschiedene Arten vornehmen Das f hrt zu einer F lle komplexer Probleme die ein Verteiltes Datenbanksystem l sen mu Datenverteilung Fragmentierung Die Fragmentierung erm glicht es Daten einer globalen Relation Tabelle auf unterschiedliche Knoten des verteilten Systems zu speichern Abh ngig von der Art wie Tupel einer globalen Relation aufgeteilt werden spricht man von horizontaler oder vertikaler Fragmentierung bzw von einer Mischform der beiden Unter horizontaler Fragmentierung werden komplexe Tupel einer globalen Relation mit Hilfe der Selektion aufgeteilt Die Relation Tabelle wird horizontal geschnitten Bsp Horizontale Fragmentierung der
162. e der auf Verbindungen wartet und entsprechende Verbindingen aufbaut Das Interface der Anwendungen und des Oracle Server zu SQL Nert ist protokollunabh ngig SQL Net ist schichtenweise strukturiert Die unterste Schicht bilden netzwerkspezifische Protokolle z B TCP IP IPX SPX Darauf folgt die Protocol Adapter PA Schicht Auf diese Schicht baut die zentrale Komponente Transport Network Substrate TNS auf TNS realisiert an seiner Schnittstelle elementare Kommunikationsfunktionen und gibt seine Informationen an die Protokoll Adapter weiter TNS soll eine einheitliche Schnittstelle erzeugen Applikationen die auf TNS aufsetzen k nnen v llig unabh ngig von spezifischen Protokollen implementiert werden Auf TNS setzen zur Zeit zwei Produkte auf SQL NET und das Multiprotocoll Interchange SQL NET ist die Schnittstelle auf die Clients bzw Server aufsetzen Das Multiprotocol Interchange dient zur Protokollumwandlung und erm glicht da Client und Server mit unterschiedlichen Protokollen betrieben werden k nnen Im Bereich des Kommunikationsteils auf dem Client gibt die Software Komponente SQL Net alle notwendigen Informationen an TNS das Daten an den Prokoll Adapter PA weiterleitet der f r den protokollspezifischen Transport zust ndig ist Das Netzwerk Protokoll transferiert die Daten ber das physikalische Netz zum Server Dort angekommen nehmen die Daten den umgekehrten Weg ber PA TNS 11 Der Begriff SQL
163. e nicht ausdr ckbar ist da Iterations und Rekursionsmechanismen in SQL fehlen 262 Datenbanken 2 3 5 Einbindung von SQL in prozedurale Sprachen SQL ist nicht nur eine interaktive Abfragesprache sondern auch eine Programmier sprache f r Datenbanken F r den Einsatz als Datenbankprogrammiersprache fehlen aber Variablenkonzepte und die elementaren Konstrukte prozeduraler Programmiersprachen z B REPEAT UNTIL IF THEN ELSE CASE SQL mu daher in Programmiersprachen eingebunden werden 2 3 5 1 Embedded SQL Einzelsatzverarbeitung und das Cursorkonzept in SQL 92 Einzelsatzverarbeitung Der SINGLE ROW SELECT erm glicht es die Spalten eines einzelnen Datensatzes in Variablen einzulesen SELECT ALL DISTINCT select item commalist INTO targetvariable commalist From table reference commalist WHERE conditional expression GROUP BY column ref commalist HAVING conditional expression Mit UPDATE INSERT und DELETE besteht die M glichkeit Datens tze zu ndern Ein Problem bei der Verwendung von SQL in Programmiersprachen der 3 Generation sind aber die Ergebnistabellen der SQL Mengenoperationen SELECT JOIN UNION etc Auf Ergebnistabellen von SQL Mengenoperationen kann mit Befehlen prozeduraler Sprachen nicht zugreifen Abhilfe schafft das Cursorkonzept von SQL Das Cursorkonzept Ein mit dem DECLARE Befehl angelegter Cursor deklariert eine SQL Meng
164. e Benutzerschl ssel sind deshalb nicht berfl ssig und k nnen weiterhin zur Identifizierung von Objekten auf Benutzerebene interessant sein Benutzerdefinierte Schl ssel z hlen in objektorientierten Systemen zu den Eigenschaften des Objekts und haben nicht die Bedeutung wie in relationalen Systemen In einem ooDM kann ein Typ Uhntertyp eines anderen sein Der Untertyp ist eine Spezialisierung des Obertyps bzw der Obertyp ist eine Generalisierung des Untertyps Man spricht von der Is_A Beziehung zwischen Unter und Obertyp F r den Untertyp m ssen lediglich die gew nschten zus tzlichen Eigenschaften festgelegt sein seine Objekte erben automatisch alle f r den Obertyp definierten Eigenschaften Entwicklungslinien objektorientierter Datenbanksysteme Man kann zwei Entwicklungslinien bei objektorientierten Datenbanksystemen OODBS 28 erkennen Erweiterung bzw Erg nzung objektorientierter Programmiersprachen OOPL Ausgangspunkt ist eine OOPL z B C Smalltalk Durch Erg nzung mit Datenbankkonzepten Dauerhaftigkeit Persistenz Speicherstrukturen Zugriffspfade Transaktionen Concurrency Control Recovery Mechanismen wird ein OODBS entwickelt Au erdem werden vordefinierte Klassen und Methoden mitgeliefert die fehlenden Typkonstruktoren nachahmen etwa SET OF und Abfrageoperatoren bereitstellen etwa das Ausw hlen von Objekten aus einer Menge nach bestimmten Bedingungen Beispiele sind Datenbanken die entweder a
165. e Datendefinitionen und Datenmanipulationen von SELECT Anweisungen an die nicht mehr als eine Zeile als Ergebnis zur ckgeben Die SQL Anweisung kann ohne Cursor angegeben werden falls bekannt ist Die Abfrage liefert nur eine Zeile Explizit deklariert spricht ein Cursor Ergebnisse von SELECT Anweisungen an die mehr als eine Zeile umfassen Diese Zeilen sind unter dem Namen active set bekannt Der explizit deklarierte Cursor verweist dann auf die aktuell verarbeiteten Zeilen current row Erst nach der Bestimmung des Cursors kann die Abfrage ausgef hrt werden Zuerst wird der Cursor ge ffnet dann werden die Daten abgerufen EXEC SQL OPEN ang_cursor EXEC SQL FETCH ang_cursor INTO variablel variable2 Werden keine weiteren Daten ben tigt oder wurde die letzte Programmzeile ermittelt dann mu der Cursor wieder geschlossen werden EXEC SOL CLOSE ang_cursor R ckgabe einer Zeile Bei eingebettetem SQL liefert ein FETCH Befehl jeweils nur eine einzige Zeile Nach Ausf hrung des OPEN Befehls wird die erste Zeile zur ckgegeben die de in der Abfrage angegebene Bedingung erf llt Die nachfolgenden FETCH Befehle ermitteln nacheinander jeweils die n chste Zeile die den Bedingungen entspricht Werden weitere FETCH Befehle nach Erhalt einer Fehlermeldung ausgef hrt z B not found so liefert diese jedesmal diesselbe Fehlermeldung Eine Abfrage kann wiederholt werden indem der Cursor geschlossen erneut ge ffnet
166. e Mengen sollen zusammengenommen minimal sein d h keines der Axiome ist aus den brigen Voraussetzungen ableitbar F r die Aussagenlogik erf llt angeblich das folgende System diese Eigenschaften Axiome a c a b a c mar era b a a 3 a Sc Ableitungsregeln 1 F r jedes Symbol x kann an jeder Stelle seines Auftretens jeder zu x quivalente Ausdruck substituiert werden 2 Vonaunda b kann man zu b bergehen Grundlagen der Aussagenlogik sind atomare Formeln Aussagen Das sind schlichte einfache S tze Aussagen die wahr oder falsch sein k nnen z B josef ist intelligent Mit Hilfe der logischen Verkn pfungen UND dargestellt durch das Symbol ODER dargestellt durch das Symbol 7 NOT dargestellt durch das Symbol bzw WENN DANN dargestellt durch das Symbol k nnen Verkn pfungen von Aussagen auf wahr oder falsch untersucht werden Dabei benutzt man sog Wahrheitstabellen die die Verkn pfung bspw von 2 Aussagen abgek rzt durch die Symbole a b ob sie wahr oder falsch sind beschreiben a lb ab ab Ta wahr 5 vgl Schefe Peter KI berblick und Grundlagen Mannheim Wien Z rich 1986 181 Datenbanken a bb jlarbrrTarb Abb Wahrheitstabellen zu elementaren logischen Operationen Der Wahrheitswert einer Aussage ist unver nderlich Aussagenvariable dagegen k nnen verschiedene Wahrheitswerte zugeordnet bekommen Sie k nnen
167. e Suche nach Zeichenfolgen Dabei ersetzt der Unterstrich _ ein beliebiges einzelnes Zeichen das Prozentzeichen eine beliebige Anzahl von Zeichen Bsp Welche Angestellte haben einen Namen der mit F beginnt SELECT FROM ANGESTELLTE WHERE NAME LIKE F Die Bedingung IS NULL 97 Datenbanken Zur Ermittlung von Tupeln die NULL Werte in einem Attribut besitzen gibt es den speziellen Operator IS NULL bzw IS NOT NULL NULL Werte sind nicht durch Zeichen repr sentiert daher ist der Operator auch nicht gleichwertig mit einem Bei einer Selektion durch eine ORDER BY Klausel erscheinen NULL Werte stets am Anfang unabh ngig von der gew hlten Sortierfolge Verbund Es besteht grunds tzlich die M glichkeit mehrere Tabellen im Rahmen von Verbundoperationen zu verkn pfen Bsp Welche Angestellten ben den Beruf Systemplaner aus un ELECT ANGESTELLTE ANG_ID ANGESTELLTE NAME JOB TITEL ROM ANGESTELLTE JOB WHERE ANGESTELLTE JOB_ID JOB JOB_ID AND JOB TITEL Systemplaner j Bsp Welchen Beruf bt welcher Angestellte aus un ELECT ANGESTELLTE ANG_ID ANGESTELLTE NAME JOB TITEL ROM ANGESTELLTE JOB WHERE ANGESTELLTE JOB_ID JOB JOB_ID j Bsp Bestimme alle Angeste
168. e Summe der Werte in einem numerischen Feld MIN liefert den kleinsten Wert einer Zeichen Datums oder einer numerischen Spalte MAX liefert den gr ten Wert einer Zeichen Datums oder einer numerischen Spalte AVG liefert den Mittelwert Durchschnitt der Werte eines numerischen Feldes Spalte Aggregat Funktionen k nnen auch mit der WHERE Klausel kombiniert werden z B 1 Stelle eine Liste von Angestellten zusammen die am meisten verdienen SELECT ANGESTELLTE ANG_ID ANGESTELLTE NAME ROM ANGESTELLTE JOB WHERE ANGESTELLTE JOB_ID JOB JOB_ID AND JOB GEHALT SELECT MAX JOB GEHALT FROM JOB j 2 Welcher Angestellte hat ein monatliches Einkommen das ber dem Durchschnittseinkommen liegt ELECT A ANG_ID A NAME ROM ANGESTELLTE A JOB J HERE A JOB_ID J JOB_ID AND GEHALT gt SELECT AVG JOB GEHALT FROM JOB qaj u Aggregat Funktionen k nnen mit der GROUP BY Klausel auf disjunkte Teilmengen einer Tupelmenge bezogen werden z B 1 Wieviel Angestellte sind in der Abteilung OD beschaeftigt ELECT ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG COUNT ANGESTELLTE ANG_ID ROM ABTEILUNG ANGESTELLTE HERE ABTEILUNG ABT_ID OD AND ANGESTELLTE ABT_ID OD ROUP BY ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG
169. e gibt es in 3 verschiedenen Formen die am UNION Operator demonstriert werden soll SELECT FROM Tabellel UNION SELECT FROM Tabelle2 Der UNION Operator setzt voraus Beide Tabellen verf gen ber die gleiche Anzahl Felder und korrespondierende Spalten besitzen korrespondierende Datentypen Korrespondieren 2 Tabellen nicht vollst ndig miteinander dann kann man sie ber ausgew hlte Felder vereinigen Der Vereinigung geht dann eine Projektion bzgl der angegebenen Felder voraus SELECT FROM Tabellel UNION CORRESPONDING BY Feldl Feld2 SELECT FROM Tabelle2 Die 3 Variante erm glicht eine implizite Auswahl korrespondierender Felder ber Namensgleichheit SELECT FROM Tabellel UNION CORRESPONDING SELECT FROM Tabelle2 208 Datenbanken Methoden zur Abbildung von Integrit tsbedingungen Tabellen und Spaltenbedingungen Tabellenbedingung Das ist ein bedingter Ausdruck Table Constraint der in einer Tabellendefinition angegeben wird und sich auf mehrere Spalten der gleichen oder auch anderer Tabellen beziehen kann Spaltenbedingung Eine derartige Bedingung Column Constraint bezieht sich nur auf eine Spalte der Tabelle Sie kann unmittelbar in der Spaltendefinition oder als eigenst ndiges Element der Tabellendefinition angegeben werden Die beiden einfachsten Spaltenbedingungen sind NOT NULL 5 und UNIQUE 6 Tabellen Spaltenb
170. e zur Verf gung Nicht lokale Zugriffe wenden sich zun chst an die Zentrale um dort den Ort der gew nschten Daten zu erfahren Verteilung Jeder Rechner kennt das vollst ndige Schema nderungen des Schemas sind an allen Rechnern gleichzeitig vorzunehmen Benutzerauftr ge k nnen am Ort ihrer Eingabe vollst ndig gestartet und verwaltet werden Kombinationsm glichkeiten Irgendeine Teilmenge des Schemas kann als Verteilungseinheit herangezogen werden Das bringt gro e Flexibilit t erzwingt den Aufbau eines Schemas f r das Schema directory directory zur Festlegung welche Teile wo gespeichert sind Query Processing Zwei wesentliche Unterschiede kenn zeichnen die Bearbeitung von Datenbankabfragen Queries in einem VDBS gegen ber einem zentralen DBS 1 Zus tzliche Verz gerungen durch Netzkommunikation 2 Nutzung von Parallelit t durch Beteiligung mehrerer Rechner und redundant vorhandener Daten 151 Datenbanken Bekannt sind folgende query processing Strategien Zerlegen der Anfrage an zentraler Stelle so da jede Teilabfrage von genau einem Knoten dezentral bearbeitet werden kann Das Formuliern der zu verschickenden Teilabfragen erfolgt in der Abfragesprache des Datenbanksystems DML z B in SQL Versenden von DML Anfragen zwischen Programmen Ausarbeiten eines Gesamtplans zur Bearbeitung der Anfrage Der Ausf hrungsplan umfa t Zerlegung der kompexen Anfragen in Teilfragen Festlegen der Ausf hrungs
171. eate table abteilung abt_id varchar2 2 not null bezeichnung varchar2 40 drop table job create table job job_id varchar2 2 not null titel varchar2 30 gehalt number 8 2 drop table angestellte create table angestellt ang_id varchar2 3 not null name varchar2 10 gebdatum date abt_id varchar2 2 job_id varchar2 2 drop table qualifikation create table qualifikation ang_id varchar2 3 job_id varchar2 2 In CREATE TABLE ist nach dem Datentyp die Angabe NULL Standardm iger Default Wert bzw NOT NULL m glich Damit wird festgelegt ob eine Spalte NULL Werte d h keine Werte enthalten darf oder nicht Prim rschl ssel sollten grunds tzlich mit der Option NOT NULL ausgestattet sein NULL Werte werden in allen alphanumerischen Datentypen durch Leer Strings der L nge O repr sentiert Der Wert NULL gibt an da der Wert einer Spalte oder eines Ausdrucks nicht verf gbar ist oder nicht zugewiesen wurde Jede Tabellenspalte umfa t Werte einer bestimmten Dom ne Dom nen lassen sich ber Angabe des Datentyps der Spalten und der Anzahl der Zeichen definieren Es gibt 3 Basis Datentypen 224 Datenbanken NUMBER L nge Dezimalstellen Felder mit numerischen Datenwerten k nnen definiert werden mit NUMBER DECIMAL FLOAT INTEGER und SMALLINT Am h ufigsten wird NUMBERZ2 benutzt Werte f r NUMBER k nnen sein ganze Zahlen Dezimalzahlen Exponentzahl
172. echte eines Benutzers werden Privilegien genannt Oracle kennt 80 verschiedene Privilegien die einem Benutzer zugewiesen werden k nnen Jeder Benutzer weist sich gegen ber Oracle durch seinen Benutzernamen und sein Pa wort aus dem Benutzername werden vom Datenbankadministrator die Privilegien zugeordnet Eine Vielzahl von Privilegien k nnen zu Rollen Roles zusammengefa t werden Eine Rolle wird mit dem Befehl CREATE ROLE angelegt und kann mit ALTER ROLE und DROP ROLE ge nder bzw gel scht werden Mit der Anlage einer Datenbank werden automatisch 3 voreingestellte Rollen CONNECT RESOURCE DBA generiert Nach der Installation von Oracle gibt es 3 Benutzer SYS SYSTEM PUBLIC SYS und SYSTEM haben DBA Privileg sys hat das Recht Tabellen des DATA DICTIONARY zu ver ndern F r diese Benutzer gibt es voreingestellte Pa w rter PUBLIC ist eigentlich eine Benutzergruppe Jeder Benutzer wird automatisch Mitglied der Gruppe PUBLIC Eine Oracle Datenbank kann im Dialog und Stapelbetrieb angesprochen werden Jeder Anwender mu sich bei der Arbeitsaufnahme beim Datenbanksystem anmelder Im Dialog wird das Systen dann gestartet durch Eingabe des Kommandos sqlplus am Terminal Nach Eingabe der USER ID der ORACLE ID connect string und des Pa wortes k nnen alle SQL Kommandos direkt am Terminal eingegeben werden Stapelbetrieb setzt voraus da alle SQL Kommandos mit Hilfe eine Textaufbereitors Editor in einer Textdatei abgespeichert
173. edingungen k nnen in der CHECK Klausel definiert werden Bsp Anrede unterliegt der Spaltenbedingung CHECK VALUE IN Herr Frau Diese Integrit tsregel ist aber genauer betrachtet keine spezifische Eigenschaft der Spalte Angestelle Anrede sondern eine Regel die generell f r den Wertebereich von Anrede G ltigkeit besitzt ber das Dom nenkonzept k nnen in SQL 92 Wertebereiche unabh ngig von Datenbankfeldern modelliert werden Ein Domain besitzt einen Namen und wird auf einen Datentyp abgebildet Zus tzlich lassen sich f r Domains Integrit tsbedingungen und Defaultwerte definieren Die Domain kann bereits im CREATE TABLE Statement zur Angabe eines Datentyps verwendet werden z B CREATE DOMAIN Anreden AS CHAR 4 CHECK VALUE IN Herr Frau CHECK TABLE D ngestellte Anrede Anreden F r alle Wertebereiche die in der Datenbank mehrfach verwendet werden sind Domains geeignet nderungen von Datentypen z B von Prim rschl sseln auf die eine Menge anderer Fremdschl ssel verweisen lassen sich fehlerfrei und konsistent durchf hren 15 das Datenfeld mu immer nur einen Wert enthalten 16 legt eine Spalte fest Mit der CHECK Klausel werden Tabelle Spaltenbedingung definiert 17 Die besteht aus einem bedingten Ausdruck der mehrere miteinander durch AND OR oder NOT verkn pfte Pr dikate verwenden darf 209 Datenbanken Assertions
174. egriffsbenennung f r verschiedene Begriffe das Aquivalenzproblem 14 Datenbanken Verwandte Deskriptoren werden zweckm igerweise zu quivalenzklassen zusammengefa t Damit kann eine Dokumentensuche u a a ber einen zun chst gegebenen Deskriptor erweitert werden Das Problem dabei ist inwieweit die zu einer quivalenzklasse zusammengefa ten Deskriptoren wirklich gleich sind Thesaurus Ein Thesaurus Wortschatz ist ein Verzeichnis von verschiedenen Schlagw rtern Thesauri werden verwendet als vordefinierte Deskriptorenliste als Synonymenw rterbuch zur Gruppierung Klassifizierung oder Strukturierung von Deskriptoren In verschiedenen Fachgebieten werden umfassende Thesauri angeboten Bsp Engineers Joint Council Thesaurus Ein Auszug aus diesem Thesaurus enth lt Vorzugsbenennungen und zus tzliche Begriffsbestimmungen die in Beziehung zu den Vorzugsbenennungen gesetzt sind Die Beziehungen sind gekennzeichnet durch UF used for Die vorstehende Vorzugsbenennung ist synonym mit der durch UF gekenn zeichneten Begriffsbenennung BT broader term Die mit BF gekennzeichnete Begriffsbenennung umfa t die vorstehende Vor zugsbenennung in ihrer Bedeutung NT narrower term Die mit NT gekennzeichnete Begriffsbenennung ist hins ihrer Bedeutung in der vorstehenden Begriffsbenennung enthalten USE Die mit USE gekennzeichnete Begriffsbenennung ist als synonyme Vor zugsbenennung f r die vorstehende Begri
175. ehandelt sie bestehen aus einem Funktor und den dazugeh rigen Unterobjekten funktor objekt objekt gt objekty Alle strukturierten Objekte k nnen als B ume dargestellt werden Die Wurzel des Baumes ist der Funktor und die S hne der Wurzel sind die Komponenten Ist eine Komponente wiederum eine Struktur so ist sie ein Teilbaum des Baumes der dem ganzen strukturierten Objekt entspricht 201 Datenbanken Listen Eine Liste ist eine spezielle Struktur in Prolog Elemente einer Liste k nnen Variable Konstanten Strukturen oder auch Listen sein Sie sind in eckige Klammern eingeschlossen und durch Kommata getrennt element_1 element_2 element_3 element_n Die leere Liste wird so dargestellt Listen k nnen also 0 oder mehr Elemente enthalten Eine leere Liste ist nicht weiter zerlegbar nichtllere Listen sind ber einen speziellen Operator Symbol in einen Listenkopf und einen Rest der Liste zerlegbar Die Liste a b c d wird durch alb c d ina Listenkopf Head und in die Liste b c d zerlegt Listen sind rekursive Datenstrukturen Der Typ liste wird durch sich selbst und definiert Nur die Alternative die Konstante ist nicht selbstbez glich Rekursive Datenstrukturen lassen sich besonders einfach in nat rlicher Weise mit rekursiven Pr dikaten verarbeiten Bsp Das Aneinanderreihen 2er Listen ist in der Regel durch ein 3stelliges Pr dikat verketten liste_l liste_2 Gesamtliste
176. ehen werden und nur komplett ausgef hrt werden d rfen Alles oder nichts Eigenschaft Schl gt eine Aktion fehl m ssen alle bereits vorgenommenen Ver nderungen r ckg ngig gemacht werden die Transaktion wird zur ckgesetzt Mit der Konsistenz Eigenschaft wird gefordert dass sich die Datenbank nach Ablauf der Transaktion in einen Zustand befindet der die Konsistenz63 bzw Integrit t 4 nicht verletzt Kann dieser Zustand nicht erreicht werden so muss zum Ausgangszustand zur ckgekehrt werden Isoliette Zur cksetzbarkeit bedeutet dass durch das Zur cksetzen einer Transaktion keine andere Transaktion so beeinflusst dass diese ebenfalls zur ckgesetzt werden muss Die Transaktion muss alle Zugriffe auf gemeinsam genutzte Ressourcen serialisieren und garantieren dass sich die konkurrierenden 63 Konsistenz Der Datenbestand ist logisch wiederspruchsfrei 64 Integrit t allg bereinstimmung von realen und gespeicherten Daten 114 Datenbanken Programme nicht beeinflussen Im Mehrbenutzerbetrieb mit vielen parallelen und berlappenden Transaktionen muss sich ein Programm also genauso verhalten wie im Einbenutzerbetrieb Unter Dauerhaftigkeit gt versteht man dass von einer erfolgreich abgeschlossenen Transaktion vorgenommenen nderungen auch tats chlich in der Datenbank wirksam werden und nicht mehr z B in Folge eines Systemzusammenbruchs einfach verloren gehen k nnen Das Zustandsdiagramm einer Transaktion Jeder i
177. ein n stelliges Pr dikatsymbol ist und t4 tn Terme sind Abk rzungen und Bindungsregeln bezeichnet bezeichnet 9 binden st rker als bindet st rker als bindet st rker als Formeln 1 Primformeln sind Formeln 2 7 7 ist eine Formel falls 7 eine Formel ist 3 ist eine Formel falls und Formeln sind 4 2 ist eine Formel falls und Formeln sind 5 X ist eine Formel falls 7 eine Formel und X eine Individuenvariable ist 6 X ist eine Formel falls 7 eine Formel und X eine Individuenvariable ist 7 Nur so gebildete Zeichenketten sind Formeln Sind in einer Formel 7 alle Variablen durch Quantoren gebunden wird 7 auch als geschlossene Formel bezeichnet Bsp Die Formel X p X Y q Y r Y X ist zu lesen F r alle X gilt Wenn p von X dann gibt es mindestens ein Y f r das gilt q von Y und r von X und Y Wird f r die Pr dikatensymbole festgelegt p ist_geboren q ist_weiblich r ist_die_Mutter_von dann erh lt die Formel die Bedeutung F r alle X gilt Wenn X geboren wurde dann gibt es mindestens ein Y das weiblich ist und dieses Y ist die Mutter Zentrale Bedeutung haben hier die sog Horn Formeln der Form Q Q ist eine Folge von Allquantoren 7 bezeichnet man als Pr misse Voraussetzung ist dann die Konklusion Schlu folgerung 184 Datenbanken Interpretation pr dikatenlogischer Form
178. ein physischer Plattenblock ein Attributwert Verklemmungen Je nach Art der verwendeten Sperren entstehen zwischen Transaktionen Wartebeziehungen bzw Serialisierungsbedingungen durch Zugriffe auf die Datenbank Falls Transaktionen Datenelemente sperren kann es zu Verklemmungen kommen z B Die Transaktion T und T k nnen nebenl ufig ausgef hrt werden Das geschieht zuf llig in folgender Reihenfolge 1 Transaktion T sperrt Objekt A zum Schreiben 2 Transaktion T sperrt Objekt B zum Schreiben 3 Transaktion T fordert eine Sperre auf Objekt B mu aber warten da Objekt B von T gesperrt ist 4 Transaktion T fordert eine Sperre auf Objekt A mu aber warten da Objekt A von T gesperrt ist An diesem Punkt k nnen weder T noch T fortfahren Sie sind verklemmt Synchronisation von Transaktionen TA Es geh rt zur Aufgabe der Transaktionsverwaltung derartige unkorrekten Abl ufe Anomalien voneinander zu isolieren und zu synchronisieren Die Abarbeitung einer Transaktion l t sich durch das Zwei Phasen Protokolls ohne Gef hrdung des Datenbestands und ohne Verklemmungen steuern und kontrollieren 117 Datenbanken Phase 1 Sperrphase des Konsistenzbereichs der Transaktion Bevor eine Transaktion auf ein Objekt liest oder schreibt mu sie das Objekt sperren Phase 2 Bearbeitung der Daten und Freigabe auch sukzessiv des Konsistenzbereichs Hat eine Transaktion einmal eine Sperre wieder freigegeben darf s
179. eitet wird Die Anzahl der ausgew hlten Merkmale die Anzahl der Platzhalter f r Eingabe host Variable die Datentypen f r Eingabe host Variable m ssen zur Precompile Zeit bekannt sein 4 Methode Sie akzeptiert oder baut eine dynamische SQL Anweisung auf die mit Hilfe von Deskriptoren verarbeitet werden Ein Deskriptor ist ein Speicherbereich der f r Programm und ORACLE eine vollst ndige Bearbeitung der Variablen einer dynamischen SQL Anweisung enth lt Bsp Ein C Programm mit dynamischen SQL include lt stdio h gt EXEC SQL BEGIN DECLARE SECTION VARCHAR uid 20 VARCHAR pwd 20 VARCHAR dbstring 20 VARCHAR ang_id 3 VARCHAR name 10 VARCHAR gebjahr 9 VARCHAR abt_id 2 VARCHAR job_id 2 VARCHAR order 255 EXEC SQL END DECLARE SECTION EXEC SQL INCLUDE sqlca 277 Datenbanken main int argi char argv char input 255 strepy uid arr xyz1l2345 uid len strlen uid arr strcpy pwd arr xyz12345 pwd len strlen pwd arr strcepy dbstring arr rfhs8012_ora8 adbstring len strlen dbstring arr EXEC SOL WHENEVER SOLERROR GOTO error EXEC SQL CONNECT uid IDENTIFIED BY pwd USING dbstring printf Connected to ORACLE user s n uid
180. eitete Implementierungen f r relationale Datenbanken sind das standardisierte SQL Structure Query Language QBE Sprachen Query by Example 12 yg Wedekind Hartmut Datenbanksysteme I Mannheim Wien Z rich 1974 205 Datenbanken 2 3 SQL SQL 3 Structured Query Language ist im wesentlichen eine tupelorientierte Pr dikatenkalk lsprache enth lt aber auch algebraische Elemente Die zentrale Idee die SQL zugrundeliegt ist eine Abbildung zwischen bestimmten Spalten einer Tabelle Die Tabelle bzw die in die Tabelle aufgenommenen Daten bilden den Definitionsbereich ber ein Auswahlkriterium wird aus dem Definitionsbereich ein Abbildungsbereich bestimmt SQL Structured English Language dr ckt das so aus select B Bildbereich from R1 Definitionsbereich where A in Auswahlkriterium select A Bildbereich from R2 Definitionsbereich where K Konstante Die Auswertung eines solchen Ausdrucks erfolgt von oben nach unten Zuerst wird ein select from where Block Grundbaustein der Sprache SQL spezifiziert der mit Daten gespeichert wird die von einem unteren Block geliefert werden Der untere Block wird mit Daten gef llt die aus Selektionen resultieren der obere Block f hrt ber diese Daten eine Projektion aus 2 3 1 SQL 92 bersicht Bisher wurden von ANSI ISO zur Standardisierung von SQL herausgegeben SQL 86 SQL Sprachstandard der im Jahre 1986 verabschiedet wurde
181. elle und Indexverzeichnisse die Resultate von ausschlie lich abgeschlossenen Transaktionen Backup Restore Utilities generieren Kopien und sorgen f r die Wiederherstellung der Datenbank z B bei Plattenausfall Die vollst ndige Wiederherstellung aller Aktualisierungen zwischen der letzten Sicherung Backup und dem Zeitpunkt des Plattenfehlers bernehmen Recovery Prozeduren SQL Server unterst tzen Entit ts und Beziehungsintegrit t 78 automatische Seiten oder Datensatzsperre und verf gen uber eine automatische Erkennung von Verklemmungen Der Server erledigt die Arbeit der Front End zeigt Benutzerfreundlichkeit Front Ends von Tabellenkalkulationen oder Multimedia Programme sollen auf verschiedene DBMS zur ckgreifen k nnen Ein genormtes SQL stellt zumindestens theoretisch sicher da die Kommunikation zwischen beiden reibungslos funktioniert In der Praxis verlangt jedoch jedes DBS eine Sonderbehandlung 7 4 Pr sentations Server sentatio Kommunikationssystem Datenbank Datei Disk Server Client Abb 1 5 10 Pr sentationsserver 78 vgl 1 2 6 79 vgl ODBC Open Database Connectivity Interface von Microsoft das im wesentlichen eine Windows API ist F r jedes DBMS gibt es einen ODBC Treiber 134 Datenbanken Diese Form der Anwendung wird auf Unix Systemen mit dem X Window Ansatz3 verfolgt Der den Dienst der Pr sentation anbietende Arbeitsplatzrechner ist hier der Server Der Client bedient sich
182. elligent ist Student ist hier eine Variable Variable beginnen mit einem Gro buchstaben im Gegensatz zu den Konstanten die generell mit Zeichenketten aus kleinen Buchstaben benannt werden Die Pr dikatenlogik untersucht die innere Struktur von Aussagen Sie teilt den Aussagensatz in Pr dikat und Argumente z B 182 Datenbanken Pr dikat Argumente abteilung KO Konstruktion 6 vorlesung juergen datenbank n abteilung X Konstruktion 8 ist dann eine Aussage die dann wahr ist wenn ein X gefunden ersetzt werden kann zu dem in einer Zeile der Tabelle das Zeichenketten Literal Konstruktion passt Begriffe aus der Pr dikatenlogik Der Zeichenvorrat der Pr dikatenlogik besteht aus 1 Individuenvariabeln X Y 2 X1 X2 2 Individuenkonstanten a b c a4 b4 3 Funktionssymbolen f g h f 4 Pr dikatensymbolen p q r r4 5 Negation 6 Disjunktion und Konjunktion 7 Existenz Quantor 8 All Quantor Die Redewendung f r alle X gilt geschrieben X hei t Allquantor Die Redewendung es gibt ein X so da gilt geschrieben X hei t Existenzquantor ist eine Abk rzung f r mehrere Konjunktionen ist eine Abk rzung f r mehrere Disjunktionen Die Verneinung einer All Aussage ist eine Existenz Aussage und umgekehrt Im Gegensatz zur Aussagenlogik ist der Wahrheitswert eines pr dikatenlogischen Ausdrucks z B der Form p X p Y
183. eln Eine Interpretation ordnet Individuenkonstanten Individuen der realen Welt zu Pr dikaten Mengen von Individuen z B dem Pr dikat menschlich die Menge aller Menschen Eine Interpretation beinhaltet 1 einen nichtleeren Individuenbereich Wertebereich der Individuenvariablen 2 eine Zuordnung eines Elements aus dem Individuenbereich zu einem Konstantensymbol z B a bedeutet die Zahl 3 eines nstelligen Funktionssymbols zu einer auf dem Individuenbereich definier ten Funktion mit n Argumenten z B f bedeutet die Addition von 2 Zahlen f x y ist dann x y jedes nstelligen Pr dikatensymbols zu einem im Individuenbereich definierten nstelligen Pr dikat das jedem n Tupel von Individuen einen Wert aus wahr falsch zuordnet z B p x y bedeutet x lt y Bsp Gegeben ist der Individuenbereich 0 1 2 f x y mit der Bedeutung Das kleinere der beiden Argumente x und y bei Gleichheit x das Pr dikat q x y mit der Interpretation x ist gleich y die Konstante a Ihr ist das Objekt 2 zugeordnet Wie wird dem Ausdruck X qg X a q f X a X ein Wahrheitswert zugeordnet Einsetzen f r Konstantensymbol a X g X 2 g f X 2 X Einsetzen f r die gebundene Variable X 0 2 g 0 0 741 2 gA D 742 2 q 2 2 Anwendung des Pr dikats falsch wahr falsch wahr falsch wahr Auswertung wahr wahr wahr wahr wahr wahr wahr wahr wahr Offenen Formeln mit freien Variablen ka
184. em DBMS ber das Statement Objekt weiter und holt sich Ergebnisse und auch Informationen ber die Resultat Datens tze JDBC Dateien und Java Anwendung Applet bleiben beim Client k nnen aber auch vom Netzwerk heruntergeladen werden Das DBMS und die Datenquellen liegen auf einem Remote Server Die JDBC Klassen befinden sich im java sql Paket Alle Java Programme verwenden zum Lesen und Schreiben von Datenquellen Objekte und Methoden des java sql Pakets Ein Programm das JDBC verwendet ben tigt einen Treiber f r die Datenquelle Es ist die Schnittstelle f r das Programm JDBC besitzt den Driver Manager zur Verwaltung der Treiber und zum Erstellen einer Liste der in den Anwendungsprogrammen geladenen Treiber JIDBC ODBC Bridge ist als jdbcOdbc class implementiert und eine native Bibliothek f r den Zugriff auf den ODBC Treiber Zuerst bildet dieser Treiber JDBC Methoden auf ODBC Aufrufe und tritt somit mit jedem verf gbaren ODBC Treiber in Interaktion JDBC Treibertypen Java Anwendung JDBC Treibermanager JDBC ODBC Treiber f r DBMS B Standard JDBC Treiber f r DBMS D Bridge Treiber Java Treiber Java ODBC Treiber Treiber f r DBMS B Middleware Typ 1 Typ 2 Typ 3 Typ 4 100 Java 100 Java 282 Datenbanken 1 Typ 1 ist eine schnelle L sung f r jede beliebige ODBC Datenbank Die JDBC ODBC Bridge st tzt sich nach unten hin auf einen bereits vorhandenen ODBC Treiber und greift dabei einfach
185. en 217 Datenbanken DBA Zus tzlich zu den CONNECT und RESOURCE Rechten werden folgende Rechte erteilt Zugriff auf alle Daten aller Benutzer und Anwednung aller SQL Kommandos auf diese Daten Zuteilen und Sperren von Datenbank Rechten f r alle Anwender Synomyme f r alle Anwender erzeugen Erzeugen und ndern von Partitions Das Zugriffsrecht DBA erm glicht die Datenbank Administration Normalerweise ist mit diesen Rechten der Datenbankadministrator ausgestattet F r die Vergabe von Zugriffsrechten steht die GRANT TO Anweisung bereit GRANT CONNECT RESOURCE DBA TO Benutzerliste IDENTIFIED BY Pa wortliste Benutzerliste Sie umfa t die Namen derjenigen Personen die das entsprechende Zugriffsrecht erhalten sollen Als Name ist der Login Name anzugeben den der Datenbankverwalter den einzelnen Anwendern zugewiesen hat Pa wortliste Hier sind s mtliche Pa w rter anzugeben die man in der Benutzerliste ber cksichtigt hat Die Reihenfolge der Pa w rter mu mit dem Login Namen der Benutzerliste bereinstimmen IDENTIFIED BY ist nur beim erstmaligen bertragen des Rechts anzugeben Vergebene Rechte kann man zur ckziehen Der Widerruf der Rechte erfolgt ber REVOKE CONNECT RESOURCE DBA FROM Benutzerliste Standardm ig hat in Oracle jeder Anwender das RESOURCE Recht Er kann also ohne Zustimmung des Datenbankverwalters Tabellen anlegen Die R
186. en Damit werden Daten die sich bspw dem Benutzer im Relationenmodell noch als Tupel darstellen vom Datenbankverwaltungssystem auf Seiten d s Bl cke fester L nge in der Gr enordnung von 512 Bytes bis 8 KBytes abgebildet Mengen derartiger Seiten sind jeweils zu linearen Adre r umen zusammengefa t die Segmented2 genannt werden In den Seiten sind Records S tze fester oder variabler L nge abgelegt Solche Records k nnen Tupel oder auch Verweislisten in einem Zugriffspfad sein Recordoperationen werden demnach auf lesende und schreibende Seitenzugriffe abgebildet relationales Datenmodell Bearbeitung von Anfragen data dictionary Transaktions satzorientierte Schnittstelle Satzspeicherung Zugriffspfade verwaltung Segmentschnittstelle Pufferverwaltung Dateiverwaltungsschnittstelle Dateiverwaltung Metadaten Prim rdaten Abb 1 5 1 Architektur von Datenbanksystemen 62 Synonyme Realm Area DB Space 112 Datenbanken 1 5 2 Transaktionsbetrieb 1 5 2 1 Transaktionen Definition und Erkl rungen Bei gr eren Datenbest nden ist es unumg nglich da sie von mehreren Be nutzern gleichzeitig bearbeitet werden So k nnen h ufig wiederkehrende Ge sch ftsvorg nge sofort durch Zugriff von Datenstationen ber ein Anwen dungsprogramm auf zentrale Datenbest nde erledigt werden Eine DC Transaktion TA ist als Folge von Dialog Datenbank und Verarbeitungsanweisungen definiert die einen kons
187. en Der Focus of Control das langezogene Rechteck gibt an wo eine Aktivit t ausgef ht wird Ist ein Objekt ohne Aktivit t vorhanden wird dies durch eine gestrichelte Linie angezeigt Objekte werden durch einen Pfeil auf das Rechteck erzeugt ein L schen wird durch ein Kreuz dargestellt Nachrichenaustauch zwischen Objekten beschriftete Pfeile ber den Pfeilen stehen Operationen die ausgef hrt werden In eckigen Klammern k nnen Bedingungen angegeben werden wann die Operation ausgef hrt wird Ruft das Objekt eine Operation von sich selbst auf dann zeigt der Pfeil auf die Lebenslinie zur ck Datenbanken Die in den Anwendungsf llen beschriebenen Objektinteraktionen k nnen in Sequenzdiagrammen verfeinert werden F r jeden Anwendungsfall k nnen ein oder mehrere Sequenzdiagramm e konstruiert werden Sequenzdiagramme stammen aus der Telekommunikationstechnik z B f r Protokolle Bsp Ablauf des Use Cases Neue Vorlesung anbieten Bibliothek Terminkalender gabe Vorlesungsverzeichnis entleihen Buch freier Termin reservieren I l l L L I I L L I L l L L L I I I I I I L l I L T Jad 1 L eintragen ermin l I L I L l I l eintragen Vorlesun Abb Sequenzdiagramm Neue Vorlesung anbieten 2 Kollaborationsdiagramme Ein Kollaborationsdiagramm ist ein Interaktionsdiagramm in dem die strukturelle
188. en g ltig in dem sie deklariert wurde c Sprachkonstrukte zur Belegung von Variablen und zur Steuerung des Programmablaufs Zuweisungen Ausdr cke und Vergleiche Festlegen von Standardwerten f r Vergleiche Durch den Zuweisungsoperator kann einer Variablen ein Wert zugeordnet werden Der Datentyp auf der rechten Seite des Ausdrucks mu dem Datentyp der Variablen auf der linken Seite des Ausdrucksentsprechen PL SQL versucht eine implizite Typkonvertierung vorzunehmen Gelingt dies nicht mu der Ausdruck durch eine Explizite Typkonvertierung umgewandelt sein oder es kommt zu einem Fehler Ein Ausdruck besteht aus mehreren Operanden die ber Operatoren verkn pft werden PL SQL kennt folgende Operatoren Bon Pe g er als o gleich in einer Menge Mustervergleich Operatoren gleicher Priorit t werden in einem Ausdruck von links nach rechts abgearbeitet Alle Operanden m ssen den gleichen Datentyp besitzen der mit dem Datentyp des Operators korrespondieren mu Ausdr cke bei denen ein Operand den Wert NULL hat evaluieren immer zu NULL Da jede Variable den Wert NULL annehmen kann kennt auch jeder Boolesche Ausdruck 3 Ergebnisse TRUE FALSE NULL In PL SQL gelten daher modifizierte Wahrheitstabellen 244 Datenbanken AND FALSE TRUE NULL OR FALSE TRUE NULL NOT FALSE TRUE NULL TRUE FALSE NULL Die einzige M glichkeit einen Vergleich zu einem NULL Wert durchzuf hren erfolgt ber den Verg
189. en was mit den Daten geschehen soll Die Anweisung select from where gibt dem Benutzer immer eine Resultatstabelle zur ck Tabellen werden ber die sogenannte leere Bedingung aufgelistet z B die Tabelle angestellte SELECT nd FROM ANGESTELLTE 48 Man kann sich auch bei der Auswahl der Ausgabespalten auf bestimmte Felder beschr nken SELECT ANG_ID NAME GEBDAT ROM ANGESTELLTE j Die ausgew hlten Datens tze k nnen ber die zus tzliche optionale ORDER BY Klausel in eine sortierte Reihenfolge gebracht werden SELECT FROM ANGESTELLTE ORDER BY NAME Die Sortierreihenfolge kann auf Asc oder absteigend DESC sein Auch sekund re bzw terti re Sortierkriterien k nnen gebildet werden SELECT FROM ANGESTELLTE ORDER BY ANG_ID ASC ABT_ID DESC Wiederholungen von Tabellenspalten Werten in der Ausgabe werden durch Angabe vonDISTINCT vor dem Feldnamen ausgeschlossen Eine andere konkrete Anfrage an die vorliegende Tabelle k nnte sein SELECT FROM ANGESTELLTE WHERE NAME Fritz SQL kennt 6 relationale Operatoren zur Angabe von Bedingungen lt gt oder ha 8 Dy lt e gt 47 Vgl 1 3 3 48 SQL ist nicht case sensitive 96 Datenbanken Bsp Welcher Angestellte ist vor dem 2 Dezember 195
190. en z B 1E3 f r 1000 negative und positive Zahlen NUMBER ohne L ngenangabe bezeichnet ein Feld mit 40 Stellen Durch Angabe einer L nge verkleinert oder vergr ert man derartige numerische Felder maximale L nge 105 Mit Dezimalstellen wird die Anzahl der Stellen nach dem Dezimalpunkt komma festgelegt Oracle verf gt ber eine Reihe mathematischer Funktionen z B Funktion Beschreibung Absolutbetrag GREATEST X Y LEAST X Y ROUND X n TO_NUMBER X TRUNC X n Au erdem sind auf numerische Werte die relationalen Operatoren lt gt gt lt mit der blichen Bedeutung definiert Arithmetische Ausdr cke k nnen in der SELECT WHERE ORDER BY und der HAVING Klausel auftreten CHAR L nge umfa t alphanumerische Zeichen maximale L nge 255 Bytes Die Angabe der L nge ist obligatorisch Zeichen Konstanten werden in einfachen Anf hrungszeichen geschrieben Als Operation ist die Verkettung definiert die mit beschrieben wird ORACLE verf gt ber eine Reihe wichtiger Funktionen zur Bearbeitung lexikalischer Daten z B Funktion Beschreibung LENGTH S L nge des Wertes der Zeichenkette S UPPER S konvertiert den Wert von S in Gro buchstaben LOWER S konvertiert den Wert von S in Kleinbuchstaben VARCHAR L nge entspricht den Ausf hrungen zu dem Datentyp CHAR Bei VARCHAR Feldern ist die L nge variabel die angegebene L nge bestimmt die maximale L nge in Byte
191. en CURSOR DATA AREA bereit und koennen mit ofetch abgeholt werden FR RL 298 Datenbanken erg oexec cursor_data_area oci_error erg oexec cursor_data_area 1 do x7 Holen der naechsten Zeile aus der Loesungs tabelle der mit dem angegebenen Cursor ver xy bundenen SQL Abfrage Return Code 4 keine Loesung mehr vorhanden E x erg ofetch cursor_data_area oci_error erg ofetch cursor_data_area 0 f Ggf Ausgabe der gefundenen Loesung x if erg gt 0 amp amp erg lt 4 printf s s s n angid angnam anggeb while erg gt 0 amp amp erg lt 4 a Schliesen des SOL Cursors JER erg oclose cursor_data_area oci_error erg oclose cursor_data_area 1 Ausloggen aus dem ORACLE System 7x erg ologof logon_data_area oci_error erg ologof cursor_data_area 1 2 3 6 SQL3 Unter dem Arbeitstitel SQL3 gt 5 sind Aktivit ten von ANSI und ISO f r einen SQL 92 Nachfolger zusammenfefa t Die wesentlichen Erweiterungen von SQL3 gegen ber SQL 92 bestehen in der Aufnahme objektorientierter Konzepte 56 Einf hrung abstrakter Datentypen ADT Bereitstellen rekursiver Abfragem glichkeiten Unterst tzung einer ereignisorientierten Datenmanipulation Trigger Konzept Quantoren und boolesche Werte Transaktionsk
192. en Pfeil in Richtung einer Rolle angezeigt werden Rolle1 Rolle2 1 0 Abb Bin re Relation R C1 x C2 Rollen Abb n re Relation C1 x C2 x x Cn In vielen Situationen ist es wichtig anzugeben wie viele Objekte in der Instanz einer Assoziation miteinander zusammenh nen k nnen Die Frage Wie viele bezeichnet man als Multiplizit t der Rolle einer Assoziation Gibt man an einem Ende der Assoziation eine Multiplizit t an dann spezifiziert man dadurch F r jedes Objekt am entgegengesetzten Ende der Assoziation mu die angegebene Anzahl von Objekten vorhanden sein 1 1 1 1 n 0 2 6 0 n 2 6 0 i 0 n 0 n 17 4 17 4 n m Abb Kardinalit ten f r Beziehungen 75 Datenbanken Jede Assoziation kann eine Richtung besitzen Diese bestimmt ein Pfeil am Ende der Assoziation Zugriffe k nnen dann nur in Pfeilrichtung Navigationsf higkeit erfolgen Reflexive Assoziationen Manchmal ist eine Klasse auch mit sich selbst assoziiert Das kann der Fall sein wenn die Klasse Objekte hat die mehrere Rollen spielen k nnen Ein Fahrzeuginsasse kann entweder Fahrer oder Beifahrer sein In der Rolle des Fahrers f hrt bspw ein Fahrzeuginsasse null oder mehrere Fahrzeuginsassen die die Rolle von Beifahrern spielen Fahrzeuginsasse 0 4 Beifahrer Abb Bei einer refleviven Assoziation zieht man eine Linie von der Klasse aus zu dieser zur ck Man kann die Rollen
193. en besteht die Datenstruktur des Oracle DBMS aus folgenden Sichten Segment Beim Anlegen einer Tabelle wird automatisch ein bestimmter Speicherplatz f r Daten und Indexe reserviert Jede Tabelle hat genau ein Daten Segment f r die Daten der Tabelle und je Index ein Index Segment Der Oracle7Server kennt neben den Benutzer oder Datensegmenten table index cluster usw f r den Betrieb noch Rollback Segmente zur Implementierung des Transaktionskonzepts Speicher f r Dateninhalte vor Daten nderung sog Before Image Information und tempor re Segmente f r Sortieroperationen und damit verwandte Operationen z B Gruppierungen Wird bspw eine gro e Menge an Speicherplatz daf r angefordert dann wird auf tempor re Segmente Speicherplatz f r Zwischen ergebnisse und das Resultat ausgewichen Nach erforderlicher Durchf hrung der Sortierung und Gruppierung werden tempor re Segmente wieder gel scht Tablespace Alle Segmente werden in Tablespaces logische Einheiten zur Speicherzuteilung angelegt Ein Tablespace umfa t mindestens eine Datenbankdatei Tabelle und stellt den datenbankdateien physisch Speicherplatz zur Verf gung Eine Datenbank besteht immer aus mindestens einer Tablespace System Tablespace die aus mindestens einer physischen Datei besteht Tablespaces k nnen mit CREATE TABLESPACE erzeugt werden Datenbankobjekte z B Tabellen Indexe Cluster werden hier angelegt Werden Tablespaces beim Anlegen von Objekten nich
194. en des virtuellen Adressraums und des Initialisierungsparameters open_cursors beliebig viele Cursors er ffnen Weiterhin werden zur Parameter bergabe bzw zur Aufnahme des Resultats Binde Variable in Anwendungen benutzt Das Vorgehen zum Binden von Variablen unterscheidet sich nach Art des Clients Embedded SQL OCI usw Der PARSE Befehl Sie dient zur Vorbereitung der Ausf hrung eines SQL Befehls Der Oracle Server arbeitet nach der Methode dynamisches SQL d h SQL Befehle der Anwendungen sind dem OracleServer vor der Ausf hrung nicht bekannt Zur Optimierung der Performance des dynamischen SQL wird beim Server ein einmal bestimmter Ausf hrungsplan in dem daf r vorgesehenen Teil des SGA Shared Pool abgelegt In der PARSE Phase wird der zu bearbeitende SQL Befehl an den Server als Zeichenkette geschickt und dort analysiert Befindet sich der Befehl im Shared Pool und kann er verwendet werden dann wird die PARSE Phase sofort beendet Andernfalls erfolgt eine Syntaxpr fung die Auswertung der betroffenen Datnbankobjekte Tabellen Views usw eine Zugriffspr fung und die Bestimmung des Ausf hrungsplans durch den Optimizer Welches Objekt wird zuerst gelesen Welche Indexe werden benutzt Der Ausf hrungsplan und der SQL Befehl werden im Shared Pool abgelegt Die EXECUTE Phase Sie kann nach einer erfolgreichen PARSE Phase durchgef hrt werden Bei allen SQL Befehlen au er dem select Befehl verbirgt sich hier die komp
195. en und Ergebnisse Die Erkl rungskomponente explanation component kann dem Anwender begr nden durch welche Regeln und Fakten ein Ergebnis zustande kam Sie gibt dem Experten die M glichkeit zu berpr fen ob das System seine Schlu folgerungen korrekt nachbildet Der Dialogteil dialog management f hrt das Gespr ch zwischen Anwender und Rechner Die Wissensadministration erm glicht dem System zu lernen d h neues Wissen in die Wissensbasis einzuf gen oder altes Wissen zu ver ndern ohne da dies explizit programmiert werden mu Was unterscheidet ein Expertensytem von herk mmlichen Datenbanken Aus den bisher vorliegenden Angaben k nnte abgeleitet werden es handle sich bei einem Experten System um nicht viel mehr als eine Datenbank mit einem komfortablen Abfragesystem Ein Expertensystem ist aber mehr Drei Eigenschaften die ein Datenbanksystem nicht besitzt charakterisieren ein Expertensystem Es ist heuristisch lernf hig und selbsterkl rend Datenbanken enthalten Fakten ber die reale Anwendungswelt Nur eine kleine Anzahl von Regeln kann in Datenbanksystemen z B in der Form von Integrit tsbedingungen enthalten sein Generell ist keine Speicherung von Regeln vorgesehen So kann bspw die Regel Wenn ein Student Informatik studiert dann mag er Prolog in konventioneller Datenbanktechnik nicht explizit gespeichert werden Wissensbasen erlauben im Gegensatz zu Datenbanken die explizite Darstellung regelbasiert
196. enoperation DECLARE cursor INSENSITIVE SCROLL CURSOR FOR table expression ORDER BY column ASC DESC column ASC DESC FOR READ ONLY UPDATE OF column commalist Nach dem ffnen des Cursors OPEN Cursor kann man satzorientiert auf die Ergebnismenge des Cursors zugreifen Der satzorientierte Zugriff erfolgt ber FETCH Befehle Vom Ausgangspunkt des aktuellen Datensatzes kann der Programmierer ber Navigationsfunktionen den Datensatzzeiger absolut oder relativ positionieren und mit der Deklaration des Cursor Zugriffsrechte nur Lesen ndern etc definieren Das Positionieren des Cursor und das bertragen der Variablen erfolgt ber FETCH NEXT PRIOR FIRST LAST ABSOLUTE number RELATIVE number FROM cursor INTO parameter lt variable commalist 263 Datenbanken Zum ndern L schen werden benutzt UPDATE table SET column value DEFAULT NULL column WHERE CURRENT OF cursor DELETE Table WHERE CURRENT OF Cursor Am Ende mu der Cursor geschlossen werden CLOSE cursor Mit dem Cursorkonzept ist die M glichkeit einer satzweisen Verarbeitung von Tabellen in prozeduralen Sprachen geschaffen Notwendig sind jetzt noch Regeln nach denen SQL in prozeduralen Sprachen verwendet wird Der SQL 92 Standard und Oracle SQL bieten hier verschiedene Konzepte an Embedded SQL in Oracle Jeder in einem Programm e
197. enschaften 1 Die Daten werden einheitlich durch Werte repr sentiert die in Form von Tabellen dargestellt werden 2 Der Benutzer sieht keine speziellen Verweisstrukturen zwischen den Tabellen 3 Es gibt Operationen zur Auswahl von Tabellenzeilen Selektion Tabellenspalten Projektion sowie zur Verbindung join von Tabelleneintr gen Keine dieser Operatoren ist jedoch auf Kontrollstrukturen angewiesen oder durch vordefinierte Zugriffsstrukturen beschr nkt Diese Operationen werden ber eine Datenmanipulationssprache DML realisiert die auf Daten zugreifen Daten einf gen l schen korrigieren und Anfragen beantworten kann Datenmanipulationssprachen im Bereich relationaler Datenbanken sind besonders leicht und einfach Ein weit verbreitetes Beispiel daf r ist SQL1 Die Darstellung der Daten in einer relationalen Datenbank folgt speziellen Vor schriften Diese Vorschriften Theorie des relationalen Datenbankentwurfs be zeichnet man blicherweise als Normalisierungstheorie 3 Normalisieren bedeutet Darstellung des logischen Schemas einer relationalen Datenbank in der Form einfacher nicht geschachtelter Tabellen Das relationale Datenbankmodell ist heute die bliche Organisationsform in der Daten f r die Abbildung im Rechner beschrieben werden F r die Darstellung gelten allgemein folgende Regeln Alle Datens tze Tabellenzeilen sind gleich lang 9 vgl Codd E F A Relational Modell of Data for Large Share
198. enschaften machen die meisten der heute verf gbaren Expertensysteme noch folgende Annahmen Die Menge der zu verwaltenden Fakten und Regeln ist klein klein genug um vollst ndig im Hauptspeicher gehalten zu werden Es arbeitet jeweils nur ein Benutzer auf derselben Fakten und Regelmenge Die Sicherung und Wiederherstellung der Daten wird durch die Betriebsumgebung geleistet nderung der Fakten und Regeln sind sehr selten 19 Datenbanken 1 2 3 Klassifikation von Datenbanken 1 2 3 1 Klassifikationsmerk male Es gibt in der Datenverarbeitung zwei Arten von Informationen die wegen ihrer grunds tzlich verschiedenen Struktur auch bei Datenbanken unterschiedliche Behandlung erfordern 1 Texte Jede Zeichenkette Wort besitzt eine Bedeutung Die Stellung der Worte im Text ergibt den logischen Zusammenhang 2 Daten Die Position der Daten innerhalb einer Zeichenkette weist dem Wert eine Bedeutung zu Dadurch ist die Reihenfoge streng festgelegt Bsp Zahlenfolge 345670076 Die Zahlenfolge sagt nichts aus solange unbekannt ist die ersten 2 Stellen 34 beinhalten den Schl ssel f r eine Automarke die n chste Stelle 5 den Fabrikationsort die n chsten 4 Stellen 6700 den Autotyp 1 2 3 2 Formatierte und unformatierte Datenbanken Formatierte Datenbest nde Die Abspeicherung der Daten erfolgt nach einem festen Schema Format Der Zugriff zu den Daten ist ber Ordnungskriterien und Feldnamen gegeben
199. er in einem Subschema beschrieben und bereitgestellt 2 Die Ebene der funktionalen Gestaltung Beschrieben wird hier das allumfassende Konzept f r die Anwendung der Daten aus der Datenbank konzeptuelles Schema 3 Die Ebene der physischen Gestaltung Beschrieben wird hier die zweckm ige Ablage der Daten auf peripheren Speichern internes Schema Bsp Beschreibung der Zusammenh nge bei der maschinellen Abwicklung des Bestellwesens Ausgangspunkt ist die BESTELLUNG Bestell Nr Lieferanten Nr Bestell Datum Liefertermin Preis der bestellten Waren Summe Der Bestellsatz ist unvollst ndig Er ist zu erg nzen durch Angabe von Bestell positionen Wiederholungsgruppen Problem BESTELLPOSITION Weiterhin m chte man mehr ber den Lieferanten wissen LIEFERANT Lieferant Nr Name des Lieferanten Adresse des Lieferanten Information ber den Lieferanten Der Lieferant kann bestimmte Waren repr sentiert durch eine Teile Nr zu be stimmten Konditionen Preis Liefertermin etc liefern PREISNOTIERUNG Teile Nr Einzelpreis Liefertermin Das Teil ist noch zu beschreiben TEILE Teile Nr Beschreibung Vorrat an Teilen im Lager Schlie lich ist der Teilestammsatz noch mit den vorhandenen Bestellungen Bestell Nr zu verkn pfen Es mu bekannt sein welche Bestellungen zu einem Teil bereits vorliegen bei dem der Vorrat zur Neige geht Schema Der folgende Schema Entwurf bietet sich
200. er ndert Damit entfallen Programm nderungen Der Datenbestand f r die Adressenschreibung wird v llig neu aufgebaut Ute 8 M nchen Ebertstra e 8 M nchen Hahnstra e 29912 8 M nchen Buschstra e 27330 8 M nchen Karlsplatz Abb 1 1 3 Datenbestand f r die Adressenschreibung Es ergeben sich aus dieser L sung allerdings zwei neue Probleme Bestimmte Ordnungsbegriffe sind doppelt zu speichern Pers Nr Name Man spricht von Datenredundanz gleiche Informationen sind mehrfach abgespeichert Daraus ergibt sich 1 Zus tzlicher Bedarf an Speicherplatz auf externen Speichereinheiten 2 Unterschiedlicher Stand der Datenbest nde wenn nicht alle Anderungen in mehrfach gespeicherten Daten durchgef hrt werden Eine 3 Aufgabe ist F r jeden Mitarbeiter sind Informationen ber seine Ausbildung bzw Erfahrungen und die M glichkeiten seiner Besch ftigung zu speichern Mitarbeiter M ller kann z B im Unternehmen zwei Besch ftigungen aus ben F r jede Besch ftigung hat er eine entsprechende Ausbildung bzw Erfahrung Es ergeben sich wieder zwei L sungen f r die 3 Aufgabe L sung 1 Erweiterung des gemeinsamen Datensatzes L sung 2 Aufbau eines dritten Datenbestandes Probleme Wie viele Besch ftigungen kann ein Mitarbeiter m glicherweise dann aus ben Wie viele Ausbildungen bzw Erfahrungen kann er haben Wieviel Speicherplatz mu f r neue Ausbildungen bzw Erfahrungen im Datensatz je Mitar
201. er 2 Tier Architektur ist dass Client Server Applikationen sehr einfach und schnell erstellt werden k nnen z B mittels visuellen Programmiertools Diese Applikationen arbeiten meist noch recht gut in Prototypen und kleineren Installationen zeigen aber schnell ihre Grenzen wenn sie in gr eren Anwendungssystemen mit einer hohen Benutzerzahl und vielen konkurrierenden Zugriffen eingesetzt werden 3 Tier Architekturen sind besser skalierbar robust und flexibel Sie k nnen Daten von mehreren verschiedenen Quellen verarbeiten sind im Netzwerk einfacher zu administrieren und zu entwickeln da der meiste Code auf dem Server l uft 3 Tier Applikationen verringern die Netzwerklast durch zusammengefasste Serviceaufrufe Anstatt mit der Datenbank direkt zu kommunizieren wird mit der Mittelschichtlogik auf dem Server kommuniziert Diese arbeitet dann eine Reihe von Datenbankzugriffen ab und reicht nur das gew nschte Ergebnis zur ck Daraus resultiert eine h here Performance durch wenige Serveraufrufe Au erdem wird eine h here Sicherheit gew hrleistet da kein direkter Zugriff auf die Datenbank durch den Klienten erfolgt 136 Datenbanken 1 5 3 3 Client Server und Internet Intranet Grundlage der Client Server Architektur ist eine Verteilung zwischen verschiedenen Systemen und Systemteilen Die Internet Technologie ist eine Hardware und Systemstruktur kombiniert mit einheitlichen Protokollen und Pr sentationsformaten Sie repr se
202. er Informationen aus denen Schlu folgerungen Ableitung von Informationen gezogen werden k nnen Verfahren zur Repr sentation von Wissen k nnen eingeteilt werden in 1 Logische Vefahren Die Wissensbasis wird durch Ausdr cke der formalen Logik pr sentiert Inferenzregeln wenden dieses Wissen auf die L sung spezifischer Probleme an Das am h ufigsten verwendete Darstellungsschema ist das Pr dikatenkalk l 1 Ordnung Die Programmiersprache Prolog st tzt sich auf dieses Kalk l und ist daher f r die Implementierung von Wissensbasen mit logischen Repr sentationsverfahren besonders geeignet 2 Netzwerk Verfahren Sie pr sentieren das Wissen durch einen Graphen bei dem die Knoten die Objekte und Konzepte des Problemgebiets darstellen und die Kanten die Beziehung zwischen diesen Objekten oder Objekttypen Semantische Netze sind daf r ein Beispiel Im Gegensatz zu Datenbankmodellen Trennung von Schema und Instanz geh ren Objekte Instanzen zur Repr sentation von Wissen hinzu Netzwerkbezogene Verfahren sind demnach eine objektbezogene graphische Darstellung von Wissen 18 Datenbanken Wissenbank Arbeitsspeicher Regeln Fakten Inferenzmaschine Inferenz Steuerung Wissenserwerbs Erkl rungs Benutzer komponente komponente schnittstelle Abb 1 2 2 Aufbau eines Expertensystems Datenbanksysteme werden bzw wurden f r Anwendungen entwickelt die sich folgenderma en charakterisieren lassen Die Daten weisen
203. erden durch eine Prepare to Commit Anweisung des Commit Managers aufgefordert den Ready to Commit Zustand einzunehmen Die Subtransaktionen k nnen wieder verteilte Transaktionen abgesetzt haben zu welchen sie das Prepare to Commit Kommando weiterleiten m ssen So kann ein Transaktions Baum entstehen mit dem Commit Manager als Wurzel Der Manager wartet dann auf die Best tigung aller beteiligten Stationen dass sie den Ready to Commit Zustand eingenommen haben Ist diese Best tigung eingetroffen wird sie in einem sicheren Platz zwischengespeichert damit sich das System auch nach einem Wurzelknotenausfall in den Ready to Commit Zustand zur ckversetzen kann Damit ist die erste Phase des 2PC Protokoll abgeschlossen Ein Commit wird vom Manager an alle Knoten gesendet Haben die Subtransaktionen wiederum Subtransaktionen so muss auch an diese die Commit Aufforderung weitergegeben werden usw Auf diese Weise wird der gesamte Transaktionsbaum durchlaufen 66 Rollback Zur cksetzen des Systems in den Ausgangszustand vor der Transaktion z B werden Ver nderungen der Daten in der DB r ckg ngig gemacht 118 Datenbanken Die zweite Phase des 2PC Protokolls ist beendet wenn alle beteiligten Knoten eine Commit Best tigung zum Manager gesendet haben Jetzt kann dem Client der erfolgreiche Abschluss der Transaktion mitgeteilt werden Die Transaktion wird abgebrochen wenn eine Subtransaktion fehlschl gt und die Commit Aufforderung
204. erer Anweisungen nicht identisch sind SELECT Anweisungsfolgel MINUS SELECT Anweisungdfolge2 MINUS SELECT Anweisungsfolge3 select angestellte ang_id from angestellte minus select angestellte ang_id from angestellte where angestellte abt_id OD Operation der relationalen Angebra UNION select angestellte ang_id from angestellte where angestellte abt_id OD union select angestellte ang_id from angestellte where angestellte abt_id PA Operation der relationalen Algebra INTERSECT INTERSECT bestimmt ob die ausgew hlten Werte der ersten Anweisung mit denen der zweiten und oder weiterer Anweisungen identisch sind bereinstimmungen werden am Bildschirm ausgegeben SELECT Anweisungsfolgel NTERSECT SELECT Anweisungsfolge2 NTERSECT SELECT Anweisungsfolge3 select angestellte job_id from angestellte where angestellte abt_id OD intersect select angestellte job_id from angestellte where angestellte abt_id KO Hierarchische Beziehungen Viele in Datenbanken dargestellte Objekte stehen untereinander in einer hierarchischen Beziehung Eine hierarchische Beziehung ist die Beziehung Vorgesetzter in einer Firma Damit eine hierarchische Beziehung zwischen den S tzen einer Tabelle besteht mu ein Feld existieren z B mit dem Namen Vorgesetzter in der Tabelle Angestellte das den Wert NULL hat Alle anderen Feldwerte dieses Feldes dagegen m sse
205. erer Set Owner li Member Abb 1 3 21 Occurrence Diagramm im Netzwerkmodell Leerer Set Der Owner besitzt keine Member 3 Die Datenbank des Netzwerk Datenmodell Es gibt eine Menge von benannten Entit ts Typen und eine Menge von benannten Set Typen Jede Entit t der Datenbank geh rt genau zu einem Entit ts Typ jede konkrete Beziehung zwischen Entit ten zu genau einem Set Typ Den Set Typen sind keine Attribute zugeordnet Die Member jedes Set sind gem einer dem Set Typ zugeordneten Ordnung geordnet Eine Teilmenge von Entit ts Typen ist ausgezeichnet F r sie gilt Zu jeder Entit t e der Datenbank gibt es mindestens einen gerichteten Weg amp 1 2 k1 k dessen Ausgangspunkt amp von einem Typ E ist Entit ten von einem Typ E hei en Einstiegpunkte in das Netzwerk Jede Entit t die nicht von einem Typ E ist kann nur ber eine vom Einstieg punkt ausgehende Folge von Sets erreicht und dem Benutzer zug nglich gemacht werden Dabei kann ein Set auch vom Member zum Owner durchlaufen werden Bsp Komplexe Beziehungen zwischen Angestellten und Projekten G Abb 1 3 22 ER Diagramm f r Angestellter und Projekt A_P ist hier vom Typ m n denn ein Angestellter arbeitet an mehreren Projekten bzw ein Projekt wird von mehr als einem Angestellten bearbeitet z B Es bestehen zwischen den 4 Angestellten A1 A2 A3 A4 und den Projekten P1 P2 P3 die folgenden konkreten Bezie
206. erf gung der zweite f gt die BigDecimal Klassen hinzu Weiterhin mu der Treiber selbst geladen werden Dies geschieht ber die Anweisung Class forName oracle jdbc driver OracleDriver Der Treiber selbst ist eine gew hnliche Java Klasse Das ungew hnliche an dieser Vorgehensweise ist da diese erst zur Laufzeit des Programms hinzugebunden wird 52 Rainer Klute JDBC in der Praxis Addison Wesley S 41 283 Datenbanken Hierf r bedient sich die Java Virtual Machine des Classloaders Die Klasse die geladen werden soll mu sich in einem Pfad einer ZIP oder JAR Datei befinden die im CLASSPATH eingetragen ist siehe Installationshinweise Ist der Classloader nicht in der Lage dieTreiberklasse hinzuzubinden erzeugt er eine java lang ClassNotFoundException Wird der Treiber erfolgreich geladen meldet er sich mit seinem Initialisierungscode beim JDBC Treibermanager an Selbstverst ndlich kann ein Programm viele verschiedene JDBEC Treiber gleichzeitig laden um verschiedene Datenbanken parallel anzusprechen Dabei sind die einzelnen Treiber meistens herstellerspezifisch Im Falle des Oracle Treibers wird empfohlen den JDBC OCI Treiber zu registrieren Dies erfolgt mit Hilfe des Aufrufs von DriverManager registerDriver new oracle jdbc driver OracleDriver ffnen einer Datenbank Das ffnen der Datenbank kann unter Verwendung zweier Methoden erfolgen Die erste Methode die nur f r den direkten Aufruf des
207. erfolgt ber eine Vielzahl von getXxXX Methoden entsprechend dem zu lesenden Datentypen Diese Methoden f hren eine Konvertierung des datenbankspezifischen Datentyps in den zugeh rigen Java Typen durch Ein ResultSet wird vom ausf hrenden Statement geschlossen sobald das Statement geschlossen wird wenn es neu ausgef hrt wird oder aber wenn zur n chsten Ergebnis menge gesprungen wird f r den Fall da mehrere Ergebnismengen vorliegen Der Index die Typen und Eigenschaften der Spalten eines ResultSet k nnen durch das ResultSetMetaData Objekt abgefragt werden das von der getMetaData Methode bereitgestellt wird 291 Datenbanken java sql ResultSet Methoden Methodenname R ckgabetyp next boolean close DT wasNull 0 boolean Beschaffen der Datenwerte ber die Position Beschaffen der Datenwerte ber den Spalten Name Methodenname Parameter R ckgabetyp String columnName Java io Input Stream String columnName boolean byte Bes String column Name i O Sring columnName ee oo o o n ooo T columnName int String columnName Methodenname getBinaryStream getBytes getInt String columnName int scale Java sql Numeric getObject getTimeStamp findColumn String ColumnName int Object im geWamings 0 clearWamings SQLWarning void em O O O O getMetaData do ResultSetMetaData getMetaData gibt die Metainformationen ber ei
208. ernde DML Befehle akzeptiert die Ausf hrung wird aber bis zur Aufhebung der bestehenden Sperre unterbunden 261 Datenbanken EXCLUSIVE MODE Dieser Modus verbietet Die Anforderung jeglicher Art von Sperren auf die gleiche Tabelle jegliche Ver nderung mit UPDATE INSERT DELETE DROP und ALTER Dieser Modus erlaubt anderen Anwendern die Anwendung von SELECT Befehlen auf gesperrte Tabellen SQL sperrt automatisch bei jedem der Befehle INSERT UPDATE DELETE die betroffenen Tabellen im EXCLUSIVE MODE SHARE UPDATE MODE Dieser Modus untersagt anderen Anwendern die Anforderung von Sperren im SHARE oder EXCLUSIVE MODE die Ver nderung derselben Zeile der Tabelle Er erlaubt anderen Anwendern die gleichzeitige Anforderung von SHARE UPDATE Sperren die Ver nderung anderer Zeilen derselben Tabelle Hier wird nicht eine Tabelle gesperrt sondern lediglich einige Zeilen Ein gesetzter LOCK bleibt bestehen bis ein COMMIT oder ein ROLLBACK ausgef hrt wird Danach werden alle bestehenden LOCKs gel scht Oracle kontrolliert das Entstehen von Deadlocks automatisch und l st diese auf indem einer der beteiligeten Befehle abgebrochen wird 2 3 4 Rekursive und iterative Abfragen mit SQL Berechnung der transitiven H lle SQL ist ausgerichtet an Relationenkalk l und Relationenalgebra Bereits Anfang der 70er Jahre wurde erkannt da eine wichtige Klasse von Aufrufen n mlich die Berechnung der sog transitiven H ll
209. erschaltelten Zustandsdiagramms Allgemein bezeichnet do eine Aktivit t die unendlich lange dauern kann Start M nzenEin Betrag Guthaben setzen Geldkassierend M nzenEin Betrag Guthaben erh hen Abbrechen M nzen zur ck Flaschen leer w hlen Getr nk Wechselgeld lt 0 do Flaschen pr fen und Wechselgeld berechnen Wechselgeld gt 0 Wechselgeld 0 do Wechselgeld ausgeben do Flasche ausgeben Abb Zustandsdiagramm f r einen Getr nkeautomaten Aktivit tsdiagramm Ein Aktivit tsdiagramm ist ein Sonderfall des Zustandsdiagramms der den Flu von einer Aktivit t zu einer anderen innerhalb eines Systems zeigt Eine Aktivit t actvity ist ein andauernder nichtatomarer Ablauf innerhalb eines Automaten Aktivit tsdiagramme enthalten blicherweise Aktivit tszust nde und Aktionszust nde Zustans berg nge Transitionen Objekte 81 Datenbanken Aktivit t Bedingung 1 Aktivit t Aktivit t Aktionszustand Aktivit t Endzustand DER Reh rer Abb Aktivit tsdiagramm Package Diagramm Package Diagramme dienen zur Strukturierung der verschiedenen Darstellungen Damit werden Gruppen von Diagrammen oder Elementen zusammengefa t C Textverarbeitung 0007 Rechtschreibung N N O er lt Abb Beispiel f r ein Package Diagramm Ein Package Diagramm besteht im wesentlichen aus Packages dargestellt durch g
210. erte d h keine Werte enthalten darf oder nicht Prim rschl ssel sollten grunds tzlich mit der Option NOT NULL ausgestattet sein NULL Werte werden in allen alphanumerischen Datentypen durch Leer Strings der L nge 0 repr sentiert Indexe k nnen mit CREATE INDEX erstellt werden z B CREATE UNIQUE INDEX ABT_IDX ON ABTEILUNG ABT_ID CREATE UNIQUE INDEX JOB_IDX ON JOB JOB_ID CREATE UNIQUE INDEX ANGEST_IDX ON ANGESTELLTE ANG_ID CREATE UNIQUE INDEX QUAL_IDX ON QUALIFIKATION ANG_ID JOB_ID SQL verf gt ber zwei Zugriffsmethoden den sequentiellen und indexorientierten Zugriff Beim sequentiellen Zugriff beginnt das System am Anfang der Tabellen zu 104 Datenbanken suchen und arbeitet Satz f r Satz durch die Tabelle bis der gew nschte Datensatz gefunden ist Bei umfangreichen Datenbest nden sollte man f r jeden Satz einen Suchbegriff Index vereinbaren der in einer Indextabelle abgespeichert wird Der Zugriff auf die tats chlich vorliegende Tabelle kann ber die Indextabelle erfolgen jedem Suchbegriff ist eine eindeutige Positionsangabe Satzzeiger des Datensatzes auf dem externen Speicher zugeordnet F r Indexe gelten die folgenden Bearbeitungsregeln Eine order by Klausel in einer elect Anweisung kann jede Spalte einer Tabelle referenzieren unabh ngig d
211. etrieval Zu einer veralteten Wiedergewinnung out of date retrieval f hrt dagegen die folgende Reihenfolge der Ereignisse 1 Transaktion T liest das Objekt zur Aktualisierung aus der Datenbank 2 Transaktion T liest das Objekt zur Information 3 Transaktion T ver ndert das Objekt und schreibt es zur ck in die Datenbank 116 Datenbanken Lese Schreibsperren Hier m ssen f r die Dauer der Ausf hrung einer Transaktion die betroffenen Daten sog Konsistenzbereich gegen den Zugriff anderer Anwender gesch tzt werden So mu eine der beiden Transaktionen den Zugriff bzgl des Objekts sperren Die Wahl bzw die Definition des Konsistenzbereichs soll derart geschehen da nur der m glichst kleinste definierbare aber notwendige Bereich gesperrt wird Eine Lesesperre erlaubt den Lesezugriff auf das Objekt und verhindert da eine Transaktion das Objekt aktualisiert Eine beliebige Anzahl Transaktionen kann eine Lesesperre auf ein Objekt zur gleichen Zeit aus ben Ein Schreibsperre erlaubt Lese und Schreibzugriff auf ein Objekt hindert andere Transaktionen am Lesen und Schreiben des Objekts Eine Transaktion erh lt exklusiven Zugriff auf das Objekt Die Gr e der Dateneinheiten die in einem Datenbanksystem gesperrt werden k nnen wird als Granularit t degree of granularity bezeichnet In relationalen Datenbanksystemen sind typischerweise folgende sperrbare Einheiten bekannt die Datenbank die Relation
212. etzen genau die mit Speicheranomalien in Zusammenhang stehenden Attribute die Kriterien der ZNF Aufspalten der Relation PERSON_ENF in ZNF Relationen PERSON_ZNF PE NAME WOHNORT A A NAME 101 Hans Regensburg 1 Physik 102 Rolf N rnberg 2 Chemie 103 Udo M nchen 2 Chemie 104 Paul Regensburg 1 Physik PE repr sentiert hier einen Prim rschl ssel PE PR PE PR ZEIT 101 11 60 101 12 40 102 13 100 103 11 20 103 12 50 103 13 30 104 11 80 104 13 30 Das Attribut PE repr sentiert hier einen Fremdschl ssel PRODUKT PR PR NAME 11 A 12 B 13 C Der Fakt kann immer noch verletzt werden und damit zu einer Speicheranamolie f hren 5 DNF Es ist keine funktionale Abh ngigkeit zwischen nicht dem Schl ssel angeh renden Attributen erlaubt Funktionale Abh ngigkeit besteht in PERSON_ZNF a I l j 1 l i I I i 1 1 PERSON_ZNF PE NAME WOHNORT A A NAME l verletzt DNF Kriterium Abb 2 1 7 Funktionale Abh ngigkeiten in PERSON_ZNF 168 Datenbanken Die Relation PERSON_ZNF wird in DNF Relationen aufgespalten PERSON PE NAME WOHNORT At 101 Hans Regensburg 1 102 Rolf N rnberg 2 103 Udo M nchen 2 104 Paul Regensburg 1 ABTEILUNG A A NAME 1 Physik 2 chemie 6 Zusammenfassung Die Problemstellung wird durch folgende Relationen beschrieben PRODUKT PR PR NAM
213. eweils n chsten Datensatz zugewiesen Die Schleife endet wenn kein weiterer Datensatz mehr vorhanden ist DECLARE string VARCHARZ2 40 status INTEGER cursor cl_title is select job titel from job where exists select from angestellte an where an job_id job job_id order by job titel BEGIN abms_output enable for job_rec in cl_title loop string job_rec titel abms_output put_line string end loop END 249 Datenbanken 4 Schlie en eines Cursor Ein Cursor wird geschlossen um ihn mit anderen Parametern wieder ffnen zu k nnen um die vom Cursor belegten Ressourcen wieder freizugeben Falls ein PU SQL Programm einen Cursor nicht schlie t schlie t Oracle diesen durch Beenden oder ein DISCONNECT beim Abmelden von der Datenbank e Eingebaute Funktionen PL SQL umfa t standardm ig einen umfangreichen Satz von Funktionen Numerische Funktionen R ckgabewert COSH x EXP x y O O FLOOR x LN x O O LOG x E a a eo N MOD x y POWER x y SNo ooo d O SINH o S O O TAND ooo G O TANHO o S O Er BAER Zeichenketten Funktionen R ckgabewert y Anzahl der Bytes in s 39 x y haben den Datentyp NUMBER 40 5 s1 s2 s3 haben den Datentyp VARCHAR 2 250 Datenbanken NLS_LOWER Ss1 s2 wie LOWER allerdings bzgl der Sprache s2 NLS_UPPER s1 s2 wie UPPER allerdings bzgl der Sprache s2 NLSSORT s1 s2 Sortiert s2 entsprechend der Sprache s2
214. ezifikation ODMG 93 70 Datenbanken 1 3 8 Die UML zur Beschreibung von Datenbankanwendungen Die Unified Modelling Language UML ist eine Sprache zur Beschreibung von Softwaresystemen Sie besteht aus verschiedenen Diagrammen die wiederum verschiedene grafische Elemente besitzen Die Bedeutung also die Semantik der Elemente ist genau festgelegt Innerhalb der UML gibt es allerdings f r ein und denselben Sachverhalt mehrere Darstellungsarten 1 3 8 1 Die Diagramme Die Notation der UML umfa t Diagramme f r die Darstellung verschiedener Ansichten auf das System Sie sind vergleichbar mit Baup nen Einsatzgebiet Gesch ftsprozesse allgemeine Einsatzm glichkeiten So gut wie berall das Klassendiagramm ist das wichtigste Diagramm der UML Objekte im zeitlichen Ablauf Groborientierung in welchem Modul welche Klasse zu finden ist Aufteilung in Unterprojekte Bibliotheken bersetzungseinheiten Aktivit tsdiagramm Bei parallelen Prozessen und anderer Parallelit t Gesch ftsprozesse Implementierungsdiagramm Besonders f r die Darstellung von verteilten Anwendungen und Komponenten allgemein Darstellung von Implementierungs einheiten bersetzungseinheiten ausf hrbare Programme Hardwarestruktur Deployment Diagramm Abb Einsatzgebiete und Eigenschaften der verschiedenen UML Diagramme Jedes der Diagramme besitzt zahlreiche Stilelemente mit verschiedenen Beschriftungsarten Use Case Anwendungdf
215. ffsbenennung zu verwenden RT related term Die mit RT gekennzeichnete Begriffsbenennung ist in ihrer Bedeutung mit der vorstehenden Vorzugsbenennung verwandt jedoch nicht im Sinne einer BT oder NT Beziehung Vorzugsbenennungen sind unterstrichen z B Koaxialkabel UF Koaxialleitung NT Fl ssigkeitsgef llte Koaxialkabel BT bertragungskabel RT Starkstromkabel Koaxialleitung USE Koaxialkabel Koaxialfilter BT Elektr Filter RT Mikrowellenfilter Kobalt BT Metall 15 Datenbanken Ein Thesaurus ist eine Dokumentationssprache die aus Deskriptoren zur eindeutigen Begriffsbenennung Vorzugsbenennung und zus tzlichen W rtern der nat rlichen Sprache erg nzende Begiffsbenennung Hilfsmittel zur Darstellung von Beziehungen zwischen diesen Benennungen besteht Vorzugsbenennungen sind f r die Informationswiedergewinnung die entscheidenden Gr en Unter ihnen gibt es keine Polyseme oder Synonyme Vorzugsbenennungen sind in der Regel durch zus tzliche Begriffsbestimmungen erg nzt damit eine vielschichtige Beschreibung der Dokumente m glich ist Eine weitere zentrale Aufgabe in einem Thesaurus ist neben der Bestimmung von Vorzugsbenennungen und der dar ber hinaus erlaubten Begriffsbenennungen die Festlegung von Beziehungen zwischen den Begriffsbenennungen Folgende Beziehungen findet man in Thesauri am h ufigsten bergeordneter Begriff OB untergeordneter Begriff UB verwandter Begriff VB We
216. gebnis liefert Gesucht werden alle Angestellten die ein groesseres Jahresgehalt haben als jeder Angestellte mit dem Beruf Operateur select a name j gehalt 12 Jahreseinkommen from angestellte a job j where a job_id j job_id and j gehalt 12 gt ALL select j gehalt 12 from angestellte a job j where a job_id j job_id and j titel Operateur 6 Verbundanweisungen mit Gruppenbildung Bestimme eine Tabelle in der folgenden Weise Zun chst werden alle Mitarbeiter nach Abteilungen und dann nach Berufen aufgef hrt Z hle jeden Mitarbeiter Anzahl in der soeben definierten Klasse und gib fuer die Klasse das Jahresdurchschnittsgehalt an Die Ausgabe soll in eine Tabelle mit folgenden Spalten berschriften erfolgen abt_id job titel Anzahl Jahresdurchschnittsgehalt select abteilung abt_id job titel count ang_id Anzahl avg jJob gehalt 12 Jahresdurchschnittsgehalt from abteilung angestellte job where abteilung abt_id angestellte abt_id and angestellte job_id job job_id group by abteilung abt_id job titel 7 Mit Hilfe der HAVING Klausel k nnen Gruppen ausgew hlt werden die in die Ergebnistabelle aufgenommen werden sollen Finde das Jahresdurchschnittsgehalt f r alle Jobs denen mehr als zwei Angestellte angeh ren Die Ausgabe soll in eine Tabelle mit folgenden Spalten berschriften erfolgen job titel ANZAHL JAHRESDURCHSCHNITTSGEHALT select job titel count ang_id ANZAH
217. gent mer der Tabelle erstellen und die Benutzer denen mit GRANT INDEX die Befugnis dazu erteilt wurde CREATE UNIQUE NDEX Indexname ON Tabelle Attributname Attributname Optionen Wurde ein bestimmtes Attribut indiziert dann erfolgt die weitere Indexverwaltung komprimierte und unkomprimierte BB ume automatisch Die Form der SELECT INSERT UPDATE oder DELETE Befehle ndert sich nicht Mit Indexen kann man au erdem sicherstellen da ein bestimmter Attributwert nur einmal in einer Tabelle existiert Ein Index kann auch wieder gel scht werden ber DROP INDEX Indexname b Cluster Mit einem Cluster kann die physikalische Speicherung der Tabellen beeinflu t werden die Attribute vom gleichen Typ gleicher L nge und gleicher Bedeutung besitzen Durch die Bildung eines Cluster wird erreicht die Datens tze der beteiligten Tabellen werden auf gleiche Plattensektoren gespeichert jeder unterschiedliche Attributwert der betreffenden Attribute wird nur einmal gespeichert Transaktionen Transaktionen berf hren Datenbanken von einem konsistenten Zustand in einen neuen konsistenten Zustand und benutzen dazu eine Folge von logisch zusammengeh rigen Operationen z B UPDATE DELETE INSERT Das bedeutet Nach Ausf hrung einer einzelnen Operation kann die Datenbank inkonsistent sein Das DBMS mu die R ckf hrung auf den bisher bekannten konsistenten Zustand erm glichen Alle
218. geordnete Menge Feldkonstruktor array in dem Elemente ber einen Index Subskript ansprechbar sind 3 Klassen Typen Eine Klasse ist eine Beschreibung die einen Namen f r die Objektmenge die Struktur der Objekte der Menge ihre Werte die Methoden die die Objekte der Menge ausf hren k nnen umfa t Ein Objekt einer Klasse wird Instanz genannt Instanzen einer Klasse haben den gleichen Aufbau benutzen diesselben Namen Typen und Methoden Aus der Klasse k nnen Instanzen ins Leben gerufen werden 4 Typhierarchie Vererbung Es k nnen bergeordnete Klassen an untergeordnete Klassen Eigenschaften vererben Die Eigenschaften k nnen Zustand und oder das Verhalten beschreiben 5 Einkapselung Zustand und Methoden sind f r den Anwender gekapselt d h f r ihn unsichtbar information hiding Er kann nicht zu den Daten direkt zugreifen sondern nur ber die vorhandenen Methoden Die Methoden sind ihm ber Schnittstellen bekannt ber die er mit geeigneten Nachrichten die Methoden zum Arbeiten veranlassen kann 69 Datenbanken 6 Berechnungsvollst ndigkeit Zur Realisierung der Methoden mu eine Sprache zur Verf gung stehen die die Formulierung beliebiger Algorithmen gestattet Die Datenbanksprache soL in aktuell vorliegender Form gen gt diesen Anforderungen nicht 7 berladen berschreiben und sp tes Binden Dabei handelt es sich um Detaikonzepte die die Vorteile der Klassenhierarchie und
219. gram Raw Stream Sockets setzen auf das TCP Datagram Sockets auf das UDP und Raw Sockets auf das IP Protokoll auf im Fall der TCP IP Protokollfamilie Der Typ der Sockets wird bei der Systemgenerierung festgelegt Eine Socketadresse f r das TCP IP Protokoll besteht aus der IP Adresse und der Portnummer Die IP Adresse ist eine 32 Bit Zahl die normalerweise durch vier Dezimalzahlen getrennt durch einen Punkt dargestellt wird Der Port ist der Eingangspunkt zu einer Applikation und wird durch eine 16 Bit Integer Zahl dargestellt Ports sind normalerweise Eingangspunkte zu Service der Server Applikationen Wichtige kommerzielle Server Programme z B Oracle DBMS FTP haben ihre festgelegten sogenannten well known Ports 2 Remote Procedure Call RPC Beim RPC ruft ein Client Prozess eine Funktion auf einem entfernten Server auf und verbleibt im Wartezustand bis er eine Antwort erh lt der RPC arbeitet also synchron Parameter werden wie bei jeden gew hnlichen Prozeduraufruf bergeben Es ist ein Client und ein Serverteil des RPC n tig Der Clientteil Client Stub wird von der Client Applikation wie eine lokale Prozedur aufgerufen Der auszuf hrende Prozedurcode befindet sich jedoch auf dem Server Also werden die Parameter in eine Nachricht verpackt und an den Serverteil des RPC den Server Stub gesendet Dieser packt dann die Parameter wieder aus f hrt mit diesen Parametern den Prozedurcode aus und sendet die Ergebnisse wiederum
220. gramm Server dar Der Server bietet Informations und Kommunikationsvermittlung an Aufgabe des Client ist es Anfragen des Benutzers in eine maschinenverst ndliche 81 firmenintern als Intranet genutzt 82 Das f ngt beim Tagesdatum an und reicht zu so komplexen Funktioen wie bspw Zeitsynchronisierung innerhalb eines komplexen Netzes oder der Nachrichtenvermittlung zwischen Objekten Object Request Broker 83 F r eine Vielzahl von Diensten sind Standgardisierungen in sog RFCs Request for Comments niedergelegt 137 Datenbanken Art umzuformulieren und dem Benutzer die vom Server gelieferte Antwort zu pr sentieren F r die Benutzung eines Internet Dienstes ist ein Client und ein Server Programm n tig Der Client bernimmt Vorfeldaufgaben front end application der Informationsverarbeitung und erlaubt unterschiedliche Datenquellen unter einer Oberfl che zu integrieren Internet Dienste erm glichen die Kommunikation mit anderen Internet Teilnehmern die Nutzung von Informationsressourcen im Internet und das Anbieten von Informationen ber das Internet Der Internet Dienst dem das Internet das exponentielle Wachstum verdankt ist das World Wide Web www Die Idee des World Wide Web WWW oder einfach nur Web ist Anfang 1989 am CERN entstanden Ausl ser waren Schwierigkeiten beim Auffinden relevanter Informationen im Internet in Hard und Software Zur L sung des Problems wurde ein auf der Client Server Architektur auf
221. h alle Definitionen die dieses Objekt ebenfalls verwenden Base Table Constraint Defintion CONSTRAINT constraint PRIMARY KEY UNIQUE column commalist INITIALLY DEFERRED IMMEDIATE NO DEFEABLE FOREIGN KEY column commalist REFERENCES base table MATCH FULL PARTIAL ON DEL NO ACTION CASCADE SE DEFAUL SE NULL ON UPDATE NO ACTION CASCADE SE DEFAUL SE NULL INITIALLY DEFERRED IMMEDIATE NO DEFERABL CHECK conditional expression INITIALLY DEFERD IMMEDIATE NOT DEFERABLE Die Option MATCH PART column commalist TAL erlaubt da in zusammengesetzten Fremdschl sseln einzelne Spalten den Null Wert annehmen Die Referenz mu nur f r die Spalten erf llt sein die nicht Null sind Column Constraint Defintion NOT NULL INITIALLY DEFERRED IMMEDIATE NOT DEFERRABLE PRIMARY KEY UNIQUE INITALLY DEFERRED IMMEDIATE NOT REFRABLE REFERENCES base table column ON DELET NO ACTION CASCADE SET DEFAULT SET
222. heiten von E4 zu modellieren die nicht unbedingt f r jede Entit t aus E2 relevant sind Darstellung Das Entity Relationship Modell dient vor allem zur Beschreibung des konzeptuellen Schemas 3 einer Anwendung Die Struktur aus Entit tsmengen Beziehungsmengen und Attributen wird im Entity Relationship Diagramm ER Diagramm grafisch dargestellt 1 Deklaration von Entit tsmengen Sie erfolgt ber ein Rechteck das den Namen der Entit tsmenge enth lt und durch Kreise die die Attribute aufnehmen Die Kreise werden durch ungerichtete Kanten mit dem Rechteck verbunden Elemente des Prim rschl ssel werden unterstrichen Wertebereiche werden nicht dargestellt 2 Deklaration von Beziehungsmengen Sie erfolgt durch eine Raute 20 die den Namen der Beziehungsmenge enth lt Die Raute wird durch Kanten mit der beteiligten Entit tsmengen Deklaration Recht ecke verbunden Die Kanten sind nicht gerichtet Ausnahme Hierarchische Beziehungen Der Typ der Beziehung wird an die Kante geschrieben Falls die Beziehungsmenge Attribute besitzt werden diese ebenfalls durch Kreise dargestellt und ber ungerichtete Kanten mit der entsprechenden Raute verbunden Bsp Beziehung zwischen Lieferant und Artikel im ERM Lieferant Artikel Letera Kien anke ODODO OEE Abb 1 3 5 ERM Diagramm zur Beziehung Lieferant Artikel Zur Darstellung der Auspr gungen Mengen Occurrences greift das ERM h ufig auf das relationale Datenbankmode
223. hitektur Bei der Client Server Kommunikation ber das Internet ben tigt man einen Server der st ndig in Bereitschaft ist und auf Anfragen von einem Client wartet Der Client baut eine Verbindung auf indem er eine Anfrage an den Server richtet und dieser die Verbindung aufnimmt Das einfachste Bsp hierf r ist ein Web Server der auf einem Host Rechner installiert ist Der Web Browser fungiert dabei als Client der eine Verbindung zu einem bestimmten Web Server f r den Datenaustausch herstellt In erster Linie wird der Client HTML Dokumente vom Web Server empfangen Viele Web Knoten legen jede Web Seite als eigene HTML Datei ab Solche Seiten sind allerdings statisch d h sie erzeugen bei jedem Aufruf denselben Inhalt In vielen 86 Proxy Server Das ist ein zus tzliches lokales Datenbeschaffungsinstrument f r einen bestimmten anwenderkreis Clients des oberen LAN Die Clients dieses Anwenderkreises gehen nicht direkt ans Netz sondern beauftragen ihren Proxy ber die schnelle lokale Verbindung eine oder mehrere Informationsseiten zu beschaffen Der Proxy holt sich die Seite speichert sie in einem lokalen Cache Speicher und liefert sie an den lokal anfordernden Client aus 139 Datenbanken Unternehmen steigt aber das Interesse vorhandene in Datenbanksytemen gehaltene Dokumente und Informationen f r Web Clients verf gbar zu machen Die Anbindung einer Datenbank an einen Web Server erleichtert die Aktualisierung der Inhalte Allerd
224. hlie en der Verbindung Zur cknahme der Handles Schlie en der Datenbank 280 Datenbanken a SQLAllocEnv envHandle ki SQLAllocConnect envHandle SQLSetConnectOption databaseHandle SQLConnect databaseHandle datenQuellenName UID PW SQLAIlocStmt databaseHandle statementHandle SQLPrepare statementHandle SQL_String_mit_Parametern SQLSetParam SQLExecutable statementHandle t statementHandle parameternummer 1 2 3 SQL_String SQLExecute statementHandle SQLBindColumn statementHandle u SQLFetch statementHandle A SQLFreeStmt statementHandle SQLDisconnect databaseHandle SQLFreeConnect databaseHandle SQLFreeEnv envHandle Abb Das ODBC Programmflu schema f r ein typisches Programm 281 Datenbanken 2 3 5 3 2 JDBC berblick zu JDBC JDBC steht f r Java Database Connectivity und umfa t zur Interaktion mit Datenquellen relationale Datenbankobjekte und Methoden Die JDBC APis sind Teil der Enterprise APIs die von JavaSoft spezifiziert wurden und somit Bestandteil der Java Virtual Machine JVM sind JDBC Designer haben die API auf das X Open SQL Call Level Interface CLI aufgebaut Auch ODBC basiert auf X Open SQL CLI JDBC definiert APHObjekte und Methoden zur Kommunikation mit einer Datenbank Ein Java Programm baut zun chst eine Verbindung zur Datenbank auf erstellt ein Statement Objekt gibt SQL Statements an das zugrundeliegende Datenbankverwaltungssyst
225. ht benutzt char sqlerrp 8 6 6 Statuscodes 8 char sqlerrd char sqlwarn char sqlext 8 l 8 Warnungsflags nicht benutzt hi Wichtige Informationen ber den Programmablauf enth lt sqlcode Wird nach der Verarbeitung hier eine O zur ckgegeben wurde die Verarbeitung ordnungsgem ausgef hrt Positive Werte beziehen sich auf Warnungen z B ORA 1403 no data found Negative Werte weisen auf Fehler der zugeh rige Befehl wurde nicht ausgef hrt Die SQLCA mu u U speziell ber EXEC SQL INCLUDE SOLCA in das Programm einbezogen werden 265 Datenbanken Gastgebendes Programm Fehler Text zur Diagnose Abb 2 3 5 SOLCA Exception Handling Der Status nach ausgef hrten SQL Anweisungen kann auf zwei Wegen berpr ft werden 1 berpr fen der Komponentenwerte der SOLCA 2 Automatische Fehler berwachung ber die WHENEVER Anweisung Die vollst ndige WHENEVER Anweisung ist festgelegt durch EXEC SOL WHENEVER bedingung aktion Falls dieses Kommando benutzt wird dann wird die SOLCA automatisch auf die bedingung berpr ft und gegebenenfalls die akt ion ausgef hrt Die Bedingung kann sein SOLERROR Ein Fehler ist aufgetreten sqlcode hat einen negativen Wert SOLWARNING Hier ist sqlwarn 0 gesetzt NOT FOUND Der sqlcode ist positiv d h Keine Zeile wurde gefunden die die where Bedingung erf llt bzw select into o
226. ht vor da die gespeicherten Objekte beliebig miteinander verkn pft sein k nnen Durch dieses Datenmodell werden Objekttypen und die vielf ltigen Beziehungen die zwischen Objekttypen bestehen k nnen beschrieben 1 Beziehungen Die Beziehungen zwischen den Objekttypen haben die Form einfacher Netzwerkstrukturen und tragen eine Benennung In einer grafischen Darstellung sind das Pfeile die die in eckigen K stchen dargestellten Objekttypen Entit ts Satztypen verbinden Die Benennung der Beziehungstypen Set Typen nimmt ein Oval Ellipse auf Eine Beziehung z B zwischen den Entit tstypen E bzw E stellt sich dann folgenderma en dar Abb 1 3 20 Datenbankstrukturdiagramm im Netzwerkmodell Beschreibt man in dieser Form einen umfassenden Bereich z B alle Daten eines Unternehmens so erh lt man einen gerichteten Graphen Seine Knoten sind Entit tstypen Seine Kanten sind Beziehungen zwischen den Entit tstypen da alle m glichen Beziehungen zugelassen sind erh lt man ein Netzwerk plex structure 2 Definition des Set Typ Jede Entit t e vom Typ E steht h chstens mit einer Entit t e vom Typ E in Bezie hung Zu jeder Entit t e vom Typ E geh rt ein Set vom Set Typ B Neben e geh ren dazu alle Entit ten e1 e ek vom TypE Ein Set Typ bestimmt eine 1 n Beziehung Die Auspr gungen eines speziellen Set Typs beschreibt man mit Hilfe eines Occurrence Diagramms 52 Datenbanken Nichtle
227. hungen TEET a2 x a3 bk as d d 53 Datenbanken Realisierung im Netzwerk Modell Notwendig ist die Einf hrung eines neuen der Beziehung A_P entsprechenden Entit ts Typ Es z B A P Zu jeder konkret auftretenden Beziehung wird festgelegt Eine Entit t Ai Pj vom Typ Eg 2 Set Typen b A AP und b P AP Die neue Entit t A P kann jetzt auch Attribute zugeordnet bekommen z B der Arbeitszeit Datenbankstruktur Diagramm Angestellte Abb 1 3 23 Datenbankstruktur und Occurrence Diagramm zur Beziehung Angestellter und Projekt 4 Zugriff auf eine Entit t Von einem Einstiegpunkt in die Datenbank gibt man einen genauen Weg in der Form einer Folge von Sets an ber die man die gew nschte Entit t erreichen kann Der Benutzer mu den Zugriffspfad f r jede Entit t selbst angeben Navigieren durch die Datenbank 54 Datenbanken Bsp Zugriff zu den Angestellten im Rahmen der komplexen Beziehungen zwischen Angestellten und Projekten Aufgabe Finde alle Angestellte die an Projekt P1 arbeiten L sungsschritte 1 Suche Entit t P1 2 Deute P1 als Owner eines Set vom Typ P AP 3 Suche 1 n chstes Member Ai P1 in diesem Set 4 Falls nicht vorhanden STOP evtl weiter mit 8 5 Vorhanden Deute Ai P als Member in einem Set vom Typ A AP suche zugeh rigen Owner Ai 6 Verarbeite Ai 7 Weiter bei 3 8 5 Zusammenfassung Die Einf hrung spezieller Entit ts Typen z
228. i i i l TRANSLATE s1 s2 s3 Ersetzt in s1 alle Zeichen die in s2 sind durch korrespondierende Zeichen in s3 UPPER s Wandelt alle Buchstaben in Gro buchstaben um Datumsfunktionen R ckgabewert s1 s2 S1 Aktuelles Datum und Uhrzeit TRUNC d s1 Schneidet die Datumsangaben von d entsprechend der Formatmaske si ab Fehlerbehandlungsfunktionen R ckgabewert SQLCODE Nummer der zuletzt aufgetretenen Ausnahme SQLERRM Meldungstext der zur Ausnahme laut SQLCODE geh rt SQLCODE ist ein vordefiniertes Symbol das den Oracle Fehlerstatus der zuvor ausgef hrten PL SQL Anweisung enth lt Wird eine SQL Anweisung ohne Fehler angezeigt dann ist SQLCODE gleich 0 SQLERRM ist ein PL SQL Symbol das die mit SQLCODE verbundene Fehlermeldung enth lt Wird eine SQL Anweisung erfolgreich durchgef hrt ist SQLCODE gleich 0 und SQLERRM enth lt die Zeichenfolge Oracle 0000 normal successfull completition 41 d d1 d2 haben den Datentyp DATE 251 Datenbanken Umwandlungsfunktionen ROWIDTOCHAR 42 Wandelt i in eine Zeichenkette um TO_CHAR d_wert d_format d_wert ist eine Datumsliteral ein datumswert aus einer Spalte oder ein von einer integrierten Funktion zur ckgegebener Datumswert d_format ist ein g ltiges datumsformat von Oracle TO_CHAR zahl format zahl ist ein numerischer ausdruck der umgewandelt werden soll format ist optionales Format das von to_char verwendet werden soll TO_DATE s
229. icht implementieren z B repeat repeat repeat repeat kann unter keinen Umst nden scheitern in diesem Sinn ist es das genaue Gegenteil von fail Mit diesem Pr dikat kann man ber Backtracking neue L sungen angeben und damit den Programmflu so lange anhalten bis eine bestimmte Situation eintritt 197 Datenbanken Negation in Prolog Prolog Klauseln z B Blase 2 ALLEN AZ Di agiies erlauben nur die Darstellung positiver Funktionen d h Prolog kann immer nur beweisen da etwas der Fall ist nicht aber da etwas nicht der Fall ist So ist bspw p 3 keine logische Folgerung aus dem folgenden Programm 202 Prolog antwortet aber auf die Frage p 3 mit NO und das ist keine logische Folgerung aus dem Programm Da p 3 nicht aus dem vorliegenden Programm folgt schlie t man 7 p 3 gilt Es handelt sich hier aber um einen Vorgang der die Negation ber das Scheitern eines Pr dikats realisiert negation as failure Zur Unterscheidung der Negation as Failure von der normalen logischen Negation schreibt man in Prolog not Negation as Failure kann zu Problemen f hren wenn negierte Ziele Variable ent halten z B X 2 not X 1 Die Antwort von Prolog ist X 2 Kehrt man die Reihenfolge der Ziele um not X 1 X 2 dann ist die Antwort NO Logisch gesehen sind beide Anfragen identisch Negation as Failure kann aber nicht zu korrekten Ergebnissen f hren wenn ungebundene
230. ichverbund verloren gegangen d Ungleichverbund r B gt EJs A B D E G 3 222 6 22 2 Gegeben sind die Relationen rund s r LNR NAME s LNR TNR a A a 1 b B a 2 e C b 2 e 3 Finde die Namen aller Lieferanten mit den Teile Nr die die Lieferanten liefern q r LNR LNRIs Ergebnisrelation v q NAME TNR 3 Gegeben ist r LNR TNR a 1 b 2 b 3 4 5 Finde die Lieferanten Nr von Lieferranten die die Teile mit derTeile Nr 2 und 5 liefern Definition von s B 2 5 Damit ergibt sich q r TNR B s Eine Projektion q LNR f hrt schlie lich auf das Ergebnis 176 Datenbanken 4 Division In der elementaren Algebra sind Multiplikation und Division zueinander invers In der relationalen Algebra ist das cartesische Produkt invers zur Division Ein wichtige Rolle spielen dabei die Begriffe Bild und Urbild eines Tupels Bsp Gegeben sind die Relationen r R1 R2 R3 und s S1 S2 AB C 1 2 U V W 8e 9 Das cartesische Produkt ist R1 R2 R3 S1 S2 B C 1 8 aape lt lt W 33 Q ON ORN Die Dom nen von r sind in der Ergebnisrelation das Urbild die Dom nen von s das Bild Das cartesische Produkt ist eine Verkettung zweier Relationen Jedes Tupel der einen Relation wird mit jedem Tupel der anderen Relation verkn pft Zu einem Tupel der Dom ne Urbild kann es mehrere Tupel der Dom ne Bild geben Die Menge dieser Tupel Bildmenge ist die Bildrelation eines Tupels v
231. ie keine weiteren Sperren mehr anfordern bzw erhalten d h In einer Transaktion sind alle Sperren vor allen Freigaben angeordnet Der Anwendungsprogrammierer soll sich aber nicht um derartige Ma nahmen zur Vermeidung von Anomalien k mmern m ssen Dieses Ziel kann erreicht werden indem jede Transaktion automatisch so gesteuerrt wird da er scheinbar alleine auf der Datenbank arbeitet Die sog Concurreny Control Komponente der Transaktionsverwaltung mu die quivalenz der parallelen Ausf hrung einer Menge von Transaktionen zu einer seriellen d h nicht berlappenden Reihenfolge gew hrleisten Eine parallele Ausf hrung mehrerer Transaktionen mit dieser Eigenschaft hei t serialisierbar 1 5 2 2 Das Zwei Phasen Commit Protokoll Dieses Protokoll wird verwendet um lokale Transaktionen an verschiedenen Programmen oder Maschinen die Subtransaktionen zu synchronisieren so dass entweder alle erfolgreich durchgef hrt werden oder keines Dabei nehmen die Subtransaktionen vor ihrem eigentlichen Commit einen Zwischenzustand den Ready to Commit Zustand ein In diesem Zustand garantieren die Subtransaktionen dass das Commit falls vom Koordinator gew nscht garantiert ausgef hrt wird selbst wenn zwischendurch ein Systemabsturz stattfindet und dass aber auch noch ein Abbruch der Gesamttransaktion akzeptiert wird und dann die Subtransaktion zur ckgesetzt wird sog rollback66 Ablauf des 2PC Protokolls Alle beteiligen Transaktionen w
232. ies Es handelt sich dabei um die Pakete dbms_transaction Alle Prozeduren und Funktionen des dbms_transaction Pakets sind gleichzusetzen mit in SQL PLUS angegebenen Anweisungen die mit SET TRANSACTION beginnen dbms_session Die meisten hierin zusammengefa ten Routinen sind mit der ALTER SESSION Anweisung identisch dbms_ddl zur bersetzung gespeicherter Prozeduren Funktionen Pakete bzw Einflu nahmen auf Optimierungsstragien bzw zum Unerpr fen von Namen und deren Typinformationen dbms_lock zur prozeduralen Steuerung von Sperren dbms_output zur Ausgabe von Meldungen dbms_snap zur Kontrolle und Steuerung von Logs bei der automatischen Verteilung von Daten ber Datenbank und Rechnergrenzen hinweg g Dynamisches SQL in PL SQL Programmen Das Dynamic Package DBMSSQL enth lt alle notwendigen Funktionen und Prozeduren zur Verwendung des dynamischen SQL in PLU SQL Programmen 43 unspezifiziert 44 DECODE darf nur in SQL Anweisungen verwendet werden 253 Datenbanken 2 Constraints Constraints werden in der Datendefinition angelegt Es gibt feld und tabellenbezogene Constraints Feldbezogene Constraints werden direkt mit der Feldposition angelegt tabellenbezogene Constraints stehen am Ende der Tabellendefinition Constraints k nnen auch einen Namen erhalten Unbenannte Constraints erhalten von Oracle automatisch einen Namen Unter diesem Namen findet man die Constraint dann auch im Data Dictionary Constrain
233. ifen weil eine bestimmte Bedingung eingetreten ist Die Bedingung ist hinter dem Schl sselwort WHEN anzugeben Deren Wert wird bei jedem Schl sseldurchlauf ermittelt Es erfolgt ein Abbruch der Schleife falls die Bedingung eingetreten ist EXIT WHEN Bedingung END LOOP Bedingte Schleifen FOR Schleife Im Schleifenkopf befindet sich eine numerische Variable und ein Wertebereich Beim 1 Durchlauf erh lt die Variable die untere Grenze des Wertebereichs zugewiesen Bei jedem Schleifendurchgang wird die Variable um 1 erh ht bis der Variablenwert die obere Grenze berschreitet Damit ist die Schleifenausf hrung beendet und mit der Ausf hrung der 1 Anweisung hinter der Schleife wird fortgefahren Mit dem Schl sselwort REVERSE kann der angegebene Wertebereich in umgekehrter Reihenfolge durchlaufen werden FOR schleifenvariable IN RESERVE Juntergrenze obergrenze LOOP Anweisungen END LOOP 246 Datenbanken Bsp Verwendung einer for Ioop Anweisung declare anzSchleifendurchgaenge constant positive 100 T positive 1 j positive 1 begin for i in 1 anzSchleifendurchgaenge loop J JI tb abms_output put_line j to_char j end loop end WHILE LOOP Schleife Im Schleifenkopf wird eine Bedingung angegeben Der Wert dieser Bedingung wird vor jedem Schleifendurchlauf gepr ft Ist er TRUE dann wird die Schleife durchlaufen Im anderen Fall erfolgt ein Abbruch der Sch
234. ikationen sind ber verschiedene Adressr ume physikalische Maschinen Netzwerke und OS verteilt Wie verl uft die Kommunikation Alle NOS bieten ein peer to peer Interface welches eine Kommunikation der Applikationen untereinander erm glicht und sehr nah an der physikalischen Verbindung angesiedelt ist Die meisten NOS bieten auch eine Form des Remote Procedure Call RPC der die physikalische Verbindung versteckt und den Server nur einen Funktionsaufruf entfernt erscheinen l sst Eine Alternative zu RPC bietet Message Oriented Middleware MOM die Messages zur Abarbeitung in eine Warteschlange stellt 1 Peer to peer Kommunikation Das Protokoll ist symmetrisch jede Seite kann die Kommunikation iniziieren Es maskiert nicht vollkommen die unterliegende physikalische Schicht Das hei t dass der Programmierer z B bertragungstimeouts und Netzwerkfehler selbst abfangen muss F r eine einfache peer to peer Kommunikation wurde zuerst in Unix Systemen und sp ter auch in allen anderen OS Sockets eingef hrt Sockets stellen logische Steckdosen f r die Herstellung von _ bidirektionalen Kommunikationsverbindungen bereit Der Socket Kopf bildet die Schnittstelle zwischen dem Aufruf an das Betriebssystem zum Auf und Abbau sowie Durchf hrung der Kommunikation und den weiter unten liegenden Systemschichten dem Protokollteil und dem Ger tetreiber Die drei am meisten verwendeten Socket Typen sind Stream Data
235. ile liefern Gra 1 2 3 s TNR fiy 2y a v r TNR TNR s a b Finde die Lieferanten Nr der Lieferanten die mindestens die Teile mit der Teile Nr 1 und 2 liefern s B 1 2 Selb 1 2 v r TNR B s a b Hinweis Die Division in der relationalen Algebra entspricht dem Allquantor im relationalen Kalk l 5 Nichtalgebraische Operationen Hierzu geh ren vor allen die sogenannten Aggregatsfunktionen zum Z hlen Aufsummieren und zur Berechnung des Durchschnitts aus einer Wertemenge 2 2 1 3 Die Operationen der relationalen Algebra in Standard SQL SQL 89 Nur einige der grundlegenden Operationen der Relationenalgebra k nnen ber select Anweisungen implementiert werden Eine Anweisung der Form SELECT X FROM R R tabellen_name X Teilmenge der Attribute von R beschreibt eine Projektion von R auf x doppelt vorkommende Elemente werden nicht beseitigt SELECT DISTINCT X FROM R beschreibt eine Projektion im Sinne der Relationenalgebra d h Mehrfach vorkommende Elemente werden nur einmal aufgef hrt 179 Datenbanken Eine Anweisung der Form SELECT FROM R WHERE B beschreibt eine Selektion gem der Bedingung B Eine Kombination von Projektion und Selektion erh lt man dann ber SELECT X FROM R WHERE B Eine Anweisung der Form SELECT FROM R S beschreibt einen Verbund von R und S bei dem keine Verbund Bedingung angegeben ist S
236. include Files programm c cc gcc oder g Ll Object Program Oracle Run Time C Standard Bibliothek Bibliothek h Ausf hrbares Programm Abb bersetzung eines Pro C Programms 268 Datenbanken Ein Pro C Programm besteht aus 2 Teilen dem Prolog zur Anwendung Application Prologue dem eigentlichen Anwendungprogramm Application Body a Application Prologue Dieser Vorspann besteht aus 3 Teilen 1 Der DECLARE Section zur Vereinbarung von Variablen Host Variables k nnen folgende Datentypen annehmen char name einzelnes Zeichen char name n Array mit n Zeichen float floating point VARCHAR name n Zeichenkette in variabler L nge VARCHAR wird vom Pro C Precompiler in eine structure mit einem n Bytes gro en Zeichenfeld und einem zwei Bytes gro en L ngenfeld konvertiert Host Variables werden in SQL und PL SQL ber ein vorangestelltes Zeichen referenziert Nur eindimensionale Felder mit einfachen C Typen werden unterst tzt Zweidimensionale Felder sind nur erlaubt f r char m n bzw VARCHAR m n m bestimmt die Anzahl der Zeichenketten und n die maximale L nge der Zeichenketten Zeiger auf einfache C Typen werden unterst tzt Zeiger auf char n bzw VARCHAR n sollten als Zeiger auf char bzw VARCHAR vereinbart sein Zeiger auf Felder array of pointers sind nicht zugelassen Aus Kompatibilit tsg
237. iner globalen Relation genau einmal auf einen Knoten des verteilten Systems als Tabelle abgebildet Der Zugriff auf die im Fragment gespeicherten Daten hat auf genau diesen Knoten zu erfolgen und ist damit abh ngig von der Verf gbarkeit des betreffenden Knotens und der Verf gbarkeit des Netzwerks zur Erreichung des Knotens Bei der Replikation werden Fragmente redundant gespeichert Der Verbrauch an Speicherplatz steigt auf die Daten kann aus mehreren Lokalit ten n her und performanter zugegriffen werden Katalogorganisation Bei einem nicht voll redundanten VDBS mu zur Beantwortung der Anfrage query processing bestimmt werden an welchem Knoten die angesprochenen Daten gespeichert sind Informationen ber Heimatadressen befinden sich im Systemkatalog data dictionary data directory F r die Abspeicherung und Verwaltung der Katalogdaten sind hnliche Probleme zu l sen wie bei den Benutzerdaten Wichtige Formen der Katalogorganisation sind zentralisierter Katalog Ein Rechner h lt den vollst ndigen Katalog Das Gesamtsystem ist allerdings von Leisung und Ausfallsicherheit eines Rechners abh ngig Voll redundanter Katalog Jeder Rechner im verteilten System h lt den Gesamtkatalog Lokaler Katalog Jeder Rechner h lt einen Katalog ber die lokale Dateien F r verteilte Transaktionen entstehen bertragungskosten da die Adresse von Fremddateien nicht bekannt sind 150 Datenbanken Schemaverteilung Eine Datenban
238. ingebettete SQL Anweisung ist der Vorspann Prefix EXEC SQL zur Unterscheidung von Anweisungen der gastgebenden Sprache vorangestellt Ein Semikolon bildet den Abschlu Die bersetzung der SQL Anweisungen bernimmt ein Precompiler die danach mit dem restlichen Quellcode bersetzt gebunden und zum Ablauf gebracht werden kann Eingebettete SQL Anweisungen k nnen in zwei Gruppen aufgeteilt werden ausf hrbar und deklarativ Ausf hrbare SQL Anweisungen Sie generieren aktuelle Aufrufe an die Datenbank Zugelassen sind zur Datendefinition ALTER CREATE DROP RENAME zur Kontrolle des Datenzugriffs CONNECT GRANT LOCK TABLE REVOKE zur Datenmanipulation DELETE INSERT UPDATE zur Datenwiedergewinnung CLOSE FETCH OPEN SELECT zur Verarbeitung von Transaktionen COMMIT ROLLBACK zur Anwendung von dynamic SQL DESCRIBE EXECUTE PREPARE Ausf hrbare Anweisungen k nnen an allen Stellen im Programm angegeben werden die auch f r die Anweisungen der gastgebenden Sprache vorgesehen sind Beziehen sich SQL Anweisungen auf Variable der gastgebenden Sprache host variables dann ist derartigen Referenzen zur Unterscheidung von SQL Feldnamen ein Doppelpunkt vorangestellt host variables werden in der DECLARE SECTION vereinbart Deklarative SQL Anweisungen Sie generieren keinen ausf hrbaren Code DECLARE SECTION 264 Datenbanken Die Deklaration von host variables f r den Compiler der gas
239. ings m ssen dazu die Daten mediengerecht aufbereitet d h in HTML der Seitenbeschreibungssprache des Web verpackt werden Das geschieht mit Hilfe von Programmen die Daten aus der Datenbank auslesen und aus den so gewonnenen Informationen HTML Dokumente erzeugen Die zugeh rigen Programme laufen auf dem Web Server von dem auch die statischen Dokumente geladen werden Fachobjekte Fachobjekte Typischerweise werden Applikationen in 3 Aufgabenbereiche unterteilt Datenhaltung Anwendung slogik und Pr sentation Diese 3 Aufgabenbereiche m ssen nicht auf einem Rechner oder von einem Proze wahrgenommen werden sondern k nnen auf mehrere Rechner bzw Prozesse verteilt sein Fachobjekte Abb 1 5 14 Aufbau und Kommunikation der Objekte im Internet 87 Vgl Client Server Architekturen 140 Datenbanken Pr sentation Pr sentation Pr sentation Pr sentation Pr sentation Steuerung Steuerung Steuerung Steuerung Anwendung Anwendung Anwendung _7 Steuerung Anwendung Anwendung Anwendung Datenverw Datenverw Datenverw Datenverw Datenverw Verteilte entfernte kooperative entfernte verteilte Pr sentation Pr sentation Verarbeitung Verarbeitung Datenverw Abb 1 5 15 Verteilungsm glichkeiten im Client Server Modell Bei der entfernten Repr sentation z B Common Gateway Interface CGT findet die Verarbeitung Server seitig statt auf dem Client werden nur Repr sentationsaufgaben ausgef hrt
240. ionale Datenbank kann damit umfassend logisch Pr dikatenlogik interpretiert werden Die Interpretation f hrt zur Wissensbasis t1 A t2 B t4 to Tupelvariable A B Attribute t4 A ist ber A to B ist ber B definiert t A k t A Tupelvariable t ber A definiert lt lt gt gt lt gt k dom A Konstante aus dem Wertebereich des Attributs A Formeln des Relationenkalk ls sind folgenderma en definiert Ein Atom ist eine Formel Sind p und q Formeln dann sind auch 7 p p q p q Formeln Ist p eine Formel und t eine freie d h noch nicht durch einen Quantor gebundene Tupelvariable so sind auch t p t und t p t Formeln Wesentliche Unterschiede zur Pr dikatenlogik 1 Ordnung sind keine Funktionssymbole Funktoren nur Tupelvariable eingeschr nkte Auswahl an Pr dikaten 204 Datenbanken 2 2 3 Datenbankmanipulationssprachen mit Bezugspunkten zur Relationen algebra bzw zum Relationenkalk l Der Auswahlproze Wiederauffinden Modifizieren Einf gen und L schen der Daten einer DB kann ber eine Datenbankmanipulationssprache DML mit unterschiedlichen Sprachelementen vollzogen werden 1 Ausw hlen mit Sprachelementen die sich vorwiegend auf Elemente der Kontrollogik abst tzen Die Spezifizierung gew nschter Daten erfolgt durch Angabe der Operationenfolge wie die Daten bereitzustellen sind Wie Sprachen prozedurale DML 2 Ausw hlen mit S
241. ionship Diagramm f r eine Teile Verwaltung Dreierbeziehungen Die Beziehungsmenge Student Vorlesung Professor n p m ist eine Dreierbezie hung Dreifachbeziehung Auch 1 n m 1 1 n und 1 1 1 Beziehungen sind m glich Bsp Studenten an Fachhochschulen haben zwei praktische Studiensemester zu absolvieren Es wird gefordert da im Rahmen des Praktikums eine Mitwirkung des Studenten an Projektarbeiten stattfindet Zweckm igerweise gilt dann kein Betreuer f hrt einen beliebigen Studenten in mehr als einem Projekt kein Student arbeitet an einem beliebigen Projekt das von mehr als einem Betreuer betreut wird 43 Datenbanken Das ER Modell dr ckt das so aus Betreuer 4 n 1 Abb 1 3 9 Eine 1 1 n Dreierbeziehung Konstruktionsoperatoren Durch Generalisierung werden hnliche oder miteinander verwandte Objekttypen zu bergeordneten Objekttypen zusammengefa t In einem ER Diagramm kann die Generalisierung durch eine ist_ein Beziehung veranschaulicht werden Mitarbeiter Abb 1 3 10 ER Diagramm zur Beschreibung der Mitarbeiter an einer FH Spezialisierung zerlegt Objekttypen in speziell definierte nachgeordnete Entit tstypen Spezialisierung ist die Umkehrung der Generalisierung So ist die vorstehende Abbildung auch eine Spezialisierung da dier Entit tstyp Mitarbeiter in die Entit tstypen Beamter und Angestellter spezialisiert wird Mit der ist_ein Beziehung werde
242. ionstypen stellt SQL3 3 vordefinierte Typschablonen bereit LIST SET Multimengen Bags Alle 3 Typen enthalten Elemente des gleichen Typs Die Elemente einer Liste sind geordnet Es kann ein 1 2 3 Element usw geben Duplikate sind zugelassen Mengen und Multimengen kennen keine Anordnung der Elemente Duplikate sind nur bei Multimengen zugelassen Mit den vordefinierten Typschablonen k nnen bspw folgende Tabellen vereinbart werden CREATE TABLE Abteilung Abt_ID CHAR 2 Mitarbeiter SET REF Angestellte 302
243. isch ein UNIQUE INDEX angelegt Deshalb k nnen in der UNIQUE Constraint auch die Bedingungen f r die Generierung des Index wie im CREATE INDEX Befehl enthalten sein Entit tsintegrit t Mit der PRIMARY KEY Constraint kann der Prim rschl ssel einer Tabelle definiert werden Dar ber werden f r die Spalten der Prim rschl ssel implizit die Constraints NOT NULL und UNIQUE festgelegt 254 Datenbanken Referentielle Integrit t Sie werden ber die FOREIGN KEY REFERENCES Constraint gesichert Wird eine FOREIGN KEY Constraint angelegt kann ein Parent Key nur dann gel scht oder ge ndert werden falls keine zugeh rigen Dates tze in der Child Tabelle vorhanden sind Es d rfen nur Werte in Fremdschl sselattributen vorkommen f r die es einen korrespondierenden Wert in der Parent Tabelle gibt CONSTRAINT name FOREIGN KEY spalte n REFERENCES tabelle spalte n ON DELETE CASCADE Wird in der FOREIGN KEY Constraint die Klausel CASCADE ON DELETE angegeben so werden beim L schen eines Parent Satzes alle korrespondierenden Zeilen der Child Tabelle gel scht Das Kaskadieren kann ber mehrere Tabellen gehen Ein kaskadierender Update wird ber die Constraint Definitionen nicht unterst tzt Gleiches gilt f r F lle in denen bei nderung oder L schung eines Parent Datensatzes die Fremdschl sselattribute der korrespondierenden Cild Datens tze auf NULL oder einen Default Wert gesetzt werden sollen Bsp Zu
244. isse an das aufrufende CGl Programm zur ck oder schreibt sie in eine Datei die dasCGl Programm dann auslesen kann Das CGl Programm erzeugt nun HTML Code wobei es die Suchergebnisse als Daten in den HTML Code einbaut Den HTML Code sendet das CGl Programm an den WWW Browser der die Suchabfrage gestartet hat Am Bildschirm des Anwenders verschwindet die WWW Seite mit dem Suchformular Stattdessen erscheint eine neue Seite mit den Suchergebnissen dynamisch generiert von dem CGl Programm Abb CGl Situation f r Suchdienste im WWW PHP ist eine Skriptsprache die direkt in HTML Seiten eingebettet wird d h der Autor schreibt PHP Befehle zusammen mit HTML Befehlen in eine Datei Wird diese Datei von einem Betrachter angefordert so werden diese PHP Befehle von einer Zusatzsoftware des Webservers 89 Schritt f r Schritt ausgef hrt und die Ergebnisse an den Betrachter weitergeleitet PHP wird seit etwa 1994 entwickelt und erfreut sich stetig wachsender Beliebtheit Ein besonderer Schwerpunkt liegt auf der Einbindung verschiedener Datenbanken Die Sprache ist an C Java und Perl angelehnt Prinzipiell kann PHP alles was jedes andere CGl Programm kann also bspw Formulardaten sammeln dynamischen Inhalt von Websites generieren Cookies senden oder empfangen Die gr te und bemekenswerteste St rke von PHP ist seine Unterst tzung f r zahlreiche Datenbanken Bei der verteilten Datenverwaltung werden die Aufgaben zwischen Client und Server a
245. ist Ziel eines sich auf Abh ngigkeiten abst tzenden Datenbankentwurfs einer relationalen Datenbank ist Umformen aller funktionalen Abh ngigkeiten in Schl sse abh ngigkeiten Die Menge der Abh ngigkeiten ist quivalent zur Menge der Schl sselbedingungen im resultierenden Datenbankschema Abh ngigkeitstreue Bsp Gegeben sind in der folgenden Tabelle die Studiendaten von Studenten an einer Hochschule Schl ssel sind MATNR und SRNR STUDIENDATEN 4 IMATNR NAME ADRESSE SANR _ 2 Abb 1 3 3 Tabelle mit Studiendaten 5 Br ckenweg 23 z 7 Die vorliegende Tabelle zeigt redundante Daten Informatik Physik Psychologie Die Abh ngigkeiten dieser Daten Bezeichnung der Studienrichtung vom Attribut Studienrichtungsnummer ist offensichtlich zweckm igerweise ist diese Ab h ngigkeit in einer eigenen Tabelle zu verwalten Die Attribute NAME ADRESSE sind vom Teilschl ssel MATNR abh ngig die Attribute STUDR ANFANGSDATUM vom Teilschl ssel Studienrichtungsnummer abh ngig Es ist besser solche Abh ngigkeiten in getrennten Tabellen zu verwalten 14 Abk rzungen MATNR Matrikelnummer SRNR Studienrichtungsnummer STUDR Studienrichtung ANFANGSDAT Anfangsdatum 36 Datenbanken So f hrt die Normalisierung der vorstehende Tabelle auf folgende Tabellen STUDENT MATNR NAME ADRESSE Berggasse 19 Lange Gasse 19 STUDIUM STUDIENRICHTUNG SRNR STUDR Physik Abb 1 3 5 Normalform de
246. istenten Datenbestand in einen wieder konsistenten Bestand berf hren Konsistenz bedeutet Der Datenbestand ist logisch widerspruchsfrei Eine Transaktion umfa t demnach eine oder mehrere DB Operationen f r die die DB Software sog Transaktionseigenschaften gew hrleistet Dazu z hlt bspw die Alles oder nichts Eigenschaft nderungen einer Transaktion werden vollst ndig oder berhaupt nicht in die Datenbank bernommen Erfolgreiche Transaktionen sind dauerhaft Sie gehen trotz m glicher Fehlersituationen Rechner Plattenausfall Fehler im Kommunikationsnetzwerk nicht mehr verloren Daf r sorgen spezielle Log Dateien die alle nderungen protokollieren Das DBMS sorgt bei Ausf llen f r geeignete Recovery Ma nahmen Endbenutzer TP System Anwendungs DBMS Datenstation programm ee TA Auf Trag empfangen TA Auftrag DB Transaktion B sende TA Ergebnis MB EG E Abb 1 5 2 Bearbeitung eines Transaktionsauftrages TA Ergebnis 113 Datenbanken Transaktionsparallelit t Im Mehrbenutzerbetrieb befinden sich in der Regel gleichzeitig mehrere Transaktionen in Bearbeitung Von einer h ufig sogar gro en Anzahl von Endger ten kommen Anforderungen requests z B Auskunftsersuchen Buchungsauftr ge Einzahlungen Bestellungen Rechnungen Jedem Auftrag ist ein Anwendungsprogramm zugeordnet Es nimmt Anforderungen vom Endger t entgegen f hrt die notwendigen Verarbeitungsschritte einschl der Date
247. it t ist ein individuelles oder identifizierbares Exemplar von Dingen Personen oder Begriffen der realen Welt Eine Entit t kann demnach sein ein Individuum z B ein Student ein Dozent ein Mitarbeiter ein Einwohner ein reales Objekt z B eine Maschine ein Geb ude ein Produkt ein abstraktes Konzept z B eine F higkeit eine Vorlesung eine Beziehung Wird ein Individuum ein reales Objekt ein abstraktes Konzept ein Ereignis oder eine Beziehung als Entit t deklariert so wird damit ausgedr ckt Sachverhalte die den als Entit t deklarierten Begriff betreffen sollen speicherbar sein sobald ein eindeutig identifizierendes Merkmal bekannt ist Entit ten k nnen in verschiedenen Entit tstypen klassifiziert werden z B Studenten Vorlesungen Angestellte Eine Entit t wird durch ihre Attribute beschrieben Einer Entit t werden also Merkmale Eigenschaften zugeordnet die zu seiner Beschreibung wichtig sind Bsp Die Produktionsdaten eines Unternehmens Zur Beschreibung des Entit tstyp Angestellte ist notwendig NAME BERUFSBEZEICHNUNG Zur Beschreibung des Entit tstyp TEILE kann herangezogen werden BEZEICHNUNG FARBE KOSTEN GEWICHT BEZEICHNUNG FARBE GEWICHT sind Eigenschaftsnamen Attribut Namen Jedes Attribut kann Werte aus einem bestimmten Wertebereich Dom ne annehmen Eine Dom ne stellt die Menge aller m glichen Werte f r eine spezifische Eigenschaft bereit z B
248. it der Anfrage unifiziert verschmilzt Anfrage und Klauselkopf unifizieren wenn die der Unifikation zugrundeliegenden Pr fungen ergeben Es ist m glich Variablen so zu ersetzen da die beiden Ausdr cke gleich werden Die 1 Regel im vorliegenden Beispiel verweist im Regelrumpf auf weitere Teilziele die erf llt sein m ssen Es gilt zun chst das Teilziel kind_von juergen liesel zu beweisen Prolog durchsucht zu diesem Zweck wieder die Wissenbasis vom Anfang bis zum Ende und st t dabei auf den 2 Fakt Ein Fakt ist immer wahr das Teilziel ist erf llt Es folgt die Realisierung des weiteren Teilziels frau liesel Prolog durchsucht die Wissensbasis vom Anfang bis zum Ende und findet eine Best tigung des Teilziels im 5 Fakt Die Anfrage wurde damit vollst ndig bewahrheitet Der Prolog Interpreter best tigt dies durch die Antwort YES Den geschilderten Ablauf kann mit Hilfe einer graphischen Darstellung Beweisbaum zusammenfassen Zur Verdeutlichung des pr dikatenlogischen Resolutionsbeweises werden die Regeln in eine quivalente Darstellung mit disjunktiv verkn pften atomaren Formeln berf hrt Es ergibt sich 190 Datenbanken mutter_von X Y kind_von Y X frau X mutter _von liesel juergen folgt unmittelbar aus a b a b Anfragen werden im Rahmen des Resolu tionsbeweises negiert x liesel Y juergen Die Substitution erledigt die Unifikation kind _von juergen liesel frau lie
249. it eindeutig und w hrend der Objektlebensdauer konstant 2 Komplexe Objekte gt 5 Ausgangspunkt sind elementare Werte z B Zeichenketten oder Zahlen aus denen mit Hilfe sog Konstruktoren komplexe Werte gebidet werden Einfache Konstruktoren sind Tupelkonstruktor Aggregation Daten setzen sich h ufig aus anderen Daten zusammen auch die repr sentativen physischen oder logischen Gegenst nde der relen Welt sind h ufig aus anderen Gegenst nden zusammengesetzt z B das Aggregat Adresse 31 Atkison et al Object Oriented Database System Manifest 32 Atkison M The object oriented database manifesto Proceedings First national Conference on Deductive and Object Oriented Databases Kyoto 1989 33 Die 3 Begriffe werden synonym verwendet 34 Er beruht nicht auf den aktuellen Werten des Objekts wie etwa der Prim rschl ssel bei relationalen datenbanken 35 Synonym verwendete Begriffe Strukturierte Objekte Zusammengesetzte Objekte 68 Datenbanken Abb Aggregat Adresse in erweiterter ERM Darstellungf H ufig wird der Tupelkonstruktor mit TUPLE OF notiert Mengenkonstruktor Gruppierung Dadurch wird ein neuer Typ erzeugt der aus mehreren Instanzen des in die Gruppierung eingehenden Typs eine Instanz des neuen Typs formt H ufig wird der Mengenkonstruktor mit SET OF notiert Fremdsprachen Fremdsprache Abb Gruppierungen in erweiterter ERM Diagrammdarstellung Listenkonstruktor
250. iter JOIN Befehl bekannt Der JOIN wurde implizit durch die Angabe mehrerer Tabellen und einer Verkn pfungsopration in der WHERE Klausel hergestellt SQL 92 bietet den JOIN Befehl in mehreren Varianten an Cross Inner Outer Left Right Full Outer JOIN und Union Join Cross JOIN bildet das kartesische Produkt zweier Tabellen d h Jeder Datensatz der einen Tabelle wird mit jedem Datensatz der anderen Tabelle verkn pft z B SELECT FROM ANGESTELLTE CROSS JOIN ABTEILUNG Die zum Cross JOIN quivalente Anweisung ist SELECT FROM ANGESTELLTE ABTEILUNG Natural JOIN verkn pft die beiden angegebenen Tabellen ber die Gleichheit aller gleichlautenden Spaltennamen In der Ergebnismenge werden gleichlautende Spaltennamen nur einmal angezeigt Haben die beiden Tabellen keine Spalten gemeinsam so degeneriert der Natural Join zum Cross Join Inner JOIN verkn pft 2 Tabellen durch eine Bedingung Das Schl sselwort Inner mu nicht angegeben werden Der Inner JOIN existiert in 2 Varianten In der 1 Variante wird die Verkn pfungsbedingung in einer ON Klausel angegeben SELECT FROM Angestellte Abteilung Angestellte INNER JOIN Abteilung ON Angestellte Abt_ID Abteilung Abt_ID In der 2 Variante kann man durch die USING Klausel beliebig viele f r beide Tabellen gleichlautende Feldnamen angeben Der JOIN wird dann ber gleiche Werte dieser Felder gebildet SE
251. k wird bekanntlich durch das Datenbankschema beschrieben Dort erfolgt die Definition der logischen Datenstrukturen z B Relationen mit zugeh rigen Attributen und Beziehungen zwischen den Relationen der physikalischen Strukturen z B Speicherstrukturen Zugriffspfade Ein VDBS ben tigt zus tzlich die Definition der Verteilungsregeln die einmal die Einheiten der Datenverteilung festlegen und zum anderen die Zuordnung der Dateneinheiten zu den Rechnern an unterschiedlichen Orten Verteilungsstrategien zur Schemaverteilung k nnen unter dem Aspekt Zentralisierung bzw Verteilung betrachtet werden Es bestehen folgende M glichkeiten das Schema in die Verteilung mit einzubeziehen 1 Nicht redundante Strategien Zentralisierung Die vollst ndige Schemabeschreibung befindet sich in einem Knoten Jeder Verkehr mit der Datenbank impliziert einen Zugriff auf diesen ausgezeichneten Knoten Verteilung An jedem Ort des Rechnerverbunds sind neben den lokalen Daten deren Verteilung soll ebenfalls nicht redundant gespeichert sein auch die zugeh rigen Teile des Schema gespeichert Ausschlie lich lokale Verarbeitung ben tigt keinen Netzzugriff mehr Bei jeder nicht lokalen Anfrage Query mu in allen Knoten gepr ft werden ob sie die gew nschten Daten bereitstellen k nnen 2 Redundante Strategien Zentralisierung Jeder Knoten enth lt die Schemainformation f r seine Daten zus tzlich steht aber das gesamte Schema in einer Zentral
252. leichsoperator IS NULL Generell werden alle Variable beim Eintritt in eine Prozedur eine Funktion oder einen anonymen Block mit NULL initialisiert Variable k nnen spezifisch im Deklarationsteil von PL SQL auf zwei Weisen initialisiert werden variablenname datentyp initialisierungswert oder variablenname datentyp DEFAULT initialisierungswert Zuweisungen zu Variablen k nnen auch direkt ber eine SELECT Anweisung erfolgen select spalte n into passende_Variablenliste from tabelle n where bedingung Verzweigungen IF THEN ELSE IF Bedingung THEN Anweisungen falls die Bedingung den Wert TRUE hat ELSE he Anweisungen falls Bedingung den Wert FALSE oder NULL hat END IF Der ELSE Zweig ist optional IF THEN ELSE Anweisungen k nnen beliebig geschachtelt werden IF THEN ELSIF IF Bedingung_1 THEN ELSIF Bedingung_2 THEN ELSIF Bedingung_3 THEN END IF 245 Datenbanken Schleifen Unbedingte Schleifen Zwei besondere Anweisungen beenden unbedingte Schleifen EXIT und EXIT WHEN EXIT beendet die Schleife sofort und bewirkt Fortsetzung des Programms mit der n chsten Anweisung nach der Schleife H ufig ist das EXIT Kommando in einer IF THEN ELSE Anweisung eingebettet z B LOOP 77 Anweisungen Er areen EHEN EXIT sofortige Beendigung der Schleife END IF ee weitere Anweisungen END LOOP EXIT WHEN beendet Schle
253. leife Die Ausf hrung wird mit der ersten Anweisung hinter der Schleife fortgesetzt WHILE Bedingung LOOP END LOOP d SQL Einbettung Nicht erlaubt sind Anweisungen der DDL Dagegen k nnen an beliebiger Stelle INSERT UPDATE DELETE und SELECT Anweisungen vorkommen Liefert die SQL Anweisung nur genau eine Datenzeile als Ergebnis dann d rfen in einem PL SQL Programm an beliebiger Stelle INSERT UPDATE DELETE und SELECT Anweisungen vorkommen Attribute ber die Informationen zur zuletzt ausgef hrten SQL Anweisung ermittelt werden k nnen sind SQL NOTFOUND ist TRUE falls die letzte SQL Anweisung keine Datenzeile ausgew hlt eingef gt ge ndert oder gel scht hat Ein SELECT das keine Datenzeile ausw hlt l st die Ausnahme NO_DATA_FOUND aus Hier kann deshalb keine Abfrage mit SQL NOTFOUND erfolgen SQL FOUND ist TRUE falls mindestens eine Datenzeile behandelt wurde Das Attribut evaluiert zu NULL bevor die erste SQL Anweisung ausgef hrt wurde SQL ROWCOUNT liefert die Anzahl der in der letzten SQL Anweisung verarbeiteten Datenzeilen Cursor Technik zur Ermittlung und Verwaltung mehrzeiliger Ergebnisse Ein Cursor verwaltet den Zugriff auf einen Satz von Datenzeilen der das Ergebnis einer SELECT Anweisung ist Cursor werden wie Variablen im Deklarationsteil eines Blocks definiert Hier bekommt der Cursor einen Namen und eine SELECT Anweisung 37 Das Ergebnis der SELECT Anweisung besteh
254. lette Befehlsausf hrung Auf jedem Fall wird der Inkonsistenzzeitpunkt gesetzt so da die M glichkeit besteht den internen Zeitstempel vom Lesekonsistenzzeitpunkt System Change Number mit dem von evtl nderungen an Datens tzen zu vergleichen Beim select Befehl sind evtl Sortierungen und Gruppierungen vorzunehmen die in einem tempor ren Bereich so zur Verf gung gestellt werden da in n chsten Phase die ersten Datens tze betragen werden k nnen Alle anderen Befehle werden nach dem Setzen des Lesekonsistenzzeitpunkts vollst ndig abgearbeitet Die FETCH Phase Sie wird nur f r den select Befehl ausgef hrt da alle anderen Befehle mit der EXECUTE Phase abgeschlossen sind Bei select Befehlen werden in der FETCH Phase die Ergebnisdatens tze an die Anwendung bertragen Dabei wird aus den Daten und Indexbl cken oder aus dem in der EXECUTE Phase vorbereitetem Tempor rbereich gelesen 237 Datenbanken 4 Optimierung von SQL Anweisungen F r den Zugriff auf die Daten gibt es verschiedene Wege Das System kann eine SELECT Anweisung bspw ber einen Full Table Scan sequentielles Lesen aller Datens tze einen Index Zugriff oder einen direkten Zugriff ber die Adresse eines einzelnen Satzes ROWID abarbeiten ber den jeweils besten Weg entscheidet der ORACLE Optimizer F r jedes SQL Kommandb legt er einen Ausf hrungsplan fest der eine regelbasierte bzw statistikbasierte Abarbeitung von SQL Anweisungen bestim
255. lheiten z B Dateiorganisation Pufferung Blockgruppenanordnung verdeckt Homogen und linear bedeutet Unterteilung in Adressierungseinheiten fester Gr e sog Seiten auf die direkt zugegriffen werden kann Der Seitenorganisation wird h ufig noch eine Segmentstruktur berlagert mit der sich die 60 yg 3 1 1 61 Man spricht auch von der Segmentschnittstelle 111 Datenbanken Zusammengeh rigkeit der Daten ausdr cken l t Aufgabe dieser Schicht ist die Umsetzung der Segmente und Seiten auf Dateien und physische Bl cke Einbringstrategie Eine Pufferverwaltung sorgt daf r da ben tige Seiten zur Verf gung stehen ohne da der Benutzer sich um Seitentransport oder Strategien zum Seitenaustausch k mmern mu das Dateisystem Es stellt h heren Schichten Operationen zum Lesen Einf gen ndern und L schen von Bereichen in Dateien Tabellen zur Verf gung Weitere Aufgaben sind Das Sperren von Bereichen die Manipulation von Dateien und Dateiverzeichnissen Zur Realisierung dieser Aufgaben bedient sich das Dateisystem der tieferen Schicht eines Betriessystems das System der physikalischen Ein Ausgabe Diese Komponente realisiert den Zugriff auf die Speicherperepherie Diese Schicht greift ber die Zugriffsmethode unmittelbar auf den Speicher zu und steuert die bertragung von bzw zum Systempuffer Im Rahmen der 5Schichten Architektur spricht man hier von der Ger teschnittstelle mit den diversen Treiberprogramm
256. li a Eee Ne DEE Unformatierte Datenbest nde Hier k nnen S tze nicht durch Ordnungskriterien oder feste Stellenzuordnung der Felder identifiziert werden Deshalb m ssen wichtige beschreibende Schlagworte sog Deskriptoren festgelegt personell oder maschinell werden Bei der Suche Information Retrieval IR m ssen die gespeicherten Deskriptoren mit den Suchbegriffen des Benutzers verglichen werden ber Wort hnlichkeits 4 ygl 1 2 2 1 Datenbanken pr fungen Begriffskombinationen Synonyme und logische Operationen sind die m glichen Fundstellen einzukreisen Zusammenfassung Den grunds tzlichen Unterschied zwischen formatierten und unformatierten Daten soll das folgende Bsp nochmals herausstellen Formatiert Daten Feldinhalte 4711 Maier Hans B cker verh 10 Unformatiert Der Mitarbeiter Hans Maier hat die Personalnummer 4711 er ist B cker arbeitet in der Abteilung 10 und ist verheiratet Es gibt Systeme f r formatierte und Systeme f r unformatierte Daten Sie sind unter folgenden Bezeichnungen bekannt Data Management Systems Information Retrieval Systems nformation Managament Systems Information Storage and Retrieval File Managent Systems Er l Dokumente sind in der Regel nicht strukturiert Sie bestehen aus einer Menge von Worten Eine umfassende Textverarbeitung ist daher langsam und au erdem teuer da Textdatenbanken von betr chtiichem Umfang sind So sind auch hier strukturie
257. like_bed m in bed exists _bed Datenbanken vergleich_bed IS NULL ausdruck lt gt lt lt gt gt ausdruck spalten_auswahl SOME between _bed gt ausdruck E T BETWEEN 2 ausdruck AND ausdruck gt NOT like_bed gt spalten _name 17 LIKE 77 string 7 gt NOT Bei string in like_bed haben _ und eine spezielle Bedeutung steht f r irgendein Symbol steht f r irgendeine Folge von 0 oder mehr Zeichen 93 Datenbanken is_bed spalten_auswahl NOT gt ausdruck IN konstante ausdruck exists_bed cum EXISTS gt spalten_auswahl NOT string zeichen 94 Datenbanken spalten_auswahl ALL gt SELECT ausdruck gt DISTINCT alias_bez tabellen_name view name spalten_name HAVING bedingung yv union_query select Kommando UNION ALL LY gt fiese Kommando AL L Abb 1 4 2 Syntaxdiagramme zum SQL Kommando 95 Datenbanken Die Basis der select Anweisung Jeder soL Befehl bzw jede SOL Anweisung beginnt mit einem Befehlswort das die auszuf hrende Operation bezeichnet z B select Zu vielen SQL Befehlen geh ren eine oder mehrere Klauseln mit denen der Befehl f r eine spezielle Anforderung angepa t wird Jeder SQL Befehl mu zwei Bedingungen erf llen 1 Bezeichnen der gew nschten Daten eine Menge von Zeilen in einer oder mehreren Tabellen 2 Bestimm
258. lisierungen von Client Server Architekturen ergeben Sie entsprechen weitgehend den bekannten Verteilungsformen 3 von Anwendungssystemen 1 Disk Server Anforderungen des Dateisystems werden an den Disk Server weitergeleitet und dort auf die Plattenperepherie des Servers umgesetzt Pr sentation Logik Datenbank Datei Kommunikatiossystem Client Server Abb 1 5 5 Disk Server Es gibt nur einen physikalischen Plattenspeicher der von allen Clients benutzt werden kann Eine spezielle Anwendung des Disk Servers ist der Remote Boot f r Arbeitsplatzrechner ohne Diskettenlaufwerk diskless client Das Betriebssystem wird dabei vom Disk Server geladen Bei einem Disk Server k nnen zwar zahlreiche Leser aber nur ein einziger Schreiber auf die gemeinsam genutzte Ressource zugreifen Das ist f r das Laden von Programmen oder das Lesen von gemeinsamen Daten ausreichend 2 File Server Der File Server empf ngt alle Dateianforderungen die von einzelnen Clients z B PCs und Workstations an ihn gesandt wurden Pr sentation Logik Datenbank Kommunikationssystem Client Server Abb 1 5 6 File Server 73 Hans Joachim Petzold Hans Jochen Schmitt Verteilte Anwendungen auf der Basis von Client Server Architekturen in HMD 170 1973 S 79 91 128 Datenbanken Operationen z B das Sperren von Bereichen werden zentral im File Server verwaltet Mehrere Anwendungen k nnen konkurrierend auf gemeinsame Datenbest nde
259. ll zur ck F r jeden Entit tstyp und jeden Beziehungstyp wird eine eigene Tabelle angelegt Jedes notwendige Attribut erh lt in einer solchen Tabelle eine Spalte zugeordnet Bei den Tabellen der Beziehungstypen mu darauf geachtet werden da auch die Prim rschl ssel der ber die Beziehungstypen verkn pften Entit tstypen vorliegen 18 vgl 1 3 6 19 vgl Chen P S und Kn ll Heinz Dieter Der Entity Relationship Ansatz zum logischen Systementwurf Mannheim Wien Z rich 1991 20 Sie wird zur besseren bersicht generell abgeflacht dargestellt 40 Datenbanken Abb 1 3 6 Relationale Datenbank zur Beziehung Lieferant Artikel Die Komplexit t eines Beziehungstyps gibt an in welchem Verh ltnis die Entit ten der beteiligten Entit ts Typen zueinander in Beziehung stehen Sie wird durch die Beschriftung der Kanten 1 m n ausgedr ckt Zwischen 2 Entit ts Typen k nnen Beziehungen des Typs 1 1 1 n eins zu viele und min viele zu viele vorkommen Einer Kante kann ein Rollenname zugeordnet sein der die Funktion des jeweiligen Entit ts Typen in Bezug auf den Beziehungstyp beschreibt 3 ist_ein Beziehung Sie wird durch eine Raute mit der Beschriftung ist_ein oder durch einen Pfeil dargestellt Die Kante zu einer Beziehung E ist_ein E gt ist ungerichtet die Kante zu E gt gerichtet Bsp Entity Relationship Diagramme zu einer Hochschulverwaltung Entit tsmengenr sind Hochschulmitarbeiter
260. lle kann man sich als eine Sammlung von Szenarios ber dem Systemeinsatz vorstellen Jedes Szenario beschreibt eine Sequenz von Schritten Jede dieser Sequenzen wird von einem Menschen einem anderen System einem Teil der Hardware oder durch Zeitablauf in Gang gesetzt 38 1996 begannen die Arbeiten an der UML Im Jahre 1997 wurde die Version 1 0 bei der Object Management Group OMG als Standardisierungsvorschlag eingereicht und eine Beschreibung der Version 1 0 wurde ver ffentlicht Im September 1991 wurde die Version 1 1 beider OMG eingereicht 39 Vgl G nther Wahl UML kompakt OBJEKTspektrum 2 1998 71 Datenbanken Entit ten die solche Sequenzen ansto en nennt man Akteure Das Ergebnis dieser Sequenz mu etwas sein was entweder dem Akteur der sie initiierte oder einem anderen Akteur nutzt Ein Use Case ist eine typische Handlung die ein Benutzer mit dem System ausf hrt z B Aktienkauf Im Diagramm werden Use Cases durch Ellipsen dargestellt Verbindungen zu den entsprechenden Use Cases werden durch Linien dargestellt Damit wird angezeigt welche Aktoren an dem entsprechenden Use Case beteiligt sind Bsp Geld anlegen lt lt extends gt gt Cre I Bankangestellter Devisenhandel In diesem Use Case Diagramm gibt es zwei weitere Verbindungstypen lt lt uses gt gt und lt lt extends gt gt lt lt uses gt gt wird verwendet wenn zwei oder mehrere Use Cases einen hnlichen Aufbau haben und Verhal
261. llenzugriffe in den Systemtabellen registriert werden sollen AUDIT bestimmt den Anfang und NOAUDIT das Ende der Protokollierung Sperren von Tabellen Parallelarbeit Concurrency und Konsistenz Consistency stellen widerspr chliche Anforderungen an das Datenbankverwaltungssystem Ein gemeinsamer Datenbastand soll f r die Verarbeitung an verschiedenen Orten und durch verschiedene Personen zur Verf gung stehen Durch die fast gleichzeitige nderung von Daten k nnen Konflikte entstehen die zu einer inkonsistenten d h unbrauchbaren Datenbasis f hren Die allgemeine Verf gbarkeit ber Daten mu zumindest zeitweise eingeschr nkt werden ORACLE unterst tzt das Sperren mit dem Befehl LOCK TABLE Tabellenname IN SHARE SHARE UPDATE EXCLUSIVE MODE INOWAIT Jede Form einer Sperre erlischt mit dem Beginn der n chsten Transaktion Jede Art von Beendigung von Transaktionen hebt gesetzte Sperren auf Tabellenname steht f r den Namen der zu sperrenden Tabelle SHARE MODE Dieser Modus verbietet anderen Anwendern Die Anforderung von LOCKs im SHARE UPDATE MODE und im EXCLUSIVE MODE Jegliche Ver nderung mit UPDATE INSERT DELETE und ALTER SHARE MODE erlaubt anderen Anwendern die Anwedndung von SELECT Befehlen auf gesperrte Tabellen LOCKs im SHARE MODE zu setzen Mit der Option NOWAIT werden SQL Anweisungen die nderungen ausf hren mit Meldung zur ckgewiesen Im Standardfall werden ver nd
262. llten aufsteigend geordnet nach Berufen job titel und innerhalb des Berufs absteigend nach Gehalt job gehalt Die Ausgabe soll in eine Tabelle mit folgenden Spalten berschriften erfolgen job titel job gehalt angestellte nam ELECT JOB TITEL JOB GEHALT ANGESTELLTE NAME ROM JOB ANGESTELLTE HERE JOB JOB_ID ANGESTELLTE JOB_ID RDER BY JOB TITEL JOB GEHALT DESC Oxun ber die SELECT Anweisung kann eine Tabelle mit sich selbst verkn pft werden Selbstverkn pfung SELF JOIN Mit Selbstverkn pfungen k nnen Daten aus verschiedenen Zeilen einer einzigen Tabelle zueinander in Beziehung gesetzt werden und diese Daten in einer Ergebnistabelle zu Zeilen zusammengefa t werden Der SELF JOIN kann ber die Definition unterschiedlicher Namen f r eine Tabelle realisiert werden SQL behandelt die unter verschiedenen Namen gef hrten Tabelle wie unterschiedliche eigenst ndige Tabellen Bsp Bestimme aus der Tabelle Angestellte jeweils f r einen Mitarbeiter die Angestellten mit denen er in der gleichen Abteilung arbeitet Die Ausgabe soll in eine Tabelle mit folgenden Spalten berschriften erfolgen A ANG_ID A NAME B ANG_ID B NAME A ABT_ID ELECT A ANG_ID A NAME B ANG_ID B NAME A ABT_ID ROM ANGESTELLTE A ANGESTELLTE B HERE A ABT_ID B ABT_ID AND NAME lt gt B NAM ER BY A NAME
263. llung der logischen Datenstrukturen gew hrleisten Bei vollst ndiger Daten neutralit t ist es m glich durch unterschiedliche Benutzersichten Netze Hierarchien Relationen das Basisschema zu betrachten Eine Sicht wird dabei mit Hilfe einer Datenmanipulationssprache aus der Basis erzeugt Auf der anderen Seite soll eine Reihe von Abbildungen verschiedene Interne Schemata zur Beschreibung der physischen Strukturen erzeugen Sie enthalten mit ihren Katalogen die Details zu Zugriffspfaden und zur physischen Speicherung Eine allgemeine Beschreibung der Schnittstellen enth lt der ANSIVSPARC Architekturvorschlag 25 Datenneutralit t Datenunabh ngigkeit m DE konzeptuelles Schema Transformation Transformation Externe Schemata Interne Schemata Externe Ebene Interne Ebene individuelle Sichten Programme physische Datenbanken Abb 1 3 35 Datenbankarchitektur nach ANSY SPARC 25 ANSV X3 SPARC Group on Data Base Management Systems Interim Report Bulletin of ACM SIGMOD No 2 1975 ANSI American National Standard Institute Sparc Standard Planning and Requirement Committee 63 Datenbanken Die ANSV SPARC Architektur sieht 3 Ebenen vor 1 Eine mittlere konzeptuelle Ebene die alle drei Anwendersichten zu einer Art gemeinschaftlichen Sicht vereinigt 2 Eine interne Ebene die es gestattet unter Kenntnis von Anwenderprofilen und verf gbarer Hard und Grundsoftware die leistungsf higsten Speicher und Zugriffsmethode
264. lnterface liesPIN betragAuswahl Geldautomat Bankinterface eingabePIN int code leseKundeninfo startTransaktion 1 Abb Klassendiagramm automatische Geldausgabe Die Klasse ist das zentrale Element sie wird als Rechteck dargestellt z B Geldautomat Die gefundenen Klassen sind durch Linien miteinander verbunden Diese Linien stellen die Elemente Assoziation Aggregation Komposition und Vererbung dar Eine Assoziation association ist eine Strukturbeziehung die eine Menge von Objektbeziehungen beschreibt Eine Aggregation ist eine Sonderform der Assoziation Sie repr sentiert eine strukturelle Ganzes Teil Beziehung Grafisch wird eine Assoziation als durchgezogene Line wiedergegeben die gerichtet sein kann manchmal eine Beschriftung besitzt und oft noch weitere Details wie z B Muliplizit t Kardinalit t oder Rollenanmen enth lt z B 74 Datenbanken A Arbeitet f r 0 1 Arbeitgeber Arbeitnehmer Eine Assoziation kann einen Namen zur Beschreibung der Natur der Beziehung Arbeitet f r besitzen Damit die Bedeutung unzweideutig ist kann man dem Namen eine Richtung zuweisen Ein Dreieck zeigt in die Richtung in der der Name gelesen werden soll Rollen Arbeitgeber Arbeitnehmer sind Namen f r Klassen in einer Relation Eine Rolle ist die Seite die die Klasse an einem Ende der Assoziation der Klasse am anderen Ende der Assoziation zukehrt Die Navigierbarkeit kann durch ein
265. lphanumerische Zeichen maximale L nge bis zu 2GBytes und dient zur Aufnahme eines l ngeren nicht weiter formatierten Textes Bei der Anwendung von LONG sind einige Bedingungen zu beachten Es darf nur eine Spalte je Tabelle als LONG spezifiziert sein LONG Spalten k nnen nicht in WHERE DISTINCT oder GROUP BY Klauseln benutzt werden Sie k nnen nicht in SELECT Befehlen mit UNION NTERSECT oder MINUS eingesetzt werden Auch ORDER BY CONNECT BY funktioniert hier nicht CHAR Funktionen k nnen nicht in diesen Spalten verwendet werden Eine LONG Spalte kann nicht indiziert werden Eine Tabelle mit einer LONG Spalte kann nicht in einem CLUSTER gespeichert werden RAW L nge bzw LONG RAW umfa t bin re Rohdaten maximale L nge 255 bzw 2 GBytes Mit diesem Datentyp k nnen auch Fremdformate z B digitalisierte Grafiken in ORACLE verarbeitet werden F r die Konvertierung von Daten aus RAW Feldern stellt ORACLE die Funktionen 30 Standard Datum Format 31 Wird einer Datums spalte eine Zeichenfolge zugewiesen die nicht dem Default Format entspricht gibt Oracle wahrscheinlich eine Fehlermelfdung zur ck 226 Datenbanken HEXTORAW und RAWTOHEX zur Verf gung Der Datentyp LONG RAW dient zur Speicherung von BLOBs BLOBs umfassen Dokumente Grafiken Kl nge Videos ROWID gibt die eindeutige Identifikationsnummer Adresse eines Datensatzes an mit der ORACLE jede Zeile Tupel in der Datenbank inter dieser Da
266. m Mehrbenutzerbetrieb arbeitende Transaktion kann genau ein Zustand zugeordnet werden in dem sie sich gerade befindet Start BOT recover sleeping reject Stop EOT aborted Abb 1 5 3 Zustandsdiagramm einer Transaktion Aktionen logische Verarbeitungseinheiten einer Transaktion sind durch BOT Begin of Transaction bzw EOT End of Transaction begrenzt Nach dem Start befindet sich eine Transaktion im Zustand running Hier wird ihr das Betriebsmittel Datenbank f r eine bestimmte Zeit zur Verf gung gestellt Ist der Auftrag danach abgewickelt dann geht sie in den Zustand committed ber falls die EOT Marke erreicht ist Ist der Auftrag nicht vollst ndig abgewickelt dann geht die Transaktion in den Zustand sleeping ber Die Bearbeitung wird zu einem sp teren Zeitpunkt fortgesetzt Kommt es w hrend der Bearbeitung der Transaktion zu Konsistenzverletzungen dann wird die Transaktion zur ckgewiesen und geht in den Zustand aborted ber In diesem Fall wird zu einem sp teren Zeitpunkt vollst ndig neu gestartet alle nderungen an der Datenbank werden r ckg ngig gemacht 65 Persistenz ist ein Synonym f r Dauerhaftigkeit 115 Datenbanken Fehler im Transaktionsbetrieb Fehlerursachen k nnen bspw sein a Programmfehler unerlaubt hoher Verbrauch von Ressourcen Verlust von Hauptspeicherinhalten Betriebssystemabsturz Zusammenbruch des Datenbanksystems f Plattenfehler im schlimmste
267. mfassendes Zeichenfeld variabler L nge n Bytes umfassendes Zeichenfeld VARCHARIn n Bytes umfassendes Zeichenfeld variabler L nge 47 X umfa t einen Bereich von 1 bis 255 1 ist Default Wert 48 P umfa t einen bereich von 2 bis 38 S von 84 bis 127 49 Zeichenketten k nnen nach NUMBER konvertiert werden falls sie konvertierbare Zahlen enthalten 0 bis 9 4 E e 50 Im Default Format DD MON YY erfordert ein Zeichenkettentyp 9 Zeichen Wird er als bin rere Typ konvertiert dann erfordert er 7 Zeichen 51 Falls die Konvertierung in eine zeichenkette erfolgt erfordert ROWID 18 Bytes Bei einer Konvertierung als Bin rwert ist die L nge systemabh ngig 270 Datenbanken b Application Body Hier befinden sich die SQL Anweisungen H ufig brauchen SQL Anweisungen zus tzliche Befehlsfolgen Deklaration und Bearbeitung eines SQL Cursor Nicht jede SELECT Anweisung liefert automatisch nur eine einzige Zeile als Ergebnis zur ck Ein Cursor stellt eine ganze Ergenismenge zur Bearbeitung bereit Folgende Befehle erm glichen die Bearbeitung eines Cursor SQL Befehl Beschreibung DECARE CURSOR Deklaration eines Cursor OPEN ffnet einen SQL Cursor und setzt diesen vor die erste Zeile der Resultat Tabelle FETCH Setzt den Cursor auf die n chste Zeile und gibt diesen Zeileninhalt aus CLOSE Schlie t den ge ffnetet SQL Cursor Abb SQL Cursor Befehle Ein Cursor wird ber DECLARE deklariert DECARE Cursorname
268. mmer der Zeile Nummer der data file Man kann mit einem normalen SELECT Befehl den Inhalt der ROWID Felder auflisten select rowid from angestellte ROWID 000000F3 0000 0002 000000F3 0001 0002 000000F3 0002 0002 000000F3 0003 0002 000000F3 0004 0002 000000F3 0005 0002 000000F3 0006 0002 000000F3 0007 0002 000000F3 0008 0002 000000F3 0009 0002 000000F3 000A 0002 000000F3 000B 0002 000000F3 000C 0002 13 rows selected 228 2 Projektion einer virtuellen Spalte select name hat from angestellte order by name NAME hat ANG Anton hat Al2 Emil hat A5 Erna hat A7 Fritz hat Al Gerd hat A4 Josef hat A13 Maria hat A14 Rita hat A8 Tom hat A2 Ute hat A9 Uwe hat A6 Werner hat A3 willi hat A10 13 rows selected Zur Bildung virtueller Spalten stehen die aritnm Operationen und der Verkettungsoperator zur Verf gung Falls mehrere Operationen in einem Argument Punktrechnung geht vor Strichrechnung einer Operation Der Dateityp des Ergebnisses richtet sich nach dem im stehen wird von hat my links nach nach Datenbanken ang_id rechts gerechnet Ausdruck enthaltenen genauesten Datentyp float vor decimal vor integer select name sysdate gebdatum to_char sysdate yy from angestellte select name sysdate gebdatum to_char sysdate yy from angestellte order by to_char sysdate yy to_char gebdatum yy to_char
269. mt 5 Vergleich Oracle SQL gegen Standard SQL Kein namhafter Datenbankhersteller kann auf den ANSHStandard von SQL verzichten Teilweise geht die Implementierung von Oracle SQL ber Full SQL hinaus So sind in SQL2 nur Gruppenfunktionen bestimmt der gesamte Bereich der arithmetischen Character und Konvertierungsfunktionen ist dem Datenbank Hersteller berlassen Ebenso offen ist die Einrichtung von Indexen und Clustern Noch nicht in die SQL2 Definition aufgenommen ist PL SQL Trigger Packages Functions und die verteilte Verarbeitung 238 Datenbanken 2 3 2 5 Datenbankprogrammierung ORACLE bietet folgende M glichkeiten zur Datenbankprogrammierung an die Sprache PL SQL Das ist eine Sprache mit Programmierm glichkeiten Schleifen bedingten Verzweigungen explizite Fehlerbehandlung Constraints Integrit tsregeln lassen sich zentral in Form von Constraints im Data Dictionary festlegen Die Definition erfolgt mit der Bestimmung der Datenstrukturen ber CREATE TABLE Datenbanktrigger Trigger sind einer Tabelle zugeordnete PL SQL Module die bei DML Aktionen gegen diese Tabelle ausgef hrt werden Es handelt sich um eigenst ndige im Data Dictionary unkompiliert abgelegte Objekte jede Tabelle kann bis zu 12 verschiedene Trigger haben die sich durch unterschiedliche Ausl seereignisse INSERT UPDATE DELETE Ausl sezeitpunkte before after und im Typ Befehls Datentyp unterscheiden Stored Procedures
270. mtliche Klauseln eines Pr dikats aus der Wissensbasis Das Pr dikat und die Stelligkeit des Pr dikats das aus der Wissensbasis entfernt werden soll werden ber abolish praedikatsname stelligkeit angegegeben Sichern und Wiederherstellen Zur langfristigen Sicherung der Fakten die im dynamischen Teil der Wissensbasis enthalten sind stehen die Pr dkatetell listing undtold bereit Zum Zugriff auf den Inhalt einer Sicherungsdatei dient das Pr dikat consult dateiname bzw reconsult dateiname Zur Pr fung ob eine Datei existiert und der gew nschte Zugriff auf diese Datei erlaubt ist l t sich das Standard Pr dikatexists dateiname art_des_zugriffs einsetzen Je nachdem ob auf die Datei deren Name im 1 11 In vielen Prolog Systemen k nnen auch Regeln in den dynamischen Teil der Wissensbasis eingetragen weden Dazu umfa t das Pr dikat asserta zwei Argumente Das 1 Argument enth lt den Regelkopf das zweite Argument den Regelrumpf 203 Datenbanken Argument aufgef hrt ist zugegriffen wird ist im 2 Argument r oder w ohne Hochkommata anzugeben 2 2 2 4 Relationenkalk l und Pr dikatenlogik Ein Ausdruck des Relationenkalk ls hat die Form t p t t Tupelvariable p t spezielle Formel der Pr dikatenlogik 1 Ordnung Atome des Relationenkalk ls sind t r t Tupelvariable r Relation Tupel enthalten Fakten Eine Relation fa t Fakten zusammen Eine relat
271. n Die Basis der Fehlerbehandlungsverfahren bilden lokale Sicherungsverfahren in den Knoten des VDBS Derartige Knoten verf gen ber ein solides sicheres Hintergrundsystem dessen Inhalt alle St rungen berlebt Lokale Sicherheit bietet die Grundlage f r die Implementierung im globalen Fehlerbehandlungsverfahren Eine wesentliche Voraussetzung f r die Bewahrung der Konsistenz in verteilten DB ist Die Erhaltung der Unteilbarkeit globaler nderungstransaktionen Bsp Eine Transaktion T hat in den Knoten Ki Km ber Teiltransaktionen Ti Tm neue Versionen erzeugt Diese Versionen m ssen in allen oder in keinem Knoten g ltig gemacht werden Es mu sichergestellt werden da sich etwa aufgrund eines Knotenzusammenbruchs eine Teiltransaktion zur ckgesetzt eine andere jedoch 152 Datenbanken richtig beendet wird Innerhalb einer einzelnen Transaktion Ti von Knoten K hat die zugeh rige lokale Fehlerbehandlungsroutine f r die Konsistenz der Daten gesorgt 1 6 2 Datenbankrechner und Datenbankmaschinen Hohe Softwarekosten und immer preiswertere Hardware haben dazu gef hrt das Konzept des Universalrechners zu berdenken Man kann heute einen Trend zur Aufteilung veschiedener Systemkomponenten auf autarke Prozessoren beobachten F r Datenbanken sind zwei Enwicklungsrichtungen festzustellen 1 Entwicklung neuer Rechnerfamilien die sowohl assoziatives inhaltsorientiertes als auch paralleles Arbeiten erm glichen Diese Re
272. n der Datenbankssoftware von Oracle Auch dieser Datenbankserver mu in irgendeiner Form mit SQL Befehlen versorgt werden Dies bernimmt ein Client Proze der auf dem gleichen Rechner l uft wie der Oracle7Server lokale Anwendung oder auf einem anderen Rechner im Netzwerk Client Server Anwendung Eine wichtige Aufgabe des Client ist die Identifikation der Anwendung die ausschlie lich ber das User Programmatic Interface UPI an den Datenbankkern auf den Server gesandt wird 132 Datenbanken Client Anwendung Oracle Server User Programmatic Interface Oracle Programmatic Interface OPI SQL Net SQL Net Transport Network Substrate TNS Transport Network Substrate TNS Protokoll Adapter PA Protokoll Adapter PA Netzwerkspezifischer Netzwerkspezifischer Protokoll Stack Protokoll Stack z B TCP IP z B TCP IP Abb 1 5 9 Die Komponenten bei einer Client Server Verbindung UPI ist eine Schicht der Client Anwendung mit einem Satz von Funktionen ber die ein SQL Dialog zwischen Client und Server durchgef hrt werden kann Die Kontrolle wird dann an SQL Net weitergegeben das f r den Transport der Daten zust ndig ist In Client Server Verbindungen sorgt SQL Net f r die Verbindung zwischen Client und Server SQL Net ist die Middleware von Oracle Auf der Client Seite besteht SQL Net im wesentlichen aus einigen Bibliotheken und Konfigurationsdateien Auf der Server seite gibt es zus tzlich einen Listener Proz
273. n eindeutig einen Satz in der Tabelle Angestellte identifizieren Zur Auswahl einer solchen Hierarchie ist anzugeben 1 die Beziehung zwischen oberem und unterem Knoten der Hierarchie Die Hierarchiebeziehung wird durch die CONNECT BY Klausel bestimmt Damit wird die Beziehung zwischen Vorg nger und Nachfolgerknoten hergestellt die Angabe PRIOR ist Verweis auf den Vorg ngerknoten 2 die Wurzel der Hierarchie des Baumes Sie wird durch die START WITH Klausel definiert Bei Baumstrukturen ist die Einf hrung eines Pseudo Felds LEVEL m glich analog zu SYSDATE das die Tiefe des jeweiligen Satzes angibt Die Wurzel des Baums hat die 235 Datenbanken Tiefe 1 F r die Anwendung der CONNECT BY Klausel zur Abfrage von Hierarchiebeziehungen sind Ver nderungen an der Tabellenstruktur ber ALTER TABLE vorzunehmen ALTER TABLE Tabellenname ADD neuer_Spaltenname neuer_Spaltentyp MODIFY alter_Spaltenname neuer_Spaltentyp NOT NULL et Im vorliegenden Beispiel f hrt das zu ALTER TABLE Angestellte ADD Vorgesetzter VARCHAR2 3 Die Datenwerte der neuen Spalte sind ber die UPDATE Anweisung zu f llen UPDATE TabellenName SET SpaltenName Ausdruck NULL WHERE Bedingung Das f hrt bspw zu UPDATE Angestellte SET Vorgesetzter Al6 WHERE Ang_ID Al Auf die so erweiterte Datenbank kann die Hierarchie mit folgenden SET anwendungen u
274. n Fall sog Head Crash b c d e Nur die Fehlertypen a bis b sind Transaktionsprogrammen unmittelbar anzulasten und k nnen im laufenden Betrieb durch die Recovery Komponente des Datenbanksystems repariert werden Fehler vom Typ c bis e hei en Soft Crash Ma nahmen zur Wiederherstellung der Datenbank nach solchen Fehlern werden unter dem Begriff Crash Recovery zusammengefa t Sie erfordern einen Wiederanlauf des Datenbanksystems Nach einem Fehler vom Typ f ist i a die aufwendige Archiv Recovery einzuleiten Anomalien im Mehrbenutzerbetrieb Ein Reihe von Fehlern Anomalien kann im Mehrbenutzerbetrieb auftreten selbst wenn jede einzelne Transaktion f r sich allein feherfrei abl uft und das System reibungslos funktioniert Derartige Anomalien k nnen sein lost update Die Ausf hrung unterschiedlicher Transaktionen auf eine gemeinsame Datenbank kann zu Problemen f hren z B lost update out of date retrieval So bewirken die folgenden Arbeitsschritte der Transaktionen T und T die nebeneinander nebenl ufig ablaufen den Verlust lost update der durch die Transaktion T durchgef hrten Aktualisierung 1 Transaktion T holt das Objekt aus der Datenbank 2 Transaktion T liest das Objekt aus der Datenbank 3 Transaktion T aktualisiert das Objekt und schreibt es zur ck 4 Transaktion T aktualisiert das Objekt und schreibt es zur ck in die Datenbank out of date r
275. n ResultSet zur ck Die Methoden der Klasse DatabaseMeta Data geben ebenfalls die Ergebnisse in der ResultSet Form zur ck Mit den Method getWarnings k nnen Warnungen berpr ft werden 292 Datenbanken Die Klasse DatabaseMetaData Ein DatabaseMetaData Objekt und seine Methoden ber 100 bermitteln Informationen zur zugrundeliegenden Datenbank getUserName l0 MM isReadOny oo boolean nullsAreSortedHign 0 boolean nullsAreSortedlow 0 bokn banm Fr FE Die Klasse ResultSetMetaData Ein ResultMetaData Objekt kann verwendet werden um mehr ber Typ und Eigenschaften von Tabellenspalten in einem ResultSet herauszufinden Mit den Methoden getColumnLabel und getColumnDisplaySize eines ResultSetMetaData Objekts entstehen Programme die ResultSets genersich bearbeiten Gnt column int column int column int column int column int column String int column int int Gnt column Stins i O 293 Datenbanken Die Klasse SOLException Sie umfa t Fehlermeldungen beim Datenbankzugriff Q 0 0 0 SQlException O getSALState J0 ooo Si O getErrorCode Jo SSS e getNextException ____ SOLExcepton Die Klasse SOLWarning Warnings werden an das Objekt das die warning verurscht angeh nt Die berpr fung auf Warnungen erfolgt mit der Methode getWarning die f r alle Objekte verf gbar i
276. n Untertypen Subtypen in das ERM eingef hrt Ein Entit tstyp E ist ein Untertyp des Entit tstyps E gt falls jede Auspr gung Instanz von E4 auch ein Untertyp von E ist Bsp In einem Software Unternehmen f r Proze automatisierung gibt es Sekret rinnen Manager und Ingenieure Die Ingenieure k nnen Maschinenbau Flugzeugbau Bauingenieure sein Im ER Diagramm dr ckt sich das so aus Datenbanken Maschinenbau Ing Flugzeugbau Ing Abb 1 3 11 Mitarbeiterbeziehungen in einer Projektgruppe Elektro Ing Diese Hierarchie k nnte in das folgende Schema einer relationalen Datenbank berf hrt werden Mitarbeiter MNR Attribute die allen Mitarbeitern gemeinsam sind Ingenieure MNR Attribute spezifisch f r Ingenieure Sekret rin MNR Attribute spezifisch f r Sekret rinnen Sekret re Maschinenbau Ingenieure MNR Attribute spezifisch f r Maschinenbau Ingenieure Flugzeugbau Ingenieure MNR Attribute spezifisch f r Flugzeugbau Ingenieure Elektro Ingenieure MNR Attribute spezifisch f r Elektro Ingenieure Manager MNR Attribute spezisch f r Manager Entit ten die Mitglieder eines Untertyps sind erben die Attribute ihrer bergeordneten Typen Untertypen k nen zus tzliche spezifische Attribute und Beziehungen haben Durch Aggregation werden Beziehungen und zugeh rige Entit ten zu Entit ten auf h herer Ebene zusammengefa t So kann in dem folgenden ER Diagramm Kunde
277. n auftritt bezeichnet 2 verschiedene Variable Jedes Auftreten einer Variable in derselben Klausel bezeichnet die gleiche Variable Konstante dagegen verhalten sich anders Die gleiche Konstante bezeichnet immer das gleiche Objekt in jeder beliebigen Klausel d h im ganzen Programm Bsp 7 4 fachhochschule sind Konstanten Was Wie Kopf Rest sind Variable Standardisierung F r Prolog existiert das haben die vorstehenden Beispiele gezeigt kein Standard Die am h ufigsten verwendete Syntax wurde an der Universit t Edinburgh entwickelt und in dem bekannten Werk von Clocksin Mellish C amp M Standard Prolog beschrieben Sie wird manchmal als de facto Standard bezeichnet Es existieren aber zahlreiche Versionen von Prolog die zum Teil erheblich von dieser Syntax abweichen Prolog ist keine einheitliche Programmiersprache sondern eine Programmier konzeption Die syntaktischen Unterschiede zwischen existierenden Prolog Systemen sind weitaus gr er als z B die zwischen C und Pascal 10 Clocksin W F und Mellish C S Programming in Prolog Second Edition Berlin Heidelberg New York Tokio 1984 193 Datenbanken Ein Prolog Programm das eine relationale Datenbank bearbeitet Die folgende Fakten Zusammenstellung beschreibt eine relationale Datenbank l einzelteil_l 2 einzelteil_2 l e3 einzelteil_3 teil bl baugruppe_l teil b2 baugruppe_2 teil pl endprodukt_1 teil p2 endprodukt_2 acc H H H
278. n zu w hlen 3 Eine externe Ebene mit beliebig vielen Anwendersichten Im Mittelpunkt der verschiedenen Betrachtungen Sichten steht das allumfassende Konzept f r die Anwendung der Daten Datenbanken stellen auf der einen Seite die Mittel zur Verf gung die die jeweiligen Dateien f r die spezifischen Anwendungen bereitstellen Auf der anderen Seite sorgen sie f r die Speicherung der Daten internes Schema Speicherschema Entscheidend ist in beiden F llen das Datenmodell das der allgemeinen Beschreibung zugrundeliegt Das Datenmodell soll m glichst genau die realen Verh ltnisse die reale Welt wiedergeben d h die unterschiedlichen Objekte Entit ten und ihre Beziehungen Ein Datenmodell ist dann das Muster das Schema nach dem die Daten logisch organisiert werden Im Hinblick zu den Anwenderprogrammen ist auf Datenneutralit t und mit Blickrichtung auf die physische Datenbank auf Datenunabh ngigkeit zu achten Datenneutralit t bedeutet Neue Anwendungen und neue Benutzersichten sollen keinen Einflu auf existierende Anwendungen und Sichten aus ben Datenunabh ngigkeit bedeutet Neue Ger te verbesserte Speichertechnologien ver nderte Zugriffspfade sollen sich in Anwendungen nur durch Leistungsverbesserung nicht durch Funktions nderung bemerkbar machen Bei vollst ndiger Datenneutralit t ist es m glich durch unterschiedliche Benutzersichten Netze Hierarchien Relationen das Basis Schema zu betrachten Eine Sicht
279. nbankzugriffe aus und meldet das Ergebnis an das Endger t zur ck Jede Instanziierung eines derartigen Anwenderprogramms wird als Transaktion ausgef hrt Das bedeutet Die Ausf hrung einer Transaktion ist bzgl der Datenbank und bzgl des Nachrichtensystems ununterbrechbar Ein Synchronisationsmechanismus sorgt daf r da alle Programme sich so verhalten als w rden sie seriell d h in Einbenutzer Umgebung ausgef hrt Transaktionsparallelit t entsteht durch time sharing Die Anwendung bestimmt lediglich welche und wieviel Arbeitsschritte zu einer Transaktion zusammengefa t werden Parallelt t zwischen Transaktionen steigert den Durchsatz durch Erh hung der Zahl der Verarbeitungsprozesse Ein berma an time sharing verl ngert die Antwortzeit der einzelnen Transaktionen Zu viele gleichzeitig aktive Transaktionen bewirken ein berma an Synchronisierungskonflikten Die Betriebssystemumgebung legt fest wie viele Transaktionen bearbeitet werden sollen Das DBS mu nur daf r sorgen da die ACID Eigenschaft der Transaktionen Atomicity Consistency Isolation Durability erhalten bleiben Die ACID Eigenschaft Transaktionen m ssen die ACID Eigenschaften erf llen Atomarit t atomicity Konsistenz consistency Isolierte Zur cksetzbarkeit isolation Dauerhaftigkeit durability Unter Atomarit t wird verstanden dass alle zu einer Transaktion geh renden Aktionen als eine logische Einheit anges
280. ndextabelle Sekund rindextabelle Pers Nr Kostenstelle Gehalt Feldwert Satzadr oo oNOOPOD _ oO Abb 1 2 4 Indizierte Datei Speicherstrukturen Die Informationen m ssen in einer Datenbank permanent gespeichert werden Dateien spielen daher in Datenbanken eine gro e Rolle Die Ausf hrungen ber invertierte Systeme haben gezeigt da diese Daten nicht in einer einfachen Satzstruktur aufgebaut sind Sogar Informationen ber die Struktur der Daten m ssen in Dateien gespeichert werden Grundlage f r Datenstrukturen sind Bl cke kleinste physikalische Bearbeitungseinheit f r fast alle Datenbank Komponenten Die Gr e eines Datenbankblocks ist nicht generell festgelegt Sie kann beim Anlegen der Datenbank den Gegebenheiten Anforderungen Anwendung und Betriebssystem angepa t werden g ngige Werte 2 4 und 8Kbytes BE 0 2324 E N o e T N o e T E e SE 7 GE 2 BE 12 324A 1 BE 12 A 1 BEE 1 2A Ist die DB einmal angelegt dann ist die Blockgr sse eine nicht mehr nderbare Gr e f r die Datenbank F r Dateien die Daten der Datenbank enthalten gilt demnach Ihre Gr e entspricht immer einem Vielfachen der Datenbank Blockgr e 23 Datenbanken Datenbank Bl cke stellen die kleinste Verwaltungseinheit f r den Speicher dar Ein Datenbank Block besteht immer aus einem Kopf und dem Inhalt z B den Daten s tzen einer Datei bzw Tabelle Pea S tze Re
281. ngs und Auswertungsm glichkeiten der Daten gestattet Das bedeutet Alles was oft als Datenbank z B Oracle Access dBASE angeboten wird sind Datenbanksysteme DBS Das sind Programme mit deren Hilfe Datenbanken f r interne Zwecke aufgebaut und gepflegt werden k nnen Es handelt sich dabei um Datenbankverwaltungs Systeme Datenbankmanagement Systeme DBMS die nur die Organisation nicht aber den Inhalt der Datenbank bestimmen Streng genommen bezeichnet der Begiff Datenbank eine nach bestimmten Regeln aufgebaute Datensammlung Texte Tabellen bzw Zahlen Zeichen Graphiken Auf diese Daten besteht eine Zugriffsm glichkeit die ber vielf ltige Kombinationsm glichkeiten des Suchbegriffs gew nschte Informationen bereitstellt So wird heute weltweit der Zugriff auf mehr als 6000 ffentlich zug ngliche Datenbanken angeboten Sie werden von zahlreichen Instituten Zeitschriften Zeitungen Nachrichtenagenturen Vorlagen und amtlichen Stellen gef llt In externen Datenbanken arbeitet der Anbieter einer Datenbank mit Hilfe von 12 Datenbanken Datenbanksystemen zusammen ber Datenbanksysteme werden externe Quellen Zeitschriften B rsenmitteilungen Gesetze Urteile etc ausgewertet und in eine f r die Datenbank geeignete Form gebracht Im Gegensatz dazu enthalten interne Datenbanken nur Daten die im eigenen Umfeld des Datenbankadministrators anfallen 1 2 2 Informationssysteme Was geh rt alles zu einem Informati
282. nksystems umgesetzt Das lokale Schema ist abh ngig vom Typ des zugrundeliegenden Datenbanksystems Die ersten drei Schichten sind unabh ngig vom benutzten DBS 91 vgl Ceri Stefano u Pelagotti Guiseppe Distributed Databases Principles amp Systems McGraw Hill 1985 92 Ausnahme Bei vertikale Fragmentierung wird der Prim rschl ssel redundant gespeichert um die Rekonstruktion der globalen Relation zu gew hrleisten 146 Datenbanken Globales Schema Fragmentierungsschema Allokierungsschema Lokales Schema Lokales Schema Datenbank Datenbank Abb 1 5 21 Aufbau einer verteilten Datenbank Rahmenbedingunen f r das Design Es gilt nicht nur wie bei zentralen Datenbanken das konzeptuelle Schema aufzubauen es m ssen auch Fragen der Fragmentierung Allokierung bzw Ortsverteilung gek rt werden Wichtige Prinzipien f r Verteilung und Replikation der Daten sind Lokalit tsprinzip Daten sollen so nahe wie m glich an den Ort der Verarbeitung gelegt werden Minimierung der in der Regel aufwendigen Zugriffe ber das Netz Optimierung der Verf gbarkeit und Zuverl ssigkeit Durch geeignete Replikationen lassen sich die erh hten Risiken komplexer Konfigurationen und Verwitung verteilter Datenbanken minimieren Im Falle eines Systemabsturzes oder eines Netzausfalls kann die betroffene Applikation dann auf einen anderen Knoten mit replizierten Daten ausweichen Optimierung der Lastverteilung durch Verteil
283. nkt der HAVING Klausel bereits Gruppen gebildet sind kann nur nach Attributen dieser Zwischen Ergebnistabelle selektiert werden Mit Hilfe der HAVING Klausel k nnen Gruppen ausgew hlt werden die in die Ergebnistabelle aufgenommen werden sollen SELECT ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG COUNT FROM ABTEILUNG ANGESTELLTE WHERE ANGESTELLTE ABT_ID ABTEILUNG ABT_ID GROUP BY ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG HAVING COUNT gt 1 Die HAVING Klausel wird erst nach der Gruppierung ausgewertet denn sie schr nkt nur die durch die Gruppierung erzeugten Datenmangen ein Sie ist aber hier obwohl eine WHERE Klausel vor allen anderen Klauseln ausgef hrt wird unbedingt erforderlich da SELECT ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG COUNT FROM ABTEILUNG ANGESTELLTE WHERE ANGESTELLTE ABT_ID ABTEILUNG ABT_ID AND COUNT gt 1 GROUP BY ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG zu folgender Meldung f hrt GROUP FUNCTION NOT ALLOWED HERE Gruppen Funktionen geh ren niemals in ein Pr dikat der WHERE Klausel UNION H ufig m chte man Ergebnisse mehrerer Abfragen verkn pfen Das kann mit Hilfe des Operators UNION geschehen Bsp Welche Job Identifikationen gibt es in Angestellte oder Job SELECT JOB_
284. nktionen mit Zugriffen auf die gemeinsamen Datenbest nde ab Die Koordinierung bernimmt ein Transaktionsmonitor TP Monitor der den Anwendungsprogrammen alle Fragen der Mehrfachausf hrung und der ger tespezifischen Ein Ausgabe abnimmt Transaktionsprogramme greifen nat rlich auf die Datenbank zu TP Monitor und Datenbanksystem m ssen daher gleichzeitig aktiv sein und koordiniert zusammen arbeiten Man unterscheidet nichtintegrierte DB DC Systeme von integrierten DB DC Systemen Nichtintegrierte DB DC Systeme entstehen durch einfache Kopplung der unabh ngigen DB und DC Teile die je einen eigenen Steuerteil aufweisen z B UDS UTM 67 Die Koordinierung von recovery und restart ist in diesen F llen kompliziert Bei integrierte DB DC Systemen ist DC Komponente Bestandteil des Datenbank systems Aus der Sicht der Anwender ist ein TP Monitor ein Programm das eine Endlosschleife mit einer ACID Transaktion als Schleifenk rper bearbeitet Client TP Monitor RPC oder MOM oder Peer to Peer DBMS Appl A Tier 1 Tier 2 Tier 3 GUI Application Daten Logic Abb Transaktionsmonitor Beispiel f r eine 3 Tier Anwendung 67 UDS ist ein Universelles Datenbanksystem der Firma SIEMENS UTM ist ein TP Monitor der Firma SIEMENS 120 Datenbanken Der Kontrollfluss innerhalb des TP Monitor f r jede Anfrage ist 1 Den Input vom Display oder einem anderen Ger t in das Standard Format f r Anfragen XT API68
285. nn dann A bspw Oberbegriff von B ist ist zugleich B Unterbegriff von A Wenn A mit B verwandt ist ist auch B mit A verwandt Die Beziehung Relation verwandter Begriff ist damit symmetrisch Systematischer Katalog Darunter verstehen Bibliothekare die Verwendung eines k nstlichen Schlag wortverzeichnisses n mlich der universellen Dezimal Klassifikation UDK oder DK Dewey s Dezimalklassifikation Um 1870 entwickelte der amerikanische Bibliothekar Melvil Dewey ein Ordnungs system f r eine einheitliche B cheraufstellung Er teilte das gesamte menschl Wissen in 10 Hauptabteilungen Allgemeine Medizin Philosophie Religion Theologie Sozialwissenschaften Recht Verwaltung Sprachen Mathematik Technik Medizin Kunst Literatur Geschichte vo oN IONV wWNMN H Oo Jeder der Hauptabteilungen teilt sich in 10 Abteilungen 00 09 10 19 20 und bei Bedarf jede dieser Abteilungen in 10 Unterabteilungen 000 001 Dieser Klassifikationsvorschlag fand eine sehr starke Verbreitung Die verwendete Dokumentationssprache ist einfach zu lernen denn sie besteht ja nur aus etwa 1000 Deskriptoren Die Deskriptoren sind hierarchisch geordnet Die internationale Dezimalklassifikation Das Klassifikationssystem von M Dewey wurde bis heute immer wieder weiter berarbeitet Durch weitere Untergliederung entstanden bereits bis 1973 70000 Deskriptoren Die internationale Dezimalklassifikation wird heute ge
286. nn ebenfalls ein Wahrheitswert nach der vorliegenden Interpretationsvorschrift zugeordnet werden Vor Interpretationsschritt 2 Zuordnung ist noch zu beachten Jedes Auftreten der freien Variablen ist durch ein Individuum aus dem Individuenbereich zu ersetzen z B ergibt der Ausdruck X q X Y g f X Y X mit den vorstehenden Interpretationen f r Y 0 den Wert falsch f r Y 1 den Wert falsch f r Y 2 den Wert wahr Es kann sehr unterschiedliche Interpretationen von Formeln geben z B Die Formel X p f X a X besitzt 2 Interpretationen 1 Interpretation Der Individuenbereich ist die Menge der nat rlichen Zahlen Der Konstanten a wird die Zahl 1 zugeordnet Der zweistellige Funktor f steht f r die Multiplikation Das zweistellige Pr dikat steht f r Gleichheit nat rlicher Zahlen Welche Aussage ist dann durch die angegebene Formel bestimmt F r alle nat rliche Zahlen die anstelle von X eingesetzt werden gilt X 1 X 185 Datenbanken 2 Interpretation Der Individuenbereich ist die Menge der ganzen Zahlen Der Konstanten a wird der Wert 2 zugeordnet Der zweistellige Funktor steht f r Addition auf ganzen Zahlen Das zweistellige Pr dikat p steht f r die Relation gt Welche Aussage ist dann durch die angegebene Formel festgelegt F r alle ganze Zahlen die anstelle von X eingesetzt werden gilt X 2 X Eine Interpretation die einer geschlossene Formel eine wahre Aussage zu
287. nsverarbeitung zu bzw schliessen sie aus Jeder Isolation Level schlie t bestimmte Ph nomene die im Mehrbenutzerbetrieb auftreten k nnen aus bzw nimmt sie in Kauf In konkurrierenden Transaktionen k nnen folgende Ph nomene auftreten Lost Update Ein Lost Update in einer Transaktion ist eine Ver nderung in dieser Transaktion die von einer anderen Transaktion berschrieben wird Dirty Read Ein Dirty Read in einer Transaktion ist ein Lesevorgang mit Prim rschl ssel der ver nderte Zeilen anderer noch nicht terminierter Transaktionen liest Es k nnen sogar Zeilen gelesen werden die nicht existieren oder nie existiert haben Die Transaktion sieht einen tempor ren Schnappschu der Datenbank der zwar aktuell ist aber bereits inkonsistent sein kann Offensichlich erfa t die Abfrage Ergebnisse einer nicht mit COMMIT best tigten Transaktion und erzeugt dadurch ein falsches Ergebnis Non Repeatable Read Ein Non Repetable Read in einer Transaktion ist ein Lesevorgang mit Prim rschl ssel der im Falle von mehrmaligem Lesen zu unterschiedlichen Ergebnissen f hrt Innerhalb einer Transaktion f hrt die mehrfache Ausf hrung einer Abfrage zu unterschiedlichen Ergebnissen die durch zwischenzeitliche nderungen update und L schungen delete entstehen Die einzelnen Abfragergebnisse sind konsistent beziehen sich aber auf unterschiedliche Zeitpunkte Phantom Read Ein Phantom einer Transaktion ist ein Lesevorgang bzgl einer Datenmenge
288. ntergefahren oder nicht angeschlossen ist Es muss wiederum nur seine Antwort Warteschlange verf gbar sein Der Server setzt seine Antwort einfach in diese Schlange Ist der Client wieder verf gbar pr ft er in seine Warteschlange und findet die erwartete Antwortnachricht des Servers Mehrere Server k nnen ihre Anfragen der gleichen Warteschlange entnehmen und so die Arbeitslast auf diese verteilen Sobald ein Server eine Anfrage abgearbeitet hat kann er die n chste aus der Schlange entnehmen und diese abarbeiten Es kann also nicht passieren dass ein Server berlastet ist w hrend sich der andere im Leerlauf befindet Anfragen in der Warteschlange k nnen f r eine priorit tsgesteuerte Bearbeitung mit Priorit ten versehen werden Client Server G ngige MOM Produkte bieten ein einfaches API f r viele verschiedene OS Plattformen Au erdem bieten sie persistente und nicht persistente Nachrichten Warteschlangen Nicht persistente Warteschlangen werden im Arbeitsspeicher gehalten Persistente Schlangen werden auf den Plattenspeicher geschrieben und sind dadurch langsamer k nnen jedoch nach einem Systemausfall wieder hergestellt werden Die Warteschlangen k nnen sich lokal auf dem Rechner befinden oder entfernt ber ein Netzwerk Der Systemadministrator kann die Gr e der Warteschlange einstellen 127 Datenbanken 1 5 3 2 Client Server Architekturen 1 5 3 2 1 Architekturformen In der Praxis haben zahlreiche Rea
289. ntersucht werden SELECT Ang_ID Name Vorgesetzter FROM Angestellte CONNECT BY PRIOR Ang_ID Vorgesetzter START WITH Ang_ID A200 ORDER BY Name LEVEL kann in einer ORDER BY Klausel angewendet werden oder an jeder Stelle wo ein Attributname zul ssig ist SELECT LEVEL Ang_ID Name Vorgesetzter FROM Angestellte CONNECT BY PRIOR Ang_ID Vorgesetzter START WITH Ang_ID A200 ORDER BY Name Eine einger ckte Liste erh lt man mit der Funktion LPAD padding from left auff llen von links SELECT ANG_ID SUBSTR LPAD 2 LEVEL NAME 1 32 NAME VORGESETZTER FROM ANGESTELLTE CONNECT BY PRIOR ANG_ID VORGESETZTER START WITH ANG_ID A20 W hlt man mit der START WITH Klausel nicht die Wurzel sondern einen Unterknoten der Hierarchie dann selektiert man Teilb ume des Gesamtbaums Im allgemeinen Fall kann man sogar mehr als eine Wurzel haben wenn mehrere S tze die Bedingung der 236 Datenbanken START WITH Klausel erf llen Auf diese Weise kann man nicht nur B ume sondern auch W lder selektieren 3 Die Ausf hrung von SQL Befehlen Der Cursor Die Abarbeitung eines SQL Befehls auf einem Oracle7Server erfolgt in mehreren Phasen f r die zum Zwischenspeichern eine spezielle Datenstruktur der Cursor ben tigt wird Eine Anwendung kann bis auf Beschr nkung
290. ntiert eine geschickte Art der Praktizierung von Client Server Architekturen Lokale Server Datenbanksystem Datenbeschaffung Oberfl che Fachfunktion Oberfl che Fachfunktion Fachfunktion WAN z B Modem LAN der Zentrale Datenbeschaffung Fachfunktion Servicefunktion Datenbanksystem Fachfunktion Abb 1 5 11 Aufgabenverteilung auf verschiedenen Schichten Pr sentation Funktionen Datenbeschaffung Datenbank Services des Client Server Modells Die Abb zeigt die Verteilung der Aufgaben auf verschiedene Schichten Die Pr sentationsschicht bernimmt die Darstellung der Information gegen ber dem Benutzer klassische Frontend Bearbeitung Die Funktionsschicht umfa t die fachlichen Funktionen unabh ngig von Darstellung und Speicherung Die Datenbeschaffungsschicht umfa t die Speicherung der Daten auf den erforderlichen Medien mit den entsprechenden Systemen Die Service Schicht stellt Werte und Funktionen in allgemeiner Form bereit die systembezogen oder umgebungsbezogen 2 sind Zur Nutzung des Internet steht eine Vielzahl von Anwendungen zur Verf gung die als Internet Dienste bezeichnet werden Die Dienste st tzen sich auf ein Client Server Modell ab Bekannte Dienste im Internet sind Telnet File Transfer Protocol FTP Usenet News World Wide Web www Alle Internet Dienste st tzen sich auf das Client Server Konzept Das Client Programm Client stellt die Schnittstelle zwischen Benutzer und Server Pro
291. omit wird hier das kartesische Produkt gebildet Einen Verbund mit einer Auswahlbedingung mit Projektion auf X erh lt man durch SELECT X FROM R S WHERE B Mengenoperationen k nnen in SQL nicht dargestellt werden Die Vereinigung kann zwar auf zwei select from where Bl cke angewendet werden z B select from where union SELECE a from where Sie kann jedoch nicht innerhalb eines select from where Blocks auftreten Differenz und Durchschnitt sind in der aktuellen ANSI ISO Fassung von SQL nicht enthalten und m ssen innerhalb der where Klausel mit not und and simuliert werden Die Operation Division der relationalen Algebra zur Formulierung des Allquantors ist ebenfalls in SQL nur ber umst ndliche Simulationen Negation des Existenzquantors ber not EXISTS darstellbar 180 Datenbanken 2 2 2 Das Realtionenkalk l 2 2 2 1 Grundlage Das Aussagenkalk l Ein Datenmodell f r Datenbanken kann als formale Struktur betrachtet werden innerhalb der man Aussagen ber die reale Welt formulieren kann Eine Frage an die Datenbank ist dann eine Frage ob eine bestimmte Aussage zutrifft oder nicht bzw eine Frage nach denjenigen Objekten die einer bestimmten Bedingung gen gen Der Aussagenkalk l besch ftigt sich mit Aussagen denen genau einer der beiden Wahrheitswerte wahr w oder falsch f zugeordnet werden kann Ein logischer Kalk l besteht aus einer Menge von Axiomem und Ableitungsregeln Dies
292. on Aufklebern mit den Adressen der Mitarbeiter z B f r den Versand von Mitteillungen Es gibt zwei M glichkeiten diesem Programm die Datenfelder Name und Adresse zur Verf gung zu stellen Datenbanken L sung 1 Erweiterung des bestehenden Datensatzes f r die Gehaltsabrechnung um ein Adressenfeld 31210 Ute 6 1 800 900 8 M nchen Eberstra e 30164 2 840 1 800 8 M nchen Hahnstra e 29910 4 400 2 200 8M nchem Buschstra e 27730 2970 2 100 8 M nchen Karlsplatz Pers Nr Name Steuer Brutto Netto Adresse klasse gehalt gehalt Programm Gehaltsabrechnung berweisung Liesel Programm Adressenschreiben mu O EI berweisung J rgen berweisung Uwe 2 100 DM Abb 1 1 2 Datenflu zur 2 Aufgabe Aus dieser L sung ergeben sich zwei Schwierigkeiten 1 Der Datensatz vergr ssert sich Das bestehende Programm Gehaltsabrechnung mu ge ndert werden denn der Eingabebereich mu entsprechend vergr ssert werden Erweiterung von Datens tzen bedeutet nderung aller bestehenden Programme die mit den Datens tzen arbeiten Das Programm das die Aufkleber mit Adressen beschriftet mu den erweiterten Datensatz einlesen Damit kann man in diesem Programm auch alle anderen Personaldaten verarbeiten Die Daten sind nicht mehr vertraulich Datenschutz Datenbanken L sung 2 Der Datenbestand f r die Gehaltsabrechnung bleibt unv
293. on Urbild Definition b x y ist eine bin re Relation oder Abbildung Die Bildmenge von x unter b ist dann IHR y x y b Bsp Bestimmen von Bildmengen gegebener Relationen 1 Gegeben ist r A B grb 2 3 gr 1 a 2 Gegeben ist r A1 A2 A3 A4 1 1 X 0 10 N XNK oop 177 Datenbanken Die Projektionen r A bzw r ergeben r A A1 A2 1 10 2 11 Ir r A gr r A gr X a 9r Y b G9r Zz b 1 10 2 11 r A Definition der Operation Division Voraussetzung r A und s B sind vereinigungsvertr glich r A B s r Is B 7 gr rl Division von r auf A durch s auf B Bsp Divisions Operationen 1 Gegeben ist r A B U s D F 1 EL x l 2 y x 2 3 Z y 4 12 x a r U D s bin re Relation U mit A B r A B T 2 3 a A Projektion s D x y r A A3 A4 K Oooow s D mu eine Untermenge von g r sein Das ist in allen 4 F llen nicht m glich gr 1 11 X gr 2 11 y gr 3 11 2 9r 4 12 x b r B U U DJs r B U B U r B r U U s D XNK X N 12 gr 11 y 2 gr 12 x r B U U DJs 11 178 Datenbanken Aufgaben Gegeben ist r LNR TNR und s TNR TB a 1 1 XX a 2 2 y a 3 3 ZZ b I b 2 fe 3 a Finde die Lieferanten Nr der Lieferanten die alle Te
294. onssystem Eine Datenbank liefert Fakten f r ein Informationssystem Ausgangspunkt solcher Systeme ist der Benutzer Er stellt Fragen das Informationssystem gibt Antworten Einfache Anfragen k nnen direkt aus der Datenbank beantwortet werden Bsp Buchhaltung Letzj hriger Gesamtumsatz Geburtsjahr von J S Bach F r komplizierte Fragen sind zus tzlich Methoden zur Kombination bestimmter Daten aus der Datenbank n tig Methodenbanken sind Programme f r mathematische Verfahren Matrizen Differentia und Integralrechnung statistische Auswertungen und Operations Research Methodenbanken sind auf Gro rechern Mainframe immer noch selten H ufig anzutreffen dagegen sind integrierte Programmpakete f r Mikrocomputer die Programme zur Datenbankanwendung sowie f r Pr sentationsgrafik Tabellen kalkulation und Textverarbeitung enthalten Damit ist die Basis geschaffen f r weitere Nachforschungen die mehr als Faktenermittlung und zugeh rige spezifische Auswertung umfassen Bsp Methodenbank Betriebsabrechnung Buchhaltung Vollkosten der Maschine X je Stunde Prognose Methoden Bev lkerungsdaten Schulanf nger in 10 Jahren Manchmal sind weitere Nachforschungen n tig Datenbank zus tzliche Nachforschungen Buchhaltung Gesch ftsberichte der Konkurrenz Personalkosten im Vergleich zur Branche i l vgl 1 2 1 13 Datenbanken In speziellen Anwendungen mu der Datenbestand f r den Fragesteller durch eine
295. onstanten wird wie bei allen PL SQL Anweisungen mit einem Semikolon abgeschlossen Der Anweisungsteil Ausf hrungsteill eines PL SQL Blocks folgt auf das Schl sselwort pegin Jede PL SQL Anweisung wird durch ein Semikolon beendet Anweisungen k nnen sein Zuweisungen Anweisungen zur Steuerung des Programmablaufs SQL Anweisungen Cursor Anweisungen Die Anweisungen eines PL SQL Programms sind in Bl cken zusammengefa t Jeder Block beginnt mit dem reservierten Wort BEGIN und endet mit dem Wort END Jeder Block verf gt ber einen eigenen Deklarations und Ausnahmebehandlungsteil PL SQL Bl cke k nnen geschachtelt werden Ein Block wird durch ein Label benannt Das Label steht vor dem Schl sselwort DECLARE des betreffenden Blocks oder vor BEGIN falls kein DECLARE vorliegt Der Exception Teil definiert einen Exception Handler der f r vordefinierte und benutzerdefinierte Exceptions ausgerufen werden kann Jeder Exception Handler besteht aus einer oder mehreren PL SQL Anweisungen Eine Exception ist eine Fehlerbehandlung die w hrend der Ausf hrung eines PL SQL Programms auftritt Eine Exception kann vordefiniert sein z B Ausl sen einer dup val_on_index Exception einer doppelten Zeile in einer Tabelle mit insert In PL SQL sind die h ufigsten Oracle Fehler die bei der Verwendung von SQL Anweisungen auftreten k nnen als Ausnahmen vordefiniert predefined exceptions Name der Ausnahme CURSOR_ALR
296. onzept 55 als Norm f r das Jahr 19996 97 geplant 56 Demuth Birgit und Frank Intergallaktische Kommunikation iX 3 1994 S 50 61 299 Datenbanken Trigger Ein Trigger teilt dem Datenbanksystem mit welche Aktionen bei der Ausf hrung bestimmter SQL Anweisungen ausgel st werden sollen CREATE TRIGGER trigger_name tim vent ON table_name referencing action time ist durch BEFORE oder AFTER bestimmt je nachdem ob der Trigger vor oder nach dem Eintreffen des event Ereignisses ausgel st werden soll Soch ein Ereignis kann ein INSERT DELETE oder UPDATE sein SQL Trigger k nnen einfache Ereignisse time event spezifizieren Echtzeitanwendungen fordern weitere komplexe Ereignisarten CREATE TRIGGER gt trigger_name time event ON tabellen name REFERENCING OLD Es old_correlation_ name AS L NEW IE new_correlation_name AS REFERENCING NEW Mer new_correlation_name AS OLD ze old_correlation_name AS WHEN search_condition statement gt m granularity Abb 2 3 6 Syntydiagramm zur Trigger Funktion Objektorientierung Ausgangspunkt ist das Dom nenkonzept von SQL 92 das die Definition einfacher Datentypen zul t SQL3 erweitert dieses Konzept um Datentypen die zusammengesetzte Werte darstellen 300 Datenbanken Abstrakter Datentyp ADT Der SQL3 Standard erlaubt die Definition und Ablage abstrakter Datentypen ADT in eine
297. ordnet hei t Modell f r diese Formel Eine Formel hei t erf llbar wenn es ein Modell f r diese Formel gibt andernfalls hei t sie unerf llbar Ein Formel hei t allgemeing ltig wenn jede Interpretation dieser Formel ein Modell ist Allgemein betrachtet ist folgende Vorgehensweise zur Bestimmung des Wahrheitsgehalts eines logischen Satzes angebracht Ausgangspunkt ist ein Konzept eines Ausschnitts der realen Welt und eine Menge von S tzen der Pr dikatenlogik Symbole der logischen S tze werden mit Objekten Beziehungen Funktionen der Konzeptualisierung in Verbindung gebracht d h logische Symbole bekommen eine Bedeutung Danach werden den logischen S tzen durch eine Feststellung Wahrheitswerte zugewiesen Sie sind genau dann wahr wenn sie das Konzept der realen Welt korrekt beschreiben Sonst sind die S tze falsch Klauseln sind Ausdr cke der Form b b m a a n wobei by Dm a41 an atomare Formeln sind m gt 0 n gt 0 Die aj sind die konjunktiv verkn pften Bedingungen der Klauseln die bj sind die Konklusionen Enth lt die Klausel Variable X4 X dann l t sich die Klausel so interpretieren F r alle X4 gilt b b a a Falls n 0 ist keine Bedingung ist spezifiziert dann ist die Interpretation F r alle X X gilt b bp Falls m 0 ergibt sich F r alle X4 X gilt a a ist falsch F r m n 0 erh lt man die leere Kl
298. ormalform ENF Eine Relation befindet sich in der ersten Normalform ENF wenn sie keine Wiederholungsgruppen und nur Felder die sich nicht weiter untergliedern lassen enth lt Zugelassene Operationen Ein Schl ssel der auch als Fremdschl ssel benutzt wird darf nicht isoliert modifiziert werden Nur ganze S tze k nnen gel scht oder eingef gt werden 2 Wie werden Entit tsattribute und Beziehungsattribute mit Hilfe von Relationen dargestellt Eine Relation ist eine zweidimensionale Tabelle Jede Tabellenspalte enth lt ausgew hlte Werte einer Dom ne jede Tabellenzeile enth lt Fakten einer Entit t Bsp Die Beziehungen zwischen Studenten repr sentiert durch den Entit ts schl ssel S mit den Auspr gungen S1 S2 s3 und Dozenten repr sentiert durch die Entit tsschl ssel D mit den Auspr gungen D1 D2 sollen betrachtet werden Jeder Student hat einen Namen NAME und ein Alter ALTER Entit tsatribute Jeder Dozent lehrt eine Programmiersprache Die Sprachkenntnisse der Studenten sind unterschiedlich Die Studenten werden au erdem noch von Dozenten beurteilt Beziehungsattribut Allen Attributen sind f r jede spezielle Auspr gung Werte aus Wertebereichen Dom nen zugeordnet Zur Beschreibung in einer relationalen Datenbank gibt es dann 157 Datenbanken 1 Relationen zum Festhalten von Entit tsbeziehungen NAME S NAME ALTER S WERT DOZIERT D FACH s1 Karl SJ 20 D
299. peicherung Codierung und L ngenangaben Feldtypen Zugriffspfade in der Datenbank Angaben zu Verarbeitungseinheiten Modul Programm Segment 27 Datenbanken Funktionen eines DD sind Erstellen von Berichten z B Benutzerreports welche Daten werden von wem benutzt Generierung von Datendefinitionen und Datenbank Beschreibungen Datenmodellierung aus Definitionen im DD Vorteile des DD bestehen auf vier Gebieten Dokumentation Datenbankdefinition Anwendungsentwicklung und Kontrolle Dokumentation Wird das DD richtig eingesetzt so wird es bspw die Definition des Felds Pers Nr nur einmal geben und diese Definition befindet sich im DD Im DD werden De finitionen nicht mehrfach gespeichert sondern entsprechend untereinander ver kn pft Datenbankdefinition Definition zu Datenbanken werden zweckm ig im DD angelegt und verwaltet Anwendungsentwicklung Das DD ist eine Hilfe festzustellen ob bestimmte Datendefinitionen bereits im DD vorhanden sind oder nicht Au erdem besteht die M glichkeit Satzstrukturen im neutralen Format des DD anzulegen Kontrolle Das DD ist eine Hilfe Definitionen eindeutig zu machen Dienstprogramme zur Auswertung eines DD erm glichen die Analyse der vorhandenen Datenobjekte z B die Bestimmung von Redun danzen Inkonsistenzen Cross Reference Listen Statistiken Benutzungsh ufigkeiten Werteverteilungen zur Optimierung der Speicher struktur Ein DD l t sich
300. pflegt von der 2 Regeln f r die Erstellung und Weiterentwicklung von Thesauri sind in DIN 1463 festgelegt 16 Datenbanken Federation Internationale de Dokumentation Diese Kataloge bilden die Hilfsorganisation f r Suchfragen Sie erlauben dem Dokumentationsbenutzer einen schnelleren Zugang zur gesuchten Information 1 2 2 2 Data Warehouse Ein Data Warehouse ist eine Datenbank mit historischen Daten die aus unter schiedlichen Datenquellen eines Unternehmens in eine seperate Datenbank kopiert werden Herk mmliche Datenbanken operative Systeme bearbeiten das Tagesgesch ft Informationen ber z B die Umsatzsituation Soll Ist Werte einer Budget Planung sind daraus leicht abzuleiten Informationen ber die Umsatzentwicklung der letzten 6 Jahre Soll Ist Entwicklung im Vergleich zum Vorjahr k nnen nicht direkt ermittelt werden Ein Data Warehouse stellt Datenmaterial bereit derartige komplexe Fragen zu beantworten Es enth lt Daten in unterschiedlicher Verdichtung die f r die Entscheidungsunterst tzung der Benutzer relevant sind Direktzugriff wird Endbenutzern durch einen Informationskatalog erm glicht der ber Inhalte Formate und Auswertungsm glichkeiten des Data Warehouse Auskunft gibt Die Auswertung dieser Datenbank durch eine gro e Anzahl von Benutzern stellt gro e Anforderungen Der Erfinder des Datenbankmodells f r relationale Datenbanken E F Codd hat folgende Merkmale genannt die Systeme f r das Online An
301. plementiert Allerdings k nnen Abfragen mit dem Allquantor immer mit Hilfe des negierten Existenzquantors formuliert werden Es gibt komplexe Unterabfragen die die Verwendung von EXISTS in negierter Form erforderlich machen Bsp W hle die Angestellten aus die die Qualifikation Systemplaner haben SELECT FROM ANGESTELLTE WHERE NOT EXISTS SELECT FROM JOB WHERE JOB TITEL lt gt Systemplaner AND JOB JOB_ID ANGESTELLTE JOB_ID Die vorliegende Abfrage zeigt eine Anwendung mit dem Allquantor der Pr dikatenlogik Standard SQL hat den Allquantor nicht implementiert Abfragen mit dem Allquantor k nnen mit Hilfe des negierten Existenzquantors formuliert werden z B W hle die Qualifikation so aus da keiner existiert der nicht die Qualifikation Systemplaner SY besitzt Aggregatfunktionen Aggregat Funktionen berechnen tupel bergreifend Summe Durchschnitt Aufz hlungen So z hlt die Funktion COUNT alle Tupel einer Tabelle einschl Duplikate und einschl aller Tupel die Nullwerte enthalten SELECT COUNT FROM ANGESTELLTE Das Symbol bestimmt da sich die Funktion COUNT auf die gesamte Zeile bezieht nicht auf ein einziges Feld SQL Aggregat Funktionen sind 49 Vgl Syntaxdiagramme Abb 1 4 2 101 Datenbanken COUNT liefert die Anzahl der ausgew hlten Zeilen SUM liefert di
302. prachelementen von vorwiegend deskriptiver Art Es ist nur das zu beschreiben was als Ergebnis gew nscht wird Also bspw bestimmte Mengen von S tzen multiple records at a time logic die das Beschreibungsmerkmal erf llen Deskriptive Sprachen hei en auch Was Sprachen Die allgemeinen Aufgaben dieser Sprachen bestehen in der Spezifizierung gew nschter Tabellen oder von Mengen aus vorhandenen Relationen Aus den Relationen der DB sucht man bestimmte in einer Abfrage spezifizierte Tupel auf und stellt sie f r eine Auswertung zusammen Die Tupel d rfen dabei aus verschiede nen Relationen stammen Benutzers tze der DB Man unterscheidet die Datenbankmanipulationssprachen DML relationaler Datenbanken in Pr dikatenkalk lsprachen Hier wird die Ergebnisrelation beschrieben durch Angabe der Eigenschaften Pr dikate die die Relationen haben m ssen Weiterhin unterscheidet man zwischen tupelorientierten und dom nenorientierten Sprachen je nachdem ob die Variablen die in den Formeln des Kalk ls vorkommen f r Tupel oder f r Komponenten der Tupel Werte aus dem Wertebereich stehen Algebraische Sprachen Hier wird die Ergebnisrelation beschrieben als Resultat von Mengenoperationen der Relationen der Datenbank Weitgehend st tzen sich die Datenmanipulationssprachen f r relationale Datenbanken auf das Pr dikatenkalk l ab Der erste Vertreter dieser Sprachen war die bereits von Codd vorgeschlagene Sprache ALPHA 2 Verbr
303. r Segmente mit den Datenfeldern Als Segment bezeichnet man die kleinste Zugriffseinheit das ist die kleinste Menge an Daten die durch DL 1 Operationen transportiert werden kann DL 1 ist die Sprache DDL DML von IMS Zur Beschreibung des hierarchischen Aufbaus einer physischen Datenbank dient die Data Base Description DBD Eine physische Datenbank ist die tats chlich gespeicherte Datenbank im Gegensatz zum Datenbankausschnitt program communication block PCB der dem Benutzer zur Verf gung gestellt wird Die Beschreibung des speziellen Datenbank Zugriffs f r ein Programm erfolgt im program specification block PSP Felder und Struktur eines Segments werden im Programm selbst beschrieben sie entsprechen den Konventionen der jeweiligen Wirtsprache Datenbanken 1 4 3 System R und SQL 1 4 3 1 System R Hierbei handelt es sich um den Prototyp relationaler Datenbanken Die Entwicklung erfolgte in den Forschungslabors der IBM Aktuell davon ist vor allem der Sprachentwurf SEQUEL SQL bzw die zweidimensionale Zugriffssprache Query by Example BE 5 Die beiden Sprachen sind grundlegend f r den Sprachentwurf in relationalen Datenbanken 1 4 3 2 Standard SQL Structured Query Language Im Februar 1987 wurde SQL zum offiziellen Standard des American National Standard Institute ANSI Im M rz 1987 wurde SQL die Datenbank Zugriffssprache im Rahmen der System Application Architecture SAA von IBM Inzwischen wurde
304. r nden mit em ANSI Standard ist die Deklaration extern char n ohne L ngenangabe zugelassen z B EXEC SQL BEGIN DECLARE SECTION extern char nachricht EXEC SQL END DECLARE SECTION 2 Der Anweisung INCLUDE SQLCA zur Referenz auf den SQL Kommunikationsbereich 3 der Anweisung CONNECT zur Verbindung mit der Oracle Datenbank EXEC SQL CONNECT userid IDENTIFIED BY passwort useridund passwort sind host variables vom Typ VARCHAR 269 Datenbanken Oracle kennt folgende interne kompatible Datentypen Interner Typ C Type Beschreibung CHARO9 VARCHAR X char n n Bytes umfassendes Zeichenfeld VARCHAR n n Bytes umfassendes Zeichenfeld variabler L nge int integer short small integer long large integer float floating point number double double precission floating point number NUMBER P S 8 short small integer long large integer float floeting point number double double precision floating point number char einzelnen Zeichen char n n Bytes umfassendes Zeichenfeld VARCHARIn n Bytes umfassendes Zeichenfeld variabler L nge VARCHARIn n Bytes umfassendes Zeichenfeld variabler L nge RAW X unsigned n Bytes umfassendes vorzeichenloses a7 charf n Zeichenfeld VARCHAR n n Bytes umfassendes Zeichenfeld variabler L nge LONG RAW unsigned n Bytes umfassendes vorzeichenloses Sa charf n Zeichenfeld VARCHAR n n Bytes u
305. r Kommunikation der einzelnen Datenbankverwal tungssysteme 1 2 3 5 Data Dictionary Directory System DD D System Es enth lt Informationen ber Definition Struktur und Benutzung von Daten Das directory liefert dem eingesetzten DB System Informationen ber Plazierung und Strukturen innerhalb der Benutzerdatenbank DB System orientiert Ein data dictionary dagegen gibt dem Anwender Information ber Daten ihre Herkunft wo sie genutzt werden und wann sie ge ndert wurden zentralisierte Ablage von Informationen ber Datendefinitionen Die meisten in einer Installation ben tigten Daten befinden sich irgendwo in Bibliotheken Dateien Verzeichnissen oder Listen In der Regel sind diese Informationen jedoch nicht hinreichend miteinander verbunden Ein data dictionary DD ist ein Hilfsmittel bei dem alle Definitionen in einer Gruppe von Datenbanken gespeichert werden um leichter Fragen beantworten zu k nnen Auswertungen durchf hren und Ausgaben erzeugen zu k nnen Ein DD enth lt Angaben ber Definition Herkunft aktuelle Benutzung und nderung Struktur und Benutzungsvorschriften der Daten z B Namen zul ssige Wertebereiche logische Beziehungen Integrit ts und Zugriffsm glichkeiten Namen und Eigenschaften von Anwenderprogrammen mit Angaben ber Speicherung Codierung und Auffinden der Daten Adre und L ngenangaben Feldtypen Zugriffspfade und physische Plazierung in der Datenbank Angaben ber S
306. r SQL Datenbank Die Repr sentation wird durch Datenelemente Attribute festgelegt das Verhlten bestimmen Funktionselemente Konstruktoren Destruktoren Funktionen f r Vergleiche und Typanpassungen Wie in C werden Elemente zur allgemeinen Verwendung PUBLIC oder f r die Definition von Subtypen freigegeben PROTECTED oder f r den Gebrauch innerhalb der Typdefinition vorbehalten PRIVATE gt CREATE TYPE gt adt_name WITH OLD VISIBLE WITHOUT OID UNDER adt list UPDATABLE CONSTANT attribut_definition gt gt function_declaration gt operator_name equals_clause less than clause cast_clause Abb 2 3 7 Syntaxdiagramm zur Definition Abstrakter Datentyp Ein ADT wird bei der Tabellendefinition als Basistyp verwendet Neben gespeicherten Attributen PUBLIC k nnen auch virtuelle Attribute vorkommen Funktionen Methoden lassen sich im ADT unterteilen in Konstruktoren CREATE CONSTRUCTOR FUNCTION zum Erzeugen von Instanzen eines ADT Destruktoren CREATE DESTRUCTOR FUNCTION zum L schen von Instanzen Manipulationsfunktionen CREATE ACTOR FUNCTION zum Bereitstellen eines Werts oder zur nderung der Datenbank Ohne Angaben von DESTRUCTOR und CONSTRUCTOR Funktionen erzeugt das System Standardfunktionen Spezielle Methoden CAST Funktion spezifizieren die Abbildung eines ADT auf andere Datentypen 301 Datenbanken Jedes ADT Attribut bzw jede Methode besit
307. r Sicherung der semantischen und Entit ts Integrit t ist f r die Personal Datenbank folgendes Schema vorgesehen create table abteil abt_id varchar2 2 not null constraint PKab_id primary key bezeichnung varchar2 40 create table beruf job_id varchar2 2 not null constraint PBjob_id primary key titel varchar2 30 gehalt number 8 2 create table angest ang_id varchar2 3 not null constraint PKan_id primary key name varchar2 10 gebjahr date abt_id varchar2 2 constraint FKabt_id foreign key abt_id references abteil abt_id job_id varchar2 2 constraint FKjob_idl foreign key job_id references beruf job_id create table quali ang_id varchar2 3 constraint FKang_id foreign key ang_id references angest ang_id 255 Datenbanken job_id varchar2 2 constraint FKjob_id2 foreign key job_id references beruf job_id constraint PKquali primary key ang_id job_id Verwaltung von Constraints Mit dem ALTER TABLE Befehl k nnen Constraints hinzugef gt ADD gel scht DROP oder aktiviert ENABLE bzw deaktiviert DISABLE werden alter table tabelle add spalte datentyp default_wert spalten_constraint alter table tabelle add tabellen_constraint add table tabelle modify spalte datentyp default_wert spalten_constraint drop table tabelle cascade_constraints 3 T
308. r Tabelle mit Studiendaten Der vorliegende Zerlegungsproze zeigt eine geeignete Auswahl von Spalten der Ausgangstabelle Normalisieren hei t demnach auch Zerlegen von Relationenschemata in kleinere bersichtlichere Tabellen Es sind nur sinnvolle Zerlegungen Kriterium funktionale Abh ngigkeiten zugelassen d h Die Ausgangsrelation mu sich ohne Informationsverlust durch Zusammenf gen von Teilrelationen der Zerlegung rekonstruieren lassen Verbundtreue Zerlegungen sind nur dann sinnvoll wenn sie verlustfrei sind Beim Zusammensetzen der Teilrelationen m ssen wieder genau die Tupel der Ausgangsrelation erzeugt werden Es sollen aber m glichst wenige Tabellen erzeugt werden die den Forderungen gen gen Minimalit t Eine Menge funktionaler Abh ngigkeiten beschreibt die Integrit tsbedingungen ber dem Relationenschema Sie wird bei der Zerlegung des Relationenschemas mit folgender Einschr nkung auf die Schemata der Tabellen vererbt ber einem Teilschema d rfen nur Abh ngigkeiten definiert sein deren Attribute vollst ndig im Teilschema enthalten sind Zum anderen sollte die Menge der Abh ngigkeiten die ber dem Schema g ltig sind zusammengenommen quivalent zu der Menge ber dem Ausgangsschema sein abh ngigkeitsbewahrende Zerlegung Ein anderer Vorteil der Zerlegung gr erer Tabellen in kleinere Tabellen ist die leichtere Definition von Sichten Views Ein View ist eine Relation die nicht explizit
309. rchitektur des Netware SQL Btrieve ist die Zugriffsmethode von Netware SQL Geeignete client requester Programme kommunizieren ber SPX Sequenced Paket Exchange Protocoll mit Netware SQL Auch UNIX Server sind auch in PC Netzen weit verbreitet F r alle UNIX Abk mmlinge gibt es NFS Network File System 6 Es basiert auf dem TCP IP Netzwerkprotokoll Heterogene Netzwerke bieten in diesem Zusammenhang keine grunds tzlichen Probleme Wegen der in UNIX Betriebssystemen enthaltenen unbegrenzten TCP IP und NFS Lizens kann das Netzwerk beliebig wachsen 3 Datenbank Server Datenanforderungen werden bereits an der Schnittstelle zum DB System z B in Form von SQL Anweisungen abgefangen Das Datenbanksystem mit allen untergeordneten Schichten befindet sich auf dem Server 76 eine Entwicklung von Sun Microsystems es gibt auch ein PC NFS von Sun 130 Datenbanken Pr sentation Logik Kommunikationssystem Datenbank Datei Disk Client Server Abb 1 5 8 Datenbank Server Bei der Datenverarbeitung im Netzwerk werden Programme die lokal im Netzwerk zur Verf gung stehen in den Hauptspeicher des Client geladen und ausgef hrt Erhalten diese Programme Datenbankzugriffe dann sorgt eine spezielle Softwareschicht die Middleware daf r da alle Zugriffe auf einen Datenbankserver umgelenkt werden Im Rahmen der 3 Tier Architektur wird das Client Server Modell in drei gro e Bl cke unterteilt Client Mid
310. reibungsmerkmale k nnen gezeigt werden SQL gt HELP subquery 23 Falls das Semikolon vergessen wird kann man mit RUN die Ausf hrung veranlassen 221 Datenbanken ORACLE speichert den letzten Befehl immer in einem tempor ren Speicher dem SQL Befehlspuffer SQL Buffer Sollen Kommandos dauerhaft gesichert werden so kann das mit dem SQL Plus Befehl SAVE Dateiname CREATE REPLACE APPEND geschehen Der gegenw rtige Inhalt des Puffers wird mit diesem Befehl ins aktuelle Verzeichnis geschrieben Der R cktransfer des Befehls aus der Datei in den Puffer erfolgt ber GET Dateiname LIST NOLIST Er kann danach mit RUN ausgef hrt werden Falls der SQL Befehl unmittelbar aus einer Datei ausgef hrt werden soll dann kann das ber das Kommando START Dateiname erfolgen Ein weiters Speicherkommandb ist SPOOL Dateiname Mit Hilfe dieses Befehls k nnen Abfrage Ergebnisse im Standard Text Format dauerhaft gesichert werden Das Kommando wirkt als Schalter Mit SPOOL OFF wird die Aufzeichnung der Ergebnisse beendet Der SQL Plus Befehl HELP gibt w hrend der Bearbeitung Informationen und Erkl rungen auf dem Bildschirm an 2 3 2 4 SQL Anweisungen in Oracle bersicht SQL ist die umfassende Kommandosprache des Datenbanksystems Oracle Oracle SQL umfa t Standard SQL28 SQL Anweisungen k nnen eingeteilt werden 1 Abfragen Es handelt sich hierbei um Kommandos zur Ermittlung von Daten aus den Da
311. reihenfolge dieser Teilfragen sequentiell parallel Bestimmen der Knoten an die Daten geschickt werden sollen Auswahl lokaler Zufriffspfade Optimierung Hier ist festzulegen wie lokale Bearbeitung und bertragung von Teilergebnissen aufeinander folgen bzw sich abwechseln sollen Zielsetzung einer Anfrage bersetzung ist es zu einer Anfrage einen Ausf hrungsplan festzulegen der eine m glichst effiziente Bearbeitung des Auftrags erm glicht Diese Aufgabe ist bereits f r zentralisierte DBS komplex da im allg eine gro e Anzahl alternativer Ausf hrungsstrategien besteht Noch komplexer ist die Bestimmung eines optimalen Ausf hrungsplans im verteilten Fall Synchronisation Falls mehrere Transaktionen Prozese in DBS gleichzeitig diesselben Daten benutzen werden Synchronisationsma namen erforderlich Die parallele nebenl ufige concurrent Ausf hrung mu dasselbe Ergebnis erzielen wie irgendeine sequentielle Reihenfolge In einem VDBS gibt es dar ber hinaus zus tzliche Probleme bedingt bspw durch die Existenz mehrfacher Kopien m gliche Beteiligung mehrerer Rechner an der Bearbeitung einer Transaktion Verfahren zur Fehlerbehandlung crash recovery Aufgabe der Verfahren ist es bei St rungen die Datenbankkonsistenz zu erhalten bzw wieder herzustellen Die Serialisierbarkeit aller benachbarten Transaktionen zu gew hrleisten die Auswirkungen auf die direkt betroffenen Transaktionen zu beschr nke
312. rell existiert f r jeden m glichen SQL Fehler Exception eine eigene Fehler nummer und meldung Die standardisierte Fehlernumerierung erfolgt blicherweise durch eine Variable SQLSTATE Im Fall des JDBC Treibers von Oracle scheint das RDBMS diesen Standard jedoch nicht zu unterst tzen die entsprechende Funktion f r das Auslesen des SQLSTATES existiert zwar im SQL Package von Java wird aber nicht verwendet Oracle bietet produktspezifisch eine Ausgabe des sogenannten SQLCODE Leider wird dadurch die Portabilit t eines JDBC Clients der unter Oracle entwickelt wurde vermindert Die entsprechende Funktion zur Abfrage des SQLCODE ist eine Methode von SQLException und lautet getErrorCode W hrend SQLSTATE gew hnlich durch eine CHAR Repr sentation der Fehlernummer dargestellt wird liefert der SQLCODE einen Integer Wert Klassen und Interfaces der JDBC Schnittstelle JDBC ist als java sq1 Paket implementiert Dieses Paket enth lt alle JDBC Klassen und Methoden Klassen im java sq1 Paket sind java sql Driver java sql DriverManager java sql PropertyInfo java sql Connection java sql Statement java sql PrepareStatement java sql CallableStatement java sql ResultSet java sql SQOLException java sql SQOLWarning java sql Database MetaData java sql ResultSetMetaData java sql Date java sql Time java sql Timestamp java sql Numeric java sql Types java sql DataTruncation Die Klassen DriverManager undDriver und verw
313. rigger Sie sind eine spezielle Form von PL SQL Trigger dienen ebenso wie Constraints der Integrit tssicherung Constraints sind allerdings viel einfacher zu programmieren Es gibt aber einige F lle in denen sich Trigger Programmierung nicht vermeiden l t Komplexe Regeln m ssen ber Trigger realisiert werden Constraints werden bei vielen INSERT UPDATE DELETE Anweisungen berpr ft Trigger k nnen bestimmten Ereignissen und Auswertungszeitpunkten zugeordnet werden Erstellen eines Trigger CREATE OR REPLACE TRIGGER trigger name BEFORE AFTER triggering event ON tabellen name FOR EACH ROW WHEN bedingung PL SOL Block trigger name Name des zu erstellenden Trigger triggering event INSERT UPDATE DELETE tabellen name Name der dem Trigger zugeordneten Tabelle FOR EACH ROW ist eine optionale Klausel Bedingung optonale Bedingung die falls TRUE den Trigger ausl st PL SOL Block wird ausgef hrt wenn der Trigger ausgel st wird Trigger Rumpf Trigger bestehen aus folgenden Elementen Trigger Name CREATE REPLACE TRIGGER Trigger_Name Trigger Zeitpunkt BEFORE AFTER Ein befehlsorientierter BEFORE UPDATE Trigger feuert genau einmal vor der Ausf hrung des Befehls Analog dazu feuert ein befehlsorientierter AFTER Trigger genau einmal nach der Ausf hrung des Befehls Trigger Ereignis INSERT UPDATE OF Spaltel Spalte2 DELETE ON
314. rl lich Datenneutralit t Es werden nur solche Anwendungen unterst tzt die zuerst den Rechnungskopf und dann den Rechnungsrumpf lesen Datenunabh ngigkeit und Datenneutralit t sind ber ein netzwerkorientiertes DB Modell nicht erreichbar Sind solche Eigenschaften mit dem relationalen DB Modell m glich 26 vgl Wedekind Hartmut Relationale Datenbanksysteme Informatik Spektrum Nr 5 978 Seiten 5 16 65 Datenbanken Da das Rechnungsformular die Struktur einer komplexen geschachtelten Tabelle aufweist das relationale DB Modell nur einfache Tabellen kennt ist hier ein Nor malisierungsproze durchzuf hren Normalisieren bedeutet Darstellung des logischen Schemas einer relationalen Datenbank in Form einfacher geschachtelter Tabellen Aus dem vorliegenden hierarchischen Schema werden 2 Relationen RECH KOPF RECH NR KUNDEN NR DATUM NAME ADRESSE SUMME RECH RUMPF RECH NR ARTIKEL NR BEZ PREIS MENGE BETRAG Das Schema f r die relationale Datenbank zeigt die gew nschte Unabh ngigkeit Eine Rumpfzeile kann angesprochen werden ohne zum Kopf zugreifen zu m ssen Voraussetzung daf r ist Es existiert ein Prim rschl ssel im Rechnungskopf RECH NR 1 3 7 Das Datenbankmodell f r objektorientierte Datenbanken Grundlagen Ein objektorientiertes Datenbanksystem ist auch nichts Anderes als ein Datenbanksystem mit den blichen Leistungen Datenintegration Daten unabh ngigkeit Unterst tzung vom Mehrben
315. rnehmens Beziehungen 5 Ein Angestellter ist Mitarbeiter an bzw ist Projektleiter von bestimmten Projekten 7 Ein Angestellter geh rt zu einer bestimmten Abteilung Gleichartige Beziehungen k nnen zu einer Beziehungsmenge bzw zu einem Be ziehungstyp zusammengefa t werden 4 Klassifizierung von Beziehungen Es k nnen identifizierende oder beschreibende Attribute unterschieden werden Ist E bzw E die Menge der identifizierenden Attributwerte und W die Menge der be schreibenden Attributwerte dann existieren folgende Abbildungsm glichkeiten 1 Beziehungen zwischen identifizierenden und beschreibenden Attributwerten E W 2 Beziehungen zwischen identifizierenden Attributwerten verschiedener Enti t tsmengen E E Bsp Produktionsdaten eines Unternehmens 6 Lieferanten Nr Teile Nr Ein Vorkommen des Lieferanten L1 identifiziert bspw eine bestimmte Anzahl 0 inbegriffen von Teilen T1 T2 T3 Ein Vorkommen T2 identifiziert bspw eine bestimmte Anzahl von Lieferanten L1 L3 32 Datenbanken 3 Beziehungen zwischen identifizierenden Attributwerten der gleichen Menge E E Bsp Produktionsdaten eines Unternehmens 3 Unterstellungsverh ltnis Es zeigt welche Angestellte Vorgesetzte bzw Untergebene sind 4 St ckliste Sie zeigt welche Unterteile Komponenten montiert werden um ein Oberteil zu erhalten 4 Verwendungsnachweis Er zeigt in welche Oberteile Baugruppen eine Komponente eingeht
316. ro e Rechtecke mit kleinem Rechteck links oben und Abh ngigkeiten den gestrichelten Pfeilen Eine Abh ngigkeit gibt an Bei einer nderung des Packages an der Pfeilspitze mu das Package am anderen Ende der gestrichelten Linie evtl ge ndert und neu bersetz werden Packages k nnen weitere Packages enthalten 82 Datenbanken Implementierungsdiagramm Implementierungsdiagramme zeigen Aspekte der Implementierung Diese umfassen die Codestruktur und die Struktur des Systems zur Ausf hrungszeit Es gibt zwei Formen Komponentendiagramm Einsatzdiagramm Deploymentdiagramm 1 Komponentendiagramm Das Komponentendiagramm zegt die Abh ngigkeit unter den Softwarekomponenten d h die Abh ngigkeiten zwischen Quellcode Bin rcodekomponenten und ausf hrbaren Programmen Einige dieser Komponenten existieren nur w hrend des bersetzungsvorgangs einige nur w hrend des Linkens andere zur Ausf hrungszeit und wieder andere die ganze Zeit ber Im Komponentendiagramm haben die Darstellungen Typencharakter Applikation Abb Beipiel f r ein Komponentendiagramm Die Komponenten werden als drei ineinander verschachtelte Rechtecke gezeichnet ihre Schnittstellen sind Kreise am Ende Das Diagramm enth lt ferner Abh ngigkeiten in Form von gestrichelten Pfeilen 83 Datenbanken 2 Einsatzdiagramm Ein Einsatzdiagramm deployment diagram zeigt die Konfiguration der im Proze befindlichen Knoten zur Laufzeit
317. rte Verarbeitungsformen n tig d h die Darstellung des Textes mu auf Formate zur ckgef hrt werden Ist das m glich dann k nnen die Zugriffsftormen formatierter Datenbanken angewendet werden Gew hnlich dient dazu eine Liste von ausgesuchten Schl sselworten je Dokument Die Schl sselw rter beschreiben den Inhalt des Dokuments und erm glichen das Dokument von anderen Dokumenten zu unterscheiden So ergibt die Auswahl der Schl sselw rter eine Indexierung zu den Dokumenten Sie kann personell oder maschinell d h automatisch mit Hilfe des Rechners erfolgen 1 2 3 3 Daten und Speicherstrukturen 21 Datenbanken Datenstrukturen 1 Verkettete Systeme Verbindungen zwischen Datens tzen werden realisiert durch Aufnahme von Adre verweisen in den jeweiligen Datensatz spezielle sequentielle Anordnung von Datens tzen im Speicher Satzadressen Pers Nr Kostenstelle Gehalt Kettungsfelder Kostenstelle Gehalt SONDAN Abb 1 2 3 Adre verkettung 2 Invertierte Systeme Verbindungen werden ber spezielle inverted files Indexe Indextafel W rter b cher Adressb cher aufgebaut Invertierte Systeme sind weitgehend unabh ngig von Datenstruktur und Zugriffspfad da ber die inverted files erst im Bedarfsfall die Beziehungen aufgebaut werden 1 o lo 10 2 lo 0 ne ie a m lo 10 5 m lo 00 1 6 mo To MM E a lo Joe lo 10 22 Datenbanken Prim rindextabelle Sekund ri
318. s Felder die mit VARCHAR definiert sind nehmen nur soviel Speicherplatz in Anspruch wie die Feldinhalte tats chlich lang sind VARCHARZ2 L nge unterscheidet sich gegenw rtig nicht von VARCHAR Da nderungen bzgl der Vergleichlogik mit CHAR Feldern f r den Typ VARCHAR geplant sind sollte der Typ VARCHAR2 benutzt werden 28 z hlt aber nicht zum SQL Standard Es besteht die Gefahr falscher Interpretationen dieses Typs auf anderen Datenbanksystemen 29 40 Stellen sind im Hauptspeicher besetzt gleichg ltig ob die 40 Stellen ben tigt werden oder nicht 225 Datenbanken DATE umfa t Datumwerte in der Form DD MON YY2 Standardl nge 7 die von 4712 v Chr bis 4712 nach Chr datiert werden k nnen Ein Datum besteht aus Tagesdatum und Tageszeit und wird in 7 Bytes gespeichert Jahrhundert 19 Im Default Format wird ein Datum folgenderma en beschrieben DD zweistellige Angabe der Monatstage MON die ersten 3 Buchstaben des englischen Namens geben den Monat an YY Die Jahreszahl besteht wieder aus 3 Stellen Die Datumsarithmetik erlaubt folgende Operationen Datum ganzzahlige_Anzahl_Tage neues_Datum Datum ganzzahlige_Anzahl_Tage neues Datum Datum Datum Anzahl_Tage_dazwischen ORACLE SQL kennt einen speziellen Bezeichner SYSDATE der das jeweilige Systemdatum liefert Neben den drei Basis Datentypen kann eine Spalte noch in Spezialformaten definiert sein LONG umfa t a
319. s ER Diagramm aus der Fertigungsvorbereitung Arbeitsplan wird_eingesetzt 0 Arbeitsplatz Abb 1 3 15 ER Diagramm aus der Fertigungsvorbereitung 24 bedeutet beliebig viele 47 Datenbanken Zusammenfassung Arbeitsschritte beim Ausarbeiten von Datenstrukturen in einem ER Diagramm 1 Ermittle relevante Entit ten f r den betrachteten Datenbereich 2 Feststellen der Entit tsmengen Nur gleichartige Entit ten k nnen zur Entit tsmenge zusammengefa t werden Ermitteln der Attribute f r jede Entit tsmenge evtl mit Korrekturen des 2 Arbeitsschrittes Definition der Beziehungstypen von Entit tsmengen zwischen denen Beziehungen bestehen Ermitteln der H ufigkeiten der Beziehungen zwischen den Entit tsmengen 3 4 5 6 Darstellung der Datenstruktur in einem ER Diagramm nn Aufgabe Entwerfe das ER Diagramm das Schema und die relationale Datenbank f r die Personalverwaltung in einem Unternehmen a Entwurf des ER Diagramms Die Analyse zur Ermittlung der Struktur einer relationale Datenbank hat ergeben 1 Ermitteln relvanter Entit ten f r den betrachteten Datenbereich z B Der Angestellte a1 mit dem Namen Fritz ist am 2 1 1950 geboren und arbeitet in der Abteilung OD Organisation und Datenverarbeitung als Systemplaner SY Er besitzt zus tzliche Qualifikationen f r Operateur OP Programmierer PR T tigkeiten Ein Systemplaner verdient 6000 00 DM
320. s benutzerdefinierten Verbunddatentyps declare type abteilungsSatztyp is record abteilungsID abteilung abt_id TYPE abteilungsBEZ abteilung bezeichnung TYPE abteilungsSatz abteilungsSatztyp begin abteilungsSatz abteilungsID CL abteilungsSatz abteilungsBEZ Controlling insert into abteilung abt_id bezeichnung values abteilungsSatz abteilungsID abteilungsSatz abteilungsBE2 end rowtype definiert einen zusammengesetzten Datentyp der quivalent zu einer Zeile der angegebenen Tabelle ist Die ausammengesetzte Variable besteht aus dem Spalten Namen und den Datentypen der referenzierten Tabelle variablen name tabellen name ROWTYPE Bsp Verwendung von rowtype declare angestelltenSatz angestellte ROWTYPE begin abms_output enable select into angestelltenSatz from angestellte where ang_id Al abms_output put_line Angestellten Identifikation I angestelltenSatz ang_id dbms_output put_line Angestellten Name angestelltenSatz name dbms_output put_line Angestellten Geburtsdatum angestelltenSatz gebdatum end 243 Datenbanken Komplexe Datentypen RECORD entspricht einer Tabellenzeile TABLE Eine PL SQL Tabelle ist eine Sammlung von Elementen desselben Typs die durch eine Indexnummer geordnet ist G ltigkeitsbereich f r Variable Ein Variable ist g ltig in dem Block und allen in diesem Block geschachtelten Bl ck
321. scht aus der angebenen tabelle oder Sicht das Tupel das im Cursor gerade aktuell angezeigt wird UPDATE Tabellenname Viewname SET Spalte NeuerWert WHERE CURRENT OF Cursorname Diese Anweisung aktualisiert in der Tabelle oder View den Spaltenwert desjenigen Tupels das im Cursor gerade aktiv ist Abfrage von SQL Fehlern Die Beispielanwendung verwendet anstelle von SQLSTATE den oraclespezifischen SQLCODE der aus der sqlca ausgelesen wird o Erfolgreiche Beendigung Daten nicht gefunden Abb SOLCODE Fehlercode Die Bearbeitung dieser numersichen werte ist wesentlich einfacher als die Verarbeitung von SQLSTATE der als Zeichenkette zur ckgeliefert wird 0 Erfogreiche Beendigung 08 Verbindungsaufbau Fehler___ Syntax oder Zugriffsfehler Check Bedingung ist verletzt Abb Fehlerwerte von SQLSTATE 272 Datenbanken In Abh ngigkeit von der Anwendung kann auf einen Fehler mit EXEC SQL COMMIT WORK oder EXEC SQL ROLLBACK WORK reagiert werden Die Klausel T WHENEVER SQLERROR NOT FOUND CONTINUE GOTO Label wird immer dann g ltig wenn ein SQL Fehler jeglicher Art registriert wird Ein C Programm mit Embedded SQL
322. sel kind _ von juergen liesel fraulliesel frautliesel leere Klausel Abb Beweisbaum zur Zielvorgabe mutter_von liesel juergen Die leere Klausel ist immer falsch die Anfrage somit wahr Der p dikatenlogische Resolutionsbeweis zu der folgenden Anfrage vater_von X Y kann ebenfalls direkt im Beweisbaum gezeigt werden 191 Datenbanken vater_von X Y kind _von Y X mann X vater_von X Y kind _von Y X mann X kind _ von juergen christian Mit der Substtution Y juergen X christian kann ein Abgleich erfolgen a mann christian mann christian a leere Klause Abb Beweisbaum zur Zielvorgabe vater_von X Y Der Beweis konnte nur durch die Zuordnung Y juergen bzw X christian gelingen Man spricht von Instanziierung der Variablen Prolog gibt an durch welche Bin dung der Variablen der Beweis gelungen ist X christian Y juergen Prolog durchsucht Fakten und Regeln immer von links nach rechts Da links das Ergebnis und rechts die Konjunktion von Ursachen steht liegt eine r ckw rtsver kettende Kontrollstruktur vor Aufgabe Zu welchem Ergebnis f hrt die Anfrage p X an das folgende Prolog Programm p X q X 1 Regel CROO E PR 2 Regel q a Fakt Die Anfrage f hrt zu keinem Ergebnis sondern zu einer Endlosschleife Begr ndung Um p X zu beweisen ist q X zu beweisen 1 Regel q X k nnte mit X a bewiesen werden
323. sicherungen genannt UML definiert keine strikte Syntax f r die Beschreibung von Bedingungen Sie m ssen nur in geschweifte Klammern gesetzt werden Idealerweise sollten regeln als Zusicherungen engl assertions in der Programmiersprache implementiert werden k nnen Bsp Eigenschaften eines Kreises Zu den Eigenschaften eines Kreises der auf einem Bildschirm dargestellt werden soll geh ren Attribute Radius des Kreises Position des Kreises auf dem Bildschirm Operationen Anzeigen und Entfernen des Kreises Verschieben des Kreises Ver ndern des Radius des Kreises Zusicherungen Der Radius darf nicht negativ sein und nicht Null sein radius gt O Attribute werden mindestens mit ihrem Namen aufgef hrt und k nnen zus tzliche Angaben zu ihrem Typ d h ihrer Klasse einen Initialwert und evtl Eigenschaftswerte und Zusicherungen enthalten Attribute bilden den Datenbestand einer Klasse Operationen Methoden werden mindestens mit ihrem Namen zus tzlich durch ihre m glichen Parameter deren Klasse und Initialwerte sowie evtl Eigenschaftswerte und Zusicherungen notiert Methoden sind die aus anderen Sprachen bekannten Funktionen 73 Datenbanken attribut1 attribut2 operation1 operation2 Bsp Automatische Geldausgabe ID Geraet Geraete Nriint BOOL indentifikation int id Tressor Kartenleser Bestand Geld 1000000 eingabeCode int code geldAuszahlen Geld g User
324. solution ver sucht herzuleiten da die Anfrage mit den Formeln des Programms im Wider spruch steht wenn f r X bestimmte Werte eingesetzt werden Bsp Gegeben ist das folgende Prolog Programm kind_von juergen christian 1 Fakt kind_von juergen liesel FR Ze Fakt mann christian 3 Fakt mann juergen 4 Fakt frau liesel 5 Fakt mutter_von X Y 1 Regel kind_von Y X frau X vater_von X Y 2 Regel kind_von Y X mann X 9 vgl Resolutionsverfahren 2 5 1 189 Datenbanken An dieses Prolog Programm wird die Anfrage mutter_von liesel juergen gestellt Die Frage ist durch den Kopf der ersten Regel ersetzbar Prolog durchsucht die Wissensbasis vom Anfang bis zum Ende nach einem passendem Fakt bzw einem passenden Regelkopf Die 1 Regel ist an die vorliegende Regel angepa t wenn X durch liesel X liesel Y durch juergen Y juergen ersetzt wird Diesen Vorgang nennt man in Prolog Unifikation Unifikation hei t Pr fen ob Literale zusammenpassen praedikat_1 praedikat_2 Abb Unifikation zweier Pr dikate Etwas vereinfacht besteht Unifikation aus 3 Pr fungen 1 Passen die Pr dikate praedikat_1 praedikat_2 2 Stimmen die Anzahl der Terme berein 3 Passen Terme paarweise Wenn eine Anfrage beantwortet werden soll wird in der Wissensbasis Prolog Pro gramm nach einem Faktum bzw dem Kopf einer Regel gesucht das bzw der m
325. sowie der auf ihnen existierenden Komponenten Knoten Quader stellen eine Hardware oder Verarbeitungseinheit dar Unter den Konten existieren Verbindungen Dabei handelt es sich um die physikalischen Kommunikationspfade die als Linien gezeichnet werden Frankfurt Geldautomat Zentrale Konsole Mainframe Bildschirm M nchen Geldautomat Abb Deployment Diagramm Datenbanken 1 3 8 2 Schema Modellierung Die Klassendiagramme der UML bilden eine Obermenge von Entity Relationship Diagrammen Klassendiagramme lassen auch das Modellieren von Verhaltensweisen zu In einer physischen Datenbank werden diese logische Operationen im allg in Trigger oder gespeicherte Prozeduren umgewandelt 1 Modellierung eines logischen Datenbankschemas Das Modellieren eines logischen Datenbankschemas umfa t die Identifikation von Klassen deren Zustand die Lebensdauer ihrer Anwendungen berdauern mu das Erstellen eines Klassendiagramms das all diese Klassen enth lt und das Markieren dieser Klassen mit den Standardeigenschaftswert persistent Expansion der strukturellen Eigenschaften dieser Klassen Spezifikation der Details zu den Attributen Konzentration auf Assoziationen und Kardinalit ten Beachtung typischer Muster z B rekursive Assoziationen Eins zu eins Assoziationen n re Assoziationen Betrachtung der Vehaltensweisen dieser Klassen z B durch Expansion von Operationen die f r Datenzugriff und Integrit t
326. sowie die Namen die Richtung und die Multiplizit t der Assoziation angeben Abh ngigkeiten Manchmal nutzt eine Klasse eine andere Das nennt man Abh ngigkeit dependency Die UML Notation ist eine gestrichelte Linie mit einem Pfeil z B zeigeMaske Abb Eine Aggregation wird durch eine Raute dargestellt z B zwischen Kartenleser und Geldautomat Sie gibt an Die Klasse Kartenleser ist in der Klasse Geldautomat enthalten Ist Teil von Beziehung Die Komposition wird durch eine ausgef llte Raute dargestellt und beschreibt ein physikalisches Enthaltensein Die Vererbung Spezialisierung bzw Generalisierung stellt eine Verallgemeinerung von Eigenschaften dar Eine Generalisierung generalization ist eine Beziehung zwischen dem Allgemeinen und dem Speziellen in der Objekte des speziellen Typs der Subklasse durch Elemente des allgemeinen Typs der Oberklassse ersetzt werden k nnen Grafisch wird eine Generalisierung als durchgezogene Linle mit einer unausgef llten auf die Oberklasse zeigenden Pfeilspitze wiedergegeben z B 40 Eine Navigation mit Pfeil kann als Zeiger in einer Programmiersprache betrachtet werden 41 vgl Abb Klassendiagramm automatische Geldausgabe 76 Datenbanken Supertyp ZN Subtyp 1 Subtyp 2 Schnittstellen und abstrakte Klassen Eine Schnittstelle ist eine Ansammlung von Operationen die eine Klasse ausf hrt Eine Klasse h ngt mit der
327. ssender Stelligkeit gefunden so tritt der Proze der Beantwortung einer Frage in die Phase der Unifikation ein Es wird versucht ein Ziel mit einer Klausel zur Deckung zu bringen matching ent spricht grob gesehen der Parameter bergabe in Programmen prozeduraler Programmiersprachen Backtracking Das wiederholte Zur ckgehen in die Datenbasis ist die wichtigste Kontrollstrategie von Prolog Sie hei t Backtracking Dabei werdem bestehende Variablen Instanziierungen aufgel st und die Suche beim letzten markierten Punkt Choicepoint der Wissensbasis fortgef hrt Das Backtracking innerhalb eines Prolog Programms l t sich mit dem sog Vierport Modell eines Pr dikats veranschaulichen 195 Datenbanken CALL EXIT FAIL REDO Abb Vierport Modell eines Pr dikats Das Backtracking steuert den Informationsflu zwischen den Aus und Eing ngen der Klauseln CALL Pr dikat 1 Pr dikat 2 Pr dikat 3 Pr dikatn RETURN gt REDO Backtracking Abb Informationsflu zwischen Ein Ausg ngen der Klauseln Das Backtracking beruht darauf da bei Unifikation eines Ziels mit dem Klauselkopf h ufig noch Alternativen bestehen d h Es k nnen auch noch andere Klauselk pfe mit dem Ziel unifizieren Solche Zust nde zusammen mit den bis dahin durchgef hrten Variablenbindungen werden Choicepoints genannt Bei einer Fehlanzeige kehrt der Interpreter zum zuletzt besuchten Choicepoint zur ck und versucht den Beweis des
328. st Methodenname R ckgabetyp SQLWarning String reason String SQLState int vendorCode SQLWarning SQLWarning String reason String SQLState SQLWarning SQLWarning SQLWarning getNextWarning SetNextWarning SQLWarning w Weitere JDBC Klassen Die Klasse java sql Date Die Klasse java sql Time Die Klasse java sql Types java sql Types Konstanten Die Klasse java sql Numeric 2 3 5 3 3 ORACLE Call Interface OCD Hier ber werden direkt ORACLE Unterprogramme aufgerufen die in sprachspe zifischen run time Bibliotheken vorliegen OCI ist ORACLE Benutzern auch als High Level Interface HLI bekannt Die grundlegende Programmstruktur eines OCH Programms f r eine SQL Anfrage ist 294 Datenbanken nein Bsp Ein OCHProgramm OLON Einloggen in das ORACLE System unter Angabe von Passwort und Kennung OOPEN ffnen des Cursors der beim n chsten OSQL3 Aufruf f r die Aufnahme von Ergebnissen dient OSOL3 Angabe des SOL Kommandos ODEFIN Definition eines Puffers in dem die C Proramm variablen angegeben werden in dem die im SOL Kommando abgefragten Werte gespeichert werden sollen F r jedes Element des SELECT Kommandos mu ein ODEFIN Kommando angegeben werden OBNDRV oder OBNDRN Definition aller C Programmvariablen die zur bergabe von D
329. st per Default in den AutoCommit Modus geschaltet d h da jede nderung des Datenbestands sofort dauerhaft g ltig wird Die Attribute einer Connection beziehen sich ausnahmslos auf die Transaction Isolation 289 Datenbanken java sql Connection Methoden und Konstanten createStatement lo Ste men O isReaddOny do bokn commit N Mid BEE VA FE Die Statement Klassen In JDBC gibt es drei Typen von Statement Objekten zur Interaktion mit SQL Statement PreparedStatement CallableStatement Die Klasse Statement Ein Statement Objekt wird mit createStatement des Connection Objekts erzeugt getMoreResults 0 bokn close o close boolean enable cancel oo O 0 0 i void String name getResultSet getUpdateCount 290 Datenbanken Die wichtigsten Methoden sind xecuteQuery executeUpdate und execute Falls ein Statement Objekt mit einem SQL Statement erzeugt wird dann nimmt executeQuery einen SQL String an Sie gibt die SQL Zeichenkette ber den Treibermanager an die zugrundeliegende Datenquelle weiter und bekommt das ResultSet f r das Anwendungsprogramm executeQuery gibt nur ein ResultSet zur ck In den F llen in denen mehr als ein ResultSet erhalten wird sollte execute verwendet werden F r SQL Anweisungen die kein ResultSet zur ckgeben update delete DDL Statements gibt es executeUpdate Diese Methode nimmt einen SQL String und gibt einen Integer
330. t USER_TABLES o gt O USER_CATALOG oo O USER_COL_COMMENTS gt O USER_CONSTRAINTS gt O Alle Datenbankobjekte die zum User geh ren OBJ Spaltenbezeichnungen zu Tabellen Sichten vom User COLS Views definiert vom aktuellen User 220 Datenbanken 2 3 2 3 Kommunikation zwischen Benutzer und System ber SOL PLUS Die Benutzerschnittstelle des DB Systems ORACLE ist SQL PLUS Die Kommunikation zwischen Anwender und System erfolgt ber einen einfachen Texteditor mit dem SQL und SQL PLUS Befehle eingegeben werden k nnen Der Editor ist stets aktiviert wenn die Kommandozeile mit dem Prompt gt sq1 erscheint Eingabekonventionen sind Der Text der Befehle kann sich ber mehrere Zeilen erstrecken Die lt RETURN gt Taste bewirkt den Sprung in eine Zeile Bei Aufz hlungen mehrerer Spaltennamen werden diese durch Komma getrennt Hier gen gt nicht das Leerzeichen als Trennungssymbol Punkte trennen Tabellennamen von Spaltennamen falls Spalten in mehreren Tabellen vorkommen Im Mehrbenutzerbetrieb k nnen auch Tabellen gleiche Namen besitzen Sie werden dann ebenfalls durch einen vorangestellten Punkt markiert Davor wird die Zugriffsberechtigung gestellt Gro und Kleinschreibung ist bei Befehlen und Attributangaben nicht relevant Attributwerte m ssen jedoch stets so geschrieben werden wie sie in den Tabellen vorkommen Alphanumerische Werte und Datumwerte werden in einfache
331. t f r bestimmte Tabellen Indexe zu erstellen INSERT Recht umfa t ausschlie lich das Recht Datens tze f r bestimmte Tabellen zu bertragen UPDATE Recht umfa t ausschlie lich das Recht Daten in bestimmten Tabellen zu ver ndern Standarm ig hat in Oracle jeder Anwender das RESOURCE Recht Er kann also ohne Zustimmung des Datenbankverwalters Tabellen anlegen Anwendungen 1 Erzeugen von Tabellen und Eintragen der Datenwerte Eine Tabelle wird ber das SQL Kommando CREATE TABLE erzeugt Die Verbindung zwischen einer Tabelle und Tablespace wird ber folgende Kommandos erzeugt CREATE TABLE_SPACE space_name DATAFILE dateispez Mit diesem Kommando wird zun chst einmal der f r die Tabelle Datei vorgesehene Speicherraum festgelegt Dieses Kommando ist n tig falls bei der Tabellendefinition auf den Speicherraum Bezug genommen wird CREATE TABLE tabname SPACE space_name 27 beziehen sich auf das Anwednungsbeispiel in 1 3 3 223 Datenbanken Standardm ig werden alle erzeugten Tabellen im Tablespace USERS abgelegt Dazu ist das Kommando CREATE TABLE tabname ausreichend Die Struktur der ber CREATE TABLE erzeugten Tabellen kann mit dem Kommando SOL gt DESCRIBE tabname in Erinnerung gerufen werden Die Tabellen des in dieser bung vorgesehenen Anwendungsbeispiels k nnen auf folgende Weise erzeugt werden drop table abteilung cr
332. t explizit angegeben wird der SYSTEM Tablespace oder der f r den jeweiligen Benutzer voreingestellte Tablespace zugeordnet Struktur Status und Gr e eines Tablespace kann durch den Datenbank Administrator DBA mit dem Befehl ALTER TABLESPACE ge ndert werden Zwei widerspr chliche Zielvorstellungen beeinflussen den Aufbau von Tablespaces 1 Daten eines Segments sollen physisch zusammenh ngen 2 Ein Segment soll dynamisch wachsen k nnen Extent Diese Ziele werden ber die Extent Verwaltung optimiert Jedes Segment wird unabh ngig vom Segment Typ als eine Folge von einem oder mehreren Extents verwaltet Das ist die kleinste Einheit bei der Reservierung von Speicherplatz Ein Extent besteht aus einem Block oder mehreren Oracle Bl cken 19 Oracle Version 7 216 Datenbanken Database Eine Database besteht aus einem oder mehreren Speicherbereichen Tablespace Ein DBMS kann mehrere Datenbanken verwalten Physisch gesehen besteht die Datenbank aus Datenbankdateien Ein Tablespace umfa t mehreren physische Datenbankdateien z B Tabellen Neben Datendateien existieren in einer Oracle Datenbank noch weitere Dateien mit speziellen Aufgaben Redo Log Dateien und Redo Log Gruppen Redo Log Dateien umfassen Protokolle zu den nderungen an den Datenbank Bl cken Control Dateien Sie enthalten neben Zeitstempeln Konsistenzinformationen Angaben zur physischen Struktur der Oracle Da
333. t nur aus genau einer Zeile Andernfalls darf die SELECT Anweisung nicht direkt in das Programm aufgenommen werden sondern mu mit einem Cursor implementiert werden 247 Datenbanken zugewiesen Nach dem ffnen des Cursors verwaltet dieser einen Zeiger auf die aktuelle Zeile der ausgew hlten Datenzeilen Der Einsatz eines Cursor umfa t vier Arbeitsschritte 1 Deklarieren des Cursor CURSOR cursor name parameterl parameterl datentyp defaultl parameterN parameterN datentyp defaultN IS select anweisung cursor name Name des Cursor parameter1 Name des ersten an den Cursor bergebenen Parameters parameterl datentyp Datentyp von parameteri defaultl optionaler Standardwert f r parameteri parameterN Name des letzten an den Cursor bergebenen Parameters parameterN datentyp Datentyp von parameter N defaultN optionaler Standardwert f r parameter N select anweisung SELECT Anweisung die dem deklarierten Cursor zuzuordnen ist 2 ffnen eines Cursor Ist der Cursor ge ffnet wird die SELECT Anweisung ausgef hrt und eine Liste mit den betroffenen Zeilen erstellt Die Zeilen werden als aktive Menge bezeichnet 3 Lesen von Zeilen eines Cursor Zum Lesen der Zeilen mu die FETCH Anweisung ausgef hrt werden die den Wert jeder in der SELECT Anweisung des Cursor angegebenen Spalte abruft und in einer PL SQL Anweisung speichert blicherweise werden diese Zeilen innerhalb einer Spalte bearbeitet
334. tabase and Knowledge Base Systems Volume I Computer Science Press Rockville 1988 Vossen G Data Models Database Languages and Database Mangement Systems Addison Wesley Wokingham 1990 Wedekind H Datenbanksysteme I BI Wissenschaftsverlag Mannheim 1974 Froese J rgen Moazzami Mahmoud Rautenstrauch Claus Welter Heinrich Effiziente Systementwicklung mit ORACLE7 Addison Wesley Bonn 1994 Herrman Uwe Lenz Dierk Unbescheid G nther Oracle 7 3 Addison Wesley Bonn 1997 Ault Michael R Das Oracle8 Handbuch Thompson Publishing Company Bonn 1998 Datenbanken Datenbanken 1 Typologie der Datenbanksysteme 1 1 Grenzen der herk mmlichen Datenverarbeitung Es hei t Datenbanksysteme berwinden die Grenzen herk mmlicher Daten verarbeitung Das kann sich nur auf das Bearbeiten von Dateien mit Dateisystemen beziehen Das zeigt bspw folgende 1 Aufgabe die sehr vereinfacht eine maschinelle Gehaltsabrechnung beschreibt 31210 te 6 1 800 900 30164 Liesel 1 2 840 Pers Nr Programm Gehaltsabrechnung berweisung Liesel berweisung J rgen berweisung Uwe 2 100 DM Abb 1 1 1 Datenflu zur 1 Aufgabe Das Programm liest einen Datensatz in einen festen Bereich des Hauptspeichers ein und baut die Druckausgabe auf Diese Druckausgabe besteht aus berweisungen auf das Konto des Mitarbeiters bei seiner Bank Eine 2 Aufgabe ist Beschriftung v
335. taben werden entweder in anderen Diagrammen erl utert bzw im Text beschrieben Gro geschriebene W rter in Fettdruck bezeichnen Schl sselw rter bzw terminale Symbole der select Grammatik Sie k nnen unmittelbar genutzt werden W rter die nur aus kleingeschriebenen Buchstaben bestehen m ssen ersetzt werden 89 Datenbanken ALL auswahl_liste gt SELECT DISTINCT alias_bez N L FROM tabellen_name L__ view name WHERE bedingng gt GROUP BY spalten_name HAVING bedingung ORDER BY spalten_name ASC DESC auswahl _liste merkmal Die hier angegebene Grammatik des select Befehls bezieht sich auf ENTRY SQL von SQL 92 Ein nach diesen Vorschriften aufgebauter SQL Befehl m te von allen herk mmlichen auf dem Markt befindlichen relationalen Datenbanksystemen verstanden werden 90 Datenbanken merkmal view_name tabellen_name spalten_name ausdruck spalten_name tabellen_name Ber bezeichner gt ausdruck gt tem bedingung AT einfache_bed NOT AND OR R einfache _bed 91 Datenbanken term spalten_name ne konstante ausdruck aggregate skalare_funktion dauer aggregate AVG merkmal gt MAX ALL MIN DISTINCT spalten_name SUM COUNT I gt DISTINCT spalten_name einfache_bed vergleich_bed between_bed gt
336. telle und das Verschieben ihrer Implementierung auf sp ter Jedoch kann die abstrakte Klasse schon die Implementierung einiger Methoden enthalten w hrend die Schnittstelle die Verschiebung der Definition aller Methoden erzwingt Eine andere Darstellung einer Klasse und einer Schnittstelle besteht aus einem kleinen Kreis der mit der Klasse durch eine Linie verbunden ist z B 7 Datenbanken O ImageObserver gt IN Panel Applet A WillkommenApplet Abb Vererbungshierarchie von WillkommenApplet einschl Schnittstelle ImageObserver Interaktionsdiagramm Es gibt zwei Arten von Interaktionsdiagrammen Sequenzdiagramme Kollabarationsdiagramme Die beiden Diagramme beschreiben zeitliche Abl ufe d h Aufrufsequenzen Ausgangspunkt von Interaktionsdiagrammen sind Fallbeispiele Szenarios Beim Erstellen der Diagramme konzentriert man sich auf die wichtigsten F lle Anschlie end werden die Sonderf lle mit einbezogen 1 Sequenzdiagramme Ein Sequenzdiagramm ist ein Interaktionsdiagramm bei dem die zeitliche Abfolgr der Nachrichten im Vordergrund steht Sequenzdiagramme visualisieren die Lebensdauer von Objekten gestrichelte Linie die die Existenz eines Objekts w hrend eines Zeitraums darstellt Die Zeitachse verl uft von oben nach unten Objekte sind als Rechtecke am oberen Rand von gestrichelten Lebens Linien dargestellt Am linken Rand k nnen noch Kommentare stehen die Aktivit t von Objekt
337. ten durch Kopieren wiederholt dargestellt werden mu Mit lt lt uses gt gt ist es m glich Verhalten von den Use Cases in einen seperaten Use Case zu verlagern Bei lt lt extends gt gt wird das Verhalten erweitert So stellt Auftrag drucken dem Use Case Anlage zus tzliche Funktionalit t zur Verf gung Anleger Abb Use Case Geld anlegen lt lt uses gt gt bzw lt lt extends gt gt sind Darstellungen spezieller Stereotypen Stereotypen sind Erweiterungsmechanismen der UML Sie haben etwa die Bedeutung so hnlich etwa wie und erlauben eine weitere Einteilung der Klassen in Schnittstellen Kontroll und Entit tenobjekte irgendwelche Dinge Elemente und Darstellung des Klassendiagramms Das Klassendiagramm beschreibt die statische Struktur der Objekte in einem System sowie ihre Beziehungen untereinander Die Klasse ist das zentrale Element Klassen werden durch Rechtecke dargestellt die entweder den Namen der Klasse tragen oder zus tzlich auch Attribute und Operationen Klassenname Attribute Operationen Methoden sind jeweils durch eine horizontale Linie getrennt Klassennamen beginnen mit Gro buchstaben und sind Substantive im Singular Ein strenge visuelle Unterscheidung zwischen Klassen und Objekten entf llt in der UML Objekte werden von den Klassen dadurch unterschieden da ihre Bezeichnung unterstrichen ist Auch k nnen Klassen und Objekte zusammen im Klassendiagramm auftreten 72
338. ten sind auch in Verbindung mit ALTER TABLE m glich 55 Namen der Spalten die mit den von der Unterabfrage zur ckgegebenen Werten assoziiert werden sollen 56 Zul ssige select Anweisung die beim Erzeugen der neuen Tabelle verwendet wird 109 Datenbanken Die DDL gibt die Definition von Tabellen View und Indexdefinitionen an und benutzt dazu die Befehle CREATE DROP ALTER Die DML vollzieht das Suchen Einf gen Aktualisieren und L schen und benutzt dazu die Befehle SELECT INSERT UPDATE und DELETE Die DCL umfa t drei verschiedene Arbeitsgebiete Recovery und Concurrency Transaktionen und Regeln f r die Verfahrensweise bei Mehrfachzugriffen mit den Befehlen COMMIT ROLLBACK LOCK Sicherheit bzgl der Zugriffsrechte mit den Befehlen GRANT REVOKE Integrit t Einschr nkungen f r den Erhalt der Korrektheit von Daten In gewisser Hinsicht ist SQL gegenw rtig die standardisierte Datenbanksprache Es bestehen jedoch wie in fast jedem Standard Erweiterungen der jeweiligen SOL Hersteller die eine vollst ndige Kompatibilit t nicht m glich machen Alle sinnvollen Erweiterungen werden jedoch von den Normungsgremien ISO5 und ANSI f r eine umfangreiche Sprachdefinition gesammelt 1992 wurde eine wesentlich erweiterte Fassung der SQL Norm SQL2 58 ver ffentlicht Sei l ngerer Zeit wird bei ISO parallel zu SQL2 am Projekt SQL3 gearbeitet und folgende Erweiterungen zu SQL2 disk
339. ten zwischen Client und Server 84 europ isches Zentrum f r Teilchenphysik bei Genf 85 bezieht sich auf die in ISO 1986 standardisierte SGML Standard Generalized Markup Language 138 Datenbanken Client Programme die HTTP benutzen werden in der Regel als Web Browser Server Programme als Web Server bezeichnet Der Browser schickt an den Server die Aufforderung eine bestimmte HTML Seite zu bertragen Falls er in dieser Seite weitere Verweise z B auf Bilder entdeckt schickt er weitere bertragungsw nsche hinterher Das Besorgen der gew nschten Dokumente erfolgt ber ein einheitliches Adre schema dem Uniform Resource Locator URL durch den Internet Standort und die Art der zu bertragenden Information identifiziert werden Der URL besteht im wesentlichen aus zwei Teilen Er wird mit der Bezeichnung des bettragungsprotokolls eingeleitet z B http Danach folgt mit zwei vorangestellten der Name des Internet Rechners auf dem die gew nschte Information gespeichert ist Wird eine bestimmte Datei in einem bestimmten Verzeichnis referenziert dann werden noch Verzeichnisname und Dateiname angef gt WWW Server Proxy86 Browser WWW Server Browser Betriebessystem Betriebssystem Betriebssystem Betriebssystem WAN z B Modem LAN der Zentrale ae HTML Betriebssystem Betriebssystem Betriebssystem Seiten WWW Server Browser Browser Datenbanksystem gt Daten bank Abb 1 5 13 Intranet Arc
340. tenbank d h Namen und Gr enangaben aller Daten und Online Redo Log Dateien init ora Datei Diese Datei enth lt Initialisierungsparameter zur Bestimmung von Konfiguration und Verhalten der Oracle Datenbank Oracle7Server Bl cke Jede Datei besteht aus einer Anzahl von Oracle Bl cken Jeder Oracle Block bestehet aus einem oder mehreren Plattenbl cken ORACLE Benutzer k nnen vom Datenbank Administrator bestimmt werden und folgende Zugriffsrechte erhalten CONNECT Ein mit dem CONNECT Privileg ausgestatteter Benutzer hat folgende Rechte Einloggen in das ORACLE System Ansehen von Daten anderer Benutzer falls dies von diesen Benutzern erlaubt wurde Durchf hren von Daten Manipulation Kommandos auf Tabellen anderer Benutzer falls dies von diesen Benutzern erlaubt wurde Erzeugen von Views und Synonymen Nicht erlaubt ist Tabellen Indexe oder Cluster einzurichten oder zu l schen Strukturen vorhandener Tabellen zu ver ndern RESOURCE Zus tzlich zu den CONNECT Privilegien werden folgende Rechte erteilt Erzeugen von Tabellen Indexen und Cluster Zugriffsrechte auf diese Tabellen f r andere Benutzer erteilen oder sperren Zugriffskontrolle ber das AUDIT Kommando auf alle eigenen Tabellen Nicht erlaubt ist Tabellen manipulieren die andere Benutzer eingerichtet haben Ausnahme Es liegt daf r eine Erlaubnis vor anderen Benutzern das CONNECT oder RESOURCE Privileg zu erteilen oder zu entzieh
341. tenbanktabellen Alle Abfragen beginnen mit dem Schl sselwort SELECT 2 DML Kommandos DML Kommandos werden dazu benutzt bestehende Daten auf eine der drei folgenden Arten zu ver ndern Eine neue Spalte in eine Tabell inf gen INSERT Daten einer existierenden Spalte ndern UPDATE Spalten l schen DELETE 24 Oracle f gt bei den meisten Implementierungen automatisch die Extension SQL an 25 Kurzform 26 vgl 1 4 3 2 222 Datenbanken 3 DDL Kommandos DDL Kommandos dienen zum Generieren oder L schen von Tabellen oder Views z B CREATE TABLE DROP TABLE CREATE VIEW DROP VIEW 4 DCL Kommandos Data Control Language Kommandos werden dazu benutzt Benutzern Zugriffsrechte auf Daten der Datenbank einzur umen oder wegzunehmen Ein Anwender kann seine Arbeit nur dann aufnehmen wenn ihm neben der Benutzerkennung zus tzlich entweder das DBA CONNECT oder das RESOURCE Recht bertragen wurde Damit lassen sich im einzelnen folgende lokale Rechte wahrnehmen SELECT Recht umfa t ausschlie lich das Recht Datenbanktabellen zu befragen ALTER Recht umfa t ausschlie lich das Recht die Struktur e amp ner Tabelle zu ver ndern Dazu geh ren das L schen und oder Hinzuf gen von Spalten DELETE Recht umfa t ausschlie lich das Recht Datens tze einer Tabelle zu l schen Index Recht umfa t ausschlie lich das Rech
342. tentyp nicht vergeben werden Er spielt bei Man kan mit einem SELECT Befehl den Inhalt der RO SELECT ROWID Ang_ID FROM Angestellte WHERE Ang_ID Al n verwaltet Vom Benutzer kann der Tabellendefinition keine Rolle WID Felder auflisten z B Das de sc Kommando von SQL PLUS zeigt wie die Tabellen aufgebaut wurden desc abteilung Name Null Type ABT_ID NOT NULL VARC BEZEICHNUNG VARC desc job HAR2 2 HAR2 40 Name Null Type JOB TD NOT NULL VARCHAR2 2 TITEL VARCHAR2 30 GEHALT NUMBER 8 2 desc angestellte Name Null Type ANG_ID NOT NULL VARCHAR2 3 NAME VARCHARZ2 10 GEBDATUM DATE ABT_ID VARCHARZ2 2 JOB_ID VARCHARZ2 2 desc qualifikation Name Null Type ANG_ID VARCHAR2 3 JOB_ID VARCHAR2 2 Es folgt das Eintragen der Tabellenwerte insert into abteilung values KO Konstruktion insert into job values KA Kaufm Angestellter 3000 00 32 alle Arten von Bin rdateien 227 Datenbanken insert into angestellte values Al Fritz 0O2 JAN 50 0D SY insert into qualifikation values ALS ESYY 2 Anfragen an die Datenbank Selektion select from angestellte where gebdatum like NOV 55 Projektion 1 Jede Tabelle enth lt ein Feld mit dem Namen ROWID In ihm steht die Adresse eines Datensatzes Die Information umfasst 3 Teile Blocknummer der Partition Nu
343. tgebenden Sprache und f r den SQL Precompiler erfolgt in der DECLARE SECTION EXEC SOL BEGIN DECLARE SECTION host variables u EXEC SOL END DECLARE SECTION host variables m ssen einen Datentyp besitzen der zu SQL Datentypen kompatibel ist In SQL Anweisungen k nnen nur deklarative Anweisungen verwendet werden Es steht nur eine beschr nkte Anzahl von Variablentypen zur Verf gung Programmvariablen k nnen den gleichen Namen wie Felder in Tabellen aufweisen In SQL Anweisungen steht vor Programmvariablen immer ein Doppelpunkt variable Au erhalb von SQL Anweisungen werden die Programmvariablen ohne Doppelpunkt angegeben SQLCA ist eine Kontrollstruktur zur Steuerung und berwachung der Kommunikation mit der Datenbank In dieser Struktur werden Fehlermeldungen Warnungen Meldungstexte und diverse andere Informationen durch die Datenbank abgelegt struct sqlca char sqlcaid 8 Enthaelt den String sqlca long sqlabc Die Laenge der Struktur in Bytes long sqlcode Variable f r Fehlernummern zum zuletzt ausgefuehrten SQOL Statement O Kein Fehler gt 0 Ausnahme entdeckt z B fetch bzw select geben no rows zur ck lt 0 Die Anweisung wurde nicht ausge f hrt ROLLBACK sollte folgen struct unsigned short sqlerrml Laenge Meldungstext char sqlerrmc 70 Meldungstext entspricht dem sqlcode sqlerrm wird nic
344. ts werden bei jeder Insert Update oder Delete Aktion f r die ganze Tabelle berpr ft Ein Versto gegen eine Constraint f hrt zu einem Transaktionsabbruch mit Fehlermeldung Spezifikation eines einfachen Constraint CONSTRAINT name PRIMARY KEY UNIOUE NOT NULL Ein Constraint kann einen Namen besitzen Falls ein solcher Name nicht angegeben wird generiert Oracle automatisch einen Namen Muster SYS_Cnumber Semantische Integrit t Zur Sicherung der semantischen Integrit t k nnen 4 Arten von Constraints eingesetzt werden NOT NULL DEFAULT Die DEFAULT Klausel enth lt einen Ausdruck Der Wert dieses Ausdrucks wird dem Attribut zugewiesen falls explizit kein anderer Wert bereitgestellt wird In Wertzuweisungsausdr cken der DEFAULT Klausel d rfen SYSDATE USER UID oder USERENV enthalten sein DEFAULT kann auch in den CREATE TABLE und ALTER TABLE MODIFY Befehlen verwendet werden CHECK Hiermit k nnen Spaltenwerte dahingehend berpr ft werden ob sie den in der CHECK Klausel definierten Regeln entspricht Die CHECK Klausel kann wie eine WHERE Klausel aufgebaut und verstanden werden Pseudo Spalten Referenzen auf andere Tabellen sind allerdings nicht erlaubt CONSTRAINT name CHECK bedingung UNIQUE Mit dieser Klausel kann f r eine oder mehrere Spalten festgelegt werden da Datens tze einer Tabelle f r diese Spalte n eindeutige Werte besitzen m ssen F r UNIQUE definierte Spalten wird automat
345. ttribut BEURTEILUNG zugeordnet werden kann So kann bspw BELEHRT ber das Beziehungsattribut Werte aus dem Wertebereich KRITERIUM gut mittel schlecht zugeordnet erhalten Das Attribut BEURTEILUNG verkn pft die Beziehungen BELEHRT mit der Dom ne Beurteilungs KRITERIUM Ein spezifisches Dozenten Studenten Beziehungspaar steht mit einem einzigen spez Kriterium in Beziehung Assoziation einfacher Art Beziehungen werden identifiziert indem man die Schl ssel der Entit ten in der Beziehung nutzt Datenbanken 1 3 2 Das relationale Datenbankmodell Grundlage dieses Datenmodells sind einfache Tabellen z B Schl ssel Fakult t Geburtsdatum 110506 _ Werner Medizin 10 03 71 1060313 Kari Jura 1001 73 2517008 Frtzz __ Mathematik 09 03 70 Abb 1 3 2 Schematische Darstellung zu einem relationalen DB Modell Die Tabelle wird auch Relation genannt Datenbanken die aus solchen Relationen aufgebaut sind hei en relationale Datenbanken Die Datenbanken bestehen aus flachen hierarchiefreien Zusammenstellungen von Datenfeldern Die Spalten der Tabelle bezeichnet man als Attribute der Relation Eine flache Datei flat file ist eine Relation und besteht aus einer Menge von Tupeln Tabellen Zeilen Zu einem Tupel sind die auf ein bestimmtes Objekt bezogenen Datenwerte zusammengefa t Das relationale Datenbankmodell besitzt im wesentlichen folgende Eig
346. twicklungswerkzeugen Oracle Forms abgelegt REDO LOG FILES Diese Datei speichert Kopien der Bl cke die durch Update Operationen ver ndert werden nderungen durch den Benutzer werden zuerst in die Redo Log datei geschrieben und dann mit COMMIT in der Datenbank gespeichert Je Datenbank m ssen 2 LOGFILE GROUPS und je GROUP mindetsens 2 Redo Log Dateien angelegt sein Die Struktur der Datenbank kann nachtr glich ber das Kommando ALTER DATABASE ver ndert werden 22 lt user id gt lt pa wort gt rfhs8012_ora8 219 Datenbanken DATA DICTIONARY DD Das DD ist eine Sammlung von Tabellen und Views mit Informationen ber die in der Datenbank vorhandenen Datenbankobjekten Eine berblick einschl einer kurzen Beschreibung in englischer Sprache erh lt man mit Hilfe der folgenden select Anweisung SELECT FROM DICT Das Data Dictionary einer Oracle Datenbank besteht aus mehreren Gruppen von Tabellen und Views USER_xxx Objekte die nur dem jeweiligen Benutzern geh ren z B select object_name from user_objects ALL_xxx Alle Objekte auf die ein Benutzer zugreifen kann z B select owner object_name from all_objects DBA_xxx Objekte die nur dem DBA zug nglich sind V_ xxx sog Dynamic Performance Tabellen mit Status Informationen ber die Datenbank die kontinuierlich w hrend der Laufzeit aktualisiert werden Die Gruppenbezeichnung bildet jeweils den Vorspann f r den Namen der Sich
347. tzregelungen an den Empf nger Der Fernzugriff auf Datenbanken ist im wesentlichen durch 4 Komponenten bestimmt den Bildschirmarbeitsplatz Das kann bspw ein Bankautomat mit einfacher Benutzeroberfl che oder ein komplexes System CAD Workstation mit leistungsf higem Prozessor sein das Anwendungsprogramm Das ist in der Regel ein transaktionsorientiertes Programm das einfache Abfragen und nderungsw nsche entgegennimmt Zugriffsberechtigung des Benutzers pr ft Datenbankzugriffe abwickelt und dem Benutzer das Resultat bermittelt das Datenbanksystem DB System DBS Es besteht in der Regel aus mehreren Prozessen Diese Prozesse erhalten ihre Auftr ge von Anwendungsprogrammen die auch als eigene Prozesse ablaufen Man unterscheidet Prozesse die spezielle Aufgaben ohne Zuordnung zu einezelnen Anwendern ausf hren Hintergrundprozezesse von Prozessen die direkt 1 1 den angemeldeten Benutzern zugeordnet sind Schattenprozesse Dedicated Server Prozesse All diese Prozesse sind Prozesse des Server Backend Die Versorgung des Backend mit Aufgaben bernimmt mindestens ein Frontend Proze Frontend Prozesse werden auch als Client oder Anwendung bezeichnet Anwendungs Anwendungs Client Prozesse programm programmn Kommunikations Pool Server Prozesse DB Proze DB Proze Datenbank Abb 1 2 8 Interproze Kommunikation Anwender bzw Datenbank Prozesse 5 vgl 1 5 2 26 Datenbanken Zur
348. uf Smalltalk29 oder C 20 Basis implementiert werden berlagerung relationaler Systeme mit Objektstrukturen Die bew hrte relationale Datenbank Technologie wird beibehalten und graduell um objektorientierte Eigenschaften erg nzt 28 vgl Dittrich Klaus R Objektorientiert aktiv erweiterbar Stand und Tendenzen der nachrelationalen Datenbanktechnologie it 5 90 Seiten 343 353 29 Gemstone 30 Object Store ONTOS POET 67 Datenbanken Es gibt auch Neuentwicklungen voll objektorientierter Datenbankmodelle Sie sind vollst ndig auf Erfordernisse der Datenbank und auf Objektorientierung zugeschnitten Da genaue Kriterien f r Konzepte objektorientierter Datenbanken erst seit 19893 vorliegen sind Implementierungen noch nicht sehr zahlreich Object Oriented Database Manifesto In diesem Bericht3 2 haben Datenbankforscher Richtlinien f r das objektorientierte Datenbankmodell zusammengefa t Merkmale von objektorientierten Datenbanksysteme wurden hier in drei Kategorien eingeteilt Pflchtmerkmale optionale Merkmale offene Merkmale Zu den aus der objektorientierten Programmierung entlehnten Pflichtmerkmalen z hlen 1 Objektbegriff Objektidentit t In objektorientierten Datenbankmodellen besteht ein Objekt aus einem Objektidentifikator einer Menge von Werten Attribute Variable einer Menge von Prozeduren Operatoren93 Der Objektidentifikator wird vom DBMS vorgegeben und werwaltet Er ist systemwe
349. ufgeteilt Beispiele sind Entwicklungsumgebungen die sowohl auf lokale als auch entfernte Datenbanken zugreifen k nnen Die verteilte Datenverwaltung geht tief in Theorie und Konzept verteilter Datenbanken ein 89 Der Webserver mu PHP f hig sein Je nach Installation interpretiert diese PHP Zusatzsoftware nur Dateien mit der Endung php3 142 Datenbanken Bei der kooperativen Verarbeitung findet die Datenhaltung Server seitig statt Repr sentationsaufgaben werden vom Client wahrgenommen und die Applikations Funktionsschicht wird zwischen Server und Client aufgeteilt Bei der entfernten Verarbeitung wird die Datenhaltung vom Server wahrgenommen Die Verarbeitung findet Client lastig statt d h der Client bernimmt die Anwendungs und Repr sentationsaufgaben Die Anwendungslogik kann somit vollkommen auf der Seite vom Browser d h vom Client ausgef hrt werden Ein solches Programm das innerhalb vom Browser ausgef hrt wird ist ein Applet Eine besondere Rolle spielt hier die Programmiersprache Java In Java geschriebene Programme k nnen in einen maschinenunabh ngigen Zwischencode bersetzt und Server seitig abgelegt werden Wenn eine HTML Seite auf ein Java Programm ein sog Applet verweist dann wird es zum Client bertragen und dort mit einem entsprechenden Interpreter ausgef hrt So steht nichts mehr im Wege auf dem Client Animationen ablaufen zu lassen Eingabefelder zu berpr fen oder auch Datenbank Anweisungen
350. ung der Daten und der auf daten zugreifenden Applikationen unter Wahrung des Lokalit tsprinzips und gr tm glicher Parallelisierung der Verarbeitung Systemarchitektur Physikalisch gesehen ist eine verteilte Datenbank ein ber ein Telekommuni kationssystem verbundenes Netz aus autonomen Rechnerknoten Jeder Knoten verf gt ber ein eigenes Datenbanksystem An die Datenbanksysteme der Rechnerknoten m ssen sich sowohl lokale Abfragen ohne Ber cksichtigung anderer Knoten absetzen und bearbeiten lassen als auch globale mehrere Knoten einbeziehende Abfragen F r diese Abfragen gelten die 147 Datenbanken Forderungen nach Verteilungs Replikations und Fragmentierungestransparenz d h jeder Rechnerknoten ben tigt eine zus tzliche globale Komponete des DBMS die diese Anforderungen erf llt Diese Komponente hat dann folgende Aufgaben Bereitstellen von Wissen ber die Verteilung der Daten Speicherungsort Replizierung Fragmentierung mit netzweit eindeutiger Kennung Die Bereitstellung dieser Metadaten bernimmt ein globales Datenw rterbuch Erbringen der ACID Eigenschaften im Rahmen einer globalen Transaktions verwaltung so da ein Anwendungsprogramm glaubt die Daten w rden im DBS des Rechners gehalten auf dem es abl uft Lenkung der Zugriffe an die zust ndigen Knoten im Rahmen der Auftrags bearbeitung Globale Anfragen werden in eine Reihe lokaler Anfragen aufgespalten die an die betreffenden Knoten versan
351. ungen ist eine Anfrage die nur die Spalten der Tabelle teil liefert z B Bezeichnungen einzelteil_l Bezeichnungen einzelteil_2 etc struktur X Y Z teil X Name_1 teil Y Name_2 ist eine Anfrage die Ausgaben der folgenden Form zeigt X b2 Y e3 Z 4 Name_l baugruppe_2 Name_2 einzelteil_3 Die Anfrage realisiert demnach den Verbund 2er Tabellen Herzuleitende Fakten werden vom Benutzer in der Form von Implikationen ohne Konklusionsteil Anfrage goal an den Inferenzmechanismus bergeben z B struktur pl b2 X mit der Bedeutung Gibt es ein X so da struktur p1 b2 X aus dem Programm folgt Der in Prolog eingebettete Schlu folgerungsmechanismus versucht her zuleiten da die Anfrage mit den Formeln des Programms in Widerspruch steht wenn f r X bestimmte Werte eingesetzt werden Der Reihe nach geschieht F r jedes Ziel wird von oben nach unten das Prolog Programm Wissensbasis aus Fakten und Regeln der Abgleich matching versucht Innerhalb der Regeln werden Teilziele von links nach rechts abgearbeitet Eine Tiefensuche wird eingeleitet Ist ein Teilziel wieder ein Regelkopf wird erst diese Regel die evtl weitere Regelk pfe als Teilziele enthalten kann abgearbeitet F hrt ein Teilziel nicht zum Erfolg werden die Instanziierungen die bei diesem Teilziel erfolgten gel st Es folgt ein Zur ckgehen zum vorliegenden Teilziel Backtracking Ist ein Faktum mit passendem Pr dikat und pa
352. universeller Algorithmus 199 Datenbanken Beschreibung des Problembereichs Universal Algorithmus Problem gt L sung Abb Probleml sen mit Universal Algorithmus Man spricht in diesem Zusammenhang auch vom nicht algorithmischen Pro grammieren und meint damit da der Programmierer nicht f r die Konstruktion des universellen Algorithmus verantwortlich ist Der Prolog Interpreter der universelle Algorithmus wertet bekanntlich die Wissensbasis Sammlung von Fakten und Regeln aus und benutzt dazu 3 grunds tzliche Verfahren Resolution Unifikation Backtracking Grunds tzlich arbeitet Prolog folgenderma en Wissensbasis Prolog Interpreter Resolution Unifikation Backtracking Abb Probleml sen mit Prolog 200 Datenbanken Zusammengesetzte Datenobjekte Die einzige in Prolog verf gbare Beschreibungsm glichkeit f r Datenobjekte ist die des Prolog Terms Ein Term ist entweder eine Konstante Variable oder ein zusammengesetzter Term bzw zusammengesetztes Objekt Ein zusammengesetzter Term wird gebildet aus einem Funktor und Argumenten Die Argumente eines zusammengesetzten Terms sind selbst wieder Terme Bsp p a f b X Argumente sind a f b und X f ist ein Funktor und bestimmt ein zusammengesetztes Objekt f b Eine Struktur ist ein zusammengesetztes Objekt das aus mehreren anderen Objek ten besteht Zusammengesetzte Objekte werden wie ein einzelnes Objekt b
353. ur Realisierung von Beziehungen ist in folgenden F llen notwendig 1 Die Beziehungen sind keinem Set Typ zuzuordnen n m Beziehungen 2 Die Beziehung besteht zwischen mehr als 2 Entit ts Typen 3 Eine Beziehung besitzt Attribute Das Schema einer auf dem Netzwerk Datenmodell beruhenden Datenbank mu also enthalten Die Beschreibung der vorhandenen Entit ts Typpen und ihrer Attribute einschl der Wertebereiche Die Beschreibung der vorkommenden Set Typen Bsp OBJEKTTYP_1 OBJEKTTYP_2 VERBINDUNG OBJEKTTYP_5 OBJEKTTYP_6 Abb 1 3 24 Datenbankstrukturdiagramm eines Netwerks mit 6 Sets OB TYP_4 55 Datenbanken 1 3 5 Das hierarchische Datenbankmodell Ber cksichtigt werden hierarchische Beziehungen zwischen den Daten Eine hierarchische Struktur l t sich in der Gestalt eines Baumes beschreiben Ein Baum ist eine Datenstruktur mit folgenden Eigenschaften Sie ist zyklenfrei Es gibt einen speziell hervorgehobenen Knoten die Wurzel Sie hat keinen Vorg nger Auf jeden anderen Knoten zeigt eine Kante d h Jeder Knoten hat genau einen Vorg nger 1 Definition Es gibt eine Menge benannter Entit ts Typen Segmente und eine Menge von unbenannten Beziehungen Jede Entit t Segment Occurrence geh rt zu einem Entit ts Typ Alle Entit ten innerhalb der Datenbankstruktur der zugeh rige Graf ist eine Ansammlung von B umen sind total geordnet hierarchische Ordnung
354. utiert Unterst tzung komplexer Datenstrukturen Sprachmittel Ausdrucksm glichkeiten f r Datenbankprozeduren objektorientierte Konzepte z B abstrakte Datentypen Unterst tzung verteilter Datenbanken SQL ist Bestandteil zahlreicher Datenbanksysteme z B dBASE IV Oracle Database Manager bzw IBM Database 2 DB 2 57 ISO 9075 1987 Database Language SQL 1987 bzw ISO 9075 1989 Database Language SQL with Integrity Enhancement 1989 58 ISO 9075 1992 Database Language SQL 1992 59 Es handelt sich hierbei um ein Datenbanksystem das unter OS 2 l uft und wird im Rahmen von OS 2 Auslieferungen der IBM bereitgestellt 110 Datenbanken 1 5 Klassifikation der DB Anwendungen 1 5 1 Elementare Anwendungsformen Stapelverarbeitung DB Anwendungen im Stapelbetrieb werden heute noch dann priorisiert wenn ein hoher Durchsatz der DB Programme angestrebt wird Dialogverarbeitung Sie steht unter der Pr misse mit m glichst geringer Antwortzeit und ohne Programmieraufwand auf jede DB zugreifen zu k nnen Eine Tendenz zum Ausbau der Online Anwendung vom reinen Abfrage und Erfassungsbetrieb zu Online Update Abfrage Erfassen ndern L schen oder gar Realzeitverarbeitung ist unverkennbar Interaktive Verarbeitung datenorientierter Aufgabenstellungen Datenbanken l sen datenorientierte Aufgabenstellungen in interaktiver Verarbei tung Ein derartiges Anwendungssystem kann in drei Basiskomponenten gegliedert werden
355. utzerbetrieb Gew hrleistung der Datensicherheit Datenschutz Datenkonsistenz Verarbeitungsintegrit t Allerdings st tzt sich ein derartiges Datenbanksystem auf ein eigenes Datenbankmodell objektorientiert OODM ab und darin liegt die Problematik Eine einheitliche allgemeing ltige Definition f r ein OODM gibt es noch nicht Ausgangspunkt ist das Ziel Umweltsachverhalte beliebiger Art und Komplexit t m glichst genau 1 1 Abbildung beim Datenbankentwurf wiederzugeben Ein Umwelt Objekt soll einem Datenbankobjekt entsprechen Auch komplex aufgebaute Objekte sollen modelliert werden k nnen denn Objekte k nnen Bestandteile besitzen die wiederum in Unterobjekten beschrieben werden k nnen Im Schema werden wie blich Objekttypen spezifiziert Zus tzlich zur Festlegung der gew hnlichen Attribute sog einfache Datentypen integer real string date time und deren Wertebereiche ist hier noch anzugeben von welchem Typ evtl Unterobjekte sein k nnen F r den Aufbau komplexer Strukturen sollen au erdem nicht nur Konstruktoren f r Tupel sondern auch f r Mengen und Listen zur Verf gung stehen Zum Konzept f r komplexe Objekte z hlen auch entsprechende Operatoren Sie dienen zum Auf und Abbau Konstruktoren und Destruktoren und zum Zugriff auf die Eigenschaften von Objekten bzw zur Bildung neuer Objekte aus existierenden Objekten sog Umsetzungsoperatoren Objekte k nnen nur ber den Aufruf der definierten Operatoren
356. weisungen ber ein Objekt vom Typ Statement oder PreparedStatement an die Datenbank Um dieses Objekt zu generieren wird eine Methode der Klasse Connection aufgerufen Im nachfolgenden Beispiel sei die Variable con eine Instanz der Klasse Connection Statement stmt con createStatement Die eigentliche SQL Anweisung INSERT DELETE oder UPDATE werden in einer Stringvariablen definiert z B String SOL DELETE FROM Benutzer Der oben definierte String wird ber das stmt Objekt vom Typ Statement an die Datenbank geschickt ResultSet rset stmt executeUpdate SQL Die Methode executeUpdate liefert 0 oder die Anzahl der betroffenen Datens tze zur ck Sie wird f r INSERT DELETE und UPDATE verwendet sowie f r DDL Befehle die keine Ergebnismenge erzeugen Eine SELECT Anweisung wird ber die Methode ResultSet rset stmt executeQuery SQL auf der Datenbank abgesetzt Dabei wird eine Ergebnismenge im ResultSet zur Verf gung gestellt Die Bearbeitung solcher ResultSets soll sp ter er rtert werden 53 Rainer Klute JDBC in der Praxis Addison Wesley S 74 285 Datenbanken Transaktionsbetrieb Normalerweise wird jedes SQL Statement das via JDBC an die Datenbank bermittelt wird sofort und dauerhaft auf dem Datenbestand durchgef hrt das hei t es wird ein automatischer COMMIT abgesetzt In manchen Situationen ist es f r den Erhalt der Datenkonsistenz zwingend erforderlich
357. wird auf die erste Loesung positioniert 274 Datenbanken EXEC SQL OPEN C1 x fE Definition der Aktion die durchgefuehrt werden aA Er soll falls alle Loesungen der Abfrage abge Ef 4x arbeitet worden sind EXEC SQL WHENEVER NOT FOUND STOP Schleife ueber alle gefundenen Loesungen for yor Die naechste erste Loesung wird ermittelt x und die gewuenschten Felder in die angebotenen Variablen kopiert a EXEC SQL FETCH C1 INTO angid angname anggeb Ausgabe der aktuellen Loesung printf s s s n angid arr angname arr anggeb arr Fehlerausgang void fehler Ausgabe der ORACLE Fehlermeldung printf Fehler aufgetreten n printf Zd n sqlca sqlcode exit 1 Ein C Programm mit Embedded SQL 275 Datenbanken 2 3 5 1 2 Embedded SQL mit Java Mit dem gemeinsamen Standard SQLJ wollen die RDBMS Hersteller IBM Informix Oracle und Sybase Schwierigkeiten mit der JDBC Schnittstelle beheben Der SQLJ Standard ist in drei Teile gegliedert und ber cksichtigt folgende Aspekte des Datenbankzugriffs aus Java Anwendungen Embedded SQL mit Java Stored Procedures und benutzerdefinierte Funktionen mit Java Java Klassen als benutzerdefinierte SQL Datentypen 276 Datenbanken 2 3 5 2 Dynamisches S
358. xe h ufig sogar verschachtelte Tabelle die alle Attribute umfa t Die Regeln zur Normalisierung berf hren diese Tabelle in einfache Tabellen Die zweite Methode ist eine Synthese einer Menge funktionaler Abh ngigkeiten Bei der Zusammenfassung spielen die Regeln zur Normalisierung eine wichtige Rolle l vorgeschlagen von Codd E F Normalized Data Base Structure A Brief Tutorial ACM SIGFIDET Workshop on Data Description Access and Control November 1971 Seiten 1 17 2 vgl Bernstein P Synthesizing Third Normal Form from Functional Dependencies ACM Transactions on Data Base Systems December 1976 Seiten 277 298 165 Datenbanken 2 1 3 1 Die Normalisierung als Zerlegungsproze 1 Problemstellung Fallbeispiel Gesucht ist ein Datenmodell f r eine relationale Datenbank das die Entit tstypen PERSON Mitarbeiter ABTEILUNG PRODUKT ber cksichtigt Eine Analyse f hrt zu folgenden Fakten 1 Fakt Ein Mitarbeiter hat einen Namen und 2 Fakt einen Wohnort Er ist 3 Fakt in einer Abteilung t tig und arbeitet an 4 Fakt mehreren Produkten jeweils 5 Fakt eine vorbestimmte Zeit Jede Abteilung hat 6 Fakt einen Namen Jedem Produkt ist 7 Fakt ein Name zugeordnet In einer Abteilung sind 8 Fakt mehrere Personen t tig An einem Produkt arbeiten in der 9 Fakt Regel mehrere Personen Erkennbar sind Entit ten PERSON ABTEILUNG PRODUKT Beziehungen zwischen Entit ten vgl 3
359. ziehungen 1 Grundlagen Durch ane Datenbankanwendung sind die unterschiedlichen Aufgaben eines Be reichs zu koordinieren Ein derartiger Bereich ist eine umfassende Verwaltungs einheit z B ein Industrieunternehmen mit Produktionsdaten eine Bank mit Daten diverser Konten ein Krankenhaus mit Daten ber Patienten eine Hochschule mit Daten ber Studenten Dozenten Bsp Produktionsdaten eines Unternehmens Informationen werden gew nscht ber die gegenw rtig vorhandenen Projekte die Bauteile Teile die zur Durchf hrung dieser Projekte ben tigt werden die Lieferanten die die Bauteile bereitstellen die Angestellten die an diesen Projekten mitarbeiten Projekte Lieferanten Bauteile Angestellte sind die elementaren Einheiten ber die Daten in der Datenbank gespeichert sind Das ergibt folgenden Schemaentwurf w Im Niederlassung Abteilung Abb 1 3 1 Schema f r die Produktionsdaten eines Unternehmens Datenbanken Die Beschreibung eines Bereichs der realen Welt ist nur durch Abstraktion vieler konkreter Gegebenheiten und geeignete Modellbildung m glich Modellbildung in einem Datenbanksystem bedeutet Gewisse Dinge Objekte der realen Welt werden herausgestellt da sie zur Probleml sung ben tigt werden Zwischen den Objekten existieren Beziehungen Anstatt des Begiffs Objekt benutzt man hier auch h ufig den Begriff Entit t entity 2 Was ist eine Entit t Eine Ent
360. zt ein Attribut das die Einkapselung beschreibt PUBLIC Standardwert PROTECTED PRIVATE Auch die Definition benutzerspezifischer Operatoren ist vorgesehen Es k nnen auch mit CREATE OPERATOR benutzerspezifische Operatoren definiert werden Eine Prozedur oder ADT Funktion implementiert den Operator Objektidentifikatorren werden mit der wWITHOUT Klausel generiert Der Objektidentifikator wird vom DBMS verwaltet ist eindeutig in der Menge aller Objekte der Systemumgebung und nicht nderbar Mit ADT lassen sich weitere Subtypen definieren Alle Merkmale der bergeordneten Tabelle Supertabelle m die in der UNDER Klausel beschrieben sind vererben sich Objektidentit t Auspr gungen eines ADT sind Objekte Jedes Objekt hat ein systemgeneriertes Attribut mit dem reservierten Namen OID und dem Typ Objektidentifikator Der Wert des Attributs OID wird vom System generiert wenn ein Objekt erzeugt wird Er kennzeichnet dieses Objekt eindeutig und kann vom Benutzer nicht ver ndert werden Typschablonen Das ADT Konzept erm glicht das Arbeiten mit Typschablonen CREATE TYPE TEMPLATE Typschablonen k nnen beliebige Parameter mit einfachen Datentypen aufnehmen und damit eine Familie von abstrakten Datentypen definieren z B CREATE TYPE TEMPLATE Paar T TYPE vorbereich T nachbereich T Damit k nnen beliebige Typen generiert werden Paar REAL Paar INTEGER Kollektionen Zur Definition von Typen der Klasse Collection Kollekt

Download Pdf Manuals

image

Related Search

Datenbanken datenbanken datenbanken lmu datenbanken beispiele datenbanken sql datenbanken fernuni hagen datenbanken zhaw datenbankentwickler datenbanken normalformen datenbanken erstellen datenbanken philipp erck datenbanken verstehen datenbanken uni trier datenbanken tum datenbanken uni bielefeld datenbanken literaturrecherche datenbanken zrs rub datenbanken uni bern datenbanken uni mannheim

Related Contents

リリース - Press  Edimax BR-6428nS  CONTROLE DIGITAL DE ACESSO AM-CDA100 Manual  PS-L_02 [更新済み]のコピー  Light Spinner Français  EZ ANNOUNCER USER MANUAL  Gorenje NRK2000P2L fridge-freezer  MANUEL D`INSTRUCTIONS - Aspirateur Central Cyclo Vac Suisse  Hotpoint TCD970P tumble dryer  Philips Classic micro music system DCM186  

Copyright © All rights reserved.
Failed to retrieve file