Wirtschaftsinformatik II Organisatorisches Prof. Dr. Peter Chamoni Dipl.-Math. Tanja Bley Wintersemester 2008/2009 Mercator School of Management Lehrstuhl für Wirtschaftsinformatik und Operations Research Prof. Dr. Peter Chamoni Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 1 Organisatorisches Kontakt Dozent: Dipl.-Math. Tanja Bley Ansprechpartner: Dipl.-Math. Tanja Bley [email protected] LF 219 Website: http://www.msm.uni-due.de/wi Download der Unterlagen: Lehre Lehrveranstaltungen Wirtschaftsinformatik II Klausur: voraussichtlich 10.12.2008 Beachten Sie bitte die Bekanntmachungen des Prüfungsamtes. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 2 Organisatorisches Vorlesungsunterlagen Die Folien stellen eine Vorlesungsbeilage dar. kein Skript Alte Klausuren sind am Lehrstuhl (Herrn Dipl. Ök. Stefan Krebs, LF 212) erhältlich. Mit freundlicher Genehmigung von Herrn Dr. Steffen Stock wurden einige Folien aus seiner Veranstaltung übernommen. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 3 Organisatorisches Microsoft Access 2003 Download: http://www.uni-due.de/zim/services/software/msdnaa/ Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4 Wirtschaftsinformatik II Kapitel 1: Grundlagen Prof. Dr. Peter Chamoni Dipl.-Math. Tanja Bley Wintersemester 2008/2009 Mercator School of Management Lehrstuhl für Wirtschaftsinformatik und Operations Research Prof. Dr. Peter Chamoni Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 5 Gliederung 1 Grundlagen 2 Entity-Relationship-Modell 3 Relationales Datenmodell 4 SQL Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 6 Gliederung 1 Grundlagen 1.1 Abgrenzung 1.2 Begriffliches 1.3 Internes Schema Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 7 1.1 Abgrenzung Daten – Information – Wissen Daten Folge von Zeichen [syntaktische Ebene] Information Bedeutung und Interpretation der Daten [semantische Ebene] Zweckorientiertes Wissen zielgerichtete Information (in der BWL) Wissen Kontextbezug der Informationen [pragmatische Ebene] Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 8 Beispiele zu Folie 8 -Daten Syntaktische Dimension RB3720W1703G7 (Folge von Buchstaben/Zahlen) -Informationen Semantische Dimension (Bedeutung hinzufügen) Regionalbahn 3720 fährt werktags um 17:03 von leis 7 ab. -Wissen Pragmatischen Dimension Bisher fuhr die Regionalbahn 3720 Um 17:10 ab; umsteigende aus dem Zug IR 317 erreichen den Anschluss nun nicht mehr. 1.1 Abgrenzung Begriffshierarchien Herr Müller wohnt in Hamburg. Er ist potenzieller Kunde Müller ist ein Nachname Wissen Pragmatik Vernetzung Information Semantik Kontext Daten Müller Syntax A, , e, l, M, Zeichen [Bodendorf (2001), S. 35] Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 9 Gliederung 1. Grundlagen 1.1 Abgrenzung 1.2 Begriffliches 1.3 Internes Schema Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 10 1.2 Begriffliches Daten – Datenbank Daten [DIN 44 300] Angaben über Sachverhalte und Vorgänge aufgrund bekannter oder unterstellter Abmachungen in einer maschinell verarbeitbaren Form. Datenbank [Zehnder (2002), S. 35] selbständige, auf Dauer und für den flexiblen und sicheren Gebrauch ausgelegte Datenorganisation Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 11 1.2 Begriffliches Datenbankarchitekturmodell (ANSI/X3/SPARC) Abstraktionsebene externe Ebene externes … Schema 1 externes Schema n zugeordnete Operationen Datenabfrage Datenmanipulation konzeptionelle Ebene interne Ebene Datendefinition Datenadministration Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 12 S.12 Interne Ebene -Definition interner Schemata -Beschreibung der physikalischen Speicherstrukturen der Datenbank -Zugriffspfade für die Datenbank Konzeptionelle Ebene -Definition eines konzeptionellen Schemas -Verwendung eines logischen Datenmodells -Beschreibung von -Objekten -Beziehungen unter den Objekten -Datentypen ( numerisch?; alphanumerisch?) Externe Ebene -Beinhaltet eine Reihe von externen Schemata -Umfassen alle individuellen Sichten ( view ) -auf die Datenbank (Topmanagement hat möglk. auf alle Daten zu zugreifen. -Sicherheitspolitik -Performanceaspekte (Eingrenzung, wenn man nur auf einige Daten zugreifen will 1.2 Begriffliches Diskurswelt – Schema Diskurswelt zweckdienliche Abstraktion eines Ausschnitts der zu beschreibenden Realität Schema Erfassung allgemeiner Gesetzmäßigkeiten, die für die Diskurswelt immer gelten. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 13 1.2 Begriffliches Datenmodell – Datenmodellierung Datenmodell Formale Beschreibung des Schemas, z.B. in Form eines Diagramms oder einer Datenstruktur. Strukturierte Darstellung der Daten der Diskurswelt mit einem formalen Beschreibungsmittel Datenmodellierung Prozess, der sicherstellen soll, dass eine Datenbasis zu jedem Zeitpunkt ein korrektes Abbild der Diskurswelt wiedergibt. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 14 1.2 Begriffliches Ebenen der Modellierung Klassifikation der Datenmodelle anhand ihrer Nähe zur Realwelt - Semantisches Datenmodell Brücke zwischen Realwelt und dem logischen Datenmodell Losgelöst vom einzusetzenden Datenbanksystem Realitätsausschnitt wird abstrahierend in einem Modell abgebildet - Logisches Datenmodell Ebenfalls unabhängig von der physischen Repräsentation Ausrichtung an der für die Speicherung einzusetzenden Datenbanktechnologie Logisches Datenmodell Physisches Datenmodell - Physisches Datenmodell Semantisches Datenmodell Aspekte der physischen Speicherung und Speicheroptimierung 15 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 1.2 Begriffliches Betrachtungsebenen Übergabe 1. Reale Welt, Teile der realen Welt: 2. Informationen über Teile der realen Welt, Modelle: Bibel 3. Logisches Datensystem: Buch an H. Meier Ausleiher 4. Physisches Datensystem: Physische Datensätze und Dateien 5. Computerspeicherung (Hardware + Software) Speichermedien und deren Inhalt Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 16 1.2 Begriffliches Datenbank-Management-System (DBMS) Datenbank-Management-System (DBMS) Software, die die einheitliche Beschreibung und sichere Bearbeitung einer Datenbank ermöglicht. Ein DBMS garantiert - die Korrektheit der Daten durch die Überprüfung von Konsistenzregeln, - die Sicherheit der Daten, z.B. bei fehlerhaften Abläufen einzelner Anwendungen oder bei Systemzusammenbrüchen, - den Schutz der Daten vor unberechtigten Zugriffen und Manipulationen. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 17 1.2 Begriffliches Transaktionskonzept (I) Transaktion Folge von Datenbankoperationen, die hinsichtlich gewisser Integritätsanforderungen atomare Einheiten darstellen. Sie lässt die Datenbank in konsistentem Zustand zurück, wenn diese vor Beginn der Transaktion schon konsistent war. Beispiel Ausführung einer Umbuchung eines Betrages zwischen zwei Konten X und Y. Hierbei sei KX der Kontostand des Kontos X, KY der Kontostand des Kontos Y. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 18 1.2 Begriffliches Transaktionskonzept (II) Folgende Datenbankoperationen werden hierzu durchgeführt: 1. 2. 3. 4. Lesen des Kontostandes von X: Schreiben des neuen Kontostandes von X: Lesen des Kontostandes von Y: Schreiben des neuen Kontostandes von Y: - Temporäre Inkonsistenz der Datenbank nach der zweiten Datenbankoperation. Konsistenz der Datenbank ist erst nach der letzten Datenbankoperation wieder hergestellt. Sicherstellen, dass die vier Datenbankoperationen der Transaktion logisch zusammen ausgeführt werden. - KX KXKY KY+ Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 19 1.2 Begriffliches Transaktionskonzept (III) Folgende Bedingungen müssen durch ein DMBS gewährleistet werden (ACID-Prinzip): - Atomarität (Atomarity) - Transaktionen werden entweder vollständig oder gar nicht durchgeführt. Bei Störungen vor Abschluss der Transaktion sind alle Veränderungen, die während dieser Transaktion durchgeführt wurden, rückgängig zu machen. Konsistenz (Consistency) Nach dem Ausführen einer Transaktion muss die Datenbank in widerspruchsfreiem Zustand sein. (Integritätsbedingungen müssen erfüllt sein) Während einer Transaktion darf sich die Datenbank temporär in einem inkonsistenten Zustand befinden. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 20 1.2 Begriffliches Transaktionskonzept (IV) - Isolation (Isolation) Transaktionen werden isoliert von anderen potenziell parallelen Transaktionen ausgeführt. Das Ergebnis einer Transaktion ist erst nach deren Ende für andere Transaktionen sichtbar. - Persistenz (Durability) Erfolgreich abgeschlossene Transaktionen können nur durch eine weitere Transaktion rückgängig gemacht werden. 21 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 1.2 Begriffliches Datenbanknutzer professioneller Benutzer Vorbereitetes Anwprogr. gelegentlicher Benutzer Vorbereitetes Anwprogr. spezieller Benutzer Freie Abfragemöglichkeit Datenbank-Management-System DBMS Datenbasis Datenbank Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 22 Gliederung 1. Grundlagen 1.1 Abgrenzung 1.2 Begriffliches 1.3 Internes Schema Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 23 1.3 Internes Schema Beispiel Beispiel: Bibliotheksverwaltung Problem: Schnelles Wiederfinden abgespeicherter Daten Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 24 1.3 Internes Schema Dateien Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 25 1.3 Internes Schema Datei- und Speichertypen Sequentielle Dateien - Zugriff auf Datensätze nur in der gespeicherten Reihenfolge - Auf sequentiellen Speichern (z.B. Magnetband) - Ebenfalls möglich auf Direktzugriffsspeichern (z.B. Magnetplatte, optische Speicherplatte) Dateien mit direktem Zugriff - Auf jeden Datensatz kann bei Kenntnis seiner Adresse direkt zugegriffen werden. - Nur auf Direktzugriffsspeichern Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 26 1.3 Internes Schema Suchen in Dateien Sequentielle Dateien Dateien mit direktem Zugriff Sequentielle Suche Sequentielle Organisation Index als Hilfsmittel Indizierte Organisation Algorithmus als Hilfsmittel Gestreute Organisation 27 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 1.3 Internes Schema Indizierte Organisation Indexdatei Hauptdatei Schlüssel AV Date C.J. 2 1 4711 Martin J. Application Devel… Kent W. 3 2 4812 Date C.J. An Introduction … Lucas H.C. 4 3 1907 Kent W. Data and Reality Martin J. 1 4 1001 Lucas H.C. Information Systems RA INR* … Autor Titel … … * INR = Inventarnumner, AV = Adressverweis, RA = Relative Adresse Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 28 1.3 Internes Schema Gestreute Organisation (Hash) Codd, E.F. Kent, W. Date, C.J. RA INR* Algorithmus Autor Titel 1 4711 Martin J. Application Devel… 2 4812 Date C.J. An Introduction … 3 1907 Kent W. Data and Reality 4 1001 Lucas H.C. Information Systems … … … Erzeugt die Adresse aus dem Schlüssel * INR = Inventarnumner, RA = Relative Adresse Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 29 1.3 Internes Schema Suchen in indizierten Dateien Unsortierter Index Physisch sortierter Index - Sortierreihenfolge der Schlüssel entspricht der Reihenfolge der Sätze im Speicher - Binäres Suchen - m-Wege-Suchen Logisch sortierter Index - Reihenfolge der Sätze ist durch Zeiger bestimmt, nicht durch die Reihenfolge im Speicher - Ketten - Bäume Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 30 1.3 Internes Schema Binäres Suchen (I) Durch fortgesetztes Halbieren des Suchbereichs Annahme, dass das gesuchte Element in der Mitte des Indexbereiches liegt und Vergleich des gesuchten Elements mit dem Element in der Mitte. Ist dieses Element kleiner als das gesuchte Element, wird die Suche in der oberen Hälfte des Indexes fortgesetzt. Ist dieses Element größer als das gesuchte Element, wird die Suche in der unteren Hälfte des Indexes fortgesetzt. Die Suche wird so lange fortgesetzt bis das gesuchte Element gefunden wurde oder die Länge des Suchbereichs = 1. 31 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 1.3 Internes Schema Binäres Suchen (II) Zum Beispiel Suche nach Kotler P. 1. Vergleiche das gesuchte Element mit dem Element in der Mitte Kotler P. < Lucas H. C. 2. Gehe zur Mitte der oberen Hälfte Kotler P. > Hansen H.R. 3. Gehe zur Mitte des zweiten Viertels. Gefunden! 65.535 Elemente: höchstens 16 Suchschritte 2 3 1 Schlüssel AV Codd E.F. 8 Date C.J. 2 Hansen H.R. 10 Kent W. 3 Kotler P. 9 Lucas H.C. 4 Martin J. 1 Rockart J. 6 Sprague R. 7 Turban E. 11 Zachmann R. 5 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 32 1.3 Internes Schema m-Wege-Suchen Die Indexdatei wird in Blöcke konstanter Länge eingeteilt. Gehe zum letzten Element des ersten Blocks. Falls der Suchschlüssel größer ist als dieses Element: Gehe zum nächsten Block. Andernfalls befindet sich das gesuchte Element in diesem Block. Verwende eine andere Suchmethode (z.B. sequentielles oder binäres Suchen) um das Element in diesem Block zu finden. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 33 1.3 Internes Schema m-Wege-Suchen in hierarchischen Indexdateien RA Schlüssel AV 1 Codd E.F. 8 2 Date C.J. 2 Schlüssel AV 3 Hansen H.R. 10 Codd E.F. 1 4 Kent W. 3 Kotler P. 5 5 Kotler P. 9 9 6 Lucas H.C. 4 7 Martin J. 1 8 Rockart J. 6 9 Sprague R. 7 10 Turban E. 11 11 Zachmann R. 5 Sprague R. Zweistufiger hierarchischer Index Hauptdatei AV = Adressverweis, RA = Relative Adresse Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 34 1.3 Internes Schema Ketten Sätze sind nicht physisch sortiert. Jeder Satz enthält Zeiger zum logisch folgenden Satz. Zeiger, der auf den ersten Satz zeigt, heißt Anker. Zeiger des letzten Satzes ist eine Endemarke. Einfügen neuer Sätze physisch am Ende der Datei. Zeiger des nächst kleineren Elementes (Vorgänger) wird auf das neu eingefügte gerichtet. Zeiger des neuen Elementes wird auf das nächst größere Element gesetzt. Beim Löschen eines Datensatzes wird nur der Zeiger des Vorgängerdatensatzes verändert, und der Speicherplatz des gelöschten Datensatzes überschreibbar gemacht. - Lücken bleiben, Reorganisation erforderlich Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 35 1.3 Internes Schema Physische Repräsentation von Ketten Physische Schlüssel Nachf. Sortierung AV 1 Sprague R. 5 7 2 Date C.J. 4 2 3 Kent W. 6 3 4 Hansen H.R. 3 10 5 Turban E. 10 11 Kotler P. 11 9 Codd E.F. 2 8 Martin J. 9 1 9 Rockart J. 1 6 10 Zachmann R. -- 5 11 Lucas H.C. 8 4 Logische 6 Reihenfolge durch Zeiger zum 7 folgenden Satz 8 Hauptdatei Nachf. = Nachfolger, AV = Adressverweis Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 36 1.3 Internes Schema Bäume Komponenten - Knoten: Enthalten Anwendungsinformation - Kanten: Enthalten Adressinformation Es gibt genau einen Knoten, der keinen Vorgänger hat: Wurzel Jeder Knoten, außer der Wurzel, hat genau einen unmittelbaren Vorgänger. Zu jedem Nichtwurzelknoten gibt es genau einen Weg von der Wurzel zu diesem Knoten. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 37 1.3 Internes Schema Logische Struktur binärer Bäume Lucas LucasH.C. H.C. Linker Nachfolger Hansen HansenH.R. H.R. Date DateC.J. C.J. Codd CoddE.F. E.F. Kotler KotlerP. P. Kent KentW. W. Rechter Nachfolger Sprague SpragueR. R. Martin, Martin,J.J. Rockart RockartJ.J. Turban TurbanE. E. Zachmann ZachmannR. R. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 38 1.3 Internes Schema Physische Repräsentation binärer Bäume Schlüssel KF li KF re AV 1 Sprague R. 8 5 7 2 Date C.J. 7 -- 2 3 Kent W. -- -- 3 4 Hansen H.R. 2 6 10 5 Turban E. -- 10 11 6 Kotler P. 3 -- 9 7 Codd E.F. -- -- 8 8 Martin J. -- 9 1 9 Rockart J. -- -- 6 10 Zachmann R. -- -- 5 11 Lucas H.C. 4 1 4 Hauptdatei Kf li = linkes Kettenfeld, KF re = rechtes Kettenfeld, AV = Adressverweis Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 39 1.3 Internes Schema Suchen in sortierten binärer Bäume Lucas LucasH.C. H.C. ? Kent < Hansen HansenH.R. H.R. Sprague SpragueR. R. > Date DateC.J. C.J. Kotler KotlerP. P. Martin MartinJ. J. Turban TurbanE. E. < Codd CoddE.F. E.F. Kent KentW. W. Rockart RockartJ.J. Zachmann ZachmannR. R. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 40 1.3 Internes Schema Vergleich von Dateiorganisationsformen Speicher Suchstrategien Reorganisation Primär/Sekundärschl. Nein Kein Schlüsselzugriff möglich Sequentiell oder direkt adressierbar Sequentiell Indiziert Direkt adressierbar Sequentiell, binär, m-Wege Nein Ja Primärschlüssel, Sekundärschlüssel Hash Direkt adressierbar Suche nur bei Kollision notwendig Nein Primärschlüssel Sequentiell Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 41 Wirtschaftsinformatik II Kapitel 2: Entity-Relationship-Modell Prof. Dr. Peter Chamoni Dipl.-Math. Tanja Bley Wintersemester 2008/2009 Mercator School of Management Lehrstuhl für Wirtschaftsinformatik und Operations Research Prof. Dr. Peter Chamoni Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 42 Gliederung 1 Grundlagen 2 Entity-Relationship-Modell 3 Relationales Datenmodell 4 SQL Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 43 Gliederung 2. Entity-Relationship-Modell 2.1 Grundlagen 2.2 Beziehungen 2.3 Symbole 2.4 Entwurf eines E-R-Modells 2.5 Beispiele 2.6 Übungsaufgaben Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 44 2.1 Grundlagen Entity-Relationship-Modell Das Entity-Relationship-Modell ist von einer Implementierung in einem bestimmten Datenbanksystem unabhängig [Semantisches Datenmodell]. Semantisches Datenmodell Graphische Modellierungstechnik zur Darstellung von Objekten und ihrer Beziehungen untereinander. Logisches Datenmodell In der Praxis weit verbreitet. Physisches Datenmodell Vorteil: Einfache Überführung von E-RModellen in relationale Datenmodelle Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 45 2.1 Grundlagen Entity-Relationship-Modell Komponenten eines E-R-Modells - Entitäten (entities) - Beziehungen (relationships) zwischen den Entitäten - Attribute Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 46 2.1 Grundlagen Entitäten und Entitätsmengen Eine Entität ist eine individuelle Ausprägung der Diskurswelt, die eindeutig identifiziert werden kann (z. B. eine bestimmte Person oder ein bestimmtes Produkt). Entitäten können durch ihre Eigenschaften, die sog. Attribute, beschrieben werden. Entitäten mit den gleichen Attributen aber unterschiedlichen Attributwerten können zu Entitätsmengen mit einem eindeutigen Namen zusammengefasst werden. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 47 2.1 Grundlagen Beziehungen und Beziehungsmengen Zwischen den Entitäten bestehen Beziehungen, die durch Attribute beschrieben werden können. Eine Entitätsmenge ist über eine Beziehungsmenge mit einer anderen Entitätsmenge verbunden. Es dürfen nie direkt zwei Entitätsmengen und auch nicht zwei Beziehungsmengen direkt miteinander verknüpft werden. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 48 2.1 Grundlagen Attribute und Schlüsselattribute Attribute beschreiben die relevanten Eigenschaften von Entitäten oder Beziehungen. Identifizierende Attribute (Schlüsselattribute) kennzeichnen eindeutig eine bestimmte Entität einer Entitätsmenge. Schlüssel = Minimale Menge von Attributen, die jede einzelne Entität eindeutig identifiziert. Bei einem abgeleiteten Attribut wird dieses aus den Werten anderer Attribute bestimmt. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 49 Gliederung 2. Entity-Relationship-Modell 2.1 Grundlagen 2.2 Beziehungen 2.3 Symbole 2.4 Entwurf eines E-R-Modells 2.5 Beispiele 2.6 Übungsaufgaben Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 50 2.2 Beziehungen Kardinalitäten von Beziehungstypen Einfacher Beziehungstyp (1) Die Entitäten der Entitätsmenge 2 sind genau einer Entität aus der Entitätsmenge 1 zugeordnet. Konditioneller Beziehungstyp (c) Die Entitäten der Entitätsmenge 2 sind höchstens einer Entität aus der Entitätsmenge 1 zugeordnet. multipler Beziehungstyp (m) Die Entitäten der Entitätsmenge 2 sind mindestens einer Entität aus der Entitätsmenge 1 zugeordnet. multipler-konditioneller Beziehungstyp (mc) Die Entitäten der Entitätsmenge 2 sind beliebig vielen Entitäten aus der Entitätsmenge 1 zugeordnet. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 51 2.2 Beziehungen Kardinalitäten von Beziehungstypen – Beispiele (I) 1:1-Beziehung (einfach-einfache Beziehung) - Zu einer Person gehört genau eine Geburtsurkunde. Person Geburtsurkunde gehört - Eine Geburtsurkunde gehört zu genau einer Person. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 52 2.2 Beziehungen Kardinalitäten von Beziehungstypen – Beispiele (II) 1:m-Beziehung (einfach-komplexe Beziehung) - Ein Mitarbeiter gehört zu genau einer Abteilung. Mitarbeiter Abteilung gehört zu - Zu einer Abteilung gehört mindestens ein Mitarbeiter. 53 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 2.2 Beziehungen Kardinalitäten von Beziehungstypen – Beispiele (III) m:m-Beziehung (komplex-komplexe Beziehung) - Ein Mitarbeiter bearbeitet mindestens ein Projekt. Mitarbeiter Projekt bearbeitet - Ein Projekt wird von mindestens einem Mitarbeiter bearbeitet. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 54 Mitschrift 30.Oktober 2008 Beispiele: 1:mc Beziehung Mitarbeiter o o o Abteilungen o o o c:mc Beziehung Mitarbeiter o o o o Abteilungen o o o Folie 61 mc:m – komplex komplexe Beziehung Begründung/Erläuterung {1,2,3,...} m: ein Projekt wird von midestens einem Mitarbeiter bearbeitet {0,1,2,...} mc: ein Mitarbeiter bearbeitet beliebig viele Projekte Gliederung 2. Entity-Relationship-Modell 2.1 Grundlagen 2.2 Beziehungen 2.3 Symbole 2.4 Entwurf eines E-R-Modells 2.5 Beispiele 2.6 Übungsaufgaben Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 55 2.3 Symbole Verwendete Symbole Entitätsmenge Beziehungsmenge Attribut Schlüsselattribut Abgeleitetes Attribut Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 56 Gliederung 2. Entity-Relationship-Modell 2.1 Grundlagen 2.2 Beziehungen 2.3 Symbole 2.4 Entwurf eines E-R-Modells 2.5 Beispiele 2.6 Übungsaufgaben Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 57 2.4 Entwurf eines E-R-Modells Prozess der Datenmodellierung Fachbegriffe, Aussagen Abstimmung mit: Grobdatenmodellierung Evtl. vorhandenen Datenmodellen Feindatenmodellierung Datenelementstandards (Objekttypen, Beziehungen) (Attribute, Integritätsbedingungen) Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 58 2.4 Entwurf eines E-R-Modells Schritte zum Entwurf eines E-R-Modells 1. Identifikation von Entitätsmengen und Beziehungsmengen in einem Ausschnitt der Realität. 2. Bestimmung der Beziehungstypen zwischen den Entitätsmengen und den Beziehungsmengen. 3. Bestimmung der Attribute der Entitätsmengen. 4. Bestimmung der Attribute der Beziehungsmengen. 5. Bestimmung der Schlüsselattribute (der Entitätsmengen). Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 59 Gliederung 2. Entity-Relationship-Modell 2.1 Grundlagen 2.2 Beziehungen 2.3 Symbole 2.4 Entwurf eines E-R-Modells 2.5 Beispiele 2.6 Übungsaufgaben Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 60 2.5 Beispiele Beispiel (I) Wohnort Geburtsdatum Straße Alter mc Mitarbeiter P# Bearbeitung Telefonnummer Name m Projekte Projekt# Projektname Vorname Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 61 2.5 Beispiele Beispiel (II) Erstellen Sie ein Entity-Relationship-Diagramm für einen Waschmaschinenhersteller, das die unten dargestellten Sachverhalte adäquat abbildet. Ergänzen Sie gegebenenfalls fehlende notwendige Attribute. Der Hersteller stellt zwölf verschiedene Waschmaschinentypen her, die durch eine eindeutige Nummer identifiziert werden können. Zudem verfügen die einzelnen Typen über eine Bezeichnung und eine unverbindliche Preisempfehlung des Herstellers. Von jedem Waschmaschinentyp wurden zahlreiche Exemplare ausgeliefert. Diese Waschmaschinen können durch eine Seriennummer eindeutig bestimmt werden. Für die Wartung dieser Waschmaschinen wird das jeweilige Herstellungsdatum in der Datenbank gespeichert. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 62 2.5 Beispiele Beispiel (II) - Fortsetzung Zu jedem Waschmaschinentyp existieren mehrere PDF-Dokumente, wie beispielsweise Bedienungs- oder Wartungsanleitungen. Zu jedem einzelnen Dokument sollen die zusätzlichen Informationen Titel und Autorenname der Datenbank zu entnehmen sein. Der Hersteller beschäftigt für die Durchführung von Wartungsarbeiten mehrere Techniker, die über einen Vor- und Nachnamen sowie einen festen Stundenlohn verfügen. Zudem sind Sie jeweils genau einer Abteilung zugeordnet. Sollten an einer Waschmaschine Wartungsarbeiten durchgeführt werden, so ist das jeweilige Datum und die Anzahl der Arbeitsstunden, die der Techniker für die Wartung benötigt hat, in der Datenbank zu hinterlegen. Zum Leidwesen der Kunden wird bei jeder Wartung einer Waschmaschine ein anderer Techniker mit der Wartung beauftragt. Zu jedem Kunden wird neben dem Vor- und Zunamen auch die Telefonnummer gespeichert. Zur Freude des Herstellers besitzen einige Kunden mehrere Waschmaschinen. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 63 Gliederung 2. Entity-Relationship-Modell 2.1 Grundlagen 2.2 Beziehungen 2.3 Symbole 2.4 Entwurf eines E-R-Modells 2.5 Beispiel 2.6 Übungsaufgaben Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 64 Vorlesungsmitschrift 30.11.08 S. 62 Beispiel (II) Lösung Blau Klausur- Schwarz Erläuterung 1.Identifikation von Entitätsmengen und Beziehungsmengen in einem Ausschnitt der Realität. Entitätsmengen Waschmaschinen Techniker Kunden Waschmaschinentypen Dokumente Abteilungen Beziehungsmengen Dokumente ⇔ Waschmaschinentypen Waschmaschinentypen ⇔ Waschmaschinen Waschmaschinen ⇔ Waschmaschinen ⇔ Techniker Techniker ⇔ Kunden Abteilungen 2.Bestimmung des Beziehungstypen zwischen den Entitätsmengen und der Beziehungsmengen 1) (m) zu jedem (einem) Waschmaschinentyp gehört mindestens eine Waschmaschine 2) (1) eine Waschmaschine gehört zu genau einem Waschmaschinentyp 3) (m) Zu einem Waschmaschinentyp gehört mindestens ein Dokument 4) (1)Ein Dokument gehört zu genau einem Waschmaschinentyp 5) (1)Ein Techniker arbeitet in genau einer Abteilung 6) (m) In einer Abteilung arbeitet mindestens ein Techniker 7) (mc)Eine Waschmaschine wird von belibieg vielen Technikern gewartet 8) (mc)Ein Techniker wartet beliebig viele Waschmaschinen 9) Eine Kunde besitzt mindestens eine Waschmaschine (m) 10) Eine Waschmaschine gehört zu höchstens einem Kunden (c) 3.Bestimmung der Attribute der Entitätsmengen 4.Bestimmung der attribute der Beziehungsmengen 5. Schlüsselattribute Lösung S.62 Fortsetzung Vorname Zuname Telefonnummer Kunden 9 m Seriennummer Bezeichnung Typ Nr. besitzt UVP 11 m Waschmaschinentypen 10 c 2 1 Waschmaschinen Gehören zu 3 m 7 mc Herstellungsdatum Wartungsdatum beschreibt gewartet 8 mc Arbeitsstunden 4 1 Dokumente Techniker Vorname Stundenlohn 5 1 (Dokumententyp) Autorenname Nachname arbeitet Titel Dokumentennummer Technikernummer 6 m Abteilung Abteil. NR Abteilungsname (nicht in Klausur) 2.6 Übungsaufgaben Erstellen Sie ein E-R-Diagramm für Abteilungen und Angestellte. Erstellen Sie ein E-R-Diagramm für Dozenten, die Kursangebote bereitstellen. Erstellen Sie ein E-R-Diagramm für Dozenten, die Vorlesungen halten und hierfür Bücher empfehlen. Erstellen Sie ein E-R-Diagramm zur Bibliotheksverwaltung. Erstellen Sie ein E-R-Diagramm, welches den Bestellprozess eines Versandunternehmens abbildet. Hierbei ist auch die Nachbestellung der Artikel bei den Lieferanten zu berücksichtigen. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 65 Wirtschaftsinformatik II Kapitel 3: Relationales Datenmodell Prof. Dr. Peter Chamoni Dipl.-Math. Tanja Bley Wintersemester 2008/2009 Mercator School of Management Lehrstuhl für Wirtschaftsinformatik und Operations Research Prof. Dr. Peter Chamoni Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 66 Gliederung 1 Grundlagen 2 Entity-Relationship-Modell 3 Relationales Datenmodell 4 SQL Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 67 Gliederung 3. Relationales Datenmodell 3.1 Relationen 3.2 Schlüsselbeziehungen 3.3 Überführung des E-R-Modells 3.4 Normalisierung Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 68 3.1 Relationen Logisches Datenmodell – Relationales Datenmodell Logisches Datenmodell (Wiederholung) - Ebenfalls unabhängig von der physischen Repräsentation - Ausrichtung an der für die Speicherung einzusetzenden Datenbanktechnologie Hier: Einsatz einer relationalen Datenbanktechnologie relationales Datenmodell Semantisches Datenmodell Logisches Datenmodell Physisches Datenmodell Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 69 3.1 Relationen Mathematisches Relationenmodell (I) Die Relationale Datenmodellierung basiert auf dem mathematischen Relationenmodell. Relation (datenbanktheoretisch) A1 , A 2 , , A n seien Attribute mit den Wertebereichen W(A1 ), W(A 2 ), , W(A n ) . W(A n ) heißt Eine Teilmenge R W(A1 ) W(A 2 ) n -stellige Relation über den Bereichen W(A1 ), W(A 2 ), , W(A n ). Für r (a 1 , a 2 , , a n ) mit a i Wi , i 1, , n bezeichne n den Grad der Relation. r heißt n -Tupel aus R . Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 70 3. Vorlesungsmitschrift 6.11.08 a) Beispiel Folie 69: n=2 A1 Nachname A2 Vorname W(A1)= (Müller, Meier, Schulze) W(A2)=(Daniel,Maria) W(A1) x W(A2)=((Müller,Daniel);(Müller,Maria); (Meier,Daniel);(Meier,Maria); (Schulze,Maria);(Schulz;Daniel); (Schulze; Maria)) R=((Müller,Daniel);(Schulz,Maria)) Kartesisches Produkt in Tabellendarstellung Nachname Vorname Müller Müller Meier Meier Schulz Schulz Daniel Maria Daniel Maria Daniel Maria Relation in Tabellendarstellung (Mitarbeiter eines Unternehmens) Nachname Vorname Müller Schulz Daniel Maria Weiteres Beispiel: Student Matrikelnummer Nachname Vorname PlZ Geburtsdatum 3.1 Relationen Mathematisches Relationenmodell (II) Beispiel - Sei n 2. Hieraus folgt, dass insgesamt 2 Attribute A1 und A 2 betrachtet werden. - Sei nun A1 das Attribut Nachname und A 2 das Attribut Vorname. - So kann für die Wertebereiche W(A1 ) und W(A 2 ) dann beispielsweise gelten: W(A1 ) {Müller, Maier, Weingarten} W(A 2 ) {Dieter, Marie} Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 71 3.1 Relationen Mathematisches Relationenmodell (III) - Ermittlung des kartesischen Produktes der Wertebereich W(A1 ) und W(A 2 ) : W(A1 ) W(A 2 ) {(Müller, Dieter), (Müller, Marie), (Maier, Dieter), (Maier, Marie), (Weingarten, Dieter), (Weingarten, Marie)} - Eine Relation R ist eine Teilmenge des kartesischen Produkts der Wertebereiche: R W(A1 ) W(A 2 ) - z.B.: R {(Müller, Dieter), (Weingarten, Marie)} Die Relation R stellt die Mitarbeiter eines Unternehmens dar. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 72 3.1 Relationen Mathematisches Relationenmodell (IV) Weitere Darstellungsmöglichkeit: Relation in Tabellendarstellung - Das kartesische Produkt in Tabellendarstellung: Nachname Vorname Müller Dieter Müller Marie Maier Dieter Maier Marie Weingarten Dieter Weingarten Marie Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 73 3.1 Relationen Mathematisches Relationenmodell (V) - Die Relation R in Tabellendarstellung: Nachname Vorname Müller Dieter Weingarten Marie Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 74 3.1 Relationen Relation in Tabellendarstellung MITARBEITER PNr Nachname Vorname Straße Wohnort 27 Schulz Gerhard Hauptstr. 3 Duisburg 63 Müller Dieter Bahnhofstr. 7 Essen 75 Maier Werner Schulstr. 5 Duisburg 89 Schmidt Karl Ahornweg 10 Moers 13 Maier Werner Mühlenstraße 99 München Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 75 Gliederung 3. Relationales Datenmodell 3.1 Relationen 3.2 Schlüsselbeziehungen 3.3 Überführung des E-R-Modells 3.4 Normalisierung Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 76 3.2 Schlüsselbeziehungen Schlüssel (I) Die Identifikation und Verknüpfung von Datenbeständen erfolgt über Schlüssel. Ein Schlüssel für eine Relation ist eine minimale identifizierende Attributmenge. Ein Schlüssel muss ein Tupel eindeutig identifizieren. Die Werte zweier Schlüsselattribute dürfen nicht identisch sein. Die Schlüsselattribute dürfen keine undefinierten Werte (Nullwerte) beinhalten. 77 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 3.2 Schlüsselbeziehungen Schlüssel (II) Der Schlüssel kann aus einem Attribut oder einer Menge von Attributen bestehen, wobei er eindeutig und minimal sein muss. Durch Weglassen eines Attributes darf kein kleinerer Schlüssel entstehen. Als Schlüssel kann ein künstliches Attribut eingeführt werden. In der Regel eine Teilmenge der natürlichen Zahlen . Beispiel: Schlüssel: Matrikelnnr. Annahme: Nachname,Vorname wäre Schlüssel (unrealistisch es gibt mehrere mit den gleichen V/N) oder: Nachname,Vorname,Geburtsdatum – Schlüssel? Nein!! kein Schlüssel, weil nicht minimal Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 78 3.2 Schlüsselbeziehungen Primärschlüssel In einer Relation können mehrere Attribute, welche die Eigenschaften eines Schlüssels erfüllen, existieren. Ein Primärschlüssel einer Relation ist ein Attribut (oder eine Attributkombination), welches jedes Tupel eindeutig identifiziert. Während der gesamten Existenz eines Objektes in einer Datenbank darf dessen Primärschlüssel nicht verändert werden. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 79 3.2 Schlüsselbeziehungen Relation in Tabellendarstellung Schlüsselattribut (Primärschlüssel) Attribut PNr Nachname Vorname Straße Wohnort 27 Schulz Gerhard Hauptstr. 3 Duisburg 63 Müller Dieter Bahnhofstr. 7 Essen 75 Maier Werner Schulstr. 5 Duisburg 89 Schmidt Karl Ahornweg 10 Moers 13 Maier Werner Mühlenstraße 99 München Tupel Attributwert Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 80 3.2 Schlüsselbeziehungen Fremdschlüssel Relationen werden über Fremdschlüssel miteinander in eine logische Beziehung gesetzt. Ein Fremdschlüssel ist ein Attribut (oder eine Attributkombination), welches in einer anderen Relation Primärschlüssel ist. Wertebereich (= Domäne) des Fremdschlüssels muss mit dem Wertebereich des Primärschlüssels aus der referenzierten Relation übereinstimmen. Nullwerte in Fremdschlüsseln sind aus Sicht des Datenmodells unzulässig! Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 81 Gliederung 3. Relationales Datenmodell 3.1 Grundsätzliches 3.2 Schlüsselbeziehungen 3.3 Überführung des E-R-Modells 3.4 Normalisierung Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 82 3.3 Überführung des E-R-Modells Überführung des E-R-Modells Bei der Überführung eines Entity-Relationship-Modells in das relationale Datenmodell treten in der Regel drei Fälle auf, die im Folgenden einzeln erläutert werden: - Entitätsmengen - einfach-komplexe Beziehungen - komplex-komplexe Beziehungen Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 83 3.3 Überführung des E-R-Modells Entitätsmengen (I) Jede Entitätsmenge muss als eigenständige Relation mit einem eindeutigen Primärschlüssel definiert werden. Als Primärschlüssel der Relation dient der entsprechende Schlüssel der Entitätsmenge. Die übrigen Attribute der Entitätsmengen gehen in die korrespondierenden Attribute der Relation über. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 84 3.3 Überführung des E-R-Modells Entitätsmengen (II) E-R-Modell Stundenlohn Nachname Techniker PNr relationales Datenmodell Vorname TECHNIKER PNr Vorname Nachname Stundenlohn Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 85 3.3 Überführung des E-R-Modells Einfach-komplexe Beziehung (I) Kann ohne eine eigenständige Beziehungsmengenrelation durch die beiden Relationen der zugeordneten Entitätsmengen ausgedrückt werden. In der Relation mit der einfachen Assoziation [= einfache Beziehung (1) oder konditionelle Beziehung (c)] wird ein Fremdschlüssel auf die referenzierte Relation mit eventuell weiteren Attributen der Beziehungsmenge geführt. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 86 3.3 Überführung des E-R-Modells Einfach-komplexe Beziehung (II) E-R-Modell SerienNr relationales Datenmodell Herstellungsdatum Waschmaschine 1 gehört zu Waschmaschinentyp UVP SerienNr Herstellungsdatum TypNr WASCHMASCHINENTYP m TypNr WASCHMASCHINE TypNr Bezeichnung UVP Bezeichnung Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 87 3.3 Überführung des E-R-Modells Komplex-komplexe Beziehung (I) Die Beziehungsmenge muss als eigenständige Relation definiert werden, wobei die Schlüssel der zugehörigen Entitätsmengen als Fremdschlüssel in dieser Relation auftreten müssen. Als Primärschlüssel der Beziehungsmengenrelation dient der aus den Fremdschlüsseln zusammengesetzte Schlüssel. Weitere Attribute der Beziehungsmenge erscheinen als zusätzliche Attribute in der Relation. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 88 Beispiel (F.87) (Relation) Waschmaschine SerienNR Herstellungsdatum Waschmaschinetyp typNR Beziehung UVP SerienNR 1 Miele 6000 699 4711 Typel 1 1 Miele 6000 699 1815 Tupel 2 Die Typnummer ist in diesem Fall nicht mehr eindeutig! Die Tupel können nicht mehr eindeutig zugewiesen werden! 3.3 Überführung des E-R-Modells Komplex-komplexe Beziehung (II) E-R-Modell SerienNr relationales Datenmodell WASCHMASCHINE Herstellungsdatum SerienNr Herstellungsdatum Waschmaschine mc Arbeitsstunden WARTUNG Wartungsdatum wartet Stundenlohn PNr SerienNr TECHNIKER m Techniker PNr Arbeitsstunden Wartungsdatum Vorname PNr Vorname Nachname Nachname Stundenlohn Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 89 3.3 Überführung des E-R-Modells Mögliche Kombinationen der Beziehungstypen 1 c m mc 1 1:1 c:1 m:1 mc:1 c 1:c c:c m:c mc:c m 1:m c:m m:m mc:m mc 1:mc c:mc m:mc mc:mc Nur die hierarchischen Beziehungen (1:x) werden von einem Datenbanksystem unterstützt. Nichthierarchische Beziehungen müssen transformiert werden (siehe z. B. vorherige Folie). Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 90 Folie 89 Wartung PNr Seriennummer Arbeitsstunden Wartungsdatum 3 3 4711 4711 3 2,5 27.11.06 1.04.2007 Funktioniert nicht!! Dies wäre Ergebnis,wenn die Bedingung in der Aufgabenstellung zur Erstellung des ER-Modells nicht angegeben wäre. „ ...zum Leidwesen der Kunden wird bei jeder Wartung ein anderer Techniker eingesetzt.“ (durch diesem ... Satz kann dieses Tupel nicht auftauchen) Relatives Datenmodell - hier ok das fs gleich sind Wartung Wartungsnum. Arbeitsstunden Wartungsdatum FS Seriennummer 27 29 3 2,5 27,11 1,12 4711 4711 FS Pnr 3 3 So kann der Fall auftreten, dass ein Techniker mehrmals zum gleichen Kunden kommt!! also Modellierung hier eher besser in der Praxis Alternative Modellierung SerienNr. Waschmasch. Herstellungsdatum mc wartet 1 Arbeitsstunden Wartungsnum. Wartung 1 Wartungsdatum arbeitet Vorname mc Pnr. Techniker Nachname Relatives Datenmodel: ... Stundenlohn 3.3 Überführung des E-R-Modells Beispiel Überführen Sie das zuvor erstellte Entity-Relationship-Modell (Waschmaschinen) in das relationale Datenbankmodell. Antwort siehe vorher Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 91 Gliederung 3. Relationales Datenmodell 3.1 Grundsätzliches 3.2 Schlüsselbeziehungen 3.3 Überführung des E-R-Modells 3.4 Normalisierung Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 92 Übung Folie 91 (letzte woche gemacht) -Kursiv kommt im 2. Schritt hinzu! (buchstabe zeigt nur Verbindung) 1.Fall Entitätsmengen Dokument DokumentenNr. Autoren TypNR (a) name Titel Waschmaschinetyp Beziehung UVP TypNr. Kunden KundenNr Vorname Zuname TeleNr. Waschmaschine Seriennummer TypNR. (a) KundenNR Herstellungsdatum Techniker Pnr. Vorname Nachname Stundenlohn AbtNr. Abteilung AbtNr. Abteilungsname 2.Fall 4 einfach- komplexe Beziehung 3.Fall komplex-komplex Beziehung Wartung (immer eigenständige Relation erstellen!!) SerienNR PNR (insgesamt nun 7 Relationen „zähle Tabelle...“ ) Arbeitsstunden Wartungsstunden 3.4 Normalisierung Redundanzfreie Datenhaltung Normalisierung bezweckt die redundanzfreie Speicherung von Daten in den Relationen einer Datenbank. Redundanzfreie Datenhaltung: Kein Teil eines Datenbestandes kann weggelassen werden, ohne dass dies zu Informationsverlusten führt. Redundanzfreie Datenspeicherung bringt Speicherplatzersparnis und verhindert Mutationsanomalien. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 93 3.4 Normalisierung Beispiel einer Relation mit Redundanzen PNr Nachname Vorname Stundenlohn AbtNr Abteilungsname 27 Schulz Gerhard 17,50 1 Kundendienst 63 Müller Dieter 16,80 2 Werkstatt 75 Maier Werner 26,50 2 Werkstatt 89 Schmidt Karl 18,40 1 Kundendienst 13 Maier Werner 24,90 1 Kundendienst Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 94 Zu Folie 94 Pnr Nachname Vorname Studenlohn Ab.Nr Abteilungsname 1 2 Kundendienst Werkstat AbtNr. 3.4 Normalisierung Funktionale Abhängigkeit (I) Ein Attribut bzw. eine Attributkombination B ist dann von einem Attribut oder einer Attributkombination A funktional abhängig, wenn zu einem bestimmten Attributwert von A genau ein Attributwert von B gehört. Aus dem Attributwert von A ergibt sich eindeutig der Attributwert von B. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 95 3.4 Normalisierung Funktionale Abhängigkeit (II) Beispiel: PNr Nachname Vorname Stundenlohn Nachname ist funktional abhängig von PNr, da zu jeder Personalnummer genau ein Nachname gehört. Aus PNr ergibt sich eindeutig der Nachname. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 96 Beispiel Folie 95 Student A/C B/D Matrikelnr Nachname Vorname 11 12 13 Müller Meier Müller Carsten Sophia Benjamin Ist B von A funktional abhängig? Wenn ich einen Attrb.wert von A nehme folgt genau nur ein einziger Attrb.wert von B !! – Aus der Matrikelnummer ergibt sich eindeutig der Nachname Überlegung umgekehrt: Ist C von D funktional abhängig Aus dem Attrb.wert von D ergibt sich eindeutig der Attrb.wert von C? (gilt nur wenn es funktional abhängig wäre) Natürlich NICHT!!! Müller ist nicht eindeutig einer Matrikelnr zugewiesen!!! 3.4 Normalisierung Voll funktionale Abhängigkeit (I) Ein Attribut bzw. eine Attributkombination B ist dann von einer Attributkombination A voll funktional abhängig, wenn B nur von A, nicht jedoch schon von einem Teil der Attributkombination A funktional abhängig ist. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 97 3.4 Normalisierung Voll Funktionale Abhängigkeit (II) Beispiel: PNr SerienNr Wartungsdatum Wartungsdatum ist nicht von PNr funktional abhängig. Wartungsdatum ist nicht von SerienNr funktional abhängig Wartungsdatum ist von der Attributkombination PNr, SerienNr funktional abhängig. Wartungsdatum ist voll funktional abhängig von der Attributkombination PNr, SerienNr. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 98 Folie 97 A - Attributkombination x,y sind Attribute (B von A voll funktional abhängig) Bedingung B von A voll fkt. abh. Ist – B von A (x,y) fkt. abh ist – B von X ist nicht fkt. abh. – B von Y ist nicht fkt. abh. Folie 98 Attributkombination A (Pnr, SerienNR) x Pnr y Serien Nr Attribut B Wartungsdatum frage: Ist B von a voll fkt. abh? Ist Wartungsdatum von (PNr, SerienNr) voll fkt.abh.? Bedingung überprüfen B von X funktional abh. ? -Wartungsdatum von Pnr fkt. abh? Nein!!! B von Y fkt abh.? -Wartungsdatum von SerNR fkt abh? Nein!! B von A fkt. abh? -Wartungsdatum von SerienNR und PN Nr fkt abh? Ja!! Drei Bedingungen sind erfüllt! -Wartungsdatum ist voll fkt. abh. Von SerienNR und PersonalNR. 3.4 Normalisierung Transitive Abhängigkeit (I) Ein Attribut bzw. eine Attributkombination C ist von einem Attribut oder einer Attributkombination A transitiv abhängig, wenn das Attribut B von A und das Attribut C von B funktional abhängig ist, aber A nicht von C funktional abhängig ist. 99 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 3.4 Normalisierung Transitive Abhängigkeit (II) Beispiel: A B C SerienNr Herstellungsdatum TypNr Bezeichnung UVP 3 Bedingungen müssen für die transitive Abhängigkeit erfüllt sein 1 . C von B funkt. Abhängig 2. B von A funkt. Abhängig 3. A von C nicht funkt. Abhängig 2 TypNr ist von SerienNr funktional abhängig. 1 Bezeichnung ist von TypNr funktional abhängig. 3 SerienNr ist aber nicht von Bezeichnung funktional abhängig. Bezeichnung ist von SerienNr transitiv abhängig, d.h. aus SerienNr ergibt sich die Bezeichnung. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 100 3.4 Normalisierung Non-First-Normalform Beispiel: Techniker, die zu unterschiedlichen Abteilungen gehören, warten Waschmaschinen. Techniker PNr Nachname Vorname Stundenlohn AbtNr Abteilungsname SerienNr Herstellungsdatum Arbeitsstunden Wartungsdatum 27 Schulz Gerhard 17,50 1 Kundendienst 42568 01.09.2005 3 03.11.2006 63 Müller Dieter 16,80 2 Werkstatt 25632 30.10.2002 4,5 04.09.2005 75 Maier Werner 26,50 2 Werkstatt 42568 11263 01.09.2005 27.11.2004 1 2 01.10.2007 17.06.2006 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 101 3.4 Normalisierung Erste Normalform (I) Eine Relation befindet sich in der 1. Normalform (1NF), wenn alle Attributwerte elementar sind. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 102 3.4 Normalisierung Erste Normalform (II) Techniker PNr Nachname Vorname Stundenlohn AbtNr Abteilungsname SerienNr Herstellungsdatum Arbeitsstunden Wartungsdatum 27 Schulz Gerhard 17,50 1 Kundendienst 42568 01.09.2005 3 03.11.2006 63 Müller Dieter 16,80 2 Werkstatt 25632 30.10.2002 4,5 04.09.2005 75 Maier Werner 26,50 2 Werkstatt 42568 01.09.2005 1 01.10.2007 75 Maier Werner 26,50 2 Werkstatt 11263 27.11.2004 2 17.06.2006 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 103 3.4 Normalisierung Zweite Normalform (I) Eine Relation befindet sich in der 2. Normalform (2NF), wenn sie schon in der 1. Normalform ist und jedes nicht zum Schlüssel gehörende Attribut vom Schlüssel voll funktional abhängig ist. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 104 3.4 Normalisierung Zweite Normalform (II) Waschmaschine Wartung SerienNr Herstellungsdatum SerienNr PNr Arbeitsstunden Wartungsdatum 11263 27.11.2004 42568 27 3 03.11.2007 25632 30.10.2002 25632 63 4,5 04.09.2005 42568 01.09.2005 42568 75 1 01.10.2007 11263 75 2 17.06.2006 Techniker PNr Nachname Vorname Stundenlohn AbtNr Abteilungsname 27 Schulz Gerhard 17,50 1 Kundendienst 63 Müller Dieter 16,80 2 Werkstatt 75 Maier Werner 26,50 2 Werkstatt Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 105 3.4 Normalisierung Dritte Normalform (I) Eine Relation befindet sich in der 3. Normalform (3NF), wenn sie schon in der 2. Normalform ist und kein Nichtschlüsselattribut vom Schlüssel transitiv abhängig ist. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 106 3.4 Normalisierung Dritte Normalform (II) Waschmaschine Wartung SerienNr Herstellungsdatum SerienNr PNr Arbeitsstunden Wartungsdatum 11263 27.11.2004 42568 27 3 03.11.2007 25632 30.10.2002 25632 63 4,5 04.09.2005 42568 01.09.2005 42568 75 1 01.10.2007 11263 75 2 17.06.2006 Techniker Abteilung PNr Nachname Vorname Stundenlohn AbtNr AbtNr Abteilungsname 27 Schulz Gerhard 17,50 1 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 2 107 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 3.4 Normalisierung Übungsaufgabe Normalisierung Überführen Sie die folgende Relation in die dritte Normalform. Problemsituation: Sie wurden aufgefordert, für verschiedene Produkte bei unterschiedlichen Händlern Angebote einzuholen. Angebotsübersicht HändlerNr ProdName HändlerTelefon AngPreis ProdNr Händlername HerstNr HerstName Erläuterung der Attribute: - HändlerNr ProdName HändlerTelefon AngPreis ProdNr Händlername HerstNr HerstName Händlernummer Produktname Händlertelefonnummer Angebotspreis Produktnummer Händlername Herstellernummer Herstellername Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 108 Klausuraufgabe: S.108 (Betrachte welche das ist) Übung zur Normalisierung 1. Normalform Def. 1. NF: Eine Relation befindet sich in der ersten NF, wenn alle Attributwerte elementar sind. -Die Relation befindet sich in der ersten Normalform, da die Annahme getroffen wird, dass alle Attributwerte elementar sind. Oder -Die Relation befindet sich in der 1. NF, da sich leere Relationen immer in der 1. NF befinden 2. Normalform Def 2. NF: Eine Relation befindet sich in der 2. NF, wenn sie sich bereits in der 1. NF befindet und jedes nicht zum Schlüssel gehörende Attribut vom Schlüssel voll funktional abhängig ist. Def. Voll fkt abh. Ein Attribut oder eine Attributkombination B ist von einer Attributkombination A voll fkt. abh., wenn B von A , und nicht bereits von einem Teil der Attributkombination A fkt. abhängig ist. Def.fkt.abh.:Ein Attribut oder eine Attributkombination B ist von einem Attribut oder einer Attributkombination A fkt. abh., wenn zu einem bestimmten Attributwert von A genau ein Attributwert von B gehört. Produktname Händlertelefon AngPreis HändlerName HerstNr. HerstName 1.Teil PK HändlerNr 2.Teil PK ProdNr. Nicht fkt. abh. fkt. abh n.f.a f.a n.f.a n.f.a f.a n.f.a n.f.a n.f.a f.a f.a PK HändlerNr, ProdNr. hier überall f.a/aber nun voll?-Nein! Nein! Ja! (Voll fkt. abh.!) Nein! Nein! Nein! Die Relation Angebotsübersicht befindet sich nicht in der 2.Normalform, da eben die Attribute Produktname, Händlertelefon, Händlername Hersteller und Herstellername nicht voll fkt. abh. sind, deshalb muss die Relation wie folgt aufgelöst werden. Angebotsübersicht HändlerNR ProduktNR. Angb. Preis Händler HändlerNr HändlerTelefon HändlerName Produkt ProdNr ProdName HerstNR. HerstName 3.Normalform Def. 3.NF: Eine Relation befindet sich in der 3. NF, wenn sie sich bereits in der 2. NF befindet und kein Nichtschlüsselattribut vom Schlüssel transitiv abh. ist. Def. Trans. Abh.: Ein Attribut oder eine Attributkombination C ist von einem Attribut oder einer Attributkombination A transitiv abhängig, wenn C von B funktional abh. ist, das Attribut B von A fkt. abhängig ist, nicht jedoch A von C fkt. abh. -Die Relation Angebotsübersicht besitzt nur ein Nichtschlüsselattribut und befindet sich somit in der 3. NF, da sie sich bereits in der 2. NF befindet. Händler A=Händlernummer B HändlerTelefon Händlername C Händlername Händlertelefon Bedingung C von B fkt. abh. C von B fkt. abh. Ergebnis Nein Nein Die Relation Händler befindet sich in der 3. NF, da die Attribute Händlertelefon und Händlername nicht transitiv abhängig sind und die 2. NF bereits erfüllt ist Produktname A=ProdNr B ProdName ProdName HerstNr HerstNr C Herst.Nr HerstName ProdName HerstName HerstName HerstName ProdName HerstNr Bedingung C von B fkt. abh. ... ... ... B von A fkt abh. A von C nicht fkt ab C von B fkt abh. C von B fkt abh. Ergebnis Nein Nein Nein ja ja ja Nein Nein Da das Attribut HerstName transitiv abhängig ist vom Schlüssel, muss die Relation wie folgt aufgeteilt werden. Produkt ProdNR ProdName Hersteller HerstNR HerstName HerstNR Wirtschaftsinformatik II Kapitel 4: SQL Prof. Dr. Peter Chamoni Dipl.-Math. Tanja Bley Wintersemester 2008/2009 Mercator School of Management Lehrstuhl für Wirtschaftsinformatik und Operations Research Prof. Dr. Peter Chamoni Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 109 Gliederung 1 Grundlagen 2 Entity-Relationship-Modell 3 Relationales Datenmodell 4 SQL Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 110 Gliederung 4. SQL 4.1 Begriffliches 4.2 Relationale Algebra 4.3 Relationale Algebra und SQL 4.4 Datenmanipulationssprache Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 111 4.1 Begriffliches SQL SQL = structured query language datenorientierte Sprache Sprache der 4. Generation (4GL) [= deklarative Sprachen] Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 112 4.1 Begriffliches SQL - Historische Entwicklung Anfang der 80er Jahre durch IBM entwickelt SQL wurde vom ANSI (American National Standard Institut) als Standardsprache für relationale Datenbanken erklärt. Normierungen durch die ISO (International Organization for Standardization): - 1. Norm: 1986 2. Norm: 1989 (SQL1) 3. Norm: 1992 (SQL2) 4. Norm: 1999 (SQL3) Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 113 4.1 Begriffliches SQL - Sprachumfang Zum Sprachumfang von SQL gehören 3 Befehlsgruppen: - Datendefinitionssprache (data definition language; DDL): Erstellen von Datenbanken, Tabellen (Relationen) und Indizes. - Datenmanipulationssprache (data manipulation language; DML): Anlegen, Ändern, und Löschen von Datensätzen. - Datenkontrollsprache (data control language; DCL): Anlegen von Benutzern und Vergabe von Zugriffsrechten. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 114 4.1 Begriffliches Abfrage und Mutation Eine Abfrage (query) erlaubt, einen bestimmten Ausschnitt einer Datenbank abzugrenzen und aufzufinden sowie dessen Inhalt in geeigneter Form darzustellen. Eine Mutation oder Nachführung (update) erlaubt, einen bestimmten Ausschnitt einer Datenbank abzugrenzen und aufzufinden sowie dessen Inhalt konsistenzerhaltend zu verändern. Datenkonsistenz ist gegeben, wenn der Inhalt einer Datenbank alle vordefinierten Bedingungen erfüllt. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 115 4.1 Begriffliches Transaktion Transaktion Folge von Datenbankoperationen, die hinsichtlich gewisser Integritätsanforderungen atomare Einheiten darstellen. Sie lässt die Datenbank in konsistentem Zustand zurück, wenn diese vor Beginn der Transaktion schon konsistent war. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 116 4.1 Begriffliches Begriffshierarchie bei Datenbankoperationen Mutationen zum Nachführen der Datenbasis Transaktionen (konsistenzerhaltend) Abfragen ohne Änderung der Datenbasis einfügen ändern entfernen auswählen navigieren darstellen Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 117 Gliederung 4. SQL 4.1 Begriffliches 4.2 Relationale Algebra 4.3 Relationale Algebra und SQL 4.4 Datenmanipulationssprache Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 118 4.2 Relationale Algebra Grundlagen Das relationale Datenmodell basiert auf den Grundlagen der mathematischen Mengenlehre und bildet den formalen Rahmen für relationale Datenbanksprachen. Die relationale Algebra ist ein Konzept zur Manipulation von Relationen, d. h. von Mengen, deren Elemente mehrstellige Tupel sind. Codd erstellte acht Operatoren, mit denen alle denkbaren Zugriffe auf beliebige Relationen der Datenbank möglich sind. Vollständige, in sich geschlossene Algebra! Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 119 4.2 Relationale Algebra Vereinigung (I) Wenn zwei Relationen die gleichen Attribute besitzen, können diese Relationen vereinigt werden. Die Vereinigung enthält dann alle Tupel beider Relationen. Identische Tupel werden dabei eliminiert. Voraussetzung für die Vereinigung ist, dass die Namen und Wertebereiche der Attribute beider Relationen übereinstimmen. Relationale Algebra: R1 UNION R2 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 120 ___________________________________________________ S.119 Wiederholung Relation R ⊆ W A × ... × W A 1 n Relation Tupel (...6715;Meier...) ... Relation in Tabellendarstellung Relationenname A 1 A 2 A 3 4.2 Relationale Algebra Vereinigung (II) Bsp.: Gesucht wird die Vereinigung der Relationen Techniker1 und Techniker2. Techniker2 Techniker1 PNr Nachname Vorname Stundenlohn AbtNr PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 10 Wurzel Marius 23,90 2 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 Relationale Algebra Techniker1 UNION Techniker2 Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 10 Wuzel Marius 23,90 2 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 121 4.2 Relationale Algebra Durchschnitt (I) Der Durchschnitt zweier Relationen enthält alle Tupel, die in beiden Relationen enthalten sind. Voraussetzung für den Durchschnitt ist, dass die Namen und Wertebereiche der Attribute beider Relationen übereinstimmen. Relationale Algebra: R1 INTERSECT R2 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 122 4.2 Relationale Algebra Durchschnitt (II) Bsp.: Gesucht wird der Durchschnitt der Relationen Techniker1 und Techniker3. Techniker3 Techniker1 PNr Nachname Vorname Stundenlohn AbtNr PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 75 Maier Werner 26,50 1 29 Naumann Harry 14,50 2 Relationale Algebra Techniker1 INTERSECT Techniker3 Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 75 Maier Werner 26,50 1 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 123 4.2 Relationale Algebra Differenz (I) Die Differenz zweier Relationen enthält alle Tupel der ersten Relation, die nicht in der zweiten Relation enthalten sind. Voraussetzung für die Differenz ist, dass die Namen und Wertebereiche der Attribute beider Relationen übereinstimmen. Relationale Algebra: R1 MINUS R2 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 124 4.2 Relationale Algebra Differenz (II) Bsp.: Gesucht wird die Differenz der Relationen Techniker1 und Techniker3. Techniker3 Techniker1 PNr Nachname Vorname Stundenlohn AbtNr PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 75 Maier Werner 26,50 1 29 Naumann Harry 14,50 2 Relationale Algebra Techniker1 MINUS Techniker3 Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr 63 Müller Dieter 16,80 2 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 125 4.2 Relationale Algebra Selektion (I) Bei der Selektion handelt es sich um einen Suchvorgang in einer Relation. Es wird eine Auswahlbedingung aus dem Wertebereich eines oder mehrerer Attribute vorgegeben, auf die sämtliche Tupel der Relation untersucht werden. Tupel, die das gesuchte Kriterium erfüllen, werden zu einer neuen Relation zusammengefasst. Ist in der Relation kein Tupel vorhanden, welches die gesuchte Bedingung erfüllt, so ist das Ergebnis dieser Relation die leere Relation. Relationale Algebra: R WHERE Bedingung Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 126 4.2 Relationale Algebra Selektion (II) Bsp.: Gesucht sind alle Tupel aus der Relation Techniker, bei denen PNr kleiner als 50 ist. Techniker PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 Relationale Algebra Ergebnisrelation Techniker WHERE PNr < 50 PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 127 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4.2 Relationale Algebra Selektion (III) Bsp.: Gesucht sind alle Tupel aus der Relation Techniker, bei denen der Nachname=Maier ist. Techniker PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 Relationale Algebra Techniker WHERE Nachname = 'Maier' Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr 75 Maier Werner 26,50 1 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 128 4.2 Relationale Algebra Projektion (I) Auswahl von Attributen einer Relation. Alle Attribute, welche die Auswahlbedingungen erfüllen, werden in eine neue Relation projiziert. Bei der Projektion werden evtl. entstehende identische Tupel eliminiert. Relationale Algebra: R [Attributauswahl] Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 129 4.2 Relationale Algebra Projektion (II) Bsp.: Gesucht sind die Attribute Vorname und Nachname aus der Relation Techniker. Techniker PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 Relationale Algebra Techniker [Vorname, Nachname] Ergebnisrelation Vorname Nachname Gerhard Schulz Dieter Müller Werner Maier Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 130 4.2 Relationale Algebra Kartesisches Produkt (I) Bei dem kartesischen Produkt zweier Relationen wird eine neue Relation erzeugt, die aus allen möglichen Kombinationen der Tupel der beiden Relationen bestehen. Relationale Algebra: R1 TIMES R2 131 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4.2 Relationale Algebra Kartesisches Produkt (II) Bsp.: Gesucht wird das kartesische Produkt der Relationen Techniker und Abteilung. Techniker Abteilung PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 Relationale Algebra Techniker TIMES Abteilung Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 27 Schulz Gerhard 17,50 1 2 Werkstatt 63 Müller Dieter 16,80 2 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 1 Kundendienst 75 Maier Werner 26,50 1 2 Werkstatt Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 132 4.2 Relationale Algebra Verbund (I) Bei dem Verbund zweier Relationen wird eine neue Relation erzeugt, die aus allen möglichen Kombinationen der Tupel der beiden Relationen bestehen, wobei gemeinsame Attribute beider Relationen als Verknüpfung dienen. Der Verbund (zweier Relationen) ist das kartesische Produkt aller Tupel von zwei Relationen, bei denen ein bestimmter Vergleich (= Selektion) zwischen den beiden Tupeln erfüllt ist. Als gemeinsame Schnittstelle beider Relationen dienen dabei Attribute, die in beiden Relationen vorkommen und eine gleiche Ausprägung besitzen. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 133 4.2 Relationale Algebra Verbund (II) Das Ergebnis einer Verbundoperation ist eine Relation, in denen die Quellrelationen über dieses gemeinsame Attribut miteinander verbunden sind. Relationale Algebra: R1 JOIN R2 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 134 4.2 Relationale Algebra Wiederholung Kartesisches Produkt Bsp.: Gesucht wird das kartesische Produkt der Relationen Techniker und Abteilung. Techniker Abteilung PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 Relationale Algebra Techniker TIMES Abteilung Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 27 Schulz Gerhard 17,50 1 2 Werkstatt 63 Müller Dieter 16,80 2 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 1 Kundendienst 75 Maier Werner 26,50 1 2 Werkstatt 135 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4.2 Relationale Algebra Verbund (III) Bsp.: Gesucht wird der Verbund zwischen den Relationen Techniker und Abteilung. Techniker Abteilung PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 Ergebnisrelation Relationale Algebra Techniker JOIN Abteilung PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 1 Kundendienst Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 136 4.2 Relationale Algebra Natürlicher Verbund (I) Beim Verbund ist das in beiden Relationen vorkommende Attribut redundant. Wird das redundante Attribut nachträglich durch eine Projektion entfernt, so handelt es sich um einen natürlichen Verbund. 137 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4.2 Relationale Algebra Natürlicher Verbund (II) Bsp.: Gesucht wird der natürliche Verbund zwischen den Relationen Techniker und Abteilung. Techniker Abteilung PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 Kundendienst 63 Müller Dieter 16,80 2 Werkstatt 75 Maier Werner 26,50 1 Kundendienst Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 138 4.2 Relationale Algebra Division (I) Voraussetzung ist, dass die erste Relation mindestens alle Attribute der zweiten Relation enthält und die Namen und die Wertebereiche dieser Attribute bei beiden Relationen übereinstimmen. Bei der Division zweier Relationen entsteht eine neue Relation, die alle Attribute der ersten Relation außer den Attributen der zweiten Relation enthält. Es werden nur diejenigen Tupel der ersten Relation übernommen, deren Attributwerte mit allen Attributwerten der zweiten Relation übereinstimmen. Relationale Algebra: R1 DIVIDED BY R2 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 139 4.2 Relationale Algebra Division (II) Bsp.: Gesucht ist die Division der Relationen A und B. A B X# Y# Y# X1 Y1 Y2 X1 Y2 Y3 X1 Y3 X2 Y1 X2 Y2 X3 Y2 X3 Y3 Relationale Algebra A DIVIDEDBY B Ergebnisrelation X# X1 X3 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 140 4.2 Relationale Algebra Division (III) Bsp.: Gesucht sind die Waschmaschinen, die in allen Abteilungen repariert wurden. Wartung2 Abteilung Seriennr Abtnr Abtnr 42568 1 1 25632 2 2 42568 2 11263 2 Relationale Algebra Ergebnisrelation Wartung2 DIVIDEDBY Abteilung Seriennr 42568 141 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4.2 Relationale Algebra Zusammenfassende Übersicht (I) Mengenoperatoren: Vereinigung Relationenspezifische Operatoren: Durchschnitt Differenz Selektion Projektion (natürlicher) Verbund a1 a2 a3 Kartesisches Produkt a b c x y a b c a b c x x x y y y b1 b1 b2 b1 b2 c1 c2 a1 a2 a3 b1 b1 b2 c1 c1 c2 Division a a a b c x y z x y x y Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 a 142 4.2 Relationale Algebra Zusammenfassende Übersicht (II) Das Ergebnis bei diesen 8 Operatoren sind wieder Relationen, auf die die Operatoren wieder angewendet werden können. Es müssen bei der Anwendung der Algebra nicht nur die Attributwerte in den Tupeln, sondern auch die Attributnamen beachtet werden. Bei einigen Operatoren, z. B. beim Verbund, müssen die Attributnamen u. U. umbenannt werden. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 143 Gliederung 4. SQL 4.1 Begriffliches 4.2 Relationale Algebra 4.3 Relationale Algebra und SQL 4.4 Datenmanipulationssprache Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 144 4.3 Relationale Algebra und SQL Befehle Zur Suche und Abfrage von Daten in der Datenbank steht nur genau ein Befehl zur Verfügung, der SELECT-Befehl. Vorgehensweise - SELECT- und FROM-Klausel - WHERE-Klausel - Mengenoperatoren Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 145 4.3 Relationale Algebra und SQL SELECT- und FROM-Klausel (I) Syntax: SELECT * FROM Tabellenname Beispiel: Ergebnis: SELECT * FROM Techniker; PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 146 4.3 Relationale Algebra und SQL SELECT- und FROM-Klausel (II) Syntax: SELECT Attributliste FROM Tabellenname Beispiel: SELECT PNr, Nachname FROM Techniker; Ergebnis: PNr Nachname 27 Schulz 63 Müller 75 Maier 147 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4.3 Relationale Algebra und SQL Projektion – vgl. Folie 130 Bsp.: Gesucht sind die Attribute Vorname und Nachname aus der Relation Techniker. TECHNIKER PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 Relationale Algebra Techniker [Vorname, Nachname] SQL-Befehl SELECT Vorname, Nachname FROM Techniker; Ergebnisrelation Vorname Nachname Gerhard Schulz Dieter Müller Werner Maier Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 148 4.3 Relationale Algebra und SQL Kartesisches Produkt (I) – vgl. Folie 132 Bsp.: Gesucht wird das kartesische Produkt der Relationen Techniker und Abteilung. Techniker Abteilung PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 Relationale Algebra Techniker TIMES Abteilung SQL-Befehl SELECT * FROM Techniker, Abteilung; Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 27 Schulz Gerhard 17,50 1 2 Werkstatt 63 Müller Dieter 16,80 2 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 1 Kundendienst 75 Maier Werner 26,50 1 2 Werkstatt Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 149 4.3 Relationale Algebra und SQL WHERE-Klausel (I) Syntax: SELECT * | Attributliste FROM Tabellenname [WHERE Bedingung] Beispiel: Ergebnis: SELECT * FROM Techniker WHERE PNr < 50; PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 150 4.3 Relationale Algebra und SQL Selektion (I) – vgl. Folie 127 Bsp.: Gesucht sind alle Tupel aus der Relation Techniker, bei denen PNr kleiner als 50 ist. Techniker PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 Relationale Algebra Ergebnisrelation Techniker WHERE PNr < 50 SQL-Befehl PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 SELECT * FROM Techniker WHERE PNr < 50; 151 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4.3 Relationale Algebra und SQL Selektion (II) – vgl. Folie 128 Bsp.: Gesucht sind alle Tupel aus der Relation Techniker, bei denen der Nachname=Maier ist. Techniker PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 Relationale Algebra Techniker WHERE Nachname = 'Maier' SQL-Befehl Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr 75 Maier Werner 26,50 1 SELECT * FROM Techniker WHERE Nachname = 'Maier'; Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 152 4.3 Relationale Algebra und SQL Verbund – vgl. Folie 136 Bsp.: Gesucht wird der Verbund zwischen den Relationen Techniker und Abteilung. Techniker Abteilung PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 Ergebnisrelation Relationale Algebra Techniker JOIN Abteilung SQL-Befehl PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 1 Kundendienst SELECT * FROM Techniker, Abteilung WHERE Techniker.AbtNr = Abteilung.AbtNr; 153 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4.3 Relationale Algebra und SQL Natürlicher Verbund – vgl. Folie 138 Bsp.: Gesucht wird der natürliche Verbund zwischen den Relationen Techniker und Abteilung. Techniker Abteilung PNr Nachname Vorname Stundenlohn AbtNr AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 1 Kundendienst 63 Müller Dieter 16,80 2 2 Werkstatt 75 Maier Werner 26,50 1 Ergebnisrelation SQL-Befehl PNr Nachname Vorname Stundenlohn AbtNr Bezeichnung 27 Schulz Gerhard 17,50 1 Kundendienst 63 Müller Dieter 16,80 2 Werkstatt 75 Maier Werner 26,50 1 Kundendienst SELECT PNr, Nachname, Vorname, Stundenlohn, Techniker.AbtNr, Bezeichnung FROM Techniker, Abteilung WHERE Techniker.AbtNr = Abteilung.AbtNr; Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 154 4.3 Relationale Algebra und SQL Mengenoperatoren Mehrere SELECT-Befehle können durch Mengenoperatoren miteinander verknüpft werden. - UNION (= Vereinigung) - INTERSECT (= Durchschnitt) - MINUS (= Differenz) 155 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4.3 Relationale Algebra und SQL Mengenoperator UNION (Vereinigung) – vgl. Folie 121 Bsp.: Gesucht wird die Vereinigung der Relationen Techniker1 und Techniker2. Techniker2 Techniker1 PNr Nachname Vorname Stundenlohn AbtNr PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 10 Wurzel Marius 23,90 2 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 Relationale Algebra Techniker1 UNION Techniker2 SQL-Befehl SELECT * FROM Techniker1 UNION SELECT * FROM Techniker2; Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 10 Wuzel Marius 23,90 2 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 156 4.3 Relationale Algebra und SQL Mengenoperator INTERSECT (Durchschnitt) – vgl. Folie 123 Bsp.: Gesucht wird der Durchschnitt der Relationen Techniker1 und Techniker3. Techniker3 Techniker1 PNr Nachname Vorname Stundenlohn AbtNr PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 75 Maier Werner 26,50 1 29 Naumann Harry 14,50 2 Relationale Algebra Techniker1 INTERSECT Techniker3 SQL-Befehl SELECT * FROM Techniker1 INTERSECT SELECT * FROM Techniker3; Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 75 Maier Werner 26,50 1 157 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4.3 Relationale Algebra und SQL Mengenoperator MINUS (Differenz) – vgl. Folie 125 Bsp.: Gesucht wird die Differenz der Relationen Techniker1 und Techniker3. Techniker1 Techniker3 PNr Nachname Vorname Stundenlohn AbtNr PNr Nachname Vorname Stundenlohn AbtNr 27 Schulz Gerhard 17,50 1 27 Schulz Gerhard 17,50 1 63 Müller Dieter 16,80 2 75 Maier Werner 26,50 1 75 Maier Werner 26,50 1 29 Naumann Harry 14,50 2 Relationale Algebra Techniker1 MINUS Techniker3 SQL-Befehl Ergebnisrelation PNr Nachname Vorname Stundenlohn AbtNr 63 Müller Dieter 16,80 2 SELECT * FROM Techniker1 MINUS SELECT * FROM Techniker3; Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 158 Gliederung 4. SQL 4.1 Begriffliches 4.2 Relationale Algebra 4.3 Relationale Algebra und SQL 4.4 Datenmanipulationssprache Vorlesung: Abfolge SQL (ACCESS 2003) -Öffnen -Auswahl der Relationen(.mdb Datei) -Abfrage erstes Fenster schließen oben links sql-Ansicht - befehl eingeben oben Ausrufezeichen ausführen! - immer richtig schreiben!!! 159 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 4.4 Datenmanipulationssprache Zugrundeliegende Relationen Dokument Techniker DokumentNr Titel Autorenname TypNr PNr Nachname Vorname Stundenlohn AbtNr Wartung Waschmaschinentyp TypNr Bezeichnung UVP SerienNr PNr Arbeitstunden Wartungsdatum Abteilung Kunde KundenNr Vorname Zuname Telefonnummer AbtNr Abteilungsname Waschmaschine SerienNr Herstellungsdatum TypNr KundenNr Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 160 4.4 Datenmanipulationssprache SELECT- und WHERE- Klausel (I) Syntax: Bsp.: SELECT * | Attributliste FROM Tabellenname Stellen Sie alle Daten der Tabelle Techniker dar. SELECT * FROM Techniker Bsp.: Geben Sie für alle Techniker PNr, Nachname und Vorname an. SELECT PNr, Nachname, Vorname FROM Techniker Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 161 4.4 Datenmanipulationssprache SELECT- und WHERE- Klausel (II) Spalten umbenennen Der Spaltenname kann zur Ausgabe mit Hilfe des AS-Operators umbenannt werden. Bsp.: Die Spalte PNr soll in der Ausgabe umbenannt werden in Personalnummer. SELECT PNr AS Personalnummer, Nachname, Vorname FROM Techniker Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 162 4.4 Datenmanipulationssprache SELECT- und WHERE- Klausel (III) Spalte mit konstanten Werten anzeigen In einer eigenen Spalte können konstante Werte angezeigt werden. Bsp.: Es soll eine zusätzliche Spalte angezeigt werden, die den konstanten Wert Angestellter enthalten und den Namen Status tragen soll. SELECT PNr AS Personalnummer, Nachname, Vorname, 'Angestellter' AS Status FROM Techniker Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 163 4.4 Datenmanipulationssprache WHERE-Klausel (I) Syntax: SELECT * | Attributliste FROM Tabellenname [WHERE Bedingung] Bsp.: Numerische Werte Geben Sie diejenigen Techniker aus, die in der Abteilung 2 arbeiten. SELECT * FROM Techniker WHERE AbtNr = 2 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 164 4.4 Datenmanipulationssprache WHERE-Klausel (II) Bsp.: Alphanumerische Werte Listen Sie diejenigen Techniker auf, die Maier heißen. SELECT * FROM Techniker WHERE Nachname = 'Maier' Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 165 4.4 Datenmanipulationssprache WHERE-Klausel – Bedingungsarten (I) Bedingung Erläuterung Beispiel Vergleichsoperatoren Vergleicht den Wert eines Datenfeldes mit einem vorgegebenen Wert. Mögliche Vergleichoperatoren: <, >, <>, =, >=, <= SELECT * FROM Techniker WHERE AbtNr <> 5 Bereichsprüfung Prüft, ob der Wert eines Feldes SELECT * innerhalb eines bestimmten FROM Techniker Bereichs liegt. WHERE AbtNr BETWEEN 3 AND 7 BETWEEN AND Elementprüfung IN ( , , ) Prüft, ob der Wert eines Feldes SELECT * sich in der angegebenen Liste FROM Techniker befindet. WHERE Nachname IN ('Maier', 'Müller') Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 166 4.4 Datenmanipulationssprache WHERE-Klausel – Bedingungsarten (II) Bedingung Erläuterung Beispiel Mustervergleich Überprüft einen Feldinhalt auf Übereinstimmung mit einem angegebenen Muster. Trunkierungszeichen: * SELECT * FROM Techniker Prüft einen Feldinhalt auf den Wert NULL (Datenfeld enthält keinen Wert). SELECT * FROM Waschmaschine WHERE KundenNr IS NULL Verknüpfung mehrerer Bedingungen. Mögliche logische Operatoren: AND, OR, NOT SELECT * FROM Techniker LIKE ' ' Nullwertprüfung IS NULL Logische Operatoren WHERE Nachname LIKE 'M*' WHERE Nachname LIKE 'M*' AND (AbtNr = 2 OR AbtNr = 5) Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 167 4.4 Datenmanipulationssprache WHERE-Klausel – Bedingungsarten (III) Vergleichsoperatoren Bsp.: Welche Techniker arbeiten nicht in der Abteilung mit der Nummer 2? SELECT * FROM Techniker WHERE AbtNr <> 2 Bereichsprüfung Bsp.: Welche Techniker verdienen pro Stunde zwischen 15,00 und 17,80 ? SELECT * FROM Techniker WHERE Stundenlohn BETWEEN 15,00 AND 17,80 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 168 Alternative zu S . 168 SELECT * FROM Techniker WHERE Stundenlohn >= 15,00 AND Stundenlohn < = 17,80 (sind 2 voneinander getrennte Bedingungen!) Techniker 4 PNR Nachname Vorname Stundenlohn Eintrittsdatum SELECT * FROM Techniker4 WHERE Eintrittsdatum BETWEEN 2007-01-01 AND 2009-12-31 -Gibt Techniker wieder, die im Jahr 2007 eingestellt wurden. FALSCH Wäre: ...LIKE '2007' - immer ein Intervall benutzen ! Datumsfeld: !!!Für die Klausur wäre richtig: JJJJ-MM-TT Access ACCESS: oder 2008-12-31 #12/31/2008# oder 31.12.2008 4.4 Datenmanipulationssprache WHERE-Klausel – Bedingungsarten (IV) Elementsprüfung Bsp.: Welche Techniker heißen Maier oder Müller? SELECT * FROM Techniker WHERE Nachname IN ('Maier', 'Müller') Mustervergleich Bsp.: Welche Techniker besitzen einen Nachnamen, der mit M beginnt? SELECT * FROM Techniker WHERE Nachname LIKE 'M*' Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 169 4.4 Datenmanipulationssprache WHERE-Klausel – Bedingungsarten (V) Nullwertprüfung Bsp.: Welche Waschmaschinen sind noch keinem Kunden zugeordnet? SELECT * FROM Waschmaschine WHERE KundenNr IS NULL Logische Operatoren Bsp.: Welche Techniker besitzen einen Nachnamen, der mit M beginnt und nicht Müller oder Maier ist? SELECT * FROM Techniker WHERE Nachname LIKE 'M* AND NOT (Nachname=Müller OR Nachname=Maier) Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 170 4.4 Datenmanipulationssprache Übungsaufgaben Welche Techniker haben einen Stundenlohn, der über 16 liegt? Welche Techniker haben einen Stundenlohn, der zwischen 14 und 22,50 liegt? Welche Nachnamen der Techniker enden auf mann? Welche Techniker heißen Maier bzw. Müller? Welche Techniker verdienen mehr als 24,60 pro Stunde und arbeiten in der Abteilung 2? Welche Techniker heißen nicht Maier oder Müller? Welche Techniker arbeiten weder in Abteilung 1 noch in Abteilung 2? Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 171 4.4 Datenmanipulationssprache DISTINCT-Befehl Syntax: SELECT [DISTINCT] * | Attributliste FROM Tabellenname [WHERE Bedingung] Durch DISTINCT wird die Ausgabe identischer Tupel vermieden. Bsp.: Listen Sie alle Nachnamen der Techniker auf, wobei jeder Nachname nur einmal erscheinen darf. SELECT DISTINCT Nachname FROM Techniker Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 172 4.4 Datenmanipulationssprache ORDER- BY- Klausel (I) Syntax: SELECT [DISTINCT] * | Attributliste FROM Tabellenname [WHERE Bedingung] [ORDER BY Attributliste] [ASC|DESC] Durch die ORDER-BY-Klausel kann die Ausgabe nach bestimmten Attributen sortiert werden. Mit dem Schlüsselwort DESC wird absteigend sortiert. Mit dem Schlüsselwort ASC wird aufsteigend sortiert. Dies ist jedoch standardmäßig der Fall und muss somit nicht angegeben werden. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 173 4.4 Datenmanipulationssprache ORDER- BY- Klausel (II) DESC | ASC bezieht sich immer nur auf ein Attribut. Bsp.: Sortieren Sie die Technikerliste nach dem Nachnamen. SELECT * FROM Techniker ORDER BY Nachname Bsp.: Sortieren Sie die Technikerliste nach dem Stundenlohn und anschließend nach dem Nachnamen. SELECT * FROM Techniker ORDER BY Stundenlohn, Nachname Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 174 4.4 Datenmanipulationssprache ORDER- BY- Klausel (III) Bsp.: Sortieren Sie die Technikerliste absteigend nach dem Nachnamen. SELECT * FROM Techniker ORDER BY Nachname DESC Bsp.: Sortieren Sie die Technikerliste absteigend nach dem Stundenlohn und aufsteigend danach nach dem Nachnamen. SELECT * FROM Techniker ORDER BY Stundenlohn DESC, Nachname Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 175 4.4 Datenmanipulationssprache ORDER- BY- Klausel (IV) Bsp.: Sortieren Sie die Technikerliste aufsteigend nach dem Stundenlohn und absteigend danach nach dem Nachnamen. SELECT * FROM Techniker ORDER BY Stundenlohn, Nachname DESC Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 176 4.4 Datenmanipulationssprache Aggregatfunktionen (I) Funktion Erläuterung Beispiel COUNT() Liefert die Anzahl der Werte (außer den Wert NULL) in der Ergebnismenge einer SELECTAbfrage bzw. einer Gruppierung. SELECT COUNT(PNr) AS Anzahl FROM Techniker AVG () Liefert den Durchschnittswert eines Datenfeldes der Abfrage oder Gruppierung. SELECT AVG(Stundenlohn) AS Durchschnitt FROM Techniker MIN () MAX () Liefert den kleinsten bzw. größten Wert eines Datenfeldes der Abfrage oder Gruppierung. SELECT MIN(Stundenlohn) AS Minimum FROM Techniker SELECT COUNT(*) AS Anzahl FROM Techniker SELECT MAX(Stundenlohn) AS Maximum FROM Techniker SUM () Liefert die Summe der Werte eines Datenfeldes in der Abfrage oder Gruppierung. SELECT SUM(Stundenlohn) AS Gesamtstundenlohn FROM Techniker Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 177 4.4 Datenmanipulationssprache Aggregatfunktionen (II) Bsp.: Wie viele Techniker sind in der Datenbank gespeichert? SELECT COUNT(PNr) AS Anzahl FROM Techniker Bsp.: Wie hoch ist der durchschnittliche Stundenlohn? SELECT AVG(Stundenlohn) AS Durchschnitt FROM Techniker Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 178 4.4 Datenmanipulationssprache Aggregatfunktionen (III) Bsp.: Wie hoch ist der minimale Stundenlohn? SELECT MIN(Stundenlohn) AS Minimum FROM Techniker Bsp.: Wie viele Arbeitsstunden wurden insgesamt für Wartungsarbeiten aufgebracht? SELECT SUM(Arbeitsstunden) AS Gesamt FROM Wartung Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 179 4.4 Datenmanipulationssprache Aggregatfunktionen (IV) Syntax: SELECT [DISTINCT] * | Attributliste FROM Tabellenname [WHERE Bedingung] [GROUP BY Attributliste] [ORDER BY Attributliste] [ASC|DESC] Mit Hilfe von Aggregatfunktionen können zusätzliche Spalten ausgegeben werden, in denen ein berechneter Wert dargestellt wird. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 180 4.4 Datenmanipulationssprache Aggregatfunktionen (V) Ist in der SELECT-Klausel mindestens eine Aggregatfunktion enthalten und wird noch mindestens ein Attribut zusätzlich ausgewählt, so muss das Schlüsselwort GROUP BY verwendet werden. Hierbei muss nach allen weiteren ausgewählten Attributen in der Attributliste, außer denjenigen, auf die sich die Aggregatfunktion bezieht, gruppiert werden. Da sich die Aggregatfunktionen jeweils auf Datensatzgruppen beziehen, geben sie pro gebildeter Gruppe genau einen Wert zurück. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 181 4.4 Datenmanipulationssprache Aggregatfunktionen (VI) Bsp.: Listen Sie für die einzelnen Abteilungen anhand der Abteilungsnummer die Anzahl der Techniker auf. SELECT AbtNr, COUNT(*) AS Anzahl FROM Techniker GROUP BY AbtNr Bsp.: Geben Sie pro Abteilungsnummer den durchschnittlichen Stundenlohn an. SELECT AbtNr, AVG(Stundenlohn) AS Durchschnitt FROM Techniker GROUP BY AbtNr Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 182 4.4 Datenmanipulationssprache HAVING-Klausel (I) Syntax: SELECT [DISTINCT] * | Attributliste FROM Tabellenname [WHERE Bedingung] [GROUP BY Attributliste [HAVING Bedingung]] [ORDER BY Attributliste] [ASC|DESC] Die Verwendung der HAVING-Klausel ermöglicht das Definieren von Gruppenbedingungen. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 183 4.4 Datenmanipulationssprache HAVING-Klausel (II) Im Gegensatz zu der WHERE-Klausel werden die mit der HAVING-Klausel angegebenen Bedingungen nicht auf einzelne Datensätze, sondern auf Datensatzgruppen angewendet. Es wird eine Auswahlbedingung aus dem Wertebereich der Aggregatfunktion vorgegeben, auf die sämtliche Datensatzgruppen der Relation untersucht werden. Hierbei werden alle Datensatzgruppen, welche die HAVINGBedingung nicht erfüllen, verworfen. Mögliche Vergleichsoperatoren: <, >, <>, =, >=, <= Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 184 4.4 Datenmanipulationssprache HAVING-Klausel (III) Bsp.: Listen Sie für die einzelnen Abteilungen anhand der Abteilungsnummer die Anzahl der Techniker auf und geben Sie hierbei nur jene Abteilungen aus, in denen mehr als 5 Techniker arbeiten. SELECT AbtNr, COUNT(*) AS Anzahl FROM Techniker GROUP BY AbtNr HAVING COUNT(*) > 5 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 185 4.4 Datenmanipulationssprache HAVING-Klausel (IV) Bsp.: Geben Sie pro Abteilungsnummer den durchschnittlichen Stundenlohn an. Hierbei sollen nur jene Abteilungen aufgeführt werden, in denen die Techniker höchstens einen Durchschnittsstundenlohn von 21,50 haben. SELECT AbtNr, AVG(Stundenlohn) AS Durchschnitt FROM Techniker GROUP BY AbtNr HAVING AVG(Stundenlohn) <= 21,50 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 186 4.4 Datenmanipulationssprache Referentielle Integrität (I) Die referentielle Integrität ist eine Konsistenzbedingung, welche verlangt, dass Fremdschlüsselwerte nur auf Tupel der referenzierten Relation verweisen, die zur Zeit tatsächlich existieren. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 187 4.4 Datenmanipulationssprache Referentielle Integrität (II) Stundenlohn Nachname Techniker PNr PNr 1 AbtNr arbeitet m Vorname Nachname Vorname Stundenlohn Abteilung Abteilungsname AbtNr AbtNr Abteilungsname Konsequenz: Wird bei der einfach-multiplen-Beziehung eine neue Entität Techniker eingefügt, so ist dies nur möglich, wenn gleichzeitig auch mindestens eine davon abhängige Entität Abteilung eingefügt wird. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 188 4.4 Datenmanipulationssprache Abfragen über mehrere Tabellen – innerer Verbund (I) Um Abfragen über mehrere Tabellen durchführen zu können, müssen die entsprechenden Tabellen miteinander verknüpft werden. Beim Inner-Join (innerer Verbund) wird das kartesische Produkt über zwei Relationen gebildet, wenn ein oder mehrere gemeinsame Attribute den gleichen Wert haben. In der Relationalen Algebra wird der innere Verbund mit Verbund bezeichnet. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 189 4.4 Datenmanipulationssprache Abfragen über mehrere Tabellen – innerer Verbund (II) Dieser innere Verbund zweier oder mehrerer Tabellen stellt die Grundlage für die zuvor in diesem Kapitel dargestellten Abfragemöglichkeiten dar. Alle zu verknüpfenden Tabellennamen werden in die FROMKlausel aufgenommen und jeweils durch ein Komma voneinander getrennt. In die WHERE-Klausel wird die Bedingung eingefügt, dass die Primärschlüsselwerte der einen Tabelle mit den Fremdschlüsselwerten der jeweils referenzierten Tabelle übereinstimmen müssen. Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 190 4.4 Datenmanipulationssprache Abfragen über mehrere Tabellen – innerer Verbund (III) Bsp.: Innerer Verbund zwischen den beiden Relationen Techniker und Abteilung. SELECT * FROM Techniker, Abteilung WHERE Techniker.AbtNr = Abteilung.AbtNr Sobald ein Attributname in mehr als einer Relation vorhanden ist, muss angegeben werden aus welcher der verwendeten Relationen das Attribut verwendet werden soll. Dies erfolgt durch: Tabellenname.Attributname Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 191 4.4 Datenmanipulationssprache Abfragen über mehrere Tabellen – innerer Verbund (IV) Bsp.: Innerer Verbund zwischen den beiden Relationen Waschmaschine und Techniker. - Diese beiden Relationen können nicht direkt miteinander verknüpft werden. - Hierzu muss zusätzlich die Relation Wartung betrachtet werden. SELECT * FROM Waschmaschine, Wartung, Techniker WHERE Waschmaschine.SerienNr = Wartung.SerienNr AND Wartung.PNr = Techniker.PNr Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 192 4.4 Datenmanipulationssprache Abfragen über mehrere Tabellen – Beispiele (I) Erstellen Sie eine Übersicht, aus der hervorgeht, welche Techniker in welchen Abteilungen arbeiten. SELECT PNr, Nachname, Vorname, Abteilung.AbtNr, Abteilungsname FROM Techniker, Abteilung WHERE Techniker.AbtNr = Abteilung.AbtNr Erstellen Sie eine Übersicht, aus der hervorgeht, welche Techniker in der Abteilung Kundendienst arbeiten. SELECT PNr, Nachname, Vorname, Abteilung.AbtNr, Abteilungsname FROM Techniker, Abteilung WHERE Techniker.AbtNr = Abteilung.AbtNr AND Abteilungsname = 'Kundendienst' Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 193 4.4 Datenmanipulationssprache Abfragen über mehrere Tabellen – Beispiele (II) Listen Sie alle Kunden auf, die mehr als 7 Waschmaschinen besitzen. SELECT Kunde.KundenNr, Vorname, Zuname, Telefonnummer, COUNT(SerienNr) AS Anzahl FROM Kunde, Waschmaschine WHERE Kunde.KundenNr = Waschmaschine.KundenNr GROUP BY Kunde.KundenNr, Vorname, Zuname, Telefonnummer HAVING COUNT(SerienNr) > 7 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 194 4.4 Datenmanipulationssprache Abfragen über mehrere Tabellen – Beispiele (III) Geben Sie pro Waschmaschine an, wie hoch der Arbeitslohn für alle bislang vorgenommenen Wartungen der einzelnen Maschinen war. SELECT SerienNr, SUM(Arbeitsstunden*Stundenlohn) AS Arbeitslohn FROM Techniker, Wartung WHERE Techniker.PNr = Wartung.PNr GROUP BY SerienNr Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 195 4.4 Datenmanipulationssprache Abfragen über mehrere Tabellen – Beispiele (IV) Aufgrund einer Rückrufaktion müssen alle Kunden ausfindig gemacht werden, die über eine Waschmaschine vom Typ Miele 6100 N verfügen, die im August 2007 gefertigt wurden. SELECT DISTINCT Kunde.KundenNr, Vorname, Zuname, Telefonnummer FROM Kunde,Waschmaschine, Waschmaschinentyp WHERE Kunde.KundenNr = Waschmaschine.KundenNr AND Waschmaschine.TypNr = Waschmaschinentyp.TypNr AND Bezeichnung = 'Miele 6100 N' AND Herstellungsdatum BETWEEN 01.08.2007 AND 31.08.2007 Prof. Dr. Peter Chamoni - Wirtschaftsinformatik II - Wintersemester 2008/2009 196