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