Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung Dateisystem <-> Datenbanksystem

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung Dateisystem <-> Datenbanksystem"—  Präsentation transkript:

1 Einführung Dateisystem <-> Datenbanksystem
Definition einer Datenbank Dreischichtenmodell Relationale Algebra Relationale Datenbanken

2 Lohnbuchhaltung mit einem Dateisystem
Personal Nr, Stundenlohn, Arbeitsstunden Personal Nr, Steuerklasse, Kinder Plausibilitäts- und Sortierprogramm Plausibilitäts- und Sortierprogramm sortiert nach Pers. Nr sortiert nach Pers. Nr Lohnabrechnung sortiert nach Bank In den Anfängen der Verarbeitung großer Datenbestände bildeten Daten und Programme eine Einheit und waren optimal aufeinander abgestimmt. Wenn ein anderes Programm die gleichen Daten bearbeiten wollte, mußte es sich genau an die Datenstruktur anpassen. Wenn dann die Datenstruktur geändert wurde, mußten beide Programme synchron dazu auch geändert werden. Im Lauf der Zeit wurde die Menge der Programme, die den gleichen Datenbestand bearbeiteten immer größer und damit nahm der Koordinierungsaufwand bei Änderung der Datenstruktur zum Teil einen Umfang an, der nicht mehr zu bewältigen war. Er kann abgeschätzt werden an dem Wehklagen einiger Firmen bei der Umstellung von einer zweistelligen auf eine vierstellige Jahreszahl , die zum Jahrhundertwechsel in alten Programmen notwendig ist. In diesem Beispiel, das die monatliche Gehaltsabrechnung abbildet, werden die monatlichen Gehälter in wenigen großen Schritten bearbeitet: Für jeden Mitarbeiter werden die Arbeitsstunden und der Stundenlohn in eine Datei (Lochkartenstapel) eingegeben.Wenn alle Daten eingegeben sind, wird ein Programm gestartet, das alle Eingabedaten prüft. Grobe Fehler können erkannt werden (z.B: zu geringer oder zu hoher Stundenlohn, zu viele Arbeitsstunden). Parallel dazu werden für jeden Mitarbeiter die Lohnsteuerdaten geprüft. Wenn alle Daten plausibel sind, wird für jeden Mitarbeiter der Monatslohn berechnet. Anschließend wird für jeden Mitarbeiter eine Überweisung für sein Lohnkonto erstellt. Diese Prozedur hat gewöhnlich mehrere Tage gedauert und zu spät eingegebene Daten konnten erst im Folgemonat berücksichtigt werden. Bank daten Buchungslauf für LZB

3 Lohnbuchhaltung mit einem Datenbanksystem
Personal daten Gehalts Bank Personalverwaltung Lohnbuchhaltung Die Nachteile der starren Kopplung zwischen Programmen und Daten wurde recht früh erkannt und es entstanden Konzepte, diese Kopplung flexibel zu gestalten. Ein Konzept wurde 1970 von E.F. Codd vorgestellt und beschreibt relationale Datenbanken, die eine Trennung zwischen Daten und Programmen vorsehen. Jedes Programm sieht nur die Daten, die für seine Bearbeitung notwendig sind. Eine Erweiterung der Datenstrukturen hat keinen Einfluß auf die Programme, welche die neuen Datenstrukturen nicht benötigen. für LZB

4 IBM Computertechnologie Die permanente Innovation
Die Begeisterung über die neue Datenbanktechnik hat die Werbetexter zu solchen und ähnlichen Aussagen hinreißen lassen. Es wurde suggeriert, dass die Bearbeitung von Datenbeständen ein Kinderspiel sei.

5 Definition einer Datenbank
Datenbanksystem Datenbankmanagementsystem Manipulation Zugriffssteuerung Konsistenzsicherung Datenstrukturen Daten Unter einer Datenbank wollen wir in dieser Vorlesung ein Datenbanksystem und die darin enthaltenen Daten verstehen. Ein Datenbanksystem besteht aus einem Datenbankmanagementsystem (DBMS), welches die Daten bearbeitet und Ergebnisse von Anfragen an den Auftraggeber zurückliefert. Weiterhin ist es für die Verwaltung paralleler Zugriffe und die Sicherung der Konsistenz der Daten zuständig. Zum Datenbanksystem gehört auch die Beschreibung der Datenstruktur. Datenbank: Datenbanksystem Datenbankmanagementsystem Manipulation: Einfügen, Ändern und Löschen von Daten Zugriffssteuerung: Bearbeiten der gleichen Daten von mehreren Benutzern Konsistenzsicherung: Widerspruchsfreie Daten dürfen nicht durch teilweise Änderungen zu Widersprüchen führen Datenstrukturen: Beschreibungen der Tabellen Daten

6 Dreischichtenmodell nach ANSI/SPARC
Externe Schicht Benutzersicht Konzeptionelle Schicht Datenbankadministratorsicht Interne Schicht Datenbankherstellersicht Dreischichtenmodell nach ANSI/SPARC Die Trennung zwischen Daten und Programmen, die durch Datenbanksysteme ermöglicht wird, erlaubt unterschiedliche Betrachtungsweisen des Datenbanksystems. Die externe Schicht beschreibt die Sicht des Benutzers oder Programmierers; hier ist die Datenmanipulation im Vordergrund (ansehen, einfügen, ändern und löschen von Datensätzen). Die konzeptionelle Schicht beschreibt die Sicht des Datenbankadministrators; hier ist die Struktur der Daten, die Ordnungsreihenfolge, die Zugriffsberechtigung im Vordergrund. Die interne Schicht beschreibt die Sicht des Entwicklers des Datenbanksystems; hier stehen die physikalische Datenspeicherung, die Mechanismen des konkurrierenden Zugriffs und der Konsistenzsicherung im Vordergrund. Das Dreischichtenmodell ist vom American National Standards Institute definiert worden. SPARC = Standards Planning and Requirements Committee

7 Datenmanipulation Suchen Hinzufügen Ändern Löschen
Die Manipulation der Daten erfolgt mit einer für diese Zwecke definierten Programmiersprache, der Sprache SQL (= Structured Query Language). Anders als bei den bisher erlernten Programmiersprachen beschreibt SQL nicht den Weg, wie man zum Ergebnis kommt, sondern beschreibt die gewünschte Ergebnismenge und das DBMS sucht selbständig die Lösungsstrategie und das gewünschte Ergebnis.

8 Klassifikation von Programmierstilen
prozedural deklarativ imperativ funktional logisch relational Objekt- orientiert basic C smalltalk lisp prolog SQL prozedural: Programme legen fest, wie ein bestimmtes Problem gelöst wird, z.B. welche Prozeduren, Funktionen, Methoden, usw. in welcher Reihenfolge benutzt werden sollen, um ein Ziel zu erreichen. imperativ: Durch Manipulation von Speicherinhalten m.H. von Anweisungen (Befehlen) in einer bestimmten Reihenfolge, die durch spezielle Kontrollanweisungen (Verzweigungen, Schleifen, etc.) gesteuert werden kann. objektorientiert: Vordergründig durch Kapselung von Informationen und Operationen in Objekten und Klassen von Objekten, die sich gegenseitig Nachrichten schicken und somit das geforderte Verhalten erzeugen. Die gewünschte Funktionalität wird aber dem imperativen Paradigma entsprechend durch Manipulation von Speicherinhalten m.H. von Anweisungen erreicht. funktional: Durch Anwendung von Funktionen auf die ihnen übergebenen Parameter, wodurch dann ein Wert berechnet wird. Parameter und Werte können i.a. beliebige Datenobjekte sein, d.h. z.B. auch Funktionen selbst oder andere beliebig komplexe Objekte. Die übergebenen Objekte werden dabei nicht verändert sondern der Wert der Funktionsanwendung ist immer ein neues Datenobjekt. Komplexe Funktionen werden aus einfachen Funktionen auf verschiedenste Weise zusammengesetzt. deklarativ: Das Programm beschreibt das Problem – das Was – , jedoch nicht wie die Problemlösung erreicht werden soll. Die Lösung wird von einem zugeordneten Algorithmus ‚automatisch‘ generiert. logisch: Das Programm besteht aus Definitionen von logischen Prädikaten (man kann auch Relationen dazu sagen). Der Problemlösungsalgorithmus liefert auf Anfragen die Antwort(en), ob und für welche Datenobjekte ein bestimmtes Prädikat (eine best. Relation) erfüllt ist. relationenorientiert: Die wichtigste relationenorientierte Sprache ist SQL. Sie geht auf einen Artikel von Chen aus dem Jahr 1970 zurück. Daten werden in Tabellen abgelegt. Mit Hilfe von SQL ist es möglich, die gewünschten Mengen von Zeilen und Spalten herauszusuchen. Dabei werden die gewünschten Eingenschaften formuliert und der Interpreter von SQL ermittelt dann die gültige Ergebnismenge. Programmiersprachen ermöglichen, verhindern oder unterstützen die Erstellung von Programmen in einem bestimmten Programmierstil durch die bereitgestellten Sprachkonstrukte und den Aufbau der Programme. So kann z.B. in C auf Speicherinhalte auf verschiedenste Weise zugegriffen werden, was in einer funktionalen Sprache wie Miranda oder Haskell nicht möglich ist. Andererseits können in einer funktionalen Sprache Funktionen definiert werden, die Funktionen eines beliebigen Typs als Wert liefern. Das ist in C jedoch nur sehr eingeschränkt über Zeiger auf Funktionen möglich. Die Zuordnung einer Programmiersprache zu einem Programmierstil ist nicht immer möglich, da sie u.U. verschiedene Stile unterstützen. Diese Sprachen werden häufig als hybrid bezeichnet. Dazu zählen z.B. Lisp und Scheme, die sowohl funktionale als auch imperative Sprachelemente enthalten. Andere Beispiele sind objektorientierte Erweiterungen von Programmiersprachen, z.B. von Lisp oder Prolog. Es liegt dann an der Einstellung des Programmierers, welchen Stil er bevorzugt oder umsetzen will. fortran C++ scheme Von: Prof. Schwenzfeger

9 Beispiel Programmierstile prozedural
Eintrag = anfang repeate eintrag = eintrag.next until eintrag.name = ‚Worzyk‘; gesuchte_nummer = eintrag.nummer - 10; for eintrag = anfang to eintrag = ende do if eintrag.nummer = gesuchte_nummer print eintrag.name; eintrag = eintrag.next; end; Dieses Programm sucht aus einem Telefonbuch alle Namen, deren Telefonnummer um 10 kleiner ist als die Telefonnummer von Worzyk. Programmablauf: Fang vorne an Lies einen Eintrag nach dem anderen, bis Du auf den Namen Worzyk triffst. Merk Dir von diesem Eintrag die Telefonnummer und subtrahiere 10 Fang vorn an und geh durch alle Einträge Wenn die Nummer des aktuellen Eintrags der gesuchten Nummer entspricht, drucke den dazugehörenden Namen aus

10 Beispiel Programmierstile deklarativ
SELECT name FROM telefonbuch WHERE nummer = (SELECT nummer from telefonbuch WHERE name = ‚Worzyk‘) - 10; Such aus der Datei Telefonbuch alle Namen, für welche die Telefonnummer die gleiche ist, die du unter dem Namen Worzyk im Telefonbuch findest.

11 Structured Query Language
1970 E.F. Codd: A Relational Model of Data for large Shared Data Banks 1974 D. Chamberlain entwickelt bei IBM in San Jose /USA den ersten Prototypen System/R (auch SEQUEL) um zu prüfen, ob das Konzept von Codd tragfähig ist. 1979 Qracle liefert erstes Datenbanksystem mit SQL aus 1981 IBM liefert SQL/DS aus 1986 Sybase wird ausgeliefert 1987 ISO 9075 Database Language SQL

12 Die wichtigsten relationalen Datenbanken

13 Standardisierung von SQL
Wechsel zwischen DBMS möglich Einmaliger Schulungsaufwand Parallel-Entwicklung möglich (unabhängig von der Ziel-DB) Trennung von DB und Anwendungsprogrammen Client-Server Anwendungen werden einfacher Durch die Standardisierung der Sprache SQL hat folgende Vorteile: Ein Wechsel zwischen unterschiedliche Anbietern von DBMS ist möglich. Es ist ein einmaliger Schulungsaufwand notwendig. Das Wissen bleibt beim Wechsel zu einem anderen DBMS erhalten. Parallel-Entwicklung ist möglich (unabhängig von der Ziel-DB). Es kann also in einem DBMS entwickelt werden und das Programm dann in ein anderes DBMS übertragen werden. Trennung von DB-Rechner und Anwendungsprogrammen. Es ist möglich auf einen anderen Rechner mit einem anderen DBMS zu wechseln. Client-Server Anwendungen werden einfacher Durch die Standardisierung der Sprache ist es möglich, die Entwicklung einer neuen Anwendung zu parallelisieren: Die Entwicklung der Anwendung kann unabhängig und parallel zu Auswahl des zukünftigen DBMS erfolgen.

14 Parallel-Entwicklung Gannt - Diagramm
Mit einem Gannt-Diagramm kann man aufeinander aufbauende und voneinander abhängige Teilaufgaben einer Gesamtaufgabe auf einer Zeitachse darstellen. Ein solches Diagramm ist eine Hilfe bei der Planung von Projekten. Es können die Arbeitsfortschritte dargestellt werden. Parallele und voneinander abhängige Teilaufgaben sind sichtbar und können geplant werden.

15 Parallel-Entwicklung Netzplan
Ein Netzplan ist eine weitere Möglichkeit, die Zusammenhänge zwischen den einzelnen Teilaufgaben darzustellen. In einem Netzplan kann man die Folge von Teilaufgaben erkennen, die das Ende der gesamten Aufgabe bestimmt.

16 Standardisierung von SQL
Grundlage ist das mathematische Modell einer Relationenalgebra -> Entwicklung einer mathematischen Theorie, welche die Eigenschaften des Modells beschreibt -> Implementierung von DBMS, so dass diese Eigenschaften erfüllt sind. Eine Algebra ist allgemein eine Grundmenge und eine Familie von darauf definierten Operationen. Beispiele: Vektorraum mit einem Vektorprodukt Compiler, der Programmcode von einer Sprache in eine andere übersetzt. Die Eigenschaften der Relationenalgebra können unabhängig von einem konkreten Problem definiert werden und so formuliert werden, dass sie möglichst universell sind. Es findet eine Arbeitsteilung zwischen den Theoretikern, die Anforderungen definieren und den Praktikern, die Datenbankmanagementsysteme entsprechende den Anforderungen realisieren und auf Praktikabilität testen.

17 Elemente der Relationenalgebra
Grundmenge: Relationen Operationen: Projektion Vereinigung Differenz Produkt Selektion Projektion: Abbildung eines Körpers auf eine Fläche. Dabei bleiben die Abmessungen in der Fläche konstant. Allgemein ist eine Projektion eines n-dimensionalen Körpers die Reduktion dieses Körpers um eine oder mehr Dimensionen. Vereinigung: Die Vereinigung von zwei Mengen A È B ist diejenige Menge, die alle Elemente von A und alle Elemente von B enthält. Differenz: Die Differenz von zwei Mengen A - B sind alle Elemente, die in A aber nicht in B sind. Produkt: Das Produkt zweier Mengen A x B ist die Kombination eines jeden Elementes aus A mit jedem Element aus B. Selektion: Die Selektion sondert aus einer Menge diejenigen Elemente aus, die einer bestimmten Bedingung genügen.

18 Relationen Relationen werden in SQL als Tabellen bearbeitet:
eine Kopfzeile enthält die Attribute null bis n Tupel oder Zeilen enthalten die Datenwerte Relationen werden in SQL als Tabellen bearbeitet Eine Tabelle besteht aus einer Kopfzeile, welche die Attribute enthält und null bis n Tupeln oder Zeilen, die Datenwerte enthalten. Tabellen haben eine einfach Struktur von atomaren Werten. Ein Attribut einer Tabelle kann keine zusammengesetzten Werte enthalten. Beispiel für eine Relation: name nummer Seewald-Heeg 3129 Lange Schneider 3110 Worzyk 3135 Die oberste Zeile enthält die Attribute der einzelnen Spalten: die erste Spalte enthält Namen, die zweite Spalte enthält (Telefon-)nummern. Die weiteren Zeilen enthalten jeweils ein Tupel bestehend aus einem Namen und der dazugehörenden Telefonnummer.

19 Projektion Aus einer Tabelle können eine bestimmte Menge von Spalten ausgewählt werden, die angezeigt oder verarbeitet werden. -> Unabhängigkeit von Tabellenstruktur und Programmstruktur Beispiel: Die Tabelle aus dem vorigen Beispiel (Name und Telefonnummer) sei persistent (d.h. sie existiert auch nach Beendigung des Bearbeitungsprogramms A). Ein weiteres Programm B benötigt nur den Namen. Bei einer konventionellen Programmierung muß dieses Programm die vollständige Struktur definieren. Ein weiteres Programm C benötigt zusätzlich den Raum, in dem die Person sitzt. Es erweitert die Struktur. Diese Erweiterung muß auch in den Programmen A und B durchgeführt werden. Beim Einsatz von relationalen Datenbanken sind Repräsentation der Daten in der Datenbank und im Anwendungsprogramm entkoppelt. Die Relation kann um das Attribut „Raum“ erweitert werden, ohne die bestehenden Anwendungsprogramme zu ändern.

20 Vereinigung Die Inhalte zweier Tabellen mit gleichen Attributen können vereinigt werden, so dass sie sich dem Anwendungsprogramm als eine Tabelle präsentieren. Beispiel: Die Telefonlisten zweier Abteilungen können zusammengefaßt werden, wenn sie die Attribute in der gleichen Reihenfolge enthalten. Moderne Datenbankmanagementsysteme sind in der Lage, Tabellen zusammenzufassen, die auf unterschiedlichen Rechnern an unterschiedlichen Standorten liegen. Beispiel:

21 Vereinigung Beispiel Es ist möglich, dass die Mitarbeitertabelle jeweils vom lokalen Standort verändert werden darf. Bei einer Unterbrechung der Leitungen oder einem Ausfall der entfernten Tabellenteile ist so eine lokale Bearbeitung der Tabellen möglich. Die Realisierung einer solchen lokalen Verteilung ist auf zwei Arten möglich: Die Tabellen werden disjunkt gehalten. Vorteil: immer konsistent. Nachteil: Störungen bei Ausfall einer Lokation Kopien der Tabellen werden an jedem Ort vorgehalten Vorteil: Keine Störungen bei Ausfall einer Lokation Nachteil: Änderungen werden nicht immer gleichzeitig an jedem Ort ausgeführt.

22 Differenz Die Differenz zweier Tabellen T1 und T2 enthält alle Tupel, die in der Tabelle T1 aber nicht in der Tabelle T2 enthalten sind. Voraussetzung für die Bildung einer Differenz ist die gleiche Struktur von T1 und T2 Die gleiche Struktur besagt, dass die Menge der Attribute und die Eigenschaften der Attribute übereinstimmen müssen. Die Bedeutung der Attribute kann unterschiedlich sein. Beispiel: T1 enthält die Namen aller Mitarbeiter einer Abteilung T2 enthält die Namen aller Vorgesetzten einer Abteilung T1 - T2 enthält die Namen Mitarbeiter, die keine Vorgesetzten sind.

23 Produkt Das Produkt der Tabellen T1 und T2 hat die Attribute von T1 und T2. Jedes Tupel von T1 wird mit jedem Tupel von T2 verbunden. Das Produkt wird ohne Rücksicht auf die Bedeutung der Attribute und die Sinnhaftigkeit der Ergebnisse gebildet. Es ist die Kunst den Programmierers, aus dieser Menge diejenigen Tupel auszuwählen, die für die weitere Verarbeitung sinnvoll sind.

24 Relationen Produkt

25 Selektion Aus einer Tabelle werden Tupel mit bestimmten Eigenschaften ausgewählt und dem Anwendungsprogramm präsentiert. Die Auswahl wird mit Hilfe der Aussagelogik getroffen. An dieser Stelle wird der deklarative Charakter der Programmiersprache SQL sehr deutlich: Man teilt dem Datenbanksystem mit was man als Ergebnis haben möchte. Das wie macht das Datenbanksystem.

26 Selektion Aussagen über Konstanten, Attribute und Funktionen mit Hilfe von Vergleichsoperatoren = ¹ < £ > ³ und logischen Operatoren Ø Ù Ú

27 Selektion Beispiel Mögliche Fragen: wie heißen die Lehrer in Köthen
wieviel verdienen die Leute in Aken Suche Person aus (Person,Ort) für die gilt: Person aus (Person,Ort) = Person aus (Person,Beruf) Ù Beruf aus (Person,Beruf) = „Lehrer“

28 Zusammenfassung Datenbank besteht aus
Datenbanksystem DBMS Datenstrukturen Daten Datenbank trennt Anwendungsprogramme von Daten SQL ist deklarative Programmiersprache Grundlage für SQL ist Relationenalgebra


Herunterladen ppt "Einführung Dateisystem <-> Datenbanksystem"

Ähnliche Präsentationen


Google-Anzeigen