Datenbank System (DBS) Warum? Anwendung 1 Anwendung 2 Anwendung 3 Elementare Zugriffsoperationen Elementare Zugriffsoperationen Elementare Zugriffsoperationen Daten (Files) Daten (Files) Daten (Files) WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle DB System - Warum? Anwendung 1 Anwendung 2 Anwendung 3 Elementare Zugriffsoperationen Elementare Zugriffsoperationen Elementare Zugriffsoperationen DatenbankManagementsystem (DBMS) DBS Datenbank (DB) WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Datenbank Administrator Fortgeschrittener Programmierer Benutzer Einfacher Benutzer Programme Schema Modifikationen DDL DML DDL Compiler „Query“ Prozessor Unser Fokus! Transaktions Manager Datenbank Manager DBMS Daten Metadaten WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Arten von DBMS Datenbankmodelle • hierarchisch: Die Datenobjekte stehen in verdrahteten Eltern-Kind Beziehungen zueinander. • netzwerkartig: Die Datenobjekte werden miteinander in Netzen verdrahtet. Werden hier nicht behandelt! WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Arten von DBMS Datenbankmodelle • relational: Die Datenobjekte stehen in flachen Tabellen, Beziehungen ergeben sich aus Werten der Tabellenspalten RDBMS. • objektorientiert: Die Datenobjekte werden miteinander verdrahtet, sind gegebenenfalls miteinander verwandt und können vom System immer eindeutig identifiziert werden OODBMS. • Es existiert eine Vielzahl von Misch- und Nebenformen, wie zum Beispiel das objektrelationale Modell ORDBMS. WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Wichtige DBMS IBM DB2 Oracle MySQL PostgreSQL Caché … Mehr hierzu in der Übung! WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle DBS – Sprachen Das DBS stellt als Schnittstelle eine Datenbanksprache(n) für die folgenden Zwecke zur Verfügung: – Datenabfrage und -manipulation – Data Manipulation Language (DML) – Verwaltung der Datenbank – Data Definition Language (DDL) – Berechtigungssteuerung – Data Control Language (DCL) z.B. SQL WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Structured Query Language • SQL ist für … Standards: • SQL-1 von 1986 bzw. 1989 (ca. 120 Seiten) • SQL-2 (SQL92) von 1992 (ca. 580 Seiten) http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt • SQL-3 (SQL99) von 2000 (ca. 1200 Seiten) http://www.cse.iitb.ac.in/dbms/Data/Papers-Other/SQL1999/ansi-iso-9075-2-1999.pdf • SQL 2003 … WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle SQL92 – embedded SQL 19.4 <embedded SQL C program> Function Specify an <embedded SQL C program>. Format <embedded SQL C program> ::= !! See the Syntax Rules. <C variable definition> ::= [ <C storage class> ] [ <C class modifier> ] <C variable specification> <semicolon> <C variable specification> ::= <C numeric variable> | <C character variable> | <C derived variable> WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Standard und Realität • Standards werden von DBMS Produzenten interpretiert und nicht immer vollständig umgesetzt: Unterschiede in der Syntax Unterschiede in der Funktionalität Was folgt hieraus??? WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Weitere DBMS Unterschiede • DBMS unterscheiden sich durch intern realisierte Strategien, z.B. Optimierungsstrategie: IBM DB2 – Kostenbasiert Oracle – Regelbasiert Unter Oracle kann man Hints in SQLAnweisungen einfügen, z.B.: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Weitere DBMS Unterschiede Tabelle ‘myTable’ mit Attributen: a, b und c 1.000.000 Einträge Index auf Attribut ‘a’ Anfrage: SELECT a,b,c FROM myTable WHERE a > 19850 WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Weitere DBMS Unterschiede In einem Beispiel waren ca. 50% der Einträge unter Attribut ‘a’ mit dem Wert 19870 belegt. Nutzung des Index nicht sinnvoll! Ausführungszeit lag bei 10 Minuten! In Oracle können Hints in SQL Anfragen eingebaut werden: SELECT /*+ full(myTable)*/ a, b, c FROM myTable WHERE a > 1950 Ausführungszeit ~15sec WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle