Object Relational Mapping Layer

Größe: px
Ab Seite anzeigen:

Download "Object Relational Mapping Layer"

Transkript

1 Object Relational Mapping Layer Views Controlers Business logic GUI OO-application logic Object-relational-Mapping Relational DBMS Andreas Schmidt PHP (Teil 3) 1/33

2 object relational mapping layer two concepts: descriptive query language SQL (set oriented) imperative programming language (tuple oriented) solution: build a mapping layer between the database and the application layer which functionality should the mapping layer provides? mapping of PHP objects and their relations to database tables encapsulation of SQL statements decoupling of the application logic from the database design which functionality should the mapping layer not provides? application logic Andreas Schmidt PHP (Teil 3) 2/33

3 object relational mapping layer observation: a number of operations can be derived out of the ER-Diagram (or UML-Diagram): creation/deletion of objects modification of objects modification of relations between objects search for objects this functionality is also known as CRUD-funktionality (Create, Read, Update, Delete) Andreas Schmidt PHP (Teil 3) 3/33

4 CRUD Interface - necessary methods id <0,n> plays_role <0,n> id Film <0,1> <0,n> Person birthday title year directs firstname surname Andreas Schmidt PHP (Teil 3) 4/33

5 Tabellenstruktur CREATE TABLE person ( id INT (10) AUTO_INCREMENT, name VARCHAR (40) NOT NULL, vorname VARCHAR(40) NOT NULL, geburtsjahr YEAR(4), PRIMARY KEY(id) ) TYPE=InnoDB; CREATE TABLE film ( id INT (10) AUTO_INCREMENT, titel VARCHAR (100) NOT NULL, jahr year(4), regisseur_fk INT (10), FOREIGN KEY (regisseur_fk) REFERENCES person(id) ON DELETE SET NULL, PRIMARY KEY(id) ) TYPE=InnoDB; CREATE TABLE hat_rolle ( schauspieler_fk INT(10) NOT NULL, film_fk INT(10) not null, FOREIGN KEY(film_fk) REFERENCES film(id) ON DELETE CASCADE, FOREIGN KEY(schauspieler_fk) REFERENCES person(id) ON DELETE CASCADE ) TYPE=InnoDB; Andreas Schmidt PHP (Teil 3) 5/33

