Upload
lydiep
View
227
Download
0
Embed Size (px)
Citation preview
DBS-1 : Einführung(c) schmiedecke 06 2
Themen des Kurses
Einführung:Zweck, Aufbau, Benutzung und Entwicklung von Datenbanken
DatenbankmanagementsystemeKonzept, Typen, Leistungsumfang, Aufbau
Entwurf von Datenbanken:Semantische Datenmodellierung:ERM, EERM, UML
Datenmodelle:Historische DatenmodelleDas relationale DatenmodellObjektorientierte Datenmodelle
Implementierung von DatenbankenIntegritätssicherung, Sichten, Rechte
Softwareschnittstellen: Datenbanken und Java
DBS-1 : Einführung(c) schmiedecke 06 3
����������� ���������
������� ���������� � ���������� ������������� !!!"
���#�����$����
�� ���� � �������% �
� &�' ����(����������)
���*������$�����
����#�������� �+ ��,�-,��
.��������/0��� ��
���������$�����
�� ������1 �&2$�����0��
' ' ' 0�&2$�����0��-3��� ���
DBS-1 : Einführung(c) schmiedecke 06 4
Vorstellung des Moduls
Vorlesung ÜbungTheorie der DBMS Arbeiten mit Relationalen
Datenbanken (SQL)Datenbankentwurf
Theorie Relationaler Datenbanken
DatenbankimplementierungIntegritätsssicherung
DB und Programmierung
Datenbanken, das kann doch heute jeder! Na ja, mal
sehen ....
DBS-1 : Einführung(c) schmiedecke 06 5
Modul-Organisation�Alle Materialien in Moodle
– LV-Infos (Literatur, Bewertung etc.)– Folien– Zusatzmaterial– Aufgaben, Punkte– Termine und Hinweise– Theorie-Tests zur Selbsteinschätzung
�Registrierung dbw6 � bitte Foto hochladen �
�Arbeit allein oder in 2-er Gruppen
�Hochladen des Ergebnisses zwecks Zeitstempel�Punkte erst nach persönlicher Abnahme�Punktabzug bei Verspätung (20% pro Woche)
�Zum Bestehen des Moduls müssen alle Aufgaben bearbeitet sein.�Übungspunkte machen (leider nur) 25% der Note aus.
DBS-1 : Einführung(c) schmiedecke 06 7
Was ist eine Datenbank?intuitiv - pragmatisch
�Sammlung von Tabellen�einfach strukturiert�intuitiv verständlich�einfach zu handhaben (???)
Tatsächlich:Datengefüge mit inneren Beziehungen
Ziel der LV:Theorie verstehenDatenbanken korrekt und optimal
entwickeln und verwenden
DBS-1 : Einführung(c) schmiedecke 06 8
Wozu Datenbanken?
Daten sind Werte!
– Große, veränderliche Datenbestände– Komplexe Datenzusammenhänge– Nutzung durch mehrere Anwendungen– Datenschutz (vor Missbrauch)– Absicherung gegen System- und Anwendungsfehler
�Deshalb werden die Daten der Herrschaft der Anwendungsprogramme entzogen.
�Wer herrscht dann?
DBS-1 : Einführung(c) schmiedecke 06 9
... das DBMS
�Datenbank (Datenbasis, engl. Data Base):struktutrierter Datenbestand auf einem Speichermedium, typischerweise mit zugehörigen Benutzern, Zugriffsrechten etc.
�Datenbank-Management-System (DBMS):Software zur Verwaltung von Datenbanken, bietet Benutzern komfortablen und abgesicherten Zugriff auf die Datenbanken. Administration von Benutzern und Rechten.
DBS-1 : Einführung(c) schmiedecke 06 10
Schema Datenhaltung auf Dateien
Anwendung Datenbestand Daten inder Anwendung
1 - 5
Anw. 1
Anw. 2
Anw. 3
Datum 1
Datum 2
Datum 3
1
2
3
4
5
© P.Sauer
DBS-1 : Einführung(c) schmiedecke 06 11
Beispiel Keramische Werkstatt
Bestellung:• Datum• Name• Strasse• PLZ, Ort• Produktbez.• Preis• Anzahl
Kunde:• Name• Strasse• PLZ, Ort• Soll
Produkt• Bezeichnung• Größe • Glasur• Dekor• Preis
BuchhaltungLagerverwaltung
Materialeinkauf Werbung
DBS-1 : Einführung(c) schmiedecke 06 12
Probleme der Datenhaltung auf Dateien
�Bindung der Daten- an die Programmstrukturen- Datenabhängigkeit, Inflexibilität
�Wiederholte Speicherung gleicher Daten (Datenredundanz)- Speicherplatzbedarf, Integritätsprobleme
�Lösung gleicher Aufgaben in allen Anwendungsprogrammen: Speicherverwaltung, Änderungsdienst, Retrieval, Schutzfunktionen
�Probleme bei Mehrbenutzerbetrieb
�Probleme im Fehlerfall (Welche Anwendung ist verantwortlich?)
�Mißbrauch der Daten / Schutz der Daten
DBS-1 : Einführung(c) schmiedecke 06 13
Schema Datenbankeinsatz
Anwendungsprogramm 2
Anwendungsprogramm 3
Anwendungsprogramm n
Datenbank-managementsystem
Anwendungsprogramm 1
Datenbank
� � �……..
© P.Sauer
DBS-1 : Einführung(c) schmiedecke 06 14
Vorteile des Datenbankeinsatzes
Datenunabhängigkeit
�Zentrale Datenverwaltung,Programm- und Benutzer-unabhängig
�Datenintegration (einheitliche Datenbank für alle Anwendungen)�Benutzerfreundliche Schnittstelle für alle Anwendungssysteme
(interaktive Abfragen bis Programmierschnittstellen)
Datensicherheit
�Redundanzarme Speicherung�Zentrale Sicherung der Datenintegrität�Datensicherungs- und -schutzprozeduren global und ausgereift�Performance bei großen Datenmengen:
optimierte Such- und Zugriffsalgorithmen�Offenheit für neue Auswertungs- und Definitionsbedürfnisse
DBS-1 : Einführung(c) schmiedecke 06 15
Datenabhängigkeit bei Dateiorganisation
Beispiel: Liste aller Kunden aus Darmstadt (C-Programm)
// Definition der Recordstrukturtypedef struct {
char *name [20];int plz;char *ort [30];double soll;
} kunde_record;// Definition eines Lesepufferskunde_record buffer[1];FILE *kunde_file;kunde_file = fopen("kunden.dat","rb");// Lesen der Datei nach dem Record-Schemawhile (!eof) {
fread(buffer, sizeof(kunde_record), 1, kunde_file);
if (buffer[0].ort == "Darmstadt") { // Record ausgeben}
} // (nach Erbs et al, "Datenbanken)
Wehe, wenn das nicht
(mehr) passt!
DBS-1 : Einführung(c) schmiedecke 06 16
Datenunabhängigkeit durchDSL - Data Sub Language
Beispiel: Liste aller Kunden aus Darmstadt (SQL-Abfrage)
SELECT name, plz, ortFROM kundeWHERE ort = 'Darmstadt' ;
Funktioniert auf jeden Fall, solange die
Tabelle Kunde die angegebenen Spalten
hat...
DBS-1 : Einführung(c) schmiedecke 06 17
Zeitachse Datenbanken
First Generation (1945 - 1960)data on punched cards or on magnetic tapes offline services / batch processing sequential access to data
Second Generation (1960 - 1970)data on magnetic disks (files)interactive data processing direct access to data multiple access / parallel access Hierarchical Data Model; example: IMS (Information Management System) byIBMNetwork Model; example: UDS (Universelles Datenbank System) by SiemensData structure diagrams introduced by Bachman
Third Generation (1970 - 1980)Data Independence Non-procedural languages (WHAT instead of HOW) Computer-independent database systems (Network DBS: CODASYL-DBTG) Relational Data Model; examples: SQL / DS (Standard Query Language / Data System), DB2 by IBM, Oracle by OracleEntity-Relationship Model introduced by Chen
Fourth Generation (1980 - 1990)Database Systems developed for Personal Computers; examples: dBASE, ParadoxObject-oriented Database Systems; examples: POET by POET, O2 by O2 Technology
Fifth Generation (1990 - today)Client-server architectures Massively parallel processors Open interfaces (esp. ODBC) Integration of Internet and databases (esp. JDBC)Object-relational Database SystemsDeductive Databases (rules & facts)
DBS-1 : Einführung(c) schmiedecke 06 18
Bekannte DBMS• Ingres• DB2• PostgreSQL• Informix• Sybase• Oracle• Cloudscape• MySQL• Access• SQL Server• dBase• Paradox• Poet• O2• ....
DBS-1 : Einführung(c) schmiedecke 06 19
Generationen von DBMS
Aus heutiger Sicht....– Historische DBMS (Hierarchische Daten und Datennetze)– Standard-DBMS (einfach strukturierte Daten � RDBMS)– Nicht-Standard-DBMS (Multimedia-Daten, Strukturierte Daten,
Erweiterbare Datenmodelle � OO und OR DBMS)Unterscheidungskriterium Datenmodell:
Die für den Benutzer nutzbare Struktur der Daten
– Heterogene Datenbanken– Wissenssysteme
Grafik: IBM
DBS-1 : Einführung(c) schmiedecke 06 20
Auswahlkriterien für DBMS
� Ein- oder Mehrbenutzersystem� Zentrale / verteilte Datenbanken� Datenmodell� Administrative Möglichkeiten� Interne Datenorganisation / Tuningmöglichkeiten
� Open source / kommerziell ....
DBS-1 : Einführung(c) schmiedecke 06 21
DBMS-Schnittstellen
� interaktive Anfrage ( ad hoc-Anfragen)� Programmierschnittstellen� Administrationsschnittstellen� Datenbanksprachen mindestens für
- Datendefinition- Datenmanipulation- Datenabfragen- Datenbankadministration
DBS-1 : Einführung(c) schmiedecke 06 22
Praxis – Übung
�Relationale Übungs-DB mat_inf:Kaufmännische Anwendung – Vertrieb von Waren über Vertreter
�ist auf 3 relationalen DBMS implementiert: Access, MySQL und Oracle� Umgang mit verschiedenen DBMS kennen lernen� Nutzung der Ad-hoc-Schnittstelle
�3 Vorübungen ohne Bewertung � Selbststudium1 bewertete Aufgabe
�Die Datenbank ist klein � alle Aufgaben lassen sich auch "von Hand" bearbeiten ---- VERBOTEN!
�Die DBMS stellen grafische Werkzeuge zur Anfragegenerierung zur Verfügung ---- VERBOTEN!
�Sie sollen alle Aufgaben mit SQL bearbeiten, und zwar jeweils mit einer einzigen SQL-Anweisung
DBS-1 : Einführung(c) schmiedecke 06 23
Aufbau einer Relationalen DB
������� �������� � ������� ������� �������� ������ ������� ����� �����������
� ���������� � �� � �� �������� �
� �������� �� �� � � �� �������� ��� �
� ����������� � ��� � � �� �������� ��� �
����� ���� � � � !������ �"� �� ��
� #����� �� ��� � $���� ��������� ��
� #����� �� ��� � $���� ��������� ��
% #����� �� ��� � ������� ����� �
� ��� ���� �� � � $���� �������� ��
��������� ���� ��������� ������������� ������ ��� ������!�� "#$� %��� ���� #���� � &����!'��� ���� �� �
� !���������&�� � '������#(��)�� � ������� �������� � �� �
� *����&�� � '���������) + � �%���� �%����� � � �� �
(� �!������ �������� ������ ���������
� � � '������#(��)��
� � � '������#(��)��
� � � '������#(��)��
� '���������) +
������ ����� �������� �������� $���� �$)� *��� ����+��� ��,� -���� #����+���� ������� �
� '�,�� ��&�#(��)�� '����� ������� -��������� �
� ����� ��. �������+�� / ���� ���) �� ����� 0&�1
Geschäftspartner
Wird angeboten auf
Märkte
Produkte
DBS-1 : Einführung(c) schmiedecke 06 24
Die Datenbanksprache SQL
� deskriptiv – nicht algorithmisch!� genormt:
– 1970 Edgar F. Codd, „A Relational Model of Data for Large Shared Data Banks“
– 1976 SQL von IBM (ursprünglich SEQUEL/2)– 1986 SQL ANSI-Standard (ISO 1987)– 1992 SQL-92, SQL2 – große Revision– 1999 SQL:1999, SQL3 – Objektrelationale Sprachelemente;
- Einbindung von Java- Einbindung von XML- OLAP: Wissensbasierte Systeme- Multimedia- u.a. Applikationspakete
– 2003 SQL:2003 – bisher kaum implementiert
DBS-1 : Einführung(c) schmiedecke 06 25
Bestandteile der Datenbanksprache SQL
�DCL – Data Control Language� � �� � ��� � �
� � � � �� �
�DDL – Data Definition Language� � � � � � �� � � � � ��� � � � �� � � � � ��� � � �� � � � � �����
� � � � � �
�DML – Data Manipulation Language� �� � � ��! � � � � � ��� � � � � �
� "# �$ �� % & �"��
�QL – Query Language� � � � � �
' � �� ( �"� � � "� ��� � ) �� *� � � �� � � � � + � & ���� �, ) � "� ��� ) �� � + ��",
' � �"� � �# "��- �, � "% & � � � �� �"� � � *�. "� � � � � + � & ���� �, ) � "� �� ) �� � + ��",
' � , , � , � �/� � �"� � � *� 0 � � " �� � , �� � /� "� � �1 ����� �, ) � "� � "� /� % & ��1 ��
' 2 � "� � *�� ) /�� , � �3 ) ��# & � � �� � ) �� �
' ! � � �� ) /�� , � �# "��� , , � , � �/� � �"� � �# "��4 � � � �� � �
DBS-1 : Einführung(c) schmiedecke 06 26
QL – Query Language
Was bietet SELECT?
' � �� ( �"� � "� ��� � ) �� *�
� � �� � � � � + � & ���
� �, ) � "� ��� ) �� � + ��",
' � �"� � # "��- �, � "% & � � � �� �"� � � *�
. "� � � � � + � & ���
� �, ) � "� ��� ) �� � + ��",
' � , , � , � �/� � �"� � � *�
0 � � " �� � , �� � /� "� � �1 ����
� �, ) � "� � "� /� % & ��1 ��
' 2 � "� � *�� ) /�� , � �3 ) ��# & � � �� � ) �� �
' ! � � �� ) /�� , �
# "��� , , � , � �/� � �"� � �
# "��4 � � � �� � �
DBS-1 : Einführung(c) schmiedecke 06 27
Grundform der SELECT-Anweisung
Beispiele:5 � � � � � �6 �7 � 8 �� �� 0 � �9 :�, � � � �� � ) �� �;
5 � � � � � �� �� 0 � �� � � � �� �� 0 � ���� �� � � ���� � ��� :�� �� ( �"� � �� � � �� � �;7 � 8 �� �� 0 � �9
5 � � � � � �� � � �� � � � �� 0 � �� � � � �� �� 0 � ���� � ��� :�� �� ( �"� � �� � � �� � �;7 � 8 �� �� 0 � �9
5 � � � � � �� �� 0 � �� � �� � �� �� 0 � ���� �� � � ���� � ��� :�� �� ( �"� � �� � � �� � �;7 � 8 �� �� 0 � �1 < � � �� � "� �= �$ > 9 :� � �"� � ��. "� � �;
5 � � � � � � �� 0 � �� � � � �� �� 0 � ���� �� � � ���� � ��� :�� �� ( �"� � �� � � �� � �;7 � 8 �� �� 0 � �1 < � � �� �� 0 � ��� �? � �@A � � � @ � � � �� � "� �= �B > 9 :� � # ) "� ��� 0 "� , � � , �;
SELECT [DISTINCT] AuswahllisteFROM QuelleWHERE Where-Klausel;
SFW-Block
DBS-1 : Einführung(c) schmiedecke 06 28
Abfragen über mehrer Tabellen (Joins)
�Intuitive Formulierung nach SQL-86:
� � � � � �� � # # ���� � 0 � �� � �� � �� �� 0 � ���� � "�7 � 8 �� �� 0 � ���1 "�0 � � , ) � � � � � /1 < � � �� �� 0 � ��� � # # ��C �1 "�0 � � , ) � � � � � /�� � # # �� � � �� � "� �D �E > 9
SELECT [DISTINCT] AuswahllisteFROM Quelle1, Quelle2, Quelle3, ...WHERE Where-VerbundklauselAND Where-Klausel;
JOIN nach SQL-86