Relationale Datenbank

Werbung
Relationale Datenbanken
Kursziele
• DB Grundlagen
• Daten-Modellierung
• Relationales Modell und DB
• => Praxis:
• Mit SQL als Anfragesprache
• Mit MySQL als DB
RDB 1 - 1
Version 3.4
Kursinhalt (Tage)
1. Einleitung / Entity-Relationship Modell
2. Relationales Modell / SQL Teil 1
3. SQL Teil 2
4. Normalformen / Transaktionen
5. DB-Zugriff mit Java: JDBC
6. Performance / Zugriffsberechtigung / Views
7. DB-Testdaten und SQL-Optimierungen
8. Prüfung
RDB 1 - 2
Version 3.4
Tag 1
Inhaltsverzeichnis
• Einleitung / Literaturverzeichnis
• Die Datenbank-Thematik
• Das relationale Datenmodell
• Das Entity-Relationship Modell
• Übungen
RDB 1 - 3
Version 3.4
Literaturverzeichnis
•
•
•
•
•
•
•
Taschenbuch Datenbanken / Thomas Kudraß / Hanser 2015
Datenbanksysteme Eine Einführung / Alfons Kemper; André
Eickler / Oldenburg 2006
JDBC™ API Tutorial and Reference, Third Edition, Maydene Fisher;
Jon Ellis; Jonathan Bruce, Prentice Hall 2003
Database Administration: The Complete Guide to Practices and
Procedures, Craig S. Mullins, Addison Wesley Professional 2002
SQL Tuning, Dan Tow, O'Reilly 2004
High Performance MySQL, B. Schartz u.a., O'Reilly 2012
www.safaribooksonline.com
• Die grössten US und deutschen Verlage machen mit
• > 30,000 IT-Bücher und Videos online (auf deutsch und englisch)
• Privates Starter-Kit für $20 / Monat
RDB 1 - 4
Version 3.4
Die Datenbank-Thematik
Wieso eine Datenbank?
• Konsistenz (Redundanz...)
• Integrität (Datenverlust...)
• Mehrbenutzer-Betrieb
• Sicherheit (unkontrollierte Zugriffe...)
RDB 1 - 5
Version 3.4
Die Datenbank-Thematik
Datenabstraktion / Ebenen
Sicht
Sicht11
Sicht
Sicht22
Sicht
Sicht33
Sicht
Sicht44
Externe Struktur
Logische
LogischeEbene
Ebene
Konzept. Struktur
Physikalische
PhysikalischeEbene
Ebene
Interne Struktur
Quelle: Kudraß
RDB 1 - 6
Version 3.4
Die Datenbank-Thematik
Schema und Ausprägung
DDL
DDL
Data
Definition
Language
->
DB Schema
->
Datenstruktur
Data
Control
Language
->
Datenzugriffsrechte
Quelle: Kudraß
DML
DML
Datenbank
Data
Manipulation
Language
->
Daten
Instanzen
DCL
DCL
RDB 1 - 7
Version 3.4
Die Datenbank-Thematik
Datenbase Management System Architektur
Benutzer
Applikation
Programmierer
Anfrage
DB Admin
DB
Framework
DB Admin
Werkzeuge
DML Compiler
DDL Compiler
DB Manager
Schema Verwaltung
Mehrbenutzersynchr.
Fehlerbehandlung
Dateiverwaltung
Logs
Quelle:
Kemper
Indexes
Daten
Data
Dictionary
RDB 1 - 8
Version 3.4
Die Datenbank-Thematik
Neue Anwendungsfelder
Geo
DB
Multimedia
DB
Data-Warehouse
(DWH)
Business
Business
Intelligence
Intelligence
Object-Oriented
Object-Oriented
DB
DB
XML
XML
Datenbanken
Datenbanken
NoSQL
NoSQL
DB
DB
Quelle: Kudraß, Wikipedia
DataMining
Datenbanken
Cloud
Cloud
Computing
Computing
Big
BigData
Data
Open
OpenData
Data
RDB 1 - 9
Version 3.4
Die Datenbank-Thematik
Datenmodelle
Ausschnitt
Ausschnitt
aus
der
aus derrealen
realenWelt
Welt
Konzeptionelles
KonzeptionellesSchema
Schema
Entity-Relationship
Entity-RelationshipModell
Modell
Relationales
Relationales
Modell
Modell
Hierarchisches
Modell
Objekt-Orientiertes
Modell
RDB 1 - 10
Version 3.4
Das relationale Datenmodell
Entity-Relationship Modell / Grundprinzip
Quelle: Wikipedia
RDB 1 - 11
Version 3.4
Das relationale Datenmodell
Beispiel
RDB 1 - 12
Version 3.4
Das relationale Datenmodell
Pro und Kontra
Pro
•
•
•
•
Mathematisch basiert
Weit verbreitet
Lange Erfahrung
Guter programmatischer
Support
Kontra
• Künstliche Datensegmentierung
• Rekursion und
Vererbung nicht direkt
modellierbar
Produkte (Achtung: alle sind verschieden):
Oracle, MySQL, PostgreSQL, Ingres, MS SQL Server,
Sybase, DB2, (MS Access?), ...
Applikationen: zahlreiche...
RDB 1 - 13
Version 3.4
Das Entity-Relationship Modell (ERM)
Überblick
Als Rechtecke
dargestellt
Entity
Als Raute
dargestellt
Ziel: Teil der realen Welt
zu modellieren
Grad der Beziehung:
Wieviele Entitäten involviert: 2..3
in der Regel
Generalisierung
"IsA"
Aggregation
"IsPartOf"
Beschreibt das Was
und nicht das Wie
Beziehung
(Relationship)
ER-Modell
Spezielle
Semantik
Abstraktion
Attribute
Instanzen vs. Typen
0:n
1:n
Kardinalität
n:m
Quelle: Kudraß
RDB 1 - 14
Version 3.4
Das ER-Modell
Entity- und Beziehungstypen
Autor
Entitytyp
Quelle: Kudraß
Schreibt
Beziehungstyp
Buch
Entitytyp
RDB 1 - 15
Version 3.4
Das ER-Modell
Entities- und Beziehungsinstanzen
Thomas Kudraß
schreibt
Taschenbuch
Datenbanken
Charles M. Schulz
schreibt
Being a Dog is
a Full-Time Job
Monika Saxer
schreibt
Bierwandern
Schweiz
Entities
Quelle: Kudraß
Beziehungen
Entities
RDB 1 - 16
Version 3.4
Das ER-Modell
Attribute
PersNr
Name
ISBN
Autor
Schreibt
Buch
Titel
Vorname
?
Quelle: Kudraß
RDB 1 - 17
Version 3.4
Das ER-Modell
Kardinalität (1)
Autor
1
N
min:max
Schreibt
1
M
min:max
Buch
Typische Fragen:
• Gibt es Autoren, die kein Buch geschrieben haben?
• Gibt es Bücher, die von keinen Autor geschrieben werden?
• Gibt es Autoren, die mehr als ein Buch schrieben?
• Gibt es Bücher, die durch mehr als einen Autor geschrieben sind?
RDB 1 - 18
Version 3.4
Das ER-Modell
Kardinalität (2)
Autor
1
1
Schreibt
Buch
1 Autor schreibt 1 Buch
Autor
1
N
Schreibt
Buch
1 Autor schreibt 0 bis N Bücher
Autor
N
Schreibt
1
Buch
0 bis N Autoren schreiben 1 Buch
Autor
N
Schreibt
M
0 bis N Autoren schreiben 0 bis M Bücher
Buch
RDB 1 - 19
Version 3.4
Das ER-Modell
Kardinalität (3) Notation
Quelle: Wikipedia
RDB 1 - 20
Version 3.4
Das ER-Modell
Umgang mit der Rekursion
Arbeitet in (1:1)
Abteilung
Mitarbeiter
Gehört zu (0:N)
Beispiel
Der Mitarbeiter "Düschmoll" arbeitet in der Abteilung
"Software-Engineering", die selber zur Abteilung "Entwicklung"
gehört.
Quelle: Kudraß
RDB 1 - 21
Version 3.4
Das ER-Modell
Umgang mit der Generalisierung
Geschäftspartner
Kunde
Lieferant
Typischer Fall eines "Is-A"-Beziehungstypes
=>
Ein Kunde "Is-A" (ist ein) Geschäftspartner,
und ein Lieferant ist auch ein.
Quelle: Kudraß
RDB 1 - 22
Version 3.4
Das ER-Modell
Vorgehen für die Diagrammentwicklung
Wichtig:
• Iterativ vorgehen
• Modell mit Stakeholders abstimmen
(1) Entitiestypen (Substantive suchen) und deren Attribute identifizieren
(2) Verben suchen und damit die Beziehungstypen identifizieren
(3) Entitiestypen und Beziehungstypen verknüpfen
(4) Kardinalität für jedes Paar "Entitiestyp / Beziehungstyp"
spezifizieren
Quelle: Kudraß
RDB 1 - 23
Version 3.4
Übung 1
Software-Firma ER-Modellierung
•
Die Software Firma "Napadnom" zählt 30
Angestellte. Diese arbeiten in diversen Projekten.
Die Projekte brauchen verschiedene Grundsoftware
und Hardware, um realisiert zu werden.
•
Gewünscht ist ein Informationssystem, das der
Firma erlaubt, Projektressourcen zu managen.
•
•
Tipp 1: Lösen Sie diese Übung in zweier Gruppen
Tipp 2: Auf einem Blatt Papier und mit Bleistift...
RDB 1 - 24
Version 3.4
Übung 2
Software-Werkzeuge schon installiert?
•
MySQL Server
Die Server-Applikation (MySQL spezifisch), Zugriff via IP-Socket.
Dabei ist auch ein Kommando-Interpreter
•
MySQL Workbench
Client-Software (MySQL spezifisch), um DB mit SQL zuzugreifen, DB zu
verwalten (kreieren, ändern, löschen) und zu designen (graphisches
Schema-Editor)
Der Installationsprozess ist hier beschrieben:
http://www.sws.bfh.ch/maitre/SD-RDB/MysqlWindowsInstall.html
RDB 1 - 25
Version 3.4
Übung 3
ER-Modell Ihrer CD-Sammlung
• Erstellen Sie das ER-Modell Ihrer CD-Sammlung
Zuerst nur Entitäten, Relationen und Kardinalität
modellieren. Dann Attribute addieren.
RDB 1 - 26
Version 3.4
Herunterladen