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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 Tutorium zum Aufbau einer objektrelationalen Abbildungsschicht in PHP (Version 2.8 vom ) Einleitung Im folgenden wird die Erstellung einer Klasse zur Realisierung einer OR-Schicht erläutert. Die Klasse enthält die Basisfunktionalität zum Anlegen, Auslesen, Ändern und Löschen von Datensätzen (konkret Schiffe). Das vorliegende Tutorium beschreibt die Implementierung einer möglichen Zugriffsschicht so wie sie dann auch im nächsten Übungsblatt als Programmierrahmen vorgegeben ist. Datenbank Zu Beginn legen wir erst mal die Datenbank segeltoern mit der Tabelle Schiff an. Dazu rufen wir in einem DOS-Fenster das Kommandozeilentool mysql.exe auf 1 : mysql.exe -u root Anschließend geben wir folgende Statements an: drop database if exists segeltoern; create database segeltoern; use segeltoern; CREATE TABLE schiff ( s_id bigint(20) NOT NULL, s_name varchar(20) NOT NULL, s_laenge double NOT NULL, s_plaetze int(11) NOT NULL, PRIMARY KEY (s_id) ); Danach tragen wir mal zwei Schiffe ein: insert into schiff (s_id, s_name, s_laenge, s_plaetze) values(1, Fury, 12.6, 7); 1. alternativ kannst du auch eine Oracle Datenbank verwenden. Andreas Schmidt PHP-Fingerübungen 1/11

2 insert into schiff (s_id, s_name, s_laenge, s_plaetze) values(2, Olga II, 15.1, 8); Auflisten der beiden Datensätze mit: select * from schiff; CRUD-Schicht Anschließend legen wir eine Datei mit dem Namen CRUD_Schiff.php an und erstellen die folgende Klasse CRUD_Schiff mit Konstruktor, Getter-/Setter-Methoden sowie einer Methode tostring() zun Anzeigen eines Datensatzes: <?php class CRUD_Schiff { protected $id; protected $name; protected $laenge; protected $plaetze; /** * Konstruktor */ function construct($id, $name, $laenge, $plaetze) { $this->id = $id; $this->name = $name; $this->laenge = $laenge; $this->plaetze = $plaetze; /* * GETTER */ public function getid() { return $this->id; Andreas Schmidt PHP-Fingerübungen 2/11

3 public function getname() { return $this->name; public function getlaenge() { return $this->laenge; public function getplaetze() { return $this->plaetze; /* * SETTER */ public function setname($name) { $this->name = $name; public function setlaenge($laenge) { $this->laenge = $laenge; public function setplaetze($plaetze) { $this->plaetze = $plaetze; /** * tostring Funktion */ public function tostring() { $str = "$this->id: $this->name - $this->laenge "; $str.= "$this->plaetze Plaetze"; return $str; ## Ende Klasse CRUD_Schiff Andreas Schmidt PHP-Fingerübungen 3/11

4 Schreib jetzt ein kleines Testprogramm, das eine Schiffsinstanz erzeugt und diese mittels print ausgibt. Als nächstes erstellen wir in der Klasse CRUD_Schiff eine Klassenmethode getall(), welche alle Schiffe zurückliefern soll: public static function getall() { // SQL-Statement $sql = "select s_id as id, s_name as name, s_laenge as laenge, s_plaetze as plaetze from schiff"; $list = MDB2_Util::query($sql); $result = array(); foreach ($list as $s) $result[] = new CRUD_Schiff($s['id'], $s['name'], $s['laenge'], $s['plaetze']); return $result; Die Methode nutzt die Hilfsklasse MDB2_Util, welche du dir von der Homepage herunterladen kannst. Konkret wird die Klassenmethode query(...) genutzt, welche ein SQL-Statement entgegen nimmt und ein Array der Ergebnisdatensätze zurückliefert. Jeder Datensatz wird als Dictionary zurückgeliefert, dessen Schlüssel die (Alias) Namen der Spalten des Select-Statements sind. Um dir die Struktur des Resultats anzuschauen kannst du den Befehl print_r($list); hinter den Methodenaufruf schreiben. Anschließend wird über die Ergebnisdatensätze iteriert und Instanzen der Klasse CRUD_Schiff erzeugt. Damit die Hilfsklasse MDB2_Util genutzt werden kann muss diese zuvor noch eingebunden werden. Dies geschieht zu Beginn der Datei (aber innerhalb des PHP-Blocks) durch den Befehl include 'MDB2_Util.php'; Unsere bisherige Implementierung können wir jetzt durch das folgende Programm testen 1 : Andreas Schmidt PHP-Fingerübungen 4/11

5 <?php include 'CRUD_Schiff.php'; include 'MDB2_Util.php'; $dsn = 'mysql://root:@localhost/segeltoern'; MDB2_Util::connect($dsn); foreach (CRUD_Schiff::getAll() as $schiff) echo $schiff,"\n"; MDB2_Util::close(); Das Programm führen wir von der Kommandozeile einer DOS-/oder CYGWIN- Box aus: $ php.exe 1 test.php und die Ausgabe sollte in etwa wiefolgt aussehen: 1: Fury Plaetze 2: Olga II Plaetze Im nächsten Schritt soll die CRUD-Schicht um eine Methode zum anlegen von Datensätzen erweitert werden Dazu erstellen wir eine statische Methode create(...), welche sowohl den Datensatz in der Datenbank anlegt, als auch eine Instanz des Datensatzes zurückliefert: public static function create($name, $laenge, $plaetze) { $id = MDB2_Util::create_id('schiff')+1000; // SQL-Statement $sql = "insert into schiff (s_id, s_name, s_laenge, s_plaetze) values (?,?,?,?)"; // execute query $data = array($id, $name, $laenge, $plaetze); $affected_rows = MDB2_Util::query($sql, $data); if ($affected_rows!=1) die("fehler: Datensatz konnte nicht angelegt werden!"); return new CRUD_Schiff($id, $name, $laenge, $plaetze); 1. Wenn du eine Oracle Datenbank benutzt, musst du den Connection-String entsprechend anpassen. (etwa so: oci8://<username>:<passwort>@oracledbwi) 1. Im Poolraum bitte die PHP-Version unter h:/schmidt/db2-php.bat verwenden. Andreas Schmidt PHP-Fingerübungen 5/11

6 Die Methode erzeugt zu Beginn mittels einer weiteren Hilfsmethode (create_id(...)) der Klasse MDB2_Util eine eindeutige ID für das Schiff und bastelt dann das Insert-Statement mit Platzhaltern (?) zusammen. Anschließend werden in einem Array ($data) die Werte für die Platzhalter eingetragen und das ganze dann wieder über die Methode query(...) in die Datenbank eingetragen. Im Unterschied zu einem Select-Statement, das die Ergebnisdatensätze in einem Array zurückliefert wird im Falle eines insert,update/oder delete Statements die Anzahl der vom SQL-Statement betroffenen Datensätze zurückgeliefert, bei diesem insert-statement logischerweise 1. Wird eine anderer Werzt zurückgeliefert so ist irgendwas falsch gelaufen und wir geben eine Fehlermeldung aus. Zum Abschluss der Methode wird noch eine Instanz mit den Werten erzeugt und diese zurückgeliefert. Als nächstes werden wir eine Methode zum löschen eines Datensatzes implementieren. Dies wird durch eine Instanzenmethode realisiert. public function delete() { // SQL-Statement $sql = "delete from schiff where s_id =?"; // execute statement $result = MDB2_Util::query($sql, array($this->id)); // error handling if ($result!= 1) die("fehler: Schiff ($id) wurde nicht aus der Tabelle gelöscht"); unset($this); Die Methode ist relativ selbsterklärend, lediglich das unset($this) am Ende sei noch etwas genauer erläutert: unset(...) zerstört die übergebene Variable (hier: die Instanz selbst), so dass diese später vom Programm aus nicht mehr verwendet werden kann. Als nächstes soll von dir die statische Methode getbyid($id) implementiert Andreas Schmidt PHP-Fingerübungen 6/11

7 werden. Die Methode soll genau eine Instanz zurückliefern, die durch die ID ($id) spezifiziert wird. Nimm als Vorlage die zuvor implementierte Methode getall() und ändere sie entsprechend ab. Wird kein Schiff mit der entsprechenden ID gefunden, so brich mit einer Fehlermeldung ab. Mittels der setter-methoden kann eine Instanz modifiziert werden, die Änderungen werden jedoch nicht in die Datenbank übertragen. Dazu benötigen wir eine Methode update(), welche den Zustand der Instanz mit der Datenbank synchronisiert: public function update() { // SQL-Statement $sql = "update schiff set s_name =?, s_laenge =?, s_plaetze =? where s_id =?"; // Parameter array $data = array($this->name, $this->laenge, $this->plaetze, $this->id); // execute query $result = MDB2_Util::query($sql, $data); Soweit zur Implementierung einer einfachen OR-Schicht für eine Klasse. Eine weitere sinnvolle Funktionalität liefert beispielsweise die Klassenmethode getby- Condition($cond). In der einfachsten Implementierung wird die Bedingung direkt in Form einer SQL-Bedingung formuliert und innerhalb der Methode an das Select-Statement angehängt. Beachte aber, dass dies der SQL-Injection Tür und Tor öffnet, wenn man nicht vorsichtig ist und die Bedingung auf gemeine Zeichen 1 hin überpürft. 1:n-Beziehung Als nächstes soll die Datenbank zusätzlich um eine Tabelle Hafen erweitert werden. Gleichzeitig soll jedes Schiff einen Heimathafen besitzen. Hierbei handelt es sich um eine klassische 1:n-Beziehung, die wie wir wissen mittels Fremdschlüssel in der Datenbank realisiert wird. Die Befehle zum Anlegen der Tabelle Hafen, dem hin- 1. Beispielsweise Anführungszeichen und Kommentare, wenn die Zeichenkette welche die bedingung forrmuliert auch aus Benutzereingaben aufgebaut wird. Andreas Schmidt PHP-Fingerübungen 7/11

8 zufügen des Fremdschlüssels s_hafen_fk und zweier Beispieldatensätze lauten wiefolgt: CREATE TABLE hafen ( h_id bigint(20) NOT NULL, h_name varchar(50) NOT NULL, h_ort varchar(50) NOT NULL, h_anlegeplaetze int(11) NULL, PRIMARY KEY (h_id) ); ALTER TABLE schiff add s_hafen_fk bigint(20) references hafen(h_id); insert into hafen (h_id, h_name, h_ort) values(1, 'English Harbour','Nelsons Dock (Antiqua)'); insert into hafen (h_id, h_name, h_ort) values(2, 'Marine de Fort','Point a Pitre (Guadeloupe)'); Als nächstes muss nun die zuvor entwickelte OR-Schicht der Klasse CRUD_Schiff um dieses Attribut erweitert werden. Dazu muss dass Attribut als Instanzenvariable in der Klasse definiert werden, im Konstruktor Erwähnung finden und auch überall dort wo SQL-Statements vorkommen (außer natürlich bei delete()). Führe diese Änderungen zur Übung durch. Überprüfe deine Modifikationen 1 indem du einem der beiden Schiffe einen Heimathafen zuweist und das Testprogramm durchlaufen lässt. Erweitere gegebenenfalls das Testprogramm. Erstelle weiterhin die Klasse CRUD_Hafen mit den notwendigen Instanzenvariablen, einem Konstruktor, der Getter-Methode getid(), einer statischen Methode getbyid($id) 2 und der Methode tostring(). 1. Wird das zusätzliche Attribut in die Datenbank eingetragen und wieder ausgelesen? 2. Funktionalität analog zu der der Klasse CRUD_Schiff. Andreas Schmidt PHP-Fingerübungen 8/11

9 Als nächstes erstellen wir eine Methode gethafen(...), welche eine Hafeninstanz zurückliefern soll. Die Implementierung sieht wiefolgt aus: public function gethafen() { if ($this->hafen_fk) return CRUD_Hafen::getById($this->hafen_fk); else return null; Die Implementierng überprüft zuerst, ob bei der Instanz die Instanzenvariable hafen_fk gesetzt wurde (andernfalls hat das Schiff keinen Heimathafen). Ist dies der fall so wird die Klassenmethode getbyid(...) der Klasse CRUD_Hafen aufgerufen, welche die Hafeninstanz zurückliefert. Analog dazu kann enine Methode sethafen($hafen_instanz) definiert werden, welche einem Schiff einen Heimathafen zuordnetm (siehe Übnungsblatt 2). Soll nun zusätzliche Applikationslogik mit hinzu programmiert werden, so geschieht dies nicht in der CRUD-Klasser, sondern in einer von der CRUD-Klasse abgeleiteten Klasse. Die minimale Implementierung sieht wiefolgt aus: <?php require_once('crud_schiff.php'); class Schiff extends CRUD_Schiff {?> Existiert eine abgeleitete Applikationslogikklasse so muss überall in der CRUD- Schicht wo Instanzen der CRUD-Schicht erzeugt werden, die Erzeugung von Instanzen der abgeleiteten Klasse erfolgen - sonst geht die schöne Appliationslogik gleich wieder flöten ;-). Andreas Schmidt PHP-Fingerübungen 9/11

10 Dictionary als Konstruktorparameter: Setzt man beim Konstruktor statt mehrerer Parameter einen assoziativen Array ein, so kann man die Realisierung der CRUD-Schicht etwas vereinfachen. Beispielswiese sieht der Konstruktor der Klasse CRUD-Schiff dann wiefolgt aus: function construct($dic) { $this->id = $dic['id']; $this->name = $dic['name']; $this->laenge = $dic['laenge']; $this->plaetze = $dic['plaetze']; $this->hafen_fk = $dic['hafen_fk']; Der Vorteil bei dieser Implementierung ist, dass bei Select-Anfragen die Ergebnisdatensätze in Form eines Dictionaries zurückgeliefert werden, und man deshalb folgendes schreiben kann: $class ='Film'; $res = $stmt->execute($data); $results = array(); while($row = $res->fetchrow(mdb2_fetchmode_assoc)) $results[] = new $class($row); return $results; Wie man sieht ist innerhalb der Schleife, welche die Datensätze aus der datenbank abholt und die Instanzen erzeugt kein klassenspezifischer Code mehr vorhanden. Alle Konstruktoren besitzen einen Parameter (das Dioctionary) und das Erzeugen der Instanzen der entsprechenden Klasse kannn durch den Parameter $class erfolgen. Dieser sachverhalt erlaubt uns die Definition einer weiteren Methode in der Klasse MDB2_Util, die wie query(...) funktioniert, jedoch bereits Instanzen der angegebenen Klasse erzeugt. Dies führt zu einer Reduktion des notwenigen Codes und zu einer höheren Performance, da die liste der Ergebnisdatensätze kein zweites mal (zum Erzeugen der Instanzen) durchlaufen werden muss. So reduziert Andreas Schmidt PHP-Fingerübungen 10/11

11 sich zum Beispiel der Code für die Methode CRUD_Schiff::getAll() auf: public static function getall() { // SQL-Statement $sql = "select s_id as id, s_name as name, s_laenge as laenge, s_plaetze as plaetze from schiff"; return MDB2_Util::object_query($sql, 'Schiff'); einfach, oder? Nach diesem Prinzip ist auch der Programmierrahmen für die 2. Übung aufgebaut. Andreas Schmidt PHP-Fingerübungen 11/11

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

Datenbanken und Informationssysteme II (PO B.3)

Datenbanken und Informationssysteme II (PO B.3) Datenbanken und Informationssysteme II (PO B.3) Szenario Öffentlicher Nahverkehr: Es gibt Haltestellen, Streckenabschnitte, Linien und Fahrzeiten. Ein Streckenabschnitt ist die direkte Verbindung zwischen

Mehr

Datenbanken und Informationssysteme II (PO B.4)

Datenbanken und Informationssysteme II (PO B.4) Datenbanken und Informationssysteme II (PO B.4) Szenario Öffentlicher Nahverkehr: Es gibt Haltestellen, Streckenabschnitte, Linien und Fahrzeiten. Ein Streckenabschnitt ist die direkte Verbindung zwischen

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 und Informationssysteme II

Datenbanken und Informationssysteme II Fakultät für Informatik und Wirtschaftsinformatik SS 2012 Datenbanken und Informationssysteme II Szenario: Stundenplan. Es gibt Dozenten, Veranstaltungen (Typ: V(orlesung), U(ebung) und L(abor)), die jeweils

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

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

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

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 Probeklausur Datenbanken und Informationssysteme II Szenario: Flugverkehr Aufgabe 1 (Trigger) [ 30 ] a) Analysiere das relationale Schema aus Anhang A und erstelle ein ER-Diagramm (Notation mit min/max-

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

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

Datenbanken und Informationssysteme II

Datenbanken und Informationssysteme II Datenbanken und Informationssysteme II Szenario: Mondial (zugehöriges DDL-Schema in Anhang A) Es gibt Länder, Provinzen, Städte und Grenzen. Aufgabe 1 (Trigger) [23 + 5] a) Analysiere das relationale Schema

Mehr

Übersicht der wichtigsten MySQL-Befehle

Übersicht der wichtigsten MySQL-Befehle Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit

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

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

Mehr

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

Übungen zum Bioinformatik-Tutorium. Blatt 6

Übungen zum Bioinformatik-Tutorium. Blatt 6 Institut für Informatik Wintersemester 2018/19 Praktische Informatik und Bioinformatik Prof. Dr. Ralf Zimmer Übungen zum Bioinformatik-Tutorium Blatt 6 Termin: Dienstag, 27.11.2018, 11 Uhr 1. Klassen und

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 29.6.2017 Probeklausur Datenbanken und Informationssysteme II Szenario: Gütertransport: Es gibt Pakete, Container, Transportaufträge, Orte und Verkehrsmittel.

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

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

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

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

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

Unsere Webapplikation erweitern

Unsere Webapplikation erweitern Unsere Webapplikation erweitern Um mit Play zu arbeiten: 1. Starten Sie zunächst den MySQL-Server. Führen Sie dazu auf dem USB-Stick mysql_start.cmd aus. 2. Sie brauchen eine Windows-Kommandozeile: Starten

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

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

Ü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

Datenbanken im WI-Unterricht mit

Datenbanken im WI-Unterricht mit Datenbanken im WI-Unterricht mit Inhaltsverzeichnis 1 ER-Modell - Entity Relationship Modell 1 1.1 Entitäten................................................. 2 1.2 Relationen................................................

Mehr

GML und Bibliothek oracle.sdoapi

GML und Bibliothek oracle.sdoapi GML und Bibliothek oracle.sdoapi Nachfolgend werden die Java-Klassen aus dem GML-Kapitel unter Verwendung der alten Klassenbibliothek oracle.sdoapi dargestellt. Erzeugung von GML 3.1 aus SDO_GEOMETRY-Objekten

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

Einführung in die Programmierung für NF MI. Übung 07

Einführung in die Programmierung für NF MI. Übung 07 Einführung in die Programmierung für NF MI Übung 07 Inhalt Wiederholung Kommentare Wiederholung Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 07 2 Wiederholung Kommentare Kommentare

Mehr

Probeklausur Datenbanken und Informationssysteme II (SS16)

Probeklausur Datenbanken und Informationssysteme II (SS16) Hochschule Karlsruhe Technik und Wirtschaft 22.6.2016 Probeklausur Datenbanken und Informationssysteme II (SS16) Szenario: Musiker, Bands, Album, Lieder. Aufgabe 1 (Trigger) [ 29 ] a) Analysiere das relationale

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

Ü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

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

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 Andreas Schmidt PHP (Teil 3) 1/33 object relational mapping layer two

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

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

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

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe: Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -

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

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

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe MySQL 4, 5 Kapitel 20a: PHP Teil 2 Gliederung 1 2 Gliederung 1 2 Die ermöglicht ein Bedingtes Ausführen von Code-Abschnitten. Nur wenn die Bedingung erfüllt ist wird der Block hinter if ausgeführt. Ist

Mehr

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS Test. Dauer: 20 Minuten. 10 Minuten Pause. Dr. Christian Senger.

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS Test. Dauer: 20 Minuten. 10 Minuten Pause. Dr. Christian Senger. Test Dauer: 20 Minuten 10 Minuten Pause. PHP & DBs 1 Befüllen Sie ein Dictionary mit dem kleinen 1x1 Keys: 1x1, 1x2, 9x9 Ausgabe in einer Tabelle (9 Zeilen, 9 Spalten) PHP & DBs 2 PHP & DBs Zugriff auf

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

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

Universität Augsburg, Institut für Informatik WS 2011/2012 Prof. Dr. W. Kießling 09. Dez Dr. M. Endres, Dr. S. Mandl, F. Wenzel Lösungsblatt 6

Universität Augsburg, Institut für Informatik WS 2011/2012 Prof. Dr. W. Kießling 09. Dez Dr. M. Endres, Dr. S. Mandl, F. Wenzel Lösungsblatt 6 Universität Augsburg, Institut für Informatik WS 2011/2012 Prof. Dr. W. Kießling 09. Dez. 2011 Dr. M. Endres, Dr. S. Mandl, F. Wenzel Lösungsblatt 6 Datenbanksysteme I Aufgabe 1: Deklarative Änderungsoperationen

Mehr

Programmierung für Mathematik HS11

Programmierung für Mathematik HS11 software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren

Mehr

Objektorientierung. Marc Satkowski 20. November C# Kurs

Objektorientierung. Marc Satkowski 20. November C# Kurs Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung

Mehr

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

Mehr

Oracle PL/SQL Tutorium (Version 3.7 vom )

Oracle PL/SQL Tutorium (Version 3.7 vom ) Oracle PLSQL Tutorium (Version 3.7 vom 6.10.2017) Einleitung Im vorliegenden Tutorium soll eine Einführung in PLSQL erfolgen. Als Grundlage muss man sich von der Kurshomepage die Tabellendefinition sowie

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

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

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

Softwaretechnik WS 16/17. Übungsblatt 01

Softwaretechnik WS 16/17. Übungsblatt 01 Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

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

Datenbanken erstellen Liste von Datenbanken anzeigen Datenbanken löschen. MySQL 4, 5. Kapitel 06: Datenbanken. Marcel Noe

Datenbanken erstellen Liste von Datenbanken anzeigen Datenbanken löschen. MySQL 4, 5. Kapitel 06: Datenbanken. Marcel Noe MySQL 4, 5 Kapitel 06: Datenbanken Gliederung 1 Datenbanken erstellen 2 3 Datenbanken erstellen CREATE DATABASE erstellt. Optional kann der Parameter IF NOT EXISTS die Datenbank bereits existiert.

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

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

Entwicklungsumgebung für die Laborübung

Entwicklungsumgebung für die Laborübung Entwicklungsumgebung für die Laborübung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung

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

Übungsblatt 8- Lösungsvorschlag

Übungsblatt 8- Lösungsvorschlag Universität Innsbruck - Institut für Informatik Prof. Günther Specht, R.Binna, N.Krismer, M. Tschuggnall 30. November 2012 Proseminar Datenbanksysteme Übungsblatt 8- Lösungsvorschlag Aufgabe 1 (Trigger)

Mehr

Einführung in die Programmierung

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

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

PROGRAMMIERPROJEKT 2016 VERWENDETE TECHNOLOGIEN

PROGRAMMIERPROJEKT 2016 VERWENDETE TECHNOLOGIEN PROGRAMMIERPROJEKT 2016 VERWENDETE TECHNOLOGIEN Mathias Weber und Annette Bieniusa ÜBERBLICK Spark SQL SQL in Java SPARK WAS IST DAS? Framework zur Erstellung von Web-Anwendungen in Java Einfach zu verwenden

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

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

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

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - WS Metadaten. Andreas Schmidt Metadaten 1/17

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - WS Metadaten. Andreas Schmidt Metadaten 1/17 Metadaten Andreas Schmidt Metadaten 1/17 Metadaten Metadaten sind Daten über Daten Data-Dictionary speichert Informationen über die Struktur der Daten, z.b.: Tabellen, Spalten, Datentypen Primär- und Fremdschlüssel,

Mehr

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 9 Embedded SQL Vorlesung Datenbanken 1 Embedded SQL (siehe auch [Date00]) Arbeitsweise ähnlich PL/SQL, allerdings: Normale Programmiersprache mit eingestreuten SQL-Befehlen und anderen Befehlen

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

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen HACK #55 Hack Doppeltes Abschicken von Formularen verhindern Durch die Verwendung einer Transaktionstabelle in Ihrer Datenbank können Sie das klassische Problem der doppelt abgeschickten Formulare verhindern.

Mehr

C++ Anwendungskurs Tag 4: Datenbanken Daniela Horn Institut für Neuroinformatik Real-time Computer Vision

C++ Anwendungskurs Tag 4: Datenbanken Daniela Horn Institut für Neuroinformatik Real-time Computer Vision C++ Anwendungskurs Tag 4: Datenbanken Daniela Horn Institut für Neuroinformatik Real-time Computer Vision 15. März 2018 C++ Anwendungskurs 15. März 2018 Daniela Horn 1 Übersicht 1 Motivation 2 Relationale

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011 Übung zur Vorlesung Multimedia im Netz Ludwig-Maximilians-Universität Wintersemester 2010/2011 Ludwig-Maximilians-Universität München Multimedia im Netz - Übung - 2-1 Übungsblatt - 2 Thema: HTML, PHP und

Mehr

Multimedia im Netz Wintersemester 2013/14. Übung 03 (Nebenfach)

Multimedia im Netz Wintersemester 2013/14. Übung 03 (Nebenfach) Multimedia im Netz Wintersemester 2013/14 Übung 03 (Nebenfach) Ludwig-Maximilians-Universität München Multimedia im Netz WS 2013/14 - Übung 3-1 Datenbanken und SQL Mit Hilfe von Datenbanken kann man Daten

Mehr

Oracle & Java HOW TO

Oracle & Java HOW TO Oracle & Java HOW TO Helge Janicke, Niels-Peter de Witt, Karsten Wolke 21. Januar 2002 Inhaltsverzeichnis 1 Java-Anbindung an Oracle-DB 2 2 Benötigte Programme und Daten 2 3 Einbinden der Klassen 2 4 Aufbau

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

Ü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

Kapitel 7: Referentielle Integrität

Kapitel 7: Referentielle Integrität Kapitel 7: Referentielle Integrität Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

PHP- Umgang mit Datenbanken (1)

PHP- Umgang mit Datenbanken (1) PHP- Umgang mit Datenbanken (1) Weitere Funktionen zum Umgang mit Datenbanken (Erzeugen, Löschen) und Tabellen (Erzeugen, Löschen) Zum Beispiel für das Erzeugen einer neuen Datenbank $dbname= blumendb

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

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

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung

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

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

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

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

Eine neue Datenbank erstellen

Eine neue Datenbank erstellen Eine neue Datenbank erstellen Eine neue Datenbank erstellen Eine Tabelle in der Entwurfsansicht erstellen Eine Tabelle in der Entwurfsansicht erstellen Eine Tabelle in der Entwurfsansicht erstellen Das

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr