Vorlesung Datenbanken

Größe: px
Ab Seite anzeigen:

Download "Vorlesung Datenbanken"

Transkript

1 Vorlesung Kapitel 7 Objektbasierte Institut für Informatik

2 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 2 Übersicht Motivation Nachteile des Relationalen Datenmodells Objektorientierte Eigenschaften objektorientierter Datenbankmanagementsysteme (OODBMS) ODMG-Standardisierung twurf Objektrelationale geschachtelte Relationen und Normalisierung komplexe Typen und Werte mengenwertige Attribute prozedurale Elemente Referenzen Vergleich objektrelationaler und objektorientierter

3 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 3 Neue Anwendungsgebiete traditionelle Datenbankanwendungen wenige, einfache Datentypen erste Normalform kurze Transaktionen neue Anwendungsgebiete Computer Aided Design, CAD Computer Integrated Manufacturing, CIM Computer-Aided Software Engineering, CASE Geo-Informationssysteme, GIS Eigenschaften neuer Anwendungsgebiete komplexe Objekte und Kapselung der Daten neue Zugriffsstrukturen und Algorithmen zur Anfragebearbeitung lange Transaktionen navigierender Zugriff auf die Daten

4 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 4 Probleme bei der Datenmodellierung keine Möglichkeit zusammengesetzte Attribute darzustellen Beispiel: Name = Anrede + Vorname + Nachname keine Gleichbehandlung von mengen- und einwertigen Attributen Beispiel: Name = Anrede + (Titel) + Vorname + Nachname Komponenten-Beziehungen erfordert mehrere Relationen Beispiel: Polygon besteht aus Punkten einheitliche Behandlung von Beziehungen und Entitäten problematische Modellierung von Spezialisierung keine Kapselung von Struktur und Verhalten

5 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 5 Übersicht Motivation Nachteile des Relationalen Datenmodells Objektorientierte Eigenschaften objektorientierter Datenbankmanagementsysteme (OODBMS) ODMG-Standardisierung twurf Objektrelationale geschachtelte Relationen und Normalisierung komplexe Typen und Werte mengenwertige Attribute prozedurale Elemente Referenzen Vergleich objektrelationaler und objektorientierter

6 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 6 Ebenen der Objektorientierung Objektorientierung als Entwurfsparadigma aber Abbildung auf relationales Modell (ähnlich wie bei E-R Modell) Objektorientierung auch in der Realisierung Objektrelationale, Erweiterung relationaler : komplexe Typen funktionale Bestandteile Vererbung Objektorientierte, Verbindung von objektorientierten Programmiersprachen und Datenbanksystemen objektorientertes Datenmodell persistente Objekte, Mengen von Objekten Datenbankeigenschaften

7 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 7 Objekte Kennzeichen von Objekten Identität durch das System erzeugt eindeutig für jedes Objekt invariant unabhängig von Attributwerten Zustand Werte der Attribute kein direkter Zugriff auf die Attribute (Kapselung) Operationen modifizieren die Attributwerte - Verhalten Menge von Operationen (auch Methoden oder Services), die auf Zustand operieren Aktivierung durch Nachrichten an zugehörige Objekte Antwort mit einem Objekt oder einem Wert

8 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 8 Persistente Programmiersprachen Objekte existieren unabhängig von Programmen Persistenz der Objekte ist transparent für den Benutzer Objekte können im Hauptspeicher verändert werden ohne explizites Laden oder Speichern ohne Benutzung einer DML selten weitere Datenbankeigenschaften, wie z. B. Anfrageoptimierung nicht-prozedurale DML's Transaktionen Integritätsbedingungen Programmierfehler können zur Zerstörung von Daten führen

9 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 9 Persistenz von Objekten - Ansätze Checkpoint Hauptspeicherinhalt bei einem Checkpoint sichern Serialisierung gesamte Klasse als persistent kennzeichnen, z.b. durch Ableitung von einer entsprechenden Oberklasse Objekte bei der Erzeugung als persistent kennzeichnen Objekte explizit durch Nachricht als persistent kennzeichnen Objekte implizit durch Erreichbarkeit von einem root-objekt persistent

10 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 10 Persistenz von Objektidentifikatoren objektorientierte Programmmiersprache Objektidentifikator ist transienter Zeiger auf das Objekt objektorientiertes DBMS Objektidentifikator ist persistenter Zeiger auf das Objekt verweist in die Datenbank zwischen verschiedenen Aufrufen eines Programms gültig zwischen Programmaufrufen verschiedener Programme gültig Probleme bei Reorganisation der Datenbank

11 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 11 Speicherung und Zugriff auf persistente Objekte Benennung von Objekten vergleichbar Benennung von Dateien nur für einige ausgewählte Objekte möglich, z.b. für Menge aller Objekte einer Klasse (Class Extent, Ausprägung einer Klasse) bestimmte ausgezeichnete Mengen von Objekten bestimmte Objekte Verarbeitung von Mengen von Objekten Mengen von Objekten werden als Objekte von Collection Klassen behandelt Operationen, um über ein Collection Objekt zu iterieren Ausprägung einer Klasse auch als Collection Objekt darstellen

12 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 12 Object Data Management Group-Standard Object Data Management Group (ODMG) Zusammenschluss von Herstellern objektorientierter DBMS Ziel: Definition eines Standards für Portabilität und Interoperabilität Endpunkt der Entwicklung ODMG 3.0 ca. 90% aller OODBMS berufen sich auf diesen Standard ODMG 3.0 besteht aus Vorschlägen für: Object Model Object Definition Language (ODL) Object Manipulation Language (OML) Object Query Language (OQL) Einbindung in objektorientierte Programmiersprachen C++ Java Smalltalk für jede Spracheinbindung existiert eine ODL, OML und OQL

13 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 13 Literale und Objekte Literale haben keinen Objektidentifikator atomar: Basis-Datentypen (z.b. long, float, char, string) Collection: Menge von Objekten (set<t>, bag<t>,...) strukturiert: entspricht Tupel (z.b. (date, time)) auch benutzerdefiniert durch struct Objekte: haben Objektidentifikator können benannt werden haben eine Lebensdauer (Lifetime): transient / persistent Struktur: Collection-Objekte strukturierte Objekte

14 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 14 Einführung ODL unterstützt das ODMG-Modell Definitionssprache zur Schemadefinition unabhängig von Programmiersprache kompatibel zur IDL (Interface Definition Language) der OMG erweiterbar für zusätzliche Funktionalität und physische Strukturen

15 Person - name: Name... + short age() Student - class: string + void assign_advisor( lname: string, fname: string ) + void register(short cno) registered_in 3..* Vorlesung, SS 2008, Kapitel 7: Objektbasierte advises 1 0..* 1..* 15 Faculty - office: string... + void give_raise(raise: float ) + void promote(new_rank: string ) works_in 1 chair 0..* Course - cname: string... + void register_student( ssn: string) 0..* offers 1 1 Department - dname: string

16 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 16 OO-Entwurf -> OO-Schema Klasse durch entsprechende Klassendefinition repräsentieren Menge der Instanzen der Klasse definieren (extent <KlassenName>) falls vorhanden Schlüssel definieren (key <Attributliste>) Assoziationen und Aggregationen ohne beschreibende Attribute durch relationship abbilden Art der Beziehung berücksichtigen Assoziationen und Aggregationen mit beschreibenden Attributen auf separate Klasse abbilden Spezialisierung abbilden auf Vererbung von Verhalten und Zustand

17 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 17 ODL - Beispiel... class Person (extent persons key ssn) { attribute struct Pname {string fname, string mname, string lname} name; attribute string ssn; attribute date birthdate; attribute struct Address {short no, string street, short aptno, string city, string state, short zip} address; short age() }

18 Vorlesung, SS 2008, Kapitel 7: Objektbasierte ODL - Beispiel... class Faculty extends Person (extent faculty) { attribute string rank; attribute float salary; attribute string office; attribute string phone; relationship Department works_in inverse Department::has_faculty; relationship set<student> advises inverse Student::advisor; void give_raise(in float raise); void promote(in string new_rank); };

19 Vorlesung, SS 2008, Kapitel 7: Objektbasierte ODL - Beispiel... class Student extends Person(extent students) { attribute string class; relationship Faculty advisor inverse Faculty::advises; relationship set<course> registered_in inverse Course::registered_students; void assign_advisor (in string lname, in string fname) raises (faculty_not_valid); void register(in short cno) raises (course_not_valid); }

20 Vorlesung, SS 2008, Kapitel 7: Objektbasierte ODL - Beispiel... class Department (extent departments key dname) { attribute string dname; attribute string dphone; attribute string college; attribute Faculty chair; relationship set<faculty> has_faculty inverse Faculty::works_in; relationship set<course> offers inverse Course::offered_by; };

21 Vorlesung, SS 2008, Kapitel 7: Objektbasierte ODL - Beispiel class Course (extent courses key cno) { attribute string cname; attribute string cno; attribute string description; relationship Department offered_by inverse Department::offers; relationship set<student> registered_students inverse Student::registered_in; void register_student(in string ssn) raises(student_not_valid, course_full); };

22 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 22 Java - ODL Java und Datenbank besitzen einheitliches Typsystem Berücksichtigung der automatischen Speicherverwaltung von Java Persistenz durch Erreichbarkeit von Root-Objekt Java-ODL liefert die Beschreibung des Schemas als eine Menge von Java-Klassen unter Verwendung der Java-Syntax Konfigurationsdatei (property file) beschreibt weitere Aspekte einer Klasse (z.b. bestehende Beziehungen)

23 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 23 Beispiel: Java - ODL class Department { DSet offers; } class Course { Department offered_by; } Einträge in der dazugehörigen Konfigurationsdatei: ;Eigenschaften für die Klasse Department class Department field offers refersto=course inverse=offered_by

24 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 24 Java - OML - Klassendefinitionen Klasse Department soll persistent machen Objekt der Klasse als Wurzelobjekt einsetzen Eintrag in Konfigurationsdatei (property file) erforderlich: class Department persistent = capable Zusätzlich: Persistenz im Quellcode vermerken: import com.xxx.odmg.*; // xxx=hersteller public class Department{ String dname; String dphone; String college; Faculty chair; public Department(String name, String phone, String coll, Faculty ch) { dname = name; dphone = phone; college = coll; chair = ch; } }

25 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 25 Java - OML - Programmbeispiel Erzeugen eines Objekts der Klasse Department, sowie Speichern und Binden an einen Namen in der Datenbank import org.odmg.*; public class Populate { static Implementation odmg = new com.xxx.odmg.implementation(); // einzige herstellerabhängige Programmzeile // (xxx=hersteller) Populate(Database db) throws ODMGException { Transaction txn = odmg.newtransaction(); txn.begin (); Department Dep = new Department("Computer Science",...); db.bind(dep, "CS") txn.commit(); }

26 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 26 Java - OML Programmrahmen // Die main-methode public static void main(string[] args) throws ODMGException { Database dbase = odmg.newdatabase(); dbase.open(args[0], Database.OPEN_READ_WRITE); // öffnet DB (DB-Name aus Kommandozeile lesen) // mit Zugangs-Mode Populate app = new Populate(dbase); dbase.close(); } }

27 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 27 OQL - Überblick ähnlich zu SQL eigenständige, interaktive, deklarative und programmiersprachenunabhängige Datenbanksprache unterstützt select-from-where-struktur keine Update Befehle Anfragen auf Mengen von Objekten (Extensionen), Strukturen und Listen Operatoren können beliebig zusammengesetzt werden, solange sie das Typsystem beachten unterstützt Ad-Hoc Anfragen Einbettung in C++, Smalltalk und Java möglich, ohne Wechsel des Paradigmas

28 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 28 OQL Grundbausteine... Standardoperationen arithmetische Ausdrücke ( z.b. +, -, /, *,...) Vergleichsausdrücke (z.b. <, <=,!=, like) Boolesche Ausdrücke (z.b. and, or, andthen, orelse) Aggregatfunktionen (z.b. sum, avg, count, exist)... Basisausdrücke benanntes Objekt CS, Ergebnis: Objekt CS der Klasse Department students, Ergebnis ist ein set<student> atomare Literale 10, 'abcd' Iteratorvariable aus dem from-teil der Anfrage

29 Vorlesung, SS 2008, Kapitel 7: Objektbasierte OQL Grundbausteine Konstruktorausdrücke für Objekte, Strukturen, Collections Person(name: "Hans", gebdatum: " "); Set(1, 2, 3, 4); Ergebnis: temporäres Objekt Zugriffsausdrücke "." bzw " " Hans.name identisch mit Hans name Hans.getName() identisch mit Hans getname()

30 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 30 ODMG - OQL - einfache Anfragen Finde die Namen der Departments im 'Engineering' college select d.dname from d in departments where d.college = 'Engineering' departments ist der Name der Menge aller Objekte, die zur Klasse Department gehören d ist ein Iterator, der über eine Menge von Objekten (set<department>) läuft. Äquivalent sind: d in departments departments d departments as d Ergebnis der Anfrage ist ein Collectionobjekt der Klasse bag<string> (set<string> bei select distinct)

31 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 31 ODMG - OQL - Pfadausdrücke Bestimme die Namen aller Mitarbeiter im Computer Science Department: select f.name from f in faculty where f.works_in.dname = 'Computer Science' Objekt für das Computer Science Department sei benannt mit CS: select f.name from f in CS.has_faculty Pfadausdrücke können aus Attributen, Beziehungen und Operationen bestehen

32 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 32 ODMG - OQL - Literale als Ergbnisse finde Vor- und Nachnamen aller Studierenden, die den Kurs 'Databases' belegen; Ausgabe aufsteigend nach Nach- und absteigend nach Vornamen: select struct(last_name: s.name.lname, first_name: s.name.fname) from s in students, c in courses where 'Databases' = c.cname and s in c.registered_students order by last_name asc, first_name desc Ergebnistyp der Anfrage: set<struct{last_name: string, first_name: string}> neben in sind auch for all und exists definiert: for all v in c: b exists v in c: b

33 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 33 ODMG - OQL - group by Bestimme zu jedem Department das Durchschnittsgehalt der Mitarbeiter, falls dieses übersteigt: select department, avg_salary: avg (select x.f.salary from partition x) from f in faculty group by department: f.works_in.dname having avg (select x.f.salary from partition x) > Partitionierung liefert hier Objekte der Art struct{string, bag<struct{f: faculty}>} partition bezeichnet den bag<struct{f: faculty}>

34 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 34 Java - OQL Anfragen beziehen sich auf Collections von Objekten Anfragen auf Objekte vom Typ DCollection bzw. auf davon abgeleitete Schnittstellen DSet, DBag, DArray, DList und DMap Möglichkeiten, um OQL-Anfragen auszuführen: Aufruf der query()-operation des Collectionobjekts (ggf. auch select_element(); select(); exists_element()), für das die Anfrage ausgewertet werden soll Erzeugen, Binden, Ausführen eines OQL-Query-Objekts

35 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 35 Java - OQL Collection Query Methode Interface DCollection hat Anfragemethode mit Signatur: DCollection query(string cond) throws QueryInvalidException in cond Zugriff auf das aktuelle Element der Collection über this sehr einfach keine Angabe von Parametern und keine Anfragen über das kartesische Produkt mehrerer Collections Beispiel: DCollection departments; DCollection cs; cs = departments.query ("this.dname='computer Science'");

36 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 36 Java - OQL OQLQuery Interface OQL-Anfrage über ein OQLQuery-Objekt: Erzeugen eines neuen OQL-Objekts Aufruf der create()-operation des OQLQuery-Objekts Anfrage wird als String (mit Parametern) übergeben Parameterobjekte in der OQL-Anfrage durch "$i" gekennzeichnet n Parameter erfordern n aufeinander folgende Aufrufe der bind()- Methode Ausführung der Anfrage über Aufruf der execute()-operation Schnittstelle OQLQuery liefert als Ergebnis Instanz der Klasse Object (meist Umwandlung in erwarteten Rückgabetyp erforderlich)

37 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 37 Java - OQL Beispiel Beispiel zum OQLQuery Interface: static Implementation odmg = new com.xxx.odmg.implementation(); DCollection cs; String name; OQLQuery query = odmg.newoqlquery(); query.create('select d from $1 d where d.dname= $2'); query.bind('departments'); name = new String('Computer Science'); query.bind(name); cs = (DCollection) query.execute();

38 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 38 Vorteile von OODBMS erweiterte Möglichkeiten zur Datenmodellierung Erweiterbarkeit kompatible Typsysteme für DBMS und Programmiersprache ausdrucksstarke Anfragesprache lange Transaktionen sehr gute Performance bei navigierendem Zugriff

39 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 39 Nachteile von OODBMS kein für alle OODBMS gültiges Datenmodell nicht so weit entwickelt kein generell beachteter Standard Anfrageoptimierung verletzt Kapselung keine Sichten wenig ausgeprägte Datenschutzmechanismen

40 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 40 Übersicht Motivation Nachteile des Relationalen Datenmodells Objektorientierte Eigenschaften objektorientierter Datenbankmanagementsysteme (OODBMS) ODMG-Standardisierung twurf Objektrelationale geschachtelte Relationen und Normalisierung komplexe Typen und Werte mengenwertige Attribute prozedurale Elemente Referenzen Vergleich objektrelationaler und objektorientierter

41 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 41 Eigenschaften objektrelationaler Datenmodelle Erweiterung des relationalen Modells benutzerdefinierte Typen für Relationen und Attribute mengenwertige Attributtypen komplexe Attributtypen Prozeduren, Funktionen, Methoden Vererbung grundsätzliche Eigenschaften bleiben erhalten operieren auf Relationen deklarativer Zugriff auf Daten mit SQL Kompatibilität mit bekannten relationalen Sprachen

42 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 42 Geschachtelte Relationen Beispiel: Dokumentenverwaltungssystem Buch besteht aus Titel Menge von Autoren Verlag, bestehend aus Name und Ort Liste von Schlüsselworten Relation books (nicht 1NF) title authors publisher keywords Database Systems Database Systems Concepts {Conolly, Begg} name Addison -Wesley branch Harlow {Silberschatz, Korth, Sudarshan} McGraw-Hill Boston {implementation, design} {implementation, models}

43 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 43 Version der Relation in 1NF (flat-books) title author name branch keyword Database Systems Conolly Addison-Wesley Harlow implementation Database Systems Begg Addison-Wesley Harlow implementation Database Systems Conolly Addison-Wesley Harlow design Database Systems Begg Addison-Wesley Harlow design Database Systems C. Silberschatz McGraw-Hill Boston implementation Database Systems Korth McGraw-Hill Boston implementation Database Systems Sudarshan McGraw-Hill Boston implementation Database Systems Silberschatz McGraw-Hill Boston models Database Systems Korth McGraw-Hill Boston models Database Systems Sudarshan McGraw-Hill Boston models

44 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 44 4NF Zerlegung der Relation Verbesserung des 1NF Schemas durch mehrwertige Abhängigkeiten und Zerlegung in 4NF mehrwertige Abhängigkeiten title author title keywords title name branch Zerlegung in 4NF: (title, author) (title, keyword) (title, name, branch)

45 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 45 Ausprägung der 4NF Zerlegung authors books4 title author title keyword Database Systems Conolly Database Systems implementation Database Systems Begg Database Systems design Database Systems Concepts Silberschatz Database Systems Concepts implementation Database Systems Concepts Korth Database Systems Concepts models Database Systems Concepts Sudarshan keywords title Name branch Database Systems Addison-Wesley Harlow Database Systems Concepts McGraw-Hill Boston

46 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 46 Probleme bei der 1NF bzw. 4NF Zerlegung 4NF Zerlegung keine Redundanz Benutzer müssen zur Rekonstruktion der Objekte Joins in Anfragen verwenden 1NF Zerlegung Joins sind nicht erforderlich keine Korrespondenz zwischen Buch und einem Tupel (bei geschachtelten Darstellung gegeben) viel Redundanz geschachtelte Relationen erlauben ggf. eine natürlichere Modellierung komplexer Objekte

47 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 47 Komplexe Typen und SQL:2003 Erweiterung von SQL für komplexe Typen mengenwertige Attribute große Werte strukturierte Typen Spezialisierung / Vererbung Objektidentität und Referenzen Funktionen, Prozeduren und Methoden Kontrollstrukturen Orientierung an SQL:2003 keine vollständigen Implementationen verfügbar in den meisten DBMS sind einige Eigenschaften verfügbar (Handbuch lesen!) einige Eigenschaften auf den Folien nicht Bestandteil von SQL:2003

48 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 48 Mengentypen... Arrays create table Document ( authors varchar(30) array[10] ) Zugriff auf Arryelemente über Index: authors[2] Obergrenze für die Anzahl der Elemente wird bei Deklaration festgelegt Multimengen create table Document ( keyword_list varchar(40) multiset ) ungeordnet, homogen, Duplikate sind erlaubt

49 Vorlesung, SS 2008, Kapitel 7: Objektbasierte Mengentypen... Operationen für Multimengen SET entfernt Duplikate CARDINALITY Anzahl Elemente ELEMENT liefert das Element eines einelementigen Multisets UNNEST Verwendung eines Multisets als Relation MULTISET [UNION INTERSECT EXCEPT] - Mengenoperationen Aggregatfunktionen für Multimengen COLLECT erzeugt Multiset aus Multimenge bei group by FUSION erzeugt Multiset als Vereinigung von Multiset Attributwerten INTERSECTION erzeugt Multiset als Schnitt von Multiset Attributwerten Prädikate für Multimengen SUBMULTISET - Teilmengenbeziehung IS A SET bzw. IS NOT A SET Test auf Duplikate

50 Vorlesung, SS 2008, Kapitel 7: Objektbasierte Mengentypen Beispiel: COLLECT und FUSION erzeuge Multiset der Beträge der Kredite bei der Bank select fusion(amountmultiset) from (select branch_name, collect(amount) from loan group by branch_name) as result(branch_name, amountmultiset)

51 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 51 Mengentypen Beispiele: unnest finde alle Bücher in deren Schlüsselwortliste 'database' vorkommt: select title from books where 'database' in (unnest(keyword_set)) erstelle eine Relation, die für jedes Buch und jeden Autor des Buchs Tupel der Form (Titel, Autorenname) enthält: select B.title, A from books as B, unnest (B.author-array) as A

52 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 52 Large Object Types LOBs (Large Objects): Speicherung großer, unstrukturierter Daten (Fotos, Videos, Audiodateien,...) in der Datenbank BLOB (Binary Large Object, Binärdaten) image blob(10m) movie blob(2g) CLOB (Character Large Object, Zeichenketten) book-review clob(10k) Einschränkungen für LOBs keine Vergleichsoperationen (Ausnahme: =, <>, like für CLOB) nicht in group by oder order by benutzbar nur sinnvoll in externen Anwendungen wird durch ODBC/JDBC und proprietäre Schnittstellen unterstützt dann ähnlich zur Dateiverarbeitung

53 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 53 Strukturierte Typen... Strukturierte Typen in SQL create type Publisher as (name varchar(20), branch varchar(20)); create type Book as (title varchar(20), author_array varchar(20) array [10], pub_date date, publisher Publisher, keyword_set varchar(20) multiset) strukturierte Typen zur Tabellendefinition: create table books of Book

54 Vorlesung, SS 2008, Kapitel 7: Objektbasierte Strukturierte Typen strukturierte Typen ermöglichen unmittelbare Repräsentation zusammengesetzter Attribute Mengentypen ermöglichen unmittelbare Repräsentation von mehrwertigen Attributen unbenannte Zeilentypen sind auch zulässig: create type Book as (title varchar(20), author_array varchar(20) array [10], pub_date date, publisher row (name varchar(20), branch varchar(20)), keyword_set varchar(20) multiset)

55 Vorlesung, SS 2008, Kapitel 7: Objektbasierte Strukturierte Typen Typ einer Tabelle muss nicht explizit definiert werden: create table books (title varchar(20), author_array varchar(20) array [10], pub_date publisher keyword_set date, Publisher, varchar(20) multiset)

56 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 56 Anfragen mit strukturierten Typen Finde den Titel und den Namen des Verlags zu jedem Buch: select title, publisher.name from books Punktnotation für Zugriff auf das zusammengesetzte Attribut vom strukturierten Typ Publisher

57 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 57 Entnestung in SQL Transformation einer geschachtelten Relation in eine Relation mit weniger mengenwertigen Attributen: Beispiel: select title, A as author, publisher.name as pub_name, publisher.branch as pub_branch, K as keyword from books as B, unnest(b.author_array) as A, unnest(b.keyword_list) as K

58 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 58 Erzeugung komplexer Werte / Objekte... Werte komplexer Typen über Konstruktoren erzeugen: Konstruktorfunktion für den Typ Publisher: create constructor method Publisher (n varchar(20), b varchar(20)) returns Publisher begin set self.name=n; set self.branch=b; end strukturierte Typen haben Standardkonstruktor ohne Argumente

59 Vorlesung, SS 2008, Kapitel 7: Objektbasierte Erzeugung komplexer Werte / Objekte Werte eines Zeilentyps können unmittelbar in Tupelnotation angegeben werden: Typ: row(name varchar(20), branch varchar(20)) Wert: row('springer','berlin ) Arrays array ['Silberschatz','Korth','Sudarshan'] Multimengen multiset[v 1, v 2,, v n ] Einfügen in die books Relation insert into books values ('Compilers', array['smith', 'Jones'], new Publisher('McGraw-Hill', 'New York'), multiset['parsing', 'analysis'])

60 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 60 Vererbung von Typen Basistyp create type Person (name varchar(20), address varchar(20)) instantiable not final; Untertypen create type Student under Person (degree varchar(20), department varchar(20)) instantiable final; create type Teacher under Person (salary integer, department varchar(20)) instantiable final; instantiable: Instanzen können gebildet werden final: keine Ableitung weiterer Typen möglich

61 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 61 Vererbung von Tabellen Sichtweise des ER-Entwurfs Tupel kann in mehreren Tabellen gleichzeitig enthalten sein Definition der people Tabelle: create table people of Person students und teachers als Untertabellen von people: create table students of Student under people create table teachers of Teacher under people jedes Tupel einer Untertabelle ist implizit in den zugehörigen Obertabellen vorhanden mehrfache Vererbung ist denkbar (in SQL:2003 nicht möglich): create table teaching_assistants of Teaching Assistant under students, teachers

62 Vorlesung, SS 2008, Kapitel 7: Objektbasierte Vererbung von Tabellen Konsistenzkriterien von SQL:2003 (1) jedes Tupel aus einer Obertabelle entspricht höchstens einem Tupel in jeder abgeleiteten Tabelle (2) alle Tupel in abgeleiteten Tabellen müssen verschiedenen Tupeln in der Obertabelle entsprechen (SQL:2003) Regel (1) verhindert z. B. zwei students-tupel, die einem people-tupel entsprechen Regel (2) verhindert z. B. people-tupel, die sowohl in students als auch in teachers vorkommen

63 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 63 Referenztypen objektorientierte Systeme unterstützen Referenzen auf Objekte SQL:2003 Referenzen verweisen auf Tupel Referenzen haben einen Wertebereich, d.h. sie können nur auf die Tupel der angegebenen Tabelle verweisen Tupel haben expliziten Objektidentifikator Art des Objektidentifikators wird im strukturierten Typ festgelegt spezielles Attribut zur Aufnahme des Objektidentifikators wird bei Tabellendefinition festgelegt

64 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 64 Deklaration von Referenztypen Beispiel Typ Department und Tabelle departments: create type Department (name varchar(20), head ref(person) scope people); create table departments of Department; Typ Person und Tabelle people create type Person (name varchar(20), address varchar(20)) ref is system generated; create table people of Person ref is person_id system generated; Problem: Wie werden Tupel aus people referenziert?

65 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 65 Initialisierung von Referenzen referenzierendes Tupel mit Null-Referenz erzeugen Referenz durch Zugriff auf den Objektidentifikator aktualisieren Beispiel insert into departments values ('CS', null); update departments set head = (select p.person_id from people as p where name='john') where name = 'CS';

66 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 66 Benutzerdefinierte Identifikatoren SQL:2003 unterstützt auch benutzerdefinierte Identifikatoren: Typ des Identifikators muss bei Typdefinition festgelegt werden Tabellendefinition muss benutzerdefinierte Referenz festlegen create type Person (name varchar(20), address varchar(20), ref using varchar(20)); create table people of Person ref is person_id user generated; bei Erzeugung eines Tupels muss ein eindeutiger Wert für den Identifikator angegeben werden insert into people values ('John', '23 Coyote Run', ' ')

67 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 67 Benutzerdefinierte Identifikatoren Wert des Identifikators kann an anderen Stellen verwendet werden, z.b. bei einer Einfügeoperation auf department insert into departments values('cs', ' ) Primärschlüssel als Identifikatoren verwendbar: create type Person (name varchar(20), address varchar(20), primary key (name), ref from name); create table people of Person ref is person_id derived; Primäschlüsselwert kann als Identifikator genutzt werden: insert into departments values('cs','john')

68 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 68 SQL - Pfadausdrücke Finde die Namen und Adressen aller Leiter von Departments select head >name, head >address from departments head >name ist ein Pfadausdruck Pfadausdrücke vermeiden Joins: wäre head keine Referenz, so müsste ein Join zwischen departments und people ausgeführt werden, um die Adresse des Leiters festzustellen Anfrage kann leichter formuliert werden

69 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 69 Funktionen und Prozeduren prozedurale Erweiterungen sind seit SQL:1999 im Standard enthalten Funktionen und Prozeduren geschrieben in SQL oder einer externen Programmiersprache erlauben die Definition von Geschäftsregeln in der Datenbank hilfreich bei der Behandlung spezialisierter Datentypen Beispiel: Funktion zur Überprüfung, ob sich zwei Polygone schneiden in SQL:2003 dürfen Funktionen auch Tabellen liefern strukturierte Anweisungen Schleifen, Fallunterscheidung, Zuweisung

70 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 70 SQL Funktionen Beispiel: Funktion, die zu einem Buchtitel die Anzahl der Autoren des Buchs bestimmt (verwende das 4NF-Schema mit books4 und authors): create function author_count(name varchar(20)) returns integer begin declare a_count integer; select count(author) into a_count from authors where authors.title=author_count.name; return a_count; end Finde die Titel aller Bücher mit mehr als einem Autor: select name from books4 where author_count(title) > 1

71 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 71 SQL Prozeduren author-count als Prozedur: create procedure author_count_proc (in title varchar(20), out a_count integer) begin select count(author) into a_count from authors where authors.title = author_count_proc.title end Benutzung der Prozedur mit Hilfe von call declare a_count integer; call author_count_proc( 'Database Systems Concepts', a_count); Überladen von Funktionen und Prozeduren ist möglich, solange die Signatur unterschiedlich ist

72 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 72 Tabellen als Ergebnis Beispiel create function books_of (author char(20)) returns table (title char(60), name char(30), branch char(30)) return table (select title, name, branch from books4 natural inner join authors where authors.author=books_of.author) select * from table(books_of('begg'));

73 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 73 SQL Methoden implizites Argument self, der Wert des strukturierten Typs, für den die Methode aufgerufen wurde Methodendeklaration bei der Definition eines strukturierten Typs: create type Employee as (name varchar(20), salary integer) instance method giveraise (percent integer) Methodenrumpf separat definieren: create instance method giveraise (percent integer) for Employee begin set self.salary = self.salary+(self.salary*percent)/100; end

74 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 74 Externe Funktionen externe Funktionen, die in Sprachen wie C oder C++ geschrieben sind, können integriert werden Vorteile effizient ausdrucksstark Nachteile Sicherheit Funktionscode zum Datenbanksystem hinzu laden Fehleranfälligkeit Anfragen mit solchen Funktionen sind schwer optimierbar

75 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 75 Externe Funktionen Beispiel: create procedure author-count-proc( in title varchar(20), out count integer) language C external name '/u/beckelu/sunos5/author-count-proc'; create function author-count( title varchar(20)) returns integer language C external name '/u/beckelu/sunos5/author-count-func'

76 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 76 Sicherheit und externe Funktionen Sicherheit gewährleisten durch Verwendung einer sicheren Sprache (Java) in Kombination mit Sandbox-Technik externe Funktionen/Prozeduren von separatem Prozess ausführen lassen kein Zugriff auf den Speicher des DBMS aber Performanceeinbußen manche DBMS unterstützen auch die unmittelbare Ausführung von Funktionen im Adressbereich des Systems

77 Vorlesung, SS 2008, Kapitel 7: Objektbasierte 77 Vergleich O-O vs. O-R relationale Systeme einfache Datentypen große Sicherheit bei der Bearbeitung von Anfragen hohe Effizienz bei Auswertung von Anfragen objektrelationale Systeme komplexe Datentypen große Sicherheit bei der Bearbeitung von Anfragen hohe Effizienz bei Auswertung von Anfragen objektorientierte Systeme (persistente Programmiersprachen) komplexe Datentypen Integration mit Programmiersprachen hohe Effizienz beim Verfolgen von Objektreferenzen (navigierender Zugriff)

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Objektrelationale Datenbanken

Objektrelationale Datenbanken Vorlesung Datenbanksysteme vom 26.11.2008 Objektrelationale Datenbanken Konzepte objektrelationaler DBs SQL:1999 OO vs. OR Konzepte objektrelationaler Datenbanken Große Objekte (LOBs: Large Objects) Mengenwertige

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

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

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

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

Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung

Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung Einführung in Datenbanken - Objekt-Orientierte Datenbanken - Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung 1 Probleme mit dem relationalen Modell Das Typsystem des relationalen Modells

Mehr

Objektrelationale und erweiterbare Datenbanksysteme

Objektrelationale und erweiterbare Datenbanksysteme Objektrelationale und erweiterbare Datenbanksysteme Erweiterbarkeit SQL:1999 (Objekt-relationale Modellierung) In der Vorlesung werden nur die Folien 1-12 behandelt. Kapitel 14 1 Konzepte objekt-relationaler

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

SQL objektorientiert

SQL objektorientiert Dušan Petković SQL objektorientiert An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam Vorwort 11 Teil 1: Einführung 15

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

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

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

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

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

Vorlesung Datenbanken II SS 2006

Vorlesung Datenbanken II SS 2006 Vorlesung Datenbanken II SS 2006 1 Vorlesung Datenbanken II SS 2006 Sven Wachsmuth, Technische Fakultät, AG Angewandte Informatik Vorlesung Datenbanken II SS 2006 2 3.4 ODBMS: ODMG Datenmodell ODMG Interface

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

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

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

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

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

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

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

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

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in

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

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

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

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

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

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

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

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

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

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

SQL. Fortgeschrittene Konzepte Auszug

SQL. Fortgeschrittene Konzepte Auszug SQL Fortgeschrittene Konzepte Auszug Levels SQL92 Unterteilung in 3 Levels Entry Level (i.w. SQL89) wird von nahezu allen DBS Herstellern unterstützt Intermediate Level Full Level SQL DML 2-2 SQL92 behebt

Mehr

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

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

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

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

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

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

Software-Engineering Einführung

Software-Engineering Einführung Software-Engineering Einführung 7. Übung (04.12.2014) Dr. Gergely Varró, gergely.varro@es.tu-darmstadt.de Erhan Leblebici, erhan.leblebici@es.tu-darmstadt.de Tel.+49 6151 16 4388 ES Real-Time Systems Lab

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

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

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

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

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

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

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

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VL Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Dieser Fragenkatalog wurde aufgrund das Basistextes und zum Teil aus den Prüfungsprotokollen erstellt, um sich auf mögliche

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

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

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

5. Objekt-relationale Systeme 5.1. Erweiterungen des Relationalen Modells 5.2. SQL-Erweiterungen 5.3. MM-DB

5. Objekt-relationale Systeme 5.1. Erweiterungen des Relationalen Modells 5.2. SQL-Erweiterungen 5.3. MM-DB 5. Objekt-relationale Systeme 5.1. Erweiterungen des Relationalen Modells 5.2. SQL-Erweiterungen 5.3. MM-DB Beschränkungen des Relationalen Modells NF1: Atomare Attribute nicht erweiterbares Typkonzept

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2 Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

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

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

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

Allgemeines zu Datenbanken

Allgemeines zu Datenbanken Allgemeines zu Datenbanken Was ist eine Datenbank? Datensatz Zusammenfassung von Datenelementen mit fester Struktur Z.B.: Kunde Alois Müller, Hegenheimerstr. 28, Basel Datenbank Sammlung von strukturierten,

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 7 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws1314/dbsys/exercises/

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

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller

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

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik Beispielaufgaben Informationssysteme erstellt von Fabian Rump zur IS Vorlesung 2009/10 1 Multiple Choice Aussage richtig falsch Eine SQL-Abfrage beginnt immer mit dem Schlüsselwort SELECT Eine Datenbank

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) Hochschule für Technik, Wirtschaft und Kultur Leipzig 06.06.2008 Datenbanken II,Speicherung und Verarbeitung großer Objekte

Mehr

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 22. April 2013 - MySQL Sebastian Cuy sebastian.cuy@uni-koeln.de Datenbanken Was sind eigentlich Datenbanken? Eine

Mehr

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX Allgemeines Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX Stand 21.11.2014 Die Yeastar MyPBX Telefonanlagen unterstützen die automatische Konfiguration der tiptel 3010, tiptel 3020 und tiptel 3030

Mehr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr Raum: LF 230 Bearbeitung: 9.-11. Mai 2005 Datum Gruppe Vorbereitung Präsenz Aktuelle Informationen unter: http://www.is.informatik.uni-duisburg.de/courses/dbp_ss03/ Tabellen in IBM DB2 Tabellen Eine relationale

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

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Labor 3 - Datenbank mit MySQL

Labor 3 - Datenbank mit MySQL Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.

Mehr

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert. Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

RUP Analyse und Design: Überblick

RUP Analyse und Design: Überblick Inhaltsverzeichnis Übersicht [, 2, 8] 3. Vorgehensweise............................... 5 2 Planungsmethoden 37 2. Definitionsphase.............................. 6 3 Rational Unified Process [5, 6] und

Mehr

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL XAMPP-Systeme Teil 3: My SQL Daten Eine Wesenseigenschaft von Menschen ist es, Informationen, in welcher Form sie auch immer auftreten, zu ordnen, zu klassifizieren und in strukturierter Form abzulegen.

Mehr

Einteilung von Datenbanken

Einteilung von Datenbanken Datenbanksysteme (c) A.Kaiser; WU-Wien 1 Einteilung von Datenbanken 1. formatierte Datenbanken 2. unformatierte Datenbanken Information Retrieval Systeme 2 Wozu Datenbanken? Speicherung und Verwaltung

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

Mehr

Klausur Interoperabilität

Klausur Interoperabilität Klausur 21. Juni 2012 9.30 11.00 Uhr Workflow Systems and Technology Group Fakultät für Informatik Universität Wien Univ.-Prof. Dr. Stefanie Rinderle-Ma Allgemeine Hinweise: Die Bearbeitungszeit beträgt

Mehr

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr