SQL Structured Query Language

Größe: px
Ab Seite anzeigen:

Download "SQL Structured Query Language"

Transkript

1 AKAD HOCHSCHULEN FÜR BERUFSTÄTIGE SQL Structured Query Language Beispiel Hotel Prof. Thomas Müller Seminartext für das Diplomandenseminar Wirtschaftsinformatik Alle SQL-Beispiele dieses Seminartextes wurden unter dem Datenbanksystem INTERBASE von Borland entwickelt und getestet. Die SQL-Beispiele lassen sich jedoch auch mit dem Datenbanksystem MS ACCESS von Microsoft ausführen. Sie finden die Hoteldatenbank HOTEL.MDB zum Download unter der Adresse

2 2 AKAD Diplomandenseminar Wirtschaftsinformatik Übersicht über die Seminarinhalte 1. Systemanalyse 1.1 Systembegriff 1.2 Ansätze zur Systemanalyse Konventioneller Ansatz und Kritik am Lifecycle-Konzept Prototyping 1.3 Erhebungs- und Darstellungstechniken Beobachtung, Interview Structured (System) Analysis Entscheidungstabellentechnik (mit Übungsaufgabe) 1.4 Systemimplementierung Hilfsmittel des Algorithmendesigns Graphische Darstellung von Algorithmen (Struktogramme) Stepwise Refinement 1.5 Projektplanung mit Netzplantechnik Vorgang, Ereignis, Knoten, Kanten Beispiel eines Netzplanes Übungsaufgabe Netzplantechnik 2. Datenbanksysteme 2.1 Ziele und Strategien der Datenorganisation, Datenbankbegriffe 2.2 Das relationale Datenbankmodell (RDBMS) 2.3 Einsatzbeispiel RDBMS (Hoteldatenbank) Relationenmodell und Normalisierung Selektion, Projektion und Join Weitere Anfragetypen 2.4 Semantische Datenmodelle (Entity- Relationship-Diagramm) 2.5 Übungsaufgabe Datenbanken 3. Individuelle Datenverarbeitung 3.1 Begriff und Abgrenzung 3.2 Ausgewählte IDV-Anwendungen Textverarbeitung Hypertext Groupware Tabellenkalkulation Die in der obigen Übersicht hervorgehobenen Abschnitte werden in diesem Seminartext ausführlich behandelt und vertieft. Copyright Prof. Thomas Müller, Grundhof / AKAD, 1995, 1999, 2001, 2002, 2003 Alle Rechte vorbehalten. Vervielfältigung sowie sonstige Verbreitung und Verwertung auch auszugsweise nur mit schriftlicher Genehmigung des Autors.

3 Inhaltsverzeichnis 1. Strukturierung der Daten (Normalisierung) Relationenmodell Daten in unnormalisierter Form Speichereffizienz der unnormalisierten Form durch Mengen Redundanzprobleme Anomalieprobleme Einfügeanomalien Änderungsanomalien Löschanomalien Problem der Nullwerte Normalformen von Relationen Arten der Abhängigkeit Erste Normalform (1NF) Zweite Normalform (2NF) Dritte Normalform (3NF) Integritätsbedingungen Referentielle Integrität durch Fremdschlüsselbeziehungen Weitere Integritätsbedingungen Einrichtung der Datenbank (DDL) Erfassung von Daten (DML) Anfragen an die Datenbasis (Retrieval) DML Statement SELECT Anfragetypen Selektion, Projektion und Join Operatoren in SELECT-Statements SQL-Funktionen Subqueries SQL-Klauseln ORDER BY-Klausel GROUP BY-Klausel HAVING-Klausel UNION-Klausel Verwendung von Literalen Änderung und Löschung von Daten Entwicklung von Views für die Datenbank Hinweise zu den normalisierten Relationen Literaturhinweise Stichwortverzeichnis Daten des Beispiels ER-Diagramm zum Hotelbeispiel Abbildungsverzeichnis 51 3

4 4 Strukturierung der Daten (Normalisierung) 1. Strukturierung der Daten (Normalisierung) 1.1. Relationenmodell Das hier darzustellende Relationenmodell stellt reale Sachverhalte (Daten) in tabellarischer Form dar. Zu den zu betrachtenden Sachverhalten gehören die Objekte (Entitäten, entities) mit ihren Eigenschaften (Attributen), die Beziehungen (relationship) zwischen diesen Objekten, ebenfalls mit ihren Eigenschaften (Beziehungsattribute). Entitytyp Attribute Attributwerte KdNr Name Wohnort 100 Müller Hagen AKAD Meier Pinneberg Flensburg Entities 103 Schmidt Kiel Domänen z.b.: KdNr: Name: Zeichenkette mit 40 Zeichen Abb. 1: Begriffe des Relationenmodells Jeder Sachverhalt entspricht einer Zeile (Tupel oder Entities) in einer solchen Tabelle. Eine Relation ist also eine Menge solcher Tupel. Jedes Tupel wird dabei durch eine endliche Menge gleicher Eigenschaften (Attribute) beschrieben und durch unterschiedliche Eigenschaftswerte (Attributwerte) spezifiziert. Die Attribute entsprechen dabei den Spaltenüberschriften der Tabelle, die Attributwerte den jeweiligen Eintragungen in einer Zeile. Ausgehend von einer unnormalisierten Form 1 werden die Daten durch schrittweise Zerlegung (Aufspaltung), den Normalisierungsprozess, in mehrere Relationen aufgeteilt, die den spezifischen Notwendigkeiten der betrachteten Objekte und insbesondere ihrer Beziehungen untereinander gerecht werden. Die Normalisierung der Relationen dient folgenden Zielen: 1. Vermeidung von Redundanz (mehrmaliges Festhalten ein- und desselben Sachverhaltes). 2. Vermeidung der infolge von Redundanz entstehenden Anomalien und NULL-Werte (Probleme bei der Datenmanipulation wie Einfügungen, Löschungen in bzw. Aktualisierung der Datenbasis). 3. Sicherung der Daten-Integrität (Speichern realitätskonformer Sachverhalte). 4. Einsparung von Speicherplatz. Wichtig dabei ist jedoch, dass sich aus jeder im Rahmen des Prozesses gebildeten Form der Daten (Relationen) die ursprünglich in der unnormalisierten Form vorhandene Information wieder rekon- 1 Von unnormalisierter Form spricht man, wenn alle benötigten Daten unabhängig von ihren jeweiligen Beziehungen sich in einer Tabelle befinden.

5 Strukturierung der Daten (Normalisierung) 5 struieren lässt 2 : Die Normalisierung darf also nicht zu Informationsverlusten führen. Unter Normalisierung versteht man also die verlustfreie Zerlegung einer Relation in mehrere Relationen. Dies wird dadurch erreicht, dass alle durch Teilung verlorengehenden Beziehungen durch Aufnahme der identifizierenden Eigenschaften (Primärschlüssel) in beide neuen Relationen und Aufbau von Fremd 3 - und Primärschlüsselbeziehungen bzw. -verweisen festgehalten werden. Zusätzlich erhält jede Relation im Rahmen der Normalisierung ein Schlüsselattribut, dessen Attributwert einen Tupel eindeutig identifiziert (Bedingung der Entitätsintegrität). Als Schlüssel kommen dabei entweder ein einzelnes Attribut einer Relation oder auch eine Kombination mehrerer Attribute in Betracht (zusammengesetzter Schlüssel). Einen solchen Schlüssel nennt man Primärschlüssel Daten in unnormalisierter Form Daten in unnormalisierter Form sind daran erkennbar, dass sie Attribute besitzen, die sich aus mehreren Elementen zusammensetzen (z.b. Gast mietet Zimmer mehrmals hintereinander). Daher können in der unnormalisierten Relation am Kreuzungspunkt von Spalten und Zeilen mehrere Werte (sog. Mengen) auftreten. Die Ausgangsrelation für die Datenbank Hotel, die jeweils ein Vermietverhältnis beschreibt, kann in unnormalisierter Form wie folgt abgebildet werden: R.Vermietung Name Wohnort Strasse ZiNr Art Ausst. Dauer Miete Abb. 2: Unnormalisierte Relation Vermietung Beispieldaten (Tupel) der Relation Vermietung zeigen dabei die Möglichkeit des Auftretens von Mengen in der Relation: R.Vermietung Name Wohnort Strasse ZiNr Art Ausst. Dauer Miete Müller Hagen Weg EZ DBF {1,4} Abb. 3: Unnormalisierte Relation Vermietung mit Mengen Die in dieser Tabelle beschriebenen Sachverhalte besagen, dass der Gast Müller aus Hagen zweimal das Zimmer 100 gemietet hat. Einmal betrug die Mietdauer einen, das zweite Mal vier Tage. In dieser unnormalisierten Form die nachfolgend beschriebenen Probleme auf Speichereffizienz der unnormalisierten Form durch Mengen In der Relation R.Vermietung treten Mengen auf: Im Beispiel können in der Spalte Dauer mehrere Einträge erfolgen, da ja ein Gast mehrfach hintereinander ein Zimmer mieten kann. Dies widerspricht rein formal der Forderung, dass Werte im Kreuzungspunkt von Spalten (Attributen) und Zeilen (Entities) atomar (nicht weiter zerlegbar) sein müssen 4. Darüber hinaus ist damit das Problem weiterer Kombinationen (selber Gast, selbes Zimmer, selbe Dauer) noch gar nicht angesprochen; Dies würde dazu führen, dass alle Attribute zweier Tupel identisch wären. Da unbekannt ist, wieviele Attributwerte entstehen können, müsste ein entsprechend ausreichender Speicherplatz für diese Mengen bevorratet werden. Dieser müsste bei der Speicherung eines jeden Satzes vorgesehen werden, da der Direktzugriff auf Daten jeweils zur Berechnung der Speicheradresse eine feste Satzlänge voraussetzt Man nennt diese Bedingung die Referentielle Integritätsbedingung. Vgl. dazu Seite 13. Technisch gesehen müßte hier für alle denkbaren weiteren Vermietungen an denselben Gast entsprechend Speicherplatz freigehalten bzw. bevorratet werden (vgl. AKAD-Heft Datenbanken).

6 6 Strukturierung der Daten (Normalisierung) Die gezeigten Mengen ließen sich jedoch einfach wie folgt auflösen: R.Vermietung Name Wohnort Strasse ZiNr Art Ausst. Dauer Miete Müller Hagen Weg EZ DBF Müller Hagen Weg EZ DBF Abb. 4: Auflösung von Mengen Im engeren Sinne enthält die obige Relation dennoch eine Menge: Die Ausstattungsmerkmale kennzeichnen ja eigentlich Mengen von Ausstattungsdetails wie Dusche, Bad... u.s.w.. Genau genommen müssten auch diese Werte zerlegt werden und für jedes Ausstattungsmerkmal ein neues Attribut in die Relation aufgenommen werden. Erkennbar ist diese Eigenschaft auch an der entsprechend notwendigen Formulierung zum Auffinden eines Tupels mit dem Merkmal D wie Dusche: Hier ist ein Auffinden nur unter Formulierung einer SELECT...WHERE Ausstattung like '%D%' möglich, einer Selektion, die unterhalb der eigentlichen relationalen Abfrageebene liegt. Damit wären die Ausstattungswerte nicht mehr atomar und würden so den Grundsätzen der Normalformen nicht entsprechen. In unserem Beispiel betrachten wir jedoch alle Einträge der Art DBFT, DFT,... als unteilbare Menge, die im Bereich der Domäne ( = Wertebereich) von Ausstattung liegen Redundanzprobleme Redundanzprobleme ergeben sich durch mehrfache Speicherung ein- und derselben Sachverhaltes an unterschiedlichen Stellen (Spalten) der unnormalisierten Relation. Sofern ein Gast mehrmals die Dienste unseres Hotels in Anspruch nimmt (s. Abb. 4), sind alle Gastattribute zu wiederholen. Bei jeder erneuten Vermietung eines Zimmers sind alle Attribute des Zimmers zu wiederholen. In der Abb. 4 wären also sowohl die Gastattribute Wohnort und Strasse als auch die Zimmerattribute Art, Ausstattung und Miete redundant. Redundanz zieht nicht nur einen erhöhten Speicherbedarf nach sich, sondern führt auch zu weiteren Probleme im Zusammenhang mit den grundlegenden Speicheroperationen des Einfügens, Löschens und Änderns. Bei vorliegender Datenstruktur können durch diese Operationen Anomalien entstehen, die dazu führen, dass der reale Sachverhalt nicht mehr korrekt abgebildet wird. Schließlich treten bei Redundanz auch oftmals unbestimmte (Null-) Werte auf Anomalieprobleme Einfügeanomalien Auch das Einfügen nicht realitätskonformer Sachverhalte führt zur Inkonsistenz der Datenbasis. So stellt in vorstehender Relation der folgende Einschub keine Verletzung des Relationenprinzips dar: R.Vermietung Name Wohnort Strasse ZiNr Art Ausst. Dauer Miete Müller Hagen Weg DZ DBFR Meier Grundhof Turmweg EZ DBFT Abb. 5: Inkonsistenzen durch Einfügeanomalien Die Einfügung des Tupels (Meier, Grundhof, Turmweg 7, 110, DZ, DBFT) führt zur Abbildung des realitätsfremden Sachverhalts, dass das Zimmer 110 sowohl ein Einzel- als auch ein Doppelzimmer sein kann.

7 Strukturierung der Daten (Normalisierung) Änderungsanomalien Ändern sich die Ausstattungsmerkmale eines Zimmers (z.b. Zimmer 100 hat nun die Ausstattung Dusche/Bad/Fernsehen/Telefon = DBFT), so wäre sicherzustellen, dass in allen Tupeln (Zeilen) der Relation die Änderungen vorgenommen werden. Werden die Preise für Einzelzimmer (EZ) bspw. generell um 10 % erhöht, so sind diese Änderungen an allen betroffenen Tupeln vorzunehmen. Andernfalls wird die Datenbasis inkonsistent, da sie Widersprüche beinhaltet. Z.B. kostet das Zimmer 100 für Herrn Müller aus Hagen dann 60.00, für Herrn Müller aus Pinneberg jedoch Zieht bspw. ein Gast um (von Hagen nach Flensburg), so wäre auch hier eine mehrfache Änderung der Daten (alle Tupel von Müller aus Hagen) erforderlich. Ein Unterlassen der Änderungen in einigen Tupeln würde zur Inkonsistenz der Datenbasis führen. R.Vermietung Name Wohnort Strasse ZiNr Art Ausst. Dauer Miete Müller Flensburg Aue EZ DBF Müller Hagen Weg EZ DBFT Abb. 6: Inkonsistenzen durch Änderungsanomalien Löschanomalien Diese entstehen beim Entfernen von Informationen aus der Datenbasis. Storniert z.b. Herr Meier aus Grundhof eine Zimmerreservierung für ein neues Zimmer, so sind mit der Stornierung gleichfalls alle Zimmerattribute verloren, sofern sie nicht "zufällig" in einem anderen Tupel auftreten. Zugleich ist auch die Adresse des Gastes (sofern er zum ersten Mal bei uns als Gast auftritt) nicht mehr bspw. für Werbeaktionen verfügbar. R.Vermietung Name Wohnort Strasse ZiNr Art Ausst. Dauer Miete Meier Grundhof Hof EZ DBFR Müller Hagen Weg EZ DBFT Abb. 7: Inkonsistenzen durch Löschanomalien Letztendlich dient die Vermeidung von Anomalien der Sicherstellung der Integrität der Datenbasis. So muss z.b. sichergestellt sein, dass bei Löschungen z.b. aller Vermietverhältnisse mit dem Gast Müller nicht auch zugleich ein Zimmer vollständig gelöscht wird oder dass z.b. bei Löschung eines Gastes alle noch nicht abgerechneten Leistungen erhalten bleiben. Die Sicherung der (referentiellen) Integrität wird von unterschiedlichen DBMS mehr oder weniger unterstützt. So kann es sinnvoll sein, im Rahmen der Implementierung einer Anwendung zu definieren, was bei der Löschung von Gästen mit noch offenen Rechnungen (z.b. definiert durch bestehende Fremdschlüsselbeziehung 5 zur Tabelle Rechnung) passieren soll. Im wesentlichen lassen sich hier drei Optionen anführen: Abweisung des Löschauftrages Löschung aller Vermietverhältnisse Löschung der Beziehung Abb. 8: Optionen des DELETE-Kommando RESTRICT CASCADE NULLIFY Zur Vermeidung von Redundanz und in deren Folge entstehenden Anomalieproblemen ist die bisherige Relation R.Vermietung weiter zu zerlegen. Prinzipiell werden dabei die durch die Zerlegung einer 5 Vgl. dazu Seite 13.

8 8 Strukturierung der Daten (Normalisierung) Relation verlorengehenden Beziehungen durch verknüpfte Primärschlüssel (gleiche Spalten in unterschiedlichen Relationen) festgehalten (Sicherstellung der Integrität) Problem der Nullwerte Bei näherer Betrachtung der obigen Relation sind folgende Probleme ersichtlich: Soll in die obige Relation R.Vermietung ein neues Zimmer eingefügt werden, das gerade fertiggestellt wurde, so ergibt sich das Problem der Null-Werte. Null-Werte können dabei als unbekannte oder auch als nicht zutreffende Werte aufgefasst werden. Da evtl. noch kein Gast für das Zimmer vorhanden ist, müssten in die Tabelle für alle Gastattribute NULL-Werte eingetragen werden. Desgleichen müssten z.b. bei telefonischen Bestellungen, denen nicht sofort ein Zimmer zugeordnet werden kann (oder denen mehrere mögliche Zimmer zugeordnet werden könnten) ebenfalls NULL-Werte für die Zimmerattribute Verwendung finden. Dabei entsteht das Problem der Selektion nach diesen Werten: Beim Suchen, Ändern oder Löschen kann nur noch nach dem Kriterium "Ist Null" oder "Ist nicht Null" selektiert werden. R.Vermietung Name Wohnort Strasse ZiNr Art Ausst. Dauer Miete Müller Hagen Weg 1 NULL NULL NULL NULL NULL NULL NULL NULL 110 EZ DBFT NULL Abb. 9: Beispieldatensätze mit NULL-Werten Im Rahmen des Normalisierungsprozesses, der zur Vermeidung von Anomalie- und Nullwertproblemen durchgeführt wird, werden in der Praxis drei Normalformen unterschieden, die nachfolgend anhand unseres Beispiels erläutert werden Normalformen von Relationen Arten der Abhängigkeit Zum besseren Verständnis der Definitionen sei hier zunächst der Begriff der Abhängigkeit definiert. Dabei geht es immer um die Abhängigkeiten zwischen solchen Attributen, die ein Entity eindeutig und vollständig beschreiben (sog. Schlüsselkandidaten bzw. Schlüsselattribute) und solchen, die diese Eigenschaft nicht aufweisen (sog. Nichtschlüsselattribute). Funktionale Abhängigkeit: Funktional abhängig sind Attribute einer Relation, die sich nicht unabhängig voneinander ändern können. Funktionale Abhängigkeit impliziert also, dass zu jedem unabhängigen Attribut 1 genau ein Wert des abhängigen Attributes 2 gehört. Aus der Kenntnis des Wertes des Attributes 1 kann also der Wert des Attributs 2 abgeleitet werden. Sei S ein Schlüsselattribut der Relation R(S,A) und A ein weiteres (Nichtschlüssel-) Attribut der Relation: Dann gilt A als funktional abhängig von S, wenn genau zu jedem Wert von S exakt ein Wert von A gehört: R.Funktional S (Kfz-Fahrgestellnummer) WX RDT-3456-W A (Halter) Müller, Thomas Müller, Sylvia Abb. 10: Beispiel Funktionale Abhängigkeiten Volle funktionale Abhängigkeit: Voll funktional abhängig sind Attribute einer Relation immer dann, wenn mit einer bestimmten Wertekombination zweier oder mehrerer unabhängiger Attribute genau 1 Wert des abhängigen Attributes einhergeht. Volle funktionale Abhängigkeit impliziert also die Abhängigkeit eines Attributes von einer Attributskombination.

