29

 · Computer-independent database systems (Network DBS: CODASYL-DBTG) Relational Data Model; examples: ... (Microsoft PowerPoint - DB1-Einf\374hrung.ppt) Author:

  • Upload
    lydiep

  • View
    225

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

�������������������� ���� �������

���������� �����

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

DBS-1 : Einführung(c) schmiedecke 06 29

Das reicht für heute!

����

Nächstes Mal geht es Ansätze zur Datenstrukturierung.