Informatik II Datenorganisation – Datenbanken Studiengang Wirtschaftsingenieurwesen (2. Semester) Prof. Dr. Sabine Kühn Fachbereich Informatik/Mathematik Raum S315a Tel. (0351) 462 2490 [email protected] www.htw-dresden.de/~skuehn 0.1 Organisatorisches 1 SWS Vorlesung 2 SWS Praktikum Prof. Kühn Gruppen 1, 2: Gruppen 3, 4: und Restegr. : Frau Buschendorf, Frau Kantardshieffa, Prof. Kühn Selbstständige Erarbeitung eines „Beleges“ zur Überprüfung der eigenen Kenntnisse in Vorbereitung auf die Prüfung (in den letzten 4 Prakt.-stunden) Schriftliche Prüfung Note Informatik = (Klausur, 90 min., ohne Unterlagen) Inf I (50 %) + Inf II (50 %) 2 0.2 Überblick über die Datenbankproblematik Unter einer Datenbank versteht man ein System zur Beschreibung, Speicherung und Wiedergewinnung von umfangreichen Datenmengen. Abgrenzung der Begriffe Daten, Informationen und Wissen 3 Daten, Informationen, Wissen Grün (Datum) Losfahren? Kontext: Ampel (Information) Reaktion (Wissen) 4 Daten kommen vor in... Betriebssysteme z.B.:Windows NT, Solaris, Linux Anwendungssoftware z.B.:Textverarbeitungsprogramme, Tabellenkalkulation Grafiken, Animation z.B. Coreldraw, Power Point Probleme in der Datenhaltung 1. 2. 3. 4. Datenredundanz (Speicherplatz) Gefahr der Dateninkonsistenz Effizienz der Datenverwaltung Datenschutz und Datensicherheit 5 0.3 Inhalt 1. Grundlagen der Datenorganisation Speichern und Wiederfinden von Daten Datenbanksysteme 2. Einführung in das relationale Datenmodell Strukturteil/ Operationsteil 3. MS Access Arbeitsoberfläche/ Erstellen von DB/ Tabellen/ Berichte/ Formulare/ Makros 4. Programmentwicklung mit VBA Grundlagen/ Steuerstrukturen/ Objekte in Access 5. Datenmodellierung Entity Relationship Modell/ Entwurf von Relationen/ Schlüsselarten 6. Datenbankorganisation Architektur von Datenbanksystemen/ Transaktionen 6 1. Grundlagen der Datenorganisation 1.1 Motivation: Speichern und Wiederfinden Programmverarbeitung findet grundsätzlich im Hauptspeicher (HS) statt. Datenverwaltung „intern“: HS, Register, Puffer (Cache) „extern“: Festplatte, CD, DVD, ... intern: „statisch“ Anforderung bereits zur Übersetzungszeit bekannt (Compiler) vs. Dateien Persistenz „dynamisch“ Anforderung erst zur Laufzeit bekannt 7 Erzeugen und Ausführen von Programmen: übersetzen x.c verbinden (linken) HS x.o a.out Bibliotheksprogramme Quellprogramme Objektprogramme (Zielprogramme) Ausführbares Programm (Lademodul, Executable) 8 Organisationsformen ungeordnete Folge geordnete Folge Binärer Baum B*-Baum Hashtabelle Basisoperationen • Einfügen eines Elementes in die Datenbasis • Suchen eines Elementes in der Datenbasis • Entfernen eines Elementes aus der Datenbasis Reihenfolge der Verarbeitung Zugriffsverfahren • bestimmte Reihenfolge • beliebige Reihenfolge • • • sequentiell binär/trichotom (bei Bäumen) Hash-Verfahren (direkt oder indirekt) 9 10 1.2 Datenbanksysteme Datenbanksystem (DBS) Datenbankmanagementsystem (DBMS) Datenbank (DB) DBS = DBMS + DB DBS sind eine spezielle Art von Informationssystemen Ziel: weitgehende Unabhängigkeit der Daten von den mit ihnen arbeitenden Programmen bzw. Benutzern 3 Ebenen - Externe Ebene (Benutzersichten) - Konzeptuelle Ebene (Logische Gesamtsicht) - Interne Ebene (physische Sicht) 11 3 Ebenen - Beispiel 12 Klassifikation von Datenbanksystemen 13 2. Einführung Relationales Datenmodell Relationenmodell nach E. F. Codd, 1970 Strukturteil: Beschreiben von Objekttypen durch Relationenschemata Operationsteil: Satz von Operationen für Anfragen (Selektion) Definitionen Modifikationen (Einfügen, Entfernen) 2.1 Strukturteil Objekttyp beschrieben durch Menge von Attributen mit Wertebereichen Objekt besitzt Ausprägungen (Werte) zu Attributen 14 Veranschaulichung eines Relationsschemas und einer Relation Relationenschema R Attribute, Wertebereiche Relationen r(R) Teilmenge des kartesischen Produktes über den Wertebereichen von R Ein Element einer Relation heißt Tupel Basisrelation Die in der Datenbank aktuell vorhandene Relation zu einem definierten Relationenschema Datenbank Menge aller Basisrelationen Datenbankschema Menge aller Relationenschemata 15 Kartesisches Produkt Angenommen die Relation besteht aus zwei Attributen mit gleichen Wertebereichen der Menge M. Das kartesische Produkt umfasst alle Kombinationen der einzelnen Elemente. Mögliche Basisrelation sei hier die grün markierte Teilmenge. 16 Eigenschaften einer Relation • • • • keine mehrfachen Tupel vorhanden keine festgelegte Reihenfolge der Tupel in der Relation keine Festlegung der Reihenfolge der Attribute Attributwerte sind „atomar“ (sog. 1 Normalform) Tabellendarstellung von Relationen: • • • • Relation Attribut Tupel Wertebereich • Grad (degree) • Kardinalität Tabelle Spalte Datensatz, Zeile Domäne Anzahl der Attribute Anzahl der Datensätze 17 Beispiel für das gesamte Semester: 4 Objekttypen aus dem Geschäftsbereich einer Handelsfirma (Kaufen, Verkaufen) Lieferanten LNR LNAME … enthalten Bestellungen Artikel werden geliefert von Lieferanten Vorlesung: Praktikum: enthalten Kunden Kunden, Bestellungen Artikel, Bestellungen Kunden KNR Kundennummer NAME VORNAME STRASSE PLZ ORT UMSATZ SUMOFFEN Summe unbez. Rechnungen LETZTRECH Datum der letzten Rechnung FRECHOFFEN unbez. Rechn. vor LETZTRECH 18 2.2 Operationsteil Relationenalgebra Normsprache SQL Relationenalgebra: Satz von Grundoperationen Selektion σ Projektion π Natürlicher Verbund | ><| Mengenoperationen ∪, ∩, − Umbenennung β 19 Selektion Wählt Tupel (Zeilen) aus einer Relation (Tabelle) entsprechend einer Selektionsbedingung aus. Selektionsbedingung kann sein: Attribut – Konstanten – Vergleich Attribut – Attribut – Vergleich Verknüpfung von Selektionsbedingungen durch Operatoren ODER, AND,NOT Beispiele: σORT = “Dortmund“ (r(Kunden)) σSUMOFFEN <> 0 (r(Kunden)) σNAME = VORNAME (r(Kunden)) σSUMOFFEN <> 0 AND UMSATZ > 10000 (r(Kunden)) 20 Weitere Operationen der Relationsalgebra Projektion Wählt Spalten aus einer Relation (Tabelle) aus. Es entsteht eine neue Relation. Natürlicher Verbund Verknüpfung von Relationen über allen gemeinsamen Attributen. Nur Tupel mit gemeinsamen gleichen Attributwerten werden zu neuen Tupeln verbunden. Mengenoperationen Übliche Mengenoperationen auf Relationen anwenden, die das gleiche Relationenschema besitzen. Umbenennung Dient zum „kompatibel machen“ von Relationenschemata, die später vereinigt werden sollen. 21