9 Strukturierung der Daten (Normalisierung) 9 Seien S1 und S2 ein zusammengesetzter Schlüssel der Relation R(S1, S2, A), dann gilt A als voll funktional abhängig, wenn zu jeder zulässigen Wertekombination von S1 und S2 genau 1 Wert des Attributes A gehört. R.Voll Funktional S1 (Model) S2 (Typ) A (Preis) Mazda 626 Fließheck ,00 Mazda 626 Kombi ,00 Abb. 11: Beispiel Voll funktionale Abhängigkeiten Transitive Abhängigkeit: Transitive Abhängigkeiten beschreiben indirekte Abhängigkeiten zwischen Nichtschlüsselattributen. Sei S1 ein Schlüssel der Relation R(S1, A, B), dann gilt B als transitiv abhängig, wenn A von S1, S1 aber nicht von A funktional abhängt, B jedoch von A funktional abhängig ist. Im Beispiel ist Halter und Wohnort von der Fahrgestellnummer funktional abhängig (nicht aber umgekehrt, da eine Person mehrere Kfz halten kann). Dagegen ist das Bundesland nicht von der Fahrgestellnummer, sondern vom Wohnort funktional abhängig. R.Transitiv S (Kfz-Fahrgestellnummer) Halter B (Bundesland) A (Wohnort) WX-4576 Müller, Thomas Schleswig-Holstein Grundhof 4456-RDT-3456-W Müller, Sylvia Hessen Frankfurt Abb. 12: Beispiel Transitive Abhängigkeiten Erste Normalform (1NF) An die erste Normalform sind die folgenden Bedingungen geknüpft: Die Attribute dürfen nur einfache Werte aufweisen, d.h., sie müssen atomar (nicht weiter zerlegbar) sein. Am Kreuzungspunkt von Spalten und Zeilen darf höchstens ein skalarer Wert stehen. Jede Relation erhält einen eindeutigen Schlüssel oder eine eindeutige Schlüsselkombination (Primärschlüssel), der das Tupel eindeutig identifiziert. D.h., es gibt keinen zweiten Tupel mit dem selbem Primärschlüssel, der eine andere Attributskombination beschreibt. Die Forderungen der 1NF können durch Aufspaltung der Relation R.Vermietung in 2 neue Relationen erfüllt werden (Primärschlüssel sind doppelt unterstrichen): R.Gast Name Wohnort Strasse R.Vermietung Name ZiNr Art Ausst. Dauer Miete Abb. 13: Neue Relationen Gast und Vermietung zur Erreichung der 1 NF Als Primärschlüssel wurde hier der Name des Gastes und - in der Relation R.Vermietung - zusätzlich die Zimmernummer gewählt. Verlorengehende Beziehungen zu übergeordneten Relationen werden durch Übernahme des/der Primärschlüssel/-kombination (hier Name) erhalten. Dies führt jedoch in unserem Beispiel zu folgenden Problemen: 1. Da ein Primärschlüsselattribut eine Relation eindeutig und vollständig beschreiben soll und er damit ein eindeutiges Identifizierungsmerkmal darstellt, scheint der Name allein dafür nicht geeignet. Zwei Gäste mit dem Namen Müller wären dadurch nicht voneinander zu unterscheiden. Denkbar wäre eine Kombination aus Name und Wohnort (zusammengesetzter Schlüssel); je-

10 10 Strukturierung der Daten (Normalisierung) doch könnten auch hier offensichtlich Probleme entstehen (2 Gäste Müller aus Frankfurt sind leicht vorstellbar). Dies könnte Veranlassung geben, auch den Straßennamen in den Schlüssel aufzunehmen. Es entstünde dadurch jedoch die ursprünglich zerlegte Relation. 2. Wesentlich vereinfachen lässt sich die Aufspaltung von Relationen jedoch durch die Einführung eines "künstlichen" Schlüssels, der die Unterscheidung einzelner Entities durch ein Attribut ermöglicht und damit erheblich verkürzt und vereinfacht. Eine solche Möglichkeit bietet z.b. die Einführung einer eindeutigen Kundennummer (KdNr). Diese wird nur je einmal für einen ganz bestimmten Gast vergeben und unterscheidet Gäste voneinander. Erst dann ist es möglich, Gäste mit gleichem Namen, Wohnort und Strasse (Zweifamilienhaus mit Vater und Sohn) zu unterscheiden. 3. Die Verbindung zwischen den aufgeteilten Relationen lässt sich dann ebenfalls mit nur einer Spalte in der zweiten Relation abbilden. 4. Die Definition von Primärschlüsseln in der Datenbank setzt zugleich rein technisch gesehen voraus, dass diese Werte nicht wiederholt auftreten können (UNIQUE-Klausel). Bei der Wahl der Schlüsselkombination Name, Wohnort, Strasse ist dies jedoch wie gezeigt nicht immer sicherzustellen. Daraus ergibt sich eine verbesserte Aufteilung der Ursprungsrelation in die neuen Relationen R.Gast KdNr Name Wohnort Strasse R.Vermietung KdNr ZiNr Art Ausst. Dauer Miete Abb. 14: Verbesserung der 1NF durch künstlichen Schlüssel Kundennummer (KdNr) Die Redundanz- und Anomalieprobleme für Gastdaten wurden damit entfernt: Jede erneute Vermietung an einen Gast, der bereits einmal da war, würde nur zu einem neuen Datensatz in der Vermietung mit der entsprechenden (vorhandenen) Kundennummer führen. Die Gastattribute treten nun nur noch einmalig in der Relation Gast auf. Die durch die Aufteilung verlorene Beziehung (Gast Müller hat Einzelzimmer 100 mit der Ausstattung DBF zu einem Preis von gemietet) wird über die Aufnahme des Primärschlüssels Kundennummer in die Relation Vermietung erhalten. Betrachtet man die Relation Vermietung genauer, so bleibt festzustellen, dass auch hier ein Teil der geschilderten Anomalie- und Redundanzprobleme fortbestehen. Wird ein Zimmer gelöscht, so lassen sich die Vermietverhältnisse nicht rekonstruieren (Löschanomalie). Art und Ausstattung der Zimmer können durch Änderungen bei gleicher Zimmernummer verschieden sein (Änderungsanomalie). Gibt es für ein Zimmer keine offene Rechnung, d.h., keinen Eintrag in der Relation Vermietung mehr, sind die Zimmerinformationen endgültig verloren (Löschanomalie). Auch tritt weiterhin das Problem der NULL-Werte auf (Neues Zimmer ohne Vermietung). Diese Überlegungen führen zur Bildung der 2. Normalform (2NF) einer Relation Zweite Normalform (2NF) Allgemein lässt sich formulieren, dass sich eine Relation in der 2. Normalform (2NF) befindet, wenn sie sich in der ersten Normalform befindet und zur Beschreibung der Abhängigkeit vom Primärschlüssel für jedes Nicht-Primärschlüsselattribut alle Attribute des Primärschlüssels und nicht nur Teile davon gehören (volle funktionale Abhängigkeit der Nichtschlüssel von den Schlüsselattributen). Daraus ergibt sich, dass die 2NF nur bei Vorliegen zusammengesetzter Primärschlüssel (wie im Falle der Relation Zimmer) relevant wird. Relationen mit nur einem Primärschlüsselattribut sind automatisch bei Vorliegen der 1NF auch und der Form der 2NF. Die Relation Vermietung widerspricht dieser Forderung, da sich hier die Attribute Art, Ausstattung und Miete bereits aus dem Primärschlüssel Zimmernummer ergeben; Die Kundennummer ist dafür nicht erforderlich. Dies trifft jedoch nicht für die Mietdauer zu: Diese ist vom Gesamtschlüssel (Kundenund Zimmernummer) abhängig.

