DMG. Zusammenfassung Datenmanagement

Größe: px
Ab Seite anzeigen:

Download "DMG. Zusammenfassung Datenmanagement"

Transkript

1 DMG 1.1 Sie kenne die Begriffe Daten, Datenbasis, Datenbankverwaltungssystem, Datenbankschema und Datenmodell Daten Datenbasis Datenbank Datenbankverwaltungssystem / Datenbankmanagementsystem (DBMS) Datenmodell Datenbankschema Sie kennen die Konzepte Entität, Schlüssel und Relation Entität Schlüssel Relation Attribut Sie können Beziehungen im Blick auf Funktionalitäten charakterisieren und kennen die (min:max) Notation Entity Relationsship Modell (ERM)... 6 Funktionalitäten der Beziehungen Sie können schwache Entitäten, Generalisierung und Aggregation modellieren Schwache Entitäten (doppelt umrandet) Generalisierung (is_a) Aggregation (part_of) Sie kennen das Konzept von sichten und mögliche Schwierigkeiten bei der Sichtenintegration Sie können für ein gegebenes ERM ein relationales Schema definieren rundlagen des relationalen Modells Verfeinerung des relationalen Schemas Sie kennen die Entwurfstheorie und Normalformen Sie kennen den Begriff der funktionalen Abhängigkeit und können funktionale Abhängigkeiten identifizieren Sie kennen die Definition eines Schlüssels und können Schlüsselkandidaten identifizieren Formale Definition Sie kennen die Definition der Boyce Codd Normalform (BCNF) Sie können entscheiden, ob ein relationales Modell in der BCNF ist Beispiel: Verletzung der BCNF Beispiel aus dem formativen Test: Verletzung der BCNF Sie kennen die relationale Algebra Operationen Kreuzprodukt Vereinigung Differenz Durchschnitt Division Projektion Selection Umbenennung Natural Join (full) outer join Left outer join Erstellt aus den einzelnen Dokumenten von den Studenten Seite 1

2 Right outer join Conditional join Baumstruktur / Query tree Darstellung von Relationen Äquivalenzrelationen Sie können ein relationales Schema in SQL definieren Sie können das Schema verändern Sie können einfache Abfragen formulieren SELECT FROM WHERE GROUP BY HAVING Sie können Abfragen mit mehreren Relationen formulieren Sie können Mengenoperationen und geschachtelte Anweisungen formulieren Sie kennen die Aggregatfunktionen und Gruppierungen Sie kennen den exists Operator Sie kennen die Problematik der Null Werte Sie können Abfragen mit joins formulieren Sie kennen die Befehle insert, delete und update Sie können Sichten erstellen und nutzen Sie kennen die Problematik in Bezug auf Sichten Sie kennen JDBC Sie können in Java den Zugriff auf Datenbanken mittels JDBC programmieren Sie kennen dafür die Klassen Connection, Statement, ResultSet Klasse Connection Klasse Statement Klasse ResultSet Sie kennen das Konzept der referentiellen Integrität und können es anwenden Sie kennen den Begriff der referentiellen Integrität Datenintegrität Referentielle Integrität Ein Beispiel: Sie können statische Integritätsbedingungen formulieren Datenfeldebene Beziehungsebene * Sie können Integritätsbedingungen in SQL formulieren Sie kennen den Begriff der Trigger und können einfache Trigger implementieren Physische Datenorganisation Bedeutung der Physischen Datenorganisation B Bäume B + Baum B* Baum Rechnen im B* Baum Aufgabe 1: Aufgabe2: Sie verstehen die Optimierung von Anfragen Sie kennen die Bedeutung der Datenbankoptimierung Sie können die logische Anfrageoptimierung einer Anfrage durchführen Sie kennen Techniken der physischen Optimierung Selektion Binäre Zuordnung (Matching) Erstellt aus den einzelnen Dokumenten von den Studenten Seite 2

3 8.3.3 Gruppierung und Duplikateliminierung Projektion und Vereinigung Sie kennen das Transaktionskonzept und dessen Anwendung in Fehlerbehandlung und Mehrbenutzersysnchronisation Sie können das ACID Prinzip erklären. Sie kennen die möglichen Zustände einer Transaktion Sie kennen die möglichen Fehler, die zu einem Recovery führen Sie kennen die Konzepte für die Ersetzung von Puffer Seiten (steal und NOTsteal). Sie kennen Möglichkeiten des Einbringens von Änderungen (force und NOTforce) Sie können eine Log Datei (logische Protokollierung) lesen und erstellen. Sie können Winner und Loser Transaktionen identifizieren. Sie können eine Log Datei analyisieren. Sie können den Wiederanlauf nach einem Fehler auf Papier nachvollziehen. Sie kennen das Konzept der Sicherungspunkte Sie kennen Fehler beim unkontrollierten Mehrbenutzerbetrieb. Sie kennen den Begriff der Historie und der Serialisierbarkeit. Sie können eine Historie in eine äquivalente Historie umformen. Sie können den Serialisierbarkeitsgraphen einer Historie erstellen und interpretieren Sie kennen verschiedene Sperrmodi. Sie kennen Methoden der sperrbasierten Synchronisation. Sie können einen Wartegraphen erstellen und Verklemmungen (deadlocks) erkennen Sie kennen Sicherheitsaspekte in SQL Sie kennen die Befehle der Zugriffskontrolle in SQL Der Grant Befehl Der Revoke Befehl Sie kennen die Idee der Rollen und können sie in dem verwendeten Datenbank System umsetzen Sie können Zugriffsrechte auf Relationen und Sichten vergeben Sie kennen die Definitionssprache (ODL) und die Abfragesprache (OQL) der ODMG sie kennen die zwei Vererbungen in der ODL der ODMG (interface und extends) Sie können Beziehungen in der ODL beschreiben Sie können ein Datenmodell in ODL interpretieren Sie können ein einfaches Datenmodell erstellen Sie kennen die Grundlagen der Anfragesprache der ODMG (Object Query Language, OQL) (iknsbes. Anfragen auf Extents, Path Expressions, Methodenaufrufe) Sie können Anfragen interpretieren. Sie können Anfragen selber formulieren XPath und XQuery Einführung XML Struktur XML Schema Rekursive Struktur Analyse von Dateninhalten XML Anfragesprache XQuery XPath Achsen XPath Ausdrücke Beispiel Anfrage mit Bedingung Beispiel Anfrage Beispiel Anfrage mit Bedingung Beispiel Anfrage mit Existenzprüfung Verkürzte Syntax XPath Ausdrücke mit verkürzter Syntax Effektive XQuery Anfragen (MSSQL) Joins in XQuery Sie kennen das Konzept des Datawarehouse sie können einige wesentliche Unterschiede zwischen OLAP und OLTP nennen Erstellt aus den einzelnen Dokumenten von den Studenten Seite 3

4 13.2 Sie kennen das Sternschema (Fakten und Dimensionstabellen) und dessen Eigenschaften (in Bezug auf Normalisierung und Join Tiefen) Sie können den Cube Operator anwenden Sie kennen Konzepte von Verteilten Datenbanken Sie können den Begriff der verteilten Datenbanken definieren Sie können die horizontale und vertikale Fragmentierung erläutern Horizontale Fragmentierung Vertikale Fragmentierung Sie wissen, was Allokation bedeutet Sie können Fragmentierungs und Allokationstransparenz erläutern Fragmentierungstransparenz Allokationstransparenz Sie kennen das 2 Phase Commit Protokoll als wichtiges Element der Transaktionskontrolle Einführung in die Problematik Das 2PC Protokoll Erstellt aus den einzelnen Dokumenten von den Studenten Seite 4

5 Sie können Datenbanken modellieren 1.1 Sie kenne die Begriffe Daten, Datenbasis, Datenbankverwaltungssystem, Datenbankschema und Datenmodell Daten Daten > Informationen > Wissen Daten sind eine Folge von Zeichen; elementare Fakten, Aussagen und Sachverhalte. Information sind Daten mit einer Bedeutung und einem Zweck. Wissen ist Information in einem bestimmten, für den Menschen relevanten Kontext Datenbasis Gespeicherte Daten werden als Datenbasis bezeichnet Datenbank Einen logisch zusammengehörigen Datenbestand. Dieser Datenbestand wird von einem laufenden Datenbankverwaltungssystem verwaltet und für Anwendungssysteme und Benutzer unsichtbar auf nichtflüchtigen Speichermedien abgelegt Datenbankverwaltungssystem / Datenbankmanagementsystem (DBMS) Die Gesamtheit der Programme zum Zugriff auf die Datenbasis, zur Kontrolle der Konsistenzfügung: Datenabfrage und manipulation (Data Manipulations Langauge, DML) (SELECT,FROM,WHERE ) Verwaltung der Datenbank (Data Definition Langauge, DDL) (CREATE TABLE PROJECT ) * Berechtigungssteuerung (Data Control Language, DCL) (GRANT SELECT ) Datenmodell Das Datenmodell bestimmt, wie die Daten modelliert werden können: Beschreibung der Datenobjekte (WAS) und zur Festelegung der anwendbaren Operatoren und deren Wirkung. Das Datenmodell beinhaltet die zwei Sprachen; Data Manipulations Langauge und Data Definition Langauge Datenbankschema Das Datenbankschema legt die Struktur der speicherbaren Datenobjekte fest, es umfasst alle Informationen über die Datenbank (ausser den eigentlichen Daten) und wird mit der Data Definition Langugae (DDL) manipuliert. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 5

6 1.2 Sie kennen die Konzepte Entität, Schlüssel und Relation Entität Entitäten sind unterscheidbare physische oder gedanklich existierende Konzepte der zu modellierenden Welt. Man abstrahiert ähnliche Gegenstände zu Gegenstandstypen (Entitytypen). (zum Beispiel Angestellter "Müller", Projekt "3232") Schlüssel Eine minimale Menge von Attributen, deren Werte das zugeordnete Entity eindeutig innerhalb aller Entities seines Typs identifiziert. (zum Beispiel Angestellter, Projekt, Buch, Autor, Verlag) Relation Ist die Beziehung zwischen Entitätstypen. (zum Beispiel "Angestellter Müller leitet Projekt 3232") Attribut Elementarinformation einer Entität oder einer Beziehung (zum Beispiel Vorname und Nachname von Angestellter) 1.3 Sie können Beziehungen im Blick auf Funktionalitäten charakterisieren und kennen die (min:max) Notation Entity Relationsship Modell (ERM) Funktionalitäten der Beziehungen 1:1 Beziehung: Jeder Entity e1 aus E1 höchstens ein Entity e2 aus E2, und umgekehrt. 1:n Beziehung: Jeder Entity e1 aus E1 beliebig viele (0..n) Entities aus E2 zugeordnet werden. n:m Beziehung: Jeder Entity e1 aus E1 beliebig viele (0..n) Entities aus E2 zugeordnet werden und umgekehrt (keine Restriktionen). Erstellt aus den einzelnen Dokumenten von den Studenten Seite 6

7 Professoren x Studenten > Seminarthemen Seminarthemen x Studenten > Professoren Studenten dürfen bei demselben Professor bzw. derselben Professorin nur ein eminarthema "ableisten" (damit ein breites Spektrum abgedeckt wird). Studenten dürfen dasselbe Seminarthema nur einmal bearbeiten sie dürfen also nicht bei anderen Professoren ein schon einmal erteiltes Seminarthema nochmals bearbeiten. Die (min, max) Notation Diese Notation legt die Unter und Obergrenze für Entity Beziehungen fest. 1.5 Sie können schwache Entitäten, Generalisierung und Aggregation modellieren Schwache Entitäten (doppelt umrandet) Sind in ihrer Existenz von einem anderen, übergeordneten Entity abhängig und oft nur in Kombination mit dem Schlüssel des übergeordneten Entites eindeutig identifzierbar. Räume sind existenzabhängig von dem Gebäude. Wenn man das Gebäude abreisst, verschwinden damit auch alle in dem betreffenden Gebäude liegenden Räume Generalisierung (is_a) Wird im konzeptuellen Entwurf eingesetzt, um eine bessere und übersichtlichere Strukturierung der Entitytypen zu erreichen Aggregation (part_of) Während man bei der Generalisierung gleichartige Entitytypen strukturiert, werden bei der Aggregation unterschiedliche Entitytypen, die in ihrer Gesamtheit einen strukturierten Objekttypen bilden, einander zugeordnet. In dieser Hinsicht kann man die Aggregation als einen besonderen Erstellt aus den einzelnen Dokumenten von den Studenten Seite 7

8 Beziehungstyp deuten, der einem übergeordneten Entitytyp mehrere untergeordnete Entitytypen zuordnet. Diese Beziehung wird als Teil von (part of) bezeichnet. 1.6 Sie kennen das Konzept von sichten und mögliche Schwierigkeiten bei der Sichtenintegration Eine View (deutsch Sicht) ist eine logische Relation (auch virtuelle Relation oder virtuelle Tabelle) in einem Datenbanksystem. Diese logische Relation wird über eine im Datenbankmanagementsystem (DBMS) gespeicherte Abfrage definiert. Der Datenbankbenutzer kann eine View wie eine normale Tabelle abfragen. Wann immer eine Abfrage diese View benutzt, wird diese zuvor durch das Datenbankmanagementsystem berechnet. Eine View stellt im Wesentlichen einen Alias für eine Abfrage dar. Die Aufgabe einer View ist es, den Zugriff auf das Datenbankschema zu vereinfachen. Normalisierte Datenbankschemata verteilen Daten auf zahlreiche Tabellen mit komplexen Abhängigkeiten. Dies führt zu aufwändigen SQL Abfragen. Außerdem wird ein hohes Maß an Wissen über das Schema vorausgesetzt, um solche Abfragen zu erstellen. Das Bereitstellen geeigneter Views erlaubt einen einfachen Zugriff, ohne Kenntnis des darunter liegenden Schemas und ohne Aufweichung der Normalisierung. Ein weiterer Vorteil von Views ist, dass das DBMS keinen zusätzlichen Aufwand zur Vorbereitung der Abfrage benötigt. Die View Abfrage ist vom Parser bereits bei der Erstellung syntaktisch zerlegt und vom Abfrageoptimierer vereinfacht. Ein Nachteil von Views kann sein, dass die Komplexität der dahinter liegenden Abfrage unterschätzt wird. Der Aufruf einer View kann zu sehr aufwändigen Abfragen führen und der unbedachte Einsatz solcher dann zu erheblichen Performanzproblemen. Probleme bei der Sichtenintegration: Namenskonflikt Typkonflikt Wertebereichskonflikt Bedingungskonflikt Strukturkonflikt 1.7 Sie können für ein gegebenes ERM ein relationales Schema definieren Das Entity Relationship Modell besitzt zwei grundlegende Strukturierungskonzepte: Entitytypen Beziehungstypen Dem steht im relationalen Modell nur ein einziges Strukturierungskonzept nämlich die Relation gegenüber. Es werden also sowohl Entitytypen als auch Beziehungstypen jeweils auf die Relation abgebildet. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 8

9 1.7.1 rundlagen des relationalen Modells Ausprägung: der aktuelle Zustand der Datenbasis Schlüssel: minimale Menge von Attributen, deren Werte ein Tupel eindeutig identifizieren Primärschlüssel: wird unterstrichen o Einer der Schlüsselkandidaten wird als Primärschlüssel Ausgewählt o Hat eine besondere Bedeutung bei der Referenzierung von Tupeln hören: {[MatrNr: integer, VorlNr: integer]} lesen: {[PersNr: integer, VorlNr: integer]} arbeitenfür: {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen: {[Vorgänger: integer, Nachfolger: integer]} prüfen: {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]} Verfeinerung des relationalen Schemas 1:N Beziehung Initial Entwurf Vorlesungen : <pre>{[vorlnr, Titel, SWS]} Professoren : {[PersNr, Name, Rang, Raum]} lesen: {[VorlNr, PersNr]}</pre> Verfeinerung durch Zusammenfassung Vorlesungen : {[VorlNr, Titel, SWS, gelesenvon]} Professoren : {[PersNr, Name, Rang, Raum]} Regel Relationen mit gleichem Schlüssel kann man zusammenfassen aber nur diese und keine anderen! Hierbei verwenden Sie ausschliesslich die Notationen unseres Buches!! None: DMGModellieren erstellt durch tamazena Erstellt aus den einzelnen Dokumenten von den Studenten Seite 9

10 2. Sie kennen die Entwurfstheorie und Normalformen 2.1 Sie kennen den Begriff der funktionalen Abhängigkeit und können funktionale Abhängigkeiten identifizieren Eine Relation wird durch Attribute definiert. Bestimmen einige dieser Attribute eindeutig die Werte anderer Attribute, so spricht man von funktionaler Abhängigkeit. So könnte man sich etwa eine Kundendatenbank vorstellen, in der die Adresse und die Telefonnummer eines Kunden eindeutig durch seinen Namen zusammen mit seinem Geburtsdatum bestimmt ist. Hier wären also Adresse und Telefonnummer funktional abhängig von Name und Geburtsdatum Kunden Name Geburtsdatum Adresse Telefon# Mit Hilfe funktionaler Abhängigkeiten lässt sich auch der Begriff Schlüssel definieren: 2.2 Sie kennen die Definition eines Schlüssels und können Schlüsselkandidaten identifizieren In Relationalen Datenbanken unterscheidet man die Schlüsselbegriffe Superschlüssel: Menge von Attributen (Spalten) in einer Relation (Tabelle), die ein Tupel (Zeile) in dieser Relation eindeutig identifizieren. Ein trivialer Superschlüssel wäre zum Beispiel die Menge aller Attribute einer Relation. Schlüsselkandidat (auch Kandidatenschlüssel genannt): Eine Teilmenge des Superschlüssels, die aber auch schon die eindeutige Identifizierung eines Tupels ermöglicht (Schlüsselkandidaten Superschlüssel). Primärschlüssel: Ein ausgewählter Schlüsselkandidat, der von anderen Relationen als das identifizierende Attribut verwendet wird. Sekundärschlüssel: Alle anderen Schlüsselkandidaten, die nicht Primärschlüssel sind. Fremdschlüssel: Ein Attribut einer Relation, welches auf einen Primärschlüssel einer anderen Relation verweist. Formale Definition Es sei ein bestimmtes Relationenschema R (das Tabellen Gerüst, d.h. alle Spalten) gegeben. Eine Teilmenge S der Attribute des Schemas R heißt Schlüssel, wenn gilt: Eindeutigkeit: Keine Ausprägung von R (keiner der Einträge in die Tabelle) darf zwei verschiedene Tupel (Zeilen) enthalten, bei denen die Werte von S gleich sind. Minimalität: Keine echte Teilmenge von S erfüllt bereits die Bedingung der Eindeutigkeit. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 10

11 ISBN Autor Titel 666 Dr. Luzi Fehr Rebell 1337 Elise Meier Hax0r Prof. Wilson Iluminatus Hier ist der Schlüssel ein einzelnes Attribut. Die ISBN eignet sich dafür relativ gut, denn zumindest innerhalb eines Verlages haben keine zwei Bücher die selbe ISBN. Bücher können allerdings sehr wohl den gleichen Titel haben oder vom selben Autor stammen Kunden Name Geburtstag Wohnort Meier Müller Musterhausen Lutown Hier wird ein Teil der Attribute als Schlüssel verwendet. Diese Kundendatenbank geht davon aus, dass keine zwei Kunden mit dem selben Namen am gleichen Tag Geburtstag haben; eine Annahme, die in der Realität leicht nach hinten losgehen könnte. 2.3 Sie kennen die Definition der Boyce Codd Normalform (BCNF) Eine Relation ist in BCNF, wenn sie die Voraussetzungen der 3.Normalform erfüllt und gleichzeitig jede Determinante (Menge von Attributen, von denen andere voll funktional abhängen) Schlüsselkandidat ist. Normalisierung Walkthrough 2.4 Sie können entscheiden, ob ein relationales Modell in der BCNF ist 1. Beispiel: jeder Verein bietet nur eine Sportart an. ein Sportler kann in verschiedenen Vereinen spielen, aber nur, wenn diese Vereine unterschiedliche Sportarten betreiben. Damit wird sichergestellt, dass der Sportler nie gegen einen Verein spielt, in dem er selbst Mitglied ist. Sportler Name Sportart Müller Fussball Meier Fussball Verein FCL FCL Erstellt aus den einzelnen Dokumenten von den Studenten Seite 11

12 Meier Eishockey HCL Verletzung der BCNF Aus den oben genannten Bedingungen folgt, dass das Attribut Sportart funktional abhängig vom Attribut Verein ist, d. h. Verein ist eine Determinante. Jedoch ist Verein KEIN Schlüsselkandidat. Durch diese Konstellation ist die Relation nur in 3NF, nicht in BCNF. 2. Beispiel aus dem formativen Test: In die Tabelle Rechnungsposition kommt zusätzlich das Attribut Frankenwert mit genau der Bedeutung wie Taxpunkt: Rechnungsposition Rechnung PositionsNr Datum AnzahlTaxPunkte Taxpunkt Frankenwert Diagnose Verletzung der BCNF Frankenwert ist funktional abhänging von Taxpunkt, Taxpunkt hat jedoch (in dieser Tabelle) KEINE Schlüsseleigenschaft. None: DMGEntwurfNormal erstellt durch tabachman Erstellt aus den einzelnen Dokumenten von den Studenten Seite 12

13 3. Sie kennen die relationale Algebra 3.1 Operationen Kreuzprodukt > Wie die Hippies: Jeder mit jedem Beispiel: R: R S: A B C D E F G S: A B C D E F G Vereinigung Alle zusammen. Zwei Mengen werden zusammengefügt. Jedes Element kann nur einmal vorkommen. Beispiel: R S R u S A B C A B C A B C Differenz Menge jener Elemente welcher in der Ersten Relation vorhanden sind, jedoch nicht in der zweiten. Beispiel: R S R \ S A B C A B C A B C Durchschnitt Menge aller Tupel welche in beiden Relationen vorkommen. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 13

14 Beispiel: R S R S A B C A B C A B C Division Die Division ist eine Umkehrung des Kreuzproduktes Beispiel: R S R S A B B A a1 b1 b1 a1 a1 b2 b2 a1 b3 a2 b2 a2 b Projektion Die Projektion extrahiert einzelne Attribute aus einer Attributmenge. Sie ist mit dem Select a,b,c in SQL zu vergleichen. Wobei a,b und c für die Attribute stehen, welche extrahiert werden sollen. SQL Algebra select Name from Professoren > II (Name) (Professoren) Selection Die Selection selektiert eine gewisse Auswahl von Tupeln. Sie ist mit dem where in SQL zu vergleichen. SQL Algebra select * from Professoren where Name = Sokrates > σ Name=Sokrates (Professoren) Umbenennung Durch diese Operation können Attribute und Relationen umbenannt werden. Beispiel voraussetzen in v1 umbenennen: V1(voraussetzen) Erstellt aus den einzelnen Dokumenten von den Studenten Seite 14

15 3.1.9 Natural Join Beim natural Join werden aus zwei Relationen eine neue gebildet. Es muss eine gleiche Spalte vorhanden sein. Falls das Schlüsselattribute nur in einer Tabelle vorkommt, wird die entsprechende Spalte ausgeblendet. Beispiel R S R S A B C D A F G A B C D F G (full) outer join Eine Kombination von Left Outer Join und Right Outer Join. R S Beispiel R S R S A B B C A B C Left outer join Mit einem Left Join wird eine sogenannte linke Inklusionsverknüpfung erstellen. Linke Inklusionsverknüpfungen schließen alle Datensätze aus der ersten (linken) Tabelle ein, auch wenn keine entsprechenden Werte für Datensätze in der zweiten Tabelle existiert. R S Beispiel R S R S A B B C A B C Right outer join Mit einem Right Join wird eine sogenannte rechte Inklusionsverknüpfung erstellen. Rechte Inklusionsverknüpfungen schließen alle Datensätze aus der zweiten (rechten) Tabelle ein, auch wenn keine entsprechenden Werte für Datensätze in der ersten Tabelle existiert. R S Beispiel R S R S A B B C A B C Erstellt aus den einzelnen Dokumenten von den Studenten Seite 15

16 Conditional join Beim Conditional join wird zuerst das Kreuzprodukt gebildet und danach selektiert. Beispiel: S R S A = C R A B C D A B C D Baumstruktur / Query tree Bei der Baumdarstellung ist am besten von innen nach aussen, bzw. von oben nach unten vorzugehen. Beispiel II name, SID (σ Name= DMG (Students (Takes Course)))) (in SQL: select name, SID from Course join Takes join Students where Name = DMG ) II name, SID σ Name= DMG Students Course Takes 3.3. Darstellung von Relationen Eine Relation lässt sich durch einen gerichteten Graphen (DiGraph) darstellen. Beispiel: DiGraph von R auf A = {a, b, c, d} R = {(a, a), (a, c), (b,a),(b, c) (b, d), (c, a), (c, b), (d, a)} Erstellt aus den einzelnen Dokumenten von den Studenten Seite 16

17 Weisheiten bezüglich Digraphen: 3.4. Äquivalenzrelationen Eine Relation R auf einer Menge A heist Äquivalenzrelation falls sie relfexiv, symmetrisch und transitive ist. Regeln bei Äquivalenzrelationen: jeder Knoten hat eine Schleife (Reflexivität) gibt es eine gerichtete Kante von a nach b, dann muss es auch eine von b nach a geben (Symmetrie) gibt es eine gerichtete Kante von a nach b und eine weitere von b nach c, dann muss es auch eine von a nach c geben (Transitivität) Beispiel Rechnungen Aufgabe: Definieren sie auf der Menge A = {1, 2,3,4} eine Äquzivalenzrelation und zeichnen sie den Digraphen. Lösung: Damit die Relation refexiv ist, muss in R sicher vorkommen: (1,1),(2,2),(3,3),(4,4) Damit die Relation symmetrisch ist muss sicher vorkommen: (1,2),(2,1),(3,2)(3,2) Damit die Relation transitiv ist muss sicher noch vorkommen: (1,3) und wegen der Symetrie noch (3,1) Erstellt aus den einzelnen Dokumenten von den Studenten Seite 17

18 Somit: R = {(1,1),(2,2),(3,3),(4,4),(1,2),(2,3),(2,1),(3,2),(1,3),(3,1)} N Stellige Relationen Eine n.stellige Relation R auf den Mengen A1, A2,A3,, An ist eine Teilmenge des Kreuzproduktes A1 x A2 x x An. None: DMGSQL erstellt durch taberli Erstellt aus den einzelnen Dokumenten von den Studenten Seite 18

19 4. Sie kennen SQL Die hier aufgeführte SQL Befehle sind in der MS SQL Syntax verfasst. Es gibt kein Gewähr dafür, dass die SQL Statements auch unter anderen Datenbanken wie z.b. PostreSQL, MySQL usw. ausgeführt werden können. 4.1 Sie können ein relationales Schema in SQL definieren Datenbank erstellen CREATE DATABASE sxx_db Datenbank auswählen USE sxx_db Tabelle erstellen CREATE TABLE tbl_tabelle1 ( id INTEGER NOT NULL IDENTITY(1,1), x für eine beliebige Zahl id2 CHAR(x) NOT NULL, Primärschlüsseldefinition PRIMARY KEY (id), Fremdschlüsseldefinition FOREIGN KEY (id2) REFERENCES tbl_tabelle2(id2), Default > Standartwert name VARCHAR(x) DEFAULT "Müller", vorname VARCHAR(x), datum DATE); Einschränkungen Einschränkungskriterium > CREATE TABLE tbl_tabelle2( CONSTRAINT ck_feld2 CHECK (feld2 LIKE '[A Z][A Z] [0 9][0 9][0 9][AP]' OR feld2 LIKE '[A Z] [A Z][0 9][0 9][0 9][AP]' )); In diesem Beispiel wird geprüft, ob das Feld feld2 zu Beginn 2 Zeichen A Z, gefolgt von 3 nummerischen Werten und ein 'A' oder 'P' am Schluss enthält. 4.2 Sie können das Schema verändern Tabellen änderungen beginnen mit ALTER TABLE tbl_tabelle1 weitere Spalte einfügen ADD spalte1 CHAR(12) NULL Spalteneigenschaften ändern ALTER COLUMN spalte1 CHAR(30) NOT NULL Spalte löschen DROP COLUMN spalte1 Einschränkungen einfügen ADD CONSTRAINT ck_feld3 CHECK (. Primärschlüssel definieren ADD PRIMARY KEY (spalte3) Fremdschlüssel definieren ADD FOREIGN KEY (spalte4) CONSTRAINT löschen DROP CONSTRAINT ck_feld3 #Name unbedingt angeben!! 4.3 Sie können einfache Abfragen formulieren 1. SELECT ALL, zeigt mehrere identische Datens. SELECT [ ALL DISTINCT ] spalte1, spalte2, FROM tabelle DISTINCT, zeigt alle vorkommende Erstellt aus den einzelnen Dokumenten von den Studenten Seite 19

20 Datensätze 1 x an (im Access: Summe) Virtueller Spalten Zählfunktion (mehrere Möglichkeiten) Summe der Werte einer Spalte Durchschnittswerter einer Spalte Kleinster Wert einer Spalte Grösser Wert einer Spalte SELECT wert1, wert2, wert1 wert2 AS zwischenwert FROM tabelle SELECT COUNT ( * spaltex DISTINCT ) AS anzahlx FROM SELECT SUM( ) AS summe SELECT AVG( ) AS durchschnitt SELECT MIN( ) AS minimum SELECT MAX( ) AS maximum 2. FROM Verknüpfte Tabellen (mit 3 Tabellen) SELECT a.spalte1, a.spalte2, b.spalte1, c.spalte1 FROM tbla AS a INNER JOIN ( tblb AS b INNER JOIN tblc AS c ON b.id = c.id) ON a.id = b.id AND a.spalte3 > 10; zeigt alle Felder der linken Tabelle SELECT a.spalte1, b.spalte2 FROM tbla AS a LEFT JOIN tblb AS b ON a.id = b.id (Felder ohne beziehung sind NULL) zeigt alle Felder der rechten Tabelle SELECT a.spalte1, b.spalte2 FROM tbla AS a RIGHT JOIN zeigt alle Felder der Tabellen an SELECT a.spalte1, b.spalte2 FROM tbla AS a FULL JOIN zeigt alle Felder( kombinationen) an SELECT a.sp1, b.sp1 FROM tbla AS a CROSS JOIN tblb AS b; 3. WHERE Einschränkung SELECT * FROM tabelle WHERE spalte1 = 'eingabe' Statt = kann man auch > verwenden,!= ; > ; >= ; < ; <= ;!> (nicht grösser) ; <! (nicht kleiner) ; Allgemeine Suche (Alle Datensätze, die mit "A" beginnen) Suche von mehreren Konstanten oder auch möglich SELECT * FROM tbl WHERE spalte1 LIKE 'A%' % = + alle nachfolgende Zeichen oder Null, SELECT * FROM tbl WHERE spalte1 IN ('ja', 'vielleicht') SELECT * FROM tbl WHERE spalte1 NOT IN ('ja', 'vielleicht') Suche von Zwischenwerte SELECT * FROM tbl WHERE preise BETWEEN 10 AND GROUP BY Nach definierten Gruppen sortieren und gewünschten Wert anzeigen zeigt in diesem Bps. wie viele Mitglieder von welchem Ort stammen. oder zeigt in diesem Bps. wieviel mal ein Artikel bestell worden ist SELECT ort, count(*) FROM mitglieder GROUP BY ort; SELECT artikel, SUM(menge) FROM bestellung GROUP BY artikel Erstellt aus den einzelnen Dokumenten von den Studenten Seite 20

21 5. HAVING Selection der GROUP BY Klausel 6. ORDER BY einfache Sortierung ASC = A Z bzw. 0 9 DESC = Z A bzw. 9 0 SELECT ort, count(*) FROM mitglieder GROUP BY ort HAVING SUM(einzahlung) > 10; SELECT * FROM tbl ORDER BY name ASC, vname DESC 4.4 Sie können Abfragen mit mehreren Relationen formulieren. Liste die Namen der Studenten mit ihren Vorlesungstiteln: select Name, Titel from Studenten, hoeren, Vorlesungen where Studenten.MatrNr = hoeren.matrnr and hoeren.vorlnr = Vorlesungen.VorlNr; alternativ: select s.name, v.titel from Studenten s, hoeren h, Vorlesungen v where s.matrnr = h.matrnr and h.vorlnr = v.vorlnr; Quelle: lehre.informatik.uni osnabrueck.de/~dbs/2001/skript/node55.html 4.5 Sie können Mengenoperationen und geschachtelte Anweisungen formulieren 1. Liste alle Prüfungen, die als Ergebnis die schlechteste Note haben: 2. select * 3. from pruefen where Note = (select min(note) from pruefen); 4. Liste alle Studenten, die älter sind als der jüngste Professor: 5. select s.* 6. from Studenten s 7. where exists (select p.* 8. from Professoren p 9. where p.gebdatum > s.gebdatum); o Alternativ: 10. select s.* 11. from Studenten s 12. where s.gebdatum < (select max(p.gebdatum) from Professoren p ); Quelle: lehre.informatik.uni osnabrueck.de/~dbs/2001/skript/node55.html 4.6 Sie kennen die Aggregatfunktionen und Gruppierungen 1. Liste Geburtstage der Gehaltsklassenältesten (ohne Namen!): Erstellt aus den einzelnen Dokumenten von den Studenten Seite 21

22 2. select Rang, max(gebdatum) as Ältester 3. from Professoren 4. group by Rang; 5. Liste Summe der SWS pro Professor: 6. select gelesenvon as PersNr, sum(sws) as Lehrbelastung 7. from Vorlesungen group by gelesenvon; Quelle: lehre.informatik.uni osnabrueck.de/~dbs/2001/skript/node55.html 4.7 Sie kennen den exists Operator 1. Liste alle Professoren, die keine Vorlesung halten: 2. select Name 3. from Professoren 4. where PersNr not in ( select gelesenvon from Vorlesungen ); o Alternativ: 5. select Name 6. from Professoren 7. where not exists ( select * 8. from Vorlesungen where gelesenvon = PersNr ); 9. Liste solche Studenten, die alle 4-stündigen Vorlesungen hören: 10. select s.* 11. from Studenten s 12. where not exists 13. (select * 14. from Vorlesungen v 15. where v.sws = 4 and not exists 16. (select * 17. from hoeren h 18. where h.vorlnr = v.vorlnr and h.matrnr = s.matrnr 19. ) ); Quelle: lehre.informatik.uni osnabrueck.de/~dbs/2001/skript/node55.html 4.8 Sie kennen die Problematik der Null Werte Das Problem mit NULL Werten ist, dass diese keinen, nicht mal einen leeren Wert, darstellen. NULL Werte müssen immer separate abgefragt und geprüft werden. Liste Namen und Studiendauer in Jahren von allen Studenten: select Name, Semester/2 as Studienjahr from Studenten where Semester is not null; Quelle: lehre.informatik.uni osnabrueck.de/~dbs/2001/skript/node55.html 4.9 Sie können Abfragen mit joins formulieren 1. Liste Studenten mit ihren Vorlesungen (mithilfe von join): Erstellt aus den einzelnen Dokumenten von den Studenten Seite 22

23 2. select s.name, v.titel 3. from studenten s 4. inner join hoeren h on (s.matrnr=h.matrnr) 5. inner join vorlesungen v on (h.vorlnr = v.vorlnr); Quelle: lehre.informatik.uni osnabrueck.de/~dbs/2001/skript/node55.html 1. Liste aller Studenten mit den Vorlesungsinformationen. Studenten ohne eingeschriebenen Vorlesungen werden ebenfalls angezeigt. 2. SELECT s.matrnr, s.[name], v.vorlnr, v.titel FROM Studenten s 3. LEFT JOIN hoeren h ON s.matrnr = h.matrnr INNER JOIN Vorlesungen v ON h.vorlnr = v.vorlnr; 4.10 Sie kennen die Befehle insert, delete und update 1. Füge neue Vorlesung mit einigen Angaben ein: 2. insert into Vorlesungen (VorlNr, Titel, gelesenvon) 3. values (4711,'Selber Atmen', 2125) 4. Schicke alle Studenten in die Vorlesung Selber Atmen: 5. insert into hoeren 6. select MatrNr, VorlNr 7. from Studenten, Vorlesungen 8. where Titel = 'Selber Atmen' 9. Erweitere die neue Vorlesung um ihre Semesterwochenstundenzahl: 10. update vorlesungen 11. set SWS=6 12. where Titel='Selber Atmen' 13. Entferne alle Studenten aus der Vorlesung Selber Atmen: 14. delete from hoeren 15. where vorlnr = 16. (select VorlNr from Vorlesungen 17. where Titel = 'Selber Atmen') 18. Entferne die Vorlesung Selber Atmen: 19. delete from Vorlesungen where titel = 'Selber Atmen' Quelle: lehre.inf.uos.de/~dbs/2001/skript/node56.html 4.11 Sie können Sichten erstellen und nutzen 1. Lege Sicht an für Prüfungen ohne Note: 2. create view pruefensicht as 3. select MatrNr, VorlNr, PersNr 4. from pruefen 5. Lege Sicht an für Studenten mit ihren Professoren: 6. create view StudProf (Sname, Semester, Titel, PName) as 7. select s.name, s.semester, v.titel, p.name 8. from Studenten s, hoeren h, Vorlesungen v, Professoren p 9. where s.matrnr = h.matrnr 10. and h.vorlnr = v.vorlnr 11. and v.gelesenvon = p.persnr 12. Lege Sicht an mit Professoren und ihren Durchschnittsnoten: 13. create view ProfNote (PersNr, Durchschnittsnote) as 14. select PersNr, avg (Note) Erstellt aus den einzelnen Dokumenten von den Studenten Seite 23

24 15. from pruefen 16. group by PersNr 17. Entferne die Sichten wieder: 18. drop view PruefenSicht 19. drop view StudProf drop view ProfNote Quelle: lehre.inf.uos.de/~dbs/2001/skript/node57.html 4.12 Sie kennen die Problematik in Bezug auf Sichten Je mehr Tabellenrelationen eine Sicht enthält, umso länger braucht eine Sicht um die angefordeten Daten bereit zu stellen. Sollte die Aufbereitung zu lange dauern, kann sich der geschickte Einsatz von Indezies lohnen. Allerdings muss man dabei beachten, dass dadurch Systemressourcen in Anspruch genommen werden. None: DMGSQL erstellt durch tamarkov Erstellt aus den einzelnen Dokumenten von den Studenten Seite 24

25 5. Sie kennen JDBC 5.1 Sie können in Java den Zugriff auf Datenbanken mittels JDBC programmieren Die JDBC Schnittstelle ist im Package java.sql definiert, welches importiert werden muss. Nun muss der/die notwendige/n JDBC Treiber geladen werden, damit der DriverManager diesen für die Verbindung verwenden kann. Dafür ist der Java Ausdruck: Class.forName("Treiber-Name"); zuständig. Nun kann man eine Connection aufbauen. Dafür werden dem DriverManager über die Methode getconnection() die nötigen Informationen mitgeteilt, damit dieser eine Verbindung aufbauen kann. Z.B.: Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost\\SqlExpress; database=dbname","username", "password"); Damit nun SQL Ausdrücke an die Datenbank abgesetzt werden können, muss man ein Statement Objekt generieren. Dafür ist die Methode createstatement() in der Klasse Statement zuständig. Also lautet die Anweisung meist: Statement stmt = conn.createstatement(); SQL Anfragen können nun über die Methoden executequery() und Änderungsoperationen über executeupdate() abgesetzt werden. Um das/die Resultat/e später verwenden zu können, muss ein Objekt der Klasse ResultSet erzeugt werden und darin die Ergebnisse gespeicht. Also z.b.: ResultSet rs = stmt.executequery("select * FROM tabelle"); 5.2 Sie kennen dafür die Klassen Connection, Statement, ResultSet Klasse Connection Wichtig ist vor allem die Methode createstatement(). Diese ermöglicht es, über SQL Statements mit der Datenbank zu "sprechen" Klasse Statement Die Klasse Statement erwartet zuerst ein durch die Connection Klasse erzeugtes Statement Objekt, damit sie überhaupt weiss, wohin die Anfrage oder Änderungsoperation gehen muss. Dies passiert ja über: Statement sql_stmt = conn.createstatement(); Es gibt zwei wichtige Methoden in der Klasse Statement: 1. executequery() um SQL Abfragen abzusetzen. Diese müssen als String in der Klammer übergeben werden. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 25

26 2. executeupdate um Änderungsoperationen an der Datenbank durchzuführen. Auch diese Methode erwartet einen String Klasse ResultSet Diese Klasse stellt eine Iterator Schnittstelle für den Zugriff auf eine Menge von Ergebnistupeln einer SQL Anfrage zur Verfügung. Zuerst muss eine ResultSet Variable initialisiert werden, in welche dann die Ergebnisse einer SQL Anfrage gespeichert werden. Also z.b.: ResultSet rset = sql_stmt.executequery("das SQL Statement als String!"); Um festzustellen, ob es ein nächstes Tupel gibt, kann die next() Methode auf dei ResulSet Variablen verwendet werden, welche einen boolean Wert zurückliefert. Weiter gibt es Methoden, welche einen Wert aus einer Spalte zurückgeben. Dabei muss der Datentyp beachtet werden! Z.B.: rset.next(); Um den Namen (welcher in der Datenbank als varchar abgespeichert ist) in der Spalte "Name" zu erhalten, muss folgende Zeile Programmiert werden (als ResultSet Variable rset): rset.getstring("name");. Es kann auch der Spaltenindex als Integer verwendet werden. Wichtig ist, dass das Wert in der Tabelle der ausgelesen werden soll, mit dem erwarteten Wert der Methode stimmt. None: DMGJDBC erstellt durch tarutsch Erstellt aus den einzelnen Dokumenten von den Studenten Seite 26

27 6. Sie kennen das Konzept der referentiellen Integrität und können es anwenden 6.1 Sie kennen den Begriff der referentiellen Integrität Die referenzielle Integrität ist eine Form der Datenintegrität. Unter der referenziellen Integrität versteht man die Integrität auf Beziehungsebene. Neben der referenziellen Integrität unterscheidet man noch die Wertebereichsintegrität (Integrität auf Datenfeldebene) und die Datenintegrität auf Datensatzebene Die referenzielle Integrität befasst sich mit der Korrektheit zwischen Attributen von Relationen und der Erhaltung der Eindeutigkeit ihrer Schlüssel. Datenintegrität Integitätsbedingungen o Schlüssel o Beziehungskardinalitäten o Attributdomänen o Inklusion bei Generalisierung statische Integritätsbedingungen o Bedingungen an den Zustand der Datenbasis dynamische Integritätsbedingungen o Bedingungen an Zustandsübergänge Referentielle Integrität Fremdschlüssel Weisen auf Tupel einer Relation Bei gelesenvon in Vorlesungen verweist auf Tupel in Professoren referentielle Integrität Fremdschlüssel müssen auf existierende Tupel verweisen oder einen Nullwert enthalten Die referenzielle Integrität sorgt für die Datenkonsistenz, wenn die Daten bearbeitet werden. Ein Beispiel: Angenommen wir haben ein Kochbuch als Datenbank umgesetzt und dort haben wir Kategorien und Rezepte. Es gilt die Bedingung dass jedes Rezept zu einer Kategorie gehört. Nun muss also sichergestellt werden, wenn z.b. eine Kategorie gelöscht wird, dass dann auch alle Rezepte gelöscht werden, da es sonst Rezepte gäbe die auf eine Kategorie verweiden, die es nicht mehr gibt. Diesen Vorgang kann manuell gemacht werden über die Software die Zugriff auf die Datenbank macht. Dies ist aber sehr aufwändig und nicht immer ganz einfach. Darum haben moderne Datenbanken die Fähigkeit diese Konsistenz intern über referenzielle Integritäten zu wahren. In unserem Beispiel müsste bei der Kategorien Tabelle ein on delete cascade angewendet werden, dies würde dafür sorgen dass die Rezepte, die auf die Kategorie verweisen, alle gelöscht werden wenn eine Kategorie gelöscht wird. Natürlich müssen auch die Fremdschlüssel vorhanden sein (KatID in der Tabelle Rezepte) damit die Datenbank überhaupt weiss welche Rezepte zu welcher Kategorie gehören. 6.2 Sie können statische Integritätsbedingungen formulieren Datenfeldebene Wertebereichseinschränkungen o check Semester between 1 and 13 Aufzählungstypen o check Rang in (C2, C3, `C4 )... Erstellt aus den einzelnen Dokumenten von den Studenten Seite 27

28 Beziehungsebene * Default: Zurückweisen der Änderungsoperation Propagieren der Änderungen: cascade erweise auf Nullwert setzen: set null 6.3 Sie können Integritätsbedingungen in SQL formulieren. Einige Beispiele Erstellt aus den einzelnen Dokumenten von den Studenten Seite 28

29 Erstellt aus den einzelnen Dokumenten von den Studenten Seite 29

30 6.4 Sie kennen den Begriff der Trigger und können einfache Trigger implementieren Trigger kommen zum Einsatz, wenn die Funktion referentiellen Integrität nicht mehr ausreichen oder wenn bewusst bestimmte Aktionen ausgefürht werden müssen, wenn ein Ereigniss eintrifft. Weitere Infos über Trigger findet ihr au fer Seite 163 im Buch (Kapitel 5.7) Wie ist ein Trigger aufgebaut? Beispiel Code eines Triggers Erstellt aus den einzelnen Dokumenten von den Studenten Seite 30

31 Ein weiteres Beispiel -- Triggerbeispiel für PostgreSQL (zwangsläufig mit Funktion): create table loginfo(persnr int, zeitstempel timestamp default current_timestamp, benutzer varchar(20) default user, namealt varchar(50), nameneu varchar(50), rangalt varchar(2), rangneu varchar(2)); CREATE OR REPLACE FUNCTION logandreset() RETURNS trigger AS $$ BEGIN insert into loginfo(persnr,namealt,nameneu,rangalt,rangneu) values(new.persnr,old.name,new.name,old.rang,new.rang); if old.rang = 'C3' and new.rang = 'C2' then new.rang := 'C3'; end if; if old.rang = 'C4' then new.rang := 'C4'; end if; if new.rang is null then new.rang := old.rang; end if; return new; -- return null würde alles beim alten lassen!! END; $$ LANGUAGE 'plpgsql'; CREATE TRIGGER ins_prof BEFORE update -- AFTER wäre falsch!! ON professoren FOR EACH ROW EXECUTE PROCEDURE mylog(); -- zum Testen wie oben (jedes Statement einzeln ausführen!): update professoren set rang='c2' Erstellt aus den einzelnen Dokumenten von den Studenten Seite 31

32 select * from professoren select * from loginfo None: DMGrefInt erstellt durch taroeoes 7. Physische Datenorganisation Bedeutung der Physischen Datenorganisation Bei Datenbanken ist es wichtig wo und wie Daten abgelegt sind. Die Unterschiede der Zugriffszeiten z.b. zwischen Hauptspeicher und Festspeicher ist enorm. Somit ist das richtige Management dieser Daten wichtig. Weitere Informationen darüber. (Speichermedien usw.) findet man im Buch ab s. 199 B Bäume Ein B Baum ist immer ein balancierter Suchbaum. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 32

33 B + Baum Der B + Baum ist eine Erweiterung des B Baumes. Bei einem B + Baum werden die eigentlichen Datenelemente nur in den Blattknoten gespeichert, während die inneren Knoten lediglich Schlüssel enthalten. B* Baum Bei dem B* Baum sind die Basisdaten (vollständige Sätze) nicht mehr im Baum auch nicht in den Blattknoten gespeichert, sondern irgendwo und ungeordnet. Eine entscheidende Performance Frage für das gezielte Lesen anhand vom B* Baum (aber auch vom B+ Baum) ist die Höhe des Baumes. Dafür sind relevant: a) Wieviele Tupel (Sätze) hat die Tabelle (oben: 100) b) Wie gross ist ein Block (1 kb, 2 kb, 4kB,.. 64kB). c) Wieviele Einträge ((Attribut wert, Verweis) Paare) sind im Index Block (oben 10, die PersNr wird 4B lang sein, ebenso der Verweis; damit brauchen unsere 10 Einträge 80B dass dafür jeweils ein Block genommen wird, macht nur Sinn bei einer Blockgrösse von etwa 1/8 KB so kleine Blöcke gibt es nur auf meinen Zeichnungen!) Dass der letzte Eintrag im Indexblock nur noch ein Verweis ist, keinen Wert Eintrag mehr hat, lassen wir unberücksichtigt. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 33

34 Rechnen im B* Baum Formeln: Einträge pro Indexblock = Blockgrösse * Ausnutzungsgrad / (Verweislänge + Attributlänge) Höhe = nächste ganze Zahl von log (Einträge pro Indexblock) (Anz. Einträge) Gesamtblockzahl = (Anzahl Einträge in Verschiedenen Blöcken) + Baumhöhe + (Anzahl Verweise) Tipp für den Taschenrechner: Aufgabe 1: Tabelle: MitararbeiterArbeitsplatz(MitarbeiterID: integer, ArbeitsplatzID: integer) - MitarbeiterArbeitsplatz umfasst 1'000'000 Einträge - Blockgrösse ist 1KB - ein int Wert belegt 4 Byte, ein Verweis ebenfalls - alle Blöcke sind zu 80% gefüllt a) Wie hoch ist der B* Baum 1. Einträge pro Indexblock ausrechnen: Blockgrösse * Ausnutzungsgrad / (Verweislänge + Attributlänge) / ( 4 + 4) = Höhe ausrechnen. Höhe = nächste ganze Zahl von log (Einträge pro Indexblock) (Anz. Einträge) log (102) ( ) = 2.98 > 3 b) Wieviele Blöcke müssen gelesen werden, um die Anfrage select MitarbeiterId from MitarbeiterArbeitsplatz wehre ArbeitsplatzId = 13 abzuarbeiten? Es müssen die 3 Blöcke des B* Baums gelesen werden. Gibt es n Mitarbeiter, die sich den Arbeitsplatz teilen, so müssen n Basis Sätze gelesen werden. Sind alle in unterschiedlichen Blöcken, so sind weitere n Blöcke zu lesen. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 34

35 Aufgabe2: Es gibt 10'000'000 Rechungspositionen. Pro Tag gibt es durchschnittlich 1000 Positionen Die Blockgrösse sei 1KB (gerundet 1000B) Ein Datumswert braucht 8B Verweise innerhalb des Indexes (im B* Baum) und von dort auf die Basissätze brauchen 4B Ausnutzungsgrad von 80% Wie viele Blockzugriffe braucht es für die Abarbeitung von select * from Rechnungsposition where Datum = über den B* Baum Lösung: Einträge pro Indexblock ausrechnen: 1000 * 0.8 / (8 + 4) = > 67 Höhe bestimmen: log (67) ( ) = > 4 Annahme: Die 1000 Einträge an diese Datum sind auf 1000 Blöcke verteilt (sehr pessimistisch) Die Verweise auf 1000 Records passen in 1000/ 67 Blöcke > 15 Blöcke Gesamtblockzahl = (Anzahl Einträge in Verschiedenen Blöcken) + Baumhöhe + (Anzahl Verweise) Gesamtblockzahl = = 1019 Erstellt aus den einzelnen Dokumenten von den Studenten Seite 35

36 8. Sie verstehen die Optimierung von Anfragen 8.1 Sie kennen die Bedeutung der Datenbankoptimierung Durch die Datenbankoptimierung sollen Datensätze effizienter aus der Datenbank gelesen werden. Dies lässt sich auf zwei Weisen durch die logische und durch die physische Optimierung bewerkstelligen. Zum einen besteht die Möglichkeit, auf relationenalgebraische Ausdrücke Äquivalenzumformungen anzuwenden; z.b. können die Argumente der Joinoperation aufgrund ihrer Kommutativität vertauscht werden. Zum anderen gibt es für einen Operator der logischen Algebra oft mehrere unterschiedliche Implementierungen, d.h. Übersetzungsmöglichkeiten in die physische Algebra. In beiden Fällen werden Heuristiken zur Steuerung der Alternativengenerierung eingesetzt. 8.2 Sie können die logische Anfrageoptimierung einer Anfrage durchführen 1. Folgende Anweisung soll optimiert werden (Kanonische Darstellung) 1. Als erster Ansatz, werden die Auswahlkriterien den einbezogenen Entitäten näher gebracht Erstellt aus den einzelnen Dokumenten von den Studenten Seite 36

37 3.Als nächstes werden die Kreuzprodukte zu Joins umgeformt 4. Des weiteren kann vom Kommutativ und Assoziativgesetzt Gebrauch gemacht werden. D.h. Es werden dort Selektionen vorgenommen, wo am meisten Daten zurück kommen. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 37

38 5. Um unnötige Datenbestände auszuradieren, können Projektionen eingesetzt werden: By the way: Hier ein Auszug aus der wichtigsten algebraischen Regeln. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 38

39 8.3 Sie kennen Techniken der physischen Optimierung Techniken der physischen Optimierung: Selektion Binäre Zuordnung (Matching) Gruppierung und Duplikateliminierung Projektion und Vereinigung Zwischenspeicherung Selektion Eine Variante in der Implementierung der Selektion stellt der "Brute Force" Algorithmus dar, welcher bereits auf eine Indexstruktur (sei es ein B Baum oder eine Hashtabelle) zugreift. Beim Aufruf von next wird auf ein die Bedingung erfüllendes Tupel zurückgeliefert, bis die Eingabequellen erschöpft sind Binäre Zuordnung (Matching) Join, Mengendifferenz und Mengendurchschnitt lassen sich auf sehr ähnliche Weise implementieren. Daher fasst man sie unter der Bezeichnungbinäre Zuordnungsoperatorenzusammen. Beim Join werden Attribute zweiter Tupel verglichen, bei Differenz und Schnitt komplette Tupel. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 39

40 Ein einfacher Join Algorithmus Beim einfachen Join Algorithmus werden zwei ineinander geschachtelte Schleifen (engl. nested loops) verwendet Ein verfeinerter Join Algorithmus Die Tupel einer Relation sind auf Seiten abgespeichert und müssen dementsprechend für eine Bearbeitung seitenweise vom Hintergrundspeicher in den Hauptspeicher geladen werden. Stehen im HauptspeichermSeiten für die Berechnung des Joins zur Verfügung, reserviert der verfeinerte Join AlgorithmuskSeiten für die innere Schleife undm kfür die äussere. Die äussere RelationRwird in Portionen zum kseiten eingelesen. Für jede dieser Portionen muss die komplette innere RelationSin Portionen zukseiten eingelesen werden. Alle Tupel der RelationR, die sich auf denm kseiten befinden, werden mit allen Tuplen aussin denkseiten verglichen. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 40

41 Ausnutzung der Sortierung Bei vorsortierten Relationen können die bereits geordneten Positionen der Tupel ausgenutzt werden. Die Relationen werden parallel von oben nach unten abgearbeitet. Bei nicht vorhandener Sortierung muss diese natürlich vorher durchgeführt werden, um densort/merge Joinanwenden zu können Ausnutzung von Indexstrukturen In diesem Verfahren werden die bereits bestehenden Indexstrukturen ausgenutzt. Auf das AttributBder RelationSist ein Index angelegt. Daher braucht man für jedes Tupel ausrnur die passenden Tupel ausbim Index nachzuschlagen. Erstellt aus den einzelnen Dokumenten von den Studenten Seite 41

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

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

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

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

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

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

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

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne Informatik für Ökonomen II: Datenintegrität Prof. Dr. Carl-Christian Kanne 1 Konsistenzbedingungen DBMS soll logische Datenintegrität gewährleisten Beispiele für Integritätsbedingungen Schlüssel Beziehungskardinalitäten

Mehr

Datenbanksysteme 2013

Datenbanksysteme 2013 Datenbanksysteme 2013 Kapitel 8: Datenintegrität Vorlesung vom 14.05.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenintegrität Statische Bedingung (jeder Zustand) Dynamische

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

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

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

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

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

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

Datenintegrität. Kapitel 5 1

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

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

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VL Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

Datenintegrität. Kapitel 5 1

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

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

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

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 7 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws1314/dbsys/exercises/

Mehr

Kapitel 8: Datenintegrität

Kapitel 8: Datenintegrität Kapitel 8: Datenintegrität Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe einer Domäne Jetzt:

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

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

Mehr

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene

Mehr

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung Statische vs. dynamische Integritätsbedingungen Statische Integritätsbedingungen Bedingungen

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

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 30.5.2016 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Datentypen character (n),

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 7a: Structured Query Language (SQL) MySQL 5.0 (enthalten in: http://www.apachefriends.org/de/xampp.html)

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

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

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

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

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

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

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

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle. Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Anlegen einer Tabelle create

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

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

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

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1) Vorlesung #3 SQL (Teil 1) Fahrplan Wiederholung/Zusammenfassung Relationales Modell Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE...) SQL DML (INSERT, UPDATE, DELETE)

Mehr

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger

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

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

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

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

Mehr

VO Datenmodellierung. Katrin Seyr

VO Datenmodellierung. Katrin Seyr Datenintegrität Datenintegrität VO Datenmodellierung Katrin Seyr Institut für Informationssysteme Technische Universität Wien Katrin Seyr Seite 1 Datenintegrität 1. Überblick Überblick 1 Überblick 2 Integritätsbedingungen

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

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

Objektrelationale Datenbanken

Objektrelationale Datenbanken Vorlesung Datenbanksysteme vom 26.11.2008 Objektrelationale Datenbanken Konzepte objektrelationaler DBs SQL:1999 OO vs. OR Konzepte objektrelationaler Datenbanken Große Objekte (LOBs: Large Objects) Mengenwertige

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

6. Datenintegrität. Integritätsbedingungen

6. Datenintegrität. Integritätsbedingungen 6. Integritätsbedingungen dienen zur Einschränkung der Datenbankzustände auf diejenigen, die es in der realen Welt tatsächlich gibt. sind aus dem erstellten Datenmodell ableitbar (semantisch) und können

Mehr

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Dieser Fragenkatalog wurde aufgrund das Basistextes und zum Teil aus den Prüfungsprotokollen erstellt, um sich auf mögliche

Mehr

SQL und MySQL. Kristian Köhntopp

SQL und MySQL. Kristian Köhntopp SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)

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

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

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198 Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen

Mehr

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

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

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Aufgabensammlung SQL SW4 1. Einfache Anfragen Aufgabensammlung SQL SW4 1. Einfache Anfragen Buch: Kapitel 4.6 und 4.7. Datenbank: Die folgenden Anfragen beziehen sich auf die Universitätsdatenbank des Buches. Alle Umlaute werden umschrieben (hören

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

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

Mehr

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert Maika Büschenfeldt Datenbanken: Skript 1 1. Was ist eine relationale Datenbank? In Datenbanken können umfangreiche Datenbestände strukturiert abgelegt werden. Das Konzept relationaler Datenbanken soll

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

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

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

ER-Modellierung am Beispiel der Universitätsdatenbank aus der DBIS-Vorlesung

ER-Modellierung am Beispiel der Universitätsdatenbank aus der DBIS-Vorlesung ER-Modellierung am Beispiel der Universitätsdatenbank aus der DBIS-Vorlesung Datenbank-Praktikum SS 2010 Prof. Dr. Georg Lausen Florian Schmedding ER-Modell: Wiederholung Entitäten E Beziehungen B Attribute

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 - Übungen Bearbeitung der Datenbank Personal (1)

SQL - Übungen Bearbeitung der Datenbank Personal (1) Bearbeitung der Datenbank Personal (1) 1. Abfragen einer einzigen Tabelle 1.1. Zeigen Sie alle Informationen an, die über die Kinder der Mitarbeiter gespeichert sind. 1.2. Zeigen Sie aus der Tabelle stelle

Mehr

Datenbanken. Sommersemester 2010 Probeklausur

Datenbanken. Sommersemester 2010 Probeklausur Prof. Dr. V. Linnemann Christoph Reinke Universität zu Lübeck Institut für Informationssysteme Lübeck, den 29. Juli 2010 Datenbanken Sommersemester 2010 Probeklausur Hinweise: Es ist sinnvoll, die Aufgaben

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

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Fahren fort mit SQL Befehlen. Bilden Relationenalgebra auf SQL ab. So Umsetzung von Anfragen an die DB (bzw. Tabellen) möglich. SELECT

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

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

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Summenbildung in Bauteiltabellen mit If Then Abfrage

Summenbildung in Bauteiltabellen mit If Then Abfrage Summenbildung in Bauteiltabellen mit If Then Abfrage Die in Bauteiltabellen ausgelesenen Werte lassen sich in jeder Spalte als Summe berechnen. So können selbstverständlich die Flächen der in der Tabelle

Mehr

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov. 2007 Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5 Aufgabe 1: SQL-Queries Datenbanksysteme I a) Geben Sie

Mehr

Allgemeines zu Datenbanken

Allgemeines zu Datenbanken Allgemeines zu Datenbanken Was ist eine Datenbank? Datensatz Zusammenfassung von Datenelementen mit fester Struktur Z.B.: Kunde Alois Müller, Hegenheimerstr. 28, Basel Datenbank Sammlung von strukturierten,

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Die Excel Schnittstelle - Pro Pack

Die Excel Schnittstelle - Pro Pack Die Excel Schnittstelle - Pro Pack Die Excel Pro Pack ist eine Erweiterung der normalen Excel Schnittstelle, die in der Vollversion von POSWare Bestandteil der normalen Lizenz und somit für alle Lizenznehmer

Mehr

Ein Beispiel: Tabelle DICHTER

Ein Beispiel: Tabelle DICHTER Datenbanken Eine Datenbank ist eine Sammlung von Daten, die aus der Sicht des Benutzers zusammen gehören. Ein Datenbankverwaltungssystem (DBMS) ist ein informatisches System zur Verwaltung einer Datenbank.

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #4. SQL (Teil 2)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #4. SQL (Teil 2) Vorlesung #4 SQL (Teil 2) Fahrplan Eine weitere Aggregation: median Geschachtelte Anfragen in SQL Korrelierte vs. Unkorrelierte Anfragen Entschachtelung der Anfragen Operationen der Mengenlehre Spezielle

Mehr

Übungen zu Datenbanksysteme

Übungen zu Datenbanksysteme Institut für Informatik Universität Osnabrück, 19.05.2009 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/ dbs Dipl.-Math. Patrick Fox Abgabe bis 02.06.2009, 12:00 Uhr Übungen zu Datenbanksysteme

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

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 6b: Das relationale Modell Das Relationale Modell (vgl. Lerneinheit 6a) Wertebereiche (Domänen):

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

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

Carl-Christian Kanne. Einführung in Datenbanken p.1/513

Carl-Christian Kanne. Einführung in Datenbanken p.1/513 Einführung in Datenbanken Carl-Christian Kanne Einführung in Datenbanken p.1/513 Kapitel 1 Einführung Einführung in Datenbanken p.2/513 Einführung Was ist ein Datenbanksystem (DBS)? Ein System zum Speichern

Mehr