6 Klassenstruktur in PHP (Variante 1) class CRUD_Film { private $id; private $title; private $year; private $regisseur; private $actors = array(); class CRUD_Person { private $id; private $firstname; private $surname; private $birthdate; private $directed_films = array(); private $films = array(); function construct(...) { } //... } function construct(...) { } //... } Andreas Schmidt PHP (Teil 3) 6/33

7 Klassenstruktur in PHP (Variante 2) class CRUD_Film { private $id; private $title; private $year; private $regisseur_fk; class CRUD_Person { private $id; private $firstname; private $surname; private $birthdate; function construct(...) { } //... } function construct(...) { } //... } Andreas Schmidt PHP (Teil 3) 7/33

8 static methods: CRUD Interface - necessary methods (Class CRUD_Person) $p = CRUD_Person::create($name,...) $p = CRUD_Person::get($id) $p_list = CRUD_Person::query($cond) instance methods: $p->delete() // Accessor/Mutatormethoden: $p->getfirstname(), $f->setfirstname($n) $p->getsurname(), $p->setsurname($n) $p->getbirthday(), $p->setbirthday($d) $p->getfilms() $p->getdirectedfilms() // Modification of Relationships $p->addfilm($film) $p->deletefilm($film) $p->adddirectedfilm($film) $p->deldirectedfilm($film) Andreas Schmidt PHP (Teil 3) 8/33

9 static methods: CRUD Interface - necessary methods (Class CRUD_Film) $f = CRUD_Film::create($title, $year) $f = CRUD_Film::get($id) $f_list = CRUD_Film::query($cond) instance methods: $f->delete() // Accessor/Mutatormethoden: f->gettitle(), $f->settitle($t) $f->getyear(), $f->setyear($y) $f->getregisseur() $f->getactors() // Modification of Relationships $f->addactor($actor) $f->deleteactor($actor) $f->setregisseur($r) $f->unsetregisseur() Andreas Schmidt PHP (Teil 3) 9/33

10 CRUD interface (1) relation between methods and SQL-statements method SQL-statement Parameter CRUD_Film::create($title, $year) CRUD_Film::get($id) CRUD_Film::query($cond) $f->delete() $f->settitle($title) INSERT INTO Film (title, year) -- mysql VALUES (?,?) INSERT INTO Film (title, year, id) -- oracle VALUES (?,?, seq.nextval) SELECT id, title, year, regisseur_fk FROM Film WHERE id =? SELECT id, title, year, regisseur_fk FROM Film WHERE $cond DELETE FROM Film WHERE id =? UPDATE Film SET title =? WHERE ID =? $title, $year $id $cond $this->id $title $this->id Andreas Schmidt PHP (Teil 3) 10/33

11 CRUD interface (2) method SQL-statement SQL-parameter $f->addactor($actor) $f->deleteactor($actor) $f->getactors() INSERT INTO plays_role (actor_fk, film_fk) VALUES (?,?) DELETE from plays_role WHERE actor_fk =? AND film_fk =? SELECT prename, surname, id, birthday FROM Person, plays_role WHERE plays_role.film_fk =? AND plays_role.actor_fk=person.id $f->setregisseur($person) UPDATE Film SET regisseur_fk =? WHERE ID =? $f->getregisseur() SELECT surname, prename, id, birthday FROM Person WHERE id =? $actor->getid(), $this->id $actor->getid(), $this->id $this->id $person->getid(), $this->id $this->regisseur_fk Andreas Schmidt PHP (Teil 3) 11/33

12 example implementation (getactors()) class CRUD_Film { // other methods in this class... function getactors() { $db = PDO_Util::getConnection(); $sql = "SELECT id, prename, surname, birthday FROM Person, plays_role WHERE plays_role.actor_fk=person.id AND plays_role.film_fk =?"; } $stmt = $db->prepare( $sql ); $stmt->execute(array($this->id)); $list = array(); while($row = $stmt->fetch()) $list[] = new CRUD_Person($row[0], $row[1], $row[2], $row[3]); return $list; } // end class Film Andreas Schmidt PHP (Teil 3) 12/33

13 First Level Cache Werden Änderungen an den Objekten nicht sofort in die Datenbank geschrieben kann es sein, dass mehrere Kopien desselben Objektes im Speicher existieren, die einen unterschiedlichen Status haben Ausweg: Cache Prinzip: jedes Objekt, das aus Datenbank gelesen wird, wird in Cache eingetragen beim Zugriff auf DB wird geschaut ob sich Objekt nicht bereits in Cache befindet, wenn ja dann wird das Objekt zurückgeliefert (zusätzlich Performancegewinn!!) bei Commit werden die geänderten Objekte des Caches zurückgeschrieben Implementierung: z.b. mit assoziativem Array (Dictionary), wobei der Schlüssel durch Objekt-ID repräsentiert wird und der Wert durch das Objekt selbst (Reference auf Objekt) Andreas Schmidt PHP (Teil 3) 13/33

14 First Level Cache $obj1 $hauptstadt $stadt3 Cache Andreas Schmidt PHP (Teil 3) 14/33

15 Second level cache Bereits angefrage Datensätze verbleiben im Cache und werden bei späteren Anfragen von dort geladen Typischerweise asynchrone Synchronisation Geeignet für folgende Typen von Daten: geringe Änderungsrate unkritische Daten (non financial) Anwendungslokale (non shared) Daten Reference data geringe Anzahl von Instanzen jede Instanz ist mit vielen Instanzen anderer Klassen verbunden seltener Update Andreas Schmidt PHP (Teil 3) 15/33

16 Synchronisation Szenario: User 1 liest Datensatz und modifiziert ihn in einer Bildschirmmaske User 2 liest anschließend denselben Datensatz und modifiziert ihn ebenfalls User 1 speichert den geänderten Datensatz zurück User 2 speichert ebenfalls den von ihm geänderten Datensatz zurück Problem: Änderungen von User 1 sind verloren gegangen Andreas Schmidt PHP (Teil 3) 16/33

17 Lösungsansätze Pessimistische Synchronistaion zu bearbeitender Datensatz wird während der Dauer der Bearbeitung gesperrt (Sperrattribut, Tabelle(n) zur Sperrenverwaltung) Optimistische Synchronisation man geht von keiner Kollision aus tritt Kollision auf, so muss diese von der Anwendung/dem Anwender gelöst werden Prinzip: Datensatz erhält zusätzliches Attribut mit Zeitstempel oder Versionsnummer Bei jeder Modifikation wird Zeitstempel neu gesetzt, bzw. Versionsnummer hochgezählt Beim Abspeichern wird der aktuelle Wert des Zeitstempels bzw. der Versionsnummer mit verglichen Andreas Schmidt PHP (Teil 3) 17/33

18 DDL (optimistische Synchronisation) create table Person ( id integer primary key, name varchar(40) not null, vorname varchar(40) not null, geburtsdatum date, version integer not null ); Andreas Schmidt PHP (Teil 3) 18/33

19 Beispiel function update() { $db = PDO_Util::getConnection(); $sql = "update person set name=?, vorname=?, version=version+1 where id=? and version=?"; $values = array($this->name, $this->vorname, $this->id, $this->version); $stmt = $db->prepare( $sql ); } $stmt->execute( $values ); $affected_rows = $stmt->rowcount(); if ($affected_rows!= 1) throw new Exception("Objekt Person ($this->id) wurde inzwischen geändert"); else { } $this->version++; return true; update des Zählers in der Instanz bei Update versionsnummer hochzählen test ob Datensatz zurückgeschrieben wurde Andreas Schmidt PHP (Teil 3) 19/33

20 Vererbung vorname name Person isa eintrittsdatum Kunde bonusmeilen Angestellte isa flugstunden sicherheitsstufe Bodenpersonal Pilot Andreas Schmidt PHP (Teil 3) 20/33

21 relationale Modellierung 1 Tabelle pro Klassenhierarchie 1 Tabelle pro Klasse 1 Tabelle pro Verebungspfad Andreas Schmidt PHP (Teil 3) 21/33

22 Eine Tabelle pro Klassenhierarchie Person Kunde Angestellter Bodenpersonal Pilot Person id typ name vorname bonusmeilen eintrittsdatum sicherheitsstufe flugstunden 001 K... Sven Vielflieg NULL NULL NULL 002 P... Maria 003 B... Sigi Albatros Sicher NULL NULL NULL E NULL 004 K... Andrea Flugangst 10 NULL NULL NULL Andreas Schmidt PHP (Teil 3) 22/33

23 zugeh. DDL/DML-Statements create table Person ( id integer primary key, name varchar(40) not null, vorname varchar(40) not null, bonusmeilen integer, eintrittsdatum date, sicherheitsstufe integer, flugstunden integer, typ enum ('Kunde', 'Bodenpersonal', 'Pilot') ); insert into person (id, typ, vorname, name, bonusmeilen) values(1,'kunde','sven','vielflieg',600000); insert into person (id, typ, vorname, name, eintrittsdatum, flugstunden) values(2,'pilot','maria','albatros', ' ', 20000); Andreas Schmidt PHP (Teil 3) 23/33

24 Fakultät IWI Eine Tabelle pro Klasse Person Kunde Angestellter Bodenpersonal Pilot Person id typ vorname name 001 Kunde Sven Vielflieg 002 Pilot Maria Albatros 003 Bodenpersonal Sigi Sicher 004 Kunde Andrea Flugangst Kunde id_fk bonusmeilen Bodenpersonal Angestellter id_fk eintrittsdatum Pilot id_fk 003 E sicherheitsstufe id_fk flugstunden Andreas Schmidt PHP (Teil 3) 24/33

25 zugeh. DDL-Statements create table Person ( id integer primary key, name varchar(40) not null, vorname varchar(40) not null, typ enum ('Kunde', 'Bodenpersonal', 'Pilot') ); create table Kunde ( id_fk integer primary key, bonusmeilen integer, foreign key(id_fk) references Person(id) on delete cascade ); create table Angestellter ( id_fk integer primary key, eintrittsdatum date, foreign key(id_fk) references Person(id) on delete cascade ); create table Bodenpersonal ( id_fk integer primary key, sicherheitsstufe integer, foreign key(id_fk) references Angestellter(id_fk) on delete cascade ); create table Pilot ( id_fk integer primary key, flugstunden integer, foreign key(id_fk) references Angestellter(id_fk) on delete cascade ); Andreas Schmidt PHP (Teil 3) 25/33

26 zugeh. DML-Statements insert into person (id, vorname, name, typ) values(1,'sven','vielflieg','kunde'); insert into kunde (id_fk, bonusmeilen) values(1, ); insert into person (id, vorname, name, typ) values(2,'maria','albatros','pilot'); insert into angestellter (id_fk, eintrittsdatum) values (2,' '); insert into pilot (id_fk, flugstunden) values (2,20000); Andreas Schmidt PHP (Teil 3) 26/33

27 Fakultät IWI Eine Tabelle pro Vererbungspfad Person Kunde Angestellter Bodenpersonal Pilot Kunde id name vorname bonusmeilen 001 Sven Vielflieg Andrea Flugangst 12 Bodenpersonal id name vorname eintrittsdatum sicherheitsstufe 003 Sigi Sicher E Pilot id name vorname eintrittsdatum flugstunden 002 Maria Albatros Andreas Schmidt PHP (Teil 3) 27/33

28 zugeh. DDL/DML-Statements create table Kunde ( id integer primary key, name varchar(40) not null, vorname varchar(40) not null, bonusmeilen integer ); create table Bodenpersonal ( id integer primary key, name varchar(40) not null, vorname varchar(40) not null, eintrittsdatum date, sicherheitsstufe integer ); insert into kunde (id, vorname, name, bonusmeilen) values(1,'sven','vielflieg',600000); insert into pilot (id, vorname, name, eintrittsdatum, flugstunden) values(2,'maria','albatros',' ',20000); create table Pilot ( id integer primary key, name varchar(40) not null, vorname varchar(40) not null, eintrittsdatum date, flugstunden integer ); Andreas Schmidt PHP (Teil 3) 28/33

29 Methoden Statische Methoden: $pe = Person::create($name, $vorname) $ku = Kunde::create(..., $bonusmeilen) $bo = Bodenpersonal::create(...) $pi = Pilot::create(...) $px = Person::get(...) $personen = Person::query($cond) $piloten = Pilot::query($cond) Instanzenmethoden $p->gettype() // liefert Typname zurück $p->hastype($type) // true, falls der Typ von p // dem von $type oder einem // davon abgeleiteten // entspricht $p->delete() // Accessor + Mutatormethoden... // Beziehungsmethoden... Andreas Schmidt PHP (Teil 3) 29/33

30 Performanceüberlegungen Instant loading vs. lazy loading lazy object generation (proxy objects) late execution von SQL-Update Statements Cache mit prepared-statements (z.b. Dictionary mit SQL-Statements als Key) Cache für Ergebnisse bei Beziehungen (Variante 2) Outer Join bei <0,1> Kardinalität Update nur auf geänderte Spalten Andreas Schmidt PHP (Teil 3) 30/33

31 Application Logic Views Controlers Business logic GUI OO-application logic Object-relational-Mapping Relational DBMS Andreas Schmidt PHP (Teil 3) 31/33

32 Application Logic Applikationslogik wird in Schicht oberhalb der OR-Mapping Schicht realisiert Applikationslogik ist unabhängig von darunterliegender Datenbankschicht Frage: wie wird Applikationslogik ins System integriert? Antwort: z.b. durch Unterklassenbildung (ableiten dercrud-klassen) Prinzip: class Film extends CRUD_Film { private... function construct(...) { parent:: construct(...);... } // Methods of class Film //... Notwendige Änderungen an OR-Schicht: OR-Schicht darf nur Instanzen der abgeleiteten Klassen erzeugen Andreas Schmidt PHP (Teil 3) 32/33

33 Application Logic class Film extends CRUD_Film { // Realisierung der Applikationslogik unter Zuhilfenahme der Funktionalität // der durch die OR-Schicht bereitgestellte Funktionalität //... function numberofactors() { return count($this->getactors()); } } // weitere Methoden... Hinweis: Aus Performancegründen ist hier eventuell doch die Ausführung eines SQL-Statements sinnvoll!! Andreas Schmidt PHP (Teil 3) 33/33

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS 2015 PHP. Object Relational Mapping Layer. Dr. Christian Senger PHP & ORM 1

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS 2015 PHP. Object Relational Mapping Layer. Dr. Christian Senger PHP & ORM 1 PHP Object Relational Mapping Layer PHP & ORM 1 Object Relational Mapping Layer PHP & ORM 2 Object Relational Mapping Layer Einige Operationen können vom ER-Diagram (or UML- Diagram) abgeleitet werden:

Mehr

Object Relational Mapping Layer

Object Relational Mapping Layer Object Relational Mapping Layer Dr. Christian Senger ORM & Vererbung 1 create table fortbildung( id number primary key, bezeichnung varchar2(40), datum date ); create table themenblock( id number primary

Mehr

Ausgabe: Abteilungen Summe der Fehltage einer Abteilung. Nur für Mitarbeiter deren Fehltage < 3 Nur Abteilungen deren Fehltage-Summe > 1

Ausgabe: Abteilungen Summe der Fehltage einer Abteilung. Nur für Mitarbeiter deren Fehltage < 3 Nur Abteilungen deren Fehltage-Summe > 1 mitarbeiter_fehltage abteilung_id mitarbeiter_id fehltage 3 2 2 1 1 1 2 4 5 4 5 3 2 6 10 4 3 3 1 8 1 2 7 5 3 9 1 Ausgabe: Abteilungen Summe der Fehltage einer Abteilung Nur für Mitarbeiter deren Fehltage

Mehr

Object Relational Mapping Layer

Object Relational Mapping Layer Object Relational Mapping Layer Views Controlers Business logic GUI OO-application logic Object-relational-Mapping Relational DBMS PHP (propel) 1/18 Propel - Persistance Layer OR-Mapper für PHP Portierung

Mehr

Tutorium zum Aufbau einer objektrelationalen Abbildungsschicht in PHP (Version 2.8 vom )

Tutorium zum Aufbau einer objektrelationalen Abbildungsschicht in PHP (Version 2.8 vom ) Tutorium zum Aufbau einer objektrelationalen Abbildungsschicht in PHP (Version 2.8 vom 18.11.2016) Einleitung Im folgenden wird die Erstellung einer Klasse zur Realisierung einer OR-Schicht erläutert.

Mehr

Datenbanken und Informationssysteme II

Datenbanken und Informationssysteme II Fakultät für Informatik und Wirtschaftsinformatik WS 2011 Datenbanken und Informationssysteme II Szenario: Es soll eine Datenbank für eine Online Auktionsplattform entworfen werden. Das relationale Schema

Mehr

Tutorium zum Aufbau einer objektrelationalen Abbildungsschicht in PHP (Version 4.4 vom )

Tutorium zum Aufbau einer objektrelationalen Abbildungsschicht in PHP (Version 4.4 vom ) Tutorium zum Aufbau einer objektrelationalen Abbildungsschicht in PHP (Version 4.4 vom 13.11.2018) Einleitung Im folgenden wird die Erstellung einer Klasse zur Realisierung einer OR-Schicht erläutert.

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

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

Probeklausur Datenbanken und Informationssysteme II

Probeklausur Datenbanken und Informationssysteme II Hochschule Karlsruhe Technik und Wirtschaft- 26.6.2014 Fakultät für Informatik und Wirtschaftsinformatik Probeklausur Datenbanken und Informationssysteme II Szenario: Poolräume, Softwareverteilung Aufgabe

Mehr

Datenbanken. Zusammenfassung. Datenbanksysteme

Datenbanken. Zusammenfassung. Datenbanksysteme Zusammenfassung Datenbanksysteme Christian Moser Seite 1 vom 7 12.09.2002 Wichtige Begriffe Attribut Assoziation API Atomares Attribut Datenbasis DBMS Datenunabhängigkeit Datenbankmodell DDL DML DCL ER-Diagramm

Mehr

Datenbanksysteme 2013

Datenbanksysteme 2013 Datenbanksysteme 2013 Kapitel 8: Datenintegrität Vorlesung vom 14.05.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenintegrität Statische Bedingung (jeder Zustand) Dynamische

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

Mehr

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer DB-Datenbanksysteme DB-13 043-SQL-DML 1 Mario Neugebauer Einführung Informationsmodellierung Relationales Datenbankmodell Datenbanksprache SQL Einführung Daten-Abfrage-Sprache - DQL Daten-Definitions-Sprache

Mehr

Multimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach)

Multimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach) Multimedia im Netz Wintersemester 2013/14 Übung 02 (Hauptfach) Ludwig-Maximilians-Universität München Multimedia im Netz WS 2013/14 - Übung 2-1 PHP und MySQL Es werden mehrere APIs von PHP angeboten um

Mehr

Üben von DDL und DML. Ergebnis:

Üben von DDL und DML.   Ergebnis: SQL DDL Üben von DDL und DML https://www.jdoodle.com/execute-sql-online Ergebnis: Befehlsgruppen in SQL DDL Data Definition Language DML Data Manipulation Language CREATE: Tabellen anlegen DROP: Tabellen

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

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten

Mehr

Praktische SQL-Befehle

Praktische SQL-Befehle Praktische SQL-Befehle Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Nested Selects Inserts Updates Views Triggers Constraints Functions Voraussetzung: Laptop + MySQL/

Mehr

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel ORM & OLAP Object-oriented Enterprise Application Programming Model for In-Memory Databases Sebastian Oergel Probleme 2 Datenbanken sind elementar für Business-Anwendungen Gängiges Datenbankparadigma:

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3) Vorlesung #5 SQL (Teil 3) Fahrplan Besprechung der Übungsaufgaben Rekursion Rekursion in SQL-92 Rekursion in DBMS- Dialekten (Oracle und DB2) Views (Sichten) - gespeicherte Abfragen Gewährleistung der

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

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

Mehr

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Grundlagen von SQL Informatik 2, FS18 Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Markus Dahinden 13.05.18 1 Grundlagen von SQL (Structured Query Language)

Mehr

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO; phpmyadmin SQL Dump version 3.2.4 http://www.phpmyadmin.net Host: localhost Erstellungszeit: 13. April 2011 um 18:44 Server Version: 5.1.41 PHP-Version: 5.3.1 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; /*!40101

Mehr

Die Anweisung create table

Die Anweisung create table SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl

Mehr

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp 5/14/18 Grundlagen von SQL (Structured Query Language) Datenbanksprache Befehle Datenbanken und Tabellen erstellen/verändern Daten manipulieren (eingeben, ändern, löschen) Datenbank durchsuchen (Queries

Mehr

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle. Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu

Mehr

NoSQL mit Postgres 15. Juni 2015

NoSQL mit Postgres 15. Juni 2015 Tag der Datenbanken 15. Juni 2015 Dipl.-Wirt.-Inform. Agenda l Vorstellung l Marktübersicht l Warum PostgreSQL? l Warum NoSQL? l Beispielanwendung Seite: 2 Vorstellung Dipl.-Wirt.-Inform. [1990] Erste

Mehr

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Introduction to Data and Knowledge Engineering. 6. Übung SQL Introduction to Data and Knowledge Engineering 6. Übung SQL Aufgabe 6.1 Datenbank-Schema Buch PK FK Autor PK FK ISBN Titel Preis x ID Vorname Nachname x BuchAutor ISBN ID PK x x FK Buch.ISBN Autor.ID FB

Mehr

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert

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

5.8 Bibliotheken für PostgreSQL

5.8 Bibliotheken für PostgreSQL 5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9

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. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)

Mehr

3.3. Implementierung in SQL DDL-Grundlagen Constraint-Verzögerung Implementierungs-Strategien

3.3. Implementierung in SQL DDL-Grundlagen Constraint-Verzögerung Implementierungs-Strategien CREATE TABLE SPEND_STAT ( S_STATUS VARCHAR2(1), STAT_TXT VARCHAR2(15), PRIMARY KEY (S_STATUS) ENABLE ) ; 3.3. Implementierung in SQL DDL-Grundlagen Constraint-Verzögerung Implementierungs-Strategien DDL:

Mehr

Datenbanken 1. Sommersemester Übung 1

Datenbanken 1. Sommersemester Übung 1 Datenbanken 1 Sommersemester 2017 Übung 1 Übersicht Entwurf Anforderungsanalyse -> Dokumentation der Anford. Konzeptuelles Modell -> ER-Diagramm Logisches Modell -> Relationales Datenmodell Physisches

Mehr

Visualisierung in Informatik und Naturwissenschaften

Visualisierung in Informatik und Naturwissenschaften Visualisierung in Informatik und Naturwissenschaften Datenbankvisualisierung Sven Bernhard 12.06.1999 Datenbankvisualisierung Datenbanktheorie in 5 Minuten Visualisierung vs. Datenbanken Visualisierung

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

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung Statische vs. dynamische Integritätsbedingungen Statische Integritätsbedingungen Bedingungen

Mehr

Übung PL/SQL Trigger Lösungen

Übung PL/SQL Trigger Lösungen Übung PL/SQL Trigger Lösungen 1) Gebe das aktuelle Datum aus. Wofür steht dual? Ändere das Datum für Deine aktuelle Session auf das Format Jahr (4 Stellen) Monat (2 Stellen) Tag (2 Stellen)[Leerzeichen]Stunde

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

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 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

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro

Mehr

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221)

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221) Erstellen einer Mitarbeiter-Datenbank 1 Erstellen einer Mitarbeiter-Datenbank Arbeitsauftrag Ziel der Übung Erstellen von Datenbanken mit Hilfe von SQL-Abfragen Aufgabe (1.) Erstellen Sie eine neue Datenbank

Mehr

SQL und MySQL. Kristian Köhntopp

SQL und MySQL. Kristian Köhntopp SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)

Mehr

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7 1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern

Mehr

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured

Mehr

ACCESS SQL ACCESS SQL

ACCESS SQL ACCESS SQL ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache

Mehr

Installation MySQL Replikationsserver 5.6.12

Installation MySQL Replikationsserver 5.6.12 Ergänzen Konfigurationsdatei my.ini auf Master-Server:!!! softgate gmbh!!! Master und Slave binary logging format - mixed recommended binlog_format = ROW Enabling this option causes the master to write

Mehr

Kapitel 8: Datenintegrität

Kapitel 8: Datenintegrität Kapitel 8: Datenintegrität Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe einer Domäne Jetzt:

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

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

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis. SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit

Mehr

SQL,Teil 1: CREATE, INSERT, UPDATE, DELETE, DROP

SQL,Teil 1: CREATE, INSERT, UPDATE, DELETE, DROP SQL,Teil 1: CREATE, INSERT, UPDATE, DELETE, DROP W. Spiegel Übersicht DDL & DML Relationen definieren: CREATE Primärschlüssel setzen mit primary key Tabellen löschen: DROP Daten speichern: INSERT Daten

Mehr

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

4. Objektrelationales Typsystem Kollektionstypen. Nested Table Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen

Mehr

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

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7 Aufgabe 2 + 3: Datenbanksysteme I import java.sql.*; import oracle.jdbc.driver.*;

Mehr

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs Datenbanken SQL Insert, Update, Delete, Drop Krebs Inhalt 1. Datensätze einfügen: INSERT 2. Datensätze verändern: UPDATE 3. Datensätze löschen: DROP vs. DELETE Beispiel Datenbank Schule Klasse P_Klasse

Mehr

SQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT

SQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT Allgemeines DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT Gute Tabellen sollen nun in eine DB auf den Rechner. Verwenden dazu DBMS ite. Verwenden Datenbanksprache (structured query language).

Mehr

Inhaltsverzeichnis. Bernd Müller, Harald Wehr. Java Persistence API 2. Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN:

Inhaltsverzeichnis. Bernd Müller, Harald Wehr. Java Persistence API 2. Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN: Inhaltsverzeichnis Bernd Müller, Harald Wehr Java Persistence API 2 Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN: 978-3-446-42693-1 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42693-1

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

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

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking Grundlagen von Datenbanken Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking SQL DDL: Referentielle Aktionen (1/3) Potentielle Gefährdung der referentiellen Integrität durch Änderungsoperationen

Mehr

Datenintegrität. Referentielle Integrität. Referentielle Integrität in SQL. Bisherige Integritätsbedingungen

Datenintegrität. Referentielle Integrität. Referentielle Integrität in SQL. Bisherige Integritätsbedingungen Datenintegrität eferentielle Integrität Integitätsbedingungen chlüssel Fremdschlüssel verweisen auf Tupel einer elation z.b. gelesenvon in Vorlesungen verweist auf Tupel in Professoren Beziehungskardinalitäten

Mehr

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten Seminararbeit vorgelegt von: Gutachter: Studienbereich: Christian Lechner Dr. Georg Moser Informatik Datum: 6. Juni 2013 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung in Datenbanken 1 1.1 Motivation....................................

Mehr

dbis Praktikum DBS I SQL Teil 2

dbis Praktikum DBS I SQL Teil 2 SQL Teil 2 Übersicht Fortgeschrittene SQL-Konstrukte GROUP BY HAVING UNION / INTERSECT / EXCEPT SOME / ALL / ANY IN / EXISTS CREATE TABLE INSERT / UPDATE / DELETE 2 SELECT Syntax SELECT FROM [WHERE [GROUP

Mehr

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing. PHP + MySQL Die MySQL-Datenbank Zusammenspiel Apache, PHP, PHPMyAdmin und MySQL PHPMyAdmin Verwaltungstool Nutzer Datei.php oder Datei.pl Apache HTTP-Server PHP Scriptsprache Perl Scriptsprache MySQL Datenbank

Mehr

Relationales Datenbanksystem Oracle

Relationales Datenbanksystem Oracle Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information

Mehr

Dr. Christian Senger DB & IS II, SS15 09.05.2015

Dr. Christian Senger DB & IS II, SS15 09.05.2015 Übung MVC Dr. Christian Senger DB & IS II, SS15 09.05.2015 0) Allgemeine Hinweise: In den folgenden Lektionen soll die Realisierung einer objektrelationalen Abbildungsschicht gezeigt werden. Die Realisierung

Mehr

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1 Andreas Heß Hochschule Furtwangen Inhalte heute Einführung ins Entity-Relationship-Modell Einführung ins relationale Modell Umsetzung vom E/R-

Mehr

Metadaten oder Metainformationen sind Daten, die Informationen über Merkmale anderer Daten enthalten, aber nicht diese Daten selbst (Wikipedia)

Metadaten oder Metainformationen sind Daten, die Informationen über Merkmale anderer Daten enthalten, aber nicht diese Daten selbst (Wikipedia) Metadaten oder Metainformationen sind Daten, die Informationen über Merkmale anderer Daten enthalten, aber nicht diese Daten selbst (Wikipedia) Dr. Christian Senger Metadaten 1 Vorgehen bei ER Modellierung

Mehr

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden.

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden. Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH) PHP und MySQL Integration von MySQL in PHP Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424 (michael.kluge@tu-dresden.de) MySQL

Mehr

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 6 Locks & Latches Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. Einführung Locks & Latches 2. Locks (Sperren) 3. Modi & Levels

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index! 1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!

Mehr

Willkommen. Datenbanken und Anbindung

Willkommen. Datenbanken und Anbindung Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein

Mehr

SQL Data Manipulation Language (DML) und Query Language (QL)

SQL Data Manipulation Language (DML) und Query Language (QL) Innsbruck Information System University of Innsbruck School of Management Information Systems Universitätsstraße 15 6020 Innsbruck SQL Data Manipulation Language (DML) und Query Language (QL) Universität

Mehr

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken Kapitel 14 Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) 1 Wozu Objekt-relationales Mapping? - Problematik - Business-Schicht OO-Klassen Unvereinbarkeit der Paradigmen