11 Strukturierung der Daten (Normalisierung) 11 Daher ist die Relation erneut aufzuteilen. Aus der Relation Vermietung ergeben sich nun die beiden neuen Relationen R.Zimmer ZiNr Art Ausst. Miete Abb. 15: Relation Zimmer in 2NF R.Vermietung ZiNr KdNr Dauer Abb. 16: Neue Relation Vermietung Die Relation Vermietung birgt jedoch einen Nachteil in sich: Da die Attribute Kundennummer und Zimmernummer als Primärschlüsselkombination jeweils nur einmal eine ganz bestimmte Attributkombination erlauben, wird es hier nicht möglich sein, die zweimalige Vermietung ein- und demselben Zimmers an ein- und denselben Gast historisch abzubilden. Darin zeigt sich eine gewisse Schwäche des Relationenmodells schlechthin: sollen Historien abgebildet werden, müsste für diese Relation ein neuer Schlüssel gefunden werden. Vorstellbar wäre hier die Aufnahme des Vermietdatums in den Primärschlüssel, da ja ein Zimmer nicht am gleichen Tag doppelt vermietet sein kann oder auch die Vergabe einer Ereignisnummer wie Buchungsnummer. Soll jedoch nicht eine Historie, sondern der jeweilige Zustand (im Sinne eines Platzbuchungssystems) abgebildet werden, so ergeben sich hier keine Nachteile: Ein- und dasselbe Zimmer kann ja nicht zur gleichen Zeit zweimal vermietet sein. Die Belegung des Zimmers wird erst wieder möglich, wenn es frei gegeben wurde (durch Löschung der Vermietung). In unserem Beispiel soll jedoch die Historie (zur Speicherung aller offenen Posten) abbildbar sein. Ohne Einführung eines "künstlichen" Schlüssels und unter Verzicht auf einen Primärschlüssel entstünden die folgenden Relationen, die jedoch eine Verletzung der Entitätsintegrität darstellen. R.Vermietung ZiNr KdNr Dauer Abb. 17: Relation Vermietung ohne Primärschlüssel (Struktur) Diese Vorgehensweise erlaubt nun auch die Abbildung gleicher Attributskombinationen: R.Vermietung KdNr ZiNr Dauer Abb. 18: Relation Vermietung ohne Primärschlüssel (Daten) Aus obiger Tabelle wird zugleich deutlich, dass diese Vorgehensweise erhebliche Nachteile mit sich führt: Bei allen Datenbankoperationen auf diese Tabelle wäre Zeile 1 nicht mehr von Zeile 3 zu unterscheiden. D.h., Löschungen, Änderungen oder Selektionen würden immer beide Zeilen zugleich betreffen, da hier kein eindeutiges Unterscheidungsmerkmal vorhanden ist. Daher fügen wir auch in diese Relation einen künstlichen Schlüssel ein, dessen einzige Aufgabe es ist, die Tupel eindeutig voneinander zu unterscheiden. Es wird hier die Einführung einer Buchungsnummer (BuNr) als Primärschlüssel vorgeschlagen. Damit ist zugleich einer grundsätzlichen Forderung des Datenbankentwurfs Rechnung getragen: Jede Relation verfügt über einen Primärschlüssel (Bedingung der Entitätsintegrität).

12 12 Strukturierung der Daten (Normalisierung) Aus den genannten Gründen ergibt sich folgende neue Relation Vermietung: R.Vermietung BuNr ZiNr KdNr Dauer Abb. 19: Primärschlüssel Buchungsnummer in der Relation Vermietung Dritte Normalform (3NF) Die Forderung der 3. Normalform (3NF) betrifft die direkte Abhängigkeit aller Nichtschlüssel- vom Schlüsselattribut. Eine Relation befindet sich in der 3NF, wenn sie sich in der 2NF befindet und alle Nichtschlüsselattribute direkt vom Primärschlüssel abhängen. Das heißt, dass alle Nichtschlüsselattribute wechselseitig voneinander unabhängig sind und damit auch keine indirekten Abhängigkeiten (Transitivität) der Nichtschlüsselattribute untereinander bestehen. Die Relation Zimmer des Beispiels weist eine solche indirekte Abhängigkeit auf: Die Zimmermiete wird in unserem Beispiel zunächst direkt von der Ausstattung bestimmt, nicht jedoch vom Primärschlüssel Zimmernummer. Daher ist hier die Miete in eine neue Relation Preis auszugliedern, was zu folgenden neuen Relationen führen würde: R.Preis Ausst. Miete Abb. 20: Neue Relation Preis R.Zimmer ZiNr Art Ausst. Abb. 21: Relation Zimmer in 3NF Andererseits ist die Abhängigkeit des Preises nur von der Ausstattung in unserem Beispiel nicht realitätsnah: Zusätzlich müsste noch die Art des Zimmers in der Miete berücksichtigt werden (Doppelzimmer mit DBF teurer als Einzelzimmer mit DBF). Daher ist in die Preisrelation die Art als Schlüssel mit aufzunehmen, was zu einem zusammengesetzten Schlüssel führt: R.Preis Art Ausst. Miete R.Zimmer ZiNr Art Ausst. Abb. 22: Verbesserte Relationen Preis und Zimmer in 3NF In diesem Beispiel ist zugleich ersichtlich, dass die Redundanz der Primärschlüssel sehr stark ansteigt. Damit steigt z.b. zugleich der Aufwand bei einer entsprechenden Abfrage der Tabellen (z.b. SELECT ZiNr, Zimmer.Ausstattung, Zimmer.Art, Miete FROM Zimmer, Preis WHERE Zimmer.Ausstattung = Preis.Ausstattung AND Zimmer.Art = Preis.Art) 6. Bei weiterer Prüfung der Relationen zeigt sich, dass nun durch Einfügen, Ändern und Löschen keine Anomalien mehr erzeugt werden können. Daher wurde die 3. Normalform erreicht. Ein letztes Problem besteht allerdings noch bezüglich solcher Attributwerte, die sich zum Zwecke der Verbindung der Relationen untereinander in einer weiteren Relationen befinden. Für alle diese Werte muss gelten: Es muss ein entsprechender Wert in der anderen Relation existieren. Folgende zwei Beispiele mögen den Zusammenhang erhellen: 6 Vgl. dazu Kapitel Anfragen an die Datenbasis (Retrieval) auf Seite 24.

13 Strukturierung der Daten (Normalisierung) Niemals darf in der Relation Vermietung eine Kundennummer existieren, für die sich in der Relation Gast nicht ein entsprechender Wert finden lässt. Der Adressat einer Rechnung ließe sich nicht ermitteln. 2. Niemals darf sich in der Relation Vermietung ein Zimmer befinden, das nicht in der Relation Zimmer existiert. Art und Ausstattung würden damit nicht feststellbar sein, womit auch eine Preisermittlung unmöglich wäre. Man nennt diese Bedingungen auch die Bedingungen zur Sicherung der referentiellen Integrität. Ein mögliches Instrument zur Sicherung der referentiellen Integrität, das von den meisten Datenbanksystemen unterstützt wird, ist die Möglichkeit zur Formulierung von Fremdschlüsselbeziehungen Integritätsbedingungen Referentielle Integrität durch Fremdschlüsselbeziehungen Fremdschlüsselbeziehungen erleichtern die Erhaltung der Integrität, insbesondere der referentiellen Integrität, einer Datenbank. Ein Fremdschlüssel ist ein Attribut, dass in einer anderen Relation ein Primärschlüsselattribut ist. Zwischen beiden baut das DBMS eine besondere Beziehung auf, die sicherstellt, dass zu jeder Zeit für alle Fremdschlüsselattribute ein entsprechendes Primärschlüsselattribut gefunden wird. Dies ist bei allen Verbunden 8 von Tabellen relevant. Beispiel: Gegeben sei folgendes, leicht verkürzte Relationenschema: R.Vermietung (BuNr, KdNr, ZiNr, Dauer) R.Gast (KdNr, Name, Wohnort, Strasse); R.Zimmer (ZiNr, Ausstattung, Ausstattung); Ohne Formulierung von Fremdschlüsselbeziehungen wären folgende Einschübe in die Relationen möglich, die eine Rekonstruktion der Gesamtinformation nicht mehr ermöglichen würden: Einfügen/Ändern einer KdNr in Vermietung, für die in R.Gast kein Datensatz/kein Entity existiert. Einfügen/Ändern einer ZiNr in Vermietung, für die in R.Zimmer kein Datensatz existieren. Löschen eines Zimmers/Gastes, für das in Relation Vermietung eine (vielleicht noch nicht abgerechnete) Vermietung verzeichnet ist; Es wäre bei Rechnungsstellung kein Zimmer und damit auch kein Preis bestimmbar bzw. kein Rechnungsadressat mehr vorhanden. Im obigen Beispiel wäre es also sinnvoll, zwischen der Relation Gast bzw. der Relation Zimmer und der Relation Vermietung eine Fremdschlüsselbeziehung aufzubauen. Die Fremdschlüsselattribute sind die, die in beiden Relationen enthalten sind und in der referenzierten Relation Primärschlüsseleigenschaft haben. In den referenzierenden Relationen sind diese Attribute die Fremdschlüsselattribute: Relation Primärschlüssel Fremdschlüssel referenzierte Relationen Gast KdNr - - Zimmer ZiNr Art, Ausstattung Preis Vermietung BuNr KdNr, ZiNr Gast, Zimmer Preis Art, Ausstattung - - Abb. 23: Primär- und Fremdschlüssel des Relationenschemas Hotel Die Formulierung von Fremdschlüsselbeziehungen sorgt dafür, dass zu einer Vermietung immer und zu jeder Zeit ein Gast in der Relation Gast und ein Zimmer in der Relation Zimmer gefunden wird (referentielle Integritätsbedingung), da sie zur Folge hat, dass Änderungen/Einfügungen/Löschungen, die die Integrität zerstören würden, i.d.r. zurückgewiesen würden oder zumindest die korrekte Rei- 7 8 Eine Alternative dazu stellt die Verwendung von Datenbank-Triggern da, die die Einhaltung der beschriebenen Regeln überwachen. Ein Verbund selektiert Daten aus mehreren Tabellen und wird auch als Join bezeichnet.

14 14 Strukturierung der Daten (Normalisierung) henfolge der Operationen einzuhalten wäre. Gleiches gilt für die Beziehungen zwischen Zimmer und Preis. Folgende Tabelle zeigt, welche Operationen auf mit Fremdschlüsselbeziehungen versehene Tabellen erlaubt bzw. abgewiesen werden. Dabei ist beispielsweise Vermietung die referenzierende, Gast bzw. Zimmer die referenzierte Relation, d.h., Vermietung.KdNr referenziert Gast.KdNr und Vermietung.ZiNr referenziert Zimmer.ZiNr. Gleiches gilt für Zimmer (referenzierende) und Preis (referenzierte Relation). Dabei wird die Option RESTRICT unterstellt. Operation Granularität 9 Vermietung Gast Zimmer Preis INSERT Tupel erlaubt, wenn in Gast ein Entity mit KdNr und in Zimmer ein Entity mit ZiNr vorhanden ist, sonst wird abgewiesen erlaubt, z.b. neuer Gast DELETE Tupel erlaubt erlaubt, wenn in Vermietung kein Gast mit dieser KdNr mehr existiert, sonst wird abgewiesen UPDATE Nichtschlüsselattribut Primärschlüsselattribut wird abgewiesen wird abgewiesen Fremdschlüsselattribut erlaubt, z.b. Dauer erlaubt, z.b. Wohnort erlaubt, wenn in Gast ein Entity mit KdNr und in Zimmer ein Entity mit ZiNr vorhanden ist, sonst wird abgewiesen nicht vorhanden Abb. 24: Operationentableau bei Fremdschlüsselbeziehungen erlaubt, wenn die beschriebene Art/ Ausstattung in der Relation Preis enthalten ist, sonst wird abgewiesen erlaubt, wenn in Vermietung kein Zimmer mit dieser ZiNr mehr existiert, sonst wird abgewiesen nicht vorhanden erlaubt, z.b. neue Art/Ausstattungskombination mit einem Preis erlaubt, wenn in Zimmer kein Tupel mehr mit der entsprechenden Art/Ausstattung existiert, sonst wird abgewiesen erlaubt, z.b. Miete wird abgewiesen wird abgewiesen erlaubt, wenn die geänderte Art/ Ausstattung in der Relation Preis enthalten ist, sonst wird abgewiesen nicht vorhanden Daraus, dass eine Operation abgewiesen wird, ist jedoch nicht endgültig zu schließen, dass diese Operation überhaupt nicht möglich wäre: Entscheidend ist - wie beim Einfügen auch (s. Kapitel 3: Erfassung der Daten) bereits verdeutlicht - die Reihenfolge der Operationen und die bei der Einrichtung der Relationen vereinbarten Optionen von Update/Delete, die RESTRICT, CASCADE oder NULLIFY sein können. INSERT in eine referenzierende Relation (z.b. Vermietung) erfordert erst das Einfügen der/des entsprechenden Tupels in der/die referenzierten Tabelle/n (Gast und Zimmer); m.a.w. ist zuerst ein Gast mit der entsprechenden KdNr und (es handelt sich ja hier um eine zusammengesetzte Fremdschlüsselbeziehungen) ein Zimmer mit der entsprechenden ZiNr einzufügen, dann kann in Vermietung das Tupel mit der entsprechenden KdNr und ZiNr (für die dann ja Werte in Gast.KdNr und Zimmer.ZiNr gefunden werden) eingefügt werden. 9 Granularität = kleinste, mit einer Datenbankoperation erreichbare Attributmenge. Man unterscheidet dabei einmal die Zeile (z.b. Löschen mindestens einer Zeile, nicht aber eines Attributes) und den Attributwert (z.b. Ändern nur eines Attributwertes, die übrigen Attributwerte bleiben unverändert).

15 Strukturierung der Daten (Normalisierung) 15 DELETE in einer referenzierten Relation (Gast und Zimmer) erfordert erst das Löschen der/des entsprechenden Tupels in der/den referenzierenden Relation/en (Vermietung); m.a.w. ist bspw. zuerst die Vermietung mit der entsprechenden KdNr/ZiNr-Kombination zu löschen; erst dann kann der Gast mit der entsprechenden KdNr und (es handelt sich ja hier um eine zusammengesetzte Fremdschlüsselbeziehungen) das Zimmer mit der entsprechenden ZiNr gelöscht werden. Andernfalls würde ja auch bspw. eine Rechnung für eine Vermietung keine Gastadresse mehr finden. UPDATE erfordert dagegen eine differenzierte Betrachtung: Zum einen könnte man die Änderung des Wertes eines Primärschlüsselattributes, zum anderen auch die eines Nichtschlüsselattributs und drittens auch die eines Fremdschlüsselattributs vornehmen wollen. Die Änderung des Wertes eines Nichtschlüsselattributes in referenzierender und referenzierter Relation (z.b. Vermietung.Dauer und Zimmer.Art oder Gast.Name) stellt uns vor keine Probleme, da die Fremdschlüsselbeziehungen dadurch nicht berührt werden. Die Änderung eines Primärschlüsselattributwertes wird in der/den referenzierten Relation/en (Gast/Zimmer) auf jeden Fall abgewiesen, da sich - wie beim Ändern - ein Informationsverlust einstellen würde (nicht für alle Tupel in der referenzierenden Relation (Vermietungen) würde dann ein Gast/Zimmer in der/den referenzierten Relation/en (Gast/Zimmer) gefunden. Gleiches gilt für die Primärschlüsselattribute der referenzierenden Relation/en (Vermietung). In diesem Falle wäre nur ein Löschen und ein anschließendes Einfügen (in der jeweils oben beschriebenen Reihenfolge) möglich. Für den Wert eines Fremdschlüsselattributs in der (ja nur dort vorkommenden) referenzierenden Relation (Vermietung) ist in den oben genannten Grenzen (KdNr und ZiNr müssen in Gast/Zimmer vorhanden sein) eine Änderung möglich: eine in Gast vorhandener KdNr kann ja jederzeit ein in Zimmer vorhandene ZiNr buchen; da jedoch hier die Fremd- zugleich auch die Primärschlüsselkombination der Relation Vermietung ist, scheitert dies an der Nichtänderbarkeit der Primärschlüssel (s.o.)! Zu lösen wäre dieses Problem, wenn in Vermietung eine fortlaufende Buchungsnummer (BuNr) als Primärschlüsselattribut eingefügt würde (wie dies ja bereits geschehen ist) und die Primärschlüsseleigenschaft der Attribute KdNr sowie ZiNr in Vermietung aufgehoben würden. Dann wäre hier eine Änderung von Vermietung.KdNr und Vermietung.ZiNr möglich Weitere Integritätsbedingungen Im Rahmen der Entwicklung des obigen Datenbankschemas wurde bisher auf die Bedeutung der referentiellen Integrität sowie die der Entitätsintegrität hingewiesen. Neben diesen ist darüber hinaus auch die benutzerdefinierte Integrität von Bedeutung. Im Rahmen der Sicherstellung der benutzerdefinierten Integrität ist es oft wünschenswert, die Einhaltung von Werten einer Domäne (Wertebereich) sicherzustellen, um "unsinnige" Eingaben zu verhindern. Eine solche Sicherung könnte auf unterschiedliche Art und Weise bewirkt werden: Zum einen sind zu verschiedenen Datenbanken Werkzeugprogramme (TOOLS) erhältlich, die über solche Sicherungsmechanismen verfügen (z.b. SQL-Forms für das DB-System ORACLE). Weiterhin könnten über die Verwendung von Views (s. unten) unter Einsatz der CHECK OPTION Wertebereiche eingegrenzt werden (sog. Constraints). Sofern solche Mechanismen jedoch in dem verwendeten Datenbanksystem nicht implementiert sind, hilft oft der "Umweg" über die Nutzung der Instrumente zur Sicherstellung der referentiellen Integrität. Ein Beispiel mag den Zusammenhang erhellen: Nehmen wir an, unsere Relation Gast sollte für die Zwecke der Serienbrieferstellung ein zusätzliches Attribut Anrede erhalten: m für männlich (Anrede: Herrn), w für weiblich (Anrede: Frau) und f für Firma (Anrede: keine spezielle). Bei der Erfassung neuer Gäste kann es nun vorkommen, dass dem Erfasser der Daten die Kürzel nicht präsent sind. Er könnte bspw. für männlich H (Anrede: Herrn) und für weiblich F (Anrede: Frau) eingeben. Bei entsprechender Selektion durch ein Textverarbeitungssystem, das Serienbriefanschriften aus unserer Datenbank entnimmt, könnten die Tupel, die mit H oder F gekennzeichnet sind, nicht korrekt verarbeitet werden, da die Tupel ja nach Anrede=m oder Anrede=w oder Anrede=f selektiert würden. Zur Lösung eines solchen (oder ähnlichen Problems) könnte man eine zusätzliche Relation Floskel in die Datenbank aufnehmen. Diese weist einen Grad von 1 auf (d.h., sie hat genau 1 Attribut, das wir Bezeichnung nennen wollen). Wir nehmen dazu genau 3 Tupel (Kardinalität der Relation ist dann 3) in die Relation auf: Nämlich die Werte "m", "w" und "f" (für Herrn/ Frau/Firma). Was haben wir nun erreicht? Wenn wir zwischen dem Attribut Gast.Anrede und dem Attribut Floskel.Bezeichnung eine Fremdschlüsselbeziehung aufbauen (Gast.Anrede referenziert Floskel.Bezeichnung), so wird die Aufnahme einer Anrede bei der Erfassung des neuen Gastes, deren Wert nicht in Flos-

16 16 Strukturierung der Daten (Normalisierung) kel.bezeichnung enthalten ist, abgewiesen. Es kann somit nicht zu einer falschen Erfassung von Werten für die Anrede kommen. Das geschilderte Problem erscheint relativ trivial. Ein ähnliches Problem jedoch könnte die Erfassung von Rechtsformen gespeicherter Unternehmen sein. Wer will dann aber noch zwischen den (identischen) Rechtsformen "GmbH +.CO" bzw. "GmbH & CO" oder auch "GmbH & CO.KG" bei einer Selektion nach Rechtsformen unterscheiden? Insgesamt ergeben sich folgende Relationen, die nun unmittelbar in die Datenbanksprache SQL umgesetzt werden können. Die Relationennamen entsprechen den Tabellennamen, die Attributbezeichnungen den der Spaltennamen der Datenbank. Primärschlüssel sind doppelt, Fremdschlüsselbeziehungen einfach unterstrichen: R.Gast (KdNr, Name, Wohnort, Strasse) R.Zimmer (ZiNr, Ausstattung, Art ) R.Preis R.Vermietung (Ausstattung, Art, Miete) (BuNr, KdNr, ZiNr, Dauer) Abb. 25: Relationenschema zur Datenbank Hotel mit Primär- und Fremdschlüsseln Ungelöst ist allerdings noch das Problem der Postleitzahlen. Soll die Adresse um eine Postleitzahl ergänzt werden, müsste genau genommen zusätzlich die Relation PLZ R.PLZ (Ort, PLZ) Abb. 26: Ergänzungen zum Relationenschema Hotel als eigenständige Relation errichtet werden. Andernfalls würde - bei Aufnahme der PLZ in die Relation Gast - die Forderung der 3NF (Nicht-Transitivität, d.h., keine wechselseitige Abhängigkeit der Nichtschlüsselattribute) nicht erfüllt: Die PLZ ist funktional abhängig vom Ort, nicht aber vom Primärschlüssel der Relation, der Kundennummer des Gastes. Sichtbar würde dies nicht nur am Datenbankschema, sondern auch an einem möglichen Inhalt der Datenbasis. Hier wären dann nämlich folgende Entities vorstellbar: R.Gast_Mit_PLZ KdNr PLZ Wohnort Grundhof Grundhof Abb. 27: Relation Gast mit Verstoß gegen die 3NF Es ist unmittelbar einsichtig, dass bei Änderungen des Wohnortes des Gastes mit der KdNr 1 (z.b. in den Ort Hagen) und "vergessener" Änderung der PLZ (in 58093) Mutationsanomalien entstehen. Dies kann durch Auslagerung in die Relation PLZ einfach verhindert werden, da sich dort dann die korrekte Postleitzahl für Hagen finden würde. Dadurch würde zugleich das Auftreten einer transitiven Abhängigkeit zwischen PLZ und Wohnort (wechselseitige Abhängigkeit, keine direkte Abhängigkeit vom Primärschlüssel) verhindert. Die Beziehung zwischen Postleitzahl und Ort ist in der Bundesrepublik wie folgt zu beschreiben: Jeder Ort hat genau eine Postleitzahl; eine Postleitzahl kann jedoch zu mehreren Orten gehören. Daher wurde der Ort(sname) als Primärschlüssel für die Relation PLZ verwendet. Die wenigen Ausnahmen, dass ein Ort auch mehrere Postleitzahlen haben kann, vernachlässigen wir hier. Dieser Umstand könnte aber durch Bildung der Primärschlüsselkombination PLZ, ORT berücksichtigt werden. Nach der Einführung des neuen Postleitzahlsystems ändert sich die Situation allerdings: Größere Orte können nun über mehrere Postleitzahlen verfügen. Außerdem gibt es die an ein Postfach gekoppelte Postleitzahl und zusätzlich die Postleitzahl von Großkunden. Dies würde letztlich bedeuten, dass das Gesamtverzeichnis der Postleitzahlen jeweils als eigenständige Relation vorzuhalten wäre.

17 Strukturierung der Daten (Normalisierung) 17 Es müsste eine Fremdschlüsselbeziehung zwischen Ort und Straße bzw. Postfach hergestellt werden. Dies bedeutet jedoch, dass auch bei einem geringem Adressenbestand eine große Datenmengen (im Prinzip das gesamte Verzeichnis der Postleitzahlen in Deutschland) in einer Relation vorzuhalten wären. Daher erscheint es in diesen Fällen sinnvoll, die Postleitzahl als Attribut zur (Gast-) Adressen aufzunehmen und die Redundanz in Kauf zu nehmen.

18 18 Einrichtung der Datenbank (DDL) 2. Einrichtung der Datenbank (DDL) Vor der konkreten Einrichtung der Relationen in der Datenbank muss die Wahl geeigneter Datentypen erfolgen. Die Wahl der Datentypen für die Attribute hängt in hohem Maße von dem verwendeten DBMS ab. Die hier gezeigten Typen werden u.a. vom Datenbanksystem INTERBASE 10 unterstützt. Vor der Errichtung der Tabellen lassen sich entsprechende Domänen im DBMS einrichten, die eine exakte Abgrenzung von möglichen Wertemengen erlauben. Domäne Datentyp Check DomKdNr Integer Values Between 100 and 999 DomZiNr Integer Values Between 100 and 300 DomArt VarChar(2) Values in ( EZ, DZ ) Abb. 28: Domänen der Datenbank HOTEL Spalte Datentyp Inhalt Primärschlüssel Fremdschlüssel KdNr DomKdNr Kundennummer Gast Vermietung Name VarChar(50) Name des Gastes - - Wohnort VarChar(50) Wohnort des Gastes - PLZ Strasse VarChar(50) Strasse des Gastes - ZiNr DomZiNr Zimmernummer Zimmer Vermietung Art DomArt Einzel-/Doppelzimmer Preis Zimmer Ausstattung Varchar(10) Ausstattungskürzel Preis Zimmer Miete Double Precision -Betrag je Nacht und Person - - BuNr Integer Buchungsnummer Vermietung - Dauer Integer Aufenthalt in Tagen - - Abb. 29: Datentypen der Attributswerte der Relationen Die Einrichtung der Datenbank erfolgt mit den DDL 11 Statements von SQL; diese lassen sich wie folgt strukturieren: (a) Bildung physikalischer Strukturen CREATE OPEN CLOSE DROP CREATE ALTER DROP CREATE (b) Bildung logischer Strukturen DATABASE TABLESPACE INDEXSPACE BUFFERSPACE CREATE ALTER DROP CREATE DROP TABLE VIEW INDEX SCHEMA 10 Das Datenbanksystem Interbase wird als lokale Datenbank von Inprise (Borland) mit der Entwicklungsumgebung DELPHI ausgeliefert und ist mittlerweile auch unter Open Source verfügbar. Für die Beispiele wurde die Version: WI-V verwendet. 11 DDL = Data Definition Language (CREATE, DROP,...) DCL = Data Control Language (GRANT, REVOKE: Verwaltung von Rechten der Benutzer).

19 Einrichtung der Datenbank (DDL) 19 (c) Datenbankerweiterung/Rekonstruktion CREATE DROP SYNONYM Abb. 30: DDL Befehle von SQL Die Datenbank wird nun mit der folgenden Anweisung eingerichtet: CREATE DATABASE HOTEL USER xyz PASSWORD mypassword Damit wird die Datenbank auch zugleich eröffnet. Nach Verlassen mit EXIT und neuer Nutzung kann diese dann mit CONNECT DATABASE Hotel adressiert werden. Anschließend wird ist der physikalische Speicherplatz zu reservieren: CREATE TABLESPACE Dateiname; CREATE INDEXSPACE Dateiname; Die Einrichtung und Strukturierung der Tabellen erfolgt mit der CREATE TABLE-Anweisung. Das DDL Statement CREATE TABLE ist ein extrem komplexer Befehl, der je nach SQL-Implementierung über eine Vielzahl von Optionen z.b. zur Sicherung der referentiellen Integrität der Datenbasis verfügt. CREATE TABLE [creator].tabellenname (Spaltenname Spaltentyp, [NOT NULL [UNIQUE] [DEFAULT literal NULL USER] [PRIMARY KEY] [REFERENCES [creator.]tabellenname [ON UPDATE RESTRICT [ON DELETE RESTRICT CASCADE SET NULL]] {,repeat} [,UNIQUE (Liste von Spaltennamen)] [,PRIMARY KEY(Liste von Spaltennamen)] [,FOREIGN KEY (Liste von Spaltennamen)] REFERENCES [creator.]tabellenname [ON UPDATE RESTRICT [ON DELETE RESTRICT CASCADE SET NULL]] {,repeat} [IN TABLESPACE INDEXSPACE Dateiname] [CHECK (Spaltenname Restriktion) {,repeat} Abb. 31: DDL Befehl CREATE TABLE von SQL Dabei gelten die folgenden Konventionen: [] Optionale Angaben {} wiederholbare Angaben alternative Angaben/Optionen Die Bedeutung der wichtigsten Schlüsselwörter dabei sind: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY/ REFERENCES ON DELETE/ON UP- DATE keine Null-Werte erlaubt, kein Leerfeld identische Werte in unterschiedlichen Tupeln nicht erlaubt definiert das/die Schlüsselfelder Festlegung einer Fremdschlüsselbeziehung durch Angabe der referenzierten Tabelle; Spaltenname muss identisch sein. Statements zur Sicherung der referentiellen Integrität der Datenbank Abb. 32: Schlüsselwörter des CREATE TABLE Befehls von SQL

20 20 Einrichtung der Datenbank (DDL) Die entworfenen Relationen können damit wie folgt eingerichtet werden: CREATE TABLE Gast (KdNr DomKdNr NOT NULL PRIMARY KEY, Name Varchar(50) NOT NULL, Wohnort Varchar(50), Strasse Varchar(50)); Abb. 33: Einrichtung der Relation Gast Zusätzlich könnte die Spalte Gast.Wohnort auch die Spalte PLZ.Ort als Fremdschlüssel referenzieren. Dies hätte den Vorteil, dass ein neuer Gast nur dann eingefügt werden könnte, wenn sich in der Tabelle PLZ auch der entsprechende Ortsname finden würde. Das Weglassen dieser Option führt dann dazu, dass bei einer Anfrage nach der vollständigen Adresse eines Gastes (inkl. Postleitzahl) ein solcher Gast nicht selektiert würde. Vermeiden ließe sich dies durch die Formulierung der Anfrage als Outerjoins, einer speziellen Form des Joins (zum Join siehe unten). Andererseits lässt sich durch das hier gewählte Relationenschema auch ein Gast ohne PLZ erfassen. Dann kann die Relation Preis erfasst werden, da sie ebenfalls keine Fremdschlüsselbeziehung aufweist. CREATE TABLE Preis (Ausstattung Varchar(10) NOT NULL, Art DomArt NOT NULL, Miete Double Precision NOT NULL, PRIMARY KEY (Ausstattung, Art)); Abb. 34: Einrichtung der Relation Preis Nun kann die Relation Zimmer formuliert werden, da sie die Relation Preis referenziert und diese bereits implementiert ist. CREATE TABLE Zimmer(ZiNr Dom ZiNr NOT NULL PRIMARY KEY, Ausstattung Varchar(10) NOT NULL, Art DomArt NOT NULL, FOREIGN KEY (Ausstattung, Art) REFERENCES Preis); Abb. 35: Einrichtung der Relation Zimmer Die Angabe REFERENCES Preis baut eine Fremdschlüsselbeziehung zu dem gleichnamigen Attribut Ausstattung der Relation Preis auf. Dabei könnten entsprechende Optionen für das Löschen (z.b. Löschen einer Ausstattungs-/Preisrelation führt zur Ablehnung [Option ON DELETE RESTRICT), so dass die referentielle Integrität sichergestellt bleibt) formuliert werden. Das Weglassen einer solchen Option impliziert hier jedoch automatisch die RESTRICT Option. Es fehlen noch die Tabellen Vermietung und PLZ für die Datenbank HOTEL: CREATE TABLE Vermietung(BuNr Integer NOT NULL PRIMARY KEY, KdNr DomKdNr NOT NULL REFERENCES Gast, ZiNr DomZiNr NOT NULL REFERENCES Zimmer, Dauer Integer NOT NULL); Abb. 36: Einrichtung der Relation Vermietung CREATE TABLE PLZ (PLZ Numeric(4), Ort VarChar(50) NOT NULL PRIMARY KEY); Abb. 37: Einrichtung der Relation Postleitzahl

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Kapitel 06 Normalisierung von Relationen. 6 Die Normalisierung von Relationen

Kapitel 06 Normalisierung von Relationen. 6 Die Normalisierung von Relationen Kapitel 06 Normalisierung von Relationen 6 Die Normalisierung von Relationen 6 Die Normalisierung von Relationen...1 6.1 Die Problemstellung...4 6.2 Die unnormalisierte Form...5 6.3 Die 1. Normalform...7

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

Mehr

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 8 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 12.01. 2004 Integritätsbedingungen

Mehr

3. Das Relationale Datenmodell

3. Das Relationale Datenmodell 3. Das Relationale Datenmodell Das Relationale Datenmodell geht zurück auf Codd (1970): E. F. Codd: A Relational Model of Data for Large Shared Data Banks. Comm. of the ACM 13(6): 377-387(1970) DBMS wie

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Datenbanken: Relationales Datenbankmodell RDM

Datenbanken: Relationales Datenbankmodell RDM Das RDM wurde in den 70'er Jahren von Codd entwickelt und ist seit Mitte der 80'er Jahre definierter Standard für Datenbanksysteme! Der Name kommt vom mathematischen Konzept einer Relation: (Sind A, B

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Datenbanken: Datenintegrität. www.informatikzentrale.de

Datenbanken: Datenintegrität. www.informatikzentrale.de Datenbanken: Datenintegrität Definition "Datenkonsistenz" "in der Datenbankorganisation (...) die Korrektheit der gespeicherten Daten im Sinn einer widerspruchsfreien und vollständigen Abbildung der relevanten

Mehr

Ein Ausflug zu ACCESS

Ein Ausflug zu ACCESS Ein Ausflug zu ACCESS Die folgenden Folien zeigen beispielhaft, wie man sein DB- Wissen auf ACCESS übertragen kann betrachtet wird ACCESS 2002, da gerade im Bereich der Nutzung von SQL hier einiges nachgearbeitet

Mehr

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen:

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen: 1 Einführung in Datenbanksysteme Fast jeder kennt Excel und hat damit in seinem Leben schon einmal gearbeitet. In Excel gibt es Arbeitsblätter, die aus vielen Zellen bestehen, in die man verschiedene Werte

Mehr

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

Mehr

Vorlesung Dokumentation und Datenbanken Klausur

Vorlesung Dokumentation und Datenbanken Klausur Dr. Stefan Brass 5. Februar 2002 Institut für Informatik Universität Giessen Vorlesung Dokumentation und Datenbanken Klausur Name: Geburtsdatum: Geburtsort: (Diese Daten werden zur Ausstellung des Leistungsnachweises

Mehr

SQL: statische Integrität

SQL: statische Integrität SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen

Mehr

Software-Engineering Einführung

Software-Engineering Einführung Software-Engineering Einführung 7. Übung (04.12.2014) Dr. Gergely Varró, gergely.varro@es.tu-darmstadt.de Erhan Leblebici, erhan.leblebici@es.tu-darmstadt.de Tel.+49 6151 16 4388 ES Real-Time Systems Lab

Mehr

Relationale Datenbanken Datenbankgrundlagen

Relationale Datenbanken Datenbankgrundlagen Datenbanksystem Ein Datenbanksystem (DBS) 1 ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS ist es, große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Datenintegrität. Bisherige Integritätsbedingungen

Datenintegrität. Bisherige Integritätsbedingungen Datenintegrität Integitätsbedingungen chlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Bedingungen an den Zustand der Datenbasis dynamische Bedingungen an Zustandsübergänge

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL Datenmodifikation mit SQL Folie 45 SQL - Datenmodifikation Einfügen INSERT INTO Relation [(Attribut, Attribut,...)] VALUES (Wert, Wert,...) INSERT INTO Relation [(Attribut, Attribut,...)] SFW-Anfrage Ändern

Mehr

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin)

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin) Übungsblatt 4 Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin) Die Saartal Linien beauftragen Sie mit dem Entwurf der Datenstrukturen für ein Informationssystem. Dieses soll zur Verwaltung

Mehr

2.5.2 Primärschlüssel

2.5.2 Primärschlüssel Relationale Datenbanken 0110 01101110 01110 0110 0110 0110 01101 011 01110 0110 010 011011011 0110 01111010 01101 011011 0110 01 01110 011011101 01101 0110 010 010 0110 011011101 0101 0110 010 010 01 01101110

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

ABTEILUNGS- ABTEILUNGS- LEITER NAME

ABTEILUNGS- ABTEILUNGS- LEITER NAME Übungsaufgaben Übungsaufgabe 1 - Normalisierung - Gegeben ist folgende unnormalisierte Relation, die Daten über Mitarbeiter und deren Abteilungszughörigkeit enthält. Weiterhin sind die Beteiligung(en)

Mehr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

Mehr

Labor 3 - Datenbank mit MySQL

Labor 3 - Datenbank mit MySQL Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Relationale Datenbanken in der Praxis

Relationale Datenbanken in der Praxis Seite 1 Relationale Datenbanken in der Praxis Inhaltsverzeichnis 1 Datenbank-Design...2 1.1 Entwurf...2 1.2 Beschreibung der Realität...2 1.3 Enitiy-Relationship-Modell (ERM)...3 1.4 Schlüssel...4 1.5

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

Einführung in Datenbanksysteme. H. Wünsch 01.2001

Einführung in Datenbanksysteme. H. Wünsch 01.2001 Einführung in Datenbanksysteme H. Wünsch 01.2001 H. Wünsch 01/2001 Einführung Datenbanken 2 Was sind Datenbanken? Datenbanken sind Systeme zur Beschreibung, Speicherung und Wiedergewinnung von Datenmengen.

Mehr

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik Beispielaufgaben Informationssysteme erstellt von Fabian Rump zur IS Vorlesung 2009/10 1 Multiple Choice Aussage richtig falsch Eine SQL-Abfrage beginnt immer mit dem Schlüsselwort SELECT Eine Datenbank

Mehr

Referenzielle Integrität SQL

Referenzielle Integrität SQL Referenzielle Integrität in SQL aus Referential Integrity Is Important For Databases von Michael Blaha (Modelsoft Consulting Corp) VII-45 Referenzielle Integrität Definition: Referenzielle Integrität bedeutet

Mehr

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL XAMPP-Systeme Teil 3: My SQL Daten Eine Wesenseigenschaft von Menschen ist es, Informationen, in welcher Form sie auch immer auftreten, zu ordnen, zu klassifizieren und in strukturierter Form abzulegen.

Mehr

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

Mehr

Microsoft Access 2013 Navigationsformular (Musterlösung)

Microsoft Access 2013 Navigationsformular (Musterlösung) Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft Access 2013 Navigationsformular (Musterlösung) Musterlösung zum Navigationsformular (Access 2013) Seite 1 von 5 Inhaltsverzeichnis Vorbemerkung...

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Schlüssel bei temporalen Daten im relationalen Modell

Schlüssel bei temporalen Daten im relationalen Modell Schlüssel bei temporalen Daten im relationalen Modell Gesine Mühle > Präsentation > Bilder zum Inhalt zurück weiter 322 Schlüssel im relationalen Modell Schlüssel bei temporalen Daten im relationalen Modell

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Objekte einer Datenbank Microsoft Access Begriffe Wegen seines Bekanntheitsgrades und der großen Verbreitung auch in Schulen wird im Folgenden eingehend auf das Programm Access von Microsoft Bezug genommen.

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 6. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 Aufgabe 1: Rekursion Betrachten Sie die folgende Tabelle

Mehr

Registrierung am Elterninformationssysytem: ClaXss Infoline

Registrierung am Elterninformationssysytem: ClaXss Infoline elektronisches ElternInformationsSystem (EIS) Klicken Sie auf das Logo oder geben Sie in Ihrem Browser folgende Adresse ein: https://kommunalersprien.schule-eltern.info/infoline/claxss Diese Anleitung

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E S TAND N OVEMBE R 2012 HANDBUCH T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E Herausgeber Referat Informationstechnologie in der Landeskirche und im Oberkirchenrat Evangelischer Oberkirchenrat

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB-Administrators!

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

3.2 Spiegelungen an zwei Spiegeln

3.2 Spiegelungen an zwei Spiegeln 3 Die Theorie des Spiegelbuches 45 sehen, wenn die Person uns direkt gegenüber steht. Denn dann hat sie eine Drehung um die senkrechte Achse gemacht und dabei links und rechts vertauscht. 3.2 Spiegelungen

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

SQL Performance - Tips Do's & Don'ts

SQL Performance - Tips Do's & Don'ts SQL Performance - Tips Do's & Don'ts S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis I. Richtlinien bei der Verwendung von SQL 1.1. In Programmen "verbotene" SQL- Anweisungen 1.2 SQL

Mehr

1. Zuerst muss der Artikel angelegt werden, damit später die Produktvarianten hinzugefügt werden können.

1. Zuerst muss der Artikel angelegt werden, damit später die Produktvarianten hinzugefügt werden können. Produktvarianten und Downloads erstellen Produktvarianten eignen sich um Artikel mit verschiedenen Optionen wie bspw. ein Herrenhemd in den Farben blau, grün und rot sowie in den Größen S, M und L zu verkaufen.

Mehr

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011 .procmailrc HOWTO zur Mailfilterung und Verteilung Stand: 01.01.2011 Copyright 2002-2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL. Datenintegrität Arten von Integritätsbedingungen Statische Integritätsbedingungen Referentielle Integrität Integritätsbedingungen in SQL Trigger 1 Datenintegrität Einschränkung der möglichen Datenbankzustände

Mehr

FlowFact Alle Versionen

FlowFact Alle Versionen Training FlowFact Alle Versionen Stand: 29.09.2005 Rechnung schreiben Einführung Wie Sie inzwischen wissen, können die unterschiedlichsten Daten über verknüpfte Fenster miteinander verbunden werden. Für

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB-Administrators!

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

Hilfe zur Urlaubsplanung und Zeiterfassung

Hilfe zur Urlaubsplanung und Zeiterfassung Hilfe zur Urlaubsplanung und Zeiterfassung Urlaubs- und Arbeitsplanung: Mit der Urlaubs- und Arbeitsplanung kann jeder Mitarbeiter in Coffee seine Zeiten eintragen. Die Eintragung kann mit dem Status anfragen,

Mehr

Verifizierung neuer bzw. geänderter email-adressen in den Anwender- und/oder Benutzerstammdaten

Verifizierung neuer bzw. geänderter email-adressen in den Anwender- und/oder Benutzerstammdaten Verifizierung neuer bzw. geänderter email-adressen in den Anwender- und/oder Benutzerstammdaten Mit dem letzten Releasewechsel auf Release 4.5.1 wird es künftig notwendig, im Rahmen von Änderungen oder

Mehr

9. Einführung in Datenbanken

9. Einführung in Datenbanken 9. Einführung in Datenbanken 9.1 Motivation und einführendes Beispiel 9.2 Modellierungskonzepte der realen Welt 9.3 Anfragesprachen (Query Languages) 9.1 Motivation und einführendes Beispiel Datenbanken

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Einbindung externer FiBu-/Warenwirtschaftsdaten Einbindung externer FiBu-/Warenwirtschaftsdaten - 2 - Inhalt Ausgangssituation

Mehr

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Einbindung externer FiBu-/Warenwirtschaftsdaten Einbindung externer FiBu-/Warenwirtschaftsdaten - 2 - Inhalt Ausgangssituation

Mehr

Übersicht über Datenbanken

Übersicht über Datenbanken Übersicht über Datenbanken Vergleich zwischen normaler Datenorganisation und Datenbanken Definition einer Datenbank Beispiel (inkl. Zugriff) Der Datenbankadministrator Relationale Datenbanken Transaktionen

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Barrierefreie Webseiten erstellen mit TYPO3

Barrierefreie Webseiten erstellen mit TYPO3 Barrierefreie Webseiten erstellen mit TYPO3 Alternativtexte Für jedes Nicht-Text-Element ist ein äquivalenter Text bereitzustellen. Dies gilt insbesondere für Bilder. In der Liste der HTML 4-Attribute

Mehr

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen 1 Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen In moneyplex lässt sich ein Konto und ein Bankzugang nur einmal anlegen. Wenn sich der Bankzugang geändert hat oder das Sicherheitsmedium

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Einführung Datenbanken: Normalisierung

Einführung Datenbanken: Normalisierung Einführung Datenbanken: Normalisierung Für die Kursverwaltung einer VHS hat der Datenbank-Programmierer ein ER-Modell entworfen: Entitätstyp Entitäten Attribute Attributsausprägungen Kurse Teilnehmer Dozenten

Mehr

HANDBUCH ÜBERNAHME BANKLEITZAHLEN

HANDBUCH ÜBERNAHME BANKLEITZAHLEN HANDBUCH ÜBERNAHME BANKLEITZAHLEN KIGST-GMBH SYSTEMHAUS MIT TRADITION UND INNOVATION STAND: AUGUST 2010 KIGST GmbH 2010 Seite 1 von 13 Inhalt Inhalt... 2 Allgemeine Hinweise... 3 Grundlegendes... 4 Bankleitzahlen

Mehr

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL Betreuer: Sascha Kriewel, Tobias Tuttas Raum: LF 230 Bearbeitung: 26., 27. und 29. Juni 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material unter: http://www.is.inf.uni-due.de/courses/dbp_ss07/index.html

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2 Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung

Mehr

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

AZK 1- Freistil. Der Dialog Arbeitszeitkonten Grundsätzliches zum Dialog Arbeitszeitkonten AZK 1- Freistil Nur bei Bedarf werden dafür gekennzeichnete Lohnbestandteile (Stundenzahl und Stundensatz) zwischen dem aktuellen Bruttolohnjournal und dem AZK ausgetauscht. Das Ansparen und das Auszahlen

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Hauptseminar: Nichtrelationale Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Mai 2006 Was ist eine Datenbank? Erweiterung relationaler um eine Deduktionskomponente Diese

Mehr

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole Lavid-F.I.S. Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der Lavid Software GmbH Dauner Straße 12, D-41236 Mönchengladbach http://www.lavid-software.net Support:

Mehr

Anzeige von eingescannten Rechnungen

Anzeige von eingescannten Rechnungen Anzeige von eingescannten Rechnungen Wenn Sie sich zu einer Eingangsrechnung die eingescannte Originalrechnung ansehen möchten, wählen Sie als ersten Schritt aus Ihrem Benutzermenü unter dem Kapitel Eingangsrechnung

Mehr

How to do? Projekte - Zeiterfassung

How to do? Projekte - Zeiterfassung How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf Softwareentwicklungspraktikum Sommersemester 2007 Feinentwurf Auftraggeber Technische Universität Braunschweig

Mehr

SEPA-Anleitung zum Release 3.09

SEPA-Anleitung zum Release 3.09 Hier folgt nun eine kurze Information was sich mit dem neuen Release 3.08 zum Thema SEPA alles ändert. Bitte diese Anleitung sorgfältig lesen, damit bei der Umsetzung keine Fragen aufkommen. Bitte vor

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Du hast hier die Möglichkeit Adressen zu erfassen, Lieferscheine & Rechnungen zu drucken und Deine Artikel zu verwalten.

Du hast hier die Möglichkeit Adressen zu erfassen, Lieferscheine & Rechnungen zu drucken und Deine Artikel zu verwalten. Bedienungsanleitung Professionell aussehende Rechnungen machen einen guten Eindruck vor allem wenn du gerade am Beginn deiner Unternehmung bist. Diese Vorlage ist für den Beginn und für wenige Rechnungen

Mehr