DB1-Einfuehrung

Werbung
Themen des Kurses
Einführung:
Zweck, Aufbau, Benutzung und Entwicklung von Datenbanken
Datenbankmanagementsysteme
Konzept, Typen, Leistungsumfang, Aufbau
Entwurf von Datenbanken:
Semantische Datenmodellierung:
ERM, EERM, UML
Datenmodelle:
Historische Datenmodelle
Das relationale Datenmodell
Objektorientierte Datenmodelle
Implementierung von Datenbanken
Integritätssicherung, Sichten, Rechte
Softwareschnittstellen:
Datenbanken und Java
(c) schmiedecke 06
DBS-1 : Einführung
2
!!!"
#
$
%
&'
*
(
$
)
#
.
+
, -,
/0
$
1 & 2$
' ' ' 0 & 2$
0 -3
(c) schmiedecke 06
0
DBS-1 : Einführung
3
Vorstellung des Moduls
Datenbanken, das
kann doch heute jeder!
Na ja, mal
sehen ....
Vorlesung
Übung
Theorie der DBMS
Arbeiten mit Relationalen
Datenbanken (SQL)
Datenbankentwurf
Theorie Relationaler
Datenbanken
Datenbankimplementierung
Integritätsssicherung
DB und Programmierung
(c) schmiedecke 06
DBS-1 : Einführung
4
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.
(c) schmiedecke 06
DBS-1 : Einführung
5
(c) schmiedecke 06
DBS-1 : Einführung
6
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 verstehen
Datenbanken korrekt und optimal
entwickeln und verwenden
(c) schmiedecke 06
DBS-1 : Einführung
7
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?
(c) schmiedecke 06
DBS-1 : Einführung
8
... 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.
(c) schmiedecke 06
DBS-1 : Einführung
9
Schema Datenhaltung auf Dateien
Anwendung
Anw. 1
Datenbestand
der Anwendung
1
2
Anw. 2
Anw. 3
Daten in
1-5
Datum 1
Datum 2
Datum 3
3
4
5
© P.Sauer
(c) schmiedecke 06
DBS-1 : Einführung
10
Beispiel Keramische Werkstatt
Bestellung:
Kunde:
• Name
• Strasse
• PLZ, Ort
• Soll
• Datum
• Name
• Strasse
• PLZ, Ort
• Produktbez.
• Preis
• Anzahl
Produkt
• Bezeichnung
• Größe
• Glasur
• Dekor
• Preis
Buchhaltung
Lagerverwaltung
Werbung
Materialeinkauf
(c) schmiedecke 06
DBS-1 : Einführung
11
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
(c) schmiedecke 06
DBS-1 : Einführung
12
Schema Datenbankeinsatz
Anwendungsprogramm 1
Anwendungsprogramm 2
Datenbankmanagementsystem
Anwendungsprogramm 3
……..
Anwendungsprogramm n
Datenbank
© P.Sauer
(c) schmiedecke 06
DBS-1 : Einführung
13
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
(c) schmiedecke 06
DBS-1 : Einführung
14
Datenabhängigkeit bei Dateiorganisation
Beispiel: Liste aller Kunden aus Darmstadt (C-Programm)
// Definition der Recordstruktur
typedef struct {
char *name [20];
int plz;
char *ort [30];
double soll;
} kunde_record;
// Definition eines Lesepuffers
kunde_record buffer[1];
FILE *kunde_file;
kunde_file = fopen("kunden.dat","rb");
// Lesen der Datei nach dem Record-Schema
while (!eof) {
fread(buffer, sizeof(kunde_record), 1,
kunde_file);
if (buffer[0].ort == "Darmstadt")
{
// Record ausgeben
}
} // (nach Erbs et al, "Datenbanken)
(c) schmiedecke 06
DBS-1 : Einführung
Wehe, wenn
das nicht
(mehr) passt!
15
Datenunabhängigkeit durch
DSL - Data Sub Language
Beispiel: Liste aller Kunden aus Darmstadt (SQL-Abfrage)
SELECT name, plz, ort
FROM kunde
WHERE ort = 'Darmstadt' ;
(c) schmiedecke 06
DBS-1 : Einführung
Funktioniert auf jeden
Fall, solange die
Tabelle Kunde die
angegebenen Spalten
hat...
16
Zeitachse Datenbanken
Fifth Generation (1990 - today)
Client-server architectures
Massively parallel processors
Open interfaces (esp. ODBC)
Integration of Internet and databases (esp. JDBC)
Object-relational Database Systems
Deductive Databases (rules & facts)
Fourth Generation (1980 - 1990)
Database Systems developed for Personal Computers; examples: dBASE, Paradox
Object-oriented Database Systems; examples: POET by POET, O2 by O2 Technology
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 Oracle
Entity-Relationship Model introduced by Chen
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) by
IBM
Network Model; example: UDS (Universelles Datenbank System) by Siemens
Data structure diagrams introduced by Bachman
First Generation (1945 - 1960)
data on punched cards or on magnetic tapes
offline services / batch processing
sequential access to data
(c) schmiedecke 06
DBS-1 : Einführung
17
Bekannte DBMS
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Ingres
DB2
PostgreSQL
Informix
Sybase
Oracle
Cloudscape
MySQL
Access
SQL Server
dBase
Paradox
Poet
O2
....
(c) schmiedecke 06
DBS-1 : Einführung
18
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
(c) schmiedecke 06
DBS-1 : Einführung
Grafik: IBM
19
Auswahlkriterien für DBMS
Ein- oder Mehrbenutzersystem
Zentrale / verteilte Datenbanken
Datenmodell
Administrative Möglichkeiten
Interne Datenorganisation / Tuningmöglichkeiten
Open source / kommerziell ....
(c) schmiedecke 06
DBS-1 : Einführung
20
DBMS-Schnittstellen
interaktive Anfrage ( ad hoc-Anfragen)
Programmierschnittstellen
Administrationsschnittstellen
Datenbanksprachen mindestens für
-
Datendefinition
Datenmanipulation
Datenabfragen
Datenbankadministration
(c) schmiedecke 06
DBS-1 : Einführung
21
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
1 bewertete Aufgabe
Selbststudium
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
(c) schmiedecke 06
DBS-1 : Einführung
22
Aufbau einer Relationalen DB
Geschäftspartner
$
',
& #( )
$)
*
+
,
-
#
'
+
-
.
+
/
)
0& 1
Märkte
!
!
&
*
'
&
'
"#$
%
#
&
#( )
)+
%
%
Wird angeboten auf
(
!
'
#( )
'
#( )
'
#( )
'
Produkte
!
%
!'
#
$
#
$
)+
"
#
(c) schmiedecke 06
$
DBS-1 : Einführung
23
Die Datenbanksprache SQL
deskriptiv – nicht algorithmisch!
genormt:
– 1970
–
–
–
–
1976
1986
1992
1999
– 2003
(c) schmiedecke 06
Edgar F. Codd, „A Relational Model of Data for Large
Shared Data Banks“
SQL von IBM (ursprünglich SEQUEL/2)
SQL ANSI-Standard (ISO 1987)
SQL-92, SQL2 – große Revision
SQL:1999, SQL3 – Objektrelationale Sprachelemente;
- Einbindung von Java
- Einbindung von XML
- OLAP: Wissensbasierte Systeme
- Multimedia- u.a. Applikationspakete
SQL:2003 – bisher kaum implementiert
DBS-1 : Einführung
24
Bestandteile der Datenbanksprache SQL
DCL – Data Control Language
DDL – Data Definition Language
DML – Data Manipulation Language
!
"# $
%& "
QL – Query Language
'
(
'
' ,,
' 2 "
' !
(c) schmiedecke 06
"
"
)
" # " - , "% &
, /
"
*
* )/ , 3) #
)/ , # " ,,
# " 4
*
"
0
"
,
&
, /
)
"
+ &
*. "
/ "
DBS-1 : Einführung
, ) " )
+ ",
+ &
, ) " )
1
, ) " " / %&
+
",
1
25
QL – Query Language
Was bietet SELECT?
'
(
"
"
)
*
+ &
)
+ ",
"% &
"
*
+ &
)
+ ",
*
, / "
1
" / %& 1
# &
)
, ) "
" # " - ,
'
. "
, ) "
"
' ,, , /
0 "
, ) "
' 2 " * )/ , 3)
)/ ,
' !
# " ,, , /
# " 4
(c) schmiedecke 06
"
DBS-1 : Einführung
26
Grundform der SELECT-Anweisung
SELECT [DISTINCT] Auswahlliste
FROM Quelle
WHERE Where-Klausel
;
Beispiele:
5
67
5
7
8
8
0
0
0
9
:,
0
0
8
5
7
8
1 <
5
7
8
1 <
0
0
;
:
(
"
;
:
(
"
;
:
(
"
;
9
0
0
0
" = $>9
:
0
0
(c) schmiedecke 06
)
9
5
7
SFW-Block
0
0
?
@A
@
" = B>9
DBS-1 : Einführung
"
:
(
:
# )"
. "
"
;
;
0" ,
, ;
27
Abfragen über mehrer Tabellen (Joins)
SELECT [DISTINCT] Auswahlliste
FROM Quelle1, Quelle2, Quelle3, ...
WHERE Where-Verbundklausel
AND Where-Klausel
;
JOIN nach SQL-86
Intuitive Formulierung nach SQL-86:
7
8
1 <
# #
0
0
0
1 "0 , )
/
0
# # C 1 "0 , )
" D E>9
(c) schmiedecke 06
"
/
DBS-1 : Einführung
# #
28
Das reicht für heute!
Nächstes Mal geht es Ansätze zur
Datenstrukturierung.
(c) schmiedecke 06
DBS-1 : Einführung
29
Herunterladen