Mehr

Probeklausur Datenbanken und Informationssysteme II

Probeklausur Datenbanken und Informationssysteme II Probeklausur Datenbanken und Informationssysteme II Szenario: Bibliothek. Es gibt Autoren, Bücher, Exemplare, Kunden, Kategorien und Ausleihvorgänge. Aufgabe 1 (Trigger) [ 32 ] a) Analysiere das relationale

Mehr

Oracle Virtual Private Database

Oracle Virtual Private Database Oracle Virtual Private Database Rolf Wesp Consultant Application Development Rolf.Wesp@trivadis.com Düsseldorf, September 2008 Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

Isolationsstufen für Transaktionen. Dr. Karsten Tolle

Isolationsstufen für Transaktionen. Dr. Karsten Tolle Isolationsstufen für Transaktionen Dr. Karsten Tolle Probleme bei Transaktionen Gewährleistung der Isolation Sperren kein Lost Update Read 1 (Accounts[13]) Read 2 (Accounts[13]) Write 2 (Accounts[13],101.000)

Mehr

Folien php/mysql Kurs der Informatikdienste

Folien php/mysql Kurs der Informatikdienste Folien php/mysql Kurs der Informatikdienste 1. Einführung in die Datenbank MySQL Kursbeispiel und Kursziele 1.1 Das Kursbeispiel: eine kleine Personalverwaltung 1.2 Was brauchen wir? 1.3 Ziele Kurs AEMS1,

Mehr

Kapitel 4 Dynamisches SQL

Kapitel 4 Dynamisches SQL Kapitel 4 Dynamisches SQL Flien zum Datenbankpraktikum Wintersemester 2012/13 LMU München 2008 Thmas Bernecker, Tbias Emrich 2010 Tbias Emrich, Erich Schubert unter Verwendung der Flien des Datenbankpraktikums

Mehr

1a) SQL Stored Procedure via IDs

1a) SQL Stored Procedure via IDs 1a) SQL Stored Procedure via IDs Erstellen Sie analog zu Aufgabe 2d) des ersten Übungsblatts eine SQL Stored Procedure, welche den Freundschaftsgrad zweier Benutzer eines sozialen Netzwerks aktualisiert.dazu

Mehr

Transaktionen in Praxis. Dr. Karsten Tolle Vorl

Transaktionen in Praxis. Dr. Karsten Tolle Vorl Transaktionen in Praxis Dr. Karsten Tolle Vorl. 13.06.2017 Probleme bei Transaktionen Lost Update und Inconsistent Retrieval Sichtweise vom Benutzer Auszug aus SQL 92 1) P1 ("Dirty read"): SQL-transaction

Mehr

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Trigger. Andreas Schmidt Trigger 1/25

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Trigger. Andreas Schmidt Trigger 1/25 Trigger Andreas Schmidt Trigger 125 Trigger Konzept, um automatisch auf vordefinierte Ereignisse in der Datenbank zu reagieren Trigger sind mit Datenbanktabelle verknüpft Auslösung durch DML Befehle INSERT,

Mehr

Order Ansicht Inhalt

Order Ansicht Inhalt Order Ansicht Inhalt Order Ansicht... 1 Inhalt... 1 Scope... 2 Orderansicht... 3 Orderelemente... 4 P1_CHANG_CH1... 6 Function: fc_ins_order... 7 Plug In... 8 Quelle:... 8 Anleitung:... 8 Plug In Installation:...

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1) Vorlesung #3 SQL (Teil 1) Fahrplan Wiederholung/Zusammenfassung Relationales Modell Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE...) SQL DML (INSERT, UPDATE, DELETE)

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. 8 Hausaufgabe 1 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de)

Mehr

Fakultät IWI DB & IS II - SS PHP Teil 2. Zugriff auf Datenbanken. Objektorientierung in PHP5. Andreas Schmidt PHP - Teil 2 1/24

Fakultät IWI DB & IS II - SS PHP Teil 2. Zugriff auf Datenbanken. Objektorientierung in PHP5. Andreas Schmidt PHP - Teil 2 1/24 PHP Teil 2 Zugriff auf Datenbanken Objektorientierung in PHP5 Andreas Schmidt PHP - Teil 2 1/24 Datenbankzugriff mit PHP verschiedene Varianten native Schnittstelle (mysql_, ora_,...) ODBC Funktionen

Mehr

Erstellen und Verwalten von Tabellen

Erstellen und Verwalten von Tabellen Erstellen und Verwalten von Tabellen Als nächstes müssen die Tabellen der Datenbank Personalwesen erzeugt werden. Die Syntax dazu lautet: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(TABELLENDEFINITION,

Mehr

Web Technologien Klassische Datenbanken am Beispiel von MySQL

Web Technologien Klassische Datenbanken am Beispiel von MySQL Web Technologien Klassische Datenbanken am Beispiel von MySQL Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Department of Law and Economics WS 2011/2012 Wednesdays, 8:00

Mehr

PostgreSQL Ein Überblick

PostgreSQL Ein Überblick 26. August 2007 Agenda Neue Funktionen im Bereich SQL, XML und Volltextsuche Geschwindigkeitsverbesserungen Neue Erweiterungen (contrib) XML (1) Neuer Datentyp xml ( well-formedness ) Viele Funktionen

Mehr

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012 Datenbanken Datenintegrität + Datenschutz Tobias Galliat Sommersemester 2012 Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus

Mehr

DOAG HC ApEx Workshop. OPITZ CONSULTING GmbH 2009 Seite 1

DOAG HC ApEx Workshop. OPITZ CONSULTING GmbH 2009 Seite 1 OPITZ CONSULTING GmbH 2009 Seite 1 Ein Kurzeinstieg in Oracle Application Express Enno Schulte, Werksstudent OPITZ CONSULTING Gummersbach GmbH Fachhochschule Gummersbach, 07.10.2009 OPITZ CONSULTING GmbH

Mehr