Einführung in Datenbanken

Slides:



Advertisements
Ähnliche Präsentationen
ER-Modell: Objekte und Klassen
Advertisements

Datenbankdesign mit ACCESS.
Datenbanken Beispiel: Musikverwaltungsdatenbank Daten: Musikstück
Zur Rolle der Sprache bei der Modellierung von Datenbanken
Datenbanken Einführung.
Datenbankmanagementsystem
Relationaler Datenbankentwurf (II)
spezielle Nutzersichten formale Ebene (deskriptive Regeln)
Datenmodellierung Externe Phase Informationsstruktur
Normalisierung nach Edgar. F. CODD (1970)
Einsatz von SiSy in der Berufsausbildung
Kapitel 4 Datenstrukturen
Das Entity-Relationship-Modell
Kapitel 3: Das Relationenmodell
Franziska Schmidt Sarah Ahlheit
Das ERM-Model Manuela Erdmann.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Schritte zu Datenmodellierung
Datenbankdesign und Normalisierung
Daten bank St. Wiedemann.
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
Datenbanken Christof Rumpf
Access 2000 Datenbanken.
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
Normalformen Normalisieren Schlüssel
Datenintegrität Referentielle Integrität create table
6 Normalformen Normalisieren Schlüssel
Einführung Dateisystem <-> Datenbanksystem
Was ist eine Datenbank? ermöglicht die Eingabe von Daten
Datenmodellierung - Aufbau einer Datenbank -
Fachbereich Mathematik/Informatik Universität Osnabrück
© Katharina Brachmann Normalformen Oldenbourg S137, Klett S117
Buch S70ff (Informatik I, Oldenbourg-Verlag)
Einführung und Überblick
Relationale Datenbankmodelle
... und alles was dazugehört
Integritätsbedingungen
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Die Grundterminologie
Datenbank-entwicklungsprozess
Datenbank.
Access 2000 Willkommen im Access-Kurs Oliver Mochmann.
Datenbanken Dantenbanksystem Data Base System Datenbasis (Daten)
Semantisches Datenmodell Entity-Relationship-Modell Normalformen
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Allgemeines zu Datenbanken
(D.h. „Hallo MausFans!“ auf Japanisch).
DI (FH) DI Roland J. Graf MSc (GIS) U N I V E R S I T Ä T S L E H R G A N G Geographical Information Science & Systems UNIGIS.
Einführung in Datenbankmodellierung und SQL
Freiwillige Feuerwehr der Stadt Perg
verstehen planen bearbeiten
Normalisierungsprozess
Relationale Datenbanken
Datenbank Wandertag Situationsbeschreibung
Einführung Dateisystem <-> Datenbanksystem
SS 2014 – IBB4B Datenmanagement Do 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Datenbanken Maya Kindler 6c.
Datenbanken Einführung
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Vom Konzept zur Datenbank
BHAK/BHAS 1 Salzburg KIDM 2ASBS Schuljahr 2004/05
Übungsblatt 4 Erläuterungen Wintersemester 15/16 DBIS.
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian.
SQL Basics Schulung –
ER-Modell und Relationales Schema
Präsentation von Darleen und Michèle
Datenbanken Von Amed und Alicia.
(Structured Query Language)
 Präsentation transkript:

Einführung in Datenbanken Weiter mit was sind Datenbanken

Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu bearbeitenden Teilausschnittes soll in ein möglichst getreues Modell überführt werden. Weiter mit „Wozu sind Datenbanken“

Wozu Datenbanken? dienen zur Erfassung von Massedaten verwalten Daten effizient sind immer dann gefragt, wenn viele Benutzer auf Daten zugreifen wollen stellen Datenintegrität und -konsistenz sicher Erst die einzelnen Verzweigungen abfahren! Weiter mit „Was bedeutet Effizienz“?

Arten von Datenbankmodellen Hierarchisches Modell Netzwerkmodell Relationales Modell Objektorientiertes Modell

Aufbau von Datenbanken I Woraus bestehen Datenbanken? Datenbanksystem Datenbank- management- system Steuert schreibenden und lesenden Zugriff enthält Daten Datenbank

Aufbau von Datenbanken II Eine Datenbank ist aufgeteilt in Systembereich Datenbereich Speicherort der Daten Benutzer- und Rechteverwaltung Transaktions- protokolle Datenverwaltung

Aufgaben des DBMS das DBMS ist die Schnittstelle zwischen Benutzer und Datenbank es hat den alleinigen physikalischen Zugriff auf den Datenbereich es dient der Umsetzung des Datenmodells Das Datenbankmanagementsystem bietet einen Abfragemechanismus, um dem Benutzer die Möglichkeit des Datenzugriffs zu bieten. Eine gängige Abfragesprache, die 1982 erstmals und 1995 letztmalig standardisiert wurde ist SQL (92/95) = Structured Query Language

Die Drei-Ebenen-Modell I 1972 entwickelt zur Standardisierung von Datenbank-architekturen vom Standard Planing Requirement Committee dient der Gewährleistung eines hohen Maßes an Datenunabhängigkeit Damit können Änderungen auf einer Ebene vorgenommen werden, ohne dass andere Ebenen beeinträchtigt werden.

Die Drei-Ebenen-Modell II Benutzerebene erzeugt Sichten (Views) um Benutzern die Daten darzustellen Wie kann ich mit welchen Daten den Benutzer bei seiner Arbeit unterstützen? konzeptionelle Ebene Welche Daten werden gespeichert? In welcher Beziehung stehen sie zueinander? Wer darf auf welche Daten zugreifen? Wie wir die Datenintegrität hergestellt und geschützt? Wie werden Redundanzen verhindert? Abbildung der Wirklichkeit in Tabelle physikalische Ebene Zugriffsverfahren Speicherstruktur

Datenbankdesign In einer Datenbank sollen Daten einer realen Welt abgebildet werden. Dazu ist es notwendig, die Struktur des zu bearbeitenden Teilaus-schnittes in ein möglichst getreues Modell zu übertragen. Es gibt zwei Methoden diese Teilausschnitte zu modellieren und für eine Darstellung in einer Datenbank aufzubereiten: die Entity-Relationship-Modellierung und die Normalisierung.

An dieser Stelle verlassen wir die theoretischen Überlegungen und wenden uns dem Datenbankdesign anhand eines praktischen Beispiels zu. Entwickelt werden soll die Datenbank eines kleinen Online-Computerladens, in dem Kunden Preisanfragen stellen-, Waren in einen Warenkorb legen und später bestellen können.

Planung einer Datenbank Die Planung einer Datenbank gliedert sich unter Anwendung des ER-Modells grob in fünf Teilschritte Entwicklung des Semantischen Modells Definition der Objekte Zuordnung der Attribute Analyse der Entitätsbeziehungen Erstellung eines ER-Diagramms

Entwicklung des semantischen Modells Im Rahmen der Entwicklung der semantischen Modells soll festgestellt werden, welche Anforderungen an die Datenbank gestellt werden. In unserem Konkreten Beispiel bedeutet das: Die Besucher unserer Seite wählen Produkte aus und legen sie in den Warenkorb. Aus Produkten des Warenkorbes können - müssen nicht -Produkte im Warenkorb werden. Die Produkte des Warenkorbes können in eine Bestellung übergehen. Besucher können keine Produkte bestellen, ohne Kunde zu sein Die bestellten Produkte führen zu einem Auftrag

Definition der Objekte Ein Objekt bzw. Entität (letztlich eine Tabelle) beschreibt ein abgrenzbares Phänomen des Weltausschnittes der modelliert werden soll. In unserem Webshop sind folgende Objekte denkbar: Besucher Kunde Produkt Warenkorb Bestellung und Auftrag

Zuordnung der Attribute Jedes Objekt weist bestimmte Eigenschaften auf, mit denen es charakterisiert werden kann. Um optimale Funktionstüchtigkeit zu gewährleisten, müssen alle notwendigen Attribute erfasst werden. Um eine Eindeutigkeit der Datensätze zu herzustellen, werden regelmäßig durchlaufende Nummer pro Datensatz vergeben. Diese Nummern werden zu Primärschlüsseln verarbeitet. BESUCHER BesucherNr, Datum, Uhrzeit KUNDE KundenNr, Name, Adresse PRODUKT ProduktNr, BestellNr, Produktname, Beschreibung, Preis WARENKORB KorbProdNr, Datum, BesucherNr, ProduktNr, Menge BESTELLUNG KundenNr, ProduktNr, Menge AUFTRAG AuftragNr, AuftragDatum, KundenNr

Analyse der Entitätsbeziehungen I Beziehungen zwischen Entitäten sind Kernbestandteil des ER-Modells. So kann z.B. die Kundennummer die Entitäten AUFTRAG und KUNDE miteinander verknüpfen. (Sie ist in der Tabelle Kunde Primär- und in der Tabelle Auftrag Fremdschlüssel). Bei den gegebenen Tabellen KUNDE, BESUCHER, PRODUKT, AUFTRAG, WARENKORB und BESTELLUNG ergeben sich folgende Assoziationen:

Analyse der Entitätsbeziehungen II KUNDE KundenNr Adresse… AUFTRAG AuftragNr AuftragsDatum… erteilt 1:n BESUCHER BesucherNr Zeit… wählt 1:n WARENKORB KorbProdNr BesucherNr… PRODUKT ProduktNr Name… BESTELLUNG KundenNr ProduktNr… gewählt 1:n PRODUKT ProduktNr Name… befindet sich 1:n WARENKORB KorbProdNr BesucherNr…

Erstellung eines Entitätsdiagramms BesucherNr Endsumme KundenNr Adresse AuftragsNr 1:n AUFTRAG Auftragsdatum 1:n KUNDE KundenNr KorbProduktNr ProduktNr BESTELLUNG 1:n Preis ProduktNr 1n BesucherNr WARENKORB 1:n BesucherNr BestellNr ProduktNr BESUCHER PRODUKT Zeit Beschreibung Preis Name

Umsetzung der Planung Die Umsetzung der Planung im Rahmen des Datenbankdesigns vollzieht sich dann in vier Schritten: Umwandlung der Objekte in die notwendigen Tabellen und Feldnamen Transformation etwaiger n:m Beziehungen in 1:1 bzw. 1:n Beziehungen Normalisierung des Datenmodells

Tabellen zur Programmierung BESUCHER: BesucherNr, Datum, Uhrzeit KUNDE: KundenNr, Vorname, Name, Strasse, PLZ, Stadt, Telefon PRODUKT: ProduktNr, BestellNr, Produktname,Familie, Beschreibung, Verpackungsmenge, Preis WARENKORB: KorbProduktNr, Datum, BesucherNr, ProduktNr, Menge BESTELLUNG: KundenNr, ProduktNr, Menge AUTRAG: AuftragNr, AuftragDatum, KundenNr

Jetzt haben wir es geschafft und können an die Umsetzung gehen!!

Entity-Relationship-Modell - Beziehungskisten Das ER-Modell gibt Regeln vor, mit denen sich Daten so strukturieren lassen, dass keine Redundanzen auftreten und die Datenkonsistenz gewährleistet ist. Im ER Modell werden regelmäßig zwei Tabellen in eine Beziehung zueinander gesetzt wobei sich vier Assoziationstypen verwenden lassen. 1 = einfache Assoziation c = konditionelle Assoziation (eine oder keine) m = multiple Assoziation (mehrere) und mc = multiple-konditionelle (mehrere oder keine) Assoziation aber dazu Einführung und ein vertiefendes Beispiel…

Normalisierung Unter Normalisierung versteht man das Aufteilen von Attributen in Relationen (Tabellen), so dass sie den Normalisierungs-regeln entsprechen Eine Methode, die reale Welt in ein Modell innerhalb einer Datenbank zu definieren ist das Normalformenmodell nach Dr. Edgar F. Codd, welches von ihm 1970 (1) entwickelt wurde. Es basiert auf den Regeln der Mengenlehre über Beziehungen zwischen Relationen. (1) Dr. Edgar F. Codd, A Relational Model of Data for Large Shared Data Banks IBM 1970; The Relation Model for Database Management Version 2. 1990, Addison-Wesley, 400 Seiten, 0-0201-14192-2

Wozu Normalisierung? Vermeidung redundanter Daten Eine Veränderung in einer Tabelle hat keine unerwünschten Seiteneffekte auf andere Tabellen. Wird eine Relation (Tabelle) in ihrer Struktur geändert, so soll der Änderungsaufwand in den anderen Tabellen möglichst minimiert werden. Entwickelt wurde die Normalisierung von E. F. Codd Anfang der 70er Jahre des letzten Jahrhunderts. Beispiel: In einer großen Tabelle sind in einem Datensatz Bankleitzahl und Name des Institutes gespeichert. Jetzt ändert sich die Bankleitzahl… Besser: die Bankleitzahl und der Name einer Bank sowie eine Ordnungszahl werden in einer Tabelle gespeichert. Die Ordnungszahl (hier Primärschlüssel) in der anderen Tabelle Fremdschlüssel bleibt gleich, nur die Werte in der ersten Tabelle werden verändert.

Normalformen Eine Relation ist in der ersten Normalform (NF 1), wenn alle Attribute nur einen Wert enthalten (damit atomar sind). Eine Relation ist in der zweiten Normalform (NF 2), wenn sie sich in der ersten Normalform befindet und jedes Feld (Attribut), das nicht zu einem Schlüssel gehört, vom gesamten Schlüssel abhängig ist. Eine Relation ist in der dritten Normalform (NF 3), wenn sie sich in der zweiten Normalform befindet und es keine Abhängigkeiten zwischen Attributen gibt, die nicht Schlüssel sind. Dazu gibt es hier Beispiele.

Einführung in Beziehungen I Ehemann Ehefrau 1 : n Beziehung (problematisch) Ehemann Freundinnen

Einführung in Beziehungen II m : m Beziehung: (noch problematischer) Ehemann Freundinnen Hier kann ein Ehemann mehrere Freundinnen- und eine Freundin mehrere Ehemänner ausgespannt haben…

Was bedeutet „effizient“? In erster Linie meint „Effizienz“ im Rahmen von Datenbanken Redundanzfreiheit. Jedes Datum sollte es im Rahmen der Datenbank nur einmal geben.

Was bedeutet Datenintegrität? Datenintegrität meint Widerspruchsfreiheit der Daten unter-einander. Man unterscheidet Physische und Semantische Integrität. Physische Integrität behandelt alle Aspekte der physikalischen Speicherung von Daten, hier werden Hard- und Softwarefehler berücksichtigt. (spielt auch eine wichtige Rolle bei der Konsistenz von Datenbanken) Im Rahmen der Semantischen Integrität unterscheidet man wiederum Entitäts- und referenzielle Integrität.

Datenbankkonsitenz Datenbankkonsistenz ist immer dann gewährleistet, wenn alle Daten untereinander „stimmig“, also widerspruchsfrei sind. Besonders gefährdet ist die Konsistenz, wenn schreibend auf die Daten zugegriffen wird. Hier muss sichergestellt sein, dass alle möglichen Hard- und Softwarefehler die Konsistenz nicht beeinträchtigen. (s.a. Transaktionsprotokollierung)

Transaktionen Das „Transaktion“ wird als Mechanismus zur Sicherung der Datenbankkonsistenz eingesetzt. Die Datenbank protokolliert jede Veränderung in den betroffenen Tabellen. Das Protokoll wird erst nach Abschluss der letzten Änderung gelöscht. Sollte ein Hard- oder Softwarefehler während der Transaktion eintreten, können anhand des noch gespeicherten Protokolls entweder alle Änderungen rückgängig gemacht- oder die noch nötigen Schritt durchgezogen werden.

Entitätsintegrität Vor Entitätsintegrität kann man ausgehen, wenn jeder Datensatz innerhalb einer Tabelle nur einmal vorkommt und einen eineindeutigen Schlüssel besitzt und dieser nicht leer (NULL) ist.

Referenzielle Integrität Die Referenzielle Integrität bezieht sich auf Abhängigkeiten zwischen Tabellen. Existiert ein Fremdschlüssel in einer Tabelle A, die Primärschlüssel in einer anderen Tabelle B ist, so muss folgendes sichergestellt sein: die Spalten des Fremdschlüssels müssen in Anzahl und Inhalt mit dem Primärschlüssel der Tabelle B übereinstimmen, die in der Fremdschlüsselspalte in A einzutragenden Werte müssen in B bereits vorhanden sein, und Aus der Referenztabelle können nur dann Datensätze gelöscht werden, wenn es zu diesen keine Werte mehr in A gibt. Beispiel: Tabelle B: KNr. Name Vorname 1 Baumann Ronald hier KNr. Primärschlüssel Tabelle A: AuftragNr. Gesamtsumme KNr. 700 200,00 € 1 hier AuftragNr. Primärschlüssel und KNr. Fremdschlüssel

Relationales Datenbankmodell I Organisation in Tabellen (Relations), die voneinander weitgehend unabhängig sind. eine Tabelle ist ein Konstrukt aus Zeilen (Reihen, rows, auch Tupel genannt) und Spalten (columns) eine Zeile ist eine Sammlung von Attributen eines Datensatzes (Objekt, auch Entität), die Spalten stellen Attribute gleicher Art (z.B. Name, Vorname) dar. Tabellen können dadurch miteinander verknüpft werden, dass sie (mindestens) ein gleiches Attribut beinhalten. Es können beliebig viele Sichtweisen (views) erzeugt werden, die eine Zusammenstellung verschiedener Attribute verschiedener Tabellen beinhalten. Der Bereich der Werte, die ein Attribut (d.h. ein Eintrag in einer bestimmten Spalte) annehmen kann, nennt man Wertebereich (domain) des Attributes. Dieser Wertebereich wird durch Einschränkungen (constraints) näher bestimmt. Und hier noch mal das ganze grafisch aufbereitet…

Relationales Datenbankmodell II Enthält ein Datensatz ein Attribut, welches ein Objekt eindeutig charakterisiert, z.B. Kundenummer) kann dieses Objekt als Primärschlüssel definiert werden. Wird der Primärschlüssel in einer anderen Tabelle ebenfalls als Attribut verwendet, so spricht man im Rahmen dieser Tabelle von Fremdschlüssel. Mit Hilfe dieser Schlüssel können die Tabellen in Beziehungen zueinander gesetzt werden.

Hierarchisches Modell

Primärschlüssel Jede Reihe in einer Tabelle sollte eindeutig identifizierbar sein, d.h. in einer Spalte der Tabelle sollten Werte eingetragen sein, die einmalig sind und die betreffende Reihe eindeutig identifizieren (z.B. Identifikationsnummer). Eine solche Spalte nennt man Primärschlüssel (primary key). Mittels des Primärschlüssels ist die Verknüpfung mit anderen Tabellen einfach: in der anderen Tabelle muss nur ein Attribut vorhanden sein, in das der entsprechende Primärschlüssel der ersten Spalte eingetragen ist. Eine solche Spalte nennt man auswärtigen Schlüssel oder Fremdschlüssel (foreign key).

Aufgaben von Datenbanken beinhaltet die Daten an sich greift auf die Daten physikalisch zu benutzt dazu ein eigenes Dateisystem (propietär, aber mit Sonderfunktionen und schnell) oder verwendet Dateisystem des Betriebssystems (langsamer, keine Sonderfunktionen, kann aber z. B. mit „Bordmitteln“ gesichert werden)

Elemente einer Datenbank Tabelle = Relation Spalten=Colums KNr Name Vorname PLZ Ort Strasse 1 Hugenbubel Herbärt 12345 Steinhausen Tomatenweg 10 2 Spitzweg Carl 81526 Himmelhausen Sternenweg 18 3 Cron Maria 36645 Blaupausen Kopierstr. 18 Rows(Tupel) Sammlung aller Attribute eines Datensatzes Feld, alle Felder einer Zeile bilden einen Datensatz, der alle Attribute eines Objektes (Entität) umfasst. Die Spalte KNr. eignet sich dazu, als Primärschlüssel definiert zu werden, weil alle Werte eineindeutig sind, nur einmal vorkommen. Sammlung gleicher Attribute

Relationales Modell