zicari db teil1
TRANSCRIPT
![Page 1: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/1.jpg)
Einführung
Grundlagen der Programmierung 2 I-1
Grundlagen der Programmierung 2
Einführung in Datenbanken
![Page 2: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/2.jpg)
Einführung
Grundlagen der Programmierung 2 I-2
Inhalt
• Einführung • Entity-Relationship-Diagramm • Relationales Modell • Entity-Relationship-Diagramm ins
Relationales Modell umwandeln • Die relationale Abfragesprache
SQL (+ Transaktionen Grundlagen) • Normalisierung
![Page 3: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/3.jpg)
Einführung
Grundlagen der Programmierung 2 I-3
Literaturliste für den Datenbanken Teil
• Ramez Elmasri und Shamkant B. Navathe, 'Grundlagen von Datenbanksystemen', Pearson Studium, 2002, ISBN 978-3827370211
• Kemper, A. Eickler: 'Datenbanksysteme - Eine Einführung ', 6. Auflage Oldenburg Verlag, 2006, ISBN 3-486-57690-9
• Ramez Elmasri und Shamkant B. Navathe: ‘Fundamentals of Database Systems’, Addison-Wesley Longman, 2003, ISBN 978-0321204486
Thema R. Elmasri (D./Engl.) A. Kemper
Einführung Kapitel 1 Chapter 1 Kapitel 1
Entity-Relationship Diagramm
Kapitel 3 Chapter 3 Kapitel 2.1 - 2.12
Relationales Modell Kapitel 5 Chapter 5 Kapitel 3.1 - 3.4
Entity-Relationship Diagramm ins Relationales Modell umwandeln
Kapitel 7.1 Chapter 7.1 Kapitel 3.2 - 3.3
SQL (Transaktionen Grundlagen)
Kapitel 61 – 6.5 / 12.1 – 12.2Chapter 8 / 17.1 – 17.2
Kapitel 4.1 - 4.16 Kapitel 9
Normalisierung Kapitel 9 Chapter 10 Kapitel 6.1 - 6.8
![Page 4: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/4.jpg)
Einführung
Grundlagen der Programmierung 2 I-4
Datenbanken – wozu?
Kernaufgaben von Datenbanksystemen ist die Speicherung und Verwaltung von großen Datenbeständen.
![Page 5: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/5.jpg)
Einführung
Grundlagen der Programmierung 2 I-5
Beispiel Bank:
konto Kontonummer Art Saldo 4325928 Giro -124.12
2345332 Spar 2001.03
… … …
kunde Kundennr Vorname Nachname Kontonummer1 Peter Mueller 4325928
2 Klara Maier 2345332
3 Hilde Mueller 4325928
.. … … …
Mögliche Operationen:
• Aktuelles Saldo (read)
• Geld abheben/einzahlen (update)
• Neues Konto eröffnen/löschen (insert/delete)
• Neue Kunden hinzufügen/löschen (insert/delete)
![Page 6: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/6.jpg)
Einführung
Grundlagen der Programmierung 2 I-6
Beispiel Uni-Datenbank:
student
Matrikelnummer Vorname Nachname
26123 Peter Mueller
21098 Klara Maier
vorlesung Vorlesungsnummer Titel 01 Datenbanksysteme I
02 E-Commerce II
hört
Matrikelnummer Vorlesungsnummer
26123 01
26123 02
21098 01
![Page 7: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/7.jpg)
Einführung
Grundlagen der Programmierung 2 I-7
Datenbanksystem vs. Dateiorganisation
1. Dateiorganisation
Speicherung der Daten für jede Anwendung in einzelnen Dateien.
![Page 8: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/8.jpg)
Einführung
Grundlagen der Programmierung 2 I-8
Nachteile:
• Redundanz und Inkonsistenz Informationen werden mehrfach gespeichert.
• Beschränkte Zugriffsmöglichkeiten Informationen können bei isolierten Dateien schwer miteinander verknüpft werden.
• Eingeschränkter Mehrbenutzerbetrieb Mehrbenutzerbetrieb wird von Dateisystemen nicht unterstützt.
• Integritätsverletzung Einschränkende Bedingungen (Constraints) sind schwer zu überprüfen.
• Sicherheitsprobleme Nicht alle Benutzer sollen Zugriff auf alle Daten haben.
![Page 9: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/9.jpg)
Einführung
Grundlagen der Programmierung 2 I-9
2. Datenbanksystem (DBS)
Zentrale Datenverwaltung und Datenhaltung.
![Page 10: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/10.jpg)
Einführung
Grundlagen der Programmierung 2 I-10
Vorteile von Datenbanksystemen
Die relationalen Datenbanksysteme wurden entwickelt (seit ca. 1975 von IBM Research), um die Probleme mit der getrennten Dateihaltung zu überwinden:
• Redundanz und Inkonsistenz Werden durch die zentrale Datenverwaltung und Datenhaltung vermieden.
• Beschränkung der Zugriffsmöglichkeiten Durch verschiedene Konzepte können Infor-mationen miteinander verknüpft werden (z.B. relationales Modell).
• Eingeschränkter Mehrbenutzerbetrieb Durch die zentrale Benutzerverwaltung einfach zu realisieren.
• Integritätsverletzungen Durch Constraints in der zentralen Daten-verwaltung gut umzusetzen.
• Sicherheitsprobleme Durch die zentrale Benutzerverwaltung können Zugriffsrechte gut kontrolliert werden.
![Page 11: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/11.jpg)
Einführung
Grundlagen der Programmierung 2 I-11
weitere Vorteile von DBS:
• Physische Datenunabhängigkeit: Anwendungen von Modifikationen an der physischen Speicherstruktur nicht betroffen.
• Logische Datenunabhängigkeit: Änderungen an der logischen Datenstruktur beeinflussen Anwendungen nicht.
• Dauerhafte Speicherung von großen Datenbeständen.
• Bereitstellung einer Anfragesprache zum einfachen Umgang mit der Datenbank.
• Sicherheit gegenüber Hard- und Softwareausfällen.
• Effizient, möglichst schnell unter Benutzung weniger Ressourcen.
![Page 12: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/12.jpg)
Einführung
Grundlagen der Programmierung 2 I-12
Die drei Abstraktionsebenen eines DBS
![Page 13: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/13.jpg)
Einführung
Grundlagen der Programmierung 2 I-13
Die verschiedenen Ebenen können analog zu den Konzepten in Programmiersprachen verdeutlicht werden. Ein Kunde könnte in einer imperativen Programmiersprache wie folgt deklariert werden:
TYPE Kunde = RECORD Name: String; Strasse: String; Ort: String;
END;
Der Record Kunde hat hier drei Felder. Jedem Feld wird ein Name und ein Type zugewiesen.
![Page 14: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/14.jpg)
Einführung
Grundlagen der Programmierung 2 I-14
Datenabstraktion (Data Abstraction) Sehr grob unterscheidet man drei Abstraktions-ebenen in einem Datenbanksystem:
• Die physische Ebene (physical level): Auf dieser Ebene ist beschrieben, wie die Daten auf dem Sekundärspeicher abgelegt sind.
• Die logische/konzeptionelle Ebene (conceptual level): Auf dieser Ebene wird mittels eines Daten-bankschemas festgelegt, welche Daten abgespeichert sind.
• Die Sichten (view level): In den Sichten werden Teilmengen der Daten dargestellt. Die Sichten sind auf die Bedürfnisse der Benutzer zugeschnitten.
![Page 15: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/15.jpg)
Einführung
Grundlagen der Programmierung 2 I-15
• Auf der physischen Ebene kann die Speicherung eines Kunden als Block (von Words oder Bytes) im Speicher beschrieben werden.
• Die konzeptionelle Ebene beschreibt die Type Deklaration und die Beziehungen zwischen einzelnen Typen wie oben beschrieben.
• Die einzelnen Sichten zeigen schließlich nur Teile der vorhandenen Daten. Ein Kassierer am Bankschalter sieht zum Beispiel nur die für ihn relevanten Daten und nicht auch Gehaltsinformationen von Kollegen.
![Page 16: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/16.jpg)
Einführung
Grundlagen der Programmierung 2 I-16
Beispiel:
![Page 17: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/17.jpg)
Einführung
Grundlagen der Programmierung 2 I-17
Architekturübersicht eines DBMS
Quelle: A. Kemper, A. Eickler: Datenbanksysteme – Eine Einführung
![Page 18: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/18.jpg)
Einführung
Grundlagen der Programmierung 2 I-18
Wichtige relationale Datenbanksysteme
Datenbanksystem Hersteller
DB2 IBM
Oracle Database Oracle
Microsoft SQL Server Microsoft
MySQL MySQL AB (SUN Microsystems)
MaxDB (früher SAP DB) SAP
MS Access Microsoft
SQLite Open Source Community
Ingres University of California, Berkeley
![Page 19: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/19.jpg)
Einführung
Grundlagen der Programmierung 2 I-19
Marktanteile der Datenbanksysteme
Quelle: Bharathi Manivannan Selvaraj Survey – I Popular DBMS in the Market (September 2007)
![Page 20: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/20.jpg)
Einführung
Grundlagen der Programmierung 2 I-20
Beliebtheit der Datenbanksysteme
Quelle: Evans Data Corp: Users’ Choice Database Servers (2008)
![Page 21: Zicari Db Teil1](https://reader034.vdocuments.pub/reader034/viewer/2022051514/54a32aa1ac7959197f8b4679/html5/thumbnails/21.jpg)
Einführung
Grundlagen der Programmierung 2 I-21
Worldwide relational database market (2005)
Gesamt Wert: 13.8 Milliarden Dollar
Wachstum 2005: 8.4%
Quelle: Gardner (2005)