Datenbanksysteme I. FB Automatisierung und Informatik: Datenbanksysteme I

Größe: px
Ab Seite anzeigen:

Download "Datenbanksysteme I. FB Automatisierung und Informatik: Datenbanksysteme I"

Transkript

1 Datenbanksysteme I Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum Tel / Inhalt 1. Grundlegende Begriffe der Datenbanktechnologie 2. Datenbankentwurf / Datenmodelle 3. ER-Modell / ER-Diagramm 4. SQL-Sprache 5. Normalisierung 6. SQL-Erweiterungen 2 1

2 SQL-Erweiterungen CREATE TABLE UPDATE TABLE COMPUTED BY SUB SELECT CASE ANY ALL JOINS AGGREGAT-FUNKTIONEN KEYS INDIZES CONSTRAINTS VIEWS 3 Create Table CREATE TABLE [schema.] table (column datatype [DEFAULT expr], ); Datentypen Oracle: Number(m,n), char, varchar, varchar2, date, time, Currency, Raw, Long Raw, CLOB, BLOB, NChar, NChar2, CFile, BFile Datentypen Interbase: Numeric, char, Varchar, date, time, timestamp, smallint, integer, bigint, float, double Presicion, Currency, Bool, Blob 4 2

3 Create Table CREATE TABLE emp ( empno number(4) NOT NULL primary key, ename varchar2(10), job varchar2(9), mgr number(4), hiredate date default sysdate, sal number(7,2), comm number(7,2), deptno number(2), constraint emp_pk primary key (empno), primary key (empno) // Alternativ ); 5 Create Table Schlüsselwörter: NOT NULL NULL mysql AUTO_INCREMENT mysql DEFAULT DEFAULT NULL Firebird COMPUTED BY 6 3

4 Domains definieren Domains sind benutzerdefinierte Datentypen. Werden häufig für Längendefinitionen von Strings und Zahlen verwendet. CREATE DOMAINS mynumber as INTEGER DEFAULT 4712 CREATE DOMAINS mystring as CHAR(200) CREATE DOMAINS mynumber as NUMERIC(7,2) CREATE DOMAINS myname as VARCHAR(50) CREATE DOMAINS mystudiengang as VARCHAR(10) CHECK (value IN ("IB", "KT", II", "AT")); 7 Domains verwenden CREATE DOMAIN mynumber as INTEGER DEFAULT 4712 CREATE TABLE emp ( id AS INTEGER NOT NULL, Hausnummer AS MYNUMBER, Name AS CHAR(200) ); 8 4

5 Domains ändern CREATE DOMAIN mynumber as INTEGER DEFAULT 4712 // Defaultwert ändern ALTER DOMAIN mynumber SET DEFAULT 4711 // // Domain löschen DOMAIN DROP mystudiengang 9 Tabellenstruktur ändern ALTER TABLE emp ADD gehalt float default ; ADD gehalt2 float NOT NULL; ALTER TABLE emp ADD PRIMARY KEY(empno); ALTER TABLE emp ADD CONSTRAINT chpreis CHECK(preis>0.0); ALTER TABLE emp DROP ; DROP TABLE emp DELETE FROM emp; 10 5

6 Daten einfügen INSERT INTO emp VALUES (Attr1, Attr2, Attr3,.Attr4..) INSERT INTO emp (Attr2, Attr3) VALUES (Attr2, Attr3) INSERT INTO emp (Attr2, Attr3) SELECT Attr2, Attr3 FROM emp2 WHERE deptno>122; 11 Daten ändern UPDATE emp SET salary= ; UPDATE emp SET salary1= , salary2= WHERE deptno IN (12,33,22); UPDATE emp SET salary=salary*2; 12 6

7 Daten löschen DELETE FROM emp ; DELETE FROM emp WHERE deptno IN (12,33,22); DELETE FROM emp WHERE salary<1000; 13 Datenredundanz? CREATE TABLE emp ( empno number(4), ename varchar2(10), salmonth number(7,2), salyear number(9,2) ) INSERT INTO emp VALUES (123, "Meier", , ); UPDATE emp SET salmonth=2100, SET salyear=25200 WHERE ename= "Meier ; 14 7

8 Datenredundanz verhindern mit COMPUTED BY CREATE TABLE emp ( empno number(4), first_name varchar2(30), last_name varchar2(40), salmonth number(7,2), salyear COMPUTED BY (salmonth*12), full_name COMPUTED BY (last_name ", " first_name) ) 15 SUBSELECT: 1. Variante Bestimme den Abteilungsnamen des Mitarbeiters Müller SELECT deptname FROM dept WHERE deptno = ( SELECT deptno FROM emp WHERE Ename="Müller" ); 16 8

9 SUBSELECT: 2. Variante Zeige alle Mitarbeiter mit dem Abteilungsnamen: SELECT ename, deptno, ( SELECT dname FROM dept WHERE e.deptno=deptno ) FROM emp e; SELECT full_name, dept_no, ( SELECT department FROM department WHERE e.dept_no=dept_no ) FROM employee e; 17 CASE Ermöglichen bedingte Abfragen in der Form einer IF-THEN-ELSE- Anweisung: CASE expr WHEN comparison_expr1 THEN return_expr1 WHEN comparison_expr2 THEN return_expr2 WHEN comparison_exprn THEN return_exprn ELSE else_expr END 18 9

10 CASE-Beispiel Alle Angestellte in der Abteilung VP sollen eine 10% Lohnerhöhung erhalten. Alle Angestellte in der Abteilung Eng erhalten eine 20% Lohnerhöhung SELECT last_name, last_name, job_code, job_code, salary, salary CASE job_code WHEN "VP" THEN (1.10*salary) WHEN "Eng" THEN (1.20*salary) ELSE salary END Neues_Gehalt FROM employee Update-SQL:? Vorlesungsübung 19 Einfügen einer neuen Spalte: ALTER TABLE EMPLOYEE ADD salnew DECIMAL(15,2) Alle Gehälter übernehmen: UPDATE employee SET salnew = salary; Gehaltserhöhung: UPDATE employee SET salnew=(1.10*salary) WHERE job_code = "VP" ; UPDATE employee SET salnew=(1.20*salary) WHERE job_code = Eng" ; 20 10

11 Mehrfach Operator ANY Der Mehrfach-Operator ANY vergleicht einen Wert mit jedem von einer Unterabfrage zurückgegebenen Wert. in der Hauptabfrage, ob die Datensätze in der ermittelten Menge enthalten sind. < ANY bedeutet weniger als das Maximum > ANY bedeutet mehr als das Minimum = ANY hat dieselbe Bedeutung wie IN 21 Mehrfach Operator ANY Beispiel: Gesucht sind die Mitarbeiter, die keine SRep sind, und ein geringeres Gehalt beziehen als einer der Mitarbeiter mit der Jobkennung SRep. SELECT emp_no, last_name, job_code, salary FROM employee WHERE salary < ANY ( SELECT salary FROM employee WHERE job_code = "SRep" ) AND job_code <> "SRep"; 22 11

12 Mehrfach Operator ALL Der Mehrfach-Operator ALL vergleicht einen Wert mit allen von einer Unterabfrage zurückgegebenen Werten in der Hauptabfrage, ob die Datensätze in der ermittelten Menge enthalten sind. > ALL bedeutet mehr als das Maximum < ALL bedeutet weniger als das Minimum 23 Mehrfach Operator ALL Beispiel: Gesucht sind die Mitarbeiter, die keine SRep sind, und deren Gehalt unter dem Gehalt aller Angestellten mit der Jobkennung SRep liegt. SELECT emp_no, last_name, job_code, salary FROM employee WHERE salary < ALL ( SELECT salary FROM employee WHERE job_code = "SRep" ) AND job_code <> "SRep"; 24 12

13 Tabellen verknüpfen Mit Hilfe von Operatoren werden normalisierte Tabellen verknüpft, so dass eine neue Virtuelle Tabelle erzeugt wird. Mögliche Varianten: Vereinigungsmenge Schnittmenge Differenzmenge JOIN, UNION INTERSECT MINUS 25 Einfacher JOINS Ein Verbund ist ein JOIN über mehrere Tabellen. Maximal kann man das kartesische Produkt erhalten. Beispiel: Anzeige der Mitarbeiter mit den Abteilungsnamen. SELECT FROM WHERE e.full_name, e.emp_no, e.dept_no, d.department employee e, department d e.dept_no = d.dept_no; // Kreuzprodukt SELECT e.full_name, e.emp_no, e.dept_no, d.department FROM employee e, department d 26 13

14 Typen von JOINS Cross-JOIN Theta-JOIN Inner-JOIN = Equi-JOIN Natural-JOIN Left-Outer-JOIN Right-Outer-JOIN Full-Outer-JOIN = Full-JOIN Semi-JOIN Self-JOIN 27 Beispieldatenbank JOIN.fdb EmpNo Last_Name First_Name 1 Jones Michael 2 Gates Bill 3 Smith Will 4 Lennon John EmpNo Phone

15 CREATE TABLE CREATE TABLE emp ( empno integer, last_name char(40), first_name char(40) ); CREATE TABLE phone ( empno integer, phone char(40) ); INSERT INTO INSERT INTO emp VALUES ( 1, 'Jones', 'Michael'); INSERT INTO emp VALUES ( 2, 'Gates', 'Bill'); INSERT INTO emp VALUES ( 3, 'Smith', 'Will'); INSERT INTO emp VALUES ( 4, 'Lennon', 'John'); INSERT INTO phone VALUES ( 1, 200); INSERT INTO phone VALUES ( 4, 300); INSERT INTO phone VALUES ( 5, 230); INSERT INTO phone VALUES ( 7, 450); 29 Cross-Join Gebildet wird das Kreuzprodukt. Kardanalität n x m. Im Beispiel: 16 Zeilen Theta-Join Aus dem Kreuzprodukt werden durch eine zusätzliche Bedingung die gültigen Einträge bestimmt. Beispiel: emp.empno < phone.empno Ergebnis: 11 Zeilen mod(a.nr,2) = mod(b.nr,2) A.Nr = B.Nr entspricht dem Equi-Join 30 15

16 Inner-Join Aus dem Kreuzprodukt werden durch eine interne bzw. externe Bedingung die gültigen Einträge bestimmt. Beispiel: // Hier doppelte Spalten, Ergebnis: 2 Zeilen SELECT * FROM emp, phone WHERE emp.empno = phone.empno; Natural-Join Entspricht dem Inner-Join, zusätzlich existieren KEINE doppelten Spalte. Beispiel: // Hier keine doppelte Spalten, Ergebnis: 2 Zeilen SELECT e.empno, e.last_name, e.first_name, p.phone FROM emp e, phone p WHERE e.empno = p.empno; 31 Left-Join Wieder ein Kreuzprodukt, aber von der linken (ersten) Tabellen werden alle Tupel in die neue Tabelle eingetragen (auch leere Einträge) Beispiel: SELECT e.empno Nr, e.last_name Mitarbeiter, p.phone Telefon from emp e LEFT OUTER JOIN phone p ON e.empno = p.empno; Nummer Mitarbeiter Telefon 1 Jones Gates <null> 3 Smith <null> 4 Lennon 300 Vorlesungsübung 32 16

17 Right-Join Wieder ein Kreuzprodukt, aber von der rechten (zweiten) Tabellen werden alle Tupel in die neue Tabelle eingetragen (auch leere Einträge) Beispiel: SELECT * from emp e RIGHT OUTER JOIN phone p ON e.empno = p.empno; EMPNO LAST_NAME FIRST_NAME EMPNO_1 PHONE 1 Jones Michael Lennon John <null> <null> <null> <null> <null> <null> Vorlesungsübung 33 Full-Outer-Join Wieder ein Kreuzprodukt, aber von der linke und rechten (ersten und zweiten) Tabellen werden alle Tupel in die neue Tabelle eingetragen (auch leere Einträge) Beispiel: SELECT * from emp e FULL OUTER JOIN phone p ON e.empno = p.empno; EMPNO LAST_NAME FIRST_NAME EMPNO_1 PHONE 1 Jones Michael Lennon John <null> <null> <null> <null> <null> <null> Gates Bill <null> <null> 3 Smith Will <null> <null> Vorlesungsübung 34 17

18 Semi-Join Einen Semi-Join erhält man durch einen Natural-Join (EQUI-Join, ein empno), bei dem dann nur die Spalten der ersten Tabelle angezeigt werden. EQUI-JOIN EMPNO LAST_NAME FIRST_NAME EMPNO_1 PHONE 1 Jones Michael Lennon John NATURAL-JOIN EMPNO LAST_NAME FIRST_NAME PHONE 1 Jones Michael Lennon John 300 SEMI-JOIN EMPNO LAST_NAME FIRST_NAME 1 Jones Michael 4 Lennon John 35 Self-Join Wieder ein Kreuzprodukt, aber von der gleichen Tabelle. Beispiel: Anzeige aller Mitarbeiter und deren Chefs (empno, mgr, ename) SELECT e1.empno, e1.mgr, e2.empno, e2.mgr, e2.ename from emp e1 INNER JOIN emp e2 ON e1.mgr = e2.mgr where e1.empno <> e2.empno order by e1.mgr 36 18

19 EMPNO MGR EMPNO_1 MGR_1 ENAME FORD SCOTT WARD WARD WARD WARD ALLEN ALLEN ALLEN ALLEN JAMES JAMES JAMES JAMES TURNER TURNER TURNER TURNER MARTIN MARTIN MARTIN MARTIN JONES JONES BLAKE BLAKE CLARK CLARK 37 JOIN Syntax ab SQL 99 Beispiele: INNER-JOIN SELECT * FROM emp e, phone p WHERE e.empno = p.empno; SELECT * FROM emp e INNER JOIN phone p ON e.empno = p.empno; SELECT a.a1, a.a2, c.a1, ca2 FROM tablea a INNER JOIN tableb b ON a.a1 = b.a2 INNER JOIN tablec c ON A.A3 = c.a1 ORDER BY c.a4; 38 19

20 Beispiele für JOINS Titel und Name Name und Abteilung Verkäufer und Artikel (Auto) Verkäufer und Kunde Name und Telefonnummer Name und Raum Name und Chef 39 Aggreatfunktionen Quelle:Oracle 40 20

21 Aggreatfunktionen Aggregatfunktionen werden auf Gruppen von Tupeln angewendet und geben pro Gruppe ein Ergebnis zurück. AVG COUNT MAX MIN STDDEV SUM VARIANCE 41 Aggreatfunktionen: Syntax Funktion AVG([DISTINCT ALL]n) COUNT({* [DISTINCT ALL]expr}) MAX([DISTINCT ALL]expr) MIN([DISTINCT ALL]expr) STDDEV([DISTINCT ALL]x) SUM([DISTINCT ALL]n) VARIANCE([DISTINCT ALL]x) Beschreibung Durchschnittswert von n-werten. NULL-Werte werden ignoriert. Anzahl der Zeilen, für die expr auf einen anderen Wert als einen NULL-Wert ausgewertet wird. (Alle mit * ausgewählten Zeilen zählen, einschließlich mehrfach vorhandener Zeilen und Zeilen mit NULL- Werten.) Höchster Wert von expr. NULL-Werte werden ignoriert. Kleinster Wert von expr. NULL-Werte werden ignoriert. Standardabweichung von n-werten. NULL-Werte werden ignoriert. Summe der Werte von n-werten. NULL-Werte werden ignoriert. Varianz von n-werten. NULL-Werte werden ignoriert

22 Aggreatfunktionen: Syntax SELECT [column,] group_function(column),... FROM table [WHERE condition] [GROUP BY column] [ORDER BY column]; Alle Spalten in der SELECT-Liste, die nicht in Gruppenfunktionen enthalten sind, müssen in der GROUP BY-Klausel angegeben werden. SELECT department_id, AVG(salary) FROM employees GROUP BY department_id ; 43 Richtlinien: Wenn Sie eine Gruppenfunktion in einer SELECT-Klausel angeben, können Sie nicht gleichzeitig einzelne Ergebnisse auswählen, es sei denn, die einzelne Spalte wird in der GROUP BY-Klausel angegeben. Mit einer WHERE-Klausel kann man Zeilen ausschließen, bevor die übrigen Zeilen in Gruppen aufgeteilt werden. Man muss die Spalten in der GROUP BY-Klausel angeben. Man kann dabei keine Spalten-Aliasnamen verwenden. Standardmäßig werden die Zeilen in aufsteigender Reihenfolge nach der in der GROUP BY-Liste angegebenen Spalten sortiert. Diese Sortierung kann man mit der ORDER BY-Klausel verändern

23 Null-Werte COUNT(*) gibt die Anzahl der Zeilen in einer Tabelle zurück. SELECT COUNT(*) FROM employees WHERE department_id = 50; COUNT(expr) gibt die Anzahl der Zeilen mit nicht leeren Werten für expr zurück. COUNT(DISTINCT expr) gibt die Anzahl der eindeutigen, nicht leeren Werte für expr zurück. Gruppenfunktionen ignorieren NULL-Werte in der Spalte. Die Funktion NVL zwingt Gruppenfunktionen, NULL-Werte einzubeziehen. 45 Unzulässige Abfragen mit Gruppenfunktionen Sie können die WHERE-Klausel nicht verwenden, um Gruppen einzuschränken. Sie verwenden die HAVING-Klausel, um Gruppen einzuschränken. Sie können keine Gruppenfunktionen in der WHERE-Klausel verwenden. SELECT department_id, AVG(salary) FROM FROM employees WHERE AVG(salary) > GROUP BY BY department_id; WHERE AVG(salary) > * ERROR at at line line 3: 3: ORA-00934: group function is is not not allowed here here Die WHERE-Klausel kann nicht verwenden werden, um Gruppen einzuschränken

24 Gruppenergebnisse filtern: WHERE / HAVING-Klausel Verwenden Sie die HAVING-Klausel, um Gruppen einzuschränken: 1. Die Tupel werden mit der WHERE-Bedingung ausgewählt 2. Die Zeilen werden gruppiert. 3. Die Gruppenfunktion wird angewandt. 4. Gruppen, die der HAVING-Klausel entsprechen, werden angezeigt. SELECT column, group_function FROM table [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column]; 47 Beispiele: GROUP BY-Klauseln über mehrere Spalten verwenden SELECT department_id, job_id, SUM(salary) FROM employees GROUP BY department_id, job_id ; SELECT department_id, MAX(salary) FROM employees GROUP BY department_id HAVING MAX(salary)>10000 ; SELECT job_id, SUM(salary) PAYROLL FROM employees WHERE job_id NOT LIKE '%REP%' GROUP BY job_id HAVING SUM(salary) > ORDER BY SUM(salary); 48 24

25 Primary key, Foreign key, Secundary key Primary Key: Definiert den Hauptschlüssel der Tabelle. Jeder Entrag muss eindeutig sein. Es können auch mehrere Attribute sein. CREATE TABLE EMP ( id AS INTEGER NOT NULL, Hausnummer as mynumber default 123, Name as char(200), PRIMARY KEY (id) ); 49 Primary key, Foreign key, Secundary key Foreign Key: Definiert den Hauptschlüssel einer anderen Tabelle. Jeder Entrag muss eindeutig sein. Es können auch mehrere Attribute sein. Foreign-Tabelle muss vorher definiert sein! CREATE TABLE EMP ( id AS INTEGER NOT NULL, Hausnummer AS MYNUMBER DEFAULT 123, Name AS CHAR(200), deptno1 AS INTEGER NOT NULL, PRIMARY KEY (id) constraint emp_fk_emp foreign key (deptno1) references dept(deptno) ); 50 25

26 Primary key, Foreign key, Secundary key Foreign Key: Nachträgliche Definition CREATE TABLE EMP ( EMPNO INTEGER NOT NULL, ENAME CHAR(50), SAL NUMERIC(7,2), DEPTNO INTEGER NOT NULL, PRIMARY KEY (EMPNO) ); ALTER TABLE EMP ADD CONSTRAINT FK_DEPT_EMP FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO); 51 Primary key, Foreign key, Secundary key Secundaray Key: Definiert ein Attribut oder mehrere Attribute, die untereinander eindeutig sein müssen. Erzwingt NOT NULL CREATE TABLE EMP ( id AS INTEGER NOT NULL, Name AS CHAR(200) NOT NULL, Job AS INTEGER NOT NULL, deptno AS INTEGER NOT NULL, PRIMARY KEY (id) UNIQUE sec_key_job_name (Name, Job) ); 52 26

27 Primary key, Foreign key, Secondary key Weitere Syntaxbeispiele: ALTER TABLE tablename ADD PRIMARY KEY (A1, A2); ALTER TABLE tablename DROP PRIMARY KEY; ALTER TABLE tablename ADD FOREIGN KEY (A1) REFERENCES tablename2(b4, B6); ALTER TABLE tablename ADD CONSTRAINT name_des_fk FOREIGN KEY (A1) REFERENCES tablname2(b4, B6); ALTER TABLE tablename DROP FOREIGN KEY; ALTER TABLE tablename ADD UNIQUE name (A1, A2); ALTER TABLE tablename DROP INDEX name; 53 INDIZES Indizes beschleunigen meistens den Zugriff auf große Datenbestände. Sie werden mittels B*-Bäume verwaltet. Sie können an- und ausgeschaltet werden. Indizes werden bei Primär-Schlüsseln automatisch gesetzt. Sie müssen mitverwaltet werden. Sollten nur bei häufig benutzen Feldern und großen Tabellen gesetzt werden. CREATE TABLE emp ( id AS INTEGER NOT NULL, Name AS CHAR(200) NOT NULL, Job AS INTEGER NOT NULL, PRIMARY KEY (id) ); CREATE ASC INDEX idx_name ON emp (Name); CREATE ASC INDEX idx_namevorname ON emp (Name,Vorname); DROP INDEX idx_name ON emp; ALTER INDEX idx_name INACTIVE ACTIVE 54 27

28 CONSTRAINTS Constraints sind Zusatzbedingungen, die erfüllt sein müssen, damit Daten in die Datenbank geschrieben, gelöscht oder verändert werden können. 1. Beispiel: Das Datum der Bestellung muss ab dem Jahr 2000 sein. ALTER TABLE bestellung ADD ct_year CHECK (YEAR >= 2000) 2. Beispiel: Der Studiengang eines Studenten nur aus KI, II, WI, KT bestehen. ALTER TABLE student ADD CONSTRAINT ct_stdgang CHECK (studiengang in ('IB', 'KI, 'II', 'WI', 'KT')); 55 CONSTRAINTS 3. Beispiel: Die Bestellmenge muss immer größer Null sein. ALTER TABLE SALES ADD CONSTRAINT ct_sales CHECK (qty_ordered >= 1) 4. Beispiel: Die Postleitzahl muss immer fünfstellig sein CHECK ( ( PLZ>=1000) AND (PLZ<=99999) ) Vorlesungsübung 56 28

29 VIEWS Mit Hilfe einer SELCT-Anweisung werden neue virtuelle Tabellen aus einer Datenbank erzeugt. Diese müssen nur einmal eingegeben werden. Abhilfe: Erzeugen einer virtuelle Tabellen mittels eines Views. Vorteil: Einmal definiert Pro Gruppe definierbar (UNummer, MatrNr, Name) Abfragen können auf Sichten durchgeführt werden Änderungen? Es können keine Spalten eingefügt werden. 57 VIEWS Syntax / Beispiel: CREATE VIEW v_student_dozent AS SELECT matrnr, studiengang, note1, note2, note3 FROM student SELECT * FROM v_student_dozent; Nicht möglich in der Definition sind: GROUP BY ORDER BY UNION 58 29

30 VIEWS Beispiel Mitarbeitertabelle pro Abteilung: CREATE VIEW v_emp_dept_10 AS SELECT empno, ename, deptno FROM emp WHERE deptno = 10; Beispiel JOIN: CREATE VIEW v_emp_dept AS SELECT empno, ename, e.deptno, dname FROM emp e INNER JOIN dept d ON e.deptno = d.deptno; Abfrage: select * from v_emp_dept; 59 /* Domain definitions */ CREATE DOMAIN "MYNAME" AS CHAR(200); Create Table emp ( Vorname MyName, Name MyName, Gehalt Numeric(7,2), // DOUBLE PRECISION, Datum date ) 60 30

31 Bedingungen ALTER TABLE emp ADD CONSTRAINT chgehalt CHECK ( gehalt> ); ALTER TABLE emp ADD CONSTRAINT chname CHECK ( strlen(rtrim(name))>3 ); ALTER TABLE emp ADD CONSTRAINT chname CHECK ( strlen(name)>3 ); // VarChar 61 31

SQL Intensivpraktikum SS 2008

SQL Intensivpraktikum SS 2008 SQL Intensivpraktikum SS 2008 Aggregation von Daten Arbeit mit Gruppen SQL1 basierend auf OAI-Kurs Copyright Oracle Corporation, 1998. All rights reserved. Gruppenfunktionen Gruppenfunktionen verarbeiten

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

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

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

Mehr

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

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

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

Mehr

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

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

Mehr

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198 Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen

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

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

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Grundlagen der Informatik III ERM-Modell Thema: Grundlagen der Datenbanken

Grundlagen der Informatik III ERM-Modell Thema: Grundlagen der Datenbanken Hochschule Harz FB Automatisierung und Informatik Versuch: Grundlagen der Informatik III ERM-Modell Thema: Grundlagen der Datenbanken Versuchsziele Vertiefung in der ERM-Modellierung. Benutzen eines Designers.

Mehr

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement SQL Datenmanipulation Datenmanipulationssprache Ein DML Statement wird ausgeführt wenn: neue Tupel eingefügt werden existierende Tupel geändert werden existierende Tupel aus der Tabelle gelöscht werden

Mehr

Erzeugen von Constraints

Erzeugen von Constraints Erzeugen von Constraints Was sind Constraints? Durch Constraints werden Regeln auf einem bestimmtem Tabellen-Level erzwungen. Die folgenden Constraint-Typen sind in Oracle integriert: NOT NULL UNIQUE Key

Mehr

Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints

Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints Prakt. Datenbankprogrammierung Sommersemester 2005 I,11: Verwendung von Constraints Was sind Constraints? Constraints stellen Regeln auf Tabellenebene sicher. Constraints verhindern das Löschen aus einer

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

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

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

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

Mehr

Informatik 12 Datenbanken SQL-Einführung

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

Mehr

Erzeugung und Veränderung von Tabellen

Erzeugung und Veränderung von Tabellen Datenbanken - Objekte Erzeugung und Veränderung von Tabellen Objekt Tabelle View Sequence Index Synonym Basiseinheit zum Speichern; besteht aus Zeilen und Spalten; Logische Repräsentation; kann Teilmengen

Mehr

Art der Info: Technische Background Info Teil 2 (April 2002)

Art der Info: Technische Background Info Teil 2 (April 2002) Betrifft: Autor: Oracle 9i New Features SQL und PL/SQL Christine Hansen (christine.hansen@trivadis.com) Art der Info: Technische Background Info Teil 2 (April 2002) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

Übungsaufgaben mit Lösungen

Übungsaufgaben mit Lösungen Abt. Wi.-Inf. II Wirtschaftsinformatik II: SQL 1 Übungsaufgaben mit Lösungen 1) Ausgabe sämtlicher Spalten der Tabelle DEPARTMENT. SELECT * FROM DEPARTMENT 2) Ausgabe aller Projektnummern und Projektnamen.

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

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

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

Mehr

Prakt. Datenbankprogrammierung. Sommersemester I,5: Aggregieren von Daten mit Gruppen-Funktionen

Prakt. Datenbankprogrammierung. Sommersemester I,5: Aggregieren von Daten mit Gruppen-Funktionen Prakt. Datenbankprogrammierung Sommersemester 2005 I,5: Aggregieren von Daten mit Gruppen-Funktionen Martin-Luther-Universität Halle, Institut für Informatik, Datenbanken Christian Goldberg Was sind Gruppen-Funktionen?

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

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

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

Mehr

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

IV. Datenbankmanagement

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

Mehr

MySQL: Einfaches Rechnen. www.informatikzentrale.de

MySQL: Einfaches Rechnen. www.informatikzentrale.de MySQL: Einfaches Rechnen Vorweg: Der Merksatz Warum geht Herbert oft laufen? Vorweg: Der Merksatz Warum geht Herbert oft laufen?...... WHERE... GROUP BY... HAVING... ORDER BY... LIMIT Beispieldatenbank

Mehr

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

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

Mehr

Beispiel 1: Filmdatenbank

Beispiel 1: Filmdatenbank Beispiel 1: Filmdatenbank Die Filmdatenbank hat drei Tabellen (ACTOR, MOVIE, PLAYED) Aufgabe 1: Erstelle mit Hilfe der SQL-DDL die drei Tabellen und die Datenbank (MOVIEDB) ACTOR (ActorID, Name, Birthday,

Mehr

SQL: statische Integrität

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

Mehr

Ü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

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

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

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL. 2 Grundlagen von PL/SQL Grundelemente von PL/SQL. 2.1 Übersicht Themen des Kapitels Grundlagen von PL/SQL Themen des Kapitels PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren Im Kapitel Grundlagen

Mehr

105.3 SQL-Datenverwaltung

105.3 SQL-Datenverwaltung LPI-Zertifizierung 105.3 SQL-Datenverwaltung Copyright ( ) 2009 by Dr. W. Kicherer. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a

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

Referenzielle Integrität SQL

Referenzielle Integrität SQL Referenzielle Integrität in SQL aus Referential Integrity Is Important For Databases von Michael Blaha (Modelsoft Consulting Corp) VII-45 Referenzielle Integrität Definition: Referenzielle Integrität bedeutet

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

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

Art der Info: Technische Background Info Teil 1 (April 2002)

Art der Info: Technische Background Info Teil 1 (April 2002) Betrifft: Autor: Oracle 9i New Features SQL und PL/SQL Christine Hansen (christine.hansen@trivadis.com) Art der Info: Technische Background Info Teil 1 (April 2002) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

SQL (Structured Query Language) Schemata Datentypen

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

Mehr

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

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

Mehr

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY. SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von

Mehr

Mengen- oder SET-Operatoren fassen das Ergebnis von zwei oder mehreren Teilabfragen zu einem Ergebnis zusammen.

Mengen- oder SET-Operatoren fassen das Ergebnis von zwei oder mehreren Teilabfragen zu einem Ergebnis zusammen. Tipps & Tricks: Mengenoperatoren Bereich: DBA, SQL Erstellung: 06/2004 MP Versionsinfo: 10.1, 10.2, 11.1, 11.2 Letzte Überarbeitung: 06/2009 MA Mengenoperatoren Mengen- oder SET-Operatoren fassen das Ergebnis

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

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

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

Mehr

Abfragen (Queries, Subqueries)

Abfragen (Queries, Subqueries) Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl

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

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

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

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

Mehr

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

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

Mehr

Fachhochschule Deggendorf Platzziffer:...

Fachhochschule Deggendorf Platzziffer:... Sommersemester 2008 Zahl der Blätter: 9 Fachbereich: Betriebswirtschaft WI Bachelor Hilfsmittel: alles ohne Computer Zeit: 90 Minuten 1 Betrachten Sie die drei markierten Zeilen. 1. Angenommen Sie hätten

Mehr

Kapitel 3: Datenbanksysteme

Kapitel 3: Datenbanksysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2015 Kapitel 3: Datenbanksysteme Vorlesung:

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

Art der Info: Technische Background Info Teil 3 (April 2002)

Art der Info: Technische Background Info Teil 3 (April 2002) Betrifft: Autor: Oracle9i New Features SQL und PL/SQL Patrick Malcherek (patrick.malcherek@trivadis.com) Art der Info: Technische Background Info Teil (April 00) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

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

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

Mehr

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten. Lehrstuhl für Datenbanken und Informationssysteme Wintersemester 1999/2000 Universität Augsburg, Institut für Informatik 25. Februar 2000 Prof. Dr. Werner Kießling A. Leubner, M. Wagner Datenbanksysteme

Mehr

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 6. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 Aufgabe 1: Rekursion Betrachten Sie die folgende Tabelle

Mehr

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

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

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL Betreuer: Sascha Kriewel, Tobias Tuttas Raum: LF 230 Bearbeitung: 26., 27. und 29. Juni 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material unter: http://www.is.inf.uni-due.de/courses/dbp_ss07/index.html

Mehr

Oracle 8i und 9i New Features. DOAG November Peter Jensch, Trivadis GmbH

Oracle 8i und 9i New Features. DOAG November Peter Jensch, Trivadis GmbH Oracle 8i und 9i New Features DOAG November 200 Peter Jensch, Trivadis GmbH Facts & Figures Über 300 Mitarbeiter (D und CH) Über 200 Oracle Consultant Über 300 Kunden (ohne Schulung) Über 000 Projekte

Mehr

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

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

Mehr

Datenbanken Labor, MI : Übung 1 SQL - Abfragen Patrick Lipinski

Datenbanken Labor, MI : Übung 1 SQL - Abfragen Patrick Lipinski Aufgabe 1 Erstellen Sie eine Abfrage, die aus der EMP/DEPT-Tabelle die Felder Empno, Ename, Deptno und dname aller Mitarbeiter mit einem Gehalt von > 2500 ausgibt. select EMPNO, ENAME from EMP where SAL

Mehr

Datenintegrität. Bisherige Integritätsbedingungen

Datenintegrität. Bisherige Integritätsbedingungen Datenintegrität Integitätsbedingungen chlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Bedingungen an den Zustand der Datenbasis dynamische Bedingungen an Zustandsübergänge

Mehr

Entspricht dem kartesischen Produkt von zwei oder mehr selektierten Tabellen ohne Join-Bedingung.

Entspricht dem kartesischen Produkt von zwei oder mehr selektierten Tabellen ohne Join-Bedingung. Tipps & Tricks: Neuerungen Joins Bereich: SQL Erstellung: 07/2004 HA Versionsinfo: 10.1, 10.2, 11.1, 11.2 Letzte Überarbeitung: 06/2009 MA Neuerungen zu Joins Ab Version 9i sind alle dem SQL:1999-Standard

Mehr

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

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

Mehr

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

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

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

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

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. Metadaten

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. Metadaten Fakultät für Informatik & Wirtschaftsinformatik Metadaten Metadaten sind Daten über Daten Data-Dictionary speichert Informationen über die Struktur der Daten, z.b.: Tabellen, Spalten, Datentypen Primär-

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

7. Übung - Datenbanken

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

Mehr

Datenbank- und Informationssysteme. Lösungsvorschläge zu Übungsblatt 2. Sommersemester 1999. CREATE DOMAIN KennzeichenDomain AS VARCHAR(9);

Datenbank- und Informationssysteme. Lösungsvorschläge zu Übungsblatt 2. Sommersemester 1999. CREATE DOMAIN KennzeichenDomain AS VARCHAR(9); Institut für Angewandte Informatik AIFB und Formale Beschreibungsverfahren Universität Karlsruhe (TH) Prof. Dr. W. Stucky U. Schmidle Tel.: 0721 / 608-3812, 3509 Fax.: 0721 / 693717 e-mail: stucky schmidle

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13 Auf einen Blick Vorwort... 13 Teil 1 Vorbereitung Kapitel 1 Einleitung... 17 Kapitel 2 SQL der Standard relationaler Datenbanken... 21 Kapitel 3 Die Beispieldatenbanken... 39 Teil 2 Abfrage und Bearbeitung

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15 Vorwort 13 Kapitel 1 Einleitung 15 Kapitel 2 SQL-der Standard relationaler Datenbanken... 19 2.1 Die Geschichte 19 2.2 Die Bestandteile 20 2.3 Die Verarbeitung einer SQL-Anweisung 22 2.4 Die Struktur von

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

Konstante Relationen

Konstante Relationen Konstante Relationen values-syntax erzeugt konstante Relation values ( [, Konstante] * )[, ( [, Konstante] * )]* Beispiel values (1, eins ), (2, zwei ), (3, drei ); Resultat ist eine

Mehr

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

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

Mehr

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme Handout zur Unit Web-Technologien SQL 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme Raum: 17-0.10 Tel.: 0451 300 5549 Email: nane.kratzke@fh-luebeck.de (Praktische

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

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13 Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

Waimea Phone Monitor. Handbuch. Anzeige von eingehenden Anrufen auf Telefonanlagen mit TAPI-Interface

Waimea Phone Monitor. Handbuch. Anzeige von eingehenden Anrufen auf Telefonanlagen mit TAPI-Interface Waimea Phone Monitor Handbuch Anzeige von eingehenden Anrufen auf Telefonanlagen mit TAPI-Interface Ermittlung des Namens und anderer Informationen aus einer beliebigen ODBC-Datenbank auf Basis der Telefonnummer

Mehr

Die Datenmanipulationssprache SQL

Die Datenmanipulationssprache SQL Die Datenmanipulationssprache SQL Daten eingeben Daten ändern Datenbank-Inhalte aus Dateien laden Seite 1 Data Manipulation Language A DML statement is executed when you Add new rows to a table Modify

Mehr

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 8 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 12.01. 2004 Integritätsbedingungen

Mehr

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15 Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................

Mehr

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel 4.14.3 Bedingungen über Werte 4.14.4 Statische Integrität Zu jeder Tabelle werden typischerweise ein Primärschlüssel und möglicherweise weitere Schlüssel festgelegt (UNIQUE-Klausel). In jeder Instanz zu

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

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen Abfragen lassen sich längst nicht nur dazu benutzen, die gewünschten Felder oder Datensätze einer oder mehrerer Tabellen darzustellen. Sie können Daten auch nach bestimmten Kriterien zu Gruppen zusammenfassen

Mehr

Datenbanken. 5 Tabellen. Karl Meier karl.meier@kasec.ch 12.10.2010. Inhalt. Domänen verwenden Tabellen anzeigen, ändern, löschen Übung

Datenbanken. 5 Tabellen. Karl Meier karl.meier@kasec.ch 12.10.2010. Inhalt. Domänen verwenden Tabellen anzeigen, ändern, löschen Übung Datenbanken 5 Tabellen Karl Meier karl.meier@kasec.ch 12.10.2010 Tabellen erstellen en Integritätsregeln Inhalt Domänen verwenden Tabellen anzeigen, ändern, löschen Übung 2 1 Einfache Tabellen erstellen

Mehr

MIN oder MAX Bildung per B*Tree Index Hint

MIN oder MAX Bildung per B*Tree Index Hint E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich

Mehr