600 likes | 1.08k Views
DATENBANKEN. Kurs: Datenmodellierung SQL Johann Eder (eder@isys.uni-klu.ac.at). Inhalt. 1. Einführung, Grundbegriffe 2. Modellierung 3. Relationenmodell 4. Relationale Sprachen (SQL). Ziele. Teilnehmer
E N D
DATENBANKEN Kurs: Datenmodellierung SQL Johann Eder (eder@isys.uni-klu.ac.at)
Inhalt • 1. Einführung, Grundbegriffe • 2. Modellierung • 3. Relationenmodell • 4. Relationale Sprachen (SQL) Datenbanken:Einführung
Ziele Teilnehmer • verstehen die grundlegenden Funktionsweisen von Datenbanksystemen • Kennen die charakteristischen Eigenschaften von Datenbanken • können kleinere Datenbanken entwerfen • können Daten aus Datenbanken abfragen Datenbanken:Einführung
Literatur Kemper, A; Eickler A.: Datenbanksysteme. 2. Aufl., Oldenbourg Verlag, 1997 Ullmann, J.D.: Principles of Database and Knowledge-Base Systems. Vol. I, Computer Science Press, 1988. Vossen, G.: Datenmodelle, Datenbanksprachen und Datenbankmanagement- Systeme. Oldenbourg Verlag, München, 1999. Atzeni, P.; Ceri, S.; ParaboschiS.; Torlone, R.: Database Systems: Concepts, Languages and Architectures. McGraw-Hill Publishing Company, 1999. Date, C.J.: An Introduction to Database Systems. Vol. I, 6th edition, Addison-Wesley, 1995. Elmasri, R.; Navathe, Sh.B.: Fundamentals of Database Systems. Benjamin Cummings, 3rd ed., 1999. Datenbanken:Einführung
Einführung • Warum Datenbanken? • ANSI / SPARC 3-Schichten Architektur • Charakteristische Eigenschaften • Architektur und Datenmodelle • Schnittstellen • Rollen / Benutzer Datenbanken:Einführung
Warum Datenbanken? • „... kaum eine größere Informatikanwendung ist ohne DB-Unterstützung denkbar“ • „DB-Systeme ... sind heute ein selbstverständliches Hilfsmittel der betrieblichen Organisation und Verwaltung geworden“ • „Datenbanken ... als Schlüsseltechnologie für die Realisierung komplexer Informationssysteme ...“ Datenbanken:Einführung
Kennzeichen der Daten • Lange Lebensdauer (Jahre, Jahrzehnte) • reguläre Strukturen • große Datenobjekte, große Datenmengen • stetig anwachsende, integrierte Bestände (Giga-, Terabyte an Informationen) • immer wiederkehrende Muster in den Objektbeziehungen Datenbanken:Einführung
Warum Datenbanksysteme? Probleme mit Dateisystemen Bsp.: Programm Lohnverrechnung Datei Angestellter (SV#, Name, Adresse, Gehalt) Programm Projekte Datei Mitarbeiter (Projekt#, SV#, Name, Telefon#) Datei Projekt (Projekt#, Projektbeschreibung) Nachteile: Daten-Programm-Abhängigkeit Redundanz, Inkonsistenz Inflexibilität Standards schwer durchsetzbar Angestellter LOHN Projekt PROJEKT Mitarbeiter Datenbanken:Einführung
Warum Datenbanksysteme (2) • F 1.6 Scan Datenbanken:Einführung
ANSI-SPARC3-Schichten Modell Externe Modelle • Externe Modelle: • Sicht von Benutzer(gruppen) • Anwendungsprogrammen • Konzeptuelles Modell • einheitliche Gesamtschau der Unternehmensdaten • Internes Modell • physische Speicherstrukturen ... Konzeptuelles Modell Internes Modell Datenbanken:Einführung
Vorteile von Datenbanken • physische Datenunabhängigkeit • Internes Schema kann geändert werden, ohne Anwendungsprogramme zu ändern • Änderung nur bei Abbildung konzept. Schema - internes Schema • logische Datenunabhängigkeit • konzeptuelles Schema kann geändert werden ohne Anwendungsprogramme zu ändern solange das entspr. externe Modell abgeleitet werden kann • Ändern Abb. Konzeptuelles Schema - externes Schema • integrierte zentrale Verwaltung • Standards • Redundanzen • Konsistenz Datenbanken:Einführung
Eigenschaften von Datenbanken • Persistenz • Management von Sekundärspeichern • Mehrbenutzerfähigkeit • Zuverlässigkeit • Datensicherheit • ad-hoc Abfragesprachen Datenbanken:Einführung
Persistenz • Daten „überleben“ das Ende von Sitzungen, das Ende von Transaktionen • Daten sind z.T. sehr langlebig • Daten können „in situ“ aktualisiert werden Datenbanken:Einführung
Verwaltung von Sekundärspeichern • Verwaltung großer Datenmengen • üblicherweise auf Platten • Datenbanken sind Ein-/Ausgabe-intensiv • Spezifische Techniken zur Erhöhung der Performanz • Pufferung (DB Puffer im Hauptspeicher) • Indexierung, Cluster • Abfrageoptimierung Datenbanken:Einführung
Mehrbenutzerfähigkeit • mehrere Benutzer können gleichzeitig auf den Daten arbeiten • DBMS sorgt dafür, daß keine unerwünschten Wechselwirkungen durch gleichzeitige Manipulation derselben Daten eintreten • Erhaltung der Integrität Lost-update read(X) X:= X+10 write(X) read(X) X:=X-20 write(X) Datenbanken:Einführung
Zuverlässigkeit der Daten • Daten sind teuer und strategisch wichtig - müssen daher zuverlässig sein • DBMS bestätigt jede durchgeführte Änderung • bei Systemfehler: DB-Zustand wiederherstellen, der genau alle bestätigten Änderungen enthält. roll-backward: Eliminieren der Auswirkungen aller unbestätigten Transaktionen roll-forward: Nachziehen der Auswirkungen aller bestätigten Transaktionen auf Sicherungskopie. Datenbanken:Einführung
Datensicherheit • Schutz vor unberechtigtem Zugriff • Berechtigungssystem definieren • Sicherheitssubjekte (Benutzer, Rollen, etc.) • Sicherheitsobjekte (Daten) • Rechte (Lesen, Schreiben - i.e. verändern) • Weitergabe von Rechten • Zugriff durch Nichtberechtigte verhindern • bei jedem Zugriff Berechtigungen überprüfen Datenbanken:Einführung
Ad-hoc Abfragesprachen • Abfrage von Daten ohne eigenes prozedurales Programm schreiben zu müssen • deklarativer Zugriff • SQL, QBE, etc. „Wie hoch ist das Durchschnitts- gehalt der Manager in den einzelnen Städten in denen mindestens 5 Manager beschäftigt sind?“ Select city, avg(salaray) from emp, dept where emp.deptno = dept.deptno and emp.job = “manager“ group by city having count(*) >= 5 Datenbanken:Einführung
Wichtige Begriffe Datenbankmanagementsystem (DBMS) Software, die die DB verwaltet und alle von den Anwendungsprogrammen verlangten Funktionen zentral durchführt Datenbanksystem (DBS) DBMS + DB Datenbank (DB) integriert vom DBMS verwaltete Dateien Datenbanken:Einführung
Schnittstellen • DBMS-Shell • SQL-Befehle eingeben und durchführen • graphische Schnittstellen (Browser) • formularbasierte Schnittstellen (Masken) • natürlichsprachliche Schnittstellen • Schnittstellen für Anwendungsprogramme Sprachen • Datendefinitionssprache (DDL) • formulieren der Schemata • Datenmanipulationssprache (DML) • abfragen, einfügen, löschen, aktualisieren von Daten Datenbanken:Einführung
Dienstprogramme • DB-Loader: Laden von Daten in eine Datenbank • Backup: Erstellen von Sicherungskopien • Reorg: Reorganisation der Datenstrukturen zur Performanzverbesserung • Berichtsgeneratoren (report writer) • formatieren von Berichten (komplexen Abfragen) • Kopf-und Fußzeilen, Text • Seitenumbruch, Zwischensummen, Gruppenwechsel, etc. • Anwendungsgeneratoren (4GL-Sprachen) • Monitor (Performanz, Tuning) • Datenwörterbuch (Data Dictionary) • Kommunikationssubsysteme Datenbanken:Einführung
Personen und Rollen • Datenbankadministrator • verwaltet die Ressource Datenbank • internes Schema • Vergabe von Zutrittsrechten • Tuning und Monitoring • Sicherheit und Zuverlässigkeit • Unternehmensadministrator (Datenbankdesigner) • zuständig für konzeptuelles Schema • externe Schemata • Schnittstelle zu Software-Entwicklung Datenbanken:Einführung
Personen und Rollen (2) • Systemanalytiker, Anwendungsprogrammierer • Anforderungserhebung • Software-Entwicklung • Endbenutzer • gelegentliche Benutzer z.B. Manager • unterschiedliche, z.T. nicht vorhersehbare Informationsbedürfnisse • von „schnell mal nachschauen“ • bis komplexe Analysen • parametrische Benutzer z.B. Sachbearbeiter • Anwendungsprogramme, „canned transactions“ • Power-User z.B. Analytiker • komplexe Anforderungen • gute Kenntnis von DB + Schnittstellen Datenbanken:Einführung
Produkte • Oracle • DB2 • SQL-Server • Access • Informix • Sybase • Ingres • Progress • Adabas • .... Datenbanken:Einführung
Kapitel 2:Modellierung Datenbank-Entwurf Datenbanken:Einführung
Datenbank-Entwurf Ziele: • gutes Abbild der Realität • Konsistenz • keine ungeplanten Redundanzen • niedrige Antwortzeiten • niedriger Speicherplatzbedarf • niedriger Wartungs-/Pflegeaufwand • Einfachheit Datenbanken:Einführung
5 Phasen der DB-Entwicklung • 1. Informationsbedarfsanalyse • wer braucht welche Daten wann in welcher Qualität • 2. konzeptueller Entwurf • formalisierte Beschreibung des Umweltausschnitts • häufig mit graphischem semantischen Datenmodell • 3. logischer Entwurf • Abbilden des konzeptuellen Modells auf Datenmodell des DBS • 4. physischer Entwurf • Speicherstrukturen, Zugriffspfade festlegen • 5. Verwendung, Wartung, Reorganisation • Tuning • Adaptieren Datenbanken:Einführung
5 Phasen der DB-Entwicklung (a) Informationsbedarfsanalyse • wer braucht wo? wann? was? • relevante Informationen und Vorgänge aus dem und über das Objektsystem • Zusammenhänge zwischen - Informationen - Informationen und Vorgängen • Vollständigkeit, Redundanz, Konsistenz Was soll im zukünftigen Informationssystem enthalten sein? Wie wird es verwendet? Datenbanken:Einführung
5 Phasen der DB-Entwicklung b) Konzeptueller Entwurf • formalisierte Beschreibung der ermittelten Informationen und Funktionen • häufig mit graphischem Darstellungsmodell • entweder konzeptueller Entwurf des gesamten Bereiches oder zuerst Formulierung der Modelle der einzelnen Benutzersichten und anschließend Integration (View-Integration) • semantische Datenmodellierung: Definition aller zulässigen Zustände und Zustands- übergänge der Datenbasis des geplanten Informations- systems Ergebnis: konzeptuelles DB-Modell Datenbanken:Einführung
5 Phasen der DB-Entwicklung (c) Logischer Entwurf Abbildung des konzeptuellen Modells auf das Datenmodell eines konkreten DBS. Ergebnis: logisches DB-Schema Datenbanken:Einführung
5 Phasen der DB-Entwicklung (d) Physischer Entwurf • Festlegen der Einzelheiten der physischen Darstellung der Daten • Abbildung auf Speicherstrukturen (Datenstrukturen) • Bestimmen der Zugriffspfade • verantwortlich für Antwortzeitverhalten und Speicherplatz- bedarf • erforderlich: Mengengerüst, Transaktionsprofil, Nebenbe- dingungen (z.B. Antwortzeit für bestimmte Trans- aktionen) Ergebnis: physisches DB-Schema Datenbanken:Einführung
5 Phasen der DB-Entwicklung (e) Verwendung - Wartung - Reorganisation Reorganisation wegen: • veränderter Umweltbedingung (dargestellte Realität hat sich gewandelt) z.B.: - weitere Anwendungen - modifizierte Aufgabenstellung - veränderte gesetzliche Bestimmungen (a) • Revidierung früherer Entwurfsentscheidungen für Leistungsverbesserung - Änderung der logischen Struktur (selten) (c) - Änderung der physischen Struktur (d) Datenbanken:Einführung
SemantischeDatenmodellierung • Beschreibung des betrachteten Ausschnitts der realen Welt • Miniwelt, Universe of Discourse • genaue (eindeutige, vollständige) Beschreibung aller für die Anwendung relevanten strukturellen Eigenschaften • in semantischer Beschreibungssprache • unabhängig von Hardware und Software • Ergebnis: konzeptuelles Datenbankschema • Verständigungsbasis für Entwerfer, Entwickler, Anwender Datenbanken:Einführung
ER-Modellierung • Das Entity-Relationship (E-R) Modell ist ein konzeptuelles Datenmodell • Sprache zur Beschreibung der Datenanforderungen • leicht zu verstehen und zu kommunizieren • unabhängig von der tatsächlichen Realisierung in einem DBMS-Produkt • Graphische Sprache • graphische Repräsentation der Konstrukte • E-R-Diagramme • Ursprung: • P.Chen:´The Entity-Relationship Model -Toward a Unified View of Data´, ACM TODS, Vol1/1, 1976 • viele extended E-R- Modelle Datenbanken:Einführung
UML • Unified Modelling Language • Lingua franca der objektorientierten Softwareentwicklung • sehr großer Sprachumfang • 8 Diagrammarten • hier: Teilmenge der Klassendiagramme Datenbanken:Einführung
Entity, Gegenstand, Objekt • Einheit, Ganzheit, Gegenstand, Objekt • Modell, Abbild eines Gegenstandes, der in der betrachteten Realität erkannt und eindeutig identifiziert wird. • Beisp.: • Kunde Otto Huber • Bankkonto Nr 789.987.123 • Buch Objekt Datenbanken:Einführung
Attribut Attribut • Merkmale, Charakteristik • Bezeichnungen von Eigenschaften, die bei dem betrachteten Entity für die Anwendung relevant sind • Beisp.: Vorname, Saldo, Geburtsdatum, Hausnummer Attributsausprägung • Wert eines Attributes für ein bestimmtes Entity • Beisp.: Mitarbeiter mit der MID 2317 wurde am 16.12.1965 geboren. Wertebereich • Menge von Werten aus denen Ausprägungen eines Attributs stammen dürfen Datenbanken:Einführung
Attribut(2) Attribut ist eine Abbildung von einem Objekt in einen Wertebereich Name Otto Huber M-ID 2317 Geb.Datum 27.8.1965 Datenbanken:Einführung
Klassifikation • Objekte, bei denen dieselben Merkmale relevant sind und die semantisch gleichartig sind, werden zu Klassen zusammengefaßt. Abteilung Buch Exemplar Kunde Mitarbeiter Datenbanken:Einführung
Karl Müller Ottilie Huber Frieda Maier Klassifikation (2) Klasse Instanz Mitarbeiter Datenbanken:Einführung
Assoziation (Relationships) • Repräsentieren logische Verbindungen (Beziehungen) zwischen Objekten M1 P1 M2 M4 P2 M5 M3 P3 M6 P4 Mitarbeiter Projekte Datenbanken:Einführung
Beispiele von Assoziationen Kunde Artikel bestellt zugeteilt Mitarbeiter Projekt leitet Datenbanken:Einführung
Assoziationen • Assoziationen können (mathematisch) als Relationen dargestellt werden • bestellt Kunde Artikel • bestellt= {(k1, a1), (k2, a1), (k4, a3), (k4, a5), ...} • Assoziation hat Rollen, die von Objekten gefüllt werden: • bestellt hat die Rollen „Besteller“ und „Bestelltes“ gefüllt von Kunde und Artikel Datenbanken:Einführung
Rekursive Beziehungen Chef Mitarbeiter ist Vorgesetzter von Untergebener ist Freund von Kunde Datenbanken:Einführung
Beziehungen höheren Grades • Beispiel für eine ternäre Beziehung • Grad: Anzahl der Klassen (Rollen), die an einer Beziehung teilnehmen Lieferant liefert Artikel Abteilung Datenbanken:Einführung
Klasse mit Attributen Person PID einfaches Attribut Name mehrfaches Attribut Vorname 1..3 (mehrwertiges) Hobbies 0..10 mengenwertiges Attribut Adresse: zusammengesetztes (strukturiertes) Attribut PLZ Ort Straße Datenbanken:Einführung
Assoziation mit Attributen % Zeit seit Mitarbeiter Projekt ist zugeteilt leitet Datenbanken:Einführung
Beziehungsobjekte bestellt Artikel Kunde Bestellung Mitarbeiter betreut von Datum Datenbanken:Einführung
Multiplizität von Assoziationen • Spezifikation der Zuordnungswertigkeit einer Beziehung i assoz. j A B i: Anzahl der Instanzen der Klasse A, die mit einer Instanz der Klasse B in Beziehung stehen können. Angabe: Zahl, Intervall, *, Kombination Bsp: 1; 0..5; *; 0..3, 7..9, *21, 5..* Datenbanken:Einführung
Multiplizität - m : n • Spezifikation der Zuordnungs-Wertigkeit einer Beziehung Mitarbeiter Projekt zugeteilt 0..n 1..m M1 P1 M2 M4 P2 M5 M3 P3 M6 P4 Datenbanken:Einführung