K a pitel 3. S QL:2003 D er objektrelationa le D atenba nks ta nda rd

Größe: px
Ab Seite anzeigen:

Download "K a pitel 3. S QL:2003 D er objektrelationa le D atenba nks ta nda rd"

Transkript

1 K a pitel 3 S QL:2003 D er objektrelationa le D atenba nks ta nda rd Rückblick SQL-92 Übersicht SQL:2003 Benutzerdefnierte Datentypen Typisierte Tabellen Typ- und Tabellenhierarchien

2 D is c la im er D ies es K a pitel ba s iert a uf dem folg enden B uc h, w elc hes a uc h zur w eiteren Vertiefung em pfohlen w ird: C a n Türker: S QL:1999 & S QL:2003 O bjektrelationa les S QL, S QLJ & S QL/X M L. dpunkt-verla g, H eidelberg, IS B N :

3 S QL-S ta nda rd A llg em eine Inform ationen S QL:2003 is t im D ezem ber 2003 m it folg enden Pa rts veröffentlic ht w orden: Part 1: Framework Part 2: Foundation Part 3: Call Level Interface (SQL/CLI) Part 4: Persistent Stored Modules (SQL/PSM) Part 9: Management of External Data (SQL/MED) Part 10: Object Language Bindings (SQL/OLB) Part 11: Information and Defnition Schemas (SQL/Schemata) Part 13: SQL Routines and Types Using the Java Programming Language (SQL/JRT) Part 14: XML-related Specifcations (SQL/XML) S epa rater S ta nda rd: S QL M ultim edia a nd A pplic ation Packa g es (S QL/M M ) Part 1: Framework Part 2: Full Text Part 3: Spatial Part 5: Still-Image Part 6: Data Mining Vorlesung "Objektrelationale, erweiterbare Datenbanken" - WS 2004/2005 (Dr. Can Türker) 3-3

4 B a s is kons trukte (a us S QL-92 beka nnt) Tupelta bellen Basistabellen zur Speicherung von Daten Sichten (Views): abgeleitete Tabellen Typ eines Attributs ist ein Basisdatentyp (1NF) Zeilen (Tupel) setzen sich aus Instanzen der jeweiligen Wertebereiche zusammen B a s is datentypen IN TE G E R, S M A LLIN T, N U M E R IC, D E C IM A L,R E A L, FLOAT, C H A R A C TE R, DATE, TIM E,... M U LTIS E T R OW B a s is datentyp Inte g ritä ts beding ung en Primär-/Fremdschlüssel, Check-Klauseln Assertions: Bedingungen über mehrere Tabellen Z ug riffs rec hte (G ra nts ) 3-4

5 B a s is datentypen Basisdatentyp Bedeutung Beispielwerte SMALLINT INTEGER DECIMAL(p,q) NUMERIC(p,q) FLOAT(p) REAL DOUBLE PRECISION CHAR(q) VARCHAR(q) CLOB(r) ganze Zahl 1704, 4070 Festkommazahl mit Genauigkeit p und q Nachkommastellen , Fließkommazahl mit Genauigkeit p 1.5E-4, 10E20 Alphanumerische Zeichenkette mit fester bzw. variabler Länge bis zur Maximallänge q Zeichen bzw. r Grösse Das ist eine Zeichenkette, SQL:2003 BLOB(r) Binäre Zeitenkette mit Grösse r B 01101, X 9E DATE Datum DATE , DATE TIME Zeit TIME 20:30:45, TIME 00:15:30 TIMESTAMP Zeitstempel TIMESTAMP :15:00 INTERVAL Zeitintervall INTERVAL 11:15 HOUR TO MINUTE Vorlesung XML "Objektrelationale, XML-Wert erweiterbare Datenbanken" - WS 2004/2005 <Titel>SQL:2003 (Dr. Can Türker) und 3-5

6 Tupelta bellen E ine Tupelta belle is t eine tra ditionelle Ta belle im S inne von S QL-92 E ine s olc he Ta belle bes teht a us einer M ultim eng e von Tupeln Ta bellen na m e S pa lten (C olum ns ) = A ttribute R A1... An Z eilen (R ow s ) = Tupel... A ttributw erte Vorlesung "Objektrelationale, erweiterbare Datenbanken" - WS / (Dr. Can Türker) 3-6

7 D efinition von Tupelta bellen S ynta x: C R E ATE TA B LE Tabellenname (Tabellenelementliste) Ta bellenelem ent: Attributdefnition Tabellenbedingung Attributdefnition beinhaltet Festlegung des Datentyps und eventuell die Angabe eines Defaultwerts sowie von Attibutbedingungen Defnition von Tabellenbedingungen Inte g ritä ts beding ung en (IB ) N OT N U LL D E FAU LT C H E C K (Boolesches Prädikat) U N IQU E /P R IM A RY K E Y (Eindeutigkeits-/Schlüsselbedingungen) FO R E IG N K E Y... R E FE R E N C E S (Fremdschlüsselbedingungen) D O M A IN A S S E R TIO N 3-7

8 B eis piele für D om ä nen, Tupelta bellen m it IB, A s s ertions C R E ATE D OM A IN Jobs C H A R (10) D E FAU LT 'Verkaeufer' C H E C K (VA LU E IN ('Verkaeufer', 'Manager', 'Buchhalter')); C R E ATE TA B LE Mitarbeiter ( MNr S M A LLIN T P R IM A RY K E Y, Nachname VA R C H A R (25) N OT N U LL, Vorname VA R C H A R (20) N OT N U LL, Job Jobs, Vorgesetzter S M A LLIN T R E FE R E N C E S Mitarbeiter(MNr), Anstellung DATE D E FAU LT C U R R E N T_DATE, Gehalt D E C IM A L(7,2) N OT N U LL C H E C K (Gehalt > 2000), Bonus D E C IM A L(7,2) N OT N U LL C H E C K (Bonus < 5000), C O N S TR A IN T EindeutigeNamenskombination U N IQU E (Nachname, Vorname), C O N S TR A IN T CheckGesamtgehalt C H E C K (Gehalt + Bonus < 25000)); C R E ATE A S S E R TIO N MaxJahresgehlt C H E C K ((S E LE C T 12*S U M (Gehalt + Bonus) FR O M Mitarbeiter) < ); 3-8

9 Frem ds c hlüs s el und referenzielle A ktionen Frem ds c hlüs s elbeding ung verletzba r durc h IN S E R T oder U P DATE auf der referenzierenden Tabelle D E LE TE oder U P DATE auf der referenzierten Tabelle M ög lic he referentielle R ea ktionen: O N D E LE TE /UU P DATE... N O A C TIO N : verbietet DELETE/UPDATE einer referenzierten Zeile R E S TR IC T: analog zu NO ACTION; wird aber "sofort" überprüft C A S C A D E : automatisches DELETE/UPDATE der referenzierenden Zeile S E T N U LL: setzt korrespondierende Fremdschlüssel auf NULL S E T D E FAU LT: setzt korrespondierende Fremdschlüssel auf DEFAULT 3-9

10 E rw eiterung en in S QL:1999 & S QL:2003 Trig g er N eue B a s is datentypen: B O O LE A N, B LO B, C LO B, B IG IN T N eue Typkons truktoren: R OW, A R R AY, R E F, F M U LTIS E T B enutzerdefinierte D atentypen (D is tinc t-typ und s truk turierte Typen) Typhiera rc hien (S ubtypen) Typis ierte Ta bellen und Ta bellenhiera rc hien (S ubta bellen) Typis ierte S ic hten und S ic hthiera rc hien (S ubs ic hten) R ekurs ion S equenzg eneratoren, G enerierte S pa lten, Identitä ts s pa lten 3-10

11 Ta bellenw ertig e Funktionen liefern eine Ta belle zurüc k D efinition des R üc kg a betyps : R E TU R N S TA B LE (Spaltenliste) Beispiel: C R E ATE FU N C TIO N ReicheMitarbeiter (Limit D E C IM A L(7,2)) R E TU R N S TA B LE (MNr S M A LLIN T, Gehalt D E C IM A L(7,2)) R E TU R N (S E LE C T MNr, Gehalt FR O M Mitarbeiter WH E R E Einsatz Gehalt > einer Limit); tabellenwertigen Funktion in Anfragen: S E LE C T * FR O M TA B LE (ReicheMitarbeiter(10000)); 3-11

12 Trig g er R ea g iert a utom atis c h a uf vordefinierte E reig nis s e in der D atenba nk A uc h für die Wa hrung von Integ ritä ts beding ung en eins etzba r Zusammenspiel zwischen Trigger und deklarativen IB beachten E rs t m it S QL:1999 s ta nda rdis iert, obw ohl kom m erzielle S ys tem e Trig g er s c hon la ng e unters tützen (S yba s e führte Trig C R Eg ATE er bereits TR IG G E1987 R OnUpdateCascadeMNr ein) A FTE R U P DATE O F MNr O N Mitarbeiter B Reis E FEpiel: R E ND C IN efinition G O LD Aeines S AltMit Trig N Eg W ers A S NeuMit FO R E A C H R OW WH E N (E X IS TS (S E LE C T * FR O M Mitarbeiter WH E R E Manager= AltMit.MNr)) B E G IN ATO M IC U P DATE Mitarbeiter S E T Vorgesetzter=NeuMit.MNr WH E R E Vorgesetzter=AltMit.MNr; E N D ; 3-12

13 Trig g er K om ponenten Trig g erereig nis : IN S E R T/D E LE TE /U P DATE auf Basistabelle Trig g era ktivierung s zeitpunkt: B E FO R E /A FTE R Triggerereignis Trig g erg ra nula ritä t: FO R E A C H R OW/S TATE M E N T Trig g erbeding ung : SQL-Bedingung; Aktion nur dann ausgeführt, wenn Bedingung erfüllt ist Trig g era ktion: Sequenz von SQL-Anweisungen 3-13

14 IB -Ü berprüfung a nd Trig g era us führung SQL-Anweisung Bestimme Menge der betrofenen Zeilen Führe B E FO R E Trigger aus Führe Änderungen der SQL-Anweisung aus Überprüfe alle R E S TR IC T Fremdschlüssel Überprüfe alle C A S C A D E, S E T N U LL, S E T D E FAU LT Fremdschlüssel Überprüfe alle N O A C TIO N Fremdschlüssel and alle anderen IB Führe A FTE R Trigger aus Vorlesung "Objektrelationale, erweiterbare Datenbanken" - WS / (Dr. Can Türker) 3-14

15 E ffekt einer Integ ritä ts verletzung Tra ns a ktion: Menge von SQL-Anweisungen, die eine Datenbank von einem konsistenten in einen anderen konsistenten Zustand überführt S ta nda rd-s QL unters tützt im plizit K ons is tenz a uf A nw eis ung s ebene Führt eine SQL-Anweisung zu einer Verletzung einer IB, wird eine Ausnahme signalisiert und die Änderungen der Anweisung rückgängig gemacht Dies gilt auch für alle automatisch durch referentielle Aktionen oder Trigger durchgeführte Änderungen Rücksetzen der gesamten Transaktion muss explizit durch den Benutzer/Anwendung mittels des Befehls R O LLB AC K durchgeführt werden 3-15

16 S equenzg eneratoren E rzeug en S equenzen von num eris c hen Werten D efinition: C R E ATE S E QU E N C E Sequenzname A S Typname [S TA R T WITH Initialwert] [IN C R E M E N T B Y Inkrementwert] [N O M IN VA LU E M IN VA LU E Minimalwert] [N O M A X VA LU E M A X VA LU E Typ muss Maximalwert] ein numerischer Basisdatentyp sein [N O C YC LE C YC LE ] Angabe der Sequenzoptionen erfolgt reihenfolgeunabhängig Ist der Inkrementwert negativ, erfolgt eine Dekrementierung Cycle-Klausel bestimmt über den nächsten Schritt, wenn beim Inkrementieren der Maximalwert (bzw. beim Dekrementieren der Minimalwert) erreicht wird N O C YC LE beendet Generierung mit einer Ausnahmebedingung C YC LE setzt die Generierung mit dem Minimalwert fort 3-16

17 S equenzg eneratoren B eis piel C R E ATE S E QU E N C E MitarbeiterID A S B IG IN T S TA R T WITH IN C R E M E N T B Y 2 M IN VA LU E M A X VA LU E C YC LE ; Z ug riff a uf den nä c hs ten S equenzw ert N E Xm T it VA LU E FO R Sequenzname zum B eis piel in einer IN S E R T-A nw eis ung : IN S E R T IN TO MitarbeiterTupeltabelle (MNr, Name) VA LU E S (N E X T VA LU E FO R MitarbeiterID, 'Harry'); 3-17

18 G enerierte S pa lten & Identitä ts s pa lten B ei g enerierten S pa lten w ird der Wert a us den Werten a nderer S pa lten berec hnet D efinition: Wertausdruck darf nur folgendes als Variablen enthalten: Spaltenname G E N E R ATE D A LWAY S A S (Wertausdruck) nicht-generierte Spalten derselben Zeile Funktionen, die weder SQL-Anfragen noch DML-Anweisungen enthalten B ei Identitä ts s pa lten w erden die Werte durc h einen im pliziten S equenzg enerator g eneriert Werte sind immer defniert und eindeutig Spaltenname G E N E R ATE D {A LWAYS B Y D efinition: D E FAU LT} A S ID E N TITY [(Sequenzoptionen)] A LWAYS schliesst Update der Spalte aus B Y D E FAU LT erlaubt Inserts und Updates 3-18

19 Verw endung von neuen B a s is typen & S pa ltena rten C R E ATE TA B LE MitarbeiterTupeltabelle ( ID B IG IN T G E N E R ATE D A LWAY S A S ID E N TITY (S TA R T WITH IN C R E M E N T B Y 2 M IN VA LU E M A X VA LU E C YC LE ), Name VA R C H A R (30), Gehalt D E C IM A L(12,2), Bonus D E C IM A L(12,2), Total G E N E R ATE D A LWAYS A S (Gehalt + Bonus), Vollzeit B O O LE A N, Bild B LO B (1M), Bewerbung C LO B (50k) ); S E LE C T Name FR O M MitarbeiterTupeltabelle WH E R E Vollzeit IS TR U E A N D P O S ITIO N ('SQL:2003' IN Bewerbung) > 0; Identitätspalte Generierte Spalte Boolesche Spalte Blob-Spalte Clob-Spalte 3-19

20 Typkons truktoren E rzeug en eines Tupeltyps : R OW(Feldname_1 Typ_1,..., Feldname_n Typ_n) E rzeug en eines A rra ytyps : Elementtyp A R R AY [Maximale- Kardinalität] E rzeug en eines M ultim eng entyps Elementtyp : M U LTIS E T E rzeug en eines R eferenztyps : B eis piel: Tupeltabelle mit tupelwertigen, arraywertigen, multimengenwertigen & referenzwertigen Spalten R E F(Strukturierter-Typ) [S C O P E (Tabelle)] C R E ATE MitarbeiterTupeltabelle ( // wie zuvor Anschrift R OW( Strasse VA R C H A R (30), Nr D E C IM A L(4), PLZ D E C IM A L(5), Ort VA R C H A R (40), Land VA R C H A R (25), 3-20

21 O perationen a uf Tupeltypen E rzeug en eines Tupels m it dem Tupelkons truktor (heis s t g ena us o w ie der Tupeltypkons truktor): R OW('Seestrasse', 31, 8008, 'Zürich', 'Schweiz') Z ug riff a uf ein Tupelfeld m ittels P unktnotation: Verg leic h zw eier Tupel: S E LE C T Name, Anschrift.ORT FR O M MitarbeiterTupeltabelle R OW(1, 2, 7) = R OW(1, 2, 7) -- liefert TR U E R OW(1, 2, 7) = R OW(1, 3, 7) -- liefert FA LS E R OW(1, 2, 7) = R OW(1, NULL, 7) -- liefert UR OW(1, N K N OWN 2, 7) < R OW(1, 3, 5) -- liefert TR U E R OW(1, 2, 7) < R OW(1, 1, 7) -- liefert FA LS E R OW(1, 2, 7) < R OW(1, NULL, 7) -- liefert U N K N OWN 3-21

22 O perationen a uf A rra ytypen (1) E rzeug en eines A rra ys m it dem A rra ykons truktor (heis s t g ena us o w ie der A rra ytypkons truktor): A R R AY ['Deutsch', 'Englisch'] D irekter Z ug riff a uf da s i- te A rra yfeld m ittels [i]: S E LE C T Sprachkenntnisse[2] FR O M MitarbeiterTupeltabelle; D ekla rativer E lem entzug riff m ittels E nts c ha c htelung : S E LE C T s FR O M MitarbeiterTupeltabelle, U N N E S T(Sprachkenntnisse) s; 3-22

23 O perationen a uf A rra ytypen (2) Ä nderung eines einzelnen A rra yelem ents : U P DAT E MitarbeiterTupeltabelle S E T Sprachkenntnisse[1] = 'Türkisch'; Ä nderung des kom pletten A rra yw erts : U P DAT E MitarbeiterTupeltabelle S E T Sprachkenntnisse = A R R AY ['Türkisch']; K a rdina litä t liefert A nza hl der A rra yelem ente: C A R D IN A LITY (A R R AY ['Deutsch', Türkisch']) -- liefert den Wert

24 O perationen a uf A rra ytypen (3) K onkatenation zw eier A rra ys : A R R AY ['Deutsch', Türkisch'] A R R AY ['Englisch'] -- erzeugt A R R AY ['Deutsch', Türkisch', 'Englisch'] Verg leic h zw eier A rra ys : Zwei Arrays sind vergleichbar g.d.w. ihre Elementtypen vergleichbar sind Zwei vergleichbare Array A1 und A2 sind gleich (A1=A2) g.d.w (1) sie die gleiche Kardinalität besitzen und (2) alle A R R AY Elemente ['Deutsch', paarweise Türkisch'] gleich <> Asind R R AY ['Deutsch', Türkisch', 'Englisch'] -- liefert TR U E A R R AY ['Deutsch', Türkisch'] = A R R AY ['Deutsch', Türkisch', NULL] -- liefert FA LS E 3-24

25 O perationen a uf M ultim eng entypen (1) E rzeug en einer M ultim eng e m it dem M ultim eng enkons truktor (heis s t g ena us o w ie der M ultim eng entypkons truktor) Leere M ultim eng e: M it Werten initia lis ierte M ultim eng e: M U LTIS E T[] M U LTIS E T[17, 4, 7, 4] M U LTIS E T(S E LE C T Gehalt A us einer FR OM Ta belle/a nfra g e MitarbeiterTupeltabelle erzeug te WH E R E Gehalt > ME lem ultimenttyp eng e: w ird durc h den 4500) Z eilentyp der Ta belle bes tim m t Tabelle hat genau ein Attribut: Elementtyp = Type(A1) Tabelle hat mehr als ein Attribut: Elementtyp = R OW(Type(A1),, Type(An)) 3-25

26 O perationen a uf M ultim eng entypen (2) K a rdina litä t liefert A nza hl der M ultim eng enelem ent e: E lem ent einer einelem entig en M ultim eng e ex tra hieren: E rzeug en einer M eng e (D uplik a telim inierung ): C A R D IN A LITY (M U LTIS E T[1 7, 4, 7, 4]) -- liefert den Wert 4 E LE M E N T(M U LTIS E T[17]) -- liefert den Wert 17 S E T(M U LTIS E T[17, 4, 7, 4]) -- liefert MULTISET[17, 4, 7] D ekla rativer E lem entzug riff m ittels S E LE C T s FR O M MitarbeiterTupeltabelle, U N N E S T(Fehltage) s; 3-26

27 O perationen a uf M ultim eng entypen (3) D uplikats tes t (IS [N OT] A S E T): M U LTIS E T[17, 4, 7, 4] IS A S E T -- liefert FA LS E E lem entinklus ions tes t ([N OT] M E M B E R [O F]): 24 M E M B E R (M U LTIS E T[17, 4, 7, 4]) -- liefert FA LS E 4 M E M B E R (M U LTIS E T[17, 4, 7, 4)]) -- liefert TR U E M ultim eng eninklus ion s tes t ([N OT] S U B M U LTIS E T [O F]): M U LTIS E T[17, 4, 7, 4] S U B M U LTIS E T M U LTIS E T[17, 4, 7] -- liefert FA LS E M U LTIS E T[4, 7] S U B M U LTIS E T M U LTIS E T[17, 4, 7, 4] -- liefert TR U E 3-27

28 O perationen a uf M ultim eng entypen (4) Vereinig ung : U N IO N [A LL D IS TIN C T] M U LTIS E T[17, 4, 7, 4, 4] M U LTIS E T U N IO N M U LTIS E T[4, 24, 7] -- liefert M U LTIS E T[17, 4, 7, 4, 4, 4, 24, 7] M U LTIS E T[17, 4, 7, 4, 4] M U LTIS E T U N IO N D IS TIN C T M U LTIS E T[4, 24, 7] D-- ifferenz: liefert MEU XLTIS C E PET T[17, [A LL 4, D7, IS24] TIN C T] M U LTIS E T[17, 4, 7, 4, 4] M U LTIS E T E X C E P T M U LTIS E T[4, 24, 7] -- liefert M U LTIS E T[17, 4, 4] M U LTIS E T[17, 4, 7, 4, 4] M U LTIS E T E X C E P T D IS TIN C T M U LTIS E T[4, 24, 7] -- liefert M U LTIS E T[17, 4] D urc hs c hnitt: IN TE R S E C T [A LL D IS TIN C T] M U LTIS E T[17, 4, 7, 4, 4] M U LTIS E T IN TE R S E C T M U LTIS E T[4, 24, 7, 4] -- liefert M U LTIS E T[4, 7, 4] M U LTIS E T(17, 4, 7, 4, 4) M U LTIS E T IN TE R S E C T D IS TIN C T M U LTIS E T[4, 24, 7, 4] 3-28

29 O perationen a uf M ultim eng entypen (5) Verg leic h zw eier M ultim eng en: Zwei Multimengen sind vergleichbar g.d.w. ihre Elementtypen vergleichbar sind Zwei vergleichbare Multimengen A1 und A2 sind gleich (A1=A2) g.d.w. sie exakt die gleichen Elemente mit der jeweils gleichen Kardinalität enthalten M U LTIS E T[17, 4, 7, 4] = M U LTIS E T[1, 4, 7, 4] -- liefert FA LS E M U LTIS E T[17, 4, 7, 4] = M U LTIS E T[17, 4, 7, 4, 4] -- liefert FA LS E M U LTIS E T[17, 4, 7, 4] = M U LTIS E T[4, 7, 17, 4] -- liefert TR U E 3-29

30 O perationen a uf R eferenztypen E rzeug en einer R eferenz a uf eine Z eile durc h Z uw eis ung der zug ehörig en O ID a n ein R eferenzattribut bzw. R eferenzva ria ble (bei benutzerdefinierter O ID -Typs pezifikation a uc h durc h den A ufruf des R eferenzkons truktors m ög lic h) D ereferenzierung S E LE C T Abteilungm ittels P feil-o perator: >Name FR O M MitarbeiterTupeltabelle; R eferenza uflös ung S E LE C T m ittels D E R E F- D E R E F(Abteilung) O perator: FR O M MitarbeiterTupeltabelle; Verg leic h zw eier R eferenzen: Zwei Referenzen sind vergleichbar g.d.w. ihre referenzierten Typen gleich sind Zwei vergleichbare Referenzen R1 und R2 sind gleich (R1=R2) g.d.w sie denselben Referenzwert aufweisen 3-30

31 Typkons truktoren B eis piele (1) Verw endung des Tupel- bzw. A rra ytypkons truktors : IN S E R T IN TO MitarbeiterTupeltabelle(Name, Sprachkenntnisse, Fehltage) VA LU E S ( R OW('Billy', 'Clintwood'), A R R AY ['Deutsch', 'Englisch', 'Türkisch'], M U LTIS E T[17, 4 7, 4]); Z ug riff a uf tupelw ertig e A ttribute bzw. Verw endung a rra yw ertig er A ttribute: S E LE C T Name.Nachname FR O M MitarbeiterTupeltabelle WH E R E Name.Vorname = 'John' A N D 'Deutsch' IN (S E LE C T * FR O M U N N E S T(Sprachkenntnisse)); 3-31

32 Typkons truktoren B eis piele (2) Ä nderung einzelner Tupelfelder m ittels P unkt-n otation: U P DAT E MitarbeiterTupeltabelle S E T Name.Nachname = 'Türker' WH E R E Name.Nachname = 'Tuerker'; Ä nderung einzelner A rra yelem ent m ittels direktem Pos itions zug riff: U P DAT E MitarbeiterTupeltabelle S E T Sprachkenntnisse[4] = 'Französisch' WH E R E Name.Nachname = 'Türker'; Ä nderung einzelner M ultim eng enelem ente nic ht m ög lic h: U P DAT E P MitarbeiterTupeltabelle S E T Fehltage = M U LTIS E T[17, 4, 7, 4, 10] WH E R E Name.Nachname = 'Türker'; 3-32

33 D is tinc t-typen K opie eines exis tierenden D atentyps m it neuem N a m en Wiederverwendung Strenge Typisierung (basiert auf Namensäquivalenz) Nicht-optionales Schlüsselwort FIN A L schliesst Subtypbildung aus Systemdefnierte Vergleichsoperatoren basierend auf dem Quelltyp Cast-Operatoren zur Konversion zwischen Distinct- und Quelltyp E rzeug en eines D is tinc t- Typs : B eis piel e: C R E ATE TY P E Distinct-Typname A S (Quelltyp) FIN A L [C A S T (S O U R C E A S D IS TIN C T) WITH Funktionsname] [C A S T (D IS TIN C T A S S O U R C E ) WITH Funktionsname] C R E ATE TY P E Franken A S D E C IM A L(12,2) FIN A L; C R E ATE TY P E Euro A S D E C IM A L(12,2) FIN A L; Vorlesung "Objektrelationale, erweiterbare Datenbanken" - WS / (Dr. Can Türker) 3-33

34 O perationen a uf D is tinc t-typen E rzeug en einer Ins ta nz eines D is tinc t-typs : D is tinc t- Typna m e(quelltypwert) B eis piele für D is tinc t-werte: Fra nken( ) E uro( ) Verg leic h zw eier D is tinc t-werte: Distinct-Typen unterliegen der strengen Typisierung Zwei Distinct-Werte sind vergleichbar g.d.w. ihre Distinct-Typen identisch sind Beispiel: Fra nken( ) = E uro( ) ergibt einen Typkonfikt 3-34

35 Verw endung von D is tinc t-typen B eis piel: D is tinc t-typen in Ta bellendefinitionen: C R E ATE TA B LE MitarbeiterTupeltabelle ( // wie zuvor defniert bis auf G eha lt Fra nken); A nfra g e ba s ierend a uf D is tinc t-typen: S E LE C T Name.Nachname FR O M MitarbeiterTupeltabelle WH E R E G eha lt > E uro(5000); g em eins a m en Quelltyp: S E LE C T FR O M Typkonflikt: Franken und Euro nicht vergleichbar Konvertierung notwendig! Vorherig e A nfra g e m it expliziter K onvertierung zum Name.Nachname MitarbeiterTupeltabelle WH E R E C A S T(G eha lt A S D E C IM A L) > C A S T(E uro(5000) A S D E C IM A L); P roblem : Derartige Konvertierungen sind nicht immer "semantisch" sinnvoll! Oftmals sind benutzerdefnierte Cast- Funktionen notwendig, die nicht nur den Typ, sondern auch den Wert konvertieren bzw. neu berechnen. 3-35

36 B enutzerdefinierte C a s t-funktionen K onvers ion zw is c hen unters c hiedlic hen D atentypen S ynta x: C R E ATE C A S T (Typ1 A S Typ2) WITH FU N C TIO N Konvertierungsfunktion(Parameter Typ1) [A S A S S IG N M E N T] Typ1 oder Typ2 muss ein benutzerdefnierter Typ oder ein Referenztyp sein Konvertierungsfunktion hat genau einen Parameter vom Typ Typ1 und Typ2 als Rückgabetyp ist deterministisch und liest und ändert keine SQL-Daten A S A S S IG N M E N T: Implizite Cast-Funktion (wird automatisch aufgerufen) 3-36

37 E xplizite C a s t-funktionen B eis piel D efinition einer K onvertierung s funktion: C R E ATE FU N C TIO N Franken(e Euro) R E TU R N S Franken R E TU R N C A S T(C A S T(e A S D E C IM A L) * 1.5 A S Franken); D efinition einer expliziten C a s t-funktion: C R E ATE C A S T (Euro A S Franken) WITH FU N C TIO N Franken(Euro); Vorherig e A nfra g e nun m it direkter K onvertierung von E uro na c h Fra nken: S E LE C T Name.Nachname FR O M MitarbeiterTupeltabelle WH E R E G eha lt > C A S T(E uro(5000) A S Fra nken); oder WH E R E G eha lt > Fra nken(e uro(5000)); 3-37

38 Im plizite C a s t-funktionen B eis piel D efinition einer K onvertierung s funktion: C R E ATE FU N C TIO N Euro(f Franken) R E TU R N S Euro R E TU R N C A S T(C A S T(f A S D E C IM A L) * 0.65 A S Euro); D efinition einer im pliziten C a s t-funktion: C R E ATE C A S T (Franken A S Euro) WITH FU N C TIO N Euro(Franken) A S A S S IG N M E N T; Vorherig e A nfra g e nun m it im pliziter K onvertierung von Fra nken na c h E uro: S E LE C T Name.Nachname FR O M MitarbeiterTupeltabelle WH E R E G eha lt > E uro(5000); Vorlesung "Objektrelationale, erweiterbare Datenbanken" - WS / (Dr. Can Türker) 3-38

39 S truk turierte Typen S o etw a s w ie O bjekttypen m it Verha lten und eing eka ps elter S truktur S trukturierte Typen, die keine S ubtypen s ind, heis s en Wurzeltypen S ynta C x: R EDATE efinition TY P E von Typname Wurzeltypen A S (Attributdefnitionsliste) [[N OT] IN S TA N TIA B LE ] [N OT] FIN A L [Referenzgenerierung [Referenzcasting]] [Methodendeklarationsliste] Optional: Instanziierung verbieten (abstrakter Typ) Nicht-optionale Final-Klausel erlaubt bzw. verbietet Subtypbildung Optional: Bestimmen der Referenzgenerierung (OID-Erzeugung) Optional: Objektverhalten in Methoden kodieren 3-39

40 S trukturierte Typen B eis piele C R E ATE TY P E AdressTyp A S ( Strasse VA R C H A R (30), Basisdatentypen Nr D E C IM A L(4), PLZ D E C IM A L(5), Ort VA R C H A R (40), Land CVA RRE CATE H A R TY (25) P E PersonTyp A S ( ) N OT FIN Name A L; VA R C H A R (30), Anschrift AdressTyp, Ehepartner R E F(PersonTyp), Kinder R E F(PersonTyp) A R R AY [10] ) N OT FIN A L R E F IS S Y S TE M G E N E R ATE D ; Strukturierter Typ Einbettung Referenz Konstruierte Typen 3-40

41 A ttributdefinition S ynta x: Attributname Typ [R E FE R E N C E S A R E N OT C H E C K E D R E FE R E N C E S A R E C H E C K E D O N D E LE TE N O AC TIO N ] [D E FAU LT Defaultwert] Bei Referenzattributen, die mit einer S C O P E -Klausel versehen sind, muss auch die R E FE R E N C E S -Klausel spezifziert werden Default: R E FE R E N C E S A R E N OT C H E C K E D Ungültige Referenzen sind möglich 3-41

42 R eferenzg enerierung und R eferenzc a s ting N ur für Wurzeltypen definierba r N otw endig um da ra uf ba s ierende typis ierte Ta bellen definieren zu kö nnen S ynta x: R E F U S IN G Typ R E F FR O M (Attributliste) S ynta x: R E F IS S YS TE M G ER NE F RUATE S IND G Typ OID-Werte sind von einem bestimmten Basisdatentyp, etwa IN TE G E R R E F FR O M (Attributliste) OID aus vorhandenen Attributwerten eines Schlüssels funktional bestimmt R E F IS S Y S TE M G E N E R ATE D OID-Generierung durch das System C A S T (S O U R C E A S R E F) WITH FU N C TIO N Name C A S T (R E F A S S OU R C E ) WITH FU N C TIO N Name Vorlesung "Objektrelationale, erweiterbare Datenbanken" - WS / (Dr. Can Türker) 3-42

43 O perationen a uf s trukturierten Typen (1) E rzeug en einer Ins ta nz eines s trukturierten Typs m it dem D efa ult-k ons truktor, der g ena us o heis s t w ie der zug ehörig e s truk turierte Typ: z.b. AdressTyp() oder PersonTyp() A ttributzug riff erfolg t m ittels Funktions a ufrufe s ow ie P unkt- O perator Verg leic h zw eier s trukturierter Werte: keine Ordnungsrelationen implizit bereitgestellt benutzerdefnierte Ordnungsfunktionen können aber defniert werden 3-43

44 O perationen a uf s trukturierten Typen (1) Typtes t: Strukturierter-Wert IS [N OT] O F (Typnamensliste) Prädikat IS O F wird TR U E, wenn die Liste den Typ des Wertes bzw. einen Supertyp davon enthält Letzteres kann durch die Verwendung von O N LY ausgeschlossen werden, z.b. Strukturierter-Wert IS O F (O N LY (Mitarbeiter)) Tem porä re Typa npa s s ung entla ng einer Typhiera rc hie: (Strukturierter-Wert A S Supertypname) -- Anpassung nach oben TR E AT(Strukturierter-Wert A S Subtypname) -- Anpassung nach unten m erkung : S trukturierter Wert = Ins ta nz eines s trukturierten Typs O bjek 3-44

45 E inka ps elung von s trukturierten Typen Volls tä ndig e E inka ps elung Attribute nur über Methoden zugreifbar Attributzugrife und Methodenaufrufe gleich behandelt Im plizite O bs erver- und M utator-m ethoden für jedes A ttribut O bs erver: C R E ATE M E TH O D Strasse() FO R AdressTyp R E TU R N S VA R C H A R (30) ; C R E ATE M E TH O D Nr() FO R AdressTyp R E TU R N S D E C IM A L(4) ; C R E ATE M E TH O D PLZ() FO R AdressTyp R E TU R N S D E C IM A L(5) ; CM Rutator: E ATE M E TH O D Ort() FO R AdressTyp R E TU R N S VA C RRE CATE H A R M(40) E TH ; O D Strasse(VA R C H A R (30)) FO R AdressTyp C R E ATE RME ETU THR ON D S Land() AdressTyp ; FO R AdressTyp R E TU R N S VA C RRE CATE H A R M(25) E TH ; O D Nr(D E C IM A L(5)) FO R AdressTyp R E TU R N S AdressTyp ; C R E ATE M E TH O D PLZ(D E C IM A L(5)) FO R AdressTyp R E TU R N S AdressTyp ; C R E ATE M E TH O D Ort(VA R C H A R (40)) FO R AdressTyp R E TU R N S AdressTyp ; C R E ATE M E TH O D Land(VA R C H A R (25)) FO R AdressTyp 3-45

46 A ttributzug riff bei Ins ta nzen eines s truk turierten Typs Z ug riff über Funktions a ufrufe oder P unkt-o perator X.Attributname entspricht X.Atributname() SET X.Attributname = Wert entspricht X.Attributname(Wert) P fa da us drüc ke Nacheinander Anwendung des Punkt-Operators Navigierende Zugrife B eis piel: B E G IN D E C LA R E p PersonTyp; S E T p = PersonTyp(); S E T p.name = 'Luke Skywalker'; S E T p.anschrift.ort = 'Hollywood'; E N D ; 3-46

47 E rzeug en von Ins ta nzen eines s truk turierten Typs Verw endung des D efa ult-k ons truktors : Typna m e() Initia lis ierung m ittels M uta tors oder überla denen K ons truk tor B Ceis R Epiele ATE FU für N Cda TIO s N Ü berla AdressTyp den ( eines s K ons truktors : VA R C H A R (30), n D E C IM A L(4), p D E C IM A L(5), o VA R C H A R (40), l VA R C H A R (25)) R E TU R N S AdressTyp R E TU R N Aufruf des CAdressTyp().Strasse(s).Nr(n).PLZ(p).Ort(o).Land(l) R E ATE FU N C TIO N PersonTyp (n VA R C H A R (30), Defaulta ; AdressTyp) Konstruktor R E TU R N S PersonTyp s B E G IN D E C LA R E p PersonTyp; S E T p = PersonTyp(); S E T p.name = n; S E T p.anschrift = a; R E TU R N p; E N D ; 3-47

48 S ubtypbildung A ufba u von Typhiera rc hien S ynta x: C R E ATE TY P E Typname U N D E R Supertypname A S (Attributdefnitionsliste) [[N OT] IN S TA N TIA B LE ] [N OT] FIN A L [Methodendeklarationsliste] S ubtypdefinition m ittels U N D E R -K la us el Subtyp hat genau einen direkten Supertyp (keine direkte Mehrfachvererbung) Supertyp muss selbst ein strukturierter Typ sein Subtyp erbt alle Attribute und Methoden des Supertyps Subtyp kann geerbte Methoden überschreiben und überladen 3-48

49 S ubtypen B eis piele C R E ATE TY P E MitarbeiterTyp U N D E R PersonTyp A S ( PNr IN TE G E R, Bewerbung C LO B (50K), Bild B LO B (5M), Vorgesetzter R E F(MitarbeiterTyp), Projekte R E F(ProjektTyp) A R R AY [50], Gehalt Franken ) N OT FIN A L; C R E ATE TY P E ManagerTyp U N D E R MitarbeiterTyp A S ( Leitet R E F(ProjektTyp) A R R AY [100], Bonus Franken ) N OT FIN A L; 3-49

50 M ethoden M ethoden s ind Funktionen, die zu einem s trukturierten Typen g ehören Deklaration erfolgt innerhalb der Typdefnition Besitzen impliziten SELF-Parameter O verloa ding, O verriding und Late B inding Überladen von Methodennamen mehrere gleichnamige Methoden mit unterschiedlichen Parametern Dynamisches Binden von überschriebenen Methoden zur Laufzeit Auswahl der Implementierung hängt vom strukturierten Typ ab 3-50

51 M ethodendekla ration S ynta x: D ekla ration einer M ethode [IN S TA N C E S TATIC ] M E TH O D Methodenname (Parameter) R E TU R N S Rückgabetyp [Methodencharakteristikaliste] de S ynta x: D ekla ration einer " übers c hreibenden" M OV ethode E R R ID IN G M E TH OD Methodenname (Parameter) R E TU R N S Rückgabetyp M ethodenc ha ra kteris tika STATIC defniert Tabellenmetho [LA N G UAG E {A DA C C O B O L FO R TR A N M U M P S PA S C A L S QL JAVA }] [PA R A M E TE R S TY LE {S QL G E N E R A L JAVA }] [[N OT] D E TE R M IN IS TIC ] [N O S QL C ON TA IN S S QL R E A D S S QL DATA M O D IFIE S S QL DATA ] [{R E TU R N S N U LL C A LLE D } O N N U LL IN P U T] [TR A N S FO R M G R O U P Gruppenname [FO R TY P E 3-51

52 M ethodenc ha ra kteris tika (1) D eterm inis tis c he M ethode hat im m er den g leic hen E ffek t in zw ei A ufrufen m it den g leic hen A rg um enten a uf dem g leic hen D B -Z us ta nd Angabe, ob und welche Art von SQL-Anweisungen die Methode enthält N O S QL Enthält keine SQL-Anweisungen C ON TA IN S S Q L Enthält SQL-Anweisungen R E A D S S QL Liest möglicherweise SQL-Daten DATA Schreibt möglicherweise SQL-Daten M O D IFIE S S QL Angabe, DATA ob Methode ausgeführt wird, wenn ein Argument NULL ist R E TU R N S N U LL O N nicht ausgeführt; NULL zurückgeliefert N U LL IN P U T ausgeführt (mögliche Laufzeitfehler C A LLE D O N N U LL beachten) IN P U T Transformgruppe defniert Funktionen, die automatisch aufgerufen werden, wenn benutzerdefnierte Typen von der SQL-Umgebung in die Host-Sprachumgebung (und umgekehrt) transferiert werden 3-52

53 M ethodenc ha ra kteris tika (2) D efa ulteins tellung en IN S TA N C E LA N G UAG E S QL N OT D E TE R M IN IS TIC S TATIC schliesst OV E R R ID IN G aus LA N G UAG E S QL schliesst N O S QL, Parameterstyle-Klausel, Transform- Klausel aus C ON TA IN S S Q L C A LLE D ON N U LL IN P U T 3-53

54 M ethodendekla ration B eis piele C R E ATE TY P E PersonTyp A S (... ) N OT FIN A L M E TH O D AnzahlKinder() R E TU R N S IN TE G E R ; C R E ATE TY P E MitarbeiterTyp A S (... ) N OT FIN A L M E TH O D Einkommen() R E TU R N S Franken, M E TH O D Gehaltserhöhung() R E TU R N S Franken; C R E ATE TY P E ManagerTyp A S (... ) N OT FIN A L OV E R R ID IN G M E TH OD Einkommen() R E TU R N S Franken, OV E R R ID IN G M E TH OD Gehaltserhöhung() R E TU R N S Franken; 3-54

55 M etho dendefinitio n Im plem entierung einer dekla rierten M ethode S ynta x: C R E ATE [IN S TA N C E S TATIC ] M E TH O D Methodenname (Parameter) R E TU R N S Rückgabetyp FO R StrukturierterTyp Methodenrumpf M ethodenrum pf bes teht a us einer S QL-P rozedur- A nw eis ung Schemadefnitions- oder Schemamanipulationsanweisung IN S E R T, U P DATE, D E LE TE, S E LE C T (SQL- Datenänderungsanweisungen)

56 M ethodendefinition B eis piele D efinition einer " les enden" M ethode C R E ATE M E TH O D Einkommen() R E TU R N S Franken FO R MitarbeiterTyp R E TU R N S E LF.Gehalt; Ü bers c hreiben einer " les enden" M etho de ndefinition C R E ATE M E TH O D Einkommen() R E TU R N S Franken FO R ManagerTyp R E TU R N Franken(C A S T(S E LF.Gehalt A S N U M E R IC ) + C A S T(S E LF.Bonus A S N U M E R IC )); 3-56

57 E rw eiterung von S QL zur P rog ra m m iers pra c he Compound statement B E G IN [ATOM IC ] SQL-Anweisungen E N D ; SQL variable declaration IF statement CASE statement Anweisungen LOOP statement WHILE statement E N D WH ILE ; REPEAT statement Prädikat E N D R E P E AT; FOR statement RETURN statement CALL statement D E C LA R E Variable Datentyp; IF Prädikat TH E N SQL-Anweisungen E LS E SQL-Anweisungen E N D IF; C A S E X WH E N Wert TH E N SQL- E LS E SQL-Anweisungen E N D C A S E ; LO O P SQL-Anweisungen E N D LOOP; WH ILE Prädikat D O SQL-Anweisungen R E P E AT SQL-Anweisungen U N TIL FO R Loop-Variable A S Cursor-Spezifkation D O SQL-Anweisungen E N D FO R ; R E TU R N Rückgabewert; C A L L Routine(Parameterliste); Assignment statement S E T Variable = Wert; 3-57

58 D efinition einer " s c hreibenden" M ethode C R E ATE M E TH O D Gehaltserhöhung() R E TU R N S Franken FO R MitarbeiterTyp B E G IN D E C LA R E altesgehalt N U M E R IC (12,2); S E T altesgehalt = C A S T(S E LF.Gehalt A S N U M E R IC ); IF (S E LF.AnzahlKinder < 3) O R (S E LF.AnzahlProjekte < 2) TH E N S E T S E LF.Gehalt = Franken(1.03 * altesgehalt); E LS E S E T S E LF.Gehalt = Franken(1.05 * altesgehalt); E N D IF; IF (C A S T(S E LF.Gehalt A S N U M E R IC ) > ) TH E N C A LL raise_error('mitarbeitergehalt zu hoch!'); E N D IF; R E TU R N S E LF.Gehalt; 3-58

59 Ü bers c hreiben einer " s c hreibenden" M ethode C R E ATE M E TH O D Gehaltserhöhung() R E TU R N S Franken FO R ManagerTyp B E G IN D E C LA R E altesgehalt N U M E R IC (12,2); S E T altesgehalt = C A S T(S E LF.Gehalt A S N U M E R IC ); S E T S E LF.Gehalt = Franken(altesGehalt * (1+0.01*(S E LF.AnzahlProjekte + S E LF.AnzahlKinder))); IF (S E LF.Gehalt > ) TH E N C A LL raise_error('managergehalt zu hoch!'); E N D IF; R E TU R N S E LF.Gehalt; E N D ; 3-59

60 E ins atz s trukturierter Typen a ls... A ttributtyp a nderer s trukturierter Typen Para m etertyp von M ethoden, Funktionen und P rozeduren Typ von S QL-Va ria blen Typ einer typis ierten Ta belle Typ von Ta bellens pa lten C R E ATE TA B LE PersonenTupeltabelle ( Stammdaten Pers ontyp, Bild B LO B (1M), Lebenslauf C LO B (50k) ); 3-60

61 Ins ta nziierung und Verw endung s truk turierter Typen Ins ta nziierung m ittels (Typ-)K ons truktor Geschachtelte Aufrufe über überladene Konstruktoren IN S E R T IN TO PersonenTupeltabelle VA LU E S (Pers ontyp('billy Bär', A dres s Typ('Seefeldstrasse', 31, 8008, 'Zürich', 'CH'), NULL, NULL), NULL, NULL); M ethodena ufruf/z Z ug riff a uf A ttributw erte von s trukturierten Werten S E LE C T Stammdaten.Name, Stammdaten.AnzahlKinder FR O M PersonenTupeltabelle WH E R E Stammdaten.Anschrift.Ort = 'Zürich' A N D P O S ITIO N ('Diplom' IN Lebenslauf) > 0; 3-61

62 B enutzerdefinierte G leic hheit von Ins ta nzen Verg leic hba rkeit und O rdnung von Ins ta nzen benutzerdefinierter Typen Ordnungsformen: N O N E E QUA LS O N LY O R D E R FU LL Ordnungskategorien: R E LATIV E : Ordnungsfunktion ordnet jeweils zwei Instanzen M A P : Vergleich bzw. Ordnung basiert auf dem Ergebnis einer Abbildungsfunktion, die Instanzen auf Werte von Basisdatentypen abbildet S TATE : Vergleich basiert auf paarweise Gleichheit der Attributwerte C R E ATE O R D E R IN G FO R BDTyp S ynta x: {E QUA LS O N LY O R D E R FU LL} B Y {R E LATIV E WITH FU N C TIO N Ordnungsfunktion(P1 BDTyp, P2 BDTyp) M A P WITH FU N C TIO N Abbildungsfunktion(Parameter BDTyp) S TATE [Schemaname]} 3-62

63 B enutzerdefinierte G leic hheit von Ins ta nzen (Forts.) E ins c hrä nkung en Alle Typen einer Typhierarchie müssen gleiche Ordnungsform besitzen FU LL erfordert R E LATIV E oder M A P S TATE nur für strukturierte Typen defnierbar R E LATIV E und S TATE nur für Wurzeltypen defnierbar Distinct-Typen: O R D E R FU LL D efinition von S TATE für Pers ontyp erzeug t a Cutom R E ATE atis FUc Nh: C TIO N EQUALS(p1 PersonTyp, p2 PersonTyp) R E TU R N S B O O LE A N R E TU R N (p1.s P E C IFIC TY P E =p2.s P E C IFIC TY P E A N D p1.name = p2.name A N D p1.anschrift = p2.anschrift A N D p1.ehepartner = p2.ehepartner A N D p1.kinder = p2.kinder); 3-63

64 O rdnung s - und A bbildung s funktionen S eien X, Y Ins ta nzen eines benutzerdefinierten Typs Z Sei RF eine Ordnungsfunktion für Z. Dann gelten folgende Ordnungsrelationen: X = Y R F(X, X Y R F(X, Y ) Y ) = 0 0 X < Y R F(X, X Y R F(X, Y ) Y ) = -1 {-1, 0} X > Y R F(X, X Y R F(X, Y ) Sei MF eine Abbildungsfunktion für Z. Dann gelten folgende Y ) = 1 {0, 1} Ordnungsrelationen: X θ Y M F(X ) θ M F(Y ), w obei θ {<,, =,,, > } 3-64

65 O rdnung durc h benutzerdefinierte A bbildung s funktionen D efinition einer A bbildung s funktion für s trukturierten Typ A dres s Typ: C R E ATE FU N C TIO N AdresseMap(a AdressTyp) R E TU R N S VA R C H A R (104) R E TU R N a.land a.ort a.strasse C A S T(a.Nr A S C H A R (4)) C A S T(a.PLZ A S C H A R (5)); D efinition einer O rdnung s funktion für s trukturierten Typ A dres s Typ: C R E ATE O R D E R IN G FO R AdressTyp O R D E R FU LL B Y M A P WITH FU N C TIO N AdresseMap(AdressTyp); 3-65

66 Verw endung benutzerdefinierter O rdnung s funktionen B eis piela nfra g en, in denen eine O rdnung s funktion zum E ins atz kom m t: Anfragen mit ORDER BY: S E LE C T Stammdaten.Name, Stammdaten.Anschrift FR O M PersonTupeltabelle O R D E R B Y Stammdaten.Anschrift; Anfragen mit Kleiner/Grösser(Gleich)-Prädikaten: S E L E C T Stammdaten.Name, Stammdaten.Anschrift FR O M PersonTupeltabelle WH E R E Stammdaten.Anschrift < AdressTyp('Seestrasse', 31, 8008, 'Zürich', 'CH'); 3-66

67 Z us a m m enfa s s ung B enutzerdefinierte Typen D is tinc t-typen a ls K opien vorha ndener Typen Strenge Typisierung (Typkompatibilität über Namensäquivalenz) S trukturierte Typen a ls " a bs tra kte O bjekttypen" Einbettung vs. Referenzierung (Kopier- vs. Referenzsemantik) Kapselung (Implizite Observer- und Mutator-Methoden für alle Attribute) Aggregationshierarchien (Strukturierte Typen zusammengesetzt aus anderen strukturierten Typen) Typhierarchien (Subtypbildung) Overloading und Overriding von Methoden plus dynamisches Binden Vergleichbarkeit und Ordnung 3-67

68 Ta bellen E inzig es K onzept (C onta iner), um D aten pers is tent s peic hern zu können Ta bellena rten Tupeltabelle = Tabelle, die einer Multimenge von Tupeln entspricht Objekttabelle = Tabelle, die einer Menge von Objekten (Instanzen eines strukturierten Typs) entspricht Typisierte Tabelle = Tabelle, dessen Typ ein benutzerdefnierter Typ ist B is S Q L-92: Nur Tupeltabellen, deren Spalten nur Werte von Basisdatentypen haben E rw eiterung en in S Q L:1999 & S Q L:2003 array-, multimengen-, tupel-, objekt- und referenzwertige Spalten Typisierte Tabellen: Typ einer Tabelle durch einen strukturierten Typ festgelegt Subtabellen (Tabellenhierarchien) 3-68

69 Typis ierte Ta bellen B a s ieren a uf einem s truk turierten Typ S T Z eilen reprä s entieren O bjekte des zug runde lieg enden s trukturierten Typs Ta bellenna na m e O ID -S pa lte S pa lten (C olum ns ) = A ttribute R OID A1... An O ID s s ind vom Typ R E F(S T) Z eilen (R ow s ) Objekte A ttributw erte 3-69

70 Tupelta bellen vs. typis ierte Ta bellen ita rbeiter (Tupelta( belle m it nic ht-atom a ren A ttributen) Name VARCHAR Anschrift <Strasse, PLZ, Ort> ROW(VARCHAR, INT, VARCHAR) 'Jim' ROW('Seeblick', 8008, atom a re tupelw 'Zürich') ertig e S pa lte S pa lte Wa g en (Typis ierte Ta belle) Hobbys Bewerbung Dienstwagen Foto VARCHAR(10) Array[3] Bewerbung(...) REF(Auto) BLOB Array('Kino', 'Sport') Bewerbung(...) X' X'...' m eng enw ertig e objektw ertig referenzw e 2' ertig e LO B - S pa lte S pa lte S pa lte S pa lte OID Hersteller Fotos Farbe PS Motor VARCHAR VARCHAR BLOB MULTISET VARCHAR INTEGER Object(...) X' ' O ID -S pa lte 'Aston Martin' s trukturierter Typ MULTISET(X'...', X'...') 'Silber' 324 Object(...) s trukturierter Wert (erhä lt m a n durc h A ufruf von D E R E F(O ID ))) Typis ierte Ta belle ba s iert a uf einem s trukturierten Typ Z eilen ha ben eine O ID und s ind da m it m ittels R eferenzs palten referenzierba r M ethoden können über die D ereferenzierung von O ID s a uf Z eilen a ufg erufen w erden 3-70

71 D efinition von typis ierten Ta bellen S ynta x: D efinition einer Wurzelta belle C R E ATE TA B LE Tabellenname O F StrukturierterTyp ( Referenzgenerierungsoption [Attributoptionsliste] ) A ttributoption: Attributname WITH O P TION S Optionsliste O ptionen: S C O P E TypisierteTabelle D E FAU LT Wert Integritätsbedingung 3-71

72 R eferenzg enerierung Legt OID-Attribut und die Art der OID-Generierung fest (letzteres ist durch den zugrunde liegenden Referenztyp bestimmt) Muss für jede Wurzeltabelle angegeben werden Darf nicht bei Subtabellen angegeben werden Referenzgenerierungsoptionen R E F IS oid U S E R G E N E R ATE D OID-Generierung durch den Benutzer R E F IS oid S Y S TE M G E N E R ATE D OID-Generierung durch das System R E F IS oid D E R IV E D (Attributliste) OID aus vorhandenen Attributwerten eines Schlüssels funktional bestimmt 3-72

73 D efinition von typis ierten Ta bellen B eis piel C R E ATE TA B LE Personen O F PersonTyp ( R E F IS oid S Y S TE M G E N E R ATE D, Ehepartner WITH O P TIO N S S C O P E Personen, Kinder WITH O P TIO N S S C O P E Personen ); N ur Ins ta nzen einer typis ierten Ta belle können m ittels eines R e ferenza ttributs referenziert w erden! S C O P E -Klausel bestimmt die typisierte Tabelle, die referenziert wird A ufruf der M ethoden des zug runde lieg enden s trukturierten Typs : D E R E F (oid).m M ethode(pa ra m eter) 3-73

74 A nfra g e a n typis ierte Ta bellen B eis piel Was ist der Ergebnistyp der folgenden Anfrage? S E LE C T * FR O M Personen; Vielleich t S E T(PersonTy p)? Nein, sondern M U LTIS E T(R OW(R E F(PersonTyp), VA R C H A R (30), AdressTyp, R E F(PersonTyp), A R R AY [10] (R E F(PersonTyp))))! 3-74

75 E infüg en und Ä ndern in typis ierten Ta bellen B eis piel E rzeug en von Ta belleninha lten (im pliziter A ufruf des Pers ontyp- K ons truktors ): IN S E R T IN TO Personen VA LU E S ('Billy Bär', AdressTyp('Seefeldstrasse', 31, 8008, 'Zürich', 'CH'), (S E LE C T oid FR O M Personen p WH E R E p.name = 'Mama Bär'), NULL); B eleg en von R eferenzattributen: U P DATE Personen S E T Kinder[1] = (S E LE C T oid FR O M Personen p WH E R E p.name = 'Baby Bär') WH E R E Name = 'Billy Bär'; 3-75

76 S elektion a uf typis ierten Ta bellen B eis piel Z ug riff a uf ein A ttribut eines eing ebetteten s trukturierten Wertes erfolg t (a na log zum Tupelfeldzug riff) m ittels D ot- O perator: S E LE C T Anschrift.Ort FR O M Personen; Name, Z ug riff a uf ein A ttribut eines referenziertes s trukturierten Wertes erfolg t m ittels P feil-o perator (ents pric ht D ereferenzierung plus A ttributs elek tio n): S E LE C T Name, Ehepartner->Name FR O M Personen; 3-76

77 S ubta bellenbildung A ufba u von Ta bellenhiera rc hien S ubta bellendefinition m ittels U N D E R -K la us el Subtabelle hat genau eine direkte Supertabelle (keine direkte Mehrfachspezialisierung) Typ der Subtabelle muss ein direkter Subtyp des Typs der Supertabelle sein (Tiefe) Extension der Subtabelle muss immer eine Untermenge der (tiefen) Extension der Supertabelle sein Instanzen der Subtabelle sind auch Mitglieder der zugehörigen Supertabellen Subtabelle kann eigene Integritätsbedingungen defnieren S ynta x: S ynta x: C R E ATE TA B LE Tabellenname O F StrukturierterTyp U N D E R Supertabelle [(Attributoptionsliste)] 3-77

78 S ubta bellenbildung B eis piele C R E ATE TA B LE Mitarbeiter O F MitarbeiterTyp U N D E R Personen ( Vorgesetzter WITH O P TIO N S S C O P E Mitarbeiter, Projekte WITH O P TIO N S S C O P E Projekte ); Pers onen O F Pers ontyp OID Name Anschrift Ehepartner Kinder VARCHAR VARCHAR AdressTyp REF(PersonTyp ) M ita rbeiter O F M ita rbeitertyp UNDER REF(PersonTyp) ARRAY[10] C R E ATE TA B LE Manager O F ManagerTyp U N D E R Mitarbeiter; OID Name Anschrift Ehepartner Kinder PNr... Gehalt VARCHAR VARCHAR AdressTyp REF(PersonTyp ) REF(PersonTyp) ARRAY[10] INTEGER... Franken 3-78

79 Typ- vers us Ta bellenhiera rc hie C R E ATE TY P E PersonTyp Typ Typ C R E ATE TA B LE Spieler O F PersonTyp C R E ATE TA B LE Personen O F PersonTyp Supertyp Supertabelle C R E ATE TY P E MitarbeiterTyp U N D E R PersonTyp Typ Typ C R E ATE TA B LE Mitarbeiter O F MitarbeiterTyp U N D E R Personen C R E ATE TA B LE Angestellter O F MitarbeiterTyp 3-79

80 E infüg ung en und Lös c hung en in Ta bellenhiera rc hien IN S E R T a n S uperta bellen propa g iert und D E LE TE w irkt a uf S ub- und S uperta bellen Personen PersonTyp IN S E R T IN TO Personen(Name) VA LU E S ('Billy'); D E LE TE FR O M Personen WH E R E Name='Joe'; ('Billy',...) ('Joe',...) ('Jim',...) Mitarbeiter UNDER MitarbeiterTyp IN S E R T IN TO Mitarbeiter(Name) VA LU E S ('Joe'); IN S E R T IN TO Mitarbeiter(Name) VA LU E S ('Jim'); D E LE TE FR O M Mitarbeiter WH E R E Name='Jim'; ('Joe',...) ('Jim',...) 3-80

81 A nfra g en a n Ta bellenhiera rc hien S E LE C T * FR O M Personen; Z ug riff a uf tiefe E xtens ion einer S uperta belle liefert alle Personen, auch die Mitarbeiter S E LE C T * FR O M Mitarbeiter; Z ug riff a uf tiefe E xtens ion einer S ubta belle liefert alle Mitarbeiter mit den geerbten Personen-Attributen S E LE C T * FR O M Z ug riff a uf fla c he E xtens ion einer O N LY (Personen); S uperta belle liefert alle Personen, die keine speziellen Personen (z.b. Mitarbeiter) sind 3-81

82 D ereferenzierung und N avig ation D ereferenzierung m ittels D E R E F (liefert A ttributw erte des referenzierten Wertes ): S E LE C T D E R E F(Vorgesetzter) FR O M Mitarbeiter; D ereferenzierung (vo n R eferenza ttributw erten) über P feil- O perator: S E LE C T * FR O M Mitarbeiter WH E R E Vorgesetzter->Name = 'Billy'; D ereferenzierung m it a ns c hlies s endem K om ponentenzug riff: S E LE C T * FR O M Mitarbeiter WH E R E Vorgesetzter->Anschrift.PLZ = 65307; 3-82

83 Typinform ation und K onvers ion M ethoden w erden a uf dem s peziells ten, dekla rierten Typ a ufg erufen! E xplizite K onvers ion vom S ub- zum S upertyp: S E LE C T (D E R E F(oid) A S MitarbeiterTyp).Einkommen() FR O M Mitarbeiter; E xplizite K onvers ion vom S uper- zum S ubtyp: Zugrif auf a llg em einere Einkommensmethod e des Typs MitarbeiterTyp S E LE C T TR E AT(D E R E F(oid) A S ManagerTyp).Einkommen() FR O M Mitarbeiter WH E R E D E R E F(oid) IS O F (ManagerTyp); Zugrif auf s peziellere Einkommensmethod e des Typs ManagerTyp Sei t eine Instanz eines benutzerdefnierten Typs und T eine Menge von benutzerdefnierten Typen (inklusive all derer Subtypen), dann liefert das Typprädikat t IS O F (T) TR U E g.d.w. der speziellste Typ von t Element von T ist 3-83

84 S ubs tituierba rkeit Ins ta nz eines S ubtyps ka nn in jedem K ontext benutzt w erden, in dem eine Ins ta nz eines S upertyps nutzba r is t Eingabeargumente für Methoden, deren formale Parameter auf dem Supertyp defniert sind Rückgabewert einer Methode oder Funktion, für das der Supertyp als formaler Typ defniert wurde Zuweisungen zu Variablen oder Attributen des Supertyps B eis piel: Ta belle m it S pa lte, deren Typ ein s trukturierter Typ is t Stammdaten PersonTyp PersonTyp().Name('Joe')... MitarbeiterTyp().Name( Jim ).Gehalt(4000)... ManagerTyp().Name( Kim ).Gehalt(7000).Bonus( 2000)

85 O verloa ding, O verriding und dyna m is c hes B inden E ine M ethode ka nn m it einer g leic hna m ig en M ethode überla den w erden E ine M ethode ka nn eine g eerbte M ethode, die exa k t die g leic he S ig natur bes itzt, übers c hreiben Dynamisches Binden erfolgt zur Laufzeit ("dynamic dispatch") Bei identischer Methodensignatur wird die Methodenimplementierung entsprechend des dynamischen Typs ausgewählt B eis piel: Folgende Anfrage berechnet das Einkommen von Personen, wobei S Edie LE Callgemeine T C A S E Berechnungsfunktion WH E N D E R E F(oid) IS verwendet O F wird (ManagerTyp) TH E N (D E R E F(oid) A S MitarbeiterTyp).Einkommen E LS E D E R E F(oid).Einkommen E N D FR O M Mitarbeiter; 3-85

86 D efinition von typis ierten S ic hten Typis ierte S ic hten ba s ieren a na log zu typis ierten Ta bellen a uf einem s trukturierten Typen Wurzels ic ht = typis ierte S ic ht ohne U nder-k la us el benötigt Angabe der Referenzgenerierung S Y S TE M G E N E R ATE D nicht erlaubt U S E R G E N E R ATE D notwendig, falls Subsichten erzeugt werden sollen S ynta x: A ttributopti on: C R E ATE V IE W Sichtenname O F StrukturierterTyp ( Referenzgenerierungsoption [Attributoptionsliste] ) A S Anfrageausdruck [WITH C H E C K O P TIO N ] Attributname WITH O P TIO N S S C O P E TypisierteSicht 3-86

87 D efinition von typis ierten S ic hten (2) E ins c hrä nkung en für die S ic hta nfra g e darf nur eine Tabelle oder Sicht enthalten ist diese Tabelle bzw. Sicht selbst typisiert, beschränkt sich der Zugrif auf die fache Extension (ONLY) Verbundoperationen und Gruppierung sind nicht erlaubt Typis ierte S ic ht vers us Tupels ic ht Zeilen einer typisierten Sicht haben eine OID und sind somit referenzierbar Methoden sind auf Zeilen einer typisierten Sicht aufrufbar Typisierte Sicht kann Subsicht einer anderen typisierten Sicht sein Erweiterung der Supersicht 3-87

88 D efinition von Wurzels ic hten B eis piele C R E ATE V IE W GutBezahlteMitarbeiter O F MitarbeiterTyp (R E F IS oid U S E R G E N E R ATE D ) A S (S E LE C T * FR O M O N LY (Mitarbeiter) WH E R E Gehalt > Franken(10000)); C R E ATE V IE W GuteManager O F ManagerTyp (R E F IS oid U S E R G E N E R ATE D ) A S (S E LE C T * FR O M O N LY (Manager) WH E R E C A R D IN A LITY (Leitet) > 3); C R E ATE V IE W MehrsprachigePersonen O F PersonTyp (R E F IS oid U S E R G E N E R ATE D ) A S (S E LE C T * FR O M O N LY (Personen) WH E R E C A R D IN A LITY (Sprachkenntnisse) > 1); 3-88

89 S ubs ic htenbildung A ufba u von S ic htenhiera rc hien S ynta x: C R E ATE V IE W Sichtenname O F StrukturierterTyp U N D E R Supersicht [(Attributoptionsliste)] A S Anfrageausdruck [WITH C H E C K O P TIO N ] Subsicht hat genau eine direkte Supersicht (keine Mehrfachspezialisierung) Typ der Subsicht muss ein direkter Subtyp des Typs der Supersicht sein Extension der Subsicht ist immer eine Untermenge der Extension der Supersicht Erweiterte Supersichtanfrage = S E LE C T * FR O M Genauer: Subsicht erweitert die Extension der Supersicht OriginalSupersichtanfrage U N ION A LL C O R R E S P O N D IN G S E LE C T * FR O M Subsichtanfrage U N IO N A LL C O R R E S P ON D IN G vereinigt Sichten über die Supersichtattribute (Schnittmenge beider Sichten) 3-89

K a pitel 4. O bjektrelationa le D atenm odell- und S pra c herw eiterung en kom m erzieller D atenba nks ys tem e

K a pitel 4. O bjektrelationa le D atenm odell- und S pra c herw eiterung en kom m erzieller D atenba nks ys tem e K a pitel 4 O bjektrelationa le D atenm odell- und S pra c herw eiterung en kom m erzieller D atenba nks ys tem e IBM DB2 Universal Database, Version 8.2 Oracle10g IBM Informix Dynamic Server, Version

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Strukturierte Typen. Attributdefinition

Strukturierte Typen. Attributdefinition Optional: Optional: Nicht-optionales Optional: Optional: Bei Default: Strukturierte Typen Abstrakte Objekttypen mit Verhalten und eingekapselter Struktur Subtypbildung mittels UNDER-Klausel Instanziierung

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

G u t fü r m ic h e in L e b e n la n g. M a rin a D ie in g 1 8.0 6.0 9 S e ite 1

G u t fü r m ic h e in L e b e n la n g. M a rin a D ie in g 1 8.0 6.0 9 S e ite 1 G u t fü r m ic h e in L e b e n la n g. S e ite 1 - G iro k o n to - S p a re n - K re d it - K fw -S tu d ie n k re d it - S ta a tlic h e F ö rd e ru n g - V e rs ic h e ru n g e n S e ite 2 G iro k

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007. Name: Note:

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007. Name: Note: 1 Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007 Name: Note: Nr. Aufgaben Max. Punkte Erreichte Punkte 1 Grundlagen ~ 10% Vgl. Hinweis unten 2 Integrität, Procedures, Triggers, Sichten ~ 20%

Mehr

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene

Mehr

SQL: statische Integrität

SQL: statische Integrität SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

Mehr

Gesicherte Prozeduren

Gesicherte Prozeduren Gesicherte Prozeduren Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln zurückgeliefert.

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Vorlesung Dokumentation und Datenbanken Klausur

Vorlesung Dokumentation und Datenbanken Klausur Dr. Stefan Brass 5. Februar 2002 Institut für Informatik Universität Giessen Vorlesung Dokumentation und Datenbanken Klausur Name: Geburtsdatum: Geburtsort: (Diese Daten werden zur Ausstellung des Leistungsnachweises

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

2. Datenbank-Programmierung

2. Datenbank-Programmierung 2. Datenbank-Programmierung SQL ist eingeschränkt bezüglich der algorithmischen Mächtigkeit, z.b. Berechnung einer transitiven Hülle ist in Standard-SQL nicht möglich. Die Einschränkung ist von Bedeutung

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

3. Das Relationale Datenmodell

3. Das Relationale Datenmodell 3. Das Relationale Datenmodell Das Relationale Datenmodell geht zurück auf Codd (1970): E. F. Codd: A Relational Model of Data for Large Shared Data Banks. Comm. of the ACM 13(6): 377-387(1970) DBMS wie

Mehr

MEX-Editor Möglichkeiten für das Outsourcing von Leistungen beim Einsatz der Software

MEX-Editor Möglichkeiten für das Outsourcing von Leistungen beim Einsatz der Software MEX-Editor Möglichkeiten für das Outsourcing von Leistungen beim Einsatz der Software 1 ArchivInForm Dienstleister für Archive G rü n d u n g 1 9 9 9 E in tra g u n g in s H a n d e ls re g is te r a ls

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

3. Stored Procedures und PL/SQL

3. Stored Procedures und PL/SQL 3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Schlüssel bei temporalen Daten im relationalen Modell

Schlüssel bei temporalen Daten im relationalen Modell Schlüssel bei temporalen Daten im relationalen Modell Gesine Mühle > Präsentation > Bilder zum Inhalt zurück weiter 322 Schlüssel im relationalen Modell Schlüssel bei temporalen Daten im relationalen Modell

Mehr

Ein Ausflug zu ACCESS

Ein Ausflug zu ACCESS Ein Ausflug zu ACCESS Die folgenden Folien zeigen beispielhaft, wie man sein DB- Wissen auf ACCESS übertragen kann betrachtet wird ACCESS 2002, da gerade im Bereich der Nutzung von SQL hier einiges nachgearbeitet

Mehr

Kurzanleitung. Toolbox. T_xls_Import

Kurzanleitung. Toolbox. T_xls_Import Kurzanleitung Toolbox T_xls_Import März 2007 UP GmbH Anleitung_T_xls_Import_1-0-5.doc Seite 1 Toolbox T_xls_Import Inhaltsverzeichnis Einleitung...2 Software Installation...2 Software Starten...3 Das Excel-Format...4

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Programmieren Tutorium

Programmieren Tutorium Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,

Mehr

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012 Access 2010 Grundlagen für Anwender inkl. zusätzlichem Übungsanhang ACC2010-UA 3 Access 2010 - Grundlagen für Anwender 3 Daten in Formularen bearbeiten

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

How to do? Projekte - Zeiterfassung

How to do? Projekte - Zeiterfassung How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Entity-Relationship-Modell. Ein Studierender kann (oder muss) mehrere Vorlesungen hören. Eine Vorlesung wird i.a. von mehrerer Studierenden gehört.

Entity-Relationship-Modell. Ein Studierender kann (oder muss) mehrere Vorlesungen hören. Eine Vorlesung wird i.a. von mehrerer Studierenden gehört. Beziehungen Ein Studierender kann (oder muss) mehrere Vorlesungen hören. Eine Vorlesung wird i.a. von mehrerer Studierenden gehört. Eine Vorlesung wird von genau einem Dozenten gelesen. Ein Dozent kann

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Objektrelationale Erweiterungen in DB2

Objektrelationale Erweiterungen in DB2 Strukturierte BLOB CLOB Nicht Objektrelationale Erweiterungen in DB2 l Neue Basisdatentypen l Benutzerdefinierte Typen Distinct-Typen Typen (mit Typvererbung) l Referenztyp l Typisierte Tabellen (mit Subtabellenbildung)

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

3"PRÄSENTATION ERSTELLEN

3PRÄSENTATION ERSTELLEN Präsentation erstellen PowerPoint effektiv 3"PRÄSENTATION ERSTELLEN 3.1." Leere Präsentation erstellen Beim Öffnen von PowerPoint erscheint eine leere Präsentation, von der Ihnen die leere Titelseite angezeigt

Mehr

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN CHRISTIAN HARTFELDT. Zweiter Mittelwertsatz Der Mittelwertsatz Satz VI.3.4) lässt sich verallgemeinern zu Satz.. Seien f, g : [a, b] R auf [a,

Mehr

Übung 9 - Lösungsvorschlag

Übung 9 - Lösungsvorschlag Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Kapitalerhöhung - Verbuchung

Kapitalerhöhung - Verbuchung Kapitalerhöhung - Verbuchung Beschreibung Eine Kapitalerhöhung ist eine Erhöhung des Aktienkapitals einer Aktiengesellschaft durch Emission von en Aktien. Es gibt unterschiedliche Formen von Kapitalerhöhung.

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Erstellen eines Formulars

Erstellen eines Formulars Seite 1 von 5 Word > Erstellen bestimmter Dokumente > Formen Erstellen von Formularen, die in Word ausgefüllt werden können Basierend auf einer Vorlage können Sie dieser Inhaltssteuerelemente und Hinweistext

Mehr

Namenregister. Die f e t t gedruckten Zahlen bezeichnen Originalartikel.

Namenregister. Die f e t t gedruckten Zahlen bezeichnen Originalartikel. Namenregister. Die f e t t gedruckten Zahlen bezeichnen Originalartikel. A. A b a d j i e f f 438, 441. A b ra h a m 95, 360. A d l e r 426. A e b ly 417. A g r o n ik 151, 242. A i c h e n w a l d 145.

Mehr

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung Informa=onssysteme Sommersemester 2015 6. Sichten, Integrität und Zugriffskontrolle Vorlesung "Informa=onssysteme" Sommersemester 2015 Überblick Sichten Integritätsbedingungen Zugriffsrechte SQL- Schema und SQL- Katalog Das Informa=onsschema

Mehr

1 3N a rbenhernien Patientena bh 0 1 ng ig e Fa ktoren

1 3N a rbenhernien Patientena bh 0 1 ng ig e Fa ktoren 1 3N a rbenhernien Patientena bh 0 1 ng ig e Fa ktoren A o. U n iv. P ro f. D r. C h ris to p h P ro fa n te r U n iv e rs it 0 1 ts k lin ik fø¹ r V is c e ra l-, T ra n s p la n ta tio n s - u n d T

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

1 F r e q u e n t l y A s k e d Q u e s t i o n s Was ist der Global Partner Event Calendar (GPEC)? D e r g l o b a l e V e r a n s t a l t u n g s k a l e n d e r f ü r P a r t n e r i s t e i n w i c

Mehr

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum 4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.

Mehr

White Paper. Konfiguration und Verwendung des Auditlogs. 2012 Winter Release

White Paper. Konfiguration und Verwendung des Auditlogs. 2012 Winter Release White Paper Konfiguration und Verwendung des Auditlogs 2012 Winter Release Copyright Fabasoft R&D GmbH, A-4020 Linz, 2011. Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

Kurzeinführung Excel2App. Version 1.0.0

Kurzeinführung Excel2App. Version 1.0.0 Kurzeinführung Excel2App Version 1.0.0 Inhalt Einleitung Das Ausgangs-Excel Excel-Datei hochladen Excel-Datei konvertieren und importieren Ergebnis des Imports Spalten einfügen Fehleranalyse Import rückgängig

Mehr

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Aufgabe 1: Pareto mit SV-Semantik Suchmaschinen Pareto Definition: x < P

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Eine Firma stellt USB-Sticks her. Sie werden in der Fabrik ungeprüft in Packungen zu je 20 Stück verpackt und an Händler ausgeliefert. 1 Ein Händler

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL Datenmodifikation mit SQL Folie 45 SQL - Datenmodifikation Einfügen INSERT INTO Relation [(Attribut, Attribut,...)] VALUES (Wert, Wert,...) INSERT INTO Relation [(Attribut, Attribut,...)] SFW-Anfrage Ändern

Mehr

Österreichische Trachtenjugend

Österreichische Trachtenjugend Vereinsdatenbank der österreichischen Trachtenjugend Diese Unterlage sollte eine Unterstützung für den ersten Einstieg sein. Erklärt wird die Bearbeitung der Vereinsdaten und der Daten der einzelnen Mitglieder.

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig

Mehr

Hilfedatei der Oden$-Börse Stand Juni 2014

Hilfedatei der Oden$-Börse Stand Juni 2014 Hilfedatei der Oden$-Börse Stand Juni 2014 Inhalt 1. Einleitung... 2 2. Die Anmeldung... 2 2.1 Die Erstregistrierung... 3 2.2 Die Mitgliedsnummer anfordern... 4 3. Die Funktionen für Nutzer... 5 3.1 Arbeiten

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr