Home

Skripte

image

Contents

1. Methoden Name Parameter Return Typ connect String url java util Properties info Connection acceptsURL String url boolean getPropertyInfo String url java util Properties info DriverPropertyInfo getMajorVersion int getMinorVersion int jdbcCompliant boolean Methoden der Klasse java sgql DriverManager Methode Parameter Return Type getConnection String url java util Properties info Connection getConnection String url String user String password Connection getConnection String url Connection getDriver String url Driver registerDriver java sql Driver driver void deregisterDriver Driver driver void getDrivers Java util Enumeration setLoginTimeout int seconds void getLoginTimeout 0 int setLogStream java io Printstream out void getLogStream Java io PrintStream printin String message void Klassen Initialisierungsroutinen 307 Datenbanken Methode Parameter Return Type intialize void Die Klasse Connection Eine Connection repr sentiert immer eine Sitzung mit einer spezifischen Datenbank Jede Connection definiert einen Kontext Im G ltigkeitsbereich dieses Kontexts werden S QL Anweisungen an eine Datenbank gesandt und gegebenenfalls Ergebnismengen zur ckgeliefert Weiterhin k nnen ber eine Connection Metadaten ber die Datenbank erhalten werden Jede Connection ist per Default in den
2. FLOAT p NUMBER mit Genauigkeit p lt 126 REAL DOUBLE PRECISION CHAR g Alphanumerische Zeichenketten mit fester L nge lt 2000 VARCHAR g Alphanumerische Zeichenketten mit variabler L nge lt 4000 CLOB Alphanumerische Zeichenkette variabler L nge bis 4GB BLOB Bin re Zeichenkette mit variabler L nge bis 4 GB BFILE Lokator auf externe Datei der Gr sse bis 4 GB LONG RAW Bin re Zeichenkette variabler L nge bis 2 GB RAW Bin re Zeichenkette mit variabler L nge bis 32 KB DATE Datum TIMESTAMP Zeitstempel INTERVAL Zeitintervall Abb Basisdatentypen Internal LOBs werden innerhalb des Datenbanksystems gespeichert und fallen somit unter das Transaktionskonzept Damit ist also auch das recovery von LOB Dateien im Fall von Systemfehlern m glich nderungen an LOB Dateien k nnen commited oder zur ckgerollt werden Bei inserts und updates eines LOB Attributes mit den Werten eines anderen LOB s werden komplette Werte kopiert d h es wird nicht referenziert die betreffenden Spalten enthalten jeweils die kompletten LOB Daten CLOB und NCLOB Daten werden mit dem 2 Type Unicode f r Character Sets variabler L nge gespeichert Beim Laden und Speichern aus und in CLOBs bzw NCOLBs werden die Daten von speziellen Character Set Code in Unicode bersetzt und umgekehrt Eine Tabelle kann eine beliebige Anzahl von LOB Attributen besitzen LOB Daten werden nicht im Inneren der Tabelle gespeicher
3. Bsp Bestimme alle Angestellten die diesselbe Funktion Titel wie Fritz t haben oder in der gleichen Abteilung besch ftigt sind SELECT 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 Unterabfrage mit einem Ergebnis verwenden folgende Vergleichsoperatoren lt gt gt lt lt gt 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 mehrwertige Vergleichsoperatoren verwenden z B 1 Welche Angestellten ben die T tigkeiten eines Systemplaners bzw eines Ingenieurs aus SELECT ANGESTELLTE NAME FROM ANGESTELLTE W HERE ANGESTELLTE JOB_ID IN SELECT JOB JOB_ID FROM JOB WHERE JOB TITEL Systemplaner OR JOB TITE Ingenieur bzw ELECT ANGESTELLTE NAME ROM ANGESTELLTE WHERE ANGESTELLTE JOB_ID ANY SELECT JOB JOB_ID ROM JOB HERE JOB TITEL Systemplaner OR un a vuv
4. 115 Datenbanken 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 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 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 T
5. ERSON 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 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 Maschinen 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 5 Fakt 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 4 und 5 Feststellung M PR PR M 182 Datenbanken 3 Zusammenfassung von Elementarrelationen mit identischen Schl sseln PRODUKT PR M PR PR M PE PR PR PE
6. CREATE OR REPLACE YPE inner_table_type AS TABLE OF inner_type CREATE TABLE table_name table_attr inner_table_type ee NESTED TABLE table_attr STORE AS name Beim Anlegen einer Tabelle die eine verschachtelte Tabelle enth lt mu der Name der Tabelle angegeben werden in der die Daten der verschachtelten Tabelle gespeichert werden Daten der verschachtelten Tabelle werden nicht zusammen mit den Daten der Haupttabelle also inline sondern separat gespeichert Oracle unterh lt zwischen den Tabellen so genammte Pointer oder Zeiger Bsp create table mitarbeiterTupelTabell name varchar 10 create type hobbiesTabellenTyp as table of varchar 20 alter table mitarbeiterTupelTabell add hobbies hobbiesTabellenTyp nested table hobbies store as kundenhobbies In die Tabelle soll noch ein variabler Array aufgenommen werden create type telefonArrayTyp as varray 30 of varchar 20 alter table mitarbeiterTupelTabelle add telefone telefonArrayTyp desc mitarbeiterTupelTabell Mit Hilfe der ALTER Anweisung kann u a das Datenbankschema ver ndert werden F r alle Datenobjekte die mit einem CREATE Befehl erzeugt werden gibt es den analogen DROP Befehl um sie zu l schen und den entsprechenden ALTER Befehl zum Ver ndern des Objekts Durch Verwendung von Konstruktoren kann die Tabelle mit Daten ausgestattet werden Erzeugen von Instanzen eines
7. OBJEKTTYP_1 OBJEKTTYP_2 OB OB JEKT VERBINDUNG C SET_4 JEKT TYP_3 z TYP_4 SET_5 SET_6 OBJEKTTYP_5 OBJEKTTYP_6 Abb 1 3 24 Datenbankstrukturdiagramm eines Netwerks mit 6 Sets 55 Datenbanken 1 3 4 2 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 Jede Entit t ist nur ber einen Einstiegpunkt Wurzelsegment erreichbar Bsp Datenbankstruktur Diagramm Abb 1 3 25 Datenbankstruktur im hierarchischen Datenmodell Occurrence Diagramm z Weg der hierarchischen Ordung Abb 1 3 26 Auspr gung hierarchischer Strukturen 2 Wesentliche Einschr nkungen gegen ber dem Netzwerkmodell
8. 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 printf d n sqlca sqlcode exit 1 298 Datenbanken 2 3 4 3 Call Schnittstelle CLI 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 4 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 CLI Standard von X Open und der SQL Access Group Diese Spezifikation wurde bei der ISO als Erweiterung von SQL vorgeschlagen und hat gro e Chancen als SQL CLI Norm bernommen zu werden Die ODBC Ebenen Eine ODBC Anwendung hat f nf logische Ebenen Layer Anwendung ODBC Schnittstelle Treibermanager Treiber und Datenquelle SQL Server Dracle 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 Schn
9. PRODUKT PR M PE l l Funktionale Abh ngigkeit verletzt DNF MASCHINE M M PE MF PEF MASCHINE M PE PERSON PE Normalisierung RODUKT PR M PE M PE ASCHINE M P ERSON PE lt 4 Systematisches Erkennen von Verletzungen der DNF beim Zusammenfassen von Elementaroperationen Allgemeiner Fall PRODUKT PR M PE A e if MASCHINE M PE Bedingungen f r das Erkennen 1 Die das Kriterium der DNF verletzende Relation Ri 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 R1 weist eine transitive Abh ngigkeit auf verletzt DNF 183 Datenbanken 5 Zusammenfassung Syntheseschritt 1 Definition eines Modells mit
10. 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 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 Trigger Typen Ein Trigger Typ definiert sich ber die Trigger Transaktion und die Ebene auf der ein Trigger ausgef hrt wird Man unterscheidet Trigger auf Zeilenebene Trigger auf Anweisungsebene BEFORE und AFTER Trigger INSTEAD OF Trigger Schema Trigger Trigger auf Datenbankebene Trigger auf Zeilenebene Sie werden f r jede Zeile ausgef hrt die von einer DML Anweisung betroffen ist Trigger auf Zeilenebene kommen am h ufigsten vor und werden in erster Linie f r Anwendungen im Bereich des Daten Auditings eingesetzt Zu dem lassen sich mit diesem Trigger Typ v
11. fail verschieden X Y In vielen Prolog Dialekten gibt es das Pr dikat repeat Es l t sich leicht 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 Negation in Prolog Prolog Klauseln z B Bil at BE aL erea y Ale De 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 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 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 208 Datenbanken 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 si
12. bedingung GROUP BY spalten_name HAVING bedingung Ei bi ORDER BY spalten_name ASC DESC auswahl liste TUT T 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 106 Datenbanken merkmal view_name tabellen_name spalten_name ausdruck spalten_name tabellen_name BE EN bezeichnr ausdruck gt term bedingung einfache_bed NOT AND OR Erz einfache_bed 107 Datenbanken term spalten_name konstante ausdruck aggregate skalare_funktion dauer aggregate AVG merkmal gt MAX ALL MIN DISTINCT spalten_name SUM COUNT gt DISTINCT spalten_name einfache _bed vergleich_bed between_bed like_bed in_bed exists _bed 108 Datenbanken vergleich_bed Bu S I NULL ausdruck lt gt lt 1 lt gt gt ausdruck spalten_auswahl SOME between _bed gt ausdruck O BETWEEN gt ausdruck AND ausdruck gt NOT Der Operator BETWEEN vergleicht die angegebene Spalte mit einem Werte bereich einschl der unteren und oberen Grenzwerte like_bed gt spalten_name kal LIKE 7 string gt NOT Der LIKE operator verwendet sie als Textze
13. insert into job values KA Kaufm Angestellter 3000 00 insert into angestellte values ALT Eit TO2 JAN 5017 TODT ESY 3 insert into qualifikation values AL 52 237 Datenbanken 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 Nummer 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 2 Projektion einer virtuellen Spalte select name hat hat ang_id 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 A1l3 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 arithm Operationen und der Verkettungsoperator zur Verf gung Falls mehrere Operationen in einem Argument stehen wird von links nach nach rechts gerechnet
14. sql SOL Anweisung SOL Anweisung eine beliebige g ltige SQL Anweisung Eine Abfrage mit mehreren Datens tzen als Ergebnis erfordert in der Regel eine Schleife und spezielle Methoden der Auswertung der Ergebnismenge In der JDBC kann man ber ResultSet ein solches mehrere Zeilen umfassendes Ergebnis gut auswerten SQLJ definiert dazu so genannte Iteratoren Abfrage der Anzahl der ge nderten Datens tze ber die Klasse ExecutionContext die nach einer SQLJ Anweisung aus der DML implizit intialisiert wird kann festgestellt werden wie viele Datens tze von einer Anderung betroffen sind Eine Referenz auf den aktuellen ExecutionContext erh lt man von der Klasse DefaultContext und zwar ber deren Methode getExecutionContext Die Anzahl der ge nderten Datens tze erh lt man dort ber die Methode getUpdateCount Datenaustausch ber Host Variablen Der Datenaustausch zwischen SQL und Java Code erfolgt ber Host Variablen und Iteratoren Host Variablen bieten Zugriff auf Ergebnisse von Select Anweisungen die nur eine Zeile als Ergebnis liefern dar ber hinaus k nnen sie Parameter f r beliebig andere SQL Anweisungen setzen Es handelt sich um Variablen der jeweiligen Host Sprache d h Java die in SQL Anweisungen auftreten k nnen In SQL Anweisungen 172 Falls alle SOQL Anweisungen direkt als eine isolierte Transaktion ausgef hrt werden sollen dann ist true zu bergeben Falls die Transaktionssteuerung berno
15. 39 Datenbanken Die zweistellige Beziehung E4 ist_ein E2 besagt E4 ist eine Spezialisierung von Ep bzw Ev ist eine Verallgemeinerung von E4 Im vorliegenden Fall k nnte E4 Professoren auch als Teilmenge von Ep Hochschulmitarbeiter verstanden werden Die Darstellung von E4 und E gt als verschiedene Mengen erm glicht es jedoch Besonderheiten von E4 zu modellieren die nicht unbedingt f r jede Entit t aus E gt relevant sind Darstellung Das Entity Relationship Modell dient vor allem zur Beschreibung des konzeptuellen Schemas 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 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
16. 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 FROM ANGESTELLTE Man kann sich auch bei der Auswahl der Ausgabespalten auf bestimmte Felder beschr nken SELECT ANG_ID NAME GEBDAT FROM ANGESTELLTE Die ausgew hlten Datens tze k nnen ber die zus tzliche optionale ORDER BY Klausel in eine sortierte Reihenfolge gebracht werden ELECT K ROM ANGESTELLTE RDER BY NAME Oj Die Sortierreihenfolge kann auf Asc oder absteigend DESC sein Auch sekund re bzw terti re Sortierkriterien k nnen gebildet werden ELECT ROM ANGESTELLTE RDER BY ANG_ID ASC ABT_ID DESC O HJ U Wiederholungen von Tabellenspalten Werten in der Ausgabe werden durch Angabe von DISTINCT 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 lt gt lt gt Bsp Welcher Angestellte ist vor dem 2 Dezember 1957 geboren SELECT FROM ANGESTELLTE WHERE GEBDATUM lt 02 DEC 57 ORDER B
17. b Bsp Bestimmen von Bildmengen gegebener Relationen 189 Datenbanken 1 Gegeben ist r A B B 1 2 3 oom gr b 2 3 gr 1 a 2 Gegeben ist r A1 A2 A3 A4 0x a 10 yp 2 22 16 2 11x a A Die Projektionen r A bzw r ergeben r a A1 A2 r A3 A4 1 10 x a 2 L yo B z p gr r Jr xX a 9r Y L 9Ir z b gr r A 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 lt gr r Division von r auf A durch s auf B Bsp Divisions Operationen 1 Gegeben ist r A B U s D F 1 11 x x 1 2 y Xo o2 3 Z y 4 12 x a r U D s bin re Relation U mit A B r A B r U U 1 11 X 2 y 3 Z 4 12 Projektion s D x y 190 Datenbanken s D mu eine Untermenge von gy r sein Das ist in allen 4 F llen nicht m glich gr 1 11 x 9r 2 11 Y 9r 3 11 2 gr 4 12 x b r B U U DJs r B Ul B U r B r U U s D D X 11 X X y 12 y y Z Z 12 x gr 11 x y z gr 12 x r B UJTU DJs 11 Aufgaben Gegeben ist r LNR TNR und s TNR TB a 1 1 XX a 2 2 y a 3 3 ZZ b 1 b 2 E 3 a Finde die Lieferanten Nr der Lieferanten die alle Teile liefern grla 1 2 3 sS TNR dl 25 33 v r TNR TNR s
18. lt i i 1st_e1 7 Fachbereic betreut Tate D erarbeitet 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 verwendet_in Synthese n besteht_aus Analyse m Struktur 42 Datenbanken Zur Darstellung der Mengen greift das ERM auf das Relationenmodell zur ck one um Einzelteil 1 Einzelteil_2 Einzelteil_3 SUN Baugruppe_l Baugruppe_2 Endprodukt_1 Endprodukt_ OoN Abb 1 3 8 Entity Relationship 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 Das ER Modell dr ckt das so aus Betreuer f n 1 Student Projekt Abb 1 3 9 Eine 1 1 n Dreierbeziehung 43
19. posnr integer teil REF teiltyp menge integer preis integer create type positionsTabellentyp as table of positionsTyp create or replace type auftragTyp as object anr integer lieferant REF lieferantTyp eingang date bearbeitet date position positionsTabellenTyp member function anzahl return integer Methodenimplementierung 338 Datenbanken create type body auftragygTyp as member function anzahl return integer as a integer begin for i in 1 SELF position COUNT LOOP a a SELF position i menge END LOOP return a end end create type telefonArrayTyp as varray 30 of varchar 20 create type auftragTabellenTyp as table of REF auftragTyp create table kundeTupelTabell knr integer name varchar 30 anschrift adressTyp objektwertiges Attribut telefone telefonArrayTyp arraywertiges Attribut auftraege auftragTabellenTyp kollektionswertiges Attribut nested table auftraege store as kundenauftraege insert into kundeTupelTabell values 15 wilhelm adressTyp Seefeldstrasse 31 8008 Zuerich CH telefonArrayTyp 0041 1 6789322 0049 6194 91267 auftragTabellenTyp NULL Verwendung von Map bzw Order Funktion select name anschrift from kundeTupelTabell order by anschrift select name anschrift from kundeTupelTabell where Anschrift lt adressTyp Seefeldstrasse 31 8008 Zuerich
20. 264 Datenbanken ADD_MONTHS d x Addiert x Monate auf d 159 ROUND d s1 Rundet das Datum entsprechend dem Rundungsformat s1 SYSDATE Aktuelles Datum und Uhrzeit TRUNC d s1 Schneidet die Datumsangaben von d entsprechend der Formatmaske s1 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 Umwandlungsfunktionen CONVERT s1 s2 s3 HEXTORAWI s ROWIDTOCHAR T 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_wert d_format s_wert ist eine Zeichenfolgenliteral eine Zeichenfolge einer Spalte oder eine von einer zeichenfolge zur ckgegebene Zeichenfolge d_format i
21. 4 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 15 Datenbanken 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 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 Forderungen 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 An
22. Datenbanken 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 EN Beamter Angestellter 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 is_a werden Untertypen Subtypen in das ERM eingef hrt Ein Entit tstyp E4 ist ein Untertyp des Entit tstyps Ep falls jede Auspr gung Instanz von E4 auch ein Untertyp von E gt 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 Mitarbeiter Flugzeugbau Ing Elektro Ing Diese Hierarchie k nnte in das folgende Schema einer relationalen Datenbank berf hrt werden aschinenbau Ing Abb 1 3 11 Mitarbeiterbeziehungen in einer Projektgruppe Mitarbeiter MNR Attribute die allen Mit
23. ist eine Anfrage die nur einige Zeilen der Tabelle bereitstellt teil _ Bezeichnungen 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 205 Datenbanken 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 g
24. 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 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 sie 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 132 Datenbanken 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
25. 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 Ergebnis 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 job gehalt 12 Jahresdurchschnittsgehalt from abteilung angestellte job where abteilung abt_id angestellte abt_id and angestellte job_
26. CH Operationen auf Objekttypen Defaultkonstruktor hei t wie der Objekttyp und hat f r jedes objekttypname p1 p2 pn Attribut einen Parameter Attributzugriff mittels Punktnotation o Attributname Objektvergleich basiert auf flacher Gleichheit ol 02 Referenzvergleich ist auch m glich REF o1 REF o2 Typtest mittels IS OF IS OF objekttypname Abb Operationen auf Objekttypen Subtypbildung Aufbau von Typhierarchien Syntax CREATE TYPE subtypname UNDER supertypname Attributdefnitions und Methodendeklarationsliste berschreibende Abbildungsmethode I NOT FINAL I NOT INSTANTIABLE Subtyp erbt alle Attribute und Methoden des Supertyps Subtyp hat nur einen Supertyp keine Mehrfachvererbung _Geerbete Methoden sind berschreibbar 339 Datenbanken Bsp Supertyp create or replace type kundeTyp as object knr integer name varchar 30 anschrift adressTyp telefone telefonArrayTyp auftraege auftragTabellenTyp NOT FINAL create type hobbiesTabellenTyp as table of varchar 20 Subtypbildung Aufbau von Typhierachien create type bwKundeTyp UNDER kundeTyp hobbies hobbiesTabellenTyp kredit decimal 9 2 3 2 1 4 Referenz Typ F r jeden Typ t ist REF t der Typ von Referenzen Object IDs auf Werte vom Typ t Dieser Typ kann anstelle eines benutzerdefinierten Typs verwendet werden Attribute k nne
27. 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 7 vgl 1 2 4 6 29 Datenbank Verwalter Datenbanken Verwalter der bergeordneten Einheit Konzeptuelles Schema Internes Schema Datenw rterbuch data dictionary Anwendungs Verwalter Externes Schema Umformen zur internen Speicherung Umformen zur internen Verarb des konz Schemas Ein Ausgabe Sytem Abb 1 2 9 Organisation einer DB Architektur um das DD 30 Umformer zur externen Repr sentation Anwendung 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 Beziehungen 1 Grundlagen Durch eine Datenbankanwendung sind die unterschiedlichen Aufgaben eines Be reichs zu koordinieren Ein derartiger Bereich ist eine umfassende Verwaltungs einheit
28. JDEG Treiher Datenbank Abb 1 Schematischer Ablauf beim Einbinden von Embedded SQL in Java Anwendungen Festlegen der Verbindungsdaten mit der Klasse Oracle ber die Klasse oracle sqlj runtime Oracle kann ein Verbindungskontext initialisiert werden Dazu werden die Verbindungsdaten in einer externen Datei connect properties im Property Format von Java festgelegt sqlj url jdbc oracle thin rfhs8012 1523 0ral0g sqlj user xyz12345 sqlj password xyz12345 Damit die SQLJ Umgebung diese Verbindungsdaten nutzt ist im Java Quelltext die Methode connect der Klasse oracle sqlj runtime Oracle aufzurufen void connect Class class String propertyFile In dem folgenden Quelltext wird ber die Klasse Oracle eine einfache Verbindung zur Datenbank hergestellt import java sql import oracle sqlj runtime Oracle public class HalloWelt public static void main String args throws Exception java sql Date current_date try Verbindung zur Datenbank Oracle connect HalloWelt class connect properties Bestimme das aktuelle Datum aus der Datenbank sql SELECT sysdate INTO current_date FROM dual Ergebnis ausgeben System out println Hallo Welt am current_date catch SQLException e System out println SQLException e finally try Oracle close catch SQLException e System err printin SQLException e 2
29. System out println transl1 Name vorname Veraenderung vom Namen in einer 2 Verbindung sql trans2 Tax UPDATE angestellte SET name Phantom WHERE ang_id A1 hi Die Transaktion beenden sql trans2 COMMIT Mit transl zum 2 Mal den Namen erfragen sql transl SELECT name INTO phantom FROM angestellte WHERE ang_id A1 hi System out printlin transl Name jetzt phantom Auf den alten Namen zuruecksetzen sql trans2 UPDATE angestellte SET name Fritz WHERE ang_id A1 hi Speichern sql trans2 COMMIT Mal wieder mit transl den Namen lesen sql transl SELECT name INTO phantom FROM angestellte WHERE ang_id A1 hi System out printlin transl Name jetzt phantom 296 Datenbanken catch Exception e e printStackTrace 2 3 4 2 Dynamisches SQL 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 An
30. 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 Datenbanksystemen zusammen Uber 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 Datenbanken 1 2 2 Informationssysteme Elemente betrieblicher Informationssysteme Die kleinste Informationseinheit ist das Zeichen Element aus einer Darstellung von Information mit verschiedenen Elementen dem Zeichenvorrat Im Normalfall reicht ein einzelnes Zeichen nicht zur Darstellung von Information man ben tigt eine Zeichenfolge Wird eine Zeichenfolge bertragen spricht man von einer Nachricht Eine Nachricht wird zur I
31. TA Ergebnis Abb 1 5 2 Bearbeitung eines Transaktionsauftrages 128 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 Datenbankzugriffe 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 Uberma an time sharing verl ngert die Antwortzeit der einzelnen Transaktionen Zu viele gleichzeitig aktive Transaktionen bewirken ein berma an Synchronisierungskonflikten Die Betriebssyst
32. a b Finde die Lieferanten Nr der Lieferanten die mindestens die Teile mit der Teile Nr 1 und 2 liefern s B 1 2 gr b 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 191 Datenbanken 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 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 Somit wird hier das kartesische Produkt gebildet Einen Verbund mit einer Auswahlbe
33. 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 Speicherung Codierung und L ngenangaben Feldtypen Zugriffspfade in der Datenbank Angaben zu Verarbeitungseinheiten Modul Programm Segment Funktionen eines DD sind Erstellen von Berichten z B Benutzerreports welche Daten werden von wem benutzt Generierung von Datendefinitionen und Datenbank Beschreibungen Datenmodellierung au
34. 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 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 C 100 103 Udo M nchen 2 Chemie 11 A 20 179 103 Udo M nchen 103 Udo M nchen 104 Paul Regensburg 104 Paul Regensburg Datenbanken 2 2 i 1 Ein PE Wert ste
35. 56 Datenbanken 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 FUNKTION Bsp Stammsegment Typ Abh ngige Segment Typen AUSBILDUNG ERFAHRUNG Abb 1 3 26 Datenbankstrukturdiagramm f r eine heterogene Struktur 57 Datenbanken FUNKTION ANWENDUNGSPROGRAMMIERER AUSBILDUN ASSEMBLER ERFAHRUNG UNIX ERFAHRUNG Abb 1 3 27 Occurrence Diagramm einer heterogenen Struktur b Homogene
36. Ausnahme Es liegt daf r eine Erlaubnis vor anderen Benutzern das CONNECT oder RESOURCE Privileg zu erteilen oder zu entziehen 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 jed
37. DPOSsIter INTO wi sp si aano Fy import java sql SQOLException import oracle sqlj runtime Oracle Deklaration des Iterators sql iterator AnglIter String String String class AngPosIterDemo public static void main String args throws SQLException Connect herstellen Oracle connect AngPosIterDemo class connect properties Host Variable String angID Eang g String angName NG String angGebdatum Variable auf Iterator definieren 294 Datenbanken Anglter angPoslIter Abfrage durchfuehren sql angPosIter SELECT ang_id name gebdatum FROM angestellte Ergebnis ausgeben while true sql FETCH angPosIter INTO angID angName angGebdatum if angPosIter endFetch break System out println angID angName angGebdatum angPosIter close lteratoren ber eigenes Interface verwenden Die Syntax der Iterator Deklaration erm glicht es ber das Schl sselwort interface ein eigenes Java Interface f r den Iterator zu verwenden Kontexte Eine Verbindung wird in SQLJ grunds tzlich durch einen Verbindungskontext eine Instanz der Klasse sqlj runtime ConnectionContext repr sentiert Der Verbindungskontext spezifiziert die Datenbank mit den assoziierten Schemata und die Verbindungsinformationen Die Verbindungsinformationen bestehen aus Benutzername Passwort Auto Commit Modus SOL Kontextname S
38. Datenbanktabellen zu befragen ALTER Recht umfa t ausschlie lich das Recht die Struktur einer 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 Recht 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 144 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 Standardm ig werden alle erzeugten Tabellen im Tablespace USERS abgelegt Dazu ist das Kommando CREATE TABLE tabname 144 beziehen sich auf das Anwednungsbeispiel in 1 3 3 233 D
39. ID IDREF IDREFS ENTITY 359 Datenbanken NOTATION NMTOKEN NMTOKENS Abb Einfache Typen Neue simple Datentypen k nnen aus existierenden Datentypen gewonnen werden in dem bspw eine Einschr nkung des Bereichs vorgenommen wird Unter Obergrenzen bei geordneten Wertebereichen minInclusive maxInclusive Grenzwerte sind eingeschlossen minExclusive maxExclusive Grenzwerte sind ausgeschlossen L ngeneinschr nkungen bei Zeichenketten length minLength maxLength genaue minimale maximale L nge L ngeneinschr nkung bei numerischen Datentypen totalDigits max Anzahl der Dezimalstellen fractionDigits Anzahl der Nachkommastellen Kardinalit tseinschr nkung bei Listen length minLength maxLength Aufz hlung der erlaubten Werte enumeration Bsp lt xsd simpleType name Farben gt lt xsd restriction base xsd string gt lt xsd enumeration value rot gt lt xsd enumeration value blau gt lt xsd enumeartion value weiss gt lt restriction gt lt xsd simpleType gt Vordefinierte Datentypen List Liste von einfachen Datentypen mehrfache atomare Typen die durch Leerzeichen getrennt sind Bsp lt xsd simpleType name Hobbies gt lt xsd list temType xsd string gt lt xsd simpleType gt Vereinigung Der Union Typ enth lt alle m glichen Werte eines simplen Typs oder eines L
40. Integrit tsbedingung ist zu jedem Zeitpunkt eine Transaktion in einem der 2 Modi IMMEDIATE oder DEFERRED IMMEDIATE bedeutet Diese Bedingung wird nach jeder 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 Anderungen 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 ERIALIZABLE un Isolation Levels Zur Synchronisation des Mehrbenutzerbetriebs bietet SQL 92 ber SET TRANSACTION vier abgestufte Isolations
41. KRITERIUM 171 Datenbanken sl gut S1 Prolog mittel 5S2 C gut S2 Pascal schlecht 33 NE 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 S ie gut Karl 20 Sl Prolog mittel Karl 20 s2 cC 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 S3 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 D1 3 D2 S1 D2 S2 D2 53 3 Relation zum Festhalten eines Beziehungsattributs BEURTEILUNG D S KRITERIUM D1 S1 gut D1 S3 mittel D2 S1 gut D2 S2 schlecht D2 S3 gut Aufgabe In einer Relation soll festgehalten werden welche Personen welche Sprachen mit welchem Qualit tskriterium k nnen 1 Beschreibe dazu eine Relation in der SPRACHE als Dom ne an einem Entit tsattribut par
42. ORACLE die Funktionen HEXTORAW und RAWTOHEX zur Verf gung Der Datentyp LONG RAW dient zur Speicherung von BLOBs BLOBs umfassen Dokumente Grafiken Kl nge Videos 9 ROWID gibt die eindeutige Identifikationsnummer Adresse eines Datensatzes an mit der ORACLE jede Zeile Tupel in der Datenbank intern verwaltet Vom Benutzer kann dieser Datentyp nicht vergeben werden Er spielt bei der Tabellendefinition keine Rolle Man kan mit einem SELECT Befehl den Inhalt der ROWID Felder auflisten z B SELECT ROWID Ang_ID FROM Angestellte WHERE Ang_ID Al Das desc Kommando von SQL PLUS zeigt wie die Tabellen aufgebaut wurden desc abteilung 148 Wird einer Datumsspalte eine Zeichenfolge zugewiesen die nicht dem Default Format entspricht gibt Oracle wahrscheinlich eine Fehlermelfdung zur ck 149 alle Arten von Bin rdateien 236 Datenbanken Name Null Type ABT_ID NOT NULL VARCHAR2 2 BEZEICHNUNG VARCHAR2 40 desc job Name Null Type JOB_ID NOT NULL VARCHAR2 2 TITEL VARCHAR2 30 GEHALT NUMBER 8 2 desc angestellte Name Null Type ANG_ID NOT NULL VARCHAR2 3 NAME VARCHAR2 10 GEBDATUM DATE ABT_ID VARCHAR2 2 JOB_ID VARCHAR2 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
43. Objekttabelle mitarbeiter create table mitarbeiter of mitarbeiter_t Aufnehmen von Daten insert into mitarbeiter values mitarbeiter_t Al Fritz 13 11 1956 Die Selektion von Daten aus der Objekttabelle mitarbeiter unterscheidet sich nicht von der Selektion von Daten aus Tupeltabellen Die REF Funktion erm glicht das Referenzieren von vorhandenen Zeilenobjekten select REF m 343 Datenbanken from mitarbeiter where name Fritz Die Ausgabe zeigt den OID f r das Zeilenobjekt Die DEREF Funktion nimmt einen Referenzwert den generierten OID Wert f r eine Referenz und liefert den Wert des Zeilenobjekts zur ck Bsp Zur Demonstration der Zusammenarbeit von REF und DEREF soll folgende Tabelle betrachtet werden create table inhaber inhaber_name varchar2 20 mitarbeiter_beschaeftigung REF mitarbeiter_t referenziert Spalten die irgendwo anders gespeichert sind Die Spalte mitarbeiter_beschaeftigung kann auf Zeilenobjekte in der Objekttabelle mitarbeiter zeigen In die Tabelle innaber k nnen Datens tze eingef gt werden z B insert into inhaber select Katherina REF m from mitarbeiter m where name Fritz Mit select from inhaber kann die Referenz sichtbar gemacht werden Die Spalte mitarbeiter_beschaeftigung enth lt die Referenz auf das Zeilenobjekt und nicht den Wert der Daten die in den Zeilen gespeichert sind Den referenzierten Wert kann man erst
44. R BY A NAME 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 from Klausel nachgestellt Unterabfragen Bedingungen in SELECT INSERT 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 114 Datenbanken Bedingung errechnet Das Ergebnis dieser Berechnung wird direkt in die befreffende Anfrage eingesetzt jedoch nicht gespeichert Eine Unterabfrage ist eine SELECT Anweisung die im Kontext einer anderen SQL Anweisung verschachtelt wird Die verschachtelte Unterabfrage wird untergeordnete Unterabfrage genannt Der Teil der die verschachtelte Unterabfrage enth lt hei t Haupt oder bergeornete Abfrage 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 S WHERE ANGESTELLTE NAME Fritz
45. SQLException String reason String SQLState int vendorCode SQLException SQLException String reason String SQLState SQLException SQLException String reason SQLException SQLException SQLException getSQLState String getErrorCode int getNextException SQLException setNextException SQLException e void 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 ist Methodenname Parameter R ckgabetyp SQLWarning String reason String SQLState int vendorCode SQLWarning SQLWarning String reason String SQLState SQLWarning SQLWarning String reason SQLWarning SQLWarning SQLWarning getNextWarning SQLWarning SetNextWarning SQLWarning w void Hinweise zur Fehlerbehandlung Jede Funktion die eine Operation in Verbindung mit der Datenbank durchf hren soll mu entweder eine throws SOLException Anweisung beinhalten oder in einem try Block durchf hren Die Beispielanwendung verwendet in jedem Fall die try Kapselung um auf einzeln auftretende Fehler individuell reagieren zu k nnen Generell 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 RD
46. Start M nzenEin Betrag Guthaben setzen en Abbrechen M nzen zur ck w hlen Getr nk Geldkassierend M nzenEin Betrag Guthaben erh hen Flaschen leer Wechselgeld lt 0 do Flaschen pr fen und Wechselgeld berechnen Wechselgeld gt 0 do Wechselgeld ausgeben Wechselgeld 0 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 86 Datenbanken Anfangszustand PREEN AEE IH EELEE T AAA Aktivit t Aktivit t Aktivit t Aktionszustand Aktivit t Endzust nd Arte dead Abb Aktivit tsdiagramm 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 Kla
47. Wertzuweisung an diese Uebergabevariablen Hier z B KONSTRUKTION PERSONALABTEILUNG Gross und Kleinschreibung muessen bei Strings Br beachtet werden LE x7 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 Durchfuehrung der SOL Abfrage Nach Durchfuehrung des oexec Kommandos liegen die gefundenen Loes xy ungen im angegebenen CURSOR DATA AREA bereit und koennen mit ofetch abgeholt werden erg oexec cursor_data_area oci_error erg oexec cursor_data_area 1 do ui Holen der naechsten Zeile aus der Loesungs tabelle der mit dem angegebenen Cursor ver bundenen SQL Abfrage Return Code 4 keine Loesung mehr vorhanden Xj erg ofetch cursor_data_area oci_error erg ofetch cursor_data_area 0 Le u Ggf Ausgabe der gefundenen Loesung EL 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 321 Datenbanken Schliesen des SQL Cursors erg oclose cursor_data_area oci_error erg oclose cursor_data_area Ausloggen aus dem ORACLE System erg ologof logon_data_
48. aufgerufen select linienID 11 linie laenge 2 0 from linien 11 Wichtig ist hier der Alias Name select 11 linie endl x 11 linie endl y from linien 11 select 11 linie end2 from linien 11 ORDER und MAP Methoden Objekttypen besitzen im Gegensatz zu den Datentypen NUMBER und VARCHAR keine inh rente Ordnung Man unterscheidet Systemdefinierte Gleichheit von Instanzen der Objekttypen Sie basiert auf paarweiser Gleichheit der Attributwerte Flache Gleichheit Benurtzerdefinierte Gleichheit bzw Ordnung ber m MAP Vergleich bzw Ordnung basiert auf dem Ergenis einer Abbildungsfunktion die Objektwerte auf die Werte von Basisdatentypen Zahlen Zeichenketten Datum abbildet MAP MEMBER FUNCTION funktionsname RETURN typ m ORDER Ordungsfunktion ordnet jeweils 2 Instanzen ORDER MEMBER FUNCTION funktionsname o objekttyp RETURN INTEGER Um eine Ordnung auf Objekten eines Typs zu definieren k nnen dessen funktionale Methoden verwendet werden F r jeden Objekttyp kann eine Funktion als MAP oder ORDER Funktion ausgezeichnet werden Eine MAP Funktion besitzt keine Parameter und bildet jedes Objekt auf eine Zahl ab Damit wird auch eine lineare Funktion auf dem Objekttyp definiert die sowohl f r Vergleiche lt gt und BETWEEN als auch f r ORDER BY verwendet werden kann Eine ORDER Funktion besitzt ein Argument desselben Datentyps das ein reiner IN Parameter ist und mit dem Hostobjekt verg
49. dikatsymbol ist und t4 tn Terme sind Abk rzungen und Bindungsregeln gt P bezeichnet na v p gt P bezeichnet a gt P a p V J binden st rker als bindet st rker als A A bindet st rker als V Formeln 1 Primformeln sind Formeln 2 a ist eine Formel falls eine Formel ist 3 a v P ist eine Formel falls und J Formeln sind 4 av P ist eine Formel falls und J Formeln sind 5 3X a ist eine Formel falls eine Formel und X eine Individuenvariable ist 6 7 VX a ist eine Formel falls eine Formel und X eine Individuenvariable ist Nur so gebildete Zeichenketten sind Formeln Sind in einer Formel alle Variablen durch Quantoren gebunden wird auch als geschlossene Formel bezeichnet Bsp Die Formel VX p X gt 3Y g Y ar 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 Qa Q ist eine Folge von Allquantoren bezeichnet man als Pr misse Voraussetzung ist dann die Konklusion Schlu folgerung Interpretation pr dikatenlogischer Formeln
50. entweder A1 oder A2 angegeben werden F r die Wiederholung oder auch die Iteration gibt es mehrere Varianten Sie sind an die Notation regul rer Ausdr cke angelehnt und unterscheiden sich in den Kardinali t tsanforderungen A beliebige Iteration A kann beliebig oft oder keinmal angegeben werden A nichtleere Iteration A mu mindesetns einmal angegeben werden A optionales Element Das Element A kann maximal einmal angegeben werden Bsp lt ELEMENT adresse ort plz strasse nummer postfach gt Leere Elemente 8 werden in der DTD nach folgendem Muster angegeben 186 Hinweis Auch leere Elemente k nnen Attribute haben 357 Datenbanken lt ELEMENT typ EMPTY gt Syntax Bedeutung Kein oder einmaliges Auftreten Einmaliges oder mehrfaches Auftreten Kein oder mehrfaches Auftreten alb Entweder a oder b aber nicht beide a b A gefolgt von b Abb Frequenzindikatoren die in der XML DTD verwendet werden Zus tzlich zu Elementen k nnen auch Attribute definiert werden z B lt Geburtsdatum Kalender gregorianisch gt 02 01 1967 lt Geburtsdatum gt Ein Attributwert wird nach folgendem Muster angegeben lt Elementname Attributname Attributwert gt Elementinhalt lt Elementname gt Eine Attributliste definiert je Element mehrere Attribute Dazu dient das folgende Muster lt ATTLIST Elementname Attributname Attributtyp Optio
51. konkrete Typen konkrete Werte Typkonstruktoren Einstiegpunkte Elemente der Operatoren Konsistenzregeln konkreten Typen Konzepte zur Beschreibung Beschreibung der Mini Abbild der Miniwelt der Miniwelt welt Relationstypkonstruktor Relationstypen Relationen Objekttypkonstruktor Objekttypen Objekte Abb Grundlegende Begriffe der Datenbankwelt Das Datenbankmodell bietet neben Basisdatentypen eine Reihe von Typkonstruk toren zur Beschreibung des Datenbankschemas Das Satenbankschema legt neben den in der Miniwelt vorkommenden konkreten Datentypen auch die Einstiegpunkte im Relationenmodell die Namen der Tabellen fest Die mit diesen Datentypen assoziierten Operationen bestimmen wie sich Auspr gungen der jeweiligen Datentypen d h die konkreten Werte im Laufe des Datenbankbetriebs ndern k nnen Im wesentlichen ist jedes konkrete Datenmodell charakterisiert durch Basisdatentypen Definieren die elementaren Wertebereiche aus denen komplexe Daten zusammengesetzt werden Eine typischer Basisdatentyp w re der Typ INTEGER f r elementare Zahlenwerte Typkonstruktoren Erm glichen die Komposition aus elementaren und anderen komplexen Typen z B der aus relationalen Datenbanken bekannte Typkonstruktor ROW zur Definition eines Tupeltyps Ein Typkonstrutor erzeugt einen Datentyp Typkompositionsregeln Legen fest in welcher Form sich Datentypen und Typkonstruktoren kombinieren lassen Ein bekanntes Beispiel ist die R
52. 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 1 Vgl Hansen Hans Robert und Neumann Gustaf Wirtschaftsinformatik I Lucius amp Lucius Stuttgart 9 Auflage 2005 2 vgl 1 2 1 11 Datenbanken Bsp Methodenbank Datenbank Betriebsabrechnung Buchhaltung Vollkosten der Maschine X je Stunde Prognose Methoden Bev lkerungsdaten Schulanf nger in 10 Jahren Manchmal sind weitere Nachforschungen n tig Bsp zus tzliche Nachforschungen zz Buchhaltung Gesch ftsberichte der Konkurrenz Personalkosten im Vergleich zur Branche In speziellen Anwendungen mu der Datenbestand f r den Fragesteller durch eine 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 Datenbank Abb 1 2 1 Aufbau eines Informationssystems Die Organisa
53. tstyp durch einen Komplexit tsgrad comp E b angegeben mit 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 235 Eine Beziehung b A B wird durch 2 Komplexit tsgrade comp A b und comp B b beschrieben z B el 0 1 1 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 25 bedeutet beliebig viele 47 Datenbanken Bsp Ein typisches ER Diagramm aus der Fertigungsvorbereitung Arbeitsplan 1 wird_ gespeichert 1 1 0 1 1 Arbeitsgang lt gehoert zu gt Arbeitsplatz Abb 1 3 15 ER Diagramm aus der Fertigungsvorbereitung 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 g
54. 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 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 241 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 Oracle unterst tzt ab Version 9i auch die ANSI SQL Syntax Es stehen nun auch folgengende JOIN Typen zur Verf gung CROSS JOIN Natuaral JOIN Join mit USING Klausel Outer Join Left Right und Full Cross Join Er entspricht dem kartesischen Produkt von 2 oder mehr ohne Join Bedingung abgeleiteten Tabellen select name abt abt_id bezeichnung from angestellte CROSS JOIN abteilung abt Natural Join Er st tzt sich auf Tabellenspalten mit gleichem Namen und Datentyp Bei dieser Verkn pfung werden automatisch alle Spalten mit gleichem Namen und Datentyp in die Join Bedingung eingebunden select name abt_id bezeichnung from
55. 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_hummer int aktuelles_datum date 254 Datenbanken rem PL SOL Prozedur zum Initialisieren der Tabell DECLARE max_satzanzahl CONSTANT int 100 i int 1 BEGIN FOR i IN 1 max_satzanzahl LOOP INSERT INTO test_tabelle satz_nummer aktuelles_datum VALUES i SYSDATE END LOOP COMMIT END pan r 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 Konstanten wird wie bei allen PL SQL Anweisungen mit einem Semikolon abgeschlossen Der Anweisungsteil Ausf hrungsteil eines PL SQL Blocks folgt auf das Schl sselwort begin Jede PL SQL Anweisung wird durch ein Semikolon beendet Anweisungen k nnen sein Zuweisungen Anweisungen zur Steuerung des Programmablaufs SQL Anweisungen Cursor Anweisungen Die Anweisung
56. wahr gt wahr wahr x wahr wahr Offenen Formeln mit freien Variablen kann 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 VX g 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 VX 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 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 gt X 197 Datenbanken Ein
57. 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 Lieferanten H Projekte oe oo Lager Teile Angestellte a 3 _ 7 Niederlassung Abteilung Abb 1 3 1 Schema f r die Produktionsdaten eines Unternehmens 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 31 Datenbanken Anstatt des Begiffs Objekt benutzt man hier auch h ufig den Begriff Entit t entity 2 Was ist eine Entit t Eine Entit t ist ein in
58. 1 1 1 n eins zu viele und m n 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 ist_ein Beziehung Sie wird durch eine Raute mit der Beschriftung ist_ein oder durch einen Pfeil dargestellt Die Kante zu E einer Beziehung E4 ist_ein E gt ist ungerichtet die Kante zu E gerichtet Bsp Entity Relationship Diagramme zu einer Hochschulverwaltung Entit tsmengen3 sind Hochschulmitarbeiter MNR Gebdat Adr MNR Mitarbeiternummer 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 Der Beziehungstyp Student Vorlesung Professor ist vom Typ n p m und besitzt die Attribute Semester Jahr Schreibt 22 vgl 1 3 1 2 23 Identifizierende Attribute sind unterstrichen 24 Die Mitarbeiternummer ist ein Attribut das allen Hochschulmitarbeitern gemeinsam ist und veerbt wird 41 Datenbanken Der Beziehungstyp Diplomarbeit Student ist vom Typ m n und besitzt das Attribut Semester Das f hrt zu dem folgenden Entity Relationship Diagramm Hochschulmitarbeiter
59. 162 Vergleicht einen Ausdruck u mit den vorgegebenen Ergebnissen u1 etc und gibt den entsprechenden Wert u2 etc zur ck USERENYs oo o 2 2 Anzahl Bytes der internen Repr sentation von u NVL u1 u2 R ckgabe von u2 wenn u1 Null ist sonst u1 s f PL SQL Utilities 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 161 unspezifiziert 162 DECODE darf nur in SQL Anweisungen verwendet werden 266 Datenbanken Die meisten hierin zusammengefa ten Routinen sind mit der ALTER SESSION Anweisung identisch dbms_ddl zur Ubersetzung 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 dbms_sql enth lt alle notwendigen Funktionen und Prozeduren zur Verwendung des dynamischen SQL in PL SQL Programmen 2 3 2 5 2 Constraints Constraints werden in der Datendefinition angelegt Es gibt feld und tabellenbezogene Constraints Feldbezogene Constraints werden direkt mi
60. 30 1340 x 5 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 Satzadressen Pers Nr Kostenstelle Gehalt 1 100 10 1230 2 106 20 850 3 110 10 1900 4 111 30 1600 5 117 30 1400 6 120 20 740 7 121 10 870 8 124 30 2400 9 130 20 1600 10 133 30 1340 23 Datenbanken Prim rindextabelle Sekund rindextabelle Sekund rindextabelle Pers Nr Kostenstelle Gehalt Feldwert Satzadr Feldwert Satzadr Feldwert Satzadr 100 1 10 1 3 7 740 6 106 2 20 2 6 9 850 2 110 3 30 4 5 8 10 870 7 111 4 1230 1 117 5 1340 10 120 6 1400 5 121 7 1600 4 9 124 8 1900 3 130 9 2400 8 134 10 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 Datenstr
61. ALTER GEWICHT BEURTEILUNGSKRITERIUM STUDIENFACH Karl 20 66 gut Mathematik Fritz 29 19 mittel Chemie Juergen 27 68 schlecht Informatik Josef 24 87 Physik 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 8 vgl Vetter M Aufbau betrieblicher Informationssysteme 6 Auflage Stuttgart 1990 32 Datenbanken 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 Unternehmens Beziehungen 5 Ein Anges
62. Anfang der 70er Jahre wurde erkannt da eine wichtige Klasse von Aufrufen n mlich die Berechnung der sog transitiven H lle nicht ausdr ckbar ist da Iterations und Rekursionsmechanismen in SQL fehlen 277 Datenbanken 2 3 4 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 WVariablenkonzepte und die elementaren Konstrukte prozeduraler Programmiersprachen z B REPEAT UNTIL IF THEN ELSE CASE SQL mu daher in Programmiersprachen eingebunden werden 2 3 4 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 Ab
63. 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 java sql Connection Methoden und Konstanten Methode Parameter Return Type createStatement Statement prepareStatement String sql PreparedStatement prepareCall String sql CallableStatement nativeCall String sql String close void isClosed 0 boolean getmetaData DatabaseMetaData setReadOnly boolean readOnly void isReaddOnly boolean setCatalog String catalog void getCatalog String setAutoClose boolean autoClose void getAutoClose 0 boolean getWarnings SQLWarning setAutoCommit boolean autoCommit void getAutoCommit boolean commit void rollback 0 void setTransactionlsolation int level void getTransactionlsolation int Die Statement Interfaces In JDBC gibt es drei Typen von Statement Objekten zur Interaktion mit SQL Statement PreparedStatement CallableStatement 308 Datenbanken Datenbank Treiber laden Datenbank Verbindung herstellen java sql DriverManager SQL Statement erzeugen java sql DriverManager Stored Procedure ausf hren java sql CallableStatement SQL Statement ausf hren java sql Statement Ergebnismenge auswerten Statement Verbindung schlie en java sql Driv
64. CGl Programm aufgerufen Das CGl Programm setzt die vom Anwender eingegebenen Daten in eine Datenbankabfrage um Die Datenbankanwendung liefert die Suchergebnisse 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 08 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 bemerkenswerte
65. 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 117 vgl Eberhard L und andere Datenbankmaschinen berblick ber den derzeitigen Stand der Entwicklung Informatik Spektrum Heft 4 S 31 39 1981 167 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 sseleindeutigkeit bedeutet Kein neues Tupel kann ei
66. 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 f r den Standard von 1989 beschreiben 62 vgl Sandberg G A primer of relational data base concepts IBM Systems Journal Heft 1 S 23 61 1980 63 vgl Zloof M M Query by Example a database language IBM Systems Journal Heft 4 S 324 342 1977 64 Alle Bezeichnungen in nicht fettgedruckten Kleinbuchstaben 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 105 Datenbanken ALL auswahl _liste gt SELECT DISTINCT alias_bez FROM tabellen_name view name WHERE
67. 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 13 Datenbanken USE Die mit USE gekennzeichnete Begriffsbenennung ist als synonyme Vor zugsbenennung f r die vorstehende Begriffsbenennung 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
68. Die Definition einer eigenen Fehlermeldung und die Ausgabe erfolgt mit RAISE_APPLICATION_ERROR nummer text speichern nummer Fehlernummer im Bereich von 20000 bis 20999 Vorgabe vom Anwender speichern TRUE oder FALSE Standardwert f r Speicherung des Fehlers in einer Fehlerliste b Deklaration von Variablen variablen_name CONSTANT datentyp NOT NULLI ausdruck gt 3 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 Rundungsfaktor scale definiert ist Wird die Stellenzahl ausgelassen dann wird das Maximum angenommen Ohne Angabe des Rundungsfaktors wird als Wert 0 verwendet Der Wertebereich von NUMBER liegt zwischen 1 0E 120 und 9 99E 125 Aus Kompatibilt tsgr nden werden folgende Subtypen zum Datentyp NUMBER unterst tzt DEC DECIMAL DOUBLE PRECISION FLOAT INTEGER INT NUMERIC REAL SMALLINT 153 wird zur Initialisierung herangezogen 256 Datenbanken 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 O 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 Datentyp
69. 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 196 Datenbanken 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 n stelligen 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 n stelligen Pr dikatensymbols zu einem im Individuenbereich definierten n stelligen 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 YX q X a gt q f X a X ein Wahrheitswert zugeordnet Einsetzen f r Konstantensymbol a VX qg X 2 gt qg f X 2 X Einsetzen f r die gebundene Variable X q 0 2 gt q 0 0 a q 1 2 gt q4 1 1 q 2 2 gt q 2 2 Anwendung des Pr dikats falsch gt wahr falsch gt wahr falsch gt wahr Auswertung wahr gt wahr wahr gt wahr a
70. 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 177 Datenbanken Spaltet man die vorliegende Tabelle in zwei Relationen auf Projektionen der urspr nglichen Relation so ergibt sich die L sung des Problems VORLESUNG_DOZENT_VNF VORLESUNG VORLESUNG DOZENT_NAME VORLESUNG MERKMAL Grundla
71. Graphenstruktur Document Object Modell Speicherung DOM Die strukturbasierte Speicherung f hrt zur Trennung von Metadaten SQL Schema und Daten Tupel anhand DTD Schema unter Ausnutzung objektorientierter objektrelationaler Strukturierungskonzepte unterscheidet automatische Abbildung und nutzerdefinierte Abbildung Eine Abbildung w rde im Rahmen der strukturierten Speicherung umfassen XML Element in Attribut einer Relation Sequenz von Elementen in Attribute einer Relation Alternative von Elementen in Attribute einer Relation optionales Element in Attribut mit evtl Nullwert Elementwiederholungen in Set oder List XML Attribut in Attribut einer Relation mit evtl Nullwert required in not null Bsp Die zuerst angegebene DTD und die danach durchgef hrte Abbilung in eine Datenbank Tabelle DTD lt IE iE adres lt E iE lt IE iE lt IE iE plz lt E iE lt IE iE lt IE iE lt E iE lt IE iE lt IE iE hotel hotelname kategorie telefon fax gt NT hotelnam PCDATA gt kategorie PCDATA gt NT adresse t strasse nummer gt plz PCDATA gt NT ort PCDATA gt strasse PCDATA gt NT nummer PCDATA gt NT telefon PCDATA gt fax PCDATA gt Eh SSSEgEe RESO SOL 2003 CREATE TABLE hotel hotelname VARCHAR 50 NOT NULL kategor
72. 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 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 Vererbung zur Geltung bringen U 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
73. 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 herausgezogen 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 STUDENT VORLESUNG Abb 2 1 3 ERM Diagramm zur Beschreibung der Zweifachbeziehungen 176 Datenbanken 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 Vierte Normalform VNF Ein einf hrendes Beispiel Gegeben ist die folgende nicht normalisierte Relation VORLESUNG_DOZENT VORLESUNG DOZENTEN_NAME MERKMAL DB Datenbanken J rgen Ernst Grundlagen bungen AE Anwendungsentwicklung Alex
74. 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 alphanumerische 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 INTERSECT 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
75. Modeli netin a E E E E E E 90 1 3 9 2 XML Datenmodell rnise arnan aE EEEE Is Ri 91 1 3 9 2 1 XML Dokumentenstruktur nrsnursnersnessnensnensnnnnnnnnnsnnnsnnennnesnnennnnsnonsnonsensnensnsnsnnnsnnnnnnnn 92 1 3 9 2 2 XML Standards 5 22 2 28 22 220 2 22 ala Ra RAS DREIER 95 1 3 9 3 Abbildung von XML Strukturen auf Datenbankstrukturen u 20222220nsennensennennennnenennne seen 98 1 3 9 4 Abbildung von XML Daten auf Datenbanken und umgekehrt u22e2serserseeseenneneenee nen 100 1 4 Standards c 2us0s00r0nrnoneonsnnonsonsnnsnssnsnnsnssnsnnsnnnsnnsnnnsnnsnssnsnnsnnnsnnsnssnsnnsnnsnsnnsnssnsnnsnssnssnsnnsnssnsnnsnsensnnnnenn 103 1 4 1 EODASYL Konzept 2 2 2s2 erben In reerekfesnerheden 103 1 4 2 IMS 44 E 222 el lassin sage DH E 103 1 4 3 System R und SQL innn 1 20 02 8 58 08 883060 ni BL ER Ri s 105 1 4 3 1 SySteM R 22 20 ER en ar HERE IR er 105 Datenbanken 1 4 3 2 Standard SQL Structured Query Language 20ur2000sssnessnnennsnensnnnnnnnensnnnnnnnonsnennnn onen 105 1 5 Klassifikation der DB Anwendungen ccssoassonsensssnsssnsenssssssssnssonssonsonnsnnssnnsennssnnnsnssnnssnsnsnnessnssunsnene 125 1 5 1 Eleinent re Anwendungssformen 4 2 2 22er a Eai E R K REEE Rairi 125 1 52 Transa KAON De E De r r E E r ESE ESRAS TiS 128 1 5 2 1 Transaktionen 24 22 222 ea RA ee a E EESE i eT EA 128 1 5 2 2 Das Zwei Phasen Commit Protokoll sessessenseeeesssser
76. Objekt vom Typ Statement an die Datenbank geschickt ResultSet rset stmt executelUpdate 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 SOL auf der Datenbank abgesetzt Dabei wird eine Ergebnismenge im ResultSet zur Verf gung gestellt Die Bearbeitung solcher ResultSets soll sp ter er rtert werden 176 Rainer Klute JDBC in der Praxis Addison Wesley S 74 305 Datenbanken DB Treiber laden Class forName DBTreiber 177 DB Verbindung herstellen Connection con Drivermanager getConnection url user pwd java sql DriverManager SQL Statement erzeugen Statement stmt con createStatement java sql Connection SQL Statement ausf hren Resultset rset stmt executeQuery SELECT java sql Statement Ergebnismenge auswerten rset getString 1 rset next rset getInt Gehalt java sql ResultSet Statement Verbindung schlie en con close java sql DriverManager Abb Prinzip einer JDBC Anwendung Statement Arten 177 Laden einer Klasse ohne ein Instanz zu erzeugen Referenzieren einer Klasse deren Name noch nicht bekannt ist Da eine ClassNotFoundexception ausgel st werden K nnte sollte die Anweisung in einem try
77. PCDATA gt lt ELEMENT Stadt PCDATA gt lt ELE Postleitzahl PCDATA gt lt ELEMENT Land PCDATA gt 1 gt lt Adresse gt lt Name gt Christian Ditzel lt Name gt lt Strasse gt Kirchplatz 7 lt Strasse gt lt Stadt gt Bad Hersfeld lt Stadt gt lt Postleitzahl gt 36251 lt Postleitzahl gt lt Land gt Deutschland lt Deutshland gt lt Adresse gt BencEs Die Zeile lt ELEMENT Name PCDATA gt deklariert das XML Element mit der Bezeichnung Name innerhalb des XML Dokuments Durch PCDATA wird festgelegt da der Inhalt des Elements Name verarbeiteter Text Parsed character data ist Das besagt keine Unterelemente sind in diesem Element erlaubt Die Zeile lt Element Adresse Name Strasse Stadt Postleitzahl Land gt definiert da das XML Element Adresse aus den XML Elementen Name Strasse Postleitzahl Land zusammengesetzt sind Diese Elemente sind innerhalb von Adresse geschachtelt Das Fragezeichen nach Stadt besagt da dieses Element optional ist Abb XML Dokument mit interner Dokumenttypdefinition XML Dokumente k nnen ohne DTD nur auf Wohlgeformtheit gem der XML Spezifikation berpr ft werden sie werden bei Korrektheit als well formed bezeichnet Gen gt ein Dokument dagegen auch seiner DTD ist es g ltig valid gt e Die in einem Dokumenttyp g ltigen Elemente
78. Parameter Entities braucht man zur Verwendung in DTDs Auf eine Parameter Entity bezieht man sich mit dem Zeichen 85 Bsp lt ENTITY adressdef ort plz strasse nummer gt lt ELEMENT adresse adressdef gt Einsatz zur Deklaration von mehrfach auftretenden Teilen einer DTD Ziel Wiederverwendung Modularisierung Allgemeine externe Entities ersetzen den Entity Namen durch den Inhalt einer Datei Aufruf wie interne Entities Die Datei wird ber das Schl sselwort SYSTEM gefolgt von URI Uniform Ressource Identifier referenziert Bsp Deklaration eines externen Entities lt ENTITY legal SYSTEM include legalnotice xml gt Bin re externe Entities gibt es nur in Attributen vom Typ ENTITY ENTITIES und umfassen beliebige Daten keine XML Syntax Die angegebene Notation erm glicht die Interpretation eines Dateityps durch ein Programm Bsp lt NOTATION JPEG SYSTEM usr bin xview gt lt ELEMENT Haus PCDATA gt lt ATTLIST Haus ansicht ENTITY IMPLIED gt lt ENTITY ansicht_323 SYSTEM 323 jpg NDATA JPEG gt lt Haus ansicht ansicht_323 gt lt Haus gt Elemente und Attribute Ein Element kann bspw umfassen lt Name gt Juergen lt Name gt Elemente 185 Au erhalb der DTD hat das Zeichen keine Bedeutung 356 Datenbanken sind XML Grundbausteine umfassen Start und Endtag Metadaten z B lt name gt und lt Name gt
79. Pro gramm nach einem Faktum bzw dem Kopf einer Regel gesucht das bzw der mit 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 Teilziee 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 201 Datenbanken 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 mutter _von X Y v kind _von Y X v frau X mutter _von liesel juergen folgt unmittelbar aus a gt b amp avb Anfragen werden im Rahmen des Resolu tionsbeweises negiert Xx liesel Y juergen Die Substitu
80. 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 DBMS DC Hardware Abb 1 2 7 berblick zu den Komponenten eines DB DC Systems 26 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 Schutzregelungen 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 Anderungsw nsche entg
81. Relation enth lt die Prim rschl ssel der beiden Relationen und kann zus tzlich noch beschreibende Attribute enthalten Bsp Gegeben ist das folgende ERM Diagramm angestellter P gehalt N Eo 0 n 0 n m a 1 i i G a Abb Datenbanken Setze dieses ERM Diagramm in ein relationales Modell in 3 Normalform um Die Umsetzung soll durch das Schema der relationalen Datenbank beschrieben werden angestellter persNr name gebdatum plz wohnort strasse gehalt beruf position kunde kNr name plz wohnort strasse abteilung abtnr abtname auftrag auftrNr auftrDat beschreibung fertigDat projNr projekt projNr begDatum endDatum abtNr arbeitet_an persNr projNr taetigkeit prozAnt 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 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
82. 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 ANSI SPARC Architekturvorschlag 6 Datenneutralit t y Datenunabh ngigkeit u En konzeptuelles Schema Transformation Transformation Externe Schemata Interne Schemata Externe Ebene Interne Ebene individuelle Sichten Programme physische Datenbanken Abb 1 3 35 Datenbankarchitektur nach ANSV SPARC Die ANSV SPARC Architektur sieht 3 Ebenen vor 1 Eine mittlere konzeptuelle Ebene die alle drei Anwendersichten zu einer Art gemeinschaftlichen Sicht vereinigt 26 ANSI 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 2 Eine interne Ebene die es gestattet unter Kenntnis von Anwenderprofilen und verf gbarer Hard und Grundsoftware die leistungsf higsten Speicher und Zugriffsmethoden zu w hlen 3 Eine externe Ebene mit beliebig vielen Anwendersichten Im Mittelpunkt der verschiedenen Betrachtungen Sichten steht das allumfassend
83. Spaltendefinition oder als eigenst ndiges Element der Tabellendefinition angegeben werden Die beiden einfachsten Spaltenbedingungen sind NOT NULL 32 und UNIQUE 33 Tabellen Spaltenbedingungen k nnen in der CHECK Klausel 3 definiert werden Bsp Anrede unterliegt der Spaltenbedingung CHECK VALUE IN Herr Fraut y 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 Uber 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 Angestellte F r alle Wertebereiche die in der Datenbank mehrfach verwendet werden sind Domains geeignet Anderungen von Datentypen z B von Prim rschl sseln auf die eine Menge anderer Fremdschl ssel verweisen lassen sich fehlerfrei und konsistent durchf hren Assertions generelle Versicherungen Sie sind nicht mit einer Spalte oder eine Tabelle verkn pt Die Defintion erfolgt direkt ber CREATE ASSERTION z
84. Tabelle personen sind jetzt ber personen_ov als Zeilenobjekte zug nglich die f r die Zeilen in personen_ov generierten OID Werte werden deshalb pkoIps genannt Grunds tzlich k nnen alle relationalen Tabellen als Zeilenobjekte zug nglich sein Vorraussetzung ist allerdings dass f r diese Tabellen Objekt Views angelegt sind Die Zeilen von verabredungen referenzieren Zeilen in person Aus der relationalen Perspektive wird die Beziehung ber Fremdschl ssel ermittelt die von der Spalte verabredungen pers_id auf personen pers_id zeigt Nachdem personen_ov angelegt wurde und die Zeilen in personen ber OIDs zug nglich sind m ssen jetzt in verabredungen Referenzwerte angelegt werden die personen referenzieren Generieren von Referenzen create view verabredungen_ov as select MAKE_REF personen_ov pers_id pers_id ruf_nr ruf_datum from verabredungen MAKE REF legt Referenzen an sog pkREFs da sie auf Prim rschl sseln basieren Sobald die REFs eingerichtet sind kann mit der DREF Funktion aus verabredungen auf Daten in personen zugegriffen werden select DEREF vov pers_id from verabredungen_ov vov where ruf_datum trunc sysdate 3 2 2 Abfragen in Objektstrukturen Objektinstanzen und ihre Attributwerte k nnen aus Objekttabellen oder verschachtelt in Spalten abgefragt werden wobei Attributwertedaten als Spaltenwerte in Zeilen oder als Strukturen von Objektinstanzen erscheine
85. Tupel in Tabellen sind Abstrakte Datentypen ADT d h generelle Typen die als Komponenten von Tupeln benutzt werden 74 Datenbanken 1 3 3 Das UML Modell Die Unified Modelling Language UML ist eine objektorientierte Sprache und Notation zur Spezifikation Konstruktion Visualisierung und Dokumentation von Modellen von Softwaresystemen Sie besteht aus verschiedenen Diagrammen die wiederum verschiedene grafische Elemente besitzen Die sprachunabh ngige grafische Notation unterst tzt den gesamten Softwareproze u a die folgenden Aufgaben Analyse der Anforderungen Visualisierung eines Problems Kommunikation mit Anwendungsexperten Implementierung zur L sung in einer Programmiersprache Vorbereitung der Dokumentation Die Bedeutung also die Semantik der Elemente ist genau festgelegt Innerhalb der UML gibt es allerdings f r ein und denselben Sachverhalt mehrere Darstellungsarten Zur Modellierung eines Systems dient das Objektmodell das im wesentlichen den g ngigen Prinzipien der Objektorientierung folgt Objekte gleicher Art werden zu Klassen zusammengefasst die den Typ dieser Objekte definieren Assoziationen erlauben die Angabe von Beziehungen zwischen Objekten bzw Klassen F r den Datenbankentwurf ist die strukturierte Modellierung des Systems bestehend aus Objektklassen und Assoziationen zwischen den Klassen am wichtigsten Objekte entsprechen den Entities und Objektklassen beschreiben eine Men
86. UPDATE bzw DELETE 326 Datenbanken 3 2 Objektrelationales SQL in Oracle REF TABLE VARRAY Basisdatentyp Abb Objektrelationales Datenbankmodell Oracle 3 2 1 Objektrelationales Typsystem 3 2 1 1 Neue Basisdatentypen Large Objects LOBs Hierbei handelt es sich um Datentypen die es erlauben auch sehr gro e Attributwerte f r z B Multimedia Datenbanken zu speichern Die Gr e kann bis zu einigen Giga Bytes betragen Oracle unterscheidet zwei prinzipiell verschiedene Arten internal LOBS und external LOBs Binaray Files BLOB LOB mit unstrukturierten Bin rdaten CLOB ein LOB dessen Werte aus 1 Byte Character Daten bestehen entsprechend dem Character Set das f r die Datenbank definiert wurde NCLOB ein LOB dessen Daten aus Character Daten bestehen entsprechend einem nationalen Character Set BFILE Externes Large Object Binary Files sind Verweise auf Betriebssystemdateien im Filesystem Operationen EMPTY_BLOB EMPTY_CLOB182 BFILENAME IS NOT NULL Nicht erlaubt BLOB CLOBS Attribute GROUP BY ORDER BY Basisdatentyp Bedeutung NUMBER p g Zahl mit p lt 38 und 84 lt q lt 127 1 0 10 9 9 9 10 SMALLINT NUMBER 38 INTEGER NUMBER 38 DECIMAL p g NUMBER p g NUMERIC p q NUMBER p g 182 EMPTY_BLOB bzw EMPTY_CLOBO initialisieren LOB Lokatoren notwendig f r sp tere Zuweisung 327 Datenbanken
87. XML besitzen Weiterhin definiert die Norm verschiedene Funktionen die es erlauben XML Werte Instanzen des XML Datentyps aus herk mmlichen SQL Daten zu generieren Formen der bergabe von XML Werten Die Nutzung von Tabellen mit XML wertigen Spalten f hrt zur Frage in welcher Art XML Werte zwischen dem DBS und den Anwendungsprogrammen ausgetauscht werden sollen Die SQL Norm sieht hier zwingend die bergabe in der Form von Zeichenketten vor So werden XML Werte beim Auslesen aus der DB implizit oder explizit mit Hilfe der SQL XML Serialisierungsfunktion XMLSERIALIZE in Zeichenketten serialisiert und dann als VARCHAR Werte oder CLOB Werte an das Anwenderprogramm bergeben Die entgegengesetzte Richtung das Einbringen von XML Werten in die DB erfolgt analog Das Anwendungsprogramm bergibt XML Werte serialisiert als VARCHAR bzw CLOB Werte an das DBS dort werden diese dann implizit oder explizit ber die SQL 4 189 2B Tamino XML Server von der Software AG 190 sog Hybriddatenbanken z B DB2 von IBM Microsoft SQL Server und Oracle 362 Datenbanken XML Funktion xMLPARSE in Werte des Datentyps XML umgewandelt Diese Form der Daten bergabe wird textbasiert genannt Auch andere bergabeformen sind denkbar bin r z B als Baum im Falle eines XML Dokuments getrennte bergabe von Strukturinformationen und eigentlichen Daten z B numerische und boolesche Daten in nat rlicher Form Zusammenspiel von
88. angestellte NATURAL JOIN abteilung Join mit USING Klausel ber die USING Klausel kann explizit eine bestimmte Spalte f r die JOIN Bedingung angegeben werden Auch hier m ssen die Spalten in beiden Tabelle den gleichen Namen und Datentyp besitzen select name abt_id bezeichnung from angestellte INNER JOIN abteilung USING abt_id Join mit ON Klausel Join Pr dikate k nnen auch mit ON definiert werden Dies ist bspw dann erforderlich wenn die Spalten f r die Join Bedingung in beiden Tabellen nicht denselben Namen haben select distinct titel gehalt from angestellte ang INNER JOIN job j ON ang job_id J job_id and titel Systemplaner Bisher mu te ein INNER JOIN bspw so angegeben werden 242 Datenbanken select bezeichnung count ang_id anz_ang from angestellte ang abteilung abt where ang abt_id abt abt_id and job_id in SY IN group by bezeichnung Mit der ON Klausel l t sich das so schreiben select bezeichnung count ang_id anz_ang from angestellte ang join abteilung abt on ang abt_id abt abt_id where ang job_id in SY IN group by bezeichnung Mit Hilfe der ON Klausel l sst sich auch ein Mutiple Join realisieren select abteilung abt_id job titel count ang_id Anzahl avg job gehalt 12 Jahresdurchschnittsgehalt from abteilung join angestellte on abteilung abt_id angestellte abt_id join job on angestellte job_id job job_id group by abtei
89. 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 Methoden angesprochen bzw bearbeitet werden Konzept der Datenkapselung Lediglich ber die Implementierung der 23 z B ein Typkonstruktor zur Mengenbildung mit SET OF 67 Datenbanken Operatorprogramme k nnen direkte Zugriffe auf die Wertepr sentation codiert werden 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 entlast
90. auf derselben Fakten und Regelmenge Die Sicherung und Wiederherstellung der Daten wird durch die Betriebsumgebung geleistet Anderung der Fakten und Regeln sind sehr selten 1 2 2 4 Data Mining Fortschritte in Computer und Datenbanktechnologie erm glichen immer umfangreiches Sammeln von Daten mit der Problematik In riesigen Datenhalden Informationsjuwelen finden Ein L sungsansatz des Problems ist Wissensentdeckung in Datenbanken Knowledge Discovery in Databases KDD mit der Entdeckungsmethode Data Mining Data Mining ist Die Anwendung verschiedener Analyse und Lernmethoden zur Entdeckung von Wissen in Datenbanken automatische Gewinnung prognostischer Information aus gro en Datenbanken 1 2 2 5 Informationssysteme Electronic Data Interchange EDI Ein zwischenbetriebliches IS vebindet Informationssysteme zweier oder mehrerer Betriebe Das Spektrum der Zusammenarbeit umfa t elektronischer Austausch von Bestellungen electronic data interchange EDI virtuelle Organisation Informationssysteme einer gro en Anzahl von Betrieben verschiedener Branchen Ein EDI System ist ein System zur Abwicklung von Gesch ftstransaktionen bei denen ein Betrieb mit einem oder mehreren Gesch ftspartnern Lieferanten Gesch ftskunden Beh rden usw entweder direkt oder ber eine sog Clearung Stelle elektronische Gesch ftsdokumente austauscht EDI einheitliche Normen z B EDIFACT Normen bestimmen Inhalt und Sysntax
91. 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 evil Eigenschaftswerte und Zusicherungen notiert Methoden sind die aus anderen Sprachen bekannten Funktionen attribut1 attribut2 operation1 operation2 78 Datenbanken Bsp Automatische Geldausgabe ID Geraet Geraete Nr int BOOL indentifikation int id Tressor Kartenleser Kartenleser Bestand Geld 1000000 eingabeCode int code geldAuszahlen Geld g Userlnterface liesPIN betragAuswahl Geldautomat Bankinterface eingabePIN int code leseKundeninfo tartTransaktion 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 durchgezogen
92. bank Abb 1 5 13 Intranet Architektur 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 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 105 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 151 Datenb
93. bersetzer die Syntax der eingebetteten SQL Anweisungen berpr fen und bereits beim Kompilieren Aussagen ber fehlerhafte SQL Anweisungen machen Prinzipiell besteht auch die M glichkeit eine Verbindung zur Darstellung w hrend der bersetzung herzustellen damit Namen der Tabellen und Spalten in SQL Anweisungen berpr ft werden k nnen Der SQLJ Translator bersetzt ein gegebenes SQLJ Programm in ein Java Programm ohne SQL Klauseln Die SQLJ Quelltexte werden mit dem Kommandozeilenprogramm sql j kompiliert es werden SQLJ Profile angelegt die Informationen ber die eingebetteten SQL Operationen beinhalten sqlj optionen dateien optionen Eine durch Leerzeilen getrennte Liste von Parametern dateien Eine oder mehrere Dateien die kompiliert werden sollen Der Platzhalter kann bei den Dateien verwendet werden Der SQLJ Translator kann die Syntax der SQL Anweisungen direkt beim Kompilieren berpr fen Dazu setzt man bspw den folgenden Kommandozeilenbefehl ab sqlj user xyz12345 xyz12345 url jdbc oracle thin rfhs8012 1523 0ral0g Nach dem Kompilieren bersetzt ein Java Compiler die generierten Java Dateien in Java Byte Code 171 Der SQLJ Standard wurde von Compaq IBM Informix Micro Focus Micosoft Oracle Sun und Sybase entwickelt 290 Datenbanken SQLJ Profile Java Quellcode Java Quellcode SQL bersetzer mit Embedded SQL Java Compiler Syntax Checker Java Bytecode
94. bin re Daten denkbar als auch Text der nicht f r den XML Prozessor bestimmt ist Syntax lt NOTATION name identifier helper gt 4 1 1 3 XML Schema Schemadefinitionssprachen Jedes Element in der XML Schema Definition hat den Pr fix xsd der vorab mit dem XML Schema Namensraum assoziiert wurde Der Namenraum Pr fix hier gem Konvention xsd dient dazu die Schemadefinitions Tags wie lt xsd attribute gt oder lt xsd element gt weltweit eindeutig zu benennen Grunds tzlich werden bei XML Schemata zwischen komplexen Datentypen und einfachen Datentypen unterschieden Einfache Datentypen d rfen keine Elemente als Inhalt und keine Attribute besitzen Simple Types Simple Type Bsp string normalizedString token byte 1 126 unsignedByte 0 126 base64Binary hexBinary integer positivelnteger 1 126789 negativelnteger 126789 1 nonNegativelnteger 0 1 126789 nonPositivelnteger 126789 1 0 int 1 126789675 unsignediInt 0 1267896754 long unsignedLong short 1 12678 unsignedShort 0 12678 decimal 1 23 0 123 4 1000 00 float INF 1E4 0 0 double boolean true false bzw 1 0 dateTime duration date 1999 05 31 gMonth gYear 1999 gYearMonth 1999 02 time 13 20 00 000 anyURI language
95. davon ob die Tabelle ber einen auf dieser Spalte basierenden 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 120 Datenbanken 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 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 AN
96. definiert werden CREATE OR REPLACE PROCEDURE proc_name lt parameter_liste gt IS lt pl sql_body gt OR REPLACE existierende Prozedurdefinition wird berschrieben lt parameter_liste gt Deklaration der formalen Parameter lt variable gt IN OUT IN OUT lt datatype gt lt variable gt IN OUT IN OUT lt datatype gt 163 vgl Ueb7 doc 272 Datenbanken IN OUT IN OUT geben an wie die Prozedur Funktion auf die Parameter zugreifen kann Lesen Schreiben beides DEFAULT ist IN Bei OUT und IN OUT mu beim Aufruf eine Variable angegeben sein bei IN ist auch eine Konstante erlaubt lt datatype gt Alle von PL SQL unterst tzten Datentypen ohne L ngenangabe VARCHAR2 anstelle von bspw VARCHAR2 20 pl sql_body enth lt die Definition der Prozedur in PL SQL Analog kann eine Funktion definiert werden CREATE OR REPLACE FUNCTION funct_name lt parameter_liste gt RETURN lt ausdruck gt IS lt pl sql_body gt PL SQL Funktionen werden mit RETURN lt ausdruck gt verlassen wobei lt ausdruck gt ein Ausdruck ber PL SQL Variablen und Funktionen ist Jede Funktion mu mindestens ein RETURN Statement enthalten Gel scht werden k nnen Prozeduren bzw Funktionen ber DROP PROCEDURE prozedurname DROP FUNCTION funktionsname Im Gegensatz zu anonymen Bl cken b
97. 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 numerische FOR Schleife 260 Datenbanken 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 Bsp Verwendung einer for Ioop Anweisung declare anzSchleifendurchgaenge constant positive 100 an positive 1 j positive 1 begin for i in 1 anzSchleifendurchgaenge loop J 2 3 13 dbms_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 Schleife Die Ausf hrung wird mit der ersten Anweisun
98. den uOoIn Befeh und Methoden zur Abbildung von Integrit tsbedingungen Datenbankabfragen Join Befehl SQL 89 war kein expliziter JOIN Befehl bekannt Der JOIN wurde implizit durch die Angabe mehrerer Tabellen und einer Verkn pfungsopration in der WHERE Klausel hergestellt 3 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
99. die geladen werden soll mu sich in einem Pfad einer ZIP oder JAR Datei befinden die im CLASSPATH eingetragen ist175 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 Initialisierungs code beim JDBC Treibermanager an Selbstverst ndlich kann ein Programm viele verschiedene JDBC 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 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 durchz
100. 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 45 Datenbanken 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 Umwandlung des ER Modells in ein relationales Modell Entit tsmengen F r jede Entit tsmenge wird eine Relation erstellt die f r jedes Attribut eine Spalte besitzt Die Prim rschl ssel werden bernommen 1 1 und 1 n Beziehungen Eine der beiden Relationen wird um ein Attribut Spalte erweitert Bei 1 1 Beziehungen ist es egal welche der beiden Relationen erweitert wird In der 1 n Beziehung wird die Relation erweitert in der das n steht Besitzt die Relation beschreibende Attribute so werden diese zus tzlich noch bei der erweiterten Relation angegeben Bei dieser Darstellung k nnen Nullwerte auftreten m n Beziehungen Bei einer m n Beziehung ist immer eine zus tzliche Relation zur Verkn pfung der Relationen erforderlich um die betreffenden Entit ten zu verkn pfen Diese
101. ein Element Der Inhalt der Elemente kann durch Werte zwischen Tags und innerhalb von Tags bereitgestellt werden Elemente k nnen Inhalte Child Elemente oder beides enthalten oder sie k nnen leer sein Zur Anlage eines leeren Elements hat das zugeh rige Tag folgendes Format lt name gt Elemente besitzen auch Attribute z B hat das Kapitel Element eine Attribut nummer Der Attributwert steht in doppelten Anf hrungszeichen lt kapitel nummer 1 gt Bei Elementnamen und Attributnamen wird auf Gro und Kleinschreibung geachtet 54 kann verwendet werden falls der Elementinhalt leer ist 93 Datenbanken Abb K rper eines XML Dokuments Jedes Element besitzt exakt einen Parent ein Parent kann eine beliebige Anzahl Kinder bzw children besitzen Da XML strikt hierachisch ist mu beim Einf gen eines Elements innerhalb eines anderen Element das Ende Tag des neuen Elements vor dem Ende Tag des Parent Elements stehen XML Dokumente m ssen bestimmte Syntaxregeln einhalten z B F r jedes von Syntaxregeln definierte und verwendete ffnende Tag mu es ein schlie endes Tag geben lt xml version l1 0 gt lt firstTag gt lt secondTag gt lt informationTag gt information lt informationTag gt lt secondTag gt lt firstTag gt Die Syntaxregeln sorgen f r die hierarchische Integrit t von Dokumenten Bsp Elemente und Attribute lt xml version 1 0 gt lt angestelltenliste gt G Elemen
102. einer Zeichen Datums oder einer numerischen Spalte ae gr ten Wert einer Zeichen Datums oder einer numerischen Spalte ee 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 FROM ANGESTELLTE JOB WHERE ANGESTELLTE JOB_ID JOB JOB_ID AND JOB GEHALT SELECT MAX JOB GEHALT FROM JOB 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 qu 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 QZH 2 Bestimme eine Liste die die Iden
103. enthalten dazwischen Daten Elementinhalt z B Juergen k nnen auch leer sein lt Name gt k nnen auch Starttags mit Attributen enthalten Auch Schachtelungen sind erlaubt lt Adresse gt lt Ort gt Regensburg lt Ort gt lt Adresse gt Grunds tzlich sieht eine ELEMENT Deklaration in einer DTD so aus lt ELEMENT name content model gt Als Inhaltsmodell content model k nnen beliebig terminale und nicht terminale Elemente gew hlt werden Terminale Elemente werden durch den Typ PCDATA beschrieben Elementinhalte k nnen deshalb auch Elemente im Rahmen einer Element schachtelung neben Zeichenketten Processing Instructions Kommentare sein Eine DTD legt die Strukturierung Schachtelung und Benennung der Elemente bzw Attribute fest Bsp lt ELE lt E iE lt IE iE lt IE iE lt IE iE lt IE iE adresse ort plz strasse nummer email gt ort PCDATA gt plz PCDATA gt strasse PCDATA gt nummer PCADATA gt email PCDATA gt SKESKE 22222 PCDATA bedeutet Die Elemente sind atomar d rfen also nur Parsed Character Data Text enthalten Datentypen wie in SQL gibt es ansonsten nicht Die Strukturierung wird durch Ausdr cke beschrieben die folgende Konstruktoren beinhalten k nnen Sequenz A1 A2 Die Sequenz gibt die Reihenfolge der Elemente vor hier mu A1 vor A2 kommen Alternative A1 A2 Hier mu
104. 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 rollback84 Ablauf des 2PC Protokolls Alle beteiligten Transaktionen werden 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 us
105. 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 B ume verwandt Index Set equence 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 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 25 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
106. gleichartigen Knoten zuordnet Type kann ein atomarer Typ z B string int oder ein mengenwertiger Typ sein Value ist ein zum Typ passender Wert Object ID der einzelnen Knoten Jeder Knoten in einem Dokumentgraphen entspricht einem Objekt in einem Objektgraphen Kanten entsprechen Referenzen bzw Attributen vom Typ String buch buch 2 title editor author uthor title XM amp Datenbanken edjt r B WEB amp Datenbanken Meike Klettke Gottfried Vossen Holger Meyer dPunkt Verlag Abb Darstellung von Daten in einem Dokumentgraph 90 Datenbanken Das OEM wird f r die Semantikdefinition von Anfragesprachen verwendet F r Datenbankbenutzer ist die Darstellung semistrukturierter Daten mit der XML von gr erem Nutzen lt lexikon gt lt eintrag stichwort Information gt lt herkunft gt lat lt herkunft gt lt erklaerung num 1 gt Auskunft Nachricht Mitteilung Belehrung lt erklaerung gt lt erklaerung num 2 gt lt siehe_auch gt Fachinformation lt siehe_auch gt lt erklaerung gt lt erklaerung num 3 gt lt anwendung gt Informatik lt anwendung gt die formulierte Unterrichtung nicht nur von Menschen sondern auch von Organisationen und techn Einrichtungen ber Sachverhalte Ereignisse Abl ufe Die lt siehe_auch gt Informationstheorie lt siehe_auch gt versteht unter Informatik ein Ma das den Zeichen einer Nachricht zugeordnet ist lt erklaerung gt lt eintrag gt lt lex
107. logisch wiederspruchsfrei 82 Integrit t allg bereinstimmung von realen und gespeicherten Daten 129 Datenbanken berlappenden Transaktionen muss sich ein Programm also genauso verhalten wie im Einbenutzerbetrieb Unter Dauerhaftigkeit versteht man dass von einer erfolgreich abgeschlossenen Transaktion vorgenommenen Anderungen 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 im 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 Tra
108. lt angestellte angid A401 gt 7 lt name gt Werner lt name gt lt gehalt gt 30000 lt gehalt gt lt angestellte gt lt angestellenliste gt Bei folgenden Bestandteilen eines XML Dokuments wird zwischen Gro und Kleinschreibung unterschieden Elementtypnamen Attributsnamen Attributwerte alle allgemeinen Entity Namen und Entity Namen f r Parameter Schema oder kein Schema Ein XML Dokument kann entweder ein Schema besitzen oder auch nicht Falls einem Dokument ein Schema zugeordnet ist mu dieses Schema auch eingehalten werden Ein XML Dokument mit einem Schema hei t valide oder g ltig falls es die im Schema festgelegten Anforderungen erf llt 4 1 1 2 Bestandteile der Sprache und deren DTD Definition Entity Entities In der XML Terminologie werden Grundelelmente von XML Dokumenten als ENTITY ENTITIES bezeichnet die entweder verabeiteten Text parsed character data oder Rohtext unparsed character data enthalten Der verarbeitete Text umfa t sowohl den Dateninhalt als auch deklarative Textauszeichnungen die die logische Struktur von Text beschreiben Syntax lt ENTITY name value gt Allgemeine Entity Deklaration zur Definition von Dokumentbestandteilen lt ENTITY hansesailtermin 11 14 August 2005 gt lt ENTITY hansesailteilnehmer 200 Traditionssegler und Museumsschiffe gt lt veranstaltung gt Die Hansesail findet in diesem Jahr vom amp hansesailtermin statt Es
109. maria ist Ein solcher Fakt existiert und das f hrt zum Ergebnis z anton ooNODOIP 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 207 Datenbanken 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
110. mit der On Klausel ON Pr dikat oder mit USING spaltennamensliste ausgedr ckt wird 3 Mengenoperationen anfrageausdruck UNION INTERSECT EXCEPT ALL DISTINCT CORRESPONDING BY spaltennamenliste anfrageausdruck 4 Sortierung Die Order by Klausel anfrageausdruck ORDER BY sortierliste erm glicht die Sortierung in der Ergebnistabelle einer Abfrage 5 Navigierende Anfragen Navigierende Ausdr cke werden mit Hilfe von Pfadausdr cken formuliert Pfadausdr cke ergeben sich durch Schachtelung von Tupelfeldzugriffeb und Dereferenzierungen z B select anr vorgesetzter gt anr from angestellte where anschrift ort vorgesetzter gt anschrift ort 6 Anfrage mit Methodenaufrufen Ein Methodenaufruf liefert einen Wert Demnach kann eine Methode berall dort eingesetzt werden wo ein Wert erwartet wird 324 Datenbanken 7 Anfrage mit Kollektionen Der UNNEST Operator UNNEST kollektionswertausdruck WITH ORDINALITY wandelt eine Kollektion in eine Tabelle um 8 Anfrage auf flache Tabellenextensionen Die flache Extension einer Tabelle enth lt nur die Zeilen die nicht einer ihrer Subtabellen angeh ren Der Ausdruck ONLY tabellen bzw anfragenname liefert die flache Extension einer typisierten Tabelle 9 Typspezifische Anfragen Der Typ einer Instanz kann mit dem Typpr dikat abgefragt werden strukturierter wertausdruck IS NOT OF typnamensliste Die Typnamenslisite besteht aus
111. nnen falls es Mehrdeutigkeiten gibt Eine ORDER BY Klausel ist in einer Anwendung f r eine verschachtelte Unterabfrage nicht gestattet Die u ere Abfrage ist der einzige Bestandteil der Anweisung die eine ORDER BY Klausel verwendet Unterabfragen k nnen bis zu einer Tiefe von 255 Ebenen verschachtelt werden Die Anzahl der Ebenen die in einer Unterabfrage verwendet werden k nnen zu einer komplexen Anweisung und zu einer schlechten Leistung f hren SQL Anweisungen k nnen durch Verwendung von gespeicherte SQL oder Java Funktionen vereinfacht werden Unterabfragen lassen sich einteilen in verschachtelte Unterabfragen abh ngige Unterabfragen 151 Geeignete Vergleichsoperatoren sind einwertige Vergleichsoperatoren gt lt gt lt lt gt mehrwertige Vergleichsoperatoren IN gt ANY lt ANY ANY Falls eine Unterabfrage mehrere Zeilen zur ckgibt und ein einwertiger Vergleichsoperator verwendet wird dann tritt ein Laufzeitfehler auf 244 Datenbanken Verschachtelte Unterabfragen Sind unabh ngig von ihren bergeordneten Abfragedaten und werden einmal vor ihrer bergeordneten Abfrage ausgef hrt Abh ngige Unterabfragen Eine abh ngige Unterabfrage h ngt von den Informationen ihrer bergeordneten Abfrage ab Die Daten der bergeordneten Zeile werden verwendet um die abh ngige Unterabfrage auszuwerten die dann ein Ergebnis zur ckgibt das in der bergeordneten Abfrage verwendet werden
112. 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 45 Kollaboration Die Gesamtheit der Objekte die bei der Ausf hrung einer Aufgabe interagieren einschl der Verkn pfung zwischen ihnen 83 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 Vorlesungsverzeichnis entleihen Buch Abb Sequenzdiagramm Neue Vorlesung anbieten 2 Kollaborationsdiagramme Ein Kollaborationsdiagramm ist ein Interaktionsdiagramm in dem die strukturelle Organisation der Objekte im Vordergrund steht die Nachrichten senden bzw empfangen Sequenz und Kollaboratio
113. pfen da sich der Benutzer nach eigenem Belieben durch die Informationen bewegen kann Die Verkn pfungen erscheinen dabei als Knoten in einem verwobenen Netz erweis rweis kument 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 Dokumenten zwischen Client und Server Client Programme die HTTP benutzen werden in der Regel als Web Browser Server Programme als We
114. puffer varchar2 500 textlaenge number position number read_counter number amount number begin position T RAW locator var Variable fuer die Ausgabe Anzahl zu lesender Zeichen Variable fuer den Offset 330 Datenbanken select programm into textdaten from progrText where name ImageViewer java textlaenge DBMS_LOB GETLENGTH textdaten read_counter 0 amount 50 WHILE read_counter lt textlaeng LOOP DBMS_LOB READ textdaten amount read_counter l puffer DBMS_OUTPUT PUT_LINE puffer read_counter read_counter amount END LOOP end Innerhalb eines PL SQL Blocks kann das DBMS_OUTPUT Package zum Anzeigen von Variablenwerten verwendet werden PUT_LINE zeigt die Ausgabe in einer Zeile Vor dem Einsatz des DBMS_OUTPUT Package ist der Befehl set serveroutput on auszuf hren 3 2 1 2 Aggregations Typen 3 2 1 2 1 Variabler Arraytyp create type arraytypname as varray arraygroesse of elementtyp Alle Elemente haben den gleichen Typ Typ kann UDT User Defined Type sein Maximall nge mu definiert werden Mit der modify limit Klausel des alter type Befehls kann die maximale Anzahl der erlaubten Eintr ge in einem variablen Array ver ndert werden Zugriff ber ganzzahligen Feldindex Verwendung als Datentyp f r Spalten in Oracle eigener Datentyp n tig 183 Bsp cr ate type te
115. relationalen Datenbanken und XML Zwei Zielsetzungen sind beim Zusammenspiel von relationalen Datenbanken und XML zu unterscheiden 1 Speicherung von XML Dokumenten in relationalen DBS 2 Transformation relationaler Daten in XML Dokumente Speichern shreddern Relation Ve ffentlichen publizieren Abb Zusammenspiel relationaler DB und XML Der neue Datentyp XML Datenbank Anbieter haben Unterst tzung f r Speicherung und Abfrage von XML Dokumenten Speicherung und Abfrage in ihre relationalen DBS integriert F r die Verwaltung von XML Dokumenten gibt es in den relationalen DBS den Attributtyp xm1 so da man diesem Attribut ein XML Dokument zuordnen kann z B create table buecher isbn varchar 20 primary key Beschreibung xml Das Attrribut beschreibung vom Typ xm1 nimmt ein komplettes XML Dokument auf Bsp Einf geoprationen in die Tabelle buecher insert into buecher values 3486273922 lt buch jahr 2006 gt lt titel gt Datenbanksysteme Eine Einf hrung lt sftitel gt lt autoren gt lt autor gt lt vorname gt Alfons lt vorname gt lt nachname gt Kemper lt nachname gt lt autor gt 363 Datenbanken lt autor gt lt vorname gt A ndre lt vorname gt lt nachnamesEickler lt nachname gt lt autor gt lt autoren gt lt verlag gt Oldenbourg Verlag lt verlag gt lt buch gt insert into buecher values 0136292399 lt buch jahr 1994 gt lt titel gt Object or
116. s r LNR NAME s LNR TNR a A a 1 b B a 2 C b 2 188 Datenbanken G 3 Finde die Namen aller Lieferanten mit den Teile Nr die die Lieferanten liefern q r LNR LNR s Ergebnisrelation v q NAME TNR 3 Gegeben ist r LNR TNR a 1 b 2 b 3 le 4 3 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 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 A B C a A U V W 8 9 Das cartesische Produkt ist R1 R2 R3 S1 8S2 B 14 2 8 A A B C 9 U V W 1 2 U V W 8 9 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 von Urbild Definition b x y ist eine bin re Relation oder Abbildung Die Bildmenge von x unter b ist dann gp x y x y
117. 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 2 3 2 5 3 Trigger Oracle unterscheidet drei Trigger Typen DML Trigger Instead of Trigger System Trigger DML Trigger Anweisungen aus dem DML Bereich von SQL wie INSERT UPDATE DELETE K nnen einen DML Trigger ausl sen Dabei kann man bei der Programmierung des Triggers bestimmen ob die Anweisungen vor oder nach dem ausl senden Ereignis vor oder nach dem Eintragen L schen Aktualisieren also ausgel st werden sollen Instead of Trigger Auch Instead of Trigger reagieren auf DML Operationen allerdings ausschlie lich nur auf Sichten relationale oder Objekt Sichten System Trigger Der System Trigger ist ein Werkzeug zum Abfangen von System Ereignissen und DDL Befehle Systemereignisse k nnen bspw das Starten und Hochfhren der Datenbank das An und Abmelden von Benutzern sowie Fehler sein 1 DML Trigger Sie sind eine spezielle Form von PL SQL Trigger dienen ebenso wie Constraints der Integrit tssicherung Constraints sind allerdings viel einfacher zu 269 Datenbanken 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 vie
118. und deren Schachtelungsstruktur werden durch Verwendung von Elementdefinitionen mit lt ELEMENT gt angegeben Ebenso k nnen die g ltigen Attribute durch Attributdeklarationen mi lt ATTLIST gt definiert werden Eine DTD ist kein Datenbankschema XML Schema Sprache zur Modellierung strukturierter Informationen gt 7 XML Schema oder XML Schema Definition XSD ist eine weitere M glichkeit zur Definition einer Vorlage f r XML Dokumente Es hat hnliche Funktion wie die DTD unterst tzt jedoch Datentypen und Namensr ume WSC Standard zur Festlegung von Inhalt und Struktur von XML Dokumenten Anbieter einer Vielzahl von Datentypen Voraussetzung f r strukturierte Speicherung Voraussetzung f r strukturierte Speicherung Definition eigener Datentypen Bezugnahme auf vielf ltige vordefinierte Datentypen Das XML Schema wird in in XML geschrieben 55 Diesbez gliche Zeichen wie lt und gt sind somit in einem PCDATA Bereich nicht erlaubt und m ssen in dem Element symbolisch durch Angaben wie amp 1t und amp gt ersetzt werden 56 G ltigkeitspr fung durch Bereitstellen einer kontextfreien Grammatik f r Dokumente und deren Elemente 57 W3C Standard zur Festlegung von Inhalt und Struktur von XML Dokumenten 58 alternativ zur Dokumenttypdefinition der DTD 96 Datenbanken sehr gute Unterst tzung regul rer Ausdr cke Der wohl wichtigste Unterschied zwischen der Definition mit Hilfe vo
119. 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 Einzelheiten 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 9 berlagert mit der sich die 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 p Es stellt h heren Schichten Operationen zum Lesen Einf gen Andern 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 Spe
120. von elektronisch zu bertragenden Daten Eine Schl sselrolle spielt hierbei die Verwendung der Extensible Markup Language XML Sie dient zur Grundlage zur Beschreibung von EDI Dokumenten Einfachen und effizienten Weiterverarbeitung der Daten XML XML ist ein vom World Wide Web Consortium W3C entwickelter Standard eine Metasprache mit der man Auszeichnungen Markups zu Dokumenten f r die Strukturbeschreibung hinzuf gen kann XML erm glicht es als ein f r den Informationsaustausch nutzbares Format interne Unternehmensdaten ber Systemgrenzen und Plattformen hinweg im Internet nutzbar zu machen lt lexikon gt lt eintrag stichwort Information gt lt herkunft gt lat lt herkunft gt lt erklaerung num 1 gt Auskunft Nachricht Mitteilung Belehrung lt erklaerung gt lt erklaerung num 2 gt lt siehe_auch gt Fachinformation lt siehe_auch gt lt erklaerung gt 18 Datenbanken lt erklaerung num 3 gt lt anwendung gt Informatik lt anwendung gt die formulierte Unterrichtung nicht nur von Menschen sondern auch von Organisationen und techn Einrichtungen ber Sachverhalte Ereignisse Abl ufe Die lt siehe_auch gt Informationstheorie lt siehe_auch gt versteht unter Informatik ein Ma das den Zeichen einer Nachricht zugeordnet ist lt erklaerung gt lt eintrag gt lt lexikon gt Abb XML Dokumment zur Darstellung semistrukturierter Informationen Quelle der Inhalte Der Brockhaus in f n
121. werden amp hansesailteilnehmer erwartet lt veranstaltung gt Entityreferenz amp Entityname Vordefinierte Entities dienen zur Verwendung spezieller Zeichen amp lt f r lt amp auml f r amp gt f r gt amp Auml f r amp amp f r amp amp ouml f r amp apos f r amp Ouml f r O amp quot f r amp uuml f r amp szlig f r B amp Uuml f r U 355 Datenbanken Die Zeichen k nnen nicht direkt im Text dargestellt werden da sie eine besondere Bedeutung haben Diese Entities kann jeder XML Prozessor auswerten Character Entities dienen zur Definition von Sonderzeichen und Zahlen F r Dezimalzahlen ist zu unterscheiden Dezimalzahlen im Bereich 0 255 Verwendung der Zeichen der erweiterten ASCII Menge ISO 8859 1 auch Latin 1 genannt Dezimalzahlen im Bereich 256 65535 Verwendung der Zeichen des Unicode Zeichensatzes ISO 10646 Anstelle von Dezimalzahlen lassen sich Hexadezimalzahlen verwenden diesen wird ein x vorangestellt Beispiel amp 60 stellt das Zeichen lt dar Nichtgeparste Entities werden zur Einbindung anderer Dateiformate z B Bilder und hnliches verwendet Bsp lt ELEMENT Hotel PCDATA gt lt ATTLIST Hotel ansicht ENTITY IMPLIED gt lt ENTITY ansicht_Huebner SYSTEM ansicht_Huebner gif NDATA GIF gt lt NOTATION GIF SYSTEM gifviewer exe gt lt Hotel ansicht ansicht_Huebner gt Strand Hotel H bner lt Hotel gt
122. wird Der SQL 92 Standard und Oracle SQL bieten hier verschiedene Konzepte an Embedded SQL in Oracle Jeder in einem Programm eingebettete SQL Anweisung ist der Vorspann Prefix EXEC SQL zur Unterscheidung von Anweisungen der gastgebenden Sprache vorangestellt Ein Semikolon bildet den Abschlu Die Ubersetzung 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 generiere
123. wurden von ANSI ISO zur Standardisierung von SQL herausgegeben SQL 86 SQL Sprachstandard der im Jahre 1986 verabschiedet wurde 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 ANSI 89 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 130 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 216 Datenbanken Im wesentlichen umfassen die Erweiterungen zu SOL 89 Datenbankabfragen insbesondere
124. zwischen den Entit tstypen E bzw E stellt sich dann folgenderma en dar 51 Datenbanken E 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 e4 ep ek vom Typ E Ein Set Typ bestimmt eine 1 n Beziehung Die Auspr gungen eines speziellen Set Typs beschreibt man mit Hilfe eines Occurrence Diagramms Nichtleerer Set Owner Be 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 zuge
125. 0 15 03 2002 Die Datentypen person_t bzw job_t werden angelegt create or replace type person_t as object name varchar2 10 gebdatum date Anlegen des Datentyps job_t create or replace type job_t as object beruf varchar2 30 gehalt number 8 2 einstelldatum date und in der Objekt View angestellte_ov eingesetzt create view angestellte_ov ang_id person job as select ang_id person_t name gebdatum job_t beruf gehalt einstelldatum 346 Datenbanken from angestellte_basis Beim Anlegen einer Objekt View erfolgt die Referenzierung ber die Namen der Konstruktormethoden Daten k nnen ber Objekt Views bzw ber die relationale Tabelle eingef gt manipuliert werden Objekt Views mit Referenzen Gegeben sind 2 relationale Tabellen create table personen pers_id varchar2 3 constraint personen_PK primary key name varchar2 10 strasse varchar2 15 ort varchar2 15 plz number insert into personen values POl Juergen Kirchplatz 7 Bad Hersfeld 36251 create table verabredungen pers_id varchar2 3 ruf_nr varchar2 15 ruf_datum date constraint verabredungen_PK primary key pers_id ruf_nr constraint verabredungen_FK foreign key pers_id references personen pers_id der Fremdschluessel definiert die Beziehung zwischen den beiden Tabellen Falls die Tabelle personen mit anderen Tabe
126. 1 5 22 Verteilte 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 115 Die Anwendung arbeitet mit globalen Relationen d h der Programmierer braucht keinen Kenntnis ber Fragmentierung und Allokation 162 Datenbanken 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 Relation 6 Konto nach Filialen Jede Filiale speichert auf ihrem Rechner die sie betreffenden Daten Horizontale Fragmente Konto Nr Inhaber Filiale Kontostand ee Bad Hersfeld u lesen Me Bad Hersfeld Globale Rlation 0 Plannnnunanee OO aeren Bad Hersfeld Konto Nr Inhaber Filiale Kontostand Kon
127. 20 ps Hilfsgroessen J x 7 int erg short rlen short rcod 319 Datenbanken Zielpuffer fuer die Ergebniss iner einzelnen Zeile aus der Ergebnismeng iner SQL Abfrage X7 iR char angid 4 char angnam 11 char anggeb 9 z Puffer fuer Uebergaben vom C Programm aus an 67 das ORACLE System zy char konst 255 27 Einloggen in das ORACLE System unter Angabe von Xj Passwort und Kennung R IR 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 A Aufruf fuer die Aufnahme von Ergebnissen dienen soll FR erg oopen cursor_data_area logon_data_area char 1 1 char 0 1 oci_error erg oopen cursor_data_area 1 F Angabe des SQL Kommandos das beim nachsten oexec Kommando auf die angegebene CURSOR DATA AREA x7 durchgefuehrt werden soll ER Eg erg osql3 cursor_data_area SELECT ANGESTELLTE ANG_ID ANGESTELLTE NAME FROM ANGESTELLTE ABTEILUNG WHERE ANGESTELLTE ABT_ID ABTEILUNG ABT_ID AND ABTEILUNG BEZEICHNUNG
128. 59 F r Pfadausdr cke gibt es die vom World Wide Web Consortium standardisierte Sprache XPath die u a a f r XML Style Sheets verwendet wird 60 Ausgesprochen flower 98 Datenbanken Bei der Modell gesteuerten Abbildung gibt es ein konkretes Modell nach dem die XML Struktur implizit oder explizit auf die Datenbank Struktur6 abgebildet wird Zwei bekante Modelle sind das Table Modell bei dem ein XML Dokument auf einzelne oder mehrere Tabellen einer relationalen Datenbank abgebildet wird und das datenspezifische Objekt Modell bei dem der XML Baum direkt auf eine objektorientierte oder hierarchische Datenbank abgebildet wird Bsp Table Modell XML Dokument Struktur entspricht dem relationalen Schema oder Teilen davon bzw einer Ergebnismenge lt database gt lt table gt lt row gt lt column1 gt lt columnl gt lt column2 gt lt column2 gt lt row gt lt table gt lt database gt Abb Kanonische Abbildung auf lt db gt lt table gt lt attribut gt Tags Die XML DB Middleware f llt die Elemente oder entnimmt die Daten Die Abbildung der Daten erfolgt auf Meta Elemente der Datenbank Tabellen Spalten Views Bsp Objekt Modell Der Objektbaum tree eines XML Dokuments stellt die Eingabereihenfolge der von der zugeh rigen DTD definierten Elemente der XML Struktur bersichtlich dar lt xml version l1 0 gt orders lt orders gt lt purchaseorder ID O007 gt
129. 91 Datenbanken Verbindungskontexte mit DefaultContext Einen Verbindungskontext der innerhalb eines SQLJ Blocks genutzt werden kann erstellt man ber die Klasse sqlj runtime refDefaultContext Einen DefaultContext legt man mit Hilfe einer gew hnlichen JDBC Verbindung also mit einem Objekt vom Typ java sql Connection ber folgenden Konstruktor an DefaultContext java sql Connection conn conn Die Datenbankverbindung die durch diesen Kontext verwendet werden soll Alternativ k nnen dem Konstruktor auch die Verebindungsdaten bergeben werden Die Klasse Defaultkontext stellt dann intern eine Verbindung anhand der bergebenen Daten her DefaultContext java lang String url java lang String user java lang String password boolean autoCommit172 Mit der statischen Methode setDefaultContext wird der Defaultkontext bei der SQLJ Implementierung als standardm ig genutzte Verbindung registriert DefaultContext setDefaultContext DefaultContext context Alle darauf folgenden SQLJ Bl cke nutzen dann die im Parameter context gekapselte Verbindung Wurden mehrere Verbindungskontexte angelegt dann kann bei einem SQLJ Block festgelegt werden welchen Kontext dieser verwenden soll sq1 Kontextname SQOLJ Anweisung Ausf hren und Auswerten ber Anfragen Ein SQLJ Block wird grunds tzlich als Anweisung interpretiert die ber die zuvor definierte SQLJ Anweisung ausgef hrt wird
130. ATA Abschnitts lt CDATAlcdata stuff gt Dokumenttyp Deklaration lt DOCTYPE name externel ID DTD Stuff gt Verarbeitungsanweisungen lt processorlD data gt XML Deklaration lt xml version encoding standalone gt Abb bersicht zu XML m glichen Auszeichnungen XML ber cksichtigt sowohl bei den Auszeichnungen als auch bei Zeichendaten Gro und Kleinschreibung 4 1 1 1 XML Dokumente Aufbau Ein XML Dokument besteht aus Prolog optionale Pr ambel optionalem Schema und einem Wurzelelement K rper Der Prolog optionale Pr ambel kann umfassen in der ersten Zeile XML Version und Zeichencodierung Bsp lt xml version 1 0 encoding UTF 8 in der zweiten Zeile die DTD Dokument Typ Deklaration Bsp lt I DOCTYPE adressbuch SYSTEM adressbuch dtd gt in der dritten optionalen Zeile den XSL Stylesheet der zur Formatierung der XML Datei verwendet wird Bsp lt xml stylesheet type text xsl href demo xsl gt Danach beginnt der K rper des Dokuments Zuerst kommt das Wurzelelement Es kann beliebig viele und beliebig tief geschachtelte Unterelemente beinhalten Ein XML Dokument darf nur eine Wurzel haben F r jeden Starttag mu es auch 353 Datenbanken einen Schlu tag geben Innere Elemente m ssen immer geschlossen sein bevor ein usseres geschlossen werden kann Der Tag der zuerst ge ffnet wurde mu zuletzt geschlossen werden Es handelt sich also um eine Baumst
131. Arrays bzw Tabellentyps insert into mitarbeiterTupelTabelle name hobbies telefone values Johnny hobbiesTabellenTyp Reisen Sport Kino telefonArrayTyp 0041 1 6327248 0041 1 7337947 Zugriff auf Instanzen erfolgt analog zu anderen Attributen select name telefone hobbies from mitarbeiterTupelTabelle select from mitarbeiterTupelTabelle 332 Datenbanken Bearbeitung innerer Tabellen Tupel in innere Tabelle einf gen insert into TABLE lt SFW_Query_liefert_innere_Tabelle gt values Tupel einer inneren Tabelle ndern update TABLE lt SFW_Query_liefert_innere_Tabelle gt values set where Tupel einer inneren Tabelle l schen delete from TABLE lt SFW_Query_liefert_innere_Tabelle gt where Einf gen Aktualisieren und L schen wird durch die TABLE Funktion unterst tzt Die TABLE Funktionn kann bei allen inserts und deletes eingesetzt werden die direkt auf die verschachtelte Tabelle ausgef hrt werden Bsp insert into table select hobbies from mitarbeiterTupelTabell where name Johnny values Film select from mitarbeiterTupelTabelle update table select hobbies from mitarbeiterTupelTabel where name Johnny h set value h TV value ist hier noetig um auf den Wert where value h Film der Tupel der inneren Tabell zuzugreife select from m
132. 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 118 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 119 vgl Bernstein P Synthesizing Third Normal Form from Functional Dependencies ACM Transactions on Data Base Systems December 1976 Seiten 277 298 178 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 l 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 vorbestimnte 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 4 8 9 Fakt Entit tsattribute vgl 1
133. 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 132 das Datenfeld mu immer nur einen Wert enthalten 133 Jegt eine Spalte fest Mit der CHECK Klausel werden Tabelle Spaltenbedingung definiert 134 Die besteht aus einem bedingten Ausdruck der mehrere miteinander durch AND OR oder NOT verkn pfte Pr dikate verwenden darf 219 Datenbanken 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 REATE TABLE Abteilung ID CHAR 2 Bez CHAR 40 M P axAngestellte INTEGER RIMARY KEY ID Create TABLE Angest
134. BMS Generell werden 3 Arten von Methoden unterschieden Instanzmethoden statische Methoden Konstruktormethoden Objektrelationale Tabellen Das Konzept einer Tabelle stellt auch im objektrelationalen Datenbanksystem die einzige persistente Datenstruktur dar Neben normalen Tabellen gibt es typisierte Tabellen die auf einem Strukturdatentyp basieren 1 Tupeltabellen Eine Tupeltabelle beschreibt eine persistente Multimenge von Tupeln Der Typ einer Spalte in einer Tupeltabelle ist mit der objektrelationalen Erweiterung des Typsystems nicht mehr nur auf Basistypen beschr nkt Es kann ein beliebiger Datentyp des Typsystems sein 2 Typisierte Tabellen Eine typisierte Tabelle bezeichnet eine Tabelle deren Typ mit Hilfe eines Strukturdatentyps festgelegt wird Typisierte Tabellen in Oracle Eine typisierte Tabelle st tzt sich in Oracle auf einen Objekttyp ab Oracle versteht daher unter typisierten Tabellen Objekttabellen 1 3 7 3 2 Objektrelationale Unterst tzung in SQL3 Die SQL Object Spezifikation erweitert SQL 92 um objektrelationale F higkeiten Neue Datentypen sind boolsche Zeichen und bin re gro e Objekte LOBSs Objekte in SQL3 Im Rahmen der SQL Foundation und Object Spezifikation erlaubt SQL benutzerdefinierte Datentypen Typkonstruktoren Kollektionstypen benutzerdefinierte Funktionen und Prozeduren Unterst tzung gro er Objekte und Trigger In SQL3 gibt es zwei Objekttypen Row oder Tupel Typen deren Instanzen
135. BMS 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 den Anweisungsteil 314 Datenbanken 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 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 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 da mehrere Aktionen erfolgreich abgeschlossen sein m ssen bevor die nderungen wirksam werden k nnen d h entweder alle SQL Anweisungen m ssen erfolgreich ausgef hrt werden oder aber keine Die Anwendung mu um in den Transaktionsbetrieb zu schalten die AutoCommit Funktion abschalten die beim Verbindungsaufbau standardm i
136. BMS_LOB Package k nnen LOB Werte ver ndert bzw ausgew hlt werden Unterprogramme Beschreibung APPEND Prozedur h ngt die Inhalte eines LOB Werts an einen anderen LOB Wert an CLOSE Prozedur schlie t einen zuvor ge ffneten internen oder externen LOB COMPARE Prozedur vergleicht 2 LOB Werte COPY Prozedur kopiert den gesamten LOB oder bestimmte Teile in ein Ziel LOB ERASE Prozedur l scht den LOB ganz oder teilweise FILECLOSE Prozedur schlie t die Datei FILEEXISTS Funktion Pr ft ob die Datei auf dem Server vorhanden ist 329 Datenbanken FILEGETNAME Prozedur Holt den Dateinamen und den Verzeichnis Alias ab FILEISOPEN Prozedur Pr ft ob eine Datei mit Hilfe des Eingabe BFILE Locator ge ffnet w GETLENGTH Funktion holt die L nge des LOB Werts ab INSTR Funktion liefert die bereinstimmende POsition des n ten Vorkommens des Musters im LOB ISOPEN Funktion Pr ft ob das LOB bereits mit Hilfe des Eingabe Locators ge ffnet w LOADFROMFILE Prozedur L dt BFILE Daten in ein internes LOB LOADBLOBFROMFILE Proz L dt BFILE Daten in einen internen LOB LOADCLOBFROMFILE Proz L dt CLOB Daten in einen internen LOB OPEN Prozedur ffnet ein LOB im angegebenen Modus READ Prozedur Liest die Daten des LOB ab dem vorgegebenen Offset SUBSTR Funktion liefert Teile des LOB Werts ab dem vorgegebenen Offset TRIM Funktion k rzt d
137. BT bertragungskabel RT Starkstromkabel Koaxialleitung USE Koaxialkabel Koaxialfilter BT Elektr Filter RT Mikrowellenfilter Kobalt BT Metall Ein Thesaurus ist eine Dokumentationssprache3 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 Wenn 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
138. CT 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 72 Die Angaben zu den Spalten sind auch in Verbindung mit ALTER TABLE m glich 73 Namen der Spalten die mit den von der Unterabfrage zur ckgegebenen Werten assoziiert werden sollen 74 Zul ssige select Anweisung die beim Erzeugen der neuen Tabelle verwendet wird 124 Datenbanken In gewisser Hinsicht ist SOL gegenw rtig die standardisierte Datenbanksprache Es bestehen jedoch wie in fast jedem Standard Erweiterungen der jeweiligen SQL Hersteller die eine vollst ndige Kompatibilit t nicht m glich machen Alle sinnvollen Erweiterungen werden jedoch von den Normungsgremien ISO75 und ANSI f r eine umfangreiche Sprachdefinition gesammelt 1992 wurde eine wesentlich erweiterte Fassung der SQL Norm SQL2 7 ver ffentlicht Sei l ngerer Zeit wird bei ISO parallel zu SQL2 am Projekt SQL3 gearbeitet und folgende Erweiterungen zu SQL2 diskutiert Unterst tzung komplexer Datenstrukturen Sprachmittel Ausdrucksm glichkeiten f r Datenbankprozeduren objektorientierte Konzepte z B abstrakte Datentypen Unterst tzung verteil
139. CT JOB_ID ROM ANGESTELLTE ION ECT JOB_ID ROM JOB H Ur AUA 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 G EHALT DECIMAL 8 2 119 Datenbanken 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 integer 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 date 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
140. 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 Datei Disk Client Server Abb 1 5 6 File Server 91 Hans Joachim Petzold Hans Jochen Schmitt Verteilte Anwendungen auf der Basis von Client Server Architekturen in HMD 170 1973 S 79 91 141 Datenbanken Operationen z B das Sperren von Bereichen werden zentral im File Server verwaltet Mehrere Anwendungen k nnen konkurrierend auf gemeinsame Datenbest nde 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 und Banyan Vines Netware File Server Netware Betriebssyste
141. 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 6 von Chen ist ein Versuch Beziehungen 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 7 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 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 m
142. Datenbank zur Verf gung steht bildet die hierarchischen Verzeichnisstrukturen auf XML Resourcen wie XML Dateien oder Schemas ab Der Anwender kann so bspw Oracle XML Datenbankverzeichnisse ffnen oder Web Verzeichnisse im Internet Explorer nutzen XSQL Servlet Es erm glicht auf Tabellendaten ber URLs zuzugreifen Nur durch Angabe einer URL im Browser k nnen somit ohne zus tzliche SQL Programmierung relationale Daten angezeigt werden Das Servlet unterst tzt das Generieren von XML und Nicht XML Inhalten wie auch das Transformieren der Resultate durch Stylesheets 4 2 3 XML SOL Utility Mit der XML SQL Utility XSU von Oracle k nnen die Ergebnisse einer SQL Abfrage in XML konvertiert werden XSU unterst tzt das dynamische Generieren von DTDs und das Einf gen von XML in Datenbanktabellen 193 erledigt eine Stylesheet Prozessor der direkt in der DB liegt 367 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 II 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 Database and Knowledge Base Systems Volume I Computer Science Press Rockville 1988 Vossen G Da
143. Datenbanken Prof J rgen Sauer Datenbanken Skriptum zur Vorlesung im SS 2007 Datenbanken Inhaltsverzeichnis 1 TYPOLOGIE DER DATENBANKSYSTEME uuuuusssnnsnnnnnnnnnnnnnnnnunnnnnnnnnnnnannnnnnnnnnnannnnnnnnnnnnnnnnannn 7 1 1 Grenzen der herk mmlichen Datenverarbeitung s 0s0ss00s000200n000n00n00nn00nneonnennnensnssnssonssonssonsnnnsnnne 7 1 2 Erl uterung von Begriffen oussessossossorsonsonsnnenssnnennssossnsnnssnssnnsonsnnsnnsnnsnnssnssnnsonsnnsnnsnnsnnssnssnnsonsnnsonsnnne 10 1 2 1 Datenbanken und Datenbanksyteme uue0srs0nesnesnnesnensnensnonsnensonnnnnnnnnnnnnnnnsnnesnnennnesnnesnnnsonsnenn 10 12 2 Informati nssysteme u32H Air Hass RN EIER E E S tet 11 1 2 2 1 Dok me nt tions SysteMe siaine iat a i a a a a 13 12 22 Dat W r amp house cn este eb E EE r AE E en AERE DEE ARAE NAE ROE AEREE EE 15 1 2 2 3 ExpertensysteMe isei eert eae 4 28 akiinistkslisigeit sn SETI EEEE EEEE EESE EEAS Tra 16 1 2 2 4 Daa MinimB nee nis aTe Ne sms Nie ASSEN EAE TE SEEE SPESSE 18 1 2 2 5 Inf rm ti nssysteme 22 0 E een E E EE eE E pa EAE EE EEEE EEEE 18 1 2 3 Klassifikation von Datenbanken sssssssssesessssseesesstserssesrsteseestsstetesseseesteseesessreessertrsestrstsseeeesststestt 21 1 2 3 1 Klassifikationsmerkmale 220220022002200nsnnsennsnnnnnnnsnennnennnnnnnnnnnnnnnnennnonnennennnennsonnnnnen 21 1 2 3 2 Formatierte und unformatierte Datenbanken sesessseeessseseeseeeess
144. 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 3 Regeln f r die Erstellung und Weiterentwicklung von Thesauri sind in DIN 1463 festgelegt 14 Datenbanken Allgemeine Medizin Philosophie Religion Theologie Sozialwissenschaften Recht Verwaltung Sprachen Mathematik Technik Medizin Kunst Literatur Geschichte vo AIa u PrPwN Ho 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 gepflegt von der 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 Ware
145. E lt TABLE NAME gt ADD DROP IMODIFY lt Spalten Spezifikationen gt 08 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 Anderungen andere Benutzer sehen diese Anderungen aber noch nicht Erst wenn der Befehl COMMIT gegeben wird gehen die gesammelten nderungen in die Datenbank ein und werden ffentlich CREATE UNIOUE NDEX lt Indextabellen Name gt ON lt TABLE NAME gt lt SPALTEN LISTE gt 9 CREATE TABLE lt Tabellen Name gt lt Spalten Name gt lt Datentyp gt lt Gr enangabe gt lt Spaltenbedingung gt lt weitere Spalten gt 68 Vgl CREATE Befehl 69 UNIQUE steht in eckigen Klammern und ist deshalb eine optionale Angabe 70 Die Gr enangabe ist nur bei bestimmten Datentypen erforderlich 71 NULL bzw NOT NULL und UNIQUE 123 Datenbanken 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 Liste gt VALUES lt Wert List
146. EPT Operator die Differenz aus beiden Tabellen Doppelte Datens tze werden bei allen 3 Operatoren aus der Ergebnismenge eliminiert Alle Befehle gibt es in 3 verschiedenen Formen die am UNION Operator demonstriert werden soll SELEC UNION SELEC FROM Tabellel 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 Feldil Feld2 SELECT FROM Tabelle2 Die 3 Variante erm glicht eine implizite Auswahl korrespondierender Felder ber Namensqleichheit SELECT FROM Tabellel UNION CORRESPONDING SELECT FROM Tabelle2 Methoden zur Abbildung von Integrit tsbedingungen Tabellen und Spaltenbedingungen 218 Datenbanken 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
147. ET AUTOCOMMIT OFF wieder aufgehoben ORACLE verf gt ber die Befehle AUDIT und NOAUDIT Sie bestimmen welche Tabellenzugriffe in den Systemtabellen registriert werden sollen AUDIT bestimmt den Anfang und NOAUDIT das Ende der Protokollierung Sperren von Tabellen Parallelarbet 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 I NOWAIT Jede Form einer Sperre erlischt mit dem Beginn der n chsten Transaktion Jede Art von Beendigung von Transaktionen hebt gesetzte Sperren auf Tabellennanme 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 R Mi
148. G2 TNR 3 Verbund Die Operation Verbund join verkn pft zwei Relationen r4 A4 An X und ro X B4 Bm die ein gemeinsames Attribut besitzen Mit Hilfe der Verkn pfungs operationen lt gt lt gt wird ber die Werte von X eine neue 121 ist einer der 6 Vergleichsoperatoren 187 Datenbanken Relation bestimmt die sowohl alle Attribute aus r4 und ro umfa t Falls t4 in r4 und t2 in ro enthalten ist dann umfa t r3 t1 Alr s t1 An t2 B1 t2 Bm Allgemein schreibt man dann zur Verkn pfung der beiden Relationen ber die vereinigungsvertr glichen Attribute A und B r A B r2 Jedes Element der Spalte r A ist mit jedem Element der Spalte ro B vergleichbar Zwei Werte x und y sind vergleichbar wenn x 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 en amp 3 ZZ a Gleichverbund equi join r A D s A B C D E a 1 xxa 4 a 2 xxa 4 b 1 yyb 2 EB Ze 3 b Nat rlicher Verbund natural join Das redundante Attribut wird entfernt A B CH E 1 xx 2 XX 1 yy 3 ZZ am m m OO NS Er Sun c Verlustfreier Verbund Keine Information ist in einem Gleichverbund verloren gegangen d Ungleichverbund r B gt E s A B D E 2 Gegeben sind die Relationen r und
149. GESTELLTE 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 SELECT A ANG_ID A NAME A GEHALT AVG ALL B GEHALT FROM EINKOMMEN A EINKOMMEN B WHERE A BEZEICHNUNG B BEZEICHNUNG GROUP BY A ANG_ID A NAME A GEHALT Allgemein k nnen ber views nicht nur Selektionen ausgef hrt werden sondern auch Einf gungen nderungen L schungen unter folgenden Bedingungen 121 Datenbanken Bie L schungen b
150. ITEL 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 GEHALT JOB TITEL ANGESTELLTE NAME ANGESTELLTE ABT_ID 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 Die Vergleichs Operatoren einer vergleich_bed 67 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 z
151. Informationen ber Treiber und Datenbankf higkeiten umfa t Core API plus Stufe 1 plus der F higkeit Verarbeiten von Arrays als Parameter Verarbeiten scrollbarer Cursors Aufrufe der bersetzungs DLL SQL Grammatik konformit tsstufe Minimale Grammatik Core Grammar Extended Grammar Erzeugen von Table und drop Table Funktionen in der DLL die Funktion Auswahl Einf gen Aktualisieren L schen in der DML einfache Ausdr cke Minimale Grammatik plus ALTER TABLE Erzeugen und Aufheben eines Index bzw eines View f r DDL volle SELECT F higkeiten f r DML F gt Funktionalit ten wie Outer Join positioned update 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 Schlie en der Verbindung Zur cknahme der Handles Schlie en der Datenbank 300 Datenbanken SQLAllocConnect envHandle SQLSetConnectOption databaseHandle SQLAllocEnv envHandle E SQLConnect databaseHandle datenQuellenName UID PW SQLAllocStmt databaseHandle statementHandle SQLPrepare statementHandle SQL_String_mit_Parametern
152. Kennung OOPEN ffnen des Cursors der beim n chsten OSQL3 Aufruf f r die Aufnahme von Ergebnissen dient OSOL3 Angabe des SQOL 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 Daten aus dem C Programm an die SOL Abfrage verwendet werden sollen OEXE Durchf hrung einer SQL 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 Tabelle wird gem Inein dem SOQOL Ausfruf bereitgestellt l I 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 SOL Anweisung Sprung nach OSOL3 OCLOSE Schlie en des SOL CURSOR v OLOGOFF Ausketten aus ORACLE Bsp Ein OCI Programm IR x J Das Programm ermittelt Loesungen fuer die SOL 5 Abfrage 7 Ermittle alle Angestellten die in der Abteilung s Konstruktion beschaeftigt sind XJ
153. LE Fehlermeldung printf Fehler aufgetreten n printf d n sqlca sqlcode exit 1 Ein C Programm mit Embedded SQL 289 Datenbanken 2 3 4 1 2 Embedded SQL mit Java SQLJ in Oracle 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 sSQLJ171 Einf hrung Einbettungsprinzip Einbettung von statischen SQL Anweisungen direkt in den Java Quelltext Statisch bedeutet Die Anweisungen sind zur bersetzungszeit definiert und k nnen w hrend der Abarbeitung des Programms nicht ge ndert werden Vor bersetzung des erweiterten Quelltextes in echten Java Code durch den Pr compiler Translator bersetzen Quelldateien mit der Extension sq1j werden dem SQLJ bersetzer bergeben Dieser sucht nach den Zeilen mit sql ab und ersetzt sie durch g ltigen Java Code der mit Hilfe von JDBC die notwendigen Operationen durchf hrt SQLJ definiert keine eigene Datenbankschnittstelle sondern ist nur als Aufsatz auf die bereits bestehende JDBC API zu sehen die Verbindung zur Datenbank erfolgt mit dem verf gbaren JDBC Treiber Dar ber hinaus kann der SQLJ
154. LTER 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 insert into abteilung values Ko Konstruktion insert into job values KA Kaufm Angestellter 3000 00 insert into angestellte values CATU T ETIC O2AJAN 500 ODT Sy insert into qualifikation values alty ISYY 5 Aktualisieren von Daten 122 Datenbanken 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 Ohne WHERE Klausel wird der Inhalt det Tabelle gel scht z B DELETE FROM ANGESTELLTE 7 Zusammenfassung ALTER TABL
155. NTWICKLUNG ist ohne Bezug auf das Segment ANGESTELLTE bedeutungslos Das Segment GEHALTLICHE ENTWICKLUNG ist nicht nur vom Vatersegment sondern sogar vom Gro vater Segment ANGESTELLTE abh ngig Eine Schl sselkombination von ANGESTELLTER und ERNENNUNGSDATUM ist zur Identifizierung des Feldes GEHALT notwendig Die Schl sselkombination ABTEILUNGS NUMMER und STELLEN BESCHREIBUNGS NUMMER identifiziert die STELLENBESCHREIBUNG 59 Datenbanken 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 logische parent ist Ausgangspunkt der Abfrage physischer parent logischer parent A c 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 a
156. ON VARCHAR uid 20 VARCHAR pwd 20 VARCHAR anggeb 8 VARCHAR angid 4 VARCHAR angname 1413 VARCHAR angabt 4 VARCHAR abtid 35 VARCHAR abtbez 41 VARCHAR db_string 20 EXEC SQL END DECLARE SECTION EXEC SQL INCLUDE sqlca void fehler 287 Datenbanken Beginn des Hauptprogrammes main int argi char argv strepy uid arr xyz12345 ORACLE USERID uid len strlen uid arr strcpy pwd arr xyz12345 ORACLE Passwort pwd len strlen pwd arr stropy db_string arr r fhs1012_ora2 db_string len strlen db_string arr ER Definition eines Fehlerausgangs fuer den Fall dass ein Fehler bei der Ausfuehrung eines SQL El Kommandos passiert TE EXEC SQL WHENEVER SOLERROR DO fehler LE Einloggen in das ORACLE System unter Benutzung von USERID und Passwort E FF EXEC SQL CONNECT uid IDENTIFIED BY pwd USING db_string printf Connected to ORACLE as user s n uid arr Deklaration eines CURSORS fuer das gewuenschte SQL Kommando a a f Ein CURSOR ist ein Arbei
157. ON_ZNF PE NAME WOHNORT 101 Hans Regensburg 1 102 Rolf N rnberg 103 Udo M nchen A A NAME Physik 2 Chemie 2 Chemie Physik 104 Paul Regensburg 1 PE repr sentiert hier einen Prim rschl ssel 180 Datenbanken PE PR PE PR ZEIT 101 11 60 101 12 40 102 13 100 103 11 20 03 12 50 103 13 30 104 11 80 104 13 30 Das Attribut PE repr sentiert hier einen Fremdschl ssel PRODUKT PR PR NAME lt rI A 1 2 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 PERSON_ZNF PE NAME WOHNORT A A NAME l f i I verletzt DNF Kriterium Abb 2 1 7 Funktionale Abh ngigkeiten in PERSON_ZNF Die Relation PERSON_ZNF wird in DNF Relationen aufgespalten 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 6 Zusammenfassung Die Problemstellung wird durch folgende Relationen beschrieben PRODUKT PR PR NAME _ PE PR PE PR ZEIT 11 A 101 11 60 12 B 101 12 40 13 G 102 13 100 103 11 20 103 12 50 181 Datenbanken 103 13 30 104 11 80 104 13 20 ig
158. Prozentwerten mit decode select count decode job_id SY 1 NULL count 100 Prozent from angestellte 30 769231 CASE Statements Das Case Statement ist eine Erweiterung der Decode Anweisung In der einfachsten Fassung gibt es einen Wert zu ck wenn ein Treffer gefunden wird Bsp select titel gehalt CASE WHEN gehalt lt 3000 THEN niedrig WHEN gehalt gt 3000 and gehalt lt 6000 THEN mittel WHEN gehalt gt 6000 THEN hoch END Einstufung from job select titel gehalt CASE WHEN job_id LIKE SY AND gehalt lt 6000 THEN 10 WHEN job_id LIKE IN AND gehalt lt 6000 THEN 15 WHEN job_id LIKE KA AND gehalt lt 3000 THEN 20 WHEN job_id LIKE TA AND gehalt gt 3000 THEN 20 END Gehaltserhoehung from job 152 Bestandteil des Intermediate Levels des SQL Standards 247 Datenbanken Die Case Funktion l t sich anstelle von decode einsetzen Die Schl sselw rter when then else und end machen die Anweisung verst ndlicher select angestellte ang_id angestellte name case angestellte abt_id when KO then angestellte job_id end as KO case angestellte abt_id when OD then angestellte job_id end as OD case anges when PA end as PA case anges abt_id when RZ then angestellte job_id end as RZ case angestellte abt_id when VT then angestellte job_id end as VT from a
159. Punktrechnung geht vor Strichrechnung einer Operation Der Dateityp des Ergebnisses richtet sich 238 Datenbanken nach dem im Ausdruck enthaltenen genauesten Datentyp float vor decimal vor integer select name sysdate gebdatum to_char sysdate yy to_char gebdatum yy from angestellte select name sysdate gebdatum to_char sysdate yy to_char gebdatum yy from angestellte order by to_char sysdate yy to_char gebdatum yy NAME SYSDATE GEBDATUM TO_CHAR SYSDATE YY TO_CHAR GEBDATUM YY Maria 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 50 47 Werner 26 DEC 97 23 JAN 48 49 Anton 26 DEC 97 05 JUL 48 49 13 rows selected Mit der Funktion to_char lt date gt lt format gt ist die Konvertierung 5 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 Jo
160. QOLJ Anweisung Kontextname Der Name der Variablen des Verbindungskontextes im Java Quelltext SQLJ Anweisung Ein g ltige SQLJ Anweisung Bsp Verwendung verschiedener Verbindungskontexte in einem SQLJ Programm Transaktionssteuerung mit SQLJ Eine Transaktion ist eine Folge von SQL und PL SQL Anweisungen die nach dem Prinzip alles oder nichts ausgef hrt werden d h Falls eine der Anweisungen scheitert die Transaktion also nicht ordentlich beendet wird werden alle Anweisungen dieser Transaktion wieder r ckg ngig gemacht Eine Transaktion beginnt automatisch mit dem ersten SQLJ Block der eine SQL Anweisung an die Datenbank sendet und endet mit einem SQLJ Block mit der Anweisung COMMIT sql COMMIT Falls nach einem Abbruch einer Transaktion alle nderungen die bisher in der Transaktion vorgenommen wurden widerrufen werden sollen geschieht dies ber ROLLBACK sql ROLLBACK j Transaktionssicherheit festlegen Die Einstellungen zur Transaktionssicherheit legen fest wie parallel ablaufende Transaktionen voneinander isoliert werden sql SET TRANSACTION Zugriffsmodus ISOLATION LEVEL Isolationsstufe Zugriffsmodus read only oder read write Legt fest welche Art von SQL Anweisungen in einer Transaktion erlaubt sind Standardm ig ist auf read write eingestellt Isolationsstufe read committed oder serializable Oracle nutzt standardm ig die Einstellung read committed
161. 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 e Stream 90 Weitverkehrsnetz das etwa 4000 Netze mit ber 6000 Rechnern verbindet 138 Datenbanken e Datagram e 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 Prot
162. SQLSetParam SQLExecutable statementHandle t statementHandle parameternummer 1 2 3 SQL_String SQLExecute statementHandle SQLBindColumn statementHandlle E SQLFetch statementHandle QLFreeStmt statementHandle QLDisconnect databaseHandle QLFreeConnect databaseHandle QLFreeEnv envHandle Abb Das ODBC Programmflu schema f r ein typisches Programm 301 Datenbanken 2 3 4 3 2 JDBC berblick zu JDBC JDBC steht f r Java Database Connectivity 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 API Objekte 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 Datenbankverwaltungssystem 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 ja
163. Speicherung als CLOB m glich XMLType Mit XMLType kann man XML Daten in einer Oracle Datenbank speichern und abfragen Als Typ besitzt XMLType Member Funktionen f r Zugriff Extrahieren 191 vgl Ulrike Schwenn XML in der Oracle Datenbank relational and beyond http doesenO informatik uni leipzig de proceedings slides btw2003_ind_schwinn pdf Zugriff April 2007 365 Datenbanken und Abfragen von XML Daten mit einer Klasse von Operatoren die man XPath Ausdr cke nennt Einsatz von standardkonformen annotated XML Schemas Zur Beeinflussung objektrelationaler Speicherung sind Beschreibungen f r die XML Strukturen n tig Dies geschieht durch den Einsatz von standardkonformen annotated XML Schemas die die Oracle spezifischen Beschreibungen als Attribute in den Schema Annotations mit liefert Ein annotaded XML Schema ist W3C standardkonform 92 ist ein XML Schema mit Zusatzinformation hier Oracle spez Objektnamen Speicherung etc bei der Schema berpr fung ignoriert der Parser gem W3C alle unbekannten Namespaces Datenbank unabh ngige Parser beachten nur das allgemeine XML Schema kann Annotations f r verschiedene Datenbanken enthalten da die jeweiligen Namespaces abgegrenzt werden Bsp 4 2 2 Funktionsvorrat zur Unterst zung von XML Applikationen Query Rewrite In einer objektrelationalen Datenbank ist es nat rlich m glich ber SQL Zugriffe Daten abzufragen oder zu ver ndern Dabei ist jed
164. Strukturen E E g A4 NAME TITEL 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 TITEL 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 STELLEN ERNENNUNGS TITEL BESCHREIBUNGS NUMMER BESCHREIBUNG DATUM KINDER NAME DES ALTER KINDES GEHALTLICHE ENTWICKLUNG GEHALTS GEHALT ERHOEHUNGSDATUM Abb 1 3 30 Datenbankstrukturdiagramm mit Pfadabh ngigkeiten Das Segment BERUFLICHE E
165. Transactions gibt an ob ein DBMS auch ber verschiedene Verbindungen mehrere Transaktionen gleichzeitig unterst tzt e 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 dataDefinitionlgnoredInTransactions dataDefinitionCausesTransactionCommit supportsDataDefinitionAndDataManipulationTransactions supportsDataManipulationTransactionsOnly liefern Informationen dar ber welche Operationen bei Datendefinitionsanweisungen innerhalb einer Transaktion durchgef hrt werden 181 Rainer Klute JDBC in der Praxis Addison Wesley S 134 316 Datenbanken 2 3 4 3 3 ORACLE Call Interface OCH OCI OCI ist die Programmierschnittstelle von Oracle f r die Sprache C Denkbar maschinennah ist die OCI die von den Laufzeiten her schnellste Art den Oracle Server anzusprechen 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 OCI Programms f r eine SQL Anfrage ist 317 Datenbanken OLON Einloggen in das ORACLE System unter Angabe von Passwort und
166. Unterabfrage zu pr fen Dabei wird als Wert einer leeren Unterabfrage nicht NULL sondern stattdessen UNKNOWN erwartet EXISTS pr ft darauf ob eine gebundene Abfrage berhaupt Werte enth lt Sollte die Unterabfrage leer sein stimmt der Test Anderenfalls wird die Bedingung als falsch bewerte NOT Exists pr ft dagegen genau auf das Gegenteil n mlich darauf da die Unterabfrage keinen Wert enth lt Ist dies der Fall wird die Bedingung als wahr bewertet Enth lt die Unterabfrage dagegen Werte so liefert der Vergleich ein falsches Ergebnis zur ck Sollten keine Zeilen in der Unterabfrage gefunden werden so wird die u ere Abfrage erst gar nicht ausgef hrt und ergibt dann keinen Wert Damit ist nicht das Ergebnis sondern zun chst die Ausf hrung der u eren Abfrage direkt von der Unterabfrage abh ngig sondern zun chst 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 T 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 COUNT liefert die Anzahl der ausgew hlten Zeilen SUM 117 Datenbanken liefert die Summe der Werte in einem numerischen Feld 2 den kleinsten Wert
167. VS darstellen 103 Datenbanken Anwendungsprogramm C Anwendungsprogramm B Anwendungsprogramm A Gastsprache Gastsprache DL 1 Gastsprache DL 1 E A Puffer k DL 1 E A Puffer x E A Puffer z X PSB PSB B PCB PCB e PSB A PCB PCB PCB t PCB PCB A IMS Kon troll pro gramm DBD DBD DBD DBD DBD DBD DBD DBD 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 der 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 bloc
168. 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 Pr dikat Argumente 194 Datenbanken 123 124 abteilung KO Konstruktion vorlesung juergen datenbanken abteilung X Konstruktion 12 gt 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 Individuenvariabeln X Y Z X4 X2 Individuenkonstanten a b c a4 b Funktionssymbolen f 9 h f4 Pr dikatensymbolen p q r r4 Negation Disjunktion und Konjunktion Existenz Quantor I All Quantor V ONDAN Die Redewendung f r alle X gilt geschrieben YX hei t Allquantor Die Redewendung es gibt ein X so da gilt geschrieben 3X hei t Existenzquantor V ist eine Abk rzung f r mehrere Konjunktionen 3 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 v p Y nicht ohne weiteres f
169. W hrend einer Transaktion k nnen dann allerdings nicht wiederholbare Lesevorg nge auftreten d h Falls in einer l ngeren Transaktion zweimal die gleiche SELECT Anweisung ausgef hrt wurde und die betroffenen Datens tze in der Zwischenzeit von einer anderen 295 Datenbanken Transaktion ver ndert wurden dann erh lt man zwei verschiedenen Ergebnisse Das erste Ergebnis ist also nocht wiederholbar Die Isolationsstufe serializable sorgt hingegen durch entsprechende Sperren und Zwischenspeicher daf r dass man die Daten nur in dem Zustand erh lt der am Anfang der Transaktion galt Bsp Experimente mit Einstellungen zur Transaktionssicherheit import oracle sqlj runtime Oracle import sqlj runtime ref DefaultContext public class ExpTransSicher public static void main String args try DefaultContext transl connect properties DefaultContext trans2 new DefaultContext Sdbc oracle thin rfhs8012 1523 0ral0g saj39122 saj39122 false DefaultContext setDefaultContext transl Der folgende Block ist nur dann zu aktivieren falls der nicht wiederholbare Lesevorgang vermieden werden soll sql transl SET TRANSACTION read write ISOLATION LEVEL serializable Oracle connect ExpTransSicher class A String vorname null phantom null Den Namen erstmals lesen sql trans1 SELECT name INTO vorname FROM angestellte WHERE ang_id A1 j
170. X umfa t einen Bereich von 1 bis 255 1 ist Default Wert 167 P umfa t einen bereich von 2 bis 38 S von 84 bis 127 168 Zeichenketten k nnen nach NUMBER konvertiert werden falls sie konvertierbare Zahlen enthalten 0 bis 9 E e 169 Im Default Format DD MON YY erfordert ein Zeichenkettentyp 9 Zeichen Wird er als bin rere Typ konvertiert dann erfordert er 7 Zeichen 284 Datenbanken RAW X unsigned n Bytes umfassendes vorzeichenloses char n Zeichenfeld VARCHAR n n Bytes umfassendes Zeichenfeld variabler L nge LONG RAW unsigned n Bytes umfassendes vorzeichenloses char n Zeichenfeld VARCHAR n n Bytes umfassendes Zeichenfeld variabler L nge ROWID 170 char n n Bytes umfassendes Zeichenfeld VARCHAR n n Bytes umfassendes Zeichenfeld variabler L nge 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
171. Y NAME 65 Vgl 1 3 3 66 SQL ist nicht case sensitive 112 Datenbanken 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 und LIKE SELECT kann auch in Zusammenhang mit den Operatoren BETWEEN LIKE und IN Suchbedingungen ber die WHERE 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 ozgu LIKE erm glicht die Suche nach Zeic
172. a SELECT ANGESTELLTE ID ANGESTELLTE NAME x7 AE ANGESTELLTE GEBJAHR x JF FROM ANGESTELLTE ABTEILUNG Ef F WHERE ANGESTELLTE ABT_ID ABTEILUNG ID AND X7 5 ABTEILUNG BEZ konst 5 gt x7 include lt stdio h gt 318 Datenbanken E Ef Groesse der ORACLE Kommunikations Datenstrukturen XY define LOGON_DATA_SIZE 64 define CURSOR_DATA_SIZE 64 ty Codes fuer ORACLE Datentypen x7 RS defin YPE_INTEGER 3 defin YPE_STRING 5 static int oci_error erg fct cda doterm int erg char Let char cda int doterm ifdef VERBOSE printf fet s Result d d n fct erg short amp cda ll2 ndif VERBOSE if erg 0 amp amp doterm exit 1 L x7 Beginn des Hauptprogrammes X7 Zx main x EU Logon Data Area RY Ueber diesen Puffer findet die Kommunikation Xf zwischen ORACLE und dem Anwenderprogramm statt BE ki char logon_data_area LOGON_DATA_SIZE FE Cursor Data Area KJ Der Cursor dient als Aufnahmepuffer fuer Zeilen aA der Loesungsmeng iner SQL Abfrage x char cursor_data_area CURSOR_DATA_SIZE M x7 Datenbereiche fuer ORACLE Kennung und ORACLE Passwort char uid 40 char psw
173. aar die zum Start Tag hinzugef gt werden um zus tzliche Informationen ber das Element bereitzustellen Der Grundbaustein eines XML Dokuments ist ein Element Ein Element besitzt ein Beginn und ein Ende Tag welche Daten beliebigen Inhalts einschlie en Durch die Schachtelung von Elementen erh lt man hierarchische Strukturen lt Name gt Inhalt lt Name gt bzw lt Name gt Weitere Eigenschaften k nnen durch Attribute definiert werden Attribute werden in den Beginn Tag der Elementdefinition eingef hrt Es d rfen keine gleichnamigen Attribute in einem Element auftreten lt Name AttributNamel Wertl1 AttributNameN WertN gt Jedes XML Dokument instantisiert ein Infoset ein abstraktes Datenmodell das aus einem Dokument und seinen Informationsobjekten besteht Informationsobjekte sind meistens Elemente Attribute und Inhalte z B lt skriptum gt lt title gt Datenbanken lt title gt lt title gt Typologie der Datenbanksysteme lt title gt lt text gt amp kapl lt text gt lt kapitel gt lt skriptum gt Die Tags lt skriptum gt und lt skriptum gt definieren die Start und Enpunkte Das XML Dokument beschreibt das Skriptum zur Vorlesung Datenbanken Das erste Kapitel des Skriptums besitzt die Bezeichnung Topologie der Datenbansysteme und ist nicht innerhalb des XML Dokuments gespeichert Ein Zeiger auf die externe Datei ist zu diesem Zweck angegeben title istein Tag und
174. aber der auf den Datensatz in mitarbeiter verweist besitzt einen sog h ngenden REF dangling references Falls f r Fritz ein neuer Datensatz eingef gt wird wird dieser Datensatz nicht als Bestandteil der Referenz erkannt die zu einem fr heren Zeitpunkt eingerichtet wurde Entstandene dangling references lassen sich durch WHERE ref attribut IS DANGLING berpr fen Die kann bspw in einem AFTER Trigger der Form update tabelle set attribut NULL where attribut is dangling berpr ft werden 3 2 1 6 Objekt Views Eine Objektsicht ist eine abgeleitete virtuelle Tabelle kann Daten aus mehreren Tabellen erhalten objekterhaltende Sicht ist nicht auf die flache Extension einer Objekttabelle beschr nkt CREATE VIEW sichtenname OF objekttyp WITH OBJECT IDENTIFIER attributliste AS select anweisung WITH CHECK OPTION READ ONLY objektgenerierende Sicht mu WITH OBJECT IDENTIFIER Klausel enthalten Bei der Definition von Objektviews wird durch WITH OBJECT OID attr liste angegeben aus welchen Attributen die Objekt ID berechnet wird CHECK OPTION ge nderte Daten d rfen nicht aus der Objektsicht verschwinden READ ONLY nicht nderbare Sicht select anweisung darf kein Objektkonstruktor enthalten Objekterhaltung Objektsicht basierend auf Objekttabelle create view zkKunde of kundeTyp as select from kunde k where value k is of only kundeTyp
175. ale 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 145 Datenbanken 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 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 gib
176. ammengesetzte und sich berlappende Schl sselkandidaten 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 175 Datenbanken Ein funktional determinierendes Attribut z B Aj 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 Aj 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 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 DOZENT VORLESUNG besteht und DOZENT ein Schl sselkandidat ist Die
177. 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 16 Datenbanken 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 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 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 ein
178. and k anschrift ort BigTown show errors select from zkKunde Objektgenerierung Objektsicht basierend auf Tupeltabelle create view zkKundeTupel of kundeTyp WITH OBJECT IDENTIFIER knr as 345 Datenbanken select knr name anschrift telefone auftraege from kundeTupelTabell k where k anschrift ort BigTown select from zkKundeTupel Eine objektgenerierende Sicht kann auch auf einer Objekttabelle generiert sein Subsichten CREATE VIEW subsichtenname OF subtyp UNDER supersichtenname AS anfrageausdruck WITH CHECK OPTION READ ONLY Typ der Subsicht mu ein direkter Subtyp des Typs der Supersicht sein Extension der Subsicht ist immer eine Untermenge der Extension der Supersicht m Subsicht erweitert die Extension der Supersicht Subsicht hat genau eine direkte Supersicht HM keine direkte Mehrfachspezialisierung m glich Jede Objektsicht darf pro Subtyp maximal eine Subsicht haben Implementierung von Objekt Views berlagern bereits vorhandener Tabellen mit objektorientierten Strukturen Eine relationale Tabelle wurde mit folgenden Anweisungen erzeugt bzw mit Daten gef llt create table angestellte_basis ang_id varchar2 3 name varchar2 10 gebdatum date beruf varchar2 30 gehalt number 8 2 einstelldatum date Einf gen von Daten insert into angestellte_basis values A20 Horst 13 04 1976 Systemplaner 5000 0
179. anderreihen 2er Listen ist in der Regel durch ein 3stelliges Pr dikat verketten liste_l liste_2 Gesamtliste 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 Kop f L1 L2 Kop f L3 verketten L1 1L2 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 bIL3 und f hrt zum Aufruf verketten d e f L3 Mit der 1 Klausel erh lt man L bzw L3 d e fl und das Ergebnis X allbi 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 juergen informatik interesse herbert mathematik interesse wolfgang statistik interesse peter linguistik interesse josef informatik Die Anfrage 212 Datenban
180. anken Aktualisierung der Inhalte Allerdings 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 Oberfl chenobjekte we Fachobjekte Fachobjekte LAN Fachobjekt BB N ee nn nn nn a gt WAN ri N een gt LAN CHmSeten Fachobjekte Fachobjekte rue gt Fachobjekte Abb 1 5 14 Aufbau und Kommunikation der Objekte im Internet Typischerweise werden Applikationen in 3 Aufgabenbereiche unterteilt Datenhaltung Anwendung slogik und Pr sentation 108 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 106 Vgl Client Server Architekturen 152 Datenbanken Pr sentation i i Pr sentation r sentation Steuerung Steuerung Anwendung Anwendung Datenverw Steuerung Anwendung Anwendung Anwendung 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 In
181. anschrift not null CHECK anschrift plz is not null nested table auftraege store as kundenAuftrag column anschrift is of only adressTyp Beispiel fuer eine Objekttabelle die nur Instanzen eines Subtyps aufnimmt create table bwKunde of bwKundeTyp NOT SUBSTITUTABLE AT ALL LEVELS knr primary key name not null anschrift not null CHECK anschrift plz is not null CHECK kredit gt 0 nested table auftraege store as bwKundenauftraege nested table hobbies store as bwKundenhobbies Operationen auf Objekttabellen insert into kunde values insert into kunde values kundeTyp 34 Johnny adressTyp Fifth Avenue 45 45666 BigygTown USA telefonArrayTyp 0041 1 6725655 0049 454 364666 auftragTabellenTyp NULL kunde ist eine Objekttabelle e Beim Einf gen von Daten k nnen die Konstruktormethoden des Datentyps eingesetzt werden Beim Einf gen einer Zeile in eine Objekttabelle weist Oracle jeder Zeile eine Object ID OID zu Mit dieser OID kann die Zeile als referenzierbares Objekt eingesetzt werden update kunde set anschrift adressTyp Kreuzstrasse 21 8008 Zuerich CH where name Johnny select from kunde delete from kunde k Korrelationsvariable k ist notwendig um auf Objektattribute zugreifen zu koennen where k anschrift ort Zuerich 342 Datenbanken Basiert die Objekttabelle auf einem abstrakten Date
182. arbeitern 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 44 Datenbanken 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 Artikel und der Beziehungstyp bestellt zusammengefa t werden Auftrag Kunde bestellt gt Artikel Lager Auftrag u 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
183. area oci_error erg ologof cursor_data_area Oracle C Call Interface OCCI OCCI erm glicht den Zugriff auf den Oracle Server ber eine programmierte Schnittstelle 322 u xy at x7 in C Datenbanken 3 Objektrelationale Datenbanken 3 1 Objektrelationales SQL in SQL 99 3 1 1 Objektrelationales Typsystem Das Typsystem von Standard SQL bietet neben einer Reihe von Basisdatentypen auch eine Auswahl von Typkonstruktoren an Basisdatentypen Tupeltypkonstruktor Arraytypkonstruktor Multimengentypkonstruktor Referenztypkonstruktor ae ARRAY Basisdatentyp Abb Objektrelationale Datenbankmodell SQL 99 3 1 2 Datendefinition Die Datendefinition in Standard SQL umfa t die Beschreibung folgender Schemaobjekte benutzerdefinierte Datentypen Tupeltabelle und Sichten benutzerdefinierte Routinen und Konstruktoren Trigger benutzerdefinierte Casts und Ordnungen 323 Datenbanken 3 1 3 Anfragen 1 Anfragespezifikation Die Spezifikation einer Anfrage in SQL besteht aus folgenden Klauseln SELECT Projektionsliste FROM Tabellenreferenzliste WHERE Selektionsbedingung GROUP BY Gruppierungsliste HAVING Selektionsbedingung 2 Verbundoperationen Folgende Verbundausdr cke werden unterst tzt das explizite Kreuzprodukt CROSS JOIN der innere Verbund der passende Zeilen zweier Tabellen anhand einer Verbindungsbedingung verkn pft die entweder
184. atenbanken 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 create 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 N 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 0 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
185. atenbanken oder Datenbanksysteme bezeichnet die Daten im XML Format speichern oder anderweitig mit XML Daten umgehen k nnen Man kann daher XML Datenbanksysteme in zwei Kategorien einteilen XML enabled Herk mmliche Datenbanksysteme die ein Mapping auf ider ins XML Format erlauben Man bezeichnet die Vorgehensweise als datenorientiert Native XML Datenbanksysteme Diese Systeme speichern Information hnlich wie bei der Speicherung von XML Dokumenten in Dateien Systemen direkt als Dokumente ab Sie werden auch als dokumentenorientiert bezeichnet 1 2 3 Klassifikation von Datenbanken 1 2 3 1 Klassifikationsmerkmale Es gibt in der Datenverarbeitung zwei Arten von Informationen die wegen ihrer grunds tzlich verschiedenen Struktur auch bei Datenbanken unterschiedliche Behandlung erfordern 1 Texte schwach strukturiert Jede Zeichenkette Wort besitzt eine Bedeutung Die Stellung der Worte im Text ergibt den logischen Zusammenhang 2 Daten stark strukturiert 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 D
186. b 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 konsistenten 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 Anderungen 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 Anderungen protokollieren Das DBMS sorgt bei Ausf llen f r geeignete Recovery Ma nahmen Endbenutzer TP System Anwendungs DBMS Datenstation programm gt TA Auf Trag empfangen TA Auftrag gt DB E Transaktion s sende TA Ergebnis
187. b Server bezeichnet Der Browser schickt an den 103 europ isches Zentrum f r Teilchenphysik bei Genf 104 bezieht sich auf die in ISO 1986 standardisierte SGML Standard Generalized Markup Language 150 Datenbanken 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 Client Client WWW Server Proxy 05 Browser WW W Server Browser Betriebessystem Betriebssystem Betriebssystem Betriebssystem LAN gt WAN z B Modem gt LAN der Zentrale Client HTML Betriebssystem Betriebssystem Betriebssystem Seiten WWW Server Browser Browser Datenbanksystem Daten
188. be des Client ist die Identifikation der Anwendung die ausschlie lich ber das User Programmatic Interface UPI an den Datenbankkern auf den Server gesandt wird 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 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 Proze der auf Verbindungen wartet und entsprechende Verbindingen aufbaut Das Interface der Anwendungen und des Oracle7 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 zentr
189. besitzen oder Inhaber einer Tabelle sein Zur Vergabe lokaler Rechte steht der GRANT Befehl zur Verf gung 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 5 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 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 164 Derjenige ist Inhaber einer Tabelle der sie mit dem CREATE TABLE Befehl angelegt hat 165 beschr nkt den Zugriff auf die Inhalte bestimmter Spalten 274 Datenbanken Ein Index darf mehrere Spalten umfassen Maximal k nnen das 16 Spalten sein Die Gesamtl ng
190. catch Block stehen 306 Datenbanken 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 SQLWarning 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 und Driver und verwandte 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 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 sgl Driver
191. ch Angabe der Operationenfolge wie die Daten bereitzustellen sind Wie Sprachen prozedurale DML 2 Ausw hlen mit Sprachelementen 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 da
192. ch 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 SELECT JOB TITEL JOB GEHALT ANGESTELLTE NAME FROM JOB ANGESTELLTE WHERE JOB JOB_ID ANGESTELLTE JOB_ID ORDER BY JOB TITEL JOB GEHALT DESC 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 soL 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 SELECT A ANG_ID A NAME B ANG_ID B NAME A ABT_ID FROM ANGESTELLTE A ANGESTELLTE B WHERE A ABT_ID B ABT_ID AND A NAME lt gt B NAME ORDE
193. cht standalone 3 d h es besitzt eine zugeh rige DTD die in der n chsten Zeile angegeben ist 51 DTD liefert die Definition und die Beziehungen zwischen den in XML Dokumenten enthaltenen Elementen 52 Processing Instruction PI die Anwendung mu die PI auswerten z B mit XML Prozessoren 53 3 Attribut im Prolog 92 Datenbanken Komponenten von XML Dokumenten Entity In XML Terminologie werden Grundelemente von XML Dokumenten als Entit ten bezeichnet die entweder verarbeiteten Text parsed character data oder Rohtext unparsed character data enthalten Der verarbeitete Text umfa t den Dateninhalt und auch deklarative Textauszeichnungen die die logische Struktur des Texts beschreiben Element Der Grundbaustein eines XML Elements umfasst ein Start Tag ein End Tag und den Text dazwischen z B lt vorname gt J rgen lt vorname gt In XML werden die beschriebenen Daten zwischen applikationsspezifischen Tags oder Elementen hinterlegt Die Syntax dazu wird in speziellen Dokumenten den sog Dokumenttypdefinitionen DTDs beschrieben Tag Ein dem Element zugewiesener Name Die Merkmale zur Auszeichnung der Dokumente hei en Tags Die syntaktische Definition erfolgt entweder mit ihrem erstmaligen Auftreten im Dokument oder durch formale Deklaration der verwendeten XML Elemente in der DTD Tags werden zur bedeutungsorientierten semantischen Beschreibung eingesetzt Attribut Ein Textname und ein Wertep
194. cle diese nur ausf hrt wenn zugesichert ist dass sie den Datenbankzustand nicht ver ndern Daher mu bei Funktionen zumindest PRAGMA RESTRICT_REFERENCES funktionsname WNPS WNDS gesetzt werden MAP und ORDER Funktionen PRAGMA RESTRICT_REFERENCES funktionsname WNDS WNPS RNPS RNDS d h sie d rfen keinen Datenbankzugriff enthalten Bsp Gegeben ist create type punktType as object x number y number 335 Datenbanken desc punktType Ein Objekttyp kann in einem anderen Objekt Typ verwendet werden create type linieType as object endl punktType end2 punktType desc linieType Dieser Typ kann wiederum in einer Tabelle angesprochen werden create table linien linienID int linie linieType desc linien insert into linien values 27 linieType punktType punkt Der vorliegende Typ soll erg nzt werden durch Hinzuf gen einer Funktion 1aenge zum linienType Beim Erzeugen der Laenge wird mit einem Skalenfaktor multipliziert create or replace type linieType as object endl punktType end2 punktType member function laenge skala in number return number pragma restrict_references laenge wnds desc linieType Methoden werden anschliessend in einer create type body Anweisung definiert Der TYPE BODY enth lt die Implementierung in PL SQL F r jedes Objekt ist automatisch die Methode SELF definiert mit der das Objekt a
195. d 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 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 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 eine
196. d 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 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 Nam
197. d 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 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 Code Ursache 0 Erfolgreiche Beendigung 100 Daten nicht gefunden lt 0 Fehler Abb SOLCODE Fehlercode Die Bearbeitung dieser numersichen werte ist wesentlich einfacher als die Verarbeitung von SQLSTATE der als Zeichenkette zur ckgeliefert wird Code Ursache 00 Erfogreiche Beendigung Or Warnung 02 Daten nicht gefunden 08 Verbindungsaufbau Fehler OA Merkmal wird nicht unterst tzt 22 Datenfehler z B Division durch 0 23 Tabellen Spaten Bedingung ist verletzt 2A SQL Syntax oder Zugriffsfehler 2D Nichterlaubte Transaktionsbeendigung 34 Ung ltiger Cursorname 3D Ung ltiger Katalogname Sr Ung ltiger Schemaname 40 Rollback 42 Syntax oder Zugri
198. dLow boolean nullsAreSortedAtStart boolean nullsAreSortedAtEnd boolean Das Interface 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 Methodenname Parameter R ckgabetyp getColumnCountO 0 boolean isAutolncrement int column boolean isCaseSensitive int column boolean isSearchable int column boolean isCurrency int column boolean isNullable int column int isSigned int column boolean getColumnDisplaySize int column int getColumnLabel int column String getColumnName int column String getSchemaName int column String getPrecision int column int getScale int column int getTableName int column String getCatalogName int column String 313 Datenbanken getColumnName int column String getColumnType int column int getColumnTypeName int column String isReadOnly int column boolean isWritable int column boolean isDefinitelyWritable String columnName boolean Die Klasse SOLException Sie umfa t Fehlermeldungen beim Datenbankzugriff Methodenname Parameter R ckgabetyp
199. de Dienste und deren technische Beschreibung in diesem Verzeichnis Uber den Verzeichnisdienst kann er diese finden und danach beim Dienstanbieter automatisiert aufrufen Der Nachrichtenverkehr zwischen allen drei Partnern wird ber SOAP Nachrichten abgewickelt Dientanbieter Ver ffentlichung von Dienstaufruf ber SOAP Dienstbeschreibungen UDDI Dienstnachfrager Verzeichnisdienst Abb Service orientierte Architektur mit SOAP WSDL und UDDI WSDL Beschreibung Suche nach Diensten Bedeutende Anwendungsbereiche von Web Services sind u a Anwendungsintegration elektronischer Datenaustausch Electronic Business Anwendungen und Business to Business Integration 157 Datenbanken 1 5 3 5 Oracle Application Server Das Entwickeln von Applikationen f r das Web ist ein komplexer Proze Die Zahl der Programmiersprachen APIs und Entwicklungsformen nimmt stetig zu Oracle bietet eine Produktserie zur Entwicklung und zum Test von Anwendungen zur Verbindung mit einer Oracle DB und zur Integration mit minimalem Aufwand in das Web an Communication Business Logic Presentation Business Intelligence Services Services Services Services Oracle HTTP Oracle Apache Oracle Reports 10g Server BC4 EJB JServ 10 Apache 09 Oracle 8i 9i 10g Oracle Oracle mod_plisl JVM OC4J111 Discover mod_jserv Plus viewer mod_oc4j Oracle 8 9i 10g Oracle mod_ose PL SQL JSP PSP mod_dms mod_onsint Oracle mod_oprocmgr Forms 10g mod_oradav
200. definieren Es gibt 3 Basis Datentypen NUMBER L nge Dezimalstellen Felder mit numerischen Datenwerten k nnen definiert werden mit NUMBER DECIMAL FLOAT INTEGER und SMALLINT Am h ufigsten wird NUMBER benutzt Werte f r NUMBER k nnen sein ganze Zahlen Dezimalzahlen Exponentzahlen 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 145 z hlt aber nicht zum SQL Standard Es besteht die Gefahr falscher Interpretationen dieses Typs auf anderen Datenbanksystemen 146 40 Stellen sind im Hauptspeicher besetzt gleichg ltig ob die 40 Stellen ben tigt werden oder nicht 234 Datenbanken Oracle verf gt ber eine Reihe mathematischer Funktionen z B Funktion Beschreibung Absolutbetrag GREATEST X Y LEAST X Y ROUND X n Rundung von X auf n Dezimalstellen TO_NUMBER X konvertiert String X in die entsprechende Zahl TRUNC X n schneidet die Mantisse bis auf n Dezimalen ab Au erdem sind auf numerische Werte die relationalen Operatoren lt gt gt lt l 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 alphanumeri
201. den Konstruktionselementen Entit tsmenge Entit tsattribute Beziehungsmenge Beziehungsattribute und Festhalten dieser Konstruktionselemente mit Hilfe von normalisierten Elementaroperationen 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 MH 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 184 Datenbanken 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 Auswahl einer Untermenge aus einer Menge von Datenelementen Die Mengenalgebra stellt daf r Operationen z B Durchschnitt Verein
202. den ge ffnetet SQL Cursor Abb SQL Cursor Befehle Ein Cursor wird ber DECLARE deklariert DECARE Cursorname 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 FROM ANGESTELLTE ABTEILUNG 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 SOL OPEN Cursorname Das Schlie en funktioniert analog EXEC SQL CLOSE Cursorname 170 Falls die Konvertierung in eine zeichenkette erfolgt erfordert ROWID 18 Bytes Bei einer Konvertierung als Bin rwert ist die L nge systemabh ngig 285 Datenbanken 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 Eine Anderung am Datenbestan
203. den zugeh rigen ausf hrbaren Programmcode erfolgt dynamisch erst zur Laufzeit Standard f r objektorientierte Datenbanken ODMG 93 Die Mitgliederfirmen der ODMG Object Database Management Group haben einen Standard f r objektorientierte Datenbanksysteme ODBS 38 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 37 eine Gruppe f hrender Hersteller objektorientierter Datenbanksysteme 38 Spezifikation ODMG 93 71 Datenbanken 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 1 3 7 3 Objektrelationale Datenbanken Es handelt sich dabei im Kern um relationale Datenbanken die um bestimmte objektorientierte Konzepte erweitert werden Dazu geh ren Objektidentit t Typhierarchien und Typkonstruktoren Das erm glicht die Konstruktion benutzerdefinierter Datentypen z B create type adresse_t as object strasse varchar2 20 hausnumm
204. 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 deklariert 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
205. die eine Menge von Attributen und Methoden umfassen Jedes Objekt besitzt eine inh rente systemvergebene unver nderliche OID ber die systemweit eindeutig identifiziert und registriert werden kann Das in Oracle umgesetzte Konzept der Objekttypen sieht allerdings OIDs nur f r Objekte vor die als Zeilen einer Objekttabelle gespeichert werden Strukturdatentypen k nnen wie andere Datentypen auch als Typ eines Attributs bzw eines Tupelfelds dienen Auf diese Weise k nnen Objektansammlungen die eine Komposition in UML entprechen direkt in die Datenbank umgesetzt werden Eng verbunden mit dem Konzept der Strukturdatentypen sind folgende Konzepte Typhierarchien Methoden Objektidentifikationen 4 Typhierarchien Eine Typhierarchie entsteht durch Definition von Subtypen In aktuellen objektrelationalen Datenbanken kann ein Subtyp nur von einem Strukturdatentyp 40 in Oracle hei t der Multimengentypkonstruktor TABLE statt MULTISET 713 Datenbanken abgeleitet werden Folglich kommen nur folgende Arten von Datentypen als Supertypen und damit auch als Subtypen in Frage benannte Tupeltypen Informix strukturierte Typen DB2 und Standard SQL Objekttypen Oracle Ein Subtyp erbt jeweils die Struktur Attribute und das Verhalten Methoden seines Supertyps 5 Methoden Methoden implementieren das Verhalten des jeweiligen Strukturdatentyps Prinzipiell erm glichen sie das Speichern und Ausf hren von Programmcode in D
206. dingung 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 sel tt un oe 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 192 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 Diese Mengen sollen zusammengenommen minimal sein d h keines der Axiome ist au
207. dividuelles 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 NAME
208. dsklassen 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 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 lierers 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 9 vgl Abb 1 3 1 34 Datenbanken Beziehungs menge BELEHRT beschrieben der das Bezie
209. 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 Hochkommata eingeschlossen Numerische Werte werden ohne besondere Kennzeichnung eingegeben Der Abschlu einer Eingabe wird mit einem Semikolon markiert Es bewirkt 0 da der Befehl nach dem lt RETURN 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 soL 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 Anderung betroffen sein wird Durch Angabe einer Zeilennummer nach LIST kann auf die zu korrigierende Zeile direkt Bezug genommen werden Die Anderung 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 vo
210. e 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 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 54 Datenbanken 5 Zusammenfassung Die Einf hrung spezieller Entit ts Typen zur 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 Typen und ihrer Attribute einschl der Wertebereiche Die Beschreibung der vorkommenden Set Typen Bsp
211. e job_id from angestellte where angestellte abt_id KO 248 Datenbanken 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 ssen 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 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
212. e 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 Lieferant Liefertermin Bestell Preis Name datum Bestellmenge Abb 1 3 33 Sicht des Anwendungsprogrammierers A 2 Anwendungsprogrammierer B ist f r die maschinelle Abwicklung der Nachbestellungen aus dem Lagerwesen zust ndig B braucht dazu die Sicht 62 Datenbanken Bestell Nr Lieferant Name Bestellmenge Bestelldatum Abb 1 3 34 Sicht des Anwendungsprogrammiereres B Das konzeptuelle Schema soll eine vollst ndige redundanzfreie und neutrale Darstellung der logischen Datenstrukturen gew hrleisten Bei vollst ndiger Daten neutralit t ist es m glich durch unterschiedliche Benutzersichten Netze Hierarchien
213. e Beziehungen in _ relationalen DB 9 Ubungsblatt Integrit tssicherheitsvorkehrungen in Oracle DB 10 Ubungsblatt Embedded SQL 11 Ubungsblatt Embedded SQL mit SQLJ 12 Ubungsblatt JDBC 13 Ubungsblatt Die objektorientierte relationale _ DB in Oracle 14 Ubungsblatt PL SQL 15 Ubungsblatt PHP 16 Ubungsblatt XML in Oracle 9i bzw Oracle 10g 194 http fbim fh regensburg de saj39122 DB index html 371 Datenbanken Aufgabenbl tter 1 Aufgabenblatt Entwurf Implementierung einer Adresse 9 Erzeugnis DB 2 Aufgabenblatt Entwurf Implementierung Lieferant Teil Projekt DB 3 Aufgabenblatt Embedded SQL 4 Aufgabenblatt Klausur 5 Aufgabenblatt Entity Relationship Diagramme 6 Aufgabenblatt Normalisierung von Tabellen 7 Aufgabenblatt UML Diagramme und relationale objektrelationale Darstellung 8 Aufgabenblatt Formate f r Datumsangaben 9 Aufgabenblatt SQL Queries 10 Aufgabenblatt JDBC 11 Aufgabenblatt Objekt relationale DB 12 Aufgabenblatt Nordwind DB 13 Aufgabenblatt XML DB 195 http fbim fh regensburg de saj39122 DB index html 373
214. e Interpretation die einer geschlossene Formel eine wahre Aussage zuordnet 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 DD a wobei b1 Dm 41 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 Xk dann l t sich die Klausel so interpretieren F r alle X4 Xk gilt b v vb lt a N Nd Falls n 0 ist keine Bedingung ist spezifiziert dann ist die Interpretation F r alle X4 Xx gilt bv vb Falls m 0 ergibt sich F r alle X4 Xx gilt a A na ist
215. e 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 view wird mit Hilfe der Datenmanipulationssprache DML aus der Basis deren Struktur durch eine Datendefinitionssprache DDL festgelegt wurde best
216. e 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 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 einen Pfeil in Richtung einer Rolle angezeigt werden 79 Datenbanken Rollei Rolle2 Ei 0 Abb Bin re Relation R C1 x C2 Rolle1 Abb n re Relation CIxC2x xCn 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 nm 0 k 0 n 0 n 17 4 17 4 n m Abb Kardinalit ten f r Beziehun
217. e darf jedoch 240 Zeichen nicht berschreiten Je Tabelle sind beliebig viele Indexe erlaubt Indexe kann der Eigent 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 B B 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 Date
218. e 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 DESC UPDATE lt Tabellen Name 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 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 SELE
219. ebenen ISOLATION LEVEL an Die unterschiedlichen Isolation Levels lassen unterschiedliche Effekte bei der Transaktionsverarbeitung 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 sic
220. efehle 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 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 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 Uber 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 282 Datenbanken 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 4 1 1 Embedded SQL in Oracle mit dem Precompiler Pr
221. efinition eines Namensraums wird in einem XML Dokument ein Pr fix je Dokumenttypdefinition gew hlt die im XML Dokument vor den entsprechenden Element und Attributnamen gestellt werden Namensr ume unterscheiden Elemente mit identischen Namen aus unterschiedlichen XML Anwendungen XPath XPath liefert die Syntax f r das Durchsuchen von XML Dokumenten kann als Basis f r Such und Abfragesprache verwendet werden Mit Hilfe von XPath kann man mit einer Pfad Notation auf einzelne Knoten eines XML Dokuments zugreifen aktuelle Version 1 0 1999 vom W3C empfohlen Bestandteil von XQuery XSL Klink X Pointer Ausgabgspunkt ist die Baumstruktur eines XML Dokuments liefert eine Knotenmenge zur ck entspricht nicht XML Syntax XPath ist eine Abfragesprache f r XML Dokumente ber die Elemente mit angef hrten Eigenschaften aus XML Dokumenten herangezogen werden k nnen Die Bezeichnung XPath geht darauf zur ck da Abfragen in Form eines Teil 97 Datenbanken Pfads59 von der Wurzel zu den gesuchten Elemente herangezogen werden k nnen F r jeden Teilausdruck entlang des Pfads k nnen Einschr nkungen constraints angegeben werden die die L sungswege einschr nken Anfragen werden als for let order by return Ausdr cke FLOWRS P Ausdr cke formuliert FLOWR Ausdr cke k nnen beliebig tief geschachtelt sein XQuery Basiert auf XPath und erlaubt flexible Abfragen auf XML Datenbanken XQuery enth lt auc
222. egel des relationalen Modells die nur Typkonstruktoren in Form SET ROW Basisdatentypen zul t 66 Datenbanken Typkonstruktoren Nein Homogene Elemente ROW UNION Abb berblick ber wertbasierte Typkonstruktoren 1 3 7 Das Datenbankmodell f r objektorientierte Datenbanken 1 3 7 1 Die Basis objektorientierter Datenbanknen Grundlagen Ein objektorientiertes Datenbanksystem ist auch nichts Anderes als ein Datenbanksystem mit den blichen Leistungen Datenintegration Daten unabh ngigkeit Unterst tzung vom Mehrbenutzerbetrieb Gew hrleistung der Datensicherheit Datenschutz Datenkonsistenz Verarbeitungsintegrit t Allerdings st tzt sich ein derartiges Datenbanksystem auf ein eigenes Datenbankmodell objektorientiert 0OODM 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
223. egennimmt 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 m Kommunikations Pool z Server Prozesse DB Proze DB Proze n y Datenbank Abb 1 2 8 Interproze Kommunikation Anwender bzw Datenbank Prozesse Zur 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 lt
224. egt ausschlie lich der DB Software 7 Verteilte Anfragebearbeitung 112 C J Date An Introduction to Database Systems 5th Edition chapter 23 Addison Wesley 1990 159 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 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 3 f r konzeptionelle Schichten in verteilten Datenbanken Globales Schema Es beschreibt Datenobjekte ihre Integrit tsbedingungen und Berechnungs strukture
225. ehr 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 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 Fachbereichs in einer bestimmten Hochschule z B Fachhochschule Regensburg ausweisen 16 vgl Chen P S The Entity Relationship Modell toward a unified view of data ACM Transactions on Database Systems March 1976 17 vgl 1 3 1 1 18 Es spielt auch eine wesentliche Rolle bei den Werkzeugen des computerunterst tzten Software Engineering CASE
226. eibung der Version 1 0 wurde ver ffentlicht Im September 1991 wurde die Version 1 1 bei der OMG eingereicht 75 Datenbanken Komponentendiagramm Zusammenh nge der Software Deployment Diagramm Hardwareaufbau Abb Einsatzgebiete und Eigenschaften der verschiedenen UML Diagramme Jedes der Diagramme besitzt zahlreiche Stilelemente mit verschiedenen Beschriftungsarten Das wesentliche Merkmal der UML ist die Integration der verschiedenen Diagrammarten die sowohl die statischen als auch die dynamischen Komponenten des zu entwerfenden Systems beschreiben Neben Objekt und Klassendiagrammen die f r die Modellierung der statischen Komponenten eingesetzt werden k nnen gibt es die Use Case Aktivit ts Datenfluss und Sequenzdiagramme zur Spezifikation der dynamischen Komponenten Use Case UML bietet f r die dem Software Entwurf vorgelagerte Phase der Anforderungsanalyse eine grafische Modellierungsmethode zur Definition von Anwendungsf llen typische Anwendungssituationen Anwendungsf lle kann man sich als eine Sammlung von Szenarios 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 Entit ten die solche Sequenzen ansto en nennt man Akteure Das Ergebnis dieser Sequenz mu etwas sein was entweder dem Akteur der sie iniziierte oder einem anderen Akteur nu
227. eife 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 adbms_output enable for job_rec in cl_title loop string job_rec titel dbms_output put_line string end loop END 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 PL 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 263 Datenbanken Numerische Funktionen cosg _ SSS ET S ENT S EOS ellimn en en ee a en a N x x y SINO o S O SINH o G O O TANH x E ea a E TRUNC x y Verk rzt x auf y Stellen E E a E Zeichenketten Funktionen CONCAT S1 52 NLS_INITCAP s1 s2 wie INITCAP allerdings bzgl der Sprache s2 NLS_LOWER s1 s2 wie LOWER allerdings bzgl der Sprache s2 NLS_UPPER s1 s2 wie UPPER allerdings bzgl der Sprache s2 SUBSTR s x y SUBSTRB S1 x y Zeichen in s3 UPPER s Datumsfunktionen 157 x y haben den Datentyp NUMBER 158 s1 s2 s3 haben den Datentyp VARCHAR2
228. eilschl ssel Studienrichtungsnummer abh ngig Es ist besser solche Abh ngigkeiten in getrennten Tabellen zu verwalten So f hrt die Normalisierung der vorstehende Tabelle auf folgende Tabellen STUDENT Hochstra e 2 Br ckenweg 23 Br ckenweg 23 STUDIUM STUDIENRICHTUNG SRNR STUDR Physik Psychologie Abb 1 3 5 Normalform der 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 37 Datenbanken 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 enthal
229. einander 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 intelligent ist Student ist hier eine
230. einem oder mehreren Typnamen 10 Anfragen mit tempor rer Typanpassung Methoden werden immer mit dem speziellsten Typ aufgerufen Der Standard erm glicht innerhalb einer Anfrage bzw Anweisung die Anpassung des speziellsten Typ einer Instanz eines strukturierten Typs entlang der Typhierarchie Eine Anpassung an einen Supertyp geschieht mit dem folgenden Ausdruck strukturierter wertausdruck as typname Bsp Berechnung des Jahresgahalts der Manager mit der mitarbeiterspezifischen Jahresgehalsmethode select dref oid as angestellterTyp jahresgehalt as angGehalt from manager Eine Anpassung an einen Subtyp erfolgt mit dem TREAT Ausdruck TREAT strukturierter wertausdruck as typname 11 Anfrage auf Tabellenfunktionen Mit dem Table Konstrukt kann eine Tabellenfunktion als Tabellenreferenz in einer Anfrage verwendet werden z B select name from table besserverdiener Euro 5000 12 Rekursive Anfragen Eine rekursive Anfrage hat folgendes Grundger st WITH RECURSIVE rekursionstabelle spaltenliste AS Rekursionsinitialisierung SELECT FROM tabelle WHERE initialisierungspr dikat 325 Datenbanken Rekursionsschritt UNION ALL SELECT FROM tabelle rekursionstabelle WHERE rekursionsbedingung Traversierungsklausell Zyklusklausel SELECT FROM rekursionstabelle 3 1 4 Datenmanipulation Das Einf gen ndern und L schen von Tabellenzeilen erfolgt mit Hilfe der DML Anweisungen INSERT
231. ekts UKTE at a a sei ea Eor EE ip aE rE Ee EE SEAS 348 3 2 2 1 Abfragen von Objekttabellen und Spalten ssessssssseieseseseseseerssssststsrtrrsrsssstsrerrersesrsrsrerrereees 348 3 2 2 2 N tzliche Funktionen f r Objektinstanzen und Objekttabellen rsersesssnersersneseennennen 349 3 2 2 3 Abfrage von Werten verschachtelter Objektinstanzen u snessessersessesennesnensennennennnen nennen 349 3 2 2 4 Abfrage von Collection piner 2 RER EE ER ars 349 3 3 1 Anwendungsprogrammierung in PL SQL Object PL SQL 222422042nesnensesnensennnennnne near 350 3 3 2 Anwendungsprogrammierung mit Java uerseesesessessensesnensesnonsorsnenennensonsnennnennenesnonsennnnnennennenan 350 33 2 1 JDBE2 2 22 ebenen reitet 350 3 3 2 kd Collection Typen 452 2 2 KAG RR BR EEE a ea EOE E EEEE 350 3 3 2 1 2 CEOB BLOB 332 52 na atana a e e A E a A a aR A i ta 350 3 3 2 1 3 Benutzerdefinierter Types orie ioiei ateei eie eaa a E EE erae aE aeei 350 3 32 13 18tr06 ERER E EET RAE E E 350 3321 32 Mit eigener Klasse unse se a ee Eaa EAEE e E E evt 351 3 32 14 Referenz Typos o mes haste NASE hie 351 3 322 SQL E E E E E A EeHEe Be FIT IIEH FR 351 3 3 2 3 JPublisher 0 22 Bist narsbiefriae ie 351 4 XML DATENBANKEN 2 42220442 0ue nannten nun nnn anne an nun nnnnannnnneennhrrunnnnnnn Rue gerne 353 4 1 Konzepte und Standardisierung crsssssonssonssonsonssnnssnnsonnsnnnennnennnsnensnnssonssonsnnsson
232. el st Es folgt ein Zur ckgehen zum vorliegenden Teilziel Backtracking Ist ein Faktum mit passendem Pr dikat und passender 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 A CALL EXIT FAIL REDO Abb Vierport Modell eines Pr dikats Das Backtracking steuert den Informationsflu zwischen den Aus und Eing ngen der Klauseln 206 Datenbanken CALL Pr dikat 1 Pr dikat 2 Pr dikat 3 Pr dikatn RETURN A FAIL REDO Backtracking Abb Informationsflu zwischen Ein Ausg ngen der Klauseln Das Backtracking beruht darauf da bei Uhnifikation 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 Choicepoint
233. ellen 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 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 1 3 2 2 Normalisieren 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 gt 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 ide
234. ellen Integrit ts Constraints die f r diese Tabelle definiert sind INSTEAD OF Trigger Hier wird mitgeteilt was an Stelle der Aktion zu tun ist die den Trigger aktiviert haben Schema Trigger F r Operationen auf Schema Ebene create table alter table drop table audit rename truncate revoke k nnen Trigger angelegt werden blicherweise bietet der Trigger Typ an das Verhindern von DDL Operationen und zus tzliche Sicherheitspr fungen beim Auftreten von DDL Operationen Trigger auf Datenbankebene Es k nnen Trigger angelegt werden die bei Datenbank Events aktiviert werden Dazu geh ren Fehler An und Abmelden Starten und Herunterfahren der Datenbank 2 Instead of Trigger Dieser Trigger dient zum berwachen von Sichten bei INSERT DELETE und UPDATE Anweisungen ber Insted of Trigger wird mitgeteilt wie die darunterliegenden Tabellen die Bestandteil einer View sind zu aktualisieren sind Instead of Trigger lassen sich nur auf Sichten ausf hren die nderbar sind163 Die Sichten d rfen keine NMengenoperationen UNION MINUS Aggregatfunktionen Gruppierungen oder Verkettungen GROUP BY oder START WITH sowie DISTINCT enthalten Definition CREATE OR REPLACE TRIGGER trigger name INTEAD OF ereignis referenzklausel WHEN trigger bedingung FOR EACH ROW anweisungsabschnitt 2 3 2 5 4 Stored Procedures Functions Packages PROCEDURES und FUNCTIONS Eine PROCEDURE kann folgenderma en
235. ellte ID CHAR 3 NOT NULL ABT_ID CHAR 2 PRIMARY KEY ID FOREIGN KEY Abt_ID REFERENCES Abteilung ID In der 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 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 ist 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 220 Datenbanken Es kann ein Zeitpunkt f r Integrit tspr fungen angegeben werden Jede
236. emumgebung 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 angesehen 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 Konsistenz81 bzw Integrit t82 nicht verletzt Kann dieser Zustand nicht erreicht werden so muss zum Ausgangszustand zur ckgekehrt werden Isolierte 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 Programme nicht beeinflussen Im Mehrbenutzerbetrieb mit vielen parallelen und 81 Konsistenz Der Datenbestand ist
237. en LOB Wert auf die vorgegebene L nge WARITE Prozedur schreibt die Daten ab dem vorgesehenen Offset an den LOB WRITEAPPEND Prozedur schreibt einen Puffer an das Ende des LOB Abb Prozeduren und Funktionen im DBMS_LOB Package Der folgende PL SQL Block l dt Textdokumente Programmaquelltext aus der Tabelle progrText DECLARE textdaten CLOB dok_datei BFILE BFIL ENAME TEXTAUSTAUSCH ImageViewer java loblaenge integer begin select programm into from progrText where name loblaenge textdaten ImageViewer java DBMS_LOB FILEOPEN dok_datei DBMS_LOB LOB_READONLY for update DBMS_LOB G ETLENGTH dok_datei DBMS_LOB LOADFROMFILE textdaten dok_datei loblaenge DBMS_LOB FILECLOSE dok_datei update progrText set programm textdaten where name ImageView java COMMIT end ber die Funktion READ bietet das DBMS_LOB Package die M glichkeit an LOB Daten aus einem LOB Attribut einer Tabelle auszulesen DBMS_LOB READ hat 4 Parameter Lob_loc IN amount IN OUT BLOB oder CLOB oder BFILE BINARY INTEGER die Anzahl der Bytes BLOB bzw Character CLOB die gelesen werden sollen offset IN INTEGER das offset in BYTES BLOB bzw Character CLOB von dem aus gelesen wird buffer OUT Ausgabepuffer set serveroutput on DECLARE textdaten CLOB
238. en 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 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 Uber den jeweils besten Weg entscheidet der ORACLE Optimizer F r jedes SQL Kommando legt er einen Ausf hrungsplan fest der eine regelbasierte bzw statistikbasierte Abarbeitung von SQL Anweisungen bestimmt 252 Datenbanken 5 Vergleich Oracle SQL gegen Standard SQL Kein namhafter Datenbankhersteller kann auf den ANSI Standard 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 vo
239. en 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 INVALID_NUMBER LOGON_DENIED NO_DATA_FOUND PROGRAM_ERROR ORA 06501 STORAGE_ERROR ORA 06500 INVALID_NUMBER LOGON_DENIED NO DATA FOUND NOT _LOGGED_ON ORA 01012 PROGRAM ERROR STORAGE ERROR TIMEOUT_ON RESPONSE ORA 00051 255 Datenbanken ZERO_DIVIDE ORA 01476 TOO_MANY_ROWS ORA 1422 Es k nnen auch eigene f r die jeweilige Anwendung spezifische Exceptio
240. en 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 Uberg 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 85 Datenbanken Selbstverst ndlich k nnen berg nge auch an Bedingungen die in eckigen Klammern stehen gekn pft werden Start T Stopp O KennwortEingabe Zustandsname Kennwort String Ereignis Argument Bedingung Aktion Variable Typ Initialwert entry Echo ausschalten entry Aktion do Aktivit t do Zeicheneingabe exit Echo einschalten exit Aktion Abb Symbole im Zustandsdiagramm 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 verschaltelten Zustandsdiagramms Allgemein bezeichnet do eine Aktivit t die unendlich lange dauern kann
241. en nicht verwendet werden f r Default Werte zu Spalten Hash Ausdr cke f r Cluster funktionale Index Ausdr cke CHECK Constraints von Splaten WHEN Bedingung von Triggern Group By und HAVING Klauseln START WITH und CONNECT BY Klauseln Sub Query Factoring In Oracle 9i ist hier die WITH Klausel vorgesehen Sie erlaubt einen bestimmten Teil einer Sub Query welcher mehrfach vorkommt einmalig zu definieren und dann mehrfach zu verwenden Das Sub Query Factoring geh rt zum SQL 99 Standard WITH abt_gehalt as 245 Datenbanken select abt abt_id abt bezeichnung count ang ang_id sum gehalt gehaltssumme avg gehalt from angestellte ang inner join abteilung abt on ang abt_id abt abt_id join job j on ang job_id j job_id group by abt abt_id abt bezeichnung select from abt_gehalt where gehaltssumme gt select avg gehaltssumme from abt_gehalt order by abt_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 angest t sabt rd 1KO angestellte job_id KO decode an
242. en ver ndert Dadurch kann wiederholtes Lesen desselben Datensatzes innerhalb einer Transaktion unterschiedliche Ergebnisse liefern Repeatable Read verhindert diesen Effekt Das Phantomproblem verhindert der Isolation Level SERIALIZABLE 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 DEFAULT literal NULL CONSTRAINT constraint CHECK conditional expression INITIALLY DEFERRED IMMEDIATE DR 222 Datenbanken NOT DEFERABLE er ph 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 expressi
243. enbankmodell besitzt im wesentlichen folgende Eigenschaften 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 10 vgl Codd E F A Relational Modell of Data for Large Shared Data Banks Communications of the ACM June 1970 Seiten 377 387 11 Datenbanksysteme die auf diese Konzepte beschr nkt sind werden als minimal relational bezeichnet 35 Datenbanken 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 SQL 13 Die Darstellung der Daten in einer relationalen Datenbank folgt speziellen Vor schriften Diese Vorschriften Theorie des relationalen Datenbankentwurfs be zeichnet man blicherweise als Normalisierungstheorie Normalisieren bedeutet Darstellung des logischen Schemas einer relationalen Datenbank in der Form einfacher nicht geschachtelter Tab
244. entrale um dort den Ort der gew nschten Daten zu erfahren p Verteilung Jeder Rechner kennt das vollst ndige Schema Anderungen 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 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 165 Datenbanken 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 hrungsreihenfolge dieser Teilfragen sequentiell parallel Best
245. entyps Der SQLJ Translator generiert beim Kompilieren eine Java Klasse die die Vorgaben der Deklaration und der im Paket salj runtime definierten Interfaces erf llt Ein benannter Iterator definiert seine Parameter namentlich Die Attributnamen des Iterators m ssen identisch mit den Namen der Spalten des Abfrage Ergebnisses sein Die Reihenfolge der Spalten bei der Abfrage oder bei der Iterator Deklaration ist egal die Verkn pfung erfolgt nur ber die Namen Bsp AngSchemaDemo sqlj import java sql SQOLException import oracle sqlj runtime Oracle sql iterator Angestellte String name String abt_id class AngSchemaDbemo public static void main String args throws SQLException Oracle connect AngSchemaDemo class connect properties Angestellte ang sql ang SELECT name abt_id FROM angestellte while ang next System out println Angestellte ang name ang abt_id Positions Iteratoren Die Definition von Positions Iteratoren legt nur die Datentypen fest nicht jedoch die Namen Die Reihenfolge bei der Definition des lterators mu in diesem Fall mit der Spaltenreihenfolge in der SQL Abfrage bereinstimmen Unbenannte Iteratoren werden durch ihre Position bestimmt Der Datenzugriff weicht auch vom benannten Iterator ab Via Fetch Anweisung lassen sich die aktuellen Werte des Iterators in Host Variablen einlesen SQL FETCH
246. er Anwender das RESOURCE Recht Er kann also ohne Zustimmung des Datenbankverwalters Tabellen anlegen Die Rechte 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 3 beim Datenbanksystem 137 ber en oracle 7 3 unter Solaris 2 5 im Datenbanklabor der FH Regensburg 228 Datenbanken anmelden 3s Im Dialog wird das Systen dann gestartet durch Eingabe des Kommandos sqlplus am Terminal Nach Ei
247. er der ODBC Treiber l uft und sind zus tzlich auf die Installation des ODBC 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 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
248. er 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 Anderungswert 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 Mit DROP TABLE DROP VIEW DROP INDEX k nnen Tabellen Sichten Indexe gel scht werden z B o ROP VIEW EINKOMMEN ROP TABLE ABTKOSTEN U ROP INDEX ABT_IDX ROP INDEX JOB_IDX ROP INDEX ANGEST_IDX ROP INDEX QUAL_IDX ur w Zw Ale ROP TABLE QUALIFIKATION ROP TABLE ANGESTELLTE ROP TABLE JOB ROP TABLE ABTEILUNG UUUDDOD 3 ndern der Tabellenstruktur Zum Einf gen neuer Felder dient der ALTER TABLE Befehl mit der ADD Klausel z B ALTER TABLE ABTKOSTEN ADD ANZAHL INTEGER Reicht der zur Verf gung gestellte Platz von Tabellenspalten nicht aus dann kann ber A
249. er number 3 ortsname varchar2 30 1 3 7 3 1 Objektrelationale Konzepe Zu den wesentliche objektrelationalen Konzepten z hlen Typkonstruktoren benutzerdefinierte Datentypen Typhierarchien Methoden Objektidentifikatoren benutzerdefinierte Ordnungen typisierte Tabellen bzw Objekttabellen Tabellenhierarchien typisierte Sichten bzw Objektsichten Sichthierarchien Objektrelationales Typsystem Das Typsystem eines objektrelationalen DBMS bietet neben einer Reihe von Basisdatentypen eine Menge von Typkonstruktoren zur Erzeugung komplexer Datentypen an 1 Basisdatentypen Basisdatentypen werden f r folgende Arten von Wertebereichen bereitgestellt Wahrheitswerte ganze Zahlen Festkommazahlen Flie kommazahlen alphanumerische Zeichenketten bin re Zeichenketten Datum und Zeitangaben Vielfach z hlen auch LOB39 Datentypen zu den objektrelationalen Konzepten LOB Datentypen erm glichen die Verwaltung beliebig langer bin rer und 39 LOB steht f r Large Object 12 Datenbanken alphanumerischer Zeichenketten wie sie in Multimedia Anwendungen gebraucht werden 2 Typkonstruktoren Typkonstruktoren erm glichen die Konstruktion neuer Datentypen Durch geschachtelte Anwendung von Typkonstruktoren k nnen beliebig komplexe Datentypen entstehen Zu den allgemein bekannten Typkonstruktoren geh ren ROW Tupeltypkonstruktor ARRAY Arraytykonstruktor MULTISET Multimengentypkonstrukt
250. erManager Prepared Statement ausf hren java sql PreparedStatement Abb Statement Arten Das Interface Statement Ein Statement Objekt wird mit createStatement des Connection Objekts erzeugt Methodenname Parameter R ckgabetyp executeQuery String sql ResultSet executeUpdate String sql int execute String sql boolean getMoreResults boolean close void getMaxFieldSize int setMaxFieldSize int max void getMaxRows int setMaxRows int max void setEscapeProcessing boolean enable void getQuery Timeout int setQueryTimeout int seconds void cancel void getWarnings Java sql SQLWarning clearWarnings void setCursorName String name void 309 Datenbanken getResultSet ResultSet getUpdateCount int Die wichtigsten Methoden sind executeQuery 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 M
251. er_objects where object_type TYPE desc personal_t Tabelle fungiert als Container fuer Objekte des angegebenen Typs create table personal angestellter personal_t set describe depth 2 desc personal Jeder benutzerdefinierte Datentyp besitzt einen Konstruktor gleichen Namens mit dem Objekte bzw Instanzen dieses Typs erzeugt werden k nnen autzuBi insert into personal values personal_t Mustermann Gabi OT Q8 LITLE 2500 00 2 adresse_t Musterallee 1 12345 Musterstadt Selektion von Attributen benutzerdefinierter Typen Kaskadierte Punktnotation select p angestellter nachname p angestellter adresse ort from personal p where p angestellter gehalt gt 2000 00 drop table personal drop type personal_t drop type adresse_t desc user_objects 3 2 1 3 2 User Defined Methods Eine Typ Deklaration kann Methoden enthalten Die Deklaration erfolgt ueber MEMBER FUNCTION bzw MEMBER PROCEDURE in der CREATE TYPE Anweisung CREATE TYPE typname AS OBJECT E 334 Datenbanken Atributdefinitions_und_Methodendeklarationsliste attribut datentyp attribut REF datentyp MEMBER FUNCTION funktionsname parameterlieste RETURN datentyp MEMBER PROCEDURE prozedur name parameterliste Abbildungs_und_Ordnungsmethode MAP MEMBER FUNCTION funktionsname RETURN date
252. ere 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 gt FBName STUDENT_X ist in der zweien Normalform ZNF nicht in dritter Normalform DNF 174 Datenbanken Dritte Normalform DNF Eine Relation R ist in DNF wenn sie sich in der ZNF befindet und jedes Nicht schl sselattrbut 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 berf hrung in die DNF Bsp STUDENT S NAME ADR GEB FB S1 Karl xxx 01 10 48 20 S2 Vera xxx 21 08 48 20 S3 Vera xxx 13 05 48 19 SA Maria xxx 04 12 47 20 S5 Tom xxx 11 01 47 20 S6 Fred xxx 01 03 49 19 FACHBEREICH FB 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 Attribut mit dem Prim rschl ssel gemeinsam Falls Relationen mehrere zus
253. erfalls 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 BEFORE 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 270 Datenbanken
254. erschiedene auf XML basierende Standards SOAP simple object acces protocol f r den Dienstaufruf WSDL web service description language zur Dienstbeschreibung UDDI universal description discovery and integration als Verzeichnisdienst zum Ank ndigen und Auffinden von Diensten BPEL4WS busisness process execution language for web services Web Services basieren auf Nachrichten die in Form von XML Dokumenten zwischen Server und Clients ausgetauscht werden Diese Nachrichten werden ber Internet Protokolle wie bspw HTTP oder E Mail bertragen Das Nachrichetenformat wird durch die SOAP Standard festgelegt der durch das W3C definiert wird Web Services k nnen ber SOAP Nachrichten aufrufen und mit Hilfe von WSDL auf eine einheitliche Art und Weise beschrieben werden Die Beschreibungen werden durch den Verzeichnisdienst UDDI ver ffentlicht Zus tzlich k nnen mit Hilfe von BPEL4WS komplexe Abfolgen von Web Services als Gesch ftsprozesse zusammengefa t werden als komplexer Dienst beschrieben und wiederum ber WSDL ver ffentlicht werden Proze und Kompositionsschicht BPEL4WS Ver ffentlichungsschicht UDDI Beschreibungsschicht WSDL Meldungsschicht SOAP bertagunsschicht HTTP Abb Schichtenmodell f r Web Services Web Services k nnen dann so realisiert werden Ein Dienstanbieter publiziert eine Beschreibung seines Dienstes ber WSDL im Verzeichnisdienst UDDI Ein Dienstnachfrager sucht passen
255. es Schema Fragmentierungsschema Allokierungsschema Lokales Schema Lokales Schema lankmnnnnnennnnenennenn 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 Verwltung 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 Verteilung 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 Datenbanksy
256. esersteseesesseeeessesersee 51 1 3 4 2 Das hierarchische Datenbankmodell s sseeesessseseseesreserstsrsrerrsssssststsrreterssrsterstsssesrereersteseseeeee 56 1 3 5 Das Koexistenz Modell 2 5 2 2 22 22 EEE Rec E E E E E E EE 61 1 3 6 Grundkonzepte von Datenmodellen 2 2442240220022nennensennnonnnennnnsnnnsnnesnnesnnesnnnsnensnensnn nennen 66 1 3 7 Das Datenbankmodell f r objektorientierte Datenbanken 22422042222s0nsennennensennensennnen nennen 67 1 3 7 1 Die Basis objektorientierter Datenbanknen 02222s02sesseeseennennenennnennnennenennensennnennne near 67 1 3 7 2 Grundlagen objektorientierter Systeme euuescessesnensesnensenseesonnnennennsnonsennnnnonnnenenonnnennenennonennn 69 1 3 7 3 Objektrelationale Datenbanken oisein aere an eaea r A R T a a 72 1 3 7 3 1 Objektrelationale KONZEPE noiiire aeien ren er e aoe neu E EEE Oe reu EE EEEE a 72 1 3 7 3 2 Objektrelationale Unterst tzung in SQL3 esseeesseeiesesesesesreeresssrsrsrsterrersrsesrstreresssrsrsrerrerse 74 L38 Das UM Mode er 2 20 22 eisernen AAE A EE EaR TERR ERT 75 t 3 8 1 Di Diagramme yori 2a isn a E eie rE E aA TEO ET ERE 75 1 3 8 2 Schema Modelherung a a e aa E e A o E E RE 87 1 3 8 3 Datenbankmodellierung mit der UML ssssessseeiesessseseesessstsrsttereresrstststesterssestsretrereesesrsrerrersenses 89 1 3 9 Semistrukturierte Datenmodelle iucse sseni cien e n e aii EE a e E EK E eE ia 90 1 3 9 1 Das Object Exchange
257. esnennsonsennnnsonnnenensnsnensennonsonnnernnnennon 232 2 3 2 5 Datenbankprogrammierung nueesersessrsensnesnensesnensersnnnennennsnensennnnsonnenennsnensennonsonsnernsonanon 253 2 3 29 1 PE SOE 2 E ETA A E 254 ATOA IEE S ES A A S E S 267 Datenbanken 23 29 35 TUBgeR seine Mu na RaRs Re rennen uineieenines 269 2 3 2 5 4 Stored Procedures Functions Packages 22u2204200nssensneennensnennennennnennne nennen nennen 272 2 3 2 6 Datenb nk Verw ltung ceee reei 8285 00ssrealssheirsn sense una 274 2 3 3 Rekursive und iterative Abfragen mit SQL 2uu2s0sseseensenesenenensennensennnennnnennennsnonsensnnnennennn 277 2 3 4 Einbindung von SQL in prozedurale Sprachen uu220202220ensesnensennensennnenennnennennnnensennnenenne nn 278 2341 Embedded SQL orroa err EE shi HR Rah A h 278 2 3 4 1 1 Embedded SQL in Oracle mit dem Precompiler Pro C seseeeeeeeseereriereerrrerererrersese 283 2 3 4 1 2 Embedded SQL mit Java SQLJ in Oracle 0u0000seesseessneeenseeennnennsnennnennnnensnnnnnn nenne 290 2 342 Dynamisches SQL 2 22 281238 san Rinel igien 297 2 3 4 3 G ll Schniftstelle CD 4 54 22 1 Ders RERDRr eb EATS EEE 299 2 3 4 3 1 OBBE 2 22 54 22 else Hotreretinnpescrlnnipn see rlbaheenkee erh 299 234 3 2IDBE Banane hass AE E einnimmt 302 2 3 4 3 3 ORACLE Call Interface OCT 2 202202202202022 aea oe e EE E E ea EE Ee 317 3 OBJEKTRELATIONALE DATENBANKEN nnuusaannnnnnnn
258. eststellbar 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 V gebunden Eine andere Quantifizierung ist juergen lehrte josef etwas Die bersetzung in die Pr dikatenlogik lautet Es gibt ein X lehrte juergen josef X 123 mit Zeichenkettenliteralen die in Anf hrungszeichen gesetzt werden 124 Konstante werden generell in der Pr dikatenlogik mit kleinem Anfangsbuchstaben angegeben 125 Variablen definieren einen Gro buchstaben 195 Datenbanken Die Aussage wird vom Existenzquantor symbolische Darstellung 3 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 f t ist ein Term falls f ein n stelliges Funktionssymbol ist und t4 tn Terme sind 4 Nur so gebildete Zeichenketten sind Terme Primformeln p t t ist eine Primformel falls p ein n stelliges Pr
259. et 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 00DBS 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 Surrogate 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 o0DM kann ein Typ Untertyp eines anderen sein Der Untertyp ist eine Spezialisierung des Obertyps bzw der Obertyp ist eine Generalisierung des Untertyps Man spricht von der 1s_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 erkennen Erweiterung bzw Erg nzung objektorie
260. eteilte Daten synchron halten Trigger auf Zeilenebene werden mit der for each row Klausel im create trigger Befehl angelegt Trigger auf Anweisungsebene Sie werden bei jeder DML Anweisung einmal ausgef hrt Trigger auf Anweisungsebene sind die Standard Trigger und werden mit dem Befehl create trigger angelegt BEFORE und AFTER Triger Da Trigger aufgrund von Events ausgef hrt werden kann man sie so einrichten dass sie vor oder nach diesen Events z B vor und nach inserts updates deletes ausgef hrt werden Innerhalb eines Triggers k nnen alte und neue Werte referenziert werden die in DML Anweisungen eingebunden sind Der ben tigte Zugriff auf die alten und neuen Daten kann den Trigger Typ festlegen Alt referenziert Daten die vor der DML Anweisung existieren Aktualisierungen und L schungen referenzieren 271 Datenbanken blicherweise alte Werte Neue Werte sind Datenwerte die von der DML Anweisung angelegt werden Soll in einer eingef gten Zeile ein Spaltenwert ber einen Trigger gesetzt werden ben tigt man f r den Zugriff auf die neuen Daten eine BEFORE INSERT Trigger Ein AFTER INSERT Trigger erlaubt kein Setzen der neu eingef gten Werte da die Zeile bereits in der Tabelle hinterlegt wurde AFTER Trigger auf Zeilenebene kommen h ufig bei Audit Anwendungen zum Einsatz da sie erst nach dem Andern von Daten aktiv werden Werden die Zeilen erfolgreich modifiziert impliziert das auch die Pr fung der referenzi
261. ethode nimmt einen SQL String und gibt einen Integer Zahl der Spalten die vom SQL Statement betroffen sind zur ck Das Interface 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 executellpdate und execute nehmen keine Parameter auf sondern nur Aufrufe f r das DBMS das bereits optimierte SQL Statement auszuf hren Das Interface CallableStatement Ein CallableStatement Objekt wird von der prepared Methode eines Connection Objekts erzeugt 310 Datenbanken DriverManager getConnection Connection prepareStatement createStatement prepareCall PreparedStatement Statement CallableStatement erstellt ein PrepareStatement erstellt ein Statement erstellt ein CallableStatement Objekt zum Senden von Objekt zum Senden Objekt zum Aufruf SQL Befehlen die Parameter von statischen SQL von Stored Procedures Enthalten Befehlen in der Datenbank IN Parameter ohne Parameter IN Parameter SQL Schablonen statische SQL Objekt zum Aufruf von Vorcompiliert und Anweisung Stored Procedures Vorgeparst IN 178 OUT 179 IN OUT 80 Parameter als Parameter Platzhalter als Parameter Platzhalter execut Upda
262. eziell 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 Die Projektion der Relation r 20 kann allgemein dann so beschrieben werden r Aj As e r An A j A Am Sind Namen der Attribute Bsp Operationen zur Projektion 1 Gegeben ist r Al A2 A3 a bb 5 a bb 6 a CH r Al a r Al A2 a bb a cc r A2 A3 bb 5 bb 6 Ceo G 120 Vereinbarung r A A2 An ist eine Relation vom Grad n t ist die zugeh rige Tupelvariable R A1 A2 An beschreibt das Schema der Relation 186 Datenbanken permutierte Relation r A2 Al A3 bb a 5 bb a 6 cca 7 2 Gegeben ist r LNR TNR a 1 a 2 7 Welche Lieferanten mit welcher Lieferantennummer LNR sind in der Lieferantenliste 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 AOB t t r und r A r B Voraussetzung Jedes Element von r A ist vergleichbar mit jedem Element von r B Bsp Operationen zur Selektion 1 r A B p 2 1 EIB C A B C go 2na T3 3 q 5 4 r B gt C A B C T a p 2 1 q54 2 r TNR G1 G2 G1 Teilgewicht mit Verpackung G2 Teilgewicht ohne Verpackung Welche Teile werden ohne Verpackung geliefert r G1
263. 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 java sql ResultSet Methoden Methodenname Parameter R ckgabetyp next boolean close 0 void wasNull 0 boolean Beschaffen der Datenwerte ber die Position Methodenname Parameter R ckgabetyp getAsciiStream int columnindex java io Input Stream getBinaryStream int columnindex Java io Input Stream getBoolean int columnindex boolean getByte int columnIndex byte getBytes int columnindex bytel getDate int columnindex Java sql Date getDouble int columnindex double getFloat int columnindex float getlnt int columnindex int getLong int columnindex long getNumeric String columnindex int scale Java sql Numeric getObject String Columnindex Object getShort int columnIndex short getString int columnIndex String getTime int columnindex Java sql Time getTimeStamp int columnindex Java sql Timestamp getUnicodeStream int columnindex java io InputStream Beschaffen der Datenwerte ber den Spalten Name Methodenname Parameter R ckgabetyp getAsciiStream String columnName java io Input Stream getBinaryStream String columnName Java io In
264. f B nden Frei w hlbare Tags erm glichen die semantische Beschreibung der Daten zwischen einem ffnenden Start und einem schlie enden Ende Tag Diese semantische Beschreibung erm glicht Dateninterpretation vom Menschen und von Maschinen bzw Programmen Informationssysteme aus XML Dokumenten und Datenbanken Informationssysteme enthalten Daten aus Textdokumenten und HTML Dokumenten des World Wide Web Text und HTML Dokumente sind in der Regel nicht so stark strukturiert wie Datenbankdaten Sie besitzen jedoch eine interne oft wechselnde und nicht streng typisierte Struktur Solche Daten bzw Dokumente bezeichnet man als semistrukturiert Bsp lt book gt lt author gt Neil Bradley lt author gt lt title gt XML companion lt title gt lt isbn gt 1 234 56789 0 lt isbn gt lt content gt XML builds on the principles of two existing languages lt emph gt HTML lt emph gt and lt content gt lt book gt Der wichtigste Faktor bei Auswahl einer Datenbank f r den Einsatz von XML ist die Frage ob man die Datenbank zur Speicherung von Daten oder Dokumenten benutzt Man unterscheidet zwischen datenorientierten Dokumenten data centric deren Schwerpunkt auf den Inhalten der einzelnen Strukturen liegt und dokumentorientierten Dokumenten document centric bei dem das Dokument als ganzes betrachtet wird datenzentriert Daten stehen im Mittelpunkt lt Rechnung gt einheitliche strikte S
265. falsch F r m n 0 erh lt man die leere Klausel die immer dem Wert falsch entspricht Horn Klauseln sind Klauseln bzw Clausen auf deren linke Seite nur eine einzige atomare Formel stehen darf b amp a a 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 aus a gt b und a ableitet dem Modus Tollens der bspw a aus a gt b und b ableitet der Kettenregel die bspw a gt c aus a gt b und b c ableitet 198 Datenbanken 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 is
266. ffsfehler 44 Check Bedingung ist verletzt 286 Datenbanken Abb Fehlerwerte von SQLSTATE In Abh ngigkeit von der Anwendung kann auf einen Fehler mit EXEC SQL COMMIT WORK oder EXEC SQL ROLLBACK WORK reagiert werden Die Klausel WHENEVER SOLERROR NOT FOUND CONTINUE GOTO Label wird immer dann g ltig wenn ein SQL Fehler jeglicher Art registriert wird Ein C Programm mit Embedded SQL Ek y y Das Programm ermittelt Loesungen fuer die SQL BSA Abfrage z Ermittle alle Angestellten die in der Abteilung x Konstruktion beschaeftigt sind y SELECT ANGESTELLTE ID ANGESTELLTE NAME S TO_CHAR ANGESTELLTE GEBJAHR dd mm yy 5 FROM ANGESTELLTE ABTEILUNG px WHERE ANGESTELLTE ABT_ID ABTEILUNG ID AND 7 ABTEILUNG BEZ KONSTRUKTION Ey Ix rT include lt stdio h gt Jx EI In der DECLARE SECTION muessen alle Variablen r deklariert werden die von einem der SQL Makros zy benutzt werden sollen AX Mode ANSI C Character Strings mit schliessendem yx 0 Byte koennen ohne Aenderung benutzt af werden fuer SOL Aufrufe FR Lx I EXEC SQL BEGIN DECLARE SECTI
267. frage GROUP BY gruppierungsfunktion HAVING ausdruck op ein mehrwertige_Unterabfrage ORDER BY sortierkriterium Es gelten folgende Regeln f r die Verwendung von Uhnterabfragen In einer SELECT Klausel darf die Unterabfrage nur eine Zeile mit einem einzigen Spaltenwert zur ckgeben In einer FROM Kausel kann die Unterabfrage eine oder mehrere Zeilen zur ckgeben In einer WHERE Klausel mu die Uhnterabfrage auf der linken Seite des Vergleichsoperators op eine einzelne Zeile und einen einzelnen Spaltenwert zur ckgeben Die Unterabfrage auf der rechten Seite kann einen einzelnen Wert aus einer oder mehreren Zeilen zur ckgebeb abh ngig vom Typ des benutzten Vergleichsoperators In der WHERE Klausel gibt es verschiedene Unterabfragen die es gestatten da mehrere Spalten sowohl auf der linken als auch auf der rechten Seite des Vergleichsopeartors vorhanden sein k nnen In einer HAVING Klausel kann die Unterabfrage abh ngig vom verwendeten Vergleichsoperator eine Spalte aus einer oder mehreren Zeilen zur ckgeben Eine Unterabfrage selbst wird aus einer SELECT Anweisung erzeugt die an den genannten Stellen wiederum verschachtelte Unterabfragen enthalten kann Zus tzlich sollten folgende Punkte beachtet werden Eine Unterabfrage mu in runde Klammern eingeschlossen sein An eine Unterabfrage in einer FROM Klausel sollte ein Tabellenalias vergeben werden um den Spaltennamen von der u eren Abfrage unterscheiden zu k
268. g 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 OD Organisation und Datenverarbeitung ANGESTELLTE ANG ID Al Friz 21 1950 OD SY A3 _ Wemer 234198 OD PR A5 Emi 23160 PA PR A6 Uwe sa _ RZ op A9 Ute 08 09 1962 OD sy Aii Ema 13 10 1966 OD k A12 Anton 57198 OD SY 50 Datenbanken JOB JOB ID TITEL GEHALT Kaufm Angestellter 3000 00 DM Techn Angestellter 3000 00 DM Systemplaner 6000 00 DM PR___ Programmierer __ 5000 00 DM OP__ Operateur 3500 00 DM QUALIFIKATION ANG ID JOB ID Abb 1 3 17 Tabellen zur relationalen Datenbank 1 3 4 Legacy Datenbanken 1 3 4 1 Das netzwerkorientierte Datenbankmodell Das Datenmodell einer netzwerkorientierten DB sieht 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
269. g aktiviert wird Da es sich um eine Eigenschaft der Verbindung zur Datenbank handelt wird hierf r eine Methode der Klasse Connection verwendet Connection setAutoComnit 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 abge schottet sind JDBC definiert f nf Abstufungen die sich ber Connection setTransactionlIsolation einstellen lassen Die aktuelle 315 Datenbanken Einstellung verr t ein Aufruf von Connection getTransactionlIsolation 8 Die einzelnen Stufen der Isolation sind als Konstanten in der Connection Klasse definiert TRANSACTION_NONE Keine Unterst tzung von Transaktionen TRANSACTION_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 h
270. g 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 55 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 SQAL NOTFOUND erfolgen SQL FOUND 155 Das Ergebnis der SELECT Anweisung besteht nur aus genau einer Zeile Andernfalls darf die SELECT Anweisung nicht direkt in das Programm aufgenommen werden sondern mu mit einem Cursor implementiert werden 261 Datenbanken ist TRUE falls mindestens eine Datenzeile behandelt wurde Das Attribut evaluiert zu NULL bevor die erste SQL Anweisung ausgef hrt wurde SQAL ROWCOUNT liefert die Anzahl der in der letzten SQL Anweisung verarbeiteten Datenzeilen Oursor Technik zur Ermittlung und Verwaltung mehrzeiliger Ergebnisse Ein Cursor verwaltet den Zugriff auf einen Satz von Datenzeilen der das Ergebnis einer SELECT A
271. gaben 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 verarbeitet 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 ei
272. ge von gleichartigen Objekten Entities Zusammenh nge Beziehungen zischen Entities werden als Assoziationen zwischen Klassen beschrieben 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 Baupl nen Diagramm Einsatzgebiet Use Case Gesch ftsprozesse allgemeine Einsatzm glichkeiten Klassendiagramm So gut wie berall das Klassendiagramm ist das wichtigste Diagramm der UML Interaktionsdiagramm Zeigt den Nachrichtenflu und damit die Zusammenarbeit der Objekte im zeitlichen Ablauf Sequenzdiagramm Zeitliche Aufrufstruktur mit wenigen Klasse Kolloborationsdiagramm Zeitliche Aufrufstruktur mit wenigen Nachrichten Package Diagramm Groborientierung in welchem Modul welche Klasse zu finden ist Aufteilung in Unterprojekte Bibliotheken bersetzungseinheiten Zustandsdiagramm Darstellung des dynamischen Verhaltens 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 41 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 Beschr
273. gef 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 Eigenschaften 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 17 Datenbanken Es arbeitet jeweils nur ein Benutzer
274. gen 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 43 Eine Navigation mit Pfeil kann als Zeiger in einer Programmiersprache betrachtet werden 80 Datenbanken Fahrzeuginsasse ee re 0 4 Beifahrer Fahrer f hrt y Abb Bei einer refleviven Assoziation zieht man eine Linie von der Klasse aus zu dieser zur ck Man kann die Rollen 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 DOO zeigeMaske mT Abb Eine Aggregation wird durch eine Raute dargestellt z B zwischen Kartenleser und Geldautomat 44 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 E
275. gen 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 komplexe h ufig sogar verschachtelte Tabelle die alle
276. gestellte abt_id OD angestellte job_id OD decode angestellte abt_id PA angestellte job_id PA decode angestellte abt_id RZ angestellte abt_id RZ decode angestellte abt_id VT 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 VARCHAR2 3 NAME VARCHAR2 10 KO VARCHAR2 2 OD VARCHAR2 2 PA VARCHAR2 2 RZ VARCHAR2 2 VT VARCHAR2 2 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 246 Datenbanken A14 Maria KA 13 rows selected Decode oder Case Funktion 152 Bestandteil des Intermediate Levels Syntax DECODE Wert Bedingung_l1 Ergebnis_1 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
277. 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 148 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 sentiert eine geschickte Art der Praktizierung von Client Server Architekturen Lokale Server Client Datenbanksystem Client Datenbeschaffung Oberfl che Fachfunktion Oberfl che Fachfunkti
278. h Elemente prozeduraler Sprachen 1 3 9 3 Abbildung von XML Strukturen auf Datenbankstrukturen Grunds tzlich kann man zwischen der Template gesteuerten und der Modell gesteuerte Abbildung unterscheiden Template gesteuerte Abbildung Es gibt hier keine vordefinierte Zuordnung zwischen der Struktur des XML Dokuments und der Datenbank Struktur Statt dessen werden entsprechende Kommandos in ein Template eingebettet die dann von der f r den Datentransport verantwortlichen Middleware verarbeitet werden XML Dokumente dienen hier als Templates Schablonen mit speziellen eingebetten Anweisungen z B SELECT Statements Templates werden eingesetzt um gezielt spezielle Informationen z B aus einer SQL Datenbank in ein XML Dokument zu bertragen lt xml version 1 0 gt lt Fluginformationen gt lt Intro gt Folgende Fl ge haben noch freie Pl tze lt Intro lt SelectStmt gt SELECT Airline FltNumber Depart Arrive FROM Flights lt SelectStmt lt Fluginformation gt Abb XML Template mit SELECT Anweisung Das Template wird bspw von einem Server bearbeitet Herausfiltern der SELECT Anweisung nach dem Parsen Weiterleitung an die Datenbank Ergebnisrelation in XML Format bringen XML Middleware Anzeigen Template gesteuerte Abbildungen werden derzeit nur f r die berf hrung von Daten aus relationalen Datenbanken in XML Datenbanken genutzt Modell gesteuerte Abbildung
279. h aber auf unterschiedliche Zeitpunkte Phantom Read 221 Datenbanken Ein Phantom einer Transaktion ist ein Lesevorgang bzgl einer Datenmenge 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 Leve Read 0 Read Uncommitted nicht erlaubt erlaubt erlaubt 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 dieser Transaktion durch andere Transaktion
280. h komplexe Attribute definieren Spaltenobjekte Zeilenobjekte Objekttabellen enthalten im Gegensatz zu relationalen Tupeltabellen keine Tupel sondern Objekte Innerhalb jeder Objekttabelle besitzt jedes Objekt eine eindeutige OID Object ID die dem Prim rschl ssel im relationalen Modell entspricht Dieser wird mit den weiteren Integrit tsbedingungen bei der Tabellendefinition angegeben Fremdschl sselbedingunen k nnen in der gewohnten Syntax angegeben werden Eine Objekttabelle basiert auf einem Objekttyp und speichert je Zeile eine Instanz des Objekttyps kann Integrit tsbedingungen enthalten mu f r jedes tabellwertiges Attribut je eine STORE Klausel enthalten Subtabellenbildung ist nicht m glich Syntax CREATE tabellenname OF objekttypname Substitutionsklausel Integrit tsbedingungsdefinitionsliste OID Klausel STORE Klausel Attributsubstitutionsklausel Die OID Klausel legt die Art der Referenzgenerierung fest 341 Datenbanken m Systemgeneriert oder vom Prim rschl ssel abgeleitet OBJECT IDENTIFIER is SYSTEM GENERATED PRIMARY KEY m Eine Objekttabelle darf auch Instanzen eines Subtyps aufnehmen Prinzip der Substituierbarket NOT SUBSTITUTABLE AT ALL LEVELS m Attributsubstitutionsklausel schlie t Substitution eines objektwertogen Attributs aus COLUMN attributname NOT SUBSTITUTABLE AT ALL LEVELS IS OF ONLY attributname Bsp create table kunde of kundeTyp knr primary key name not null
281. he Sicht der Daten Die wichtigsten Anforderungen die Verteilte Datenbanksysteme idealerweise erf llen sollten formulierte C J Date 2 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 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 obli
282. he Web Server der Sun s Java Servlet API zum Ausf hren von serverseitigem Java Code implementiert 111 0C4J ist die zentrale J2EE Laufzeitkomponente von Oracle Application Server 10g 158 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 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 logisc
283. henfolgen 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 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 113 Datenbanken Es besteht grunds tzlich die M glichkeit mehrere Tabellen im Rahmen von Verbundoperationen zu verkn pfen Bsp 1 Welche Angestellten ben den Beruf Systemplaner aus SELECT ANGESTELLTE ANG_ID ANGESTELLTE NAME JOB TITEL FROM ANGESTELLTE JOB WHERE ANGESTELLTE JOB_ID JOB JOB_ID AND JOB TITEL Systemplaner 2 Welchen Beruf bt welcher Angestellte aus SELECT ANGESTELLTE ANG_ID ANGESTELLTE NAME JOB TITEL FROM ANGESTELLTE JOB WHERE ANGESTELLTE JOB_ID JOB JOB_ID 3 Bestimme alle Angestellten aufsteigend geordnet na
284. hierbei von einem Dokument das nicht nur f r den Rechner geeignet ist sondern auch vom Menschen gelesen werden kann Bsp lt content gt XML builds on the principles of two existing languages lt emph gt HTML lt emph gt and lt emph gt SGML lt emph gt to create a simple mechanism The generalized markup concept lt content gt semistrukturiert Mischform aus daten und lt Song gt dokumentzentriert lt Titel gt Der Nippel lt Titel gt lt Interpret gt Mike Kr ger lt Interpret gt lt Text gt Sie m ssen erst den lt boldf gt Nippel lt boldf gt F r die datenorientierte XML Struktur kann man sich eine passende Tabelle in einer Datenbank vorstellen Bei dokumentorienter XML Struktur k nnte man sich eher die Speicherung vom XML Dokument als ganzes in der Datenbank vorstellen XML Datenbanken XML Daten in Datenbanken bilden eine geeignete Kombination von XML als Austauschformat f r Daten unterschiedlicher Herkunft und den Vorteilen eines DBMS Zugriff auf die Vielzahl der Informationen die in der DB gespeichert sind XML Dokumente k nnen wegen ihrer speziellen Aufzeichnungsysntax gezielt nach Informationen durchsucht werden Eigene f r XML entwickelte Abfragesprachen existieren bereits Gro e Datenmengen in XML k nnen durch Zerlegung in ihre 20 Datenbanken Elemente auf den Strukturen einer Datenbank zum schnellen Durchsuchen abgebildet werden Als XML Datenbank werden D
285. hilfe schafft das Cursorkonzept von SQL Das Cursorkonzept Ein mit dem DECLARE Befehl angelegter Cursor deklariert eine SQL Mengenoperation 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 278 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
286. house 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 Analytical Processing OLAP erf llen sollen Mehrdimensionale 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
287. ht in der Regel 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 Chemie 12 B 50 Chemie 13 cC 30 Physik 11 A 80 Physik 13 C 20 mit mehreren PR Werten in Beziehung 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 PERSON_ENF PE PR NAME WOHNORT A A NAME PR NAME ZEIT Abb 2 1 6 Relation PERSON_ENF in erster Normalform 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 verletzen genau die mit Speicheranomalien in Zusammenhang stehenden Attribute die Kriterien der ZNF Aufspalten der Relation PERSON_ENF in ZNF Relationen PERS
288. hungsattribut BEURTEILUNG zugeordnet werden kann So kann bspw BELEHRT D1 S1 D1 S3 D2 S1 D2 S2 D2 S3 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 1 3 2 Das relationale Datenbankmodell 1 3 2 1 Grundlagen Grundlage dieses Datenmodells sind einfache Tabellen z B Schl ssel Fakult t Geburtsdatum 110506 Werner__ Medizin 10 03 71 060313 Kari Jura 10 01 73 2517008 Fritz _ 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 Dat
289. iber angesteuert werden Jeder Treiber registriert sich beim JDBC Manager w hren der Initialisierung Beim Versuch sich mit einer Datenbank zu verbinden gibt das 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 0ci7 rfhs8012_ora3 155 Datenbanken A GetConnection Driver Initialisieren und Allokieren createStatement prepareCall Connection prepareStatement t Bearbeiten executeUpdate von Anwer Statement Callable Prepared sungen Statement Statement executeQuery v gt execute A Verarbeitung getMoreResults Resultat next GetResultSet ResultSet getString getFloat I Deallokieren Bereinigen Abb 1 5 20 JDBC Objekte Methoden Ablauf 156 Datenbanken 1 5 3 4 Web Services Unter Web Services versteht man lose gekoppelte verteilte Dienste die ber Internet basierte Protokolee und XML Nachrichten in einer sevice orientierten Architektur ver ffentlicht lokalisiert und dynamisch aufgerufen werden k nnen Es existieren mehrere v
290. ichenfolge angegebene Spalte mit einem Textmuster string Bei string in like _bed haben _ und eine spezielle Bedeutung steht f r irgendein Symbol d h der Vergleich geht ber genau ein Zeichen mit dessen Stelle im Muster steht f r irgendeine Folge von 0 oder mehr Zeichen d h der Vergleich geht ber keines oder mehr Zeichen im Muster 109 Datenbanken is_bed spalten_auswah NOT gt ausdruck IN konstante ausdruck exists_bed Tr EXISTS gt spalten_auswahl gt NOT string zeichen 110 Datenbanken spalten_auswahl ALL gt SELECT ausdruck DISTINCT alias_bez FROM tabellen_name view name WHERE bedingung gt GROUP BY spalten_name 5 HAVING bedingung union_query select_ Kommando T select_ Kommando UNION ALL LY sfiere Kommando UNION ALL Abb 1 4 2 Syntaxdiagramme zum SQL Kommando 111 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 Bestimmen was mit den Daten geschehen soll
291. icherperepherie Diese Schicht greift ber die Zugriffsmethode unmittelbar auf den Speicher zu und steuert die Ubertragung von bzw zum Systempuffer Im Rahmen der 5 Schichten Architektur spricht man hier von der Ger teschnittstelle mit den diversen Treiberprogrammen 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 Segmente80 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 78 vgl 3 1 1 79 Man spricht auch von der Segmentschnittstelle 80 Synonyme Realm Area DB Space 126 Datenbanken relationales Datenmodell Bearbeitung von Anfragen gt Transaktions verwaltung data dictionary satzorientierte Schnittstelle Satzspeicherung Zugriffspfade Segmentschnittstelle gel Pufferverwaltung Dateiverwaltungsschnittstelle Dateiverwaltung re al Sea Metadaten Prim rdaten Abb 1 5 1 Architektur von Datenbanksystemen 127 Datenbanken 1 5 2 Transaktionsbetrie
292. icherungsverfahren 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 Anderungstransaktionen Bsp Eine Transaktion T hat in den Knoten Ki Km ber Teiltransaktionen Tj 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 richtig beendet wird Innerhalb einer einzelnen Transaktion Tj von Knoten Ki hat die zugeh rige lokale Fehlerbehandlungsroutine f r die Konsistenz der Daten gesorgt 166 Datenbanken 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 Rechner f hren die Suche nach Antwortmengen nicht mehr ber phy
293. ichner 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 alle 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 SOL 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 die in der Abfrage angegebene Bedingung erf llt Die nachfolgenden FETCH B
294. 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 240 Datenbanken 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 ANZAHL avg job gehalt 12 JAHRESDURCHSCHNITTSGEHALT from job angestellte where angestellte job_id job job_id group by job titel having count angestellte ang_id gt 2 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 MONATLICH TAEGLICH STUENDLICH Werner 3000 136 36 127 09 Fritz 6000 2213 34 09 Anton 6000 2712 73 34 09 Ute 6000 272 73 34 09 WHERE Spaltenname_l Spaltenname_2 Datens
295. ie Abspeicherung der Daten erfolgt nach einem festen Schema Format Der Zugriff zu den Daten ist ber Ordnungskriterien und Feldnamen gegeben Bsp PERS NR NAME VORNAME usn rannin eaaa eine eaa esse versecsssru rn A Unformatierte Datenbest nde 21 Datenbanken Hier k nnen S tze nicht durch Ordnungskriterien oder feste Stellenzuordnung der Felder identifiziert werden Deshalb m ssen wichtige beschreibende Schlagworte sog DeskriptorenS 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 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 Feldname Pers Nr Name Vorname Beruf Fam Stand Abt 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 Systeme f r formatierte Daten Systeme f r unformatierte Daten Numerische Informationssysteme Nichtnu
296. ie INTEGER NOT NULL adresse ROW plz INTEGER NOT NULL ort VARCHAR 50 NOT NULL strasse VARCHAR 30 NOT NULL Nummer INTEGER NOT NULL NOT NULL telefon VARCHAR 30 MULTISET NOT NULL fax VARCHAR 30 101 Datenbanken Die Abbildung funktioniert nicht immer Es gibt Probleme z B Abbildung von DTD auf SQL Datentypen Welche Elemente werden in welche Relation gruppiert Normalisierung Abbildung von DTD Rekursion in separate Relationen Erzeugung Prim r Fremdschl ssel Ordnungserhaltung durch Ifd Nummer als k nstliches Attribut Abbildung von Mixed Content Wurzelelemente in XML nicht festgelegt viele Nullwerte m glich 102 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 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 La
297. iented Data Managements lt f titel gt lt autoren gt lt autor gt lt vorname gt Alfons lt vorname gt lt nachname gt Kemper lt nachname gt lt autor gt lt autor gt lt vorname gt ndre lt vorname gt lt nachnamesEickler lt nachname gt lt autor gt lt autoren gt lt verlag gt Prentice Hall lt verlag gt lt buch gt 364 Datenbanken 4 2 XML und Oracle JDBC Applikation Browser Externe Tools SQL Net ftp WebDAV Zugriff Oracle 10g Datenbank XML DB XML Repository XMLType Tabellen Abb XML DB Folgende Komponenten in Oracle9i bieten XML Unterst tzung oder sind speziell f r XML entwickelt worden e Speichern von XML Daten in einer Tabelle vom Typ XMLType e XML Dokumente als Daten speichern e XML Dokumente als Dokumente speichern e XML Parser und XSL Processors Java C C PL SQL e XML Class Generator Java C e XML SQL Utilities f r Java e XSQL Servlet e XML Transviewer Beans e XDK Tools Software Devoloper Kits 4 2 1 Speichern von XML Daten in Oracle XML Dokumente werden durch ihre Charakteristik in dokument und datentechnische Dokumente unterteilt Die Speicherungsform als CLOB erlaubt dokumentzentrisches Speichern Die objektrelationale Speichervariante kommt dem datenzentrischen Typ entgegen Damit die DB zus tzliche XML Zugriffsweisen bereitstellt steht der Datentyp XMLTYPE zur Verf gung Bei einfacher Angabe von XMLTYPE wird dadurch eine dokumentzentrische
298. iert Dateien Volltextindex invertierte Listen Graphen DOM Als Dateien Speicherung der Dokumentenstruktur Volltextindex und Abbildung der XML Index Graphstruktur Abbildung des DOM Modells f r dokumentzentriertes XML Dokument a ne Strukturelle Speicherung in Datenbanken Vollst ndiges Mapping Benutzerdefiniertes Mapping Volltextindex und XML Index f r semistrukturierte Daten gt f r datenzentrierte XML Dokumente Abb Abbildung von XML Dokumente Zur Abbildung Datenbanken in XML Daten bzw XML Daten in Datenbanken haben mehrere Abbildungsvarianten ihre Berechtigung textbasiert als Zeichenkette gut f r dokumentzentrierte XML Dokumente graphbasiert als Graph DOM gut f r semistrukturiert strukturbasiert in Relationen gut f r datenzentriert Die textbasierte Speicherung kennt die Varianten Datei CLOB spezieller XML Textdatentyp f hrt sequentielle Anfragebearbeitung aus fordert den Einsatz spezieller Indexe 100 Datenbanken Volltextindex wie in IR etwa invertierte Listen Pfadindex Index auf Elemente Attribut Struktur Eine Bewertung der textbasiereten Speicherung ergibt Zugriff relativ aufw ndig keine Schemainformation n tig keine aufw ndige Abbildung ordnungserhaltend keine SQL hnlichen Anfragen m glich Die graphbasierte Speicherung kennt die Varianten einfache Speicherung der
299. ig STUDENTLE 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 173 Datenbanken 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 gut SL Prolog mittel sa E gut S2 Pascal schlecht S3 G gut S3 Pascal mittel 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 S4 Maria 04 12 47 xxx 20 Informatik Hechler s5 Tom 11 01 47 xxx 20 Informatik Hechler S6 Fritz 01 03 49 xxx 19 Elektrotechnik Jung Der Wechsel eines Dekans bewirkt hier mehr
300. igen Zustand in einen neuen ebenfalls 6 vgl 1 5 2 27 Datenbanken 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 zur Kommunikation der einzelnen Datenbankverwaltungssysteme 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
301. igung und Differenz als Sprachelemente zur Verf gung Eine Anwendungsm glichkeit 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 alle 1 lt j lt n Wertebereiche stimmt das Format der Daten in dem j ten Wertebereich von Relation r mit dem j ten Wertebereich von Relation s berein F r vereinigungsvertr gliche Relationen sind folgende Mengenoperationen definiert 1 Die Vereinigung von r und s f hrt zu einer Relation deren Tupel t in r oder s oder in beiden vorkommen t t r oder t es 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 t terundtes 3 Die Differenz von r und s f hrt zu einer Relation deren Tupel tin r nicht aber in s vorkommen 4 Die symmetrische Diffe
302. ikon gt Abb XML Dokument zur Darstellung semistrukturierter Informationen Quelle der Inhalte Der Brockhaus in f nf B nden 1 3 9 2 XML Datenmodell XML eXtensible Markup Language ist eine standardisierte Syntax zur Beschreibung hierarchisch strukturierter Daten XML ist keine Programmiersprache sondern ein universelles Format f r strukturierte Dokumente und Daten Die Tag basierte Syntax hnelt der von HTML Hypertext Markup Language Die HTML gibt einem Browser vor wie die Daten anzuzeigen sind XML teilt Applikationen mit was die Daten bedeuten XML eignet sich vor allem zur L sung von Austauschproblemen30 zwischen heterogenen Systemen XML Daten sind leicht zug nglich einfach zu konvertieren und abzuspeichern lt xml version 1 0 encoding UTF 8 gt lt rechnung kundennummer k333063143 gt lt monatspreis gt 0 00 lt monatspreis gt lt einzelverbindungsnachweis gt lt verbindung gt lt datum gt 26 2 lt datum gt lt zeit gt 19 47 lt zeit gt lt nummer gt 200xxxx lt nummer gt lt einzelpreis waehrung Euro gt 0 66 lt einzelpreis gt lt verbindung gt lt verbindung gt lt datum gt 27 2 lt datum gt lt zeit gt 19 06 lt zeit gt lt nummer gt 200xxxx lt nummer gt lt einzelpreis waehrung Euro gt 0 46 lt einzelpreis gt lt verbindung gt 48 mark up urspr nglich eine Anweisung aus dem Verlagswesen Anweisung an den Setzer definiert Regeln f r den Aufbau von Dokumen
303. immen der Knoten an die Daten geschickt werden sollen Auswahl lokaler Zufriffspfade Optimierung i Hier ist festzulegen wie lokale Bearbeitung und Ubertragung 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 nken Die Basis der Fehlerbehandlungsverfahren bilden lokale S
304. immt 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 64 Datenbanken Bsp Gegeben ist RECHNUNG RECH NR 2010 DATUM 31 12 1995 KUNDEN NR 50118 NAME neee ADRESSE ARTIKEL NR BEZEICHNUNG PREIS MENGE BETRAG A Widerstand 5 00 2000 10 000 00 B Spule 3 00 1000 3 000 00 SUMME 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 RECHNUNG 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 unerl lich Datenneutralit t Es werden nur solche Anwendungen unterst tzt die zue
305. in 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_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 150 vg e eingebaute Funktionen Formatangaben 239 Datenbanken ANG NAME ANG NAME Al2 Anton A3 Werner A3 Werner A12 Anton A13 Josef A6 Uwe A6 Uwe A13 Josef A7 Erna AA 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 4 Verbundanweisung kombiniert mit einer Unterabfrage die ein Ergebnis liefert
306. indung 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 OSI Normungsproze hat dazu gef hrt da sich in weiten Bereichen andere Kommunikationsprotokolle durchgesetzen konnten z B IPX SPX 37 IPX l uft auf der OSI Schicht 3 Vermittlung 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 SNASS TCP IP Im Gegensatz zum OSl Referenzmodell und auch zu SNA weist diese Kommunikationsschnittstelle nur 4 Schichten auf Netzwerk Internet Transport und Anwendung 87 Protokollsammlung von Novell Internet Package Exchange Sequential Package Exchange 88 Vernetzungskonzept von IBM System Network Architecture 89 Transmission Control Protocol Internet Protocol 137 Datenbanken 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 Millione
307. ine Lesesperre auf ein Objekt zur gleichen Zeit aus ben 131 Datenbanken 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 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 T2 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
308. inen Lokator auf die SQL Referenz dar 3 3 2 2 SQLJ Die statische Einbettung von SQL Anweisungen in Java Programmen wird mit Hilfe von SQLJ durchgef hrt 3 3 2 3 JPublisher Oracle bietet ber den Java Object Type Publisher einen sehr komfortablen Weg zur Umwandlung von Objekten und Pakete aus einer Datenbank Dazu m ssen diese Objekte als benutzerdefinierter Typ in der Datenbank erstellt werden Typen in Oracle Typen mit JPublisher in Java Objekte konvertieren Oracle liefert das Kommandozeilenprogramm pub mit seiner Client Distribution Dieses Tool wandelt deklarierte Benutzertypen aus der Datenbank in entsprechende Java Klassen um 351 Datenbanken 4 XML Datenbanken 4 1 Konzepte und Standardisierung 4 1 1 XML Grundlage dokumentenzentrierter Beschreibungen bilden sog Auszeichnungssprachen Markup Language Eine Auszeichnungssprache ist eine Sprache die Regeln zur Auszeichnung von Textelementen bereitstellt Beliebigen Textelementen k nnen auf deklarative Weise Eigenschaften zugewiesen werden wodurch deren Bedeutung Semantik hergeleitet werden kann Auszeichnungstyp Auszeichnungssyntax Starttags lt elementNamelattributes Schlu tags lt elementName gt Leere Element Tags lt elementNamelatributes gt Entity Referenzen amp entityName oder amp paramaterEntiyName Zeichenreferenzen amp decimalNumber oder amp hexNumber Kommentar lt comment gt Begrenzer des CD
309. 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 oder 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 Die Anweisungen k nnen an beliebigen Programmstellen eingef gt werden Eine WHENEVER Bedingung wird durch den Ausdruck CONTINUE annuliert EXEC SOL WHENE EXEC SQL WHENE ER NOT FOUND CONTINUE ER SQLERROR CONTINUE V V 281 Datenbanken 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 Beze
310. is zu Volltextdokumenten einnehmen dokumentzentriert semistrukturiert datenzentriert Entsprechend eignen sich auch Speicherungsverfahren von der Dokumentenverarbeitung Information Retrieval bis zur Datenbanktechnologie Es gibt keine optimale L sung f r alle Anwendungen Dokumentcharakter spielt entscheidende Rolle Native XML DBS und objekt relationale DBS mit erweiterter XML Funktionalit t Zwei Wege werden derzeit zur XML Unterst tzung eingeschlagen sog native XML Datenbanksysteme XML DBS 189 die vollst ndig auf Speicherung und Verarbeitung von XML Daten ausgerichtet sind Der Einsatz nativer Systeme XML DBS bietet sich an wenn ausschlie lich XML Daten zu speichern und zu verarbeiten sind Der Zugriff auf die Daten erfolgt dabei ber eine XML orientierte Schnittstelle z B DOM oder XQuery objekt relationale DBS mit erweiterter XML Funktionalit t 9 Die aktuelle Datenbank Landschaft wird deutilich von objekt relationalen DBS dominiert Sehr viele Daten sind objektrelational gespeichert und eine hohe Anzahl von DB Anwendungen basiert auf dem Zugriff von SQL Die neueste Version der SQL Norm SQL 2003 sieht die Unterst tzung von XML Daten vor SQL Basisdatentyp XML Im Normteil SQL XML wird der SQL Basisdatentyp XML eingef hrt der mit einem Nullwert einem XML Dokument oder eine Folge von XML Werten instanzierbar ist Dar ber wird es m gich Tabellen anzulegen die Spalten des Typs
311. isiert 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 259 Datenbanken IF Bedingung THEN Anweisungen falls die Bedingung den Wert TRUE hat ELSE Be 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 Schleifen gestalten sich strukturell genauso wie in anderen Programmiersprachen Unbedingte Schleifen LOOP 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 TE EHEN EXIT sofortige Beendigung der Schleife END IF weitere Anweisungen END LOOP EXIT WHEN beendet Schleifen weil eine bestimmte Bedingung eingetreten ist Die Bedingung ist hinter
312. ist Datentyps Bsp lt xsd simpleType name Fahrzeug gt lt xsd union memberType PKW LKW Motorrad Fahrrad gt lt xsd simpleType gt anyType Objekte k nnen jeglichen Inhalt enthalten d h einfache und komplexe Typen 360 Datenbanken Aus simplen Datentypen k nnen neue komplexe Datentypen gewonnen werden Komplexe benutzerdefinierte Datentypen Sequenz sequence Liste von Elementen mit festgelegter Reihenfolge Alternative Auswahl eines der vorgegebenen Elemente Bsp lt xsd complexType name Fahrzeug abstract true gt lt xsd complexContent gt lt xsd sequence gt lt xsd element name hersteller type xsd string gt lt xsd element name typ type xsd string gt lt xsd sequence gt lt xsd choice gt lt xsd element ref ottomotor gt lt xsd element ref dieselmotor gt lt xsd choice gt lt xsd complexContent gt Subtypbildung durch Extension Bsp lt xsd complexType name FirmenFahrzeug gt lt xsd complexContent gt lt xsd extension base Fahrzeug gt lt xsd sequence gt lt xsd element name Firma type xsd string gt lt xsd element name Inspektion type xsd date gt lt xsd sequence gt lt xsd extension gt lt xsd complexContent gt lt xsd complexType gt 361 Datenbanken 4 1 2 Zusammenspiel von XML und Datenbanken XML Dokumente k nnen die ganze Bandbreite von Daten b
313. itarbeiterTupelTabelle delete table select hobbies from mitarbeiterTupelTabell where name Johnny h where value h Reisen select from mitarbeiterTupelTabelle 3 2 1 3 Abstrakte Datentypen 3 2 1 3 1 User Defined Types Benutzerdefinierte Datentypen Objekttypen Objektrelationale DBS unterst tzen die Definition von anwendungsspezifischen Typen oft user defined types UDTs genannt Mit CREATE TYPE kann eine neue Klasse von Schema Objekten erzeugt werden create or replace type name as OBJECT 4 attr datatype attr datatype attr datatype OBJECT strukturierter komplexer Typ mit Methoden und Subtypbildung CREATE TYPE typename AS OBJECT definiert automatisch eine Konstruktormethode typename Bsp 184 Bei echten Objekten kommt noch ein CREATE VIEW BODY dazu in dem die Methoden in PL SQL definiert werden Ohne BODY bekommt man einfache komplexe Datentypen hnlich wie bei records 333 Datenbanken rem rem User Defined Structured Types rem create or replace type adresse_t as object strasse varchar2 30 hausnr number 3 Basistyp plz number 5 Basistyp ort varchar2 40 Basistyp desc adresse_t create type personal_t as object nachname varchar2 20 vorname varchar 20 geburtsdatum date gehalt number 7 2 kinder number 5 adresse adresse_t benutzerdefinierter Typ select object_name from us
314. ittstelle 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 einem Oracle Treiber Der Treiber k mmert sich um Das Schicken der Anfrage an die DB das Zur ckbekommen der Datenbank Daten 299 Datenbanken 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 API Grammatik Typ Konformit tsstufe Beschreibung API Konformit tsstufe Core Stufe 1 Stufe 2 umfa t alle Funktionen in der SAG CLI Spezifikation Ausrichten und Freigeben einer Verbindung 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
315. jekt 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 column commalist MATCH FULL PARTIAL ON DELETE NO ACTION CASCADE SET DEFAULT SET NULL 224 Datenbanken ON UPDATE NO ACTION CASCADE SET DEFAULT SET NULL INITIALLY EFERRED IMMEDIATE NOT DEFERABLE CHECK conditional expression INITIALLY DEFERD IMMEDIATE NOT DEFERABLE oO Die Option MATCH PARTIAL 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
316. jekten zusammen und k nnen als Segenzdiagramm bersichtlich dargestellt werden Neben dem zeitlichen Ablauf der Aktivit ten sind auch die beteiligten Objekte sichtbar Der Bedarf l sst sich der interne Ablauf der Methode durch ein Aktivit tendiagramm weiter pr zisieren so dass er als Methoden und Protedurcode ins Datenbankschema aufgenommen werden kann 89 Datenbanken 1 3 9 Semistrukturierte Datenmodelle Informationssysteme enthalten Daten aus Textdokumenten und HTML Dokumenten des World Wide Web Text und HTML Dokumente sind in der Regel nicht so stark strukturiert wie Datenbankdaten Sie besitzen jedoch eine interne oft wechselnde und nicht streng typisierte Struktur Solche Daten bzw Dokumente bezeichnet man als semistrukturiert Merkmale semistrukturierter Daten Die Struktur der Daten ist unregelm ig Das Schema ist implizit in den Daten enthalten Die Struktur der Daten ist unvollst ndig Das Schema ist flexibel Das Schema ist relativ gro s Das Schema unterliegt h ufigen nderungen Die Trennung zwischen Daten und Schema ist unscharf Modelle f r semistrukturierte Daten Semistrukturierte Daten werden in der Regel mit Hilfe von graphbasierten Modelle beschrieben z B Object Exchange Model OEM eXtensible Markup Language XML 1 3 9 1 Das Object Exchange Model Bei dem OEM enth lt das Modell Information zu Label ist eine klassen hnliche Bezeichnung der den Knoten einer Klasse
317. k 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 104 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 QBE 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 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
318. kann Ein abh ngige Unterabfrage mu einmal f r jede Zeile ausgef hrt werden und wird von ihrer bergeordneten Abfrage verarbeitet Veranschaulichung einer abh ngigen Unterabfrage in Pseudocode WHILE Zeile in bergeordneten Abfrage vorhanden LOOP F hre abh ngige Unterabfrage mit Daten aus einer Zeile der bergeordneten Abfrage aus Die abh ngige Abfrage gibt Ergebnisse an die bergeordnete Abfrage zur ck Die bergeordnete Abfrage wendet einen Vergleichsoperator auf das Ergebnis einer untergeordneten Abfrage an IF Ergebnis des Vergleichs wahr f r die aktuelle Zeile THEN beziehe den Resultset ein ELSE entferne die bergeordnete Zeile aus dem Resultset END IF Hole die n chste Zeile der bergeordneten Abfrage END LOOP Skalare Subqueries geben einen einzigen Wert zur ck Oracle 9i weitet ihre Verwendung auf beinahe jeden Platz aus in dem ein Ausdruck benutzt werden kann einschl GASE Ausdr cke SELECT Anweisung VALUE Klausel in einer INSERT Anweisung WHERE Klausel ORDER Klausel als Parameter einer Funktion select substr select ABC from dual 1 1 from dual Skalare Unterabfragen k nnen nur eine einzige Spalte oder eine einzige Zeile zur ckgeben Gibt es mehr als eine Zeile bei der R ckgabe dann wird ein Fehler produziert Wird keine Zeile f r die R ckgabe erzeugt ist der R ckgabewert NULL Der Datentyp des R ckgabewerts mu zum Datentyp mit dem er verglichen wird passen Skalare Unterabfragen k nn
319. ken findall X interesse X informatik L ergibt L juergen josef Dynamische Datenbanken Prolog ist flexibel Fakten k nnen w hrend der Laufzeit hinzugef gt gel scht oder ge ndert werden Das Hinzuf gen L schen und Andern 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 128 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 ge
320. ketten 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 tsgr nden mit dem 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 SOLCA zur Referenz auf den SQL Kommunikationsbereich 3 der Anweisung CONNECT zur Verbindung mit der Oracle Datenbank EXEC SOL CONNECT userid IDENTIFIED BY passwort useridund passwort Sind host variables vom Typ VARCHAR Oracle kennt folgende interne kompatible Datentypen CHAR X 66 char einzelnes Zeichen 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 integer NUMBER P S 167 small integer large integer floeting point number double precision floating point number einzelnen Zeichen n Bytes umfassendes Zeichenfeld 168 VARCHAR n n Bytes umfassendes Zeichenfeld variabler L nge VARCHAR n n Bytes umfassendes Zeichenfeld variabler L nge 166
321. konst oci_error erg osql3 cursor_data_area 1 TO_CHAR ANGESTELLTE GEBJAHR DD MM YY CD x7 Es muessen nun die C Programmvariablen angegeben werden in die die in dem SQL SELECT Kommando abgefragten Werte abgespeichert werden sollen y x7 Fuer jedes Element des SELECT Kommandos muss ein odefin Kommando abgegeben werden x 7 erg odefin cursor_data_area 1 angid sizeof TYPE_STRING v tshork 70 LKchar 0 21 1 amp rlen oci_error erg odefin angid cursor_data_area erg odefin cursor_data_area 2 angnam sizeof 320 angid z amp rcod 1 angnam 0 Datenbanken TYPE_STRING 1 short 0 char 0 1 1 amp rlen amp rcod oci_error erg odefin angnam cursor_data_area 1 erg odefin cursor_data_area 3 anggeb sizeof anggeb TYPE_STRING 1 short 0 char 0 1 1 amp rlen amp rcod oci_error erg odefin anggeb cursor_data_area 1 Definition aller C Programm Variablen die zur Uebergabe von Daten aus dem C Programm an die SQL Abfrage verwendet werden sollen EF erg obndrv cursor_data_area konst 1 konst sizeof konst TYPE STRING L Short 0z ehari 0 i L oci_error erg obndrv konst cursor_data_area 0
322. lefonArrayTyp as varray 30 of varchar 20 Nach Ausf hrung des Befehls gibt es einen Typ mit dem Namen telefonArrayTyp Die as varray 30 Klausel teilt mit dass ein variables Array angelegt wurde und dieses Array pro Datensatz 30 Eintr ge enthalten kann 3 2 1 2 2 Tabellentyp und verschachtelte Tabellen nested tables Mit geschachtelten Tabellen lassen sich Zusammenh nge modellieren die sonst in verschiedenen Tabellen abgelegt werden und in Anfragen ber JOIN ausgewertet werden m ssten Eine solche L sung bietet sich f r mengenwertige Attribute oder 1 n Beziehungen an oft sogar f r m n Beziehungen Geschachtelte Tabellen unterst tzen keine referentiellen Integrit tsbedingungen die den Inhalt der inneren Tabelle mit dem umgebenden Tupel oder einer anderen Tabelle verkn pfen create or replace type name as TABLE of datatype Kollektion Tabellen als Datentypen 183 SQL 99 erw hnt nur Collection Typ ARRAY 331 Datenbanken TABLE geordnete Multimenge mit indirektem Zugriff ohne Gr ssenbeschr nkung alle Elemente besitzen denselben Typ Elementindex als Iterator Anfragen auf geschachtelte Tabellen anwendbar Daten der geschachtelten Tabelle sind auch indizierbar Bsp create type hobbiesTabellenTyp as table of varchar 20 Verschachtelte Tabellen k nnen dann so aufgebaut werden CREATE OR REPLACE YPE inner_type AS OBJECT
323. leichartige 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 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 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 wer
324. len 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 SQL 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 Tabellen_Name 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 oderif deleting then abgefragt werden Trigger Typ FOR EACH ROW Ohne diese Klausel ist der Trigger befehlsorientiert and
325. lichen wird Eine ORDER Funktion entspricht 337 Datenbanken einem direkten Vergleich zweier Werte Objekte Damit sind ORDER Funktionen f r Vergleiche lt gt geeignet im allgemeinen aber nicht unbedingt f r Sortierung MAP und ORDER Funktionen erfordern PRAGMA RESTRICT_REFERENCES name WNDS WNPS RNPS RNDS d h sie d rfen keinen Datenbankzugriff enthalten ORDER MAP Methoden definieren eine Ordnung auf Objekten eines Typs und k nnen damit auf zwei Arten verwendet werden _ Ordnen nach dem Attributwert einer objektwertigen Spalte die Elemente einer Objekttabelle sollen nach ihrem eigenen Objektwert geordnet werden Bsp create or replace type adressTyp as object strasse varchar2 30 nr decimal 4 plz decimal 5 ort varchar2 40 land varchar2 25 MAP MEMBER FUNCTION adressMap RETURN varchar2 alternativ koennte folgende ORDER Funktion definiert werden ORDER MEMBER FUNCTION adressOrder a adressTyp RETURN INTEGER NOT FINAL Implementierung MAP Funktion create type body adressTyp as MAP MEMBER FUNCTION adressMap return VARCHAR2 as begin return land ort plz strasse nr end end in Teil referenziert ein anderes Teil create type teiltyp as object nr number 10 bezeichnung varchar 25 farbe varchar 15 istTeilvon REF teiltyp create type positionsTyp as object
326. llen in Beziehung steht kann ber Objekt Views eine Referenz zwischen beiden Tabellen angelegt werden In diesem Fall benutzt Oracle die vorhandenen Prim rschl ssel Fremdschl ssel Beziehungen zur Simulation eines OIDs der f r REFs zwischen den Tabellen eingesetzt wird Damit kann auf die Tabellen als relationale Tabellen oder als Objekte zugegriffen werden insert into personen values PoO2 Christian Kirchplatz 5 Bad Hersfeld 36251 insert into verabredungen values PO1 06621 14163 trunc sysdate 1 insert into verabredungen values P02 06621 14463 trunc sysdate Aus objektorientierter Sicht referenzieren die Datens tze in verabredungen die Datens tze in personen Ein abstrakter Datentyp der dieselbe Struktur wie die Tabelle personen hat kann dabei behilflich sein create or replace type personen_t as object pers_id varchar2 3 name varchar2 10 strasse varchar2 15 ort varchar2 15 plz number 347 Datenbanken Jetzt kann auf der Grundlage des Typs personen_t eine Objekt View angelegt werden OID Werte werden den Datens tzen in personen zugewiesen create or replace view personen_ov of personen_t with object identifier pers_id damit koennen Zeilen in der Tabelle personen so adressiert werden als ob es sich um referenzierbare Zeilenobjekt iner Objekttabell handelt as select pers_id name strasse ort plz from personen Spalten der
327. locator referenziert BFILENAME kann in einer insert oder update Anweisung benutzt werden oder zur Initialisierung einer PU SQL Variablen Wichtig ist dass im Aufruf der Funktion BFILENAME der Name des directory in Gro buchstaben angegeben wird Bsp create table progrText name varchar2 20 program clob programmquelltext BFILE insert into progrText values ImageViewer java EMPTY_CLOB BFILENAME TEXTAUSTAUSCH ImageViewer java Allgemein kann mit einer delete Anweisung ein locator gel scht werden z B delete from progrtext where name Imageviewer java Die Verarbeitung von LOB Daten kann mit verschiedenen Werkzeugen geschehen Verarbeiten mittels PL SQL Verarbeiten mit JAVA JDBC LOB Verarbeitung mit PL SQL Oracle bietet zur Verarbeitung von LOB Daten ein eigenes Package an DBMS_LOB Package Das Package DBMS_LOB besteht aus einer Reihe von Funktionen zum Lesen und Modifizieren von internen bzw externen LOBs Hat das BLOB bzw CLOB Attribut einen locator mit der ersten insert oder update Anweisung oder bereits mit der create Anweisung ber EMPTY_BLOB bzw EMPTY_CLOB initialisiert dann kann auf es zugegriffen werden z B ber PL SQL DECLARE textdaten CLOB begin select programm into textdaten from progrText where name ImageViewer java for update jetzt kann mit dem locator Wert von textdaten manipuliert werden Mit dem D
328. ls Host Objekt einer Methode angesprochen werden kann SELF wird in Methodendefinitionen verwendet um auf die Attribute des Host Objekts zuzugreifen Die Definition des TYPE BODY mu der bei CREATE TYPE vorgegebenen Signatur desselben Types entsprechen Insbesondere mu f r alle deklarierten Methoden eine Implementierung angegeben werden CREATE OR REPLACE TYPE BODY type AS MEMBER FUNCTION funktionsname parameterliste RETURN datentyp IS variablen deklarationsliste BEGIN pl sql code END MEMBER PROCEDURE prozedur name parameter liste IS variablen deklarationsliste BEGIN pl sql code END MAP MEMBER FUNCTION funktionsname RETURN datentyp ORDER MEMBER FUNCTION funktionsname variable typ RETURN datentyp 336 Datenbanken IS variablen deklarationsliste BEGIN pl sql code END END Im vorliegenden Bsp ist der TYPE BODY f r die Objektmethode laenge create type body linieType as member function laenge skala number return number is begin return skala SORT SELF endl1 x SELF end2 x SELF endl x SELF end2 x SELF endl y SELF end2 y SELF endl y SELF end2 y end end Auf Werte der Komponenten von einem Objekt wird mit der Punktnotation zugegriffen Methoden eines Objekts werden mit objekt methoden name argumentenliste
329. ls sind t er t Tupelvariable r Relation Tupel enthalten Fakten Eine Relation fa t Fakten zusammen Eine relationale 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 e lt lt gt gt lt gt k e 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 p p q p v q Formeln Ist p eine Formel und t eine freie d h noch nicht durch einen Quantor gebundene Tupelvariable so sind auch Vt p t und 3t p t Formeln Wesentliche Unterschiede zur Pr dikatenlogik 1 Ordnung sind keine Funktionssymbole Funktoren nur Tupelvariable eingeschr nkte Auswahl an Pr dikaten e 214 Datenbanken 2 2 3 Datenbankmanipulationssprachen mit Bezugspunkten zur Relationenalgebra 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 dur
330. lso 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 Ubergang 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 5 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 hier 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 wir
331. lten 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 automatisch 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 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
332. ltet kann nun verwendet werden create view v_ang_abt ang_id name vorgesetzter job_id abt_id bezeichnung as select ang_id name vorgesetzter job_id abt_id bezeichnung from angestellte natural join abteilung select substr lpad 2 level name 1 15 NAME titel level from v_ang_abt job 250 Datenbanken where v_ang_abt job_id job job_id start with vorgesetzter is null connect by prior ang_id vorgesetzter drop view v_ang_abt Resultate einer hierarchischen Anwendung konnten ber ORDER BY nicht sinnvoll sortiert werden z B select substr lpad 2 level name 1 15 NAME abt_id bezeichnung level from angestellte NATURAL JOIN abteilung start with vorgesetzter is null connect by prior ang_id vorgesetzter order by name Ab Oracle 9i steht die ORDER SIBLINGS BY Klausel zum Sortieren bereit Das Schl sselwort SIBLINGS bewirkt dass beim Sortiervorgang die vorhanden Hierarchie ber cksichtigt wird select substr lpad 2 level name 1 15 NAME abt_id bezeichnung level from angestellte NATURAL JOIN abteilung start with vorgesetzter is null connect by prior ang_id vorgesetzter order siblings by name Neu ist auch die SYS_CONNECT_BY_PATH Klausel Sie veranschaulicht den hierarchischen Weg zum Root Element Der zweite Parameter gibt das Trennzeichen zwischen den verschiedenen Stufen an select substr sys_connect_by_path na
333. lung abt_id job titel Neben dem Left und Right Outer Join ist mit Version 9i auch noch der Full Outer Join m glich Der Operator kann hier nicht mehr verwendet werden wenn die ANSI Join Syntax angewendet wird Right Outer Join Bisher wurde ein Right Outer Join so formuliert select a ang_id q ang_id from angestellte a qualifikation q where a ang_id q ang_id Die neue Fassung ist select a ang_id q ang_id from angestellte a right outer join qualifikation q on a ang_id q ang_id Left Outer Join Bsp select a ang_id q ang_id from angestellte a left outer join qualifikation q on a ang_id q ang_id Full Outer Join Ein Full Outer Join war in den alten Oracle Versionen nicht vorgesehen Man konnte die Operation aber bspw so sinulieren select a ang_id q ang_id from angestellte a qualifikation q where a ang_id q ang_id union select a ang_id q ang_id from angestellte a qualifikation q where a ang_id q ang_id Ab Oracle 8i kann man den Full Outer Join so formulieren 243 Datenbanken select a ang_id q ang_id from angestellte a full outer join qualifikation q on a ang_id q ang_id Unterabfragen Sie lassen sich ab Oracle 9i auch in der SELECT bzw in der FROM Klausel verwenden SELECT spalte n einwertige_Unterabfrage spaltenAlias FROM tabelle n mehrwertige_Unterabfrage tabellenAlias WHERE einwertige Unterabfrage op ein mehrewertige_Unterab
334. lungsBE2 end rowtype definiert einen zusammengesetzten Datentyp der quivalent zu einer Zeile der angegebenen Tabelle ist Die zusammengesetzte 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 adbms_output enable select into angestelltenSatz from angestellte where ang_id Al dbms_output put_line Angestellten Identifikation angestelltenSatz ang_id dbms_output put_line Angestellten Nam angestelltenSatz name dbms_output put_line Angestellten Geburtsdatum angestelltenSatz gebdatum end 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 cken 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 Variable
335. m 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 Architektur 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 Es basiert auf dem TCP IP 92 Viele Systemdienste wie etwa die ganze Schichtung m glicher Netzwerkprotokolle IPX ZCP IP usw wurden auf der Server Seite als NLM realisiert 93 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 142 Datenbanken 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 mi
336. m Informationssysteme File Managent Systems doo 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 chtlichem Umfang sind So sind auch hier strukturierte Verarbeitungsformen n tig d h die Darstellung des Textes mu auf Formate zur ckgef hrt werden Ist das m glich dann k nnen die Zugriffsformen 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 5 vgl 1 2 2 1 22 Datenbanken 1 2 3 3 Daten und Speicherstrukturen 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 1 100 10 1230 3 10 2 106 20 850 6 7 3 110 10 1900 8 4 111 30 1600 5 9 5 117 30 1400 8 4 6 120 20 740 9 2 7 121 10 870 x 1 8 124 30 2400 10 x 9 130 20 1600 20 3 10 133
337. 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 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 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 select Anweisung kann jede Spalte einer Tabelle referenzieren unabh ngig
338. m System Tablespace werden sp ter auch die Dictionaries zu den Oracle Entwicklungswerkzeugen Oracle Forms abgelegt REDO LOG FILES Diese Datei speichert Kopien der Bl cke die durch Update Operationen ver ndert werden Anderungen 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 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 138 im Mehrbenutzerbetrieb zwingend vorgeschrieben 139 lt user id gt lt pa wort gt rfhs8012_ora8 229 Datenbanken 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 kontin
339. m p X zu beweisen ist q X zu beweisen 1 Regel q X k nnte mit X a bewiesen werden 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 Kandidaten q a und ger t in eine Endlosschleife Nach welcher Anderung im vorstehenden Programm kann ein korrekter Ablauf er zwungen werden 203 Datenbanken 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 Variablen
340. me 1 30 name level from angestellte start with vorgesetzter is null connect by prior ang_id vorgesetzter order siblings by name Eine Sub Query in der CONNECT BY Klausel ist weiterhin nicht erlaubt z B select name ang_id vorgesetzter from angestellte start with vorgesetzter is null connect by prior ang_id select vorgesetzter from angestellte where name Christian Neu ist nur die M glichkeit eine Sub Query in der FROM Klausel anzusprechen select substr lpad 2 level name 1 15 NAME abt abt_id bezeichnung level from angestellte ang select bezeichnung abt_id from abteilung abt where abt abt_id ang abt_id start with vorgesetzter is null connect by prior ang_id vorgesetzter 3 Die Ausf hrung von SQL Befehlen Der Cursor Die Abarbeitung eines SQL Befehls auf einem Oracle Server erfolgt in mehreren Phasen f r die zum Zwischenspeichern eine spezielle Datenstruktur der Cursor 251 Datenbanken ben tigt wird Eine Anwendung kann bis auf Beschr nkungen 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 dient zur Vorbereitung der Ausf hrung eines SQL Befehls De
341. me f r Transaction Processing Den Transaktionsbetieb 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 Funktionen 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 5 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 ei
342. mm folgt Der in Prolog eingebettete Schlu folgerungsmechanismus Resolution ver 126 vgl Resolutionsverfahren 2 5 1 200 Datenbanken 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 2 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 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
343. mmen werden soll ist false zu bergeben 292 Datenbanken werden Host Variablen durch eine Doppelpunkt gt gt lt lt gekennzeichnet Host Variablen k nnen in beiden Richtungen des Datenaustauschs eingesetzt werden d h zur bergabe von Java Werten an die SQL Anweisung IN Standardform oder als Ergebnisse OUT bzw in beide Richtungen gleichzeitig INOUT sql INSERT INTO kunden VALUES IN kundenNR IN nachname IN sysdate Eie SQL Klausel kann auch Werte zur ckliefern wie z B beim Aufruf einer gespeicherten Funktion sql Variable VALUES Funktionsaufruf Variable Eine Hostvariable passenden Typs die den R ckgabewert aufnehmen soll Funktionsaufruf Der Aufruf der gespeicherten Funktion mit Parametern etc Bsp Abfrage des aktuellen Datums auf dem Oracle Server ber die Funktion SYSDATE java sql Date datum sql datum VALUES SYSDATE System out println datum Gespeicherte Prozeduren werden in SQLJ durch das vorangestellte Schl sselwort CALL aufgerufen werden sql CALL proc Parameterliste Diesen Prozeduren k nnen IN OUT INOUT Parameter bergeben werden Datenaustausch ber Iteratoren beim Zugriff auf mehrzeilige Ergebnismengen kommen Iteratoren zum Einsatz173 SQLJ bietet zwei Arten von Iteratoren an benannte Iteratoren Named Iterator mit Zugriff auf das Ergebnis ber Methoden die die Namen der Tabellenspalten tragen und Positions Itera
344. mod_ossl Content Management Portal Caching mod_osso Services Services Services Content Management Oracle Portal Oracle SDK 10g Web Cache 10g Developer s Toolkit XML Toolkit Content Management Toolkit Wireless Toolkit Portal development Toolkit System Services Oracle Enterprise Manager Oracle Identity Management Communication Services behandelt Anforderungen vom und ins Web Business Logic Services Entwicklungswerkzeuge und sprachen f r den Aufbau von Applikationen Presentation Services Entwicklungswerkzeuge und sprchen f r den Aufbau von Applikationen Caching Services Tools zur Verbesserung der Website Performance Content Management Services Tools zur Verwaltung von Dokumenten in der Datenbank Portal Services bietet Publikationsfunktionen f r Inhalte und Portlets Business Intelligence Services bieten Reports und Ad hoc Abfragen Database Services Die Oracle datenbank zum Speichern von Applikationsdaten Persistent Layer Services Bietet ein objektrelationales Ger st Developer s Toolkits Application Programming Interfaces APIs zur Unterst tzung beim Anlegen von Applikationen Abb Die Architektur von Oracle Application Server 10g 109 Ab Oracle 9iAS Release 1 nutzt Oracle Apache als Web Server der in der Oracle Dokumentation HTTP Server hei t Weitere Informationen ber Apache http www apache org 110 Apache Jserv mod_jserv ist ein Modul f r den Apac
345. n 3 2 2 1 Abfragen von Objekttabellen und Spalten Eine Objekttabelle enth lt ein oder mehrere Objektstrukturen die ihrerseits ein oder mehrere Attribute umfassen Falls auf der basis einer Objettabelle eine SELECT Anweisung geschrieben wird kann jede Instanz so behandelt werden als ob es sich um eine Zeile in einer relationalen Tabelle handeln w rde und jedes Attribut in jeder Objektinstanz als ob es eine Spalte in einer Zeile w re Syntax einer solchen Abfrage 348 Datenbanken ECT spaltenliste OM tabellenliste ERE bedingung en OUP BY gruppierungskriterium VING bedingung en DER BY spalte n Ri H R A R oOTQzZ UU In der spaltenliste k nnen Attributnamen und in der tabellenliste Objekttabellennamen angegeben werden Attributnamen k nnen berall verwendet werden wo eine Spalte erscheint 3 2 2 2 N tzliche Funktionen f r Objektinstanzen und Objekttabellen Die Funktion VALUE Diese Funktion wurde zur R ckgabe einer Objektinstanz entworfen Es gilt der Parameter f r die Funktion VALUE ist bei Verwendung in einer SQL Anweisung ein Tabellenalias der die Zuurrdnung zu einer Objektinstanz oder Zeile in einer Objekttabelle zur Verf gung stellt der R ckgabewert der Funktion VALUE ist eine Objektinstanz deren Objekttyp dem Typ entspricht der f r die Definition der Objekttabelle verwendet wird die Funktion REF Diese Funktion wird zur R ckgabe ei
346. n Berlin Heidelberg New York Tokio 1984 204 Datenbanken teil teil tru pl endprodukt_1 p2 endprodukt_2 ktur pl bl 2 truktur pl b2 3 truktur pl e3 10 truktur p2 b1l 3 K K K K K u truktur p2 e3 8 truktur bl el 7 truktur bl e2 8 truktur b2 e2 10 truktur b2 e3 4 nm nm m nun u 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 p1 Y bl Z 2 X p1 Y b2 2 3 X p1 Y e3 Z 10 etc struktur X XY 10
347. n Dateien mit Dateisystemen beziehen Das zeigt bspw folgende 1 Aufgabe die sehr vereinfacht eine maschinelle Gehaltsabrechnung beschreibt 31210 Ute 6 1 800 900 30164 Liesel 1 2 840 1 800 29910 J rgen 1 4 400 2 200 27730 Uwe 3 2970 2 100 Pers Nr Name Steuerklasse Bruttogehalt Nettogehalt 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 Uberweisungen auf das Konto des Mitarbeiters bei seiner Bank Eine 2 Aufgabe ist Beschriftung von 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 L sung 1 Erweiterung des bestehenden Datensatzes f r die Gehaltsabrechnung um ein Adressenfeld Datenbanken 31210 Ute 6 1 800 900 8 M nchen Eberstra e 30164 Liesel 1 2 840 1 800 8 M nchen Hahnstra e 29910 J rgen 1 4 400 2 200 8 M nchem Buschstra e 27730 Uwe 3 2970 2 100 8 M nchen Karlsplatz Pers Nr Name S
348. n Indexen und Clustern Noch nicht in die SQL2 Definition aufgenommen ist PL SQL Trigger Packages Functions und die verteilte Verarbeitung 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 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 P
349. n Rechner ber das Internet 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 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 Kommunikation Client Server Applikationen 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
350. n Weg ein Sie versucht nur den Problembereich angemessen zu beschreiben die eigentliche Probleml sung auf dem Rechner bernimmt ein universeller Algorithmus 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 210 Datenbanken 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 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 zusammengesetzte
351. n XML Schema und einer DTD ist da bei Verwendung des XML Schema Standards generell f r jedes Element und Attribut der g ltige Wertebereich festgelegt werden kann XSL eXtensible Stylesheet Language Das XML Format enth lt keine Informationen dar ber wie die Daten dargestellt werden sollen Daf r sind Style Sheets oder Skripte zustt ndig XSL kann verwendet werden um XML Dokumente umzuwandeln oder zu formatieren Insgesamt besteht XSL aus 3 Teilen das eigentliche XSL XSLT XSL Transformations und XPath XML Adressierungssprache XSLT eXtensible Style Sheet Language Transformation ist eine Sprache zur Transformation Umwandlung von XML Dokumenten die vom W3C standaradisiert wird Hierbei wird ein XML Dokument gem der ber XSLT definierten Regeln umgeformt Die XSLT Regeln werden in XML formuliert und ergeben ein XSLT Dokument Die umzuformenden Betandteile des Ausgangsdokuments werden von XSLT ber XPath Ausdr cke referenziert Namensr ume XML Dokumente k nnen aus Elementen von unterschiedlichen Dokumenttypdefinitionen zusammengesetzt werden Da jede Dokumenttypdefinition beliebige Bezeichner bzw Elementnamen vergeben kann ist es m glich da in unterschiedlichen Schemadefinitionen der gleiche Name verwendet wird Sollen diese Namen gemeinsam verwendet werden kommt es zu einem Namenskonflikt Unter einem XML Namensraum versteht man einen durch ein Pr fix gekennzeichneten Bereich von Elementen Durch die D
352. n 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 258 Datenbanken DIESES lt gt l kleiner als gr er als lt gt kleiner als o gleich g er als o gleich IS NULL BETWEEN IN LIKE ist Null Wertebereich Element in einer Menge Mustervergleich AND ooo T O OR o T O 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 AND FALSE TRUE NULL OR FALSE TRUE NULL FALSE FALSE TRUE NULL TRUE TRUE TRUE TRUE NULL NULL TRUE NULL NOT FALSE TRUE NULL TRUE FALSE NULL Die einzige M glichkeit einen Vergleich zu einem NULL Wert durchzuf hren erfolgt ber den Vergleichsoperator IS NULL Generell werden alle Variable beim Eintritt in eine Prozedur eine Funktion oder einen anonymen Block mit NULL initial
353. n 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 sein 114 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 datenbanksystems umgesetzt Das lokale Schema ist abh ngig vom Typ des zugrundeliegenden Datenbanksystems Die ersten drei Schichten sind unabh ngig vom benutzten DBS 113 vgl Ceri Stefano u Pelagotti Guiseppe Distributed Databases Principles amp Systems McGraw Hill 1985 114 Ausnahme Bei vertikale Fragmentierung wird der Prim rschl ssel redundant gespeichert um die Rekonstruktion der globalen Relation zu gew hrleisten 160 Datenbanken Global
354. n direkte Referenzen auf Tupel Objekte derselben oder anderer Relationen als Wert haben Dadurch ist man nicht mehr auf die Nutzung von Fremdschl sseln zur Realisierung von Beziehungen beschr nkt Insbesondere kann ein Attribut auch eine Menge von Referenzen als Wert haben so dass man auch n m Beziehungen ohne separate Beziehungsrelation repr sentieren kann Referenzen setzen voraus dass man Objekte Tupel anhand einer unver nderbaren Objektidentit t OID eindeutig identifizieren kann Referenzen f hren unvermeidbar zur Notwendigkeit Pfadausdr cke in der Anfragesprache zu unterst tzen REF Referenz auf eine Instanz eines Objekttyps Wert eines Referenzattributs ist eine OID Bsp create type punktType as object x number y number Typreferenzen create table linien2 endl REF punktType end2 REF punktType 3 2 1 5 Objekttabellen und OIDs Objektorientierung in Oracle bedeutet Es gibt neben Tabellen deren Inhalt aus Tupeln besteht auch Object Tables Objekttabellen deren Inhalt aus Objekten besteht Ebenso k nnen einzelne Spalten einer Tabelle objektwertig sein Im Gegensatz zu einem Tupel besitzt ein Objekt Attribute die den inneren Zustand 340 Datenbanken eines Objekts beschreiben sowie Methoden mit denen der Zustand abgefragt und manipuliert werden kann Komplexe Attribute sind Objekttypen die nur Wertattribute und keine Methoden besitzen Objekte k nnen neben We
355. n keinen ausf hrbaren Code DECLARE SECTION 279 Datenbanken Die Deklaration von host variables f r den Compiler der gastgebenden Sprache und f r den SQL Precompiler erfolgt in der DECLARE SECTION EXEC SOL BEGIN DECLARE SECTION host variables 7 EXEC SQL 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 sqalca long sqlabc Die Laenge der Struktur in Bytes long sqlcode Variable f r Fehlernummern zum zuletzt ausgefuehrten SQL 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 str
356. n 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 Sprachbeschreibungsmerkmale k nnen gezeigt werden SOL gt HELP subquery 140 Falls das Semikolon vergessen wird kann man mit RUN die Ausf hrung veranlassen 231 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 nee 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 Speicherkommando 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 u
357. nach Einsatz der DEREF Funktion sehen select DEREF i mitarbeiter_beschaeftigung from inhaber i where inhaber_name Katherina Bei dieser Abfrage gibt es Hinweise die Unterschiede zwischen Abfragen in relationalen Tabellen und Objekttabellen Um von einer Tabelle inhaber zu einer zweiten Tabelle Objekttabelle mitarbeiter zu gelangen benutzt die Abfrage eine Referenz auf ein Zeilenobjekt Dabei wird im Hintergrund ein Join ausgef hrt ohne dass irgendwelche Join Kriterien angegeben wurden Die Objekttabelle wird in der Abfrage nicht erw hnt Die einzige Tabelle die in der Abfrage angef hrt wird ist innaber Um Werte ber DREF zu erhalten braucht man den Namen der Objekttabelle nicht zu kennen Das vollst ndige referenzierte Zeilenobjekt wird zur ckgeliefert nicht nur Teile der Zeile Mit select from mitarbeiter kann bspw die Objekttabelle abgefragt werden Obwohl mitarbeiter eine Objekttabelle ist kann auf die Tabelle genau wie bei einer relationalen Tabelle ein select ausgef hrt werden konsistent mit den vorstehenden selects und 344 Datenbanken inserts Um bei der mitarbeiter Tabelle die gleiche Struktur wie bei DEREF zu sehen ist die VALUE Funktion anzuwenden select value m from mitarbeiter m where name Fritz Ung ltige Referenzen Man kann das Objekt l schen auf das eine Referenz zeigt z B delete from mitarbeiter where name Fritz Der Datensatz in inh
358. nach und nach immer mehr die althergebrachten Typ 2 Treiber die als Ubergangsl sungen am Markt existierten W hrend ein Typ 4 Treiber 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 174 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 die Import Anweisung import java sql Der Import stellt die JDBC Klassen zur Verf gung Danach 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 174 Rainer Klute JDBC in der Praxis Addison Wesley S 41 303 Datenbanken Hierf r bedient sich die Java Virtual Machine des Classloaders Die Klasse
359. nalit t gt Neben dem Datentyp CDATA und dem Aufz hlungstyp gibt es f r Attribute die M glichkeit sie als 1D bzw IDREF IDREFS Attribute zu definieren ID Attribut Verweis auf ein Element hnlich zu einer OID in Objektmodellen d h dokumentweit eindeutige Referenz IDREF Attribut Damit kann ein Element referenziert werden Als Bedingung kann IMPLIED 187 oder REQUIRED 88 angegeben werden Syntax Bedeutung REQUIRED Es wird kein Standardwert vorgegeben In einem valid Dokument mu hier ein Wert angegeben werden IMPLIED Das Attribut mu nicht unbedingt vorhanden sein default wert Kein oder mehrfaches Auftreten FIXED constant value Es gibt einen Standardwert dieser kann nicht berschrieben werden Abb Standarddaten f r Attribute Bsp lt ATTLIST Geburtsdatum Kalender CDATA REQUIRED gregorianisch gt Insgesamt kann man folgende Attributtypen feststellen CDATA Character Data Zeichendaten die einen String bilden ID Dokumentweit eindeutige Werte IDREF IDREFS Referenz Referenzen ENTITY ENTITIES Referenz auf Entity bzw Entities NMTOKEN NMTOKENS Wort W rter werti wert2 Wertaufz hlung 187 optionales Attribut 188 obligatorisches Attribut 358 Datenbanken Notationen Zu einer Notation geh rt all das was der XML Prozessor nict verstehen und auswerten kann Dabei sind sowohl
360. namen ist eine Klausel Der gleiche Name der in 2 Klauseln 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 Ein Prolog Programm das eine relationale Datenbank bearbeitet Die folgende Fakten Zusammenstellung beschreibt eine relationale Datenbank teil_ teil baugruppe_l baugruppe_2 ai 2 3 einzelteil_3 1 2 i i i il il ttrt aot itt rt e e 127 Clocksin W F und Mellish C S Programming in Prolog Second Editio
361. nbank inkonsistent sein Das DBMS mu die R ckf hrung auf den bisher bekannten konsistenten Zustand erm glichen Alle Anderungen 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 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 275 Datenbanken 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 S
362. nd 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 SQL14 SQL Anweisungen k nnen eingeteilt werden 1 Abfragen Es handelt sich hierbei um Kommandos zur Ermittlung von Daten aus den Datenbanktabellen 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 3 DDL Kommandos 141 Oracle f gt bei den meisten Implementierungen automatisch die Extension SQL an 142 Kurzform 143 vg 1 4 3 2 232 Datenbanken 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
363. nd beide Anfragen identisch Negation as Failure kann aber nicht zu korrekten Ergebnissen f hren wenn ungebundene 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 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 209 Datenbanken Der Universalalgorithmus Die spezielle Bedeutung von Prolog als KlI Sprache 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 algoritnmische L sungswege besonders gut geeignet Das f hrt zu der folgenden Vorgehensweise Problem Algorithmus Daten L sung Abb Probleml sen mit angepa tem Algorithmus Die logische Programmierung schl gt einen andere
364. ndet 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 140 Datenbanken 1 5 3 2 Client Server Architekturen 1 5 3 2 1 Architekturformen In der Praxis haben zahlreiche Realisierungen von Client Server Architekturen ergeben Sie entsprechen weitgehend den bekannten Verteilungsformen 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 Disk 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
365. ne maschinenverst ndliche Art umzuformulieren und dem Benutzer die vom Server gelieferte Antwort zu pr sentieren F r die Benutzung eines Internet 100 firmenintern als Intranet genutzt 101 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 102 F r eine Vielzahl von Diensten sind Standgardisierungen in sog RFCs Request for Comments niedergelegt 149 Datenbanken 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 aufbauendes hypertext basiertes System vorgeschlagen Hypertext wird dabei als Weg verstanden Informationen derart miteinander zu verkn
366. ner 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 VIT 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 48 Datenbanken 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 Eine Techn Angestellte verdient 3000 00 DM im Monat Die Angestellte As 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 8 9 1962 geboren und arbeitet in der Abteilung OD Organisation und Da
367. ner ACID Transaktion als Schleifenk rper bearbeitet Client TP Monitor RPC oder MOM oder Peer to Peer lt S Tier 2 Tier 3 Application Daten Logic Abb Transaktionsmonitor Beispiel f r eine 3 Tier Anwendung 85 UDS ist ein Universelles Datenbanksystem der Firma SIEMENS UTM ist ein TP Monitor der Firma SIEMENS 135 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 API86 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 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 Arbeit
368. ner Referenz auf eine Objektinstanz verwendet die Funktion DREF Diese Funktion gibt den Wert einer Objektinstanz ber ein Verweisargument zur ck Das Argument mu ein Verweis auf die Objektinstanz sein 3 2 2 3 Abfrage von Werten verschachtelter Objektinstanzen 3 2 2 4 Abfrage von Collection Falls eine Objekttabelle auf einem Typ beruht der eine Collection enth lt z B den Typ einer verschachtelten Tabelle dann kann die Funktion TABLE verwendet werden um die verschachtelte Tabelle in eine Menge Zeilen und Spalten zu zerlegen Die flache Struktur kann dann so behandelt werden als w rde es sich um eine herk mmliche relationale Tabelle handeln die mit hilfe von standardm igen SQL Anweisungen verwendet werden kann 349 Datenbanken 3 3 Objektrelationale SQL Datenbankprogrammierung in Oracle 3 3 1 Anwendungsprogrammierung in PL SQL Object PL SQL PL SQL Programme k nnen mit den angegelegten abstrakten datentypen arbeiten Der Verwendung eigener benutzerdefinierter Datentypen steht nichts mehr im Wege Das Ergebnis Ist eine Mischung aus SQL prozeduraler Logik und objektorientierten Erweiterungen eine Kombination die Object PL SQL hei t 3 3 2 Anwendungsprogrammierung mit Java Im besten Fall erm glicht die Anwendungsprogrammiersprache Java und entsprechende Datenbankzugriffsschnittstellen wie JDBC und SQLJ eine 1 1 Abbildung zwischen Anwendungs und Datenbankobjekten und erlauben insbesondere die t
369. ner 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 297 Datenbanken EX EC SQL INCLUDE sqlca main int argi char argv char input 255 stropy uid arr xyz12345 uid len strlen uid arr strcpy pwd arr xyz12345 pwd len strlen pwd arr strcpy dbstring arr rfhs8012_ora8 dbstring 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 EXEC SOL WHENEVER NOT FOUND GOTO loop for 5 5 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
370. neuer_Spaltentyp NOT NULL Em 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 untersucht werden ELECT Ang_ID Name Vorgesetzter ROM Angestellte ONNECT BY PRIOR Ang_ID Vorgesetzter TART WITH Ang_ID A200 RDER BY Name OUAU 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 249 Datenbanken 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 da
371. nformation wenn sie f r den Empf nger eine Bedeutung hat Eine Zeichenfolge folgt den Regeln einer Grammatik mehrere Zeichen formen sich zu Worten Worte formen sich zu S tzen Diese linguistischen Einheiten Zeichen bis S tze sind Platzhalter f r Objekte auf der sich der Sender einer Nachricht bezieht Die Platzhalter werden zur Information wenn die bermittelte Zeichenfolge aus einem Kontext in Beziehung gesetzt wird Ein Informationssystem information system IS besteht aus Menschen und Maschinen die Information erzeugen und oder benutzen und die durch Kommunikationsbeziehungen untereinander verbunden sind Ein rechnergest tztes Informationssystem compter based information system ist ein System bei dem Erfassung Speicherung bertragung und oder Transformation von Information durch den Einsatz der Informationstechnik teilweise automatisiert ist Was geh rt alles zu einem Informationssystem 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 Datenbank 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 Differential und Integralrechnung
372. ngabe 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 wurden Die 1 Zeile der Datei mu USER ID und Passwort im Format USERID Passwort enthalten SQL wird dann gestartet durch Eingabe von sqlplus datei_name 39 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 I
373. ngestellte lte abt_id hen angestellte job_id ci a a a 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 weiterer 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 NTERSECT bestimmt ob die ausgew hlten Werte der ersten Anweisung mit denen der zweiten und oder weiterer Anweisungen identisch sind Ubereinstimmungen werden am Bildschirm ausgegeben SELECT Anweisungsfolgel INTERSECT SELECT Anweisungsfolge2 INTERSECT SELECT Anweisungsfolge3 select angestellte job_id from angestellte where angestellte abt_id OD intersect select angestellt
374. ngetragen 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 Operationen die alle insgesamt abgeschlossen sein m ssen Z
375. nguages 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 DBMS konzeptiert 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 VSi1 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
376. nken 36 Synonym verwendete Begriffe Strukturierte Objekte Zusammengesetzte Objekte 69 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 Abb Gruppierungen in erweiterter ERM Diagrammadarstellung Listenkonstruktor geordnete Menge LIST OF erzeugt aus mehreren Elementen eines zugrundeliegenden Typs einen neuen Typ Instanz des neuen Typs ist eine Liste aus Instanzen des zugrundeliegenden Typs Elementtyp kann Elemente mehrfach beinhalten Autoren Abb Listen in erweiterter ERM Diagrammdarstellung Feldkonstruktor array ARRAY OF erm glicht indizierten Zugriff auf Elemente des zugrundeliegenden Elementtyps immer feste Anzahl von Elementen entgegen SET LIST alle Elemente haben gleichen Elementtyp entgegen Tupel Datenbankmodell f r komplexe Werte NF Modell 3 Klassen Typen Eine Klasse ist eine Beschreibung die einen Namen f r die Objektmenge die Struktur der Objekte der Menge ihre Werte 70 Datenbanken die Methoden die die Objekte der Menge ausf hren k nnen umfa t Ein Objekt einer Klasse wird Instanz genannt Instanzen einer
377. nn der Server zum Beispiel ein Unix Rechner ist f hrt er C Programme aus die mit einem Unix C Compiler zu einer ausf hrbaren Datei 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 107 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 153 Datenbanken Client Anwender WWW Server CGl Skript aufrufen Datenbank Formular abschicken Sever Rechner HTML Client Datei Rechner Formular bertragen erzeugen Datenbank abfragen aus Abfrage Report aus DB Abfragereport auswerten Automatisch erzeugte HTML Datei automatisch erzeugte HTML Datei 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
378. nn selektiert man Teilb ume des Gesamtbaums Im allgemeinen Fall kann man sogar mehr als eine Wurzel haben wenn mehrere S tze die Bedingung der START WITH Klausel erf llen Auf diese Weise kann man nicht nur B ume sondern auch W lder selektieren Die hierarchischen Abfragen hat Oracle in der Version 9i berarbeitet So galten bisher die Einschr nkungen eine Sortierung mit der ORDER BY Klausel bersteuerte die gefundene Hierarchie Eine JOIN oder eine VIEW die einen JOIN beinhaltete konnte nicht verwendet werden Eine Master Detail Beziehung mu te demzufolge in der gleichen Tabelle abgelegt sein Eine Subquery war nicht erlaubt Join Beziehung Die Verwendung eine Join in einer CONNECT BY Klausel ist nun problemlos m glich select substr lpad 2 level name 1 15 NAME abt_id bezeichnung level from angestellte NATURAL JOIN abteilung start with vorgesetzter is null connect by prior ang_id vorgesetzter Erstellen einer Hilfstabelle create table t_mgr as select ang_id vorgesetzter from angestellte select from t_mgr Abfrage mit zusammengesetzter Master Detail Beziehung select substr lpad 2 level name 1 15 NAME a ang_id level from angestellte a join t_mgr m on a ang_id m ang_id start with m vorgesetzter is null connect by prior a ang_id m vorgesetzter drop table t_mgr Selbst eine connect by Klausel auf einen View der einen join beinha
379. nnnnnnnannnnnannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnannnnnannnn 323 3 1 Objektrelationales SQL in SQOL 99 crscorsoossonssnnssnsesnsensnsnssssnssonssonsnnnsnnssnnssnnsnnnsnnsennssnnssnsennnssnssnnennnene 323 3 1 1 Objektrelationales Typsystem 22220022224020e2nensesnnesennnennenesnennenesensennonsonnennnnesenesnonnensesonson 323 3 1 2 D tendefinition u 2u 2 2222 2 keine a a E lerne E eaae o 323 3 1 3 Anfragen HR EI AA E Reise 324 3 1 4 D tenmanipulationn 44 2 2140 a Ea a a E a E Een 326 3 2 Objektrelationales SQL in Oracle eoseesesoossesoossesessossesoessesoossesessoesessossesoessesoesossessossesoesessossessessossesss 327 3 2 1 Objektrelationales Typsysteli s nieis reisan ei yrii Er EEE EE E E EE R E e EES 327 3 2 1 1 Neue B si datenty pensia E Ea EE EE E aE E o 327 3 2 1 2 Assres tions Typen lese san nein Alison aA TA SEI 331 3 2 1 21 Var ablerAlraytyp e2 2u2 en E E A EE EA 331 3 2 1 2 2 Tabellentyp und verschachtelte Tabellen nested tables u enueseenneeeneennennnn 331 3 2 3 Abstrakte Datentypen a a eat En E 333 3 2 1 3 1 User Defined Types Benutzerdefinierte Datentypen Objekttypen usneene 333 3 2 1 3 2 User Defined Methods inii airnn a a R E asain 334 3 2 E4 Referenz Typ r e e Ae a e ie aS Aar A Ea e a E S AR T AT 340 3 2 1 5 Objekttabellen und OIDSivrsi sisii osre suss s heniek esee anne ie 340 3 2 1 6 Objekt VIEWS 08ER EE a a E E O eaa 345 3 2 2 Abfragen in Obj
380. ns 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 WHEN Ausnahmezustand _1 THEN Aktionen zur Fehlerbehandlung WHEN Ausnahmezustand_2 THEN Aktionen zur fehlerbehandlung 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 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 F r die Verarbeitung von und den Zugriff auf Fehlermeldungen gibt es die M glichkeiten Die Funktion SQLCODE ruft den zuletzt vorgefallenen SQL Fehlerwert auf und kann ihn bspw als Spaltenfunktion in eine Tabelle eintragen Die Funktion SQLERRM ruft den zuletzt vorgefallenen ORA Fehlerwert auf und kann ihn bspw als Spaltenfunktion in eine Tabelle eintragen Hinweis Eine Oracle Fehlermeldung ist maximal 512 Zeichen lang
381. nsaktion zur ckgewiesen und geht in den Zustand aborted ber In diesem Fall wird zu einem sp teren Zeitpunkt vollst ndig neu gestartet alle Anderungen an der Datenbank werden r ckg ngig gemacht Fehler im Transaktionsbetrieb Fehlerursachen k nnen bspw sein a Programmfehler b unerlaubt hoher Verbrauch von Ressourcen c Verlust von Hauptspeicherinhalten d Betriebssystemabsturz 83 Persistenz ist ein Synonym f r Dauerhaftigkeit 130 Datenbanken e Zusammenbruch des Datenbanksystems f Plattenfehler im schlimmsten Fall sog Head Crash 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 h
382. nsdiagramme 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 84 Datenbanken transient I lt lt create gt gt Transaktion setAction a d o j setValues d 3 4 3 committed lt lt destroy gt gt Abb Sequenzdiagramm 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 gt Transaction P ODBCProxy transient 2 1 setValues d 3 4 2 2 setValues a CO Abb Kolloborationsdiagramm Zustandsdiagramm Ein Zustandsdiagramm zeigt einen Automaten der aus Zust nden Zustands berg ngen Ereignissen und Aktivit ten besteht Bei Zustandsdiagrammen steht das nach Ereigniss
383. nte entsprechen nicht nur den syntaktischen Regeln von XML sondern enthalten ausschlie liche g ltige Markierungen die anwendungsspezifisch definiert werden 1 3 9 2 2 XML Standards DTD Dokumententypdefinition Dokumenttypdefinitionen spezifizieren wie XML Elemente Attribute und andere Daten definiert sind und mit welchem logischen Bezug zueinander sie innerhalb eines Dokuments verwendet werden k nnen Die DTD unterst tzt Definition und Beziehungen zwischen den in XML Dokumenten enthaltenen Elementen Die Dokumenttypdefinition document typ declaration DTD legt die Struktur g ltiger XML Dokumente fest d h in welcher Reihenfolge die Auszeichnungen in den XML Dokumenten auftreten d rfen und wie diese geschachtelt sein d rfen DTDs gehen in die Struktur von XML Dokumenten ein DTDs k nnen in einer separaten Datei au erhalb von XML Dokumenten eingebunden werden Bei DTDs handelt es sich um S tze von Definitionen die von der XML Engine interpretiert werden um Dokumente auf G ltigkeit zu berpr fen Alles was nicht ausdr cklich in einer DTD erlaubt ist ist verboten Die Definition der g ltigen Auszeichnungen mit Hilfe der DTD kann entweder innerhalb eines XML Dokuments intern oder durch eine externe Dokumenttypdefintion erfolgen auf die das XML Dokument verweist lt xml version 1 0 encoding UTF8 gt lt DOCTYPE Adresse SYSTEM dtds adresse dtd gt lt Adresse gt lt Name gt Chri
384. nthaltensein Die Kompositionsbeziehung ist eine strengere Form der Aggregationsbeziehung bei der die Teile vom Aggregat existenzabh ngig sind und ein Teil h chstens einem Aggregat zugeordnet werden darf Ein Teil existiert h chstens so lange wie sein Aggregat es sei denn es wird vor dem Vernichten des Aggregats an ein anderes Aggregat weitergereicht Auf der Seite der Aggregat Klasse kann eine der beiden Kardinalit ten 0 1 oder 1 angegeben werden Im Zusammenhang mit einer Kompositionsbeziehung dr ckt die Kardinalit t 0 1 aus dass ein Teil so lange existenzunabh ngig ist bis es einem Aggregat zugeordnet wird Danach mu es wie bei der Kardinalit t 1 immer einem Aggregat zugeordnet sein 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 44 vgl Abb Klassendiagramm automatische Geldausgabe 8l Datenbanken Supertyp A 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 de
385. ntierter 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 auf Smalltalk30 oder C 31 Basis implementiert werden berlagerung relationaler Systeme mit Objektstrukturen Die bew hrte relationale Datenbank Technologie wird beibehalten und graduell um objektorientierte Eigenschaften erg nzt 29 vgl Dittrich Klaus R Objektorientiert aktiv erweiterbar Stand und Tendenzen der nachrelationalen Datenbanktechnologie it 5 90 Seiten 343 353 30 Gemstone 31 Object Store ONTOS POET 68 Datenbanken Es gibt 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 198932 vorliegen sind Implementierungen noch nicht sehr zahlreich 1 3 7 2 Grundlagen objektorientierter Systeme Object Oriented Database Manifesto In diesem Bericht haben Datenbankforscher Richtlinien f r das
386. ntifizierender Attributwerte gebildet ist Ziel eines sich auf Abh ngigkeiten abst tzenden Datenbankentwurfs einer relationalen Datenbank ist Umformen aller funktionalen Abh ngigkeiten in Schl ssel 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 1 MATNR NAME ADRESSE SRNR STUDR ANFANGSDAT 88 i 81 Berggasse 19 88 Informatik 01 10 1989 Lange Gasse 19 81 Physik 01 03 1989 12 vgl 1 2 3 4 13 vgl 1 4 3 2 14 vgl 2 1 1 15 Abk rzungen MATNR Matrikelnummer SRNR Studienrichtungsnummer STUDR Studienrichtung ANFANGSDAT Anfangsdatum 36 Datenbanken Berggasse 19 Psychologie 01 10 1985 Schmidt Grabenweg 4 Psychologie 01 03 1990 Br ckenweg 23 Informatik 01 10 1989 Br ckenweg 23 Physik 01 10 1989 Hochstra e Informatik 01 10 1977 Abb 1 3 3 Tabelle mit Studiendaten 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 sse MATNR abh ngig die Attribute STUDR ANFANGSDATUM vom T
387. ntime Server Runtime Library Library a Na Sy E By E Transport Transport I A 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 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 ers
388. ntyp der keine anderen Datentypen verwendet hat ein update oder delete Befehl auf eine Objekttabelle das gleiche Format wie bei einer relationalen Tabelle Substituierbarkeit Erzeugen eines Kunden mittels explizitem Konstruktoraufruf Objekte werden unter Verwendung des Objekt Konstruktors objekttypname in Objekttabellen eingef gt Bsp insert into kunde values insert into kunde values kundeTyp 34 Johnny adressTyp Fifth Avenue 45 45666 BiyTown USA telefonArrayTyp 0041 1 6725655 0049 454 364666 auftragTabellenTyp NULL Substituierbarkeit Erzeugen eines bwKunden mittels explizitem Konstruktoraufruf Bsp insert into kunde values bwKundeTyp 23 ILN adressTyp Fifth Avwenue 45 45666 BigTown USA telefonArrayTyp 0041 1 6761256 auftragTabellenTyp NULL hobbiesTabellenTyp NULL 10000 select from kunde Die Funktionen REF DEREF und VALUE in Objekttabellen In einer Objekttabelle ist jede Zeile ein Zeilenobjekt Eine Objekttabelle unterscheidet sich von einer relationalen Tabelle durch Jede Zeile besitzt innerhalb einer Objekttabelle eine OID die beim Anlegen der Tabelle von Oracle zugewieden wird Zeilen einer Objekttabelle k nnen von anderen Objekten innerhalb der Datenbank referenziert werden Bsp Objekttyp mitarbeiter_t create or replace type mitarbeiter_t as object mitarb_id varchar2 3 name varchar2 15 gebdatum date
389. ntype ORDER MEMBER FUNCTION funktionsname variable typ RETURN datentyp pragma deklarations liste NOT FINAL INOT INSTANTIABLE Default FINAL und Integrit tsbedingungen werden nicht unterst tzt OBJECT Strukturierter Typ mit Methoden und Subtypbildung Defaultwerte und Integrit tsbedingungen werden nicht unterst tzt Methodendeklaration INOT OVERRIDING INOT FINAL INOT INSTANTIABLE DEFAULT NOT OVERRIDING NOT FINAL INSTANTIABLE MEMBER STATIC FUNCTION PROCEDURE methodenName lt parameterliste gt OVERRIDING berschreibende Methode FINAL INSTANTIABLE MEMBER Instanzmethode wird auf einem Objekt aufgerufen besitzt impliziten SELF Parameter STATIC statische Methode wird auf dem Objekttyp aufgerufen PROCEDURE hat keinen R ckgabewert FUNCTION hat einen R ckgabewert darf aber keine Objektattributwerte ndern PRAGMA Klauseln In pragma deklarationsliste kann f r jede Methode eine PRAGMA Klausel der Form PRAGMA RESTRICT_REFERENCES methoden name feature liste angegeben werden die spezifiziert ob eine Prozedur Funktion lesend schreibend auf die Datenbank zugreifen darf feature liste ist ein Komma Liste mit den m glichen Eintr gen WNDS Writes no database state WNPS Writes no package state RNDS Reads no database state RNPS Reads no package state Diese Angabe ist insbesondere f r Funktionen wichtig da Ora
390. nweisung ist Cursor werden wie Variablen im Deklarationsteil eines Blocks definiert Hier bekommt der Cursor einen Namen und eine SELECT Anweisung zugewiesen Nach dem ffnen des Cursors verwaltet dieser einen Zeiger auf die aktuelle Zeile der ausgew hlten Datenzeilen gt 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 default1 optionaler Standardwert f r parameteri parameterN Name des letzten an den Cursor bergebenen Parameters parameterN datentyp Datentyp von parameterN defaultN optionaler Standardwert f r parameterN select anweisung SELECT Anweisung die dem deklarierten Cursor zuzuordnen ist 2 Offnen 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 Spezielle Cursor Attribute erm glichen die Koordinie
391. nzinformationen Angaben zur physischen Struktur der Oracle Datenbank 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 2 3 2 1 2 Benutzer Rollen und Berechtigungen 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 227 Datenbanken Nicht erlaubt ist Tabellen manipulieren die andere Benutzer eingerichtet haben
392. o C Pro C ist ein Werkzeug da SQL Anweisungen in einem C Quellcode Programm in Oracle Datenbankanweisungen umsetzen kann Programm Entwicklung Programm mit SQL und PL SQL Anweisungen programm pc bersetzt SQL und PL SQL Kommandos in Funktionsaufrufe reines C Programm mit include Files programm c cc gcc oder g Object Program Standard Bibliothek Oracle Run Time Bibliothek FT Iren gt Ausf hrbares Programm Abb bersetzung eines Pro C Programms 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 283 Datenbanken float floating point VARCHAR namel 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 Zeichen
393. 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 Operatoren 34 Der Objektidentifikator wird vom DBMS vorgegeben gt und werwaltet Er ist systemweit eindeutig und w hrend der Objektlebensdauer konstant 2 Komplexe Objekte Ausgangspunkt sind elementare Werte z B Zeichenketten oder Zahlen aus denen mit Hilfe sog Konstruktoren komplexe Werte gebildet 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 32 Atkison et al Object Oriented Database System Manifest 33 Atkison M The object oriented database manifesto Proceedings First national Conference on Deductive and Object Oriented Databases Kyoto 1989 34 Die 3 Begriffe werden synonym verwendet 35 Er beruht nicht auf den aktuellen Werten des Objekts wie etwa der Prim rschl ssel bei relationalen datenba
394. och die Integration der XPATH Funktionalit t XML Path Language in den SQL Abfragen wichtig um XML Anfragen standardgem implementieren zu k nnen Bei objektrelationaler Speicherung besteht die M glichkeit den Zugriff direkt auf Objekte abzubilden Query Rewrite SQL XML Zur Erzeugung komplexer XML Strukturen unterst tzt Oracle Abfragen im SQL Stil die unter dem Namen SQL XML bekannt sind SQL XML wird durch die SQLX Gruppe standardisiert SQL XML ist eine Erweiterung zu SQL und f hrt neue Funktionen und Operatoren ein Mit Funktionen wie z B XMLElement XMLAttributes in SQL Abfragen kann der Programmierer XML Dokumente generieren die beliebig mit anderen relationalen oder XML Tabellen kombiniert werden k nnen Repository Abgesehen von datenbankspezifischen Zugriffen durch SQL Kommandos stehen stehen f r den Zugriff von beliebigen Client PCs ohne zus tzliche Information Protokoll Schnittstellen wie HTTP WEBDAV Web Distributed Authoring and 192 In solchen XML Schemas werden inder Regel mindestens 2 Namensr ume angegeben einen f r W3C http www w3c org 200 XMLSchema und einen f r die Oracle Charakteristiken http wmins oracle com xdb 366 Datenbanken Versioning und FTP zur Verf gung Dies erm glicht dieErweiterung des DB Modells um Funktionen und Verzeichnisse Versionierung und ACLs Access Control Lists die in einem Repository in der DB liegen Dieses Repository das automatisch in der
395. okoll 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 in einer Nachricht verpackt zur ck zum Client Stub Die R ckgabedaten werden hier wieder ausgepackt und an die aufrufende Applikation bergeben Client Server Application Application i 1 ei p i Sy El Fey El Client Stub Server Stub A BEE Client Ru
396. on WITH CASCADED LOCAL CHECK OPTION S gt Authorization Definition GRANT privilege commalist ALL PRIVILEGES ON DOMAIN domain TABLE table TO user user 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 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 eolumn constraint definition Data Types CHAR f r CHAR 1 PN a variabler L nge maximal n abgek rzt VARCHAR BIT n Bitfolge fester L nge n BIT VARYING n Bitfolge variabler L nge maximal n 135 nur relevant wenn der View updatef hig ist 223 Datenbanken NUMERIC p q 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 is
397. on Fachfunktion LAN gt WAN z B Modem gt 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 101 sind Zur Nutzung des Internet steht eine Vielzahl von Anwendungen zur Verf gung die als Internet Dienste bezeichnet werden Die Dienste 0 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 Programm Server dar Der Server bietet Informations und Kommunikationsvermittlung an Aufgabe des Client ist es Anfragen des Benutzers in ei
398. onnnenennsnensennonsennneronnnnnnon 185 2 2 1 2 Operationen der relationalen Algebra usse2sunsessensensesnensesnnnsonnnenennnnensennonnennnenennennen 186 2 2 1 3 Die Operationen der relationalen Algebra in Standard SQL SQL 89 eneneeeee 191 2 2 2 Das Realtionenk lk l u uueu anne san ann an ann ne ei NEE 193 2 222 Pr dik tenlosik 2 222 222 1 seinen E E N S 194 2 2 2 3 Logische Systeme Pr0lo8 2 gt 2 2 802 8fne RD 199 2 2 2 4 Relationenkalk l und Pr dikatenlogik 22 22042004200rsnennnensnenseennennnennennnennnnnnnnen nennen 214 2 2 3 Datenbankmanipulationssprachen mit Bezugspunkten zur Relationenalgebra bzw zum Rel ti nenkalk l uss 2 2 2 ehn en puren E E r R A S 215 PEII O DAEA A S A E IE EE E 216 PRA RSB L P 2 2 EE E A E E E EE E E ENEN 216 2 3 2 Oracle SQ enee e nene a a a a A a r ee EE EE S 226 2 3 2 1 Das Datenbanksystem Oracles iesistie eieue seire ees rotesti restos EErEE EEI E EAEE eE EE EEr 226 2 3 2 1 1 Speichern und Verwalten von Daten rsuesessesnensesnersesnensennnennnennenennensensnn nennen 226 2 3 2 1 2 Benutzer Rollen und Berechtigungen u2sessersesseesersesennesnensennensennnennnne nenn none 227 2 32 2 Aufbau der Datenbank innen innen blanke 229 2 3 2 3 Kommunikation zwischen Benutzer und System ber SQL PLUS unseesesesnesennennen 231 2 3 2 4 SQL Anweisungen in Oracle uu2220020essensessensornesennn
399. or SET Listentypkonstruktor OBJECT Objecttypkonstruktor REF Referenztypkonstruktor 3 Benutzerdefinierte Datentypen User Defined Types UDTs In aktuellen relationalen Datenbanken werden 2 Arten von benutzerdefinierten Datentypen unerschieden Distinct Typen und Strukturdatentypen Distinct Typen User Defined Distinct Types erm glichen die Definition von Datentypen die Kopien von bereits existierenden Datentypen darstellen Wegen der strengen Typisierung sind Instanzen eines Distinct Typs nicht mit den Instanzen des zugrundeliegenden Quelltyps bzw mit Instanzen eines anderen Distinct Typs vergleichbar Bspw ist ein Wert vom Typ Euro nicht mit einem Typ Franken vergleichbar auch wenn beide Datentypen eine Kopie desselben numerischen Datentyps darstellen Ist eine Umwandlung von einem Datentyp zu einem anderen Datentyp gew nscht so mu eine geeignete Cast Funktion f r die Umwandlung implementiert werden Folgende Strukturdatentypen User Defined Structured Types sind in objektrelationalen Datenbanksystemen bekannt benannte Tupeltypen Informix definieren eine Struktur die aus Tupelfeldern besteht Die Instanzen von benannten Tupeltypen besitzen keine Methoden und werden nicht mit OIDs assoziiert strukturierte Typen DB2 und Standard SQL erm glichen die Definition von Datentypen die eine Menge von Attributen und Methoden umfassen besitzen allerdings keine inh rente OID Objekttypen Oracle definieren Datentypen
400. ordneten Ordnung geordnet 52 Datenbanken 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 eo Ee1 amp 2 E 1 8 dessen Ausgangspunkt o von einem Typ En ist Entit ten von einem Typ En hei en Einstiegpunkte in das Netzwerk Jede Entit t die nicht von einem Typ Eo 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 AP 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 AA und den Projekten P1 P2 P3 die folgenden konkreten Beziehungen CCa ea M as J k J Aas jx d 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 EB 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 53 Datenbanken Datenbankstruktur Diagramm Angestellt
401. purchseorder lt Customer gt lt name gt M ller lt name gt Customer linektem ligeltem lt adress gt lt adress gt xK EN s a x N lt Customer gt adress no price no price lt lineItem gt lt no gt 4711 lt gt lt lineltem gt lt lineltem gt lt lineltem gt lt orders Abb XML Fragment mit datenspezifischem Objektbaum Bei dieser Abbildung werden Element zu Objekten und Subelemente sowie Attribute werden zu Eigenschaften von Objekten Das so entstandene Modell kann direkt auf eine objektorientierte oder eine hierarchische Datenbank abgebildet werden 61 oder auch in umgekehrter Richtung 99 Datenbanken 1 3 9 4 Abbildung von XML Daten auf Datenbanken und umgekehrt Bei der Auswahl eines DBS zur Speicherung von XML formatierten Informationen spielen Struktur und Inhalt der XML Dokumente eine Rolle Es gibt keine optimale L sung f r alle Anwendungen der Dokumentcharakter spielt eine entscheidende Rolle Bei der Darstellung auf der logischen Ebene l t sich der Wunsch nach einer Kombination von XML und Datenbanken je nach XML Dokumenttyp folgenderma en charakterisieren datenzentriert Daten bank modell SQL OQL XPath XQuery dokumentzentriert Dokumentmodell XML SGML XSLT XPath XQuery IR Anfragen DOM Bei der Darstellung auf der physischen Ebene spielen je Dokumenttyp eine Rolle datenzentriert Datenbankstrukturen wie Hashing B B ume dokumentzentr
402. put Stream getBoolean String columnName boolean getByte String columnName byte getBytes String columnName bytel getDate String columnName Java sql Date getDouble String columnName double getFloat String columnName float getInt String columnName int getLong String columnName long getNumeric String columnName int scale Java sql Numeric getObject String ColumnName Object 312 Datenbanken getShort String columnName short getString String columnName String getTime String columnName Java sql Time getTimeStamp String columnName Java sql Timestamp findColumn String ColumnName int getWarnings 0 SQLWarning clearWarnings 0 void getCursorName 0 String getMetaData 0 ResultSetMetaData getMetaData gibt die Metainformationen ber ein DatabaseMetaData geben ebenfalls die Ergebnisse in der Methoden der Klasse ResultSet zur ck Die ResultSet Form zur ck Mit den Method getwWarnings k nnen Warnungen berpr ft werden Das Interface DatabaseMetaData Ein DatabaseMetaData Objekt und seine Methoden ber 100 bermitteln Informationen zur zugrundeliegenden Datenbank Methodenname Parameter R ckgabetyp allProceduresAreCallable 0 boolean allTablesAreSelectable boolean getURL String getUserName String isReadOnly boolean nullsAreSortedHigh 0 boolean nullsAreSorte
403. r 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 ExXECUTE Phase Sie kann nach einer erfolgreichen PARSE Phase durchgef hrt werden Bei allen SQL Befehlen au er dem select Befehl verbirgt sich hier die komplette 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 Anderungen 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 chst
404. r 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 lt lt interface gt InputStream Datalnput N rn OrderReade abstract N Abh ngigkeit Generalisierung Verfeinerung DatalnputStream 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 Schni
405. ransparente Verwendung von Datenbankmethoden in der Anwendung 3 3 2 1 JDBC 2 3 3 2 1 1 Collection Typen Der VARRAY Typ wird in Java durch das Interface Array abgebildet Auch von einer NESTED TABLE kann ber das Interface ARRAY gelesen werden 3 3 2 1 2 CLOB BLOB Ein SQL BLOB wird durch ein Java Objekt mit der Schnittstelle Blob repr sentiert Dieses Objekt enth lt einen Lokator logischer Zeiger auf das SQL BLOB Das Gleiche gilt f r die Darstellung eines SQL CLOBs das durch ein Java Objekt mit der Schnittstelle C1ob repr sentiert wird 3 3 2 1 3 Benutzerdefinierter Typ Zur Verarbeitung von SQL Daten in Java m ssen geeignete Abbildungen zwischen den unterschiedlichen Typsystemen von SQL und Java definiert sein JDBC stellt Standardabbildungen zur Typkonvertierung zwischen SQL und Java zur Verf gung F r jeden vordefinierten SQL Datentyp gibt es eine repr sentative Java Klasse bzw einen Java Typ 3 3 2 1 3 1 Struct Ein SQL Tupel wird durch ein Java Objekt mit der Schnittstelle Struct repr sentiert Dieses Struch Objekt enth lt nicht die Felder Attribute des SQL Tupels sondern nur einen Lokator auf das SQL Tupel 350 Datenbanken 3 3 2 1 3 2 Mit eigener Klasse Eine Java Klasse die einen SQL Datentyp repr sentieren soll mu die Schnittstelle SOLData implementieren 3 3 2 1 4 Referenz Typ Eie SQL Referenz wird durch ein Java Objekt mit der Schnittstelle Ref repr sentiert Dieses Ref Objekt stellt e
406. raucht keine DECLARE Klausel angegeben werden Aufrufe Verwendung von Prozeduren Funktionen Aufruf von Prozeduren im PV SQL Skript prozedurname argT arg2 argn Aufruf von Prozeduren in SQL PLUS execute prozedurname argT arg2 argn Verwendung der Funktion in PL SQL funktionsname argT arg2 argn wie in anderen Programmiersprachen Im Fallevon created with compilation errors Fehler ber SHOW ERRORS ausgeben lassen Die systemeigene Tabelle DUAL kann zur Ausgabe des Ergebnisses freier Funktionen verwendet 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 273 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
407. ren z B lost update out of date retrieval So bewirken die folgenden Arbeitsschritte der Transaktionen T und T gt die nebeneinander nebenl ufig ablaufen den Verlust lost update der durch die Transaktion T4 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 retrieval 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 gt liest das Objekt zur Information 3 Transaktion T ver ndert das Objekt und schreibt es zur ck in die Datenbank 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 e
408. renz von rund s f hrt zu einer Relation deren Tupel t in r oder s nicht aber in beiden Relationen vorkommen 185 Datenbanken 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 Projektion bestimmt aus einer gegebenen Relation r4 eine zweite Relation ro durch Entfernen aller Attribute Spalten die nicht sp
409. rogrammeinheit liefern Packages fassen eine logisch zusammenh ngende Sammlung von Prozeduren und Funktionen zusammen und legen sie in der Datenbank ab 253 Datenbanken 2 3 2 5 1 PL SQL a Aufbau eines PL 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 Definitionskopf Deklarationsteil BEGIN EXCEPTION Ausnahmebehandlung END END 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 Abb Struktur auf oberster Ebene eines PL SQL Blocks 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 handeln 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
410. rst 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 Da das Rechnungsformular die Struktur einer komplexen geschachtelten Tabelle aufweist das relationale DB Modell nur einfache Tabellen kennt ist hier ein Nor 27 vgl Wedekind Hartmut Relationale Datenbanksysteme Informatik Spektrum Nr 5 978 Seiten 5 16 65 Datenbanken 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 6 Grundkonzepte von Datenmodellen Ein Datenbankmodell h ufig auch nur als Datenmodell bezeichnet ist ein System von Konzepten f r Definition und Evolution von Datenbanken zur Festlegung von Syntax und Semantik von Datenbankschemata Datenbeschreibungen und Datenbankoperationen DB Modell DB Schema DB Instanz Basisdatentypen
411. rtattributen auch Referenzattribute besitzen Referenzattribute werden durch REF objekt datentyp gekennzeichnet referenz attribut REF objekt datentyp Falls ein referenzierte Objekttyp in verschiedenen Tabellen vorkommt wird damit das Zeil der Referenz nicht auf eine bestimmte Referenz beschr nkt Nur Objekte die ein OID besitzen k nnen referenziert werden Die OID eines zu referenzierenden Objekts wird folgenderma en selektiert SELECT REF variable FROM tabelle variable WHERE Zeilen und Spaltenobjekte Zeilenobjekte sind Elemente von Objekttabellen Spaltenobjekte erh lt man wenn ein Attribut eines Tupels oder eines Objekts objektwertig ist Zeilenobjekte erhalten eine eindeutige OID ber die sie referenzierbar sind Spaltenobjekte haben keine OID und sind nicht referenzierbar Zeilen und Spaltenobjekte werden mit Hilfe entsprechender Konstruktormethoden erzeugt F r einen n stelligen Konstruktor m ssen n Argumente angegeben werden Wenn die Werte zum Zeitpunkt der Objekterzeugung noch nicht bekannt sind m ssen NULL Werte angegeben werden Bei SELECT Anweisungen m ssen immer Tupel bzw Objektvariable durch Aliasing verwendet werden wenn ein Zugriffspfad variable methode attribut angegeben wird d h wenn Attribute oder Methoden von objektwertigen Attributen ausgew hlt werden Spaltenobjekte erh lt man indem man ein Attribut einer Tabelle Tupel oder Objekttabelle objektwertig definiert Auc
412. ruktur Baumstruktur Man kann die in XML Dokumenten enthaltenen Informationen als Baumstruktur veranschaulichen lt Wurzelelement gt Typ DOCUMENT lt Element gt Typ ELEMENT lt Element gt Typ ELEMENT Elementwert Typ TEXT lt Leeres Element gt Attribut Typ ATTRIBUTE Abb Wohlgeformte XML Dokumente XML Dokumente m ssen bestimmte Syntaxregeln einhalten z B F r jedes von Syntaxregeln definierte und verwendete ffnende Tag mu es ein schlie endes Tag geben lt xml version 1 0 gt lt firstTag gt lt secondTag gt lt informationTag gt information lt informationtag gt lt secondTag gt lt firstTag gt Die Syntaxregeln sorgen f r die hierarchische Integrit t von Dokumenten Ein wohlgeformtes XML Dokument mu folgende Syntaxregeln einhalten Das Dokument mu mit der XML Deklaration beginnen 1 Das Dokument mu ber ein sog Root Element verf gen das alle brigen Elemente enth lt 2 Alle Elemente m ssen ber ein Start und ein End Tag verf gen es sei denn es handelt sich um leere Elemente 3 Leere Elemente m ssen nur ber ein Tag im Format lt name gt verf gen Attributwerte m ssen in Anf hrungszeichen gesetzt werden 4 354 Datenbanken lt xml version 1 0 gt lt angestelltenliste gt lt angestellte angid A01 gt lt name gt Fritz lt name gt G lt gehalt gt 24000 lt gehalt gt lt angestellte gt
413. rung 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 1 Implementierung set serveroutput on rem auf Kommandozeilenebene SOL Plus eingeben DECLARE string VARCHARZ2 40 status INTEGER 156 vgl Cursorkonzept 262 Datenbanken 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 adbms_output enable open cl_title loop fetch cl_title into string if cl_title NOTFOUND then exit end if dbms_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 jeweils n chsten Datensatz zugewiesen Die Schl
414. rung 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 Anderung des Modus l st einen COMMIT auf der Datenbank 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 supportsMultiple
415. rver mit gespeicherten Prozessen Resource Manager GUI amp Application z B DBMS File YO Tier 1 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 99 X Window Ans tze realisieren die Window Manager OSF Motif Open Look 147 Datenbanken Browser Beans Application Resource Manager ActiveX Services z B DBMS z RPC ORB MOM HTTP SQL Data Access Tier 1 Tier 2 Tier 3 Vergleich von 2 und 3 Tier Architektur Der gr te Vorteil der 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
416. s Definitionen im DD Vorteile des DD bestehen auf vier Gebieten Dokumentation Datenbankdefinition Anwendungsentwicklung und Kontrolle 28 Datenbanken 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 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
417. s Objekt das aus mehreren anderen Objek ten besteht Zusammengesetzte Objekte werden wie ein einzelnes Objekt behandelt sie bestehen aus einem Funktor und den dazugeh rigen Unterobjekten funktor objekt objekt3 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 211 Datenbanken eine Komponente wiederum eine Struktur so ist sie ein Teilbaum des Baumes der dem ganzen strukturierten Objekt entspricht 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 in a Listenkopf Head und in die Liste b c a 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 Anein
418. s 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 Zusicherungen genannt UML definiert keine strikte Syntax f r die Beschreibung von Bedingungen Sie m ssen nur in geschweifte Klammern gesetzt werden 77 Datenbanken 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 0 Attribute werden mindestens mit ihrem Namen
419. s Pr dikatenkalk l ab Der erste Vertreter dieser Sprachen war die bereits von Codd vorgeschlagene Sprache ALPHA 2 Verbreitete Implementierungen f r relationale Datenbanken sind das standardisierte SQL Structure Query Language QBE Sprachen Query by Example 129 vgl Wedekind Hartmut Datenbanksysteme I Mannheim Wien Z rich 1974 215 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
420. s den brigen Voraussetzungen ableitbar F r die Aussagenlogik erf llt angeblich das folgende System diese Eigenschaften Axiome 1 a gt b gt a 2 a gt b gt c gt a gt b gt a gt c 3 a gt b gt b gt a Ableitungsregeln 1 F r jedes Symbol x kann an jeder Stelle seines Auftretens jeder zu x quivalente Ausdruck substituiert werden 2 Von a und a gt 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 v 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 122 vgl Schefe Peter KI berblick und Grundlagen Mannheim Wien Z rich 1986 193 Datenbanken a Ja gt bs avb wahr wahr Abb Wahrheitstabellen zu elementaren logischen Operationen Der Wahrheitswert einer Aussage ist unver nderlich Aussagenvariable dagegen k nnen verschiedene Wahrheitswerte zugeordnet bekommen Sie k nnen ber logische Verkn pfungen mit
421. s genannt Bei einer Fehlanzeige kehrt der Interpreter zum zuletzt besuchten Choicepoint zur ck und versucht den Beweis des 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 boss_von juergen josef boss_von anna maria 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 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
422. s sind TRUE oder FALSE Zus tzlich ist auch der Wert NULL m glich 154 Bsp Deklaration einer Variablen vom Typ boolean und Initialisierung dieser Variablen set serveroutput on declare spaeteBezahlung boolean TRUE begin adbms_output enable if spaeteBezahlung then dbms_output put_line Die Bezahlung erfolgt spaet end if end DATE Datumsangaben die ber den Datentyp DATE gespeichert werden lassen sich nicht direkt in einem PL SQL Programm erzeugen sondern werden immer automatisch durch Verwenden von TO_DATE in ein Datum konvertiert ROWID F r die Definition von eindeutigen Schl sseln in Tabellenspalten entspricht ROWID in PL SQL dem gleichnamigen Felddatentyp in der Datenbank Die Speicherung erfolgt intern bin r mit fester L nge 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 eines benutzerdefinierten Verbunddatentyps declare type abteilungsSatztyp is record abteilungsID abteilung abt_id TYPE abteilungsBEZ abteilung bezeichnung TYPE abteilungsSatz abteilungsSatztyp begin abteilungsSatz abteilungsID abteilungsSatz abteilungsBE2Z insert into abteilung abt_id bezeichnung values abteilungsSatz abteilungsID lt ei Controlling 154 Zustand nicht bestimmt 257 Datenbanken abteilungsSatz abtei
423. sche 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 L nge des Wertes der Zeichenkette S 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 Bytes Felder die mit VARCHAR definiert sind nehmen nur soviel Speicherplatz in Anspruch wie die Feldinhalte tats chlich lang sind VARCHAR2 L nge p unterscheidet sich gegenw rtig nicht von VARCHAR Da Anderungen bzgl der Vergleichlogik mit CHAR Feldern f r den Typ VARCHAR geplant sind sollte der Typ VARCHAR2 benutzt werden DATE umfa t Datumwerte in der Form DD MON YY 147 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 Byte 1 Jahrhundert Byte 2 Byte 3 Byte 5 Byte 6 Byte 7 Im Default Format wird ein Datum folgenderma en beschrieben 147 Standard Datum Format 235 Datenbanken DD zweistellige Angabe der Monatstage
424. seeseesesseeesssesrsseserstssresessreresseserseseesenses 133 1 5 2 3 Transaktionsmonitor Operating Systeme f r Transaction Processing un een 135 1 5 3 Client Server Systeme a rp ese kennt ea E Ee Ea Ea aS Ea E aE EEA EEVEE nTa 136 1 5 3 1 Fernzugriff in Netzen aus autonomen Rechnern s sesesesesessesiesesrstserrterersesesrerrerereseneseerrerereees 136 1 5 3 2 Client Server Architekturen 2202200220220422nnsennennnnsnensnnnnennennnonnonnennnennsennennnnnsennen ernten 141 1 5 3 2 1 Architekturformen ien oiee seen anne E r es 141 1 5 3 2 2 2 Tier und 3 Tier Client Server Architekturen 2202200220nsensenneennenenenenennennn nn 147 1 5 3 3 Client Server und Internet Intranet uneeesenssenssenssssnensnennnnnnennnennennennnennnnnnen nennen nn 149 1 9 3 4 Web Services saena essen D RIO RO A A E EE EEE ES 157 1 53 33 Oracle Applicati n Serverske eea e aee ea ae ek ea aa Nena eas tia aaa oaia Ea Eae aa aE AES 158 1 6 Verteilte Systeme ss ussussssssssssssissinstasssunsengernntsnsesnatsnnssenssusssunssntenesnsnsn sn errntesne hnnn een ere hrs 159 1 6 1 Verteilte Datenbanken 222 22442004000200nnnnnnensnennonnennnennnennnnnennnensnnnnnnnennnennnnnnnnennsennnnnannn 159 1 6 2 Datenbankrechner und Datenbankmaschinen 2202204220022020nsnennnnnnnennnennnennnennennennnennn nennen 167 1 7 Integrit tsbedingungen und Integrit tsregeln cuscssssssssssesssssossonssonsson
425. sische 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 bedeutet die Korrektheit der in der Datenbank gespeicherten
426. snnnsnnnsnnssonsonnsnnssnnsennssnnnsnsenne 167 1 7 1 Intesrt tsbedingungen 44 amp 2 22 02 0 ar aE e Ea TE as kenne 168 1 72 Intesrit tstegenn a Rain E E E r 169 2 RELATIONALE DATENBANKEN nuussnnnnnnnsnnnnnnnannnnnannnnnnnnnannnnnannnnnnnnnnnnnnnnnnnnnnnnnnannnnnannnnannn 171 2 1 Entwurf relationaler Datenbanken durch Normalisieren susesuesesnennenesnennenennennenesnennenennennenennenenn 171 2 11 Normalformen aarastiennseten anna re namen astra En Dean Reber Eat ehe ae 171 2 1 1 1 Relationen in der 1 Normalform s2susssesssnssenssnsnennnensonnennnennnennsnnnnnnennnnnnennenn nn 171 2 1 1 2 Die zweite Normalform ZNF 2002202222ssnsnesssseensnensnennsnennnnennnnennnnennsnennnnennsnennnneensn nenn 173 2 1 1 3 Die dritte Normalform DNP su2220ss0seeesnessneensnensnennnnennnnnnnnnennnnennnnennnnnnnennnsn essen een 174 2 1 2 Spezielle Normalformen ur u0 8 n e aaea apea ea aaie e eiei a ah 175 2 1 3 Der Norm lisier ungspr ze smia esis aee a 2 e e re be Eaa SEE E ERE ETE E E E 178 2 1 3 1 Die Normalisierung als Zerlegungsproze uunsesserseesnesnnnesenesnensennnenennnennennnonsennnonnon 179 2 1 3 2 DEer Synthesepi zessin un Ks E E E Les ER R E R 182 2 2 Mathematische Grundlagen f r Sprachen in relationalen Datenbanken rsorsosssessnssersonsonens 185 2 2 1 1 Die Basis Mengenalgebra uursessussessnesennesneneenesensnsnensonnnns
427. splatzrechner Beim Fernzugriff auf die Datenbank findet eine Interproze kommunikation 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 Client Frontend und einen von allen Benutzern gemeinsam beanspruchten Teil Server Backend aufgeteilt ist Voraussetzung der verteilten Datenverarbeitung sind einheitliche Kommunikationsschnittstellen 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 Schich
428. ssen 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 der Daten wichtig sind berf hrung falls m glich mit Hilfe von Programmen des logischen in einen physischen Entwurf 46 Booch Grady u a Das UML Benutzerhandbuch Addison Wesley Bonn 1999 Seite 123 87 Datenbanken Bsp Modellierung eines Datenbankschemas f r eine Fachhochschule Fachhochschule persistent name Name adresse String telefon Number Fachbereich persistent studentHinzufuegen studentStreichen gt studentErmitteln x alleStudentenErmitteln dozentHinzufuegen fachbereichHinzufuegen dozentStreichen fachbereichStreichen dozentErmitteln fachbereichErmitteln alleDozentenErmitteln alleFachbereicheErmitteln 1 Mitglied Student Vorlesung persistent persistent name Name name Name name Name studentID Number vorlesungsiID Numer ET C N
429. ssfolgerung bedingung_1l bedingung_2 Eine Regel besteht formal aus dem Regelkopf und dem Regelrumpf Beide sind verbunden ber das Symbol Die Schlu folgerung ist dann wahr wenn alle Bedingungen des Regelrumpfes erf llt sind Regeln definieren den Zusammenhang in dem die Fakten eines Prolog Programms interpretiert werden Regeln und Fakten bilden die Wissensbasis des Programms 3 m 0 n lt gt 0 AN Na 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 p1 b2 X mit der Bedeutung Gibt es ein X so da struktur p1 b2 X aus dem Progra
430. ssonssnnsnnnsnnssnnnensnssnnse 353 Ea A R ED G i R E E an ge BD enesranenbeber einige E E RE SEHE EINS TE 353 4 1 1 1 XME Dokunienfe 22 222882 EIER a E E E EAR A E EEY 353 4 1 1 2 Bestandteile der Sprache und deren DTD Definition rserserseesnesensesnensennensennnenennne nenn 355 4 1 1 3 XML Schema Schemadefinitionssprachen esssssssseseseseesesseeessseseesreseesesseeeesseseesserrseeseeness 359 4 1 2 Zusammenspiel von XML und Datenbanken esesseessesesiesessstserresrerssrstsrerreretssrststerretssseseerrerssee 362 Datenbanken 4 2 XML und Oracle eesuesesnesnesesnennenesnennenennennenennennenennennenennennenennennesennennesennennesesnennesesnenesnennennssesnenassesnenane 365 4 2 1 Speichern von XML Daten in Oracle 2u2202202222240nsesnensesnensonnnennnnesnenennonsennnnnennnenennsensensnnn 365 4 2 2 Funktionsvorrat zur Unterst zung von XML Applikationen uurs00nsensennneenneennesnnennnennnn 366 42 3XME SOL Utility 2 3 2 43222 22 282 2a mh Renate 367 EMPFOHLENE LITERATUR uunssnssnannnnnnannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnannnnnnnnnnnnnnnnannnnnnnnnnnnnnnnnnnnnannnnnannnnn 369 BUNGEN soosiana adian anaiari pia aaa Seel ee 371 AUFG BENBL TTER sen 373 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 vo
431. st ein g ltiges Oracle Datumsformat TO_MULTI_BYTE s Wandelt alle Einzelbyte Zeichen in ihr Multibyte Zeichen quivalent um TO_NUMBER s1 52 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 159 d d1 d2 haben den Datentyp DATE 160 i hat den Typ ROWID 265 Datenbanken Formatangabe Bedeutung CC SCC Jahrhundert S bedeutet Angaben vor Christi Geburt werden mit einem Minuszeichen gekennzeichnet Y die beiden letzten des Jahres bzw vollst Jahresangabe Jahr und Jahrhundert Falls einige der Ys bei der vollst ndigen Angabe weggelassen werden werden die am weitesten links stehenden Ziffern des Jahres entfernt YYYYY YEAR ausgeschriebenes Jahr z B NINETEEN NINETY SEVEN Monat 01 12 MONTH i MI SS MONTH Ausgeschriebener Name des Monats dreibuchstabige Abk rzung des Monats JAN DEC Quartal des Jahres Q i y 1 4 DDD Tag des Jahres 1 366 S O DD Tag des Monats D Tagder Woche 1 7 Sonntag 1 S O Meridian Kennzeichnung mit Punkten MI Minte 0 59 SS_ Ssekunden 0 59 gt O Sekunden seit Mitternacht 0 86399 Zur Errinnerung Eine DATE Spalte in Oracle umfa t das Jahrhundert den Tag sowei Monat Jahr Stunde Minute und Sekunde Bsp Sonstige Funktionen DECODE u u1 u2161
432. ste St rke von PHP ist seine Unterst tzung f r zahlreiche Datenbanken Bei der verteilten Datenverwaltung werden die Aufgaben zwischen Client und Server aufgeteilt 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 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 108 Der Webserver mu PHP f hig sein Je nach Installation interpretiert diese PHP Zusatzsoftware nur Dateien mit der Endung php3 154 Datenbanken 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 In
433. steme 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 Forderungen nach Verteilungs Replikations und 161 Datenbanken Fragmentierungestransparenz 5 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 versandt 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 ee DB_1 Anwendung_1 DBMS_1 Anwendung_4 Anwendung_2 DBMS_4 DBMS_2 Anwendung_3 DBMS_3 Abb
434. ster werden hier angelegt Werden Tablespaces beim Anlegen von Objekten nicht 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 136 Oracle Version 7 226 Datenbanken 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 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 z Redo Log Dateien umfassen Protokolle zu den nderungen an den Datenbank Bl cken Control Dateien Sie enthalten neben Zeitstempeln Konsiste
435. stian Ditzel lt Name gt lt Strasse gt Kirchplatz 7 lt Strasse gt lt Stadt gt Bad Hersfeld lt Stadt gt lt Postleitzahl gt 36251 lt Postleitzahl gt lt Land gt Deutschland lt Land gt lt Adresse gt Die erste Zeile bezeichnet die XML Version Die zweite Zeile ist die Dokumentypdeklaration beginnt mit lt DOCTYPE die den Dokumenttyp hier Adresse festlegt und auf eine Datei verweist die Deklaration der Elemente und Attribute enth lt Jedes g ltige XML Dokument enth lt ein Wurzelelement das den gleichen Namen wie der zugrundeliegende Dokumenttyp tr gt Das Wurzelelement umschlie t den ganzen Inhalt des Dokuments Eine DTD mu in ihrem Namen den Namen des Wurzelelements enthalten Abb Einfaches Bsp F r ein XML Dokument Bei Verwendung einer internen Dokumenttypdefinition erfolgt kein Verweis auf eine externe Datei die notwendigen Deklarationen werden innerhalb des Dokuments angef hrt Ein XML Element wird mit Hilfe einer Elementdeklaration definiert die mit lt ELEMENT eingeleitet wird Danach folgt der Name des Elements und er Wertebereich des Inhalts Falls hier PCDATA angegeben ist 95 Datenbanken dann darf der Wertebereich keine Zeichen umfassen die zur Auszeichnung vorgesehen sind lt xml version 1 0 encoding UTF8 gt lt DOCTYPE Adresse lt ELEMENT Adresse Name Strasse Stadt Postleitzahl Land gt lt ELEMENT Name PCDATA gt lt ELE Strasse
436. t E E gt 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 gt E vor 33 Datenbanken 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 tstypp 1 mit mehreren Entit tstypen aus Entit tstypp 2 ber den Beziehungstyp in Verbindung stehen So ist bspw der Beziehungstyp zwischen Projekte Teile vom Verh ltnis M N 6 Mitglie
437. t 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 96 Der Begriff SQL 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 97 vgl 1 2 6 98 vgl ODBC Open Database Connectivity Interface von Microsoft das im wesentlichen eine Windows API ist F r jedes DBMS gibt es einen ODBC Treiber 146 Datenbanken 4 Pr sentations Server Pr sentation Kommunikationssystem Logik Datenbank Datei Disk Server Client Abb 1 5 10 Pr sentationsserver Diese Form der Anwendung wird auf Unix Systemen mit dem X Window Ansatz verfolgt Der den Dienst der Pr sentation anbietende Arbeitsplatzrechner ist hier der Server Der Client bedient sich 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 Se
438. t eine Teilmenge der Pr dikatenlogik die Horn Logik Prolog Programme sind Kon 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 amp a a b4 ist die Konklusion der Horn KLausel Enh lt die Horn KLausel Variablen X4 Xk SO ist das so zu interpretieren F r alle X4 Xk gilt b a A na 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 N Nd Dies ist der bliche DANN WENN Fall In Prolog schreibt man anstelle von lt das Symbol anstelle von ein Komma 199 Datenbanken 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 und vater 2 X vorliegen Regeln haben in Prolog folgendes allgemeines Format schlu
439. t 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 Tabelle 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 automatische Seiten oder Datensatzsperre und verf gen uber eine automatische Erkennung von Verklemmungen Der Server erledigt die Arbeit der Front End zeigt Benutzerfreundlichkei
440. t sondern au erhalb an irgend einer anderen Stelle im Tablespace Dies wird dadurch erm glicht dass in der entsprechenden Tabellenzeile ein sog locator im LOB Attribut gespeichert wird Dieser locator ist ein Zeiger auf den aktuellen Speicherplatz der LOB Daten Eine Besonderheit interner LOBs ist noch LOB Dateien die weniger als 4 KB umfassen k nnen direkt in der zugeh rigen Tabelle abgelegt sein External LOBs BFILE sind gro e Bin rdatenobjekte die nicht im Datenbanksystem sondern im Dateisystemsystem des Servers gespeichert sind BFILEs unterliegen nicht dem Transaktionskonzept der Datenbank insbesondere k nnen also Anderungen der Daten nicht mit commit rollback recovery bearbeitet werden Bevor auf einen externen LOB BFILE zugegriffen werden kann mu das BFILE Attribut der Tabelle initialisiert werden mit einem locator versehen werden Dazu mu dem DBMS bekannt gemacht werden wo im Dateisystem des Servers die Datei liegt Dies geschieht durch create directory textaustausch as home3 bedienst saj39122 oracle text Directories k nnen mit drop directory name wieder gel scht werden Mit Hilfe eines existierenden directory kann ein BFILE Attribut in einer Tabelle erzeugt werden unter Benutzung der Funktion BFILENAME BFILENAME verzeichnisname IN varchar2 dateiname in varchar2 328 Datenbanken R ckgabewert ist BFILE also ein locator BFILEs werden in Tabellenspalten ber einen sog
441. t allen untergeordneten Schichten befindet sich auf dem Server 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 Middleware 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 A
442. t 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 Constraints 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_Cnumben 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 267 Datenbanken 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 Spa
443. t der Option NOWAIT werden SQL Anweisungen die nderungen ausf hren mit Meldung zur ckgewiesen Im Standardfall werden ver ndernde DML Befehle akzeptiert die Ausf hrung wird aber bis zur Aufhebung der bestehenden Sperre unterbunden 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 276 Datenbanken 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 LOCKSs gel scht Oracle kontrolliert das Entstehen von Deadlocks automatisch und l st diese auf indem einer der beteiligeten Befehle abgebrochen wird 2 3 3 Rekursive und iterative Abfragen mit SQL Berechnung der transitiven H lle SQL ist ausgerichtet an Relationenkalk l und Relationenalgebra Bereits
444. t 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 Zentrale zur Verf gung Nicht lokale Zugriffe wenden sich zun chst an die Z
445. t ebenfalls der p Implementierung berlassen darf aber die von INT nicht berschreiten Flie kommazahl mit p Nachkommastellen alternative Bezeichnung ist REAL FLOAT Abb Datentypen in SQL 92 nderungen der Datendefinitionen k nnen ber den Befehl ALTER ausgef hrt werden ALTER DOMAI domain SET DEFAUL literal NULL DROP DEFAULT ADD CONSTRAINT constraint CHECK conditional expression D INITIALLLY DEFERRED IMMEDIATE NOT DEFERABLE ROP constraint ALTER TABLE base table ADD column column definition ALTER COLUMN column SET DEFAULT literal NULL DROP DEFAULT DROP COLUMN column RESTRICTED CASCADE A D DD base table constraint definition ROP CONSTRAINT constraint RESTRICTED CASCADES DROP SCHEMA schema RESTRICT CASCADE DROP DOMAIN domain RESTRICT CASCADE DROP TABLE base table RESTRICT CASCADE DROP VIEW view RESTRICT CASCADE DROP ASSERTION constraint mi F Di mi F Di Die Optionen RESTRICT CASCADE im DROP Befehl bestimmen das Verhalten der Operation falls das zu entfernende Objekt Spalte Tabelle CONSTRAINT noch in anderen Defintionen verwendet wird RESTRICT verbietet das L schen CASCADE l scht zus tzlich alle Definitionen die dieses Ob
446. t zur Verf gung 86 XT API X Open Interface Standart f r die Kommunikation zwischen Applikation und Transaktion Manager 136 Datenbanken Application Layer telnet ftp Anwendungsschicht mail rsh Presentation Layer Darstellungsschicht Transport Layer TCP Transmission Control Data Link Layer Datensicherungsschicht Ethernet CSMA CD Physical Layer Ethernet Bit bertragungsschicht Transportschicht Protocol Network Layer IP Internet Protokoll Vermittlungsschicht Physikalisches 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 Transportverb
447. ta 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 ORACLE 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 T rker Can Saake Gunter Objektrelationale Datenbanken dpunkt verlag Heidelberg 2006 Loney Kevin ORACLE DATABASE 10g Die umfassende Referenz Hanser Verlag M nchen Wien 2005 Skulschuss Marco Michaelis Samuel Wieserstein Marcus Oracle 10g Programmierhandbuch Galileo Press GmbH Bonn 2004 369 Datenbanken Ubungen eufgebiBi Nr berschrift Adresse 1 bungsblatt n E nn regensburg del saj39122 DB index wesen 2 Ubungsblatt ERM Diagramm f pr die DB zum i Personalwesen 3 U bungsblatt Entwurf einer relationalen DB f r i das Personalwesen 4 Ubungsblatt Implementierung einer relationalen DB f r das Personal i wesen 5 Ubungsblatt Abfragen an die relationale DB f r i das Personalwesen 6 Ubungsblatt Mehrbenutzerbetrieb mit _ konkurrierenden Zugriffen 7 bungsblatt Erstellen von Tablellen bzw _ Sichten views aus Tabellen 8 Ubungsblatt Hierarchisch
448. table column ON DELETE NO ACTION CASCADE SET DEFAULT SET NULL INITIALLY DEFERED IMMEDIATE NOT DEFERABLE CHECK conditional expression INITIALLY DEFERRED IMMEDIATE NOT DEFERABLE SET CONSTRAINT constraint commalist ALL DEFERRED IMMEDIATE 225 Datenbanken 2 3 2 Oracle SQOL 2 3 2 1 Das Datenbanksystem Oracle Oracle ist ein Produkt der Oracle Corporation Belmont California USA Oracle136 wird haupts chlich auf UNIX Rechnern eingesetzt Es handelt sich um ein relationales DB System das ber SQL leicht zug nglich ist 2 3 2 1 1 Speichern und Verwalten von Daten 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 Pool 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 Dictionar
449. te lt name gt Fritz lt name gt lt gehalt gt 24000 lt gehalt gt lt angestellte gt lt angestelltenliste gt lt xml version 1 0 gt lt angestelltenliste gt lt angestellte angid A01 name Fritz Attribute gehalt 24000 aAanNgdesie lt angestelltenliste gt Wohlgeformte und g ltige Dokumente Ein wohlgeformtes XML Dokument mu folgende Syntaxregeln einhalten Das Dokument mu mit der XML Deklaration beginnen Das Dokument mu ber ein sog Root Element verf gen das alle brigen Elemente enth lt Alle Elemente m ssen ber ein Start und ein End Tag verf gen es sei denn es handelt sich um leere Elemente Leere Elemente m ssen nur ber ein Tag im Format lt name gt verf gen Attributwerte m ssen in Anf hrungszeichen gesetzt werden Auch wenn ein XML Dokumente diesen Regeln entspricht mu es noch nicht g ltig sein Das XML Dokument mu auch noch den Regeln einer Dokumenttypdefintion DTD entsprechen Die DTD beschreibt welche Elemente und Entit ten in einem XML Dokument erscheinen und wie die Inhalte und Attribute des Elements aussehen Zur maschinellen Verarbeitung von XML Dokumenten dient ein Verarbeitungsprogramm ein sog XML Prozessor der die syntaktische Korrektheit 94 Datenbanken und den korrekten Aufbau eines XML Dokuments berpr ft Deshalb wird in XML zwischen wohlgeformten und g ltigen Dokumenten unterschieden G ltige XML Dokume
450. te executaQuery boolean ResultSet nderung erfolgreich Ergebnismenge Tabelle Anzahl der ge nderten S tze Abb Die Klasse 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 178 IN Parameter m ssen gesetzt sein bergabe von Werten 179 QUT Parameter enthalten R ckgabeparametere 180 IN OUT Parameter bergabeparameter die ihren Wert ver ndern k nnen 311 Datenbanken 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 erfolgt ber eine Vielzahl von getXXX 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 Ergebnismenge gesprungen wird
451. te 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 139 Datenbanken kommuniziert einfach indem man Nachrichten in eine Warteschlange stellt bzw Nachrichten aus der Warteschlange entnimmt O V Queue 2 9 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 runtergefahren 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 fi
452. tellter 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 gt W 2 Beziehungen zwischen identifizierenden Attributwerten verschiedener Enti t tsmengen E gt 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 3 Beziehungen zwischen identifizierenden Attributwerten der gleichen Menge E gt 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 H ufig ist die Einteilung komplexer Strukturen E g
453. ten die z T einer fest vorgegebenen Struktur entsprechen teilweise aber auch Elemente beinhalten die nicht diesem statischen Schema entsprechen Wikipedia 16 3 2007 49 Daten und Informationen ber Daten befinden sich in einem Dokument 50 Electronic Data Exchange EDI Protokoll zur bermittlung von Handelsdaten neuerdings in XML Kodierung 91 Datenbanken lt verbindungskosten_gesamt waehrung Euro gt 2 19 lt verbindungskosten_gesamt gt lt einzelverbindungsnachweis gt lt rechnung gt XML Daten weisen eine stark verzweigte Baumstruktur auf C nanas kundennummer k333 lt datum gt lt z it gt lt nummer gt lt einzelpreis gt lt datum gt lt zeit gt lt nummer gt lt einzelpreis gt waehrung Euro 0 46 lt verbindingskosten gt Abb XML Daten weisen ein stark verzweigte Baumstruktur auf Die Struktur kann durch Analyse Parsen von XML Dokumenten bearbeitet werden 1 3 9 2 1 XML Dokumentenstruktur Bestandteile eines XML Dokuments Prolog Vorspann lt xml version 1 0 encoding UTF 8 gt XML Deklaration DTD51 lt DOCTYPE beispiell SYSTEM beispiell dtd gt Verarbeitungsanweisungen gt 2 lt PI Name PI Anweisung gt Kommentare lt Kommentar gt Root Element lt skriptum gt Die erste Zeile ist eine XML Deklaration die mit lt beginnt und mit gt endet lt xml version 1 0 encoding UTF 8 gt Das XML Dokument ist hier ni
454. ten 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 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 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
455. tenverarbeitung 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 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 berufliche T tigkeit kann von mehreren Angestellten wahr genommen werden Ein Angestellter besitzt mehrere Qualifikationen Eine bestimmte Qualifikation haben mehrere Angestellte erreicht 49 Datenbanken 6 Darstellung der Datenstruktur in einem ER Diagramm Abb 1 3 16 ER Diagramm zur Datenbank Personalverwaltung b Schemaentwurf der relationalen Datenbank Abteilung Abt _ID Bezeichnun
456. ter Datenbanken Realisiert wurden im Rahmen von SQL 99 folgende Erweiterungen Neue Basistypen BOOLEAN BLOB Binary Large Object CLOB Character Large Object Neue Typkonstruktoren ROW ARRAY REF Benutzerdefinierte Datentypen Distinct Typ und strukturierter Typ Typhierarchien Subtypen Typisierte Tabellen und Tabellenhierarchien Subtabellen Typisierte Sichten und Sichthierarchien SQL 2003 die neueste Version der SQL Norm sieht die Unterst tzung von XML Daten vor Es wird m glich Tabellen mit XML wertigen Spalten anzulegen SQL ist Bestandteil zahlreicher Datenbanksysteme z B dBASE IV Oracle Database Manager bzw IBM Database 2 DB 2 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 Andern L schen oder gar Realzeitverarbeitung ist unverkennbar 75 ISO 9075 1987 Database Language SQL 1987 bzw ISO 9075 1989 Database Language SQL with Integrity Enhancement 1989 76 ISO 9075 1992 Database Language SQL 1992 77 Es handelt sich hierbei um ein Datenbanks
457. teressestsesersessteresseseessesrseeseeet 21 1 2 3 3 Daten und Speicherstrukturen 20u2222402202sonsernnesonnnenenesnenennnsonennonsonnnenonnesensennonnennenan 23 1 2 3 4 Grundfunktionen der Datenbanksoftware uesuensessersesseesennennenesnensennnnonnnennennsnonsennnsenne 26 1 2 3 5 Data Dictionary Directory System DD D System esesessesnensesnensesnesennnenennnnensennennenenn 28 1 3 Datenbankmodelle f r formatierte Datenbanken DB 00 e220s 000002 20000000002000000000000000000000000 31 1 3 1 Beschreibung der Daten in formatierten Datenbanken sursssersessersessesennennensennennennnennnnennen 31 1 3 1 1 Entit tsmengen und ihre Beziehungen uu2u22402242s0220ssnsennnenennenensennennennnennnnennenennne near 31 1 3 1 2 Beziehungen und Beziehungsattribute uu242402042s0nsesnnesennenennenneneenennensennennennnennnnennean 34 1 3 2 Das relationale Datenbankmodell 2 220420042004 20 nnennnnnennsennnennnnnennnennnnnnnnnenonnennonnennen 35 13 2 1 Grundlaget 2 len ern E ER R 35 1 3 2 2 Norm lisieren 2 22 ea a aiscH nee nnehe sen nen Eee E A A ES 36 1 3 3 Das Entity Relationship Modell u2uussessrsensesnensesnensesnnnsonnnenennsnonsennnnsonsennnnsonnnenensesnorsnnnanne 39 1 34 Leg cy D tenbankent runs aus ESEL a a E ER Re 51 1 3 4 1 Das netzwerkorientierte Datenbankmodell snsseseseseenseeseeseeseeeesstsressesetstesers
458. terface CGI findet die Verarbeitung Server seitig statt auf dem Client werden nur Repr sentationsaufgaben ausgef hrt 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 WW W Seite zugegriffen wurde Bei entsprechendem Aufruf kann ein CGI 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 Es gibt keine Vorschriften daf r in welcher Programmiersprache ein CGl 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 We
459. terpreter ausgef hrt So steht nichts mehr im Wege auf dem Client Animationen ablaufen zu lassen Eingabefelder zu berpr fen oder auch Datenbank Anweisungen SQL 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 xecuteUpdate 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 Tre
460. tet 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 144 Datenbanken Das Oracle Client Server Konzept Ab Version 7 hei t das relationale Datenbanksystem der Firma Oracle Oracle7Server Dieser Begriff betont ab Version 7 ausgepr gte Serverf higkeiten 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 Aufga
461. teuer Brutto Netto Adresse klasse gehalt gehalt Programm Programm Gehaltsabrechnung Adressenschreiben berweisung Liesel 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 Anderung aller bestehenden Programme die mit den Datens tzen arbeiten 2 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 L sung 2 Der Datenbestand f r die Gehaltsabrechnung bleibt unver ndert Damit entfallen Programm nderungen Der Datenbestand f r die Adressenschreibung wird v llig neu aufgebaut Datenbanken 31210 Ute 8 M nchen Ebertstra e 30164 Liesel 8 M nchen Hahnstra e 29912 J rgen 8 M nchen Buschstra e 27330 Uwe 8 M nchen Karlsplatz Pers Nr Name Adresse Abb 1 1 3 Datenbestand f r die Adressenschreibung Es ergeben sich aus dieser L sung allerdings z
462. tifikation Bezeichnung einer Abteilung und die Zahl der Beschaeftigten in dieser Abteilung zeigt SELECT ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG COUNT ANGESTELLTE ANG_ID FROM ABTEILUNG ANGESTELLTE WHERE ANGESTELLTE ABT_ID ABTE GROUP BY ABTEILUNG ABT_ID ABTE Er UNG ABT_ID UNG BEZEICHNUNG F F 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 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 118 Datenbanken 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 Ausgangspunkt der HAVING Klausel bereits Gruppen gebildet sind kann n
463. tion erledigt die Unifikation DIR kind _von juergen liesel v fraulliesel kind _von juergen liesel N frau liesel fraudliesel ne 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 202 Datenbanken vater_von X Y v kind _von Y X v mann X vater_von X Y kind _von Y X v mann X kind _von juergen christian Mit der Substtution Y juergen X christian kann ein Abgleich Ian erfolgen mann christian mann christian et leere Klausel 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 q X p X 2 Regel q a Fakt Die Anfrage f hrt zu keinem Ergebnis sondern zu einer Endlosschleife Begr ndung U
464. tion der Datenverarbeitung ist weitgehend bestimmt durch die Anwendung Solche Organisationsforrmen haben sich herausgebildet f r Dokumentationssysteme Expertensysteme Data Warehouse Systeme 12 Datenbanken 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 Begriffsbenennung f r verschiedene Begriffe das Aquivalenzproblem 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 Aquivalenzklasse zusammengefa ten
465. tizipiert PERSON PE SPRACHK PE SPRACHE QUALITAET 172 Datenbanken 2 Gib eine relationsm ige Darstellung der Problemstellung an bei der SPRACHE als Entit tsmenge an einer Beziehungsmenge partizipiert die ihrerseits an einem Beziehungsattribut beteiligt ist PERSON PE SPRACHE SPRACHE SPRACHK PE SPRACHE QUALITAET 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 Bsp Funktionale Abh ngigkeiten in der Relation Student_E funktional abh ng
466. tname 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 tc p port 1521 connect_data sid orc1l scott tiger Der Connectstring 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 17 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 Anweisungen 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 SQL DELETE FROM Der oben definierte String wird ber das stmt
467. to Nr Inhaber Filiale Kontostand en nn ae Bad Hersfeld _ ATE E T Regensburg u Snleukea en eair Re Regensburg __ eehemenen Cantas Regensburg sarri PE E E Bad Hersfeld an Veran en 5 nee ne N ETE et ee M nchen REN ee gt ee Bad Hersfeld Konto Nr Inhaber Filiale Kontostand ee EN M nchen NETED A A 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 116 In relationalen Datenbanken ist die Relation Tabelle Ausgangspunkt f r die Verteilungseinheit 163 Datenbanken Vertikale Fragmente Globale Relation van eaa Arti 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 eine Entscheidung ber Dispersion und Replikation der Fragmente zu treffen Bei der Dispersion werden das Fragment einer globalen Relation genau einmal auf einen Knoten des verteilten S
468. toren Ein Iterator definiert man allgemein ber einen SQLJ Block in folgendem Format sql modifikatoren iterator iteratorname implements interface parameterliste Alle von der SQLJ Implementierung generierten Iteratoren erf llen die Vorgaben der Schnittstelle sqglj runtime ResultSetIterator Programmierer haben u a Zugriff auf folgenden Methoden close schlie t einen Iterator bzw die darunter liegende Ergebnismenge isClosed Die Methode liefert true falls die darunterliegende Ergenismenge geschlossen wurde getResultSet ber diese Methode kann man eine Referenz auf das dem Iterator zugrundeliegende Abfrageergebnis in Form eines java sql ResultSet erhalten next Der Cursor der Ergebnismenge wechselt zum n chsten Datensatz Die Methode liefert true wenn ein weiterer Datensatz in der Ergebnismenge vorhanden ist bzw false wenn der Iterator bereits beim letzten Datensatz angelegt ist endFetch Diese Methode liefert true nachdem die letzte Zeile erreicht wurde 173 Die Verarbeitung von Anfrageergebnissen mit Hilfe von Host Ausdr cken ist nur auf wenige SQL Konstrukte beschr nkt wie die SELECT INTO Klausel oder den Aufruf von gespeicherten Prozeduren 293 Datenbanken Benannte Iteratoren Der Iterator wird in einem SQLJ Block deklariert Nach dem Namen des Iterators z B angestellte folgt eine Liste der ber den Iterator abzufragenden Attribute inklusive des bevorzugten Dat
469. truktur lt Kunde gt Meier lt Kunde gt SQL hnliche Suche erw nscht lt Artikel gt Seife lt Artikel gt Elementereihenfolge oft unwichtig lt Preis gt 2 40 lt Preis gt z B Katalogdaten Rechnungen lt Rechnung gt Datenorientiertes XML ist durch eine relativ regelm ige Struktur gekennzeichnet Derartige Strukturen wurden normalerweise f r maschinelle Verarbeitung entworfen Bsp 19 Datenbanken lt order gt lt customer gt Meyer lt customer gt lt position gt lt isbn gt 1 234 56789 0 lt isbn gt lt number gt 2 lt number gt lt price currency Euro gt 30 00 lt price gt lt position gt lt order gt dokumentenzentriert Daten und Struktur sind relevant lt Heading gt Liedtext lt Heading gt uneinheitliche schwache Struktur Sie m ssen erst den lt bold gt Nippel lt bold gt Volltextsuche erw nscht durch die Lasche zieh n und mit der kleinen Elementereihenfolge oft wichtig z B HTML Seiten Buchkapitel Ein dokumenentenzentriertes Datenformat Austauschformat engl document centered data format exchange format erm glicht die gemeinsame bertragung und Speicherung semantisch zusammengeh render Daten in einem einzelnen Dokument Das Dokument wird in einem Format erstellt das flexibel genug ist um Strukturierung Speicherung bertragung und teil automatisierte Weiterverarbeitung beliebiger Dokumentinhalte zu erm glichen Man spricht
470. tsbereich der von ORACLE Pro C benutzt wird und der die Ergebniss iner SQL Abfrage enthaelt xy KE ri Der CURSOR wird mit dem folgenden Kommando mit XJ einer SQL Abfrage in Beziehung gebracht L Z y 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 7 Der zuvor definierte CURSOR wird eroeffnet X Die mit ihm assoziierte Abfrage wird ausgefuehrt und alle gefundenen Loesungen in der einer Tabelle im Arbeitsbereich abgespeichert Der CURSOR wird auf die erste Loesung positioniert F EXEC SQL OPEN C1 Definition der Aktion die durchgefuehrt werden KR soll falls alle Loesungen der Abfrage abge der arbeitet worden sind 288 Auf x7 ur 2 Datenbanken EXEC SOL WHENEVER NOT FOUND STOP Schleife ueber alle gefundenen Loesungen for 7 5 je a Die naechste erste Loesung wird ermittelt EJ und die gewuenschten Felder in die angebotenen Variablen kopiert Ef BE K 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 ORAC
471. ttstelle 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 82 Datenbanken O ImageObserver in IN WillkommenApplet Abb Vererbungshierarchie von WillkommenApplet einschl Schnittstelle ImageObserver Interaktionsdiagramm Es gibt zwei Arten von Interaktionsdiagrammen Sequenzdiagramme Kollaborationsdiagramme 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 Abfolge 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 Objekten Der Focus
472. tzt 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 P lt lt extends gt gt Bankangestellter Dollarkauf Auftrag drucken 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 Verhalten 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 42 Vgl G nther Wahl UML kompakt OBJEKTspektrum 2 1998 76 Datenbanken 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 un
473. u jeder Transaktion wird ein Protokolleintrag Anfangszeitpunkt der Transaktion 168 Datenbanken Transaktionsnummer Transaktionstyp Datenobjekt vor Ver nderung before image Zustand des Datenobjekts nach Ver nderung after image Fehlerstatus Engzeitpunkt 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 169 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 Normalform ENF Eine Relation befindet sich in der ersten Normalform ENF
474. uch 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 94 eine Entwicklung von Sun Microsystems es gibt auch ein PC NFS von Sun 95 Middleware ist keine eigenst ndige Software Sie mu auf unterschiedliche Art und Weise in neue Anwendungen integriert werden z B als Webserver Plug In bzw Add On als Java Klassen Perl Module Java Beans ider Servlets Middleware Produkte werden zum Transfer von Daten zwischen Datenbanken ind anderen Client Anwendungen 143 Datenbanken Client Middleware Server Service Specific i ODBC TxRPC Mail ORB HTTP Objects b t Browser GUI OOUI DSM Web SNMP CMIP Tivoli ORB OLTP N we _ DBMS Directory Security Distributed File DSM DSM Be RPC Massaging Peer to Peer os TranspotStack OS NetBios TCP IP IPX SPX SNA Middleware 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 beinhal
475. uct unsigned short sqlerrml Laenge Meldungstext char sqlerrmc 70 Meldungstext entspricht dem sqlcode sqlerrm wird nicht benutzt char sqlerrp 38 6 6 Statuscodes 81 lg char sqlerrd char sqlwarn char sqlext 8 8 Warnungsflags nicht benutzt l Wichtige Informationen ber den Programmablauf enth lt sqlcode Wird nach der Verarbeitung hier eine 0 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 280 Datenbanken Gastgebendes Programm SQLCA Fehler lt Warnungen lt g Text zur Diagnose lt lt Anzahl Zeilen SOL Anweisung Datenbank Abb 2 3 5 SKQLCA Exception Handling Der Status nach ausgef hrten SQL Anweisungen kann auf zwei Wegen berpr ft werden 1 berpr fen der Komponentenwerte der SQLCA 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
476. uf hren falls keine sauber erstellte Datei tnsnames ora vorliegt ist die Erg nzung des Strings um eine g ltige SQL Net Namensspezifikation Connection conn DriverManager getConnection jJAbc oracle oci7 A 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 orcl 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 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 175 vgl Installationshinweise 304 Datenbanken Connection conn DriverManager getConnection jAbc oracle thin scott tiger irgendwo nirwana de 1527 oradb Im Connectstring wird das OCI7 durch thin ersetzt Name und Passwort bleiben gleich die Anderung in der Zusammensetzung des Strings ist optional Nach dem wird der komplette Hos
477. uierlich w hrend der Laufzeit aktualisiert werden Die Gruppenbezeichnung bildet jeweils den Vorspann f r den Namen der Sicht USER_TABLES USER_CATALOG USER_COL_COMMENTS USER_CONSTRAINTS USER_INDEXES USER_OBJECTS Alle Datenbankobjekte die zum User geh ren OBJ USER_TAB_COLUMNS Spaltenbezeichnungen zu Tabellen Sichten vom User COLS USER_TAB_COMMENTS Kommentare zu Tabellen Sichten USER_TRIGGERS Trigger die der User definiert hat USER_USERS Information ber den aktuellen User USER_VIEWS Views definiert vom aktuellen User 230 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 sql 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
478. ukturen 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 Blockadresse Satzadresse Pers Nr Kostenstelle Gehalt 1 1 100 Br 2 106 3 110 4 111 2 5 117 6 120 7 121 8 124 3 9 130 10 133 lio O 1 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 24 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 S tze Records 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
479. um logischen Wert wahr falls das Ergebnis des in Klammern eingeschlossenen select Ausdrucks nicht leer ist 67 Vgl Syntaxdiagramme Abb 1 4 2 116 Datenbanken S W ELECT JOB TITEL FROM JOB HERE EXISTS SELECT FROM ANGESTELLTE WHERE ANGESTELLTE JOB_ID JOB JOB_ID RDER BY JOB TITEL H O ber EXISTS auf Existenz pr fen kann der Existenzquantor in SQL interpretiert werden SQL hat den Allquantor nicht implementiert 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 Mit EXISTS gibt es demnach die M glichkeit die Existenz einer
480. umber Abb Modellieren eines logischen Datenbankschemas 2 Die Modellierung eines physischen Datenbankschemas Das Modellieren einer physischen Datenbank umfa t ZustaendigFuer 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 47 vgl Booch Grady u a Das UML Benutzerhandbuch Seite 451 88 Datenbanken Bsp Modellieren der physischen Datenbank FH db FH db Vorlesung Fachbereich Dozent Fachhochschule Student Dia un un u I 1 3 8 3 Datenbankmodellierung mit der UML Ausgangspunkt f r das Modell sind Use Cases Daraus lassen sich Struktur stat Modell und Verhalten dynamisches Modell entwickeln Die Modelle werden durch UML Diagramme dargestellt und soweit verfeinert dass eine Realisierung durch ein Datenbanksystem m glich ist Aus der Use Gase Beschreibung lassen sich fachliche Begriffe Objekte ihre Aufgaben Eigenschaften und Zusammenh nge ermitteln Objekte und ihre zugeh rigen Klassen k nnen in Form von Diagrammen dargestellt werden Klassendiagramme modellieren die statischen Beziehungen zwischen Klassen bzw Objekten Die Interaktionen mit den Use Cases l sen Transaktionen aus Transaktionen stzen sich aus einer endlichen Folge von elementaren Operationen auf Ob
481. und ber ungerichtete Kanten mit der entsprechenden Raute verbunden Bsp Beziehung zwischen Lieferant und Artikel im ERM Lieferant lt liefert Artikel 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 Datenbankmodell 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 19 vgl 1 3 6 20 vgl Chen P S und Kn ll Heinz Dieter Der Entity Relationship Ansatz zum logischen Systementwurf Mannheim Wien Z rich 1991 21 Sie wird zur besseren bersicht generell abgeflacht dargestellt 40 Datenbanken Lieferant liefert Artikel L Name Anschrift L A Preis At Bez Best EON ua iii L01 A17 ATZ u Bern 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
482. ur 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 Datenbanken 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 Direktzugrif 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 Verarbeitungs 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
483. ur 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 Datenmengen ein Sie ist aber hier obwohl eine WHERE Klausel vor allen anderen Klauseln ausgef hrt wird unbedingt erforderlich da ELECT ABTEILUNG ABT_ID ABTEILUNG BEZEICHNUNG COUNT ROM ABTEILUNG ANGESTELLTE HERE ANGESTELLTE ABT_ID ABTE AND COUNT gt 1 ROUP BY ABTEILUNG ABT_ID ABTE S E W r UNG ABT_ID G E UNG 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 E
484. va 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 JDBC ODBEC Bridge ist als jdbcOdbc class implementiert und eine native Bibliothek f r den Zugriff auf den ODBEC 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 Bridge Treiber Java Treiber D Java ODBC Treiber Treiber f r DBMS B Middleware DBMS A Typ 1 Typ 2 Typ 3 Typ 4 100 Java 100 Java 302 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 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 d
485. viele f r beide Tabellen gleichlautende Feldnamen angeben Der JOIN wird dann ber gleiche Werte dieser Felder gebildet SELECT FROM Angestellte Abteilung Angestellte INNER JOIN Abteilung USING Abt_ID quivalent dazu ist in SQL 89 131 Vgl 1 4 3 2 217 Datenbanken 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 EXC
486. w Auf diese Weise wird der gesamte Transaktionsbaum durchlaufen 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 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 84 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 133 Datenbanken 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 134 Datenbanken 1 5 2 3 Transaktionsmonitor Operating Syste
487. wei 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 Unterschiedliicher Stand der Datenbest nde wenn nicht alle nderungen 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 Mitarbeiter frei gelassen werden 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 n
488. wender 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 regelbasierter 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
489. 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 1 Relationen zum Festhalten von Entit tsbeziehungen NAME S NAME ALTER S WERT DOZIERT D FACH S1 Karl s 20 DT C 52 Vera s2 35 D2 Pascal S3 Vera S3 26 SPRACHKENNTNISSE S SPRACHE
490. wird ber die Constraint Definitionen nicht unterst tzt Gleiches gilt f r F lle in denen bei Anderung oder L schung eines Parent Datensatzes die Fremdschl sselattribute der korrespondierenden Cild Datens tze auf NULL oder einen Default Wert gesetzt werden sollen Bsp Zur 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 268 Datenbanken 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 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
491. y die bei der Interpretation der Befehle ben tigt werden Logisch gesehen 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 Clu
492. ystem das unter OS 2 l uft und wird im Rahmen von OS 2 Auslieferungen der IBM bereitgestellt 125 Datenbanken Interaktive Verarbeitung datenorientierter Aufgabenstellungen Datenbanken l sen datenorientierte Aufgabenstellungen in interaktiver Verarbei tung Ein derartiges Anwendungssystem kann in drei Basiskomponenten gegliedert werden eine Pr sentationskomponente zur Realisierung der Benutzerschnittstelle g eine Logikkomponente zur Ausf hrung von Verarbeitungsfunktionen und Uber 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 5 Schichen 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 5 Schichten Architektur spricht man
493. ystems 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 164 Datenbanken Schemaverteilung Eine Datenbank wird bekanntlich durch das Datenbankschema beschrieben Dort erfolg
494. zielt aus der Wissensbasis gel scht der mit dem Argument von retract unifiziert werden kann abolish l scht s 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 dkate tell Listing und told 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 dikat exists dateiname art_des_zugriffs einsetzen Je nachdem ob auf die Datei deren Name im 1 Argument aufgef hrt ist zugegriffen wird ist im 2 Argument r oder w ohne Hochkommata anzugeben 128 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 213 Datenbanken 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

Download Pdf Manuals

image

Related Search

Skripte skripte ekof skripte schreiben skripte drucken skripten lehrlinge skripte za maturu skripte server uwh skripte regierung oberbayern skripte zusammenfassen ai skriptenverkauf tum mw skriptekommission hsg skripten verwaltungsassistenten skripte zusammenfassen ki

Related Contents

Sony VAIO VPCCW15FX  Kambrook KFP95 Food Processor User Manual  RCA 00004194 Cordless Telephone User Manual  King Canada 8355QC User's Manual  Portugues version 1.0 eu.cyberpowersystems.com Professional  Spectra Precision Focus 6 5" Total Station User Guide - Nikon  Pregao 054-14 Aquisicao Materiais e Equipamentos de Informatica    ICC IC107F01AL  Lenovo Yoga Tablet 10 16GB Silver  

Copyright © All rights reserved.
Failed to retrieve file