Teil VIII. Datenbanken
|
|
- Kathrin Bäcker
- vor 8 Jahren
- Abrufe
Transkript
1 Teil VIII Datenbanken
2 Überblick Datenbanken 1 Einführung Grundlegende Begriffe Motivation 2 Relationale Datenbanksysteme Das Relationale Datenmodell SQL 3 Entwurf von Datenbanken Der Datenbankentwurfsprozess Das Enity Relationship (ER) Modell Abbildung von ER-Diagrammen auf Relationenschemata Normalformen 4 DB-Anwendungsprogrammierung Programmierschnittstellen Transaktionen Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
3 Einführung Datenbanken Typische Aufgabe von Informationssystemen: Verwaltung von großen Datenbeständen = Datenbanken (DB) Zugriff auf Daten durch potentiell große Anzahl von Nutzern Hohe Anforderungen bezüglich Effizienz der Zugriffe (lesend und schreibend) Konsistenz (Widerspruchsfreiheit) der Daten Schnittstellen für einfache Nutzbarkeit Erfüllung dieser Anforderungen durch Programmieren eigener Lösungen für jede Anwendung extrem aufwändig Deshalb: spezielle Softwaresysteme zur Verwaltung von Datenbanken = Datenbankmanagementsysteme (DBMS) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
4 Datenbanken: Grundbegriffe Einführung DBMS DB DBS = DB + DBMS Ein Datenbankmanagementsystem (DBMS) ist ein Sammlung von ausführbaren Programmen, welche zur Umsetzung aller Zugriffe auf eine Datenbank verwendet werden. Eine Datenbank (DB) ist ein Sammlung strukturiert und dauerhaft gespeicherter Fakten für ein konkretes Anwendungsszenario Ein Datenbanksystem (DBS) ist eine durch ein DBMS zugreifbare Datenbank für ein konkretes Anwendungsszenario. Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
5 Einführung Datenbanksysteme: Anwendungsarchitektur Anwendung 1 Anwendung Datenbanksystem Administrator Ein Datenbanksystem (DBS) kann Daten für viele (oder eine) Anwendungen bereitstellen Nutzer können über die Anwendungen (oder direkt) auf im DBS verwaltete Daten zugreifen Administratoren als spezielle Nutzer zur Steuerung und Kontrolle des DBS Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
6 Einführung Datenbanksysteme: Kommunikationsarchitektur Anw1 Anw2 Anw1 Anw2 DBS Heute meist Client Server-Architektur: Anwendungen können von zahlreichen Installationen (Clients) auf verschiedenen Rechner über ein Netzwerk auf das DBS zugreifen Das DBS läuft auf einem (oder mehreren = verteilt) Rechnern (Server) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
7 Einführung Datenbankschema Struktur der Daten für eine konkrete Datenbank/Anwendung = Datenbankschema, z.b. Schema für eine DB mit Studentendaten Schema für eine DB mit Produktdaten Schema für eine DB mit Kundendaten Schema ist formale Festlegung und verwendet ein Daten(bank)modell als Sprache zur Datendarstellung Datenmodell umfaßt alle möglichen Mittel zur Beschreibung der Struktur der Daten, ist anwendungsunabhängig und durch das verwendete DBMS festgelegt Beispiel: das soziale Netzwerk StudiVZ (= DBS) speichert Daten über Studenten, Freunde, etc. (= Datenbankschema) in verschiedenen Tabellen mit Spalten etc. (= Datenmodell) in einer MySQL (= DBMS) Datenbank Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
8 Einführung Datenbanksysteme: Beispiele /1 ebay Online Auktionshaus: WWW-basierte Plattform zum Kauf oder Verkauf beliebiger Waren auf Auktionsbasis 212 Millionen Nutzer 26 Millionen Zugriffe pro Tag 2 Petabyte Datenvolumen DVDs voll Daten DBSMS: Oracle Database, Analysen über Teradata UnivIS der OvGU: WWW-basiertes Informationssystem zu Lehrangeboten an der Otto-von-Guericke-Universität Daten zu über 5000 Lehrveranstaltungen, über 5000 Personen, über 400 Räume, etc. Über 300 schreibberechtigte Nutzer Ca 1.5 Millionen Anfragen pro Monat DBMS: eigene Lösung des Anbieters Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
9 Einführung Datenbanksysteme: Beispiele /1 Wal-Mart Data Warehouse: System zur Warenkorbanalyse von Daten der Registrierkassen bei der amerikanischen Handelskette 500 Terabyte Daten Daten-DVDs DBMS: Teradata StudiVZ.net: SAP ERP : WWW-basiertes soziales Netzwerk Persönliche Daten von über 6 Millionen Nutzern DBMS: MySQL DB-basiertes Anwendungssystem Unternehmensweites Informationssystem zur Unterstützung zahlreicher geschäftsrelevanter Bereiche Datenvolumen und Nutzerzahl abhängig vom konkreten Unternehmen DBMS: zahlreiche verschiedene DBMS können verwendet werden Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
10 DBS Motivation Datenbanken Einführung Wozu benötigen wir DBMS? Warum speichern wir die Daten nicht einfach in Dateien, die wir aus unseren Anwendungen auslesen? Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
11 Einführung DBS Motivation: Große Datenmengen Große Datenmengen vor allem problematisch bzgl. Effizienz Wie können für einen Nutzer relevante Daten in riesigen Datenmengen schnell gefunden werden? Zum Beispiel Eine konkrete Auktion bei ebay aus vielen Terabyte Auktionsdaten? Eine bestimmte Person bei StudiVZ aus vielen Millionen? Wie können große Datenmenge effizient ausgewertet und analysiert werden? Zum Beispiel Welche Produkte in Wal-Mart-Filialen wurden im Vergleich zu den Vorjahren weniger oft verkauft? Und: warum? DBMS bieten für Festplatten optimierte Datenstrukturen und hoch-effiziente Operationen an Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
12 DBS Motivation: Viele Nutzer Einführung Eine große Nutzeranzahl impliziert zwei Anforderungen Effizienz, zum Beispiel Wie werden die zahlreichen parallelen Zugriff auf Web-Datenbanken wie StudiVZ oder ebay umgesetzt? Wie können diese so ausgeführt werden, dass sie sich möglichst wenig gegenseitig beeinflussen? Konsistenz, zum Beispiel Wie kann sichergestellt werden, dass zwei geleichzeitige Nutzer von UnivIS ihre Eingaben zu einer Vorlesung nicht gegenseitig überschreiben? Wie kann die korrekte Reihenfolgen von Geboten bei ebay sichergestellt werden? DBMS bieten effiziente Lösungen zur Synchronisation paralleler Zugriffe Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
13 DBS Motivation: Konsistenz Einführung Ablaufkonsistenz bei parallelen Zugriffen: s.o. Widerspruchsfreiheit durch Vermeidung von Redundanzen (Problem: mehrfache Abspeicherung), zum Beispiel Wie kann vermieden werden, dass zwei Mitarbeiter eines Unternehmens zwei unterschiedliche Kostenkalkulationen für ein Produkt erstellen? Erzwingung konsistenter Datenbankzustände, zum Beispiel Wie kann in UnivIS vermieden werden, dass zwei Vorlesungen zur selben Zeit im selben Hörsaal stattfinden? Wie kann vermieden werden, dass das Alter einer Person einen negativen Wert annimmt? Wie kann vermieden werden, dass zwei Studenten dieselbe Matrikelnummer haben? DBS zur integrierten (zentralen) Speicherung mit umfangreichen Mittel zur Sicherstellung der Korrektheit der Daten Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
14 Einführung DBS Motivation: Datenschutz und -sicherheit Datenschutz, zum Beispiel Wie kann sichergestellt werden, dass nur meine Freunde bei StudiVZ bestimmte persönliche Daten sehen? Wie kann eine Firma bestimmte Daten aus SAP ERP ihren Kunden zur Verfügung stellen, interne Daten aber vor unberechtigten Einblicken verstecken? Datensicherheit, zum Beispiel Was passiert mit meinen Daten, wenn mein Rechner abstürzt? Was passiert mit Daten, wenn die Festplatte, auf der diese gespeichert sind, einen irreparablen Schaden hat? DBMS bieten umfangreiche Mechanismen zum Schutz vor Datenverlust und unberechtigten Zugriffen Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
15 Einführung DBS Motivation: Einfache Nutzung Der Nutzer sollte für den Zugriff sein Informationsbedürfnis beschreiben, nicht aber den Weg, wie dieses erfüllt wird (deklarative Sprache) Zugriff auf die Daten sollten möglichst auch ohne Programmierung (Ad Hoc) möglich sein Es sollte egal sein, mit welcher Hardware-Plattform der Nutzer arbeitet Bei der Nutzung von Daten aus einer Anwendung sollte die verwendete Programmiersprache beliebig gewählt werden können Die Entwicklung von Anwendungsprogrammen sollte möglichst unabhängig von der Entwicklung der Datenbank erfolgen können DBMS setzen Zugriff über standardisierte Anfragesprachen und Programmierschnittstellen um Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
16 Warum... Datenbanken für Ingenieure? Die Anforderungen von zahlreichen Ingenieuranwendungen sind typisch für datenbankbasierte Systeme: Große Datenmengen für Produktmodelle Zahlreiche Mitarbeiter (Teams von Ingenieuren u.a.) die gemeinsam diese Daten bearbeiten Hohe Anforderungen an Konsistenz, Sicherheit und Schutz der Produktmodelldaten Deshalb sind zahlreiche Ingenieuranwendungen wie zum Beispiel EDM- oder CAD-Systeme oft unter Nutzung von DBMS umgesetzt. Auch im Arbeitsumfeld finden sich zahlreiche DB-basierte System wie SAP ERM oder Workflow Management-Systeme.
17 Relationale Datenbanksysteme Relationale Datenbanksysteme Einfache Grundidee: speichere alle Daten in Tabellen Relational, weil... abgeleitet vom mathematischen Konzept der Relationen als Menge von Tupeln (etwa: Tabellenzeilen) mit Werten für Attribute mit unterschiedlichen Wertebereichen (Tabellenspalten) Überwiegende Mehrheit aktueller DBMS sind relationale DBMS RDBMS Die standardisierte Datenbanksprache SQL implementiert relationales Datenmodell (mit kleinen Abweichungen von der Theorie und von verwendeten Begriffen) Hinweis: im folgenden gehen wir von in SQL verwendeten Begriffen aus Gegenwärtiger Stand: objekt-relationale DBMS (ORDBMS) (SQL:2008) mit objektorientierten Erweiterungen (in dieser Vorlesung nicht behandelt) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
18 Aktuell verbreitete DBMS Relationale Datenbanksysteme Kommerzielle relationale DBMS, z.b. Oracle Database IBM DB2 Microsoft SQL Server Freie (Open Source) RDBMS, z.b. MySQL PostgreSQL Speziallösungen: Für Analyse großer Datenmengen in Data Warehouse Systemen, z.b. Teradata Andere Datenmodelle, wie z.b. objektrorientierte DBMS (Objectivity, Versant) oder XML DBMS (Xindice, exist) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
19 Relationale Datenbanksysteme RDBMS Grundkonzepte: Tabellen Tabellen haben Namen und bestehen aus Spalten und Zeilen Schema der Tabelle besteht aus fester Anzahl von Spalten Spalten repräsentieren Eigenschaften haben Namen und festgelegten Datentyp Zeilen repräsentieren eigentliche Daten haben für jede Spalte einen Spaltenwert Tabelle hat beliebiebige Anzahl von Zeilen (inklusive leerer Tabelle) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
20 Relationale Datenbanksysteme RDBMS Grundkonzepte: Schlüssel Schlüssel (auch Primärschlüssel) erlauben eindeutige Identifizierung von Datensätzen (Zeilen) innerhalb einer Tabelle Einzelne Spalte oder Kombination mehrerer Spalten, deren Wert(ekombination) innerhalb der Tabelle einmalig ist Existieren solche Spalten nicht, kann eine Spalte mit künstlich erzeugten eindeutigen Werten (Surrogatschlüssel) eingeführt werden Dient vor allem der Referenzierung der Daten aus anderen Tabellen Fremdschlüssel Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
21 Relationale Datenbanksysteme RDBMS Grundkonzepte: Fremdschlüssel Tabellen beinhalten bloß Zeilen mit fester Anzahl von atomaren Werten Komplexere Beziehungen zwischen Daten werden über Fremdschlüsselbeziehungen zwischen Zeilen dargestellt: Verwendung des Schlüssels einer Zeile als spezieller Spaltenwert in einer anderen Zeile(meist aus einer anderen Tabelle) N:1-Beziehung: eine beliebige Anzahl (N) Datensätze in einer Tabelle beziehen sich auf einen anderen Datensatz Beispiel: Studenten wird genau ein Studiengang zugeordnet, ein Studiengang umfaßt viele Studenten N:M-Beziehung: beliebig viele (N) Datensätze einer Tabelle können sich auf beliebig viele (M) andere Datensätze beziehen Beispiel: ein Student kann viele Vorlesungen besuchen, eine Vorlesung wird von vielen Studenten besucht Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
22 Relationale Datenbanksysteme RDBMS Grundkonzepte: Fremdschlüssel N:1 Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
23 Relationale Datenbanksysteme RDBMS Grundkonzepte: Fremdschlüssel N:M Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
24 Relationale Datenbanksysteme Weitere RDBMS Konzepte NULL-Werte: kann ein Spaltenwert nicht angegeben werden (weil z.b. nicht bekannt oder nicht existent), kann der vordefinierte und typunabhängige WertNULL verwendet werden Für Spalten und Tabellen können Integritätsbedingungen (Integrity Constraints) angegeben werden, die konsistenten Zustand beschreiben Eindeutigkeit von Spaltenwerten (UNIQUE) Spaltenwert muss angegeben werden (NOT NULL) Spaltenwert ist Schlüssel (PRIMARY KEY = UNIQUE + NOT NULL) Wertebereichseinschränkungen Referentielle Integrität: Fremschlüsselwert muss als Primärschlüssel in korrespondierender Tabelle existieren... Zahlreiche weitere Konzepte hier nicht diskutiert Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
25 Operationen auf Tabellen Relationale Datenbanksysteme Anfrageoperationen basieren auf Relationaler Algebra Eingabe: Relation(en) Ausgabe: Relation(en) Grundlegende Operationen Selektion: Auswahl von Tupeln (Zeilen) durch Angabe einer Auswahlbedingung Projektion: Auswahl von Attributen (Spalten) durch Angabe von deren Namen Verbundoperationen: (engl. Joins) Zusammenführen von Tupeln verschiedener Relationen (Tabellen) über Verfolgung von Fremdschlüsselbeziehungen oder durch die Angabe von Verbundbedingungen Mengenoperationen: zum Beispiel Vereinigung oder Schnittmenge von Relationen umgesetzt durch Anfragesprache SQL Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
26 Relationale Datenbanksysteme SQL Die Structured Query Language Deklarative Anfragesprache SQL Anfrage beschreibt lediglich zu liefernde Daten RDBMS entscheidet selbständig, wie Ergebnis effizient berechnet werden kann Im Gegensatz zu imperativen Programmiersprachen, die genauen Ablauf der Berechnung festlegen Geschichte Entwickelt in den 1970ern bei IBM Erfolgreiche Standardisierung seit 1986 SQL-92 umfaßt relationalen Sprachkern und wird von vielen RDBMS vollständig unterstützt Aktuelle Version SQL:2008 umfaßt zahlreiche Erweiterungen (Objektorientierung, XML, Multimedia, etc.) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
27 Relationale Datenbanksysteme Teile von SQL Anfragesprache (SQL-Kern): lesende Zugriffe durch Umsetzung der relationalen Operationen zum Auswahl von Zeilen, Spalten sowie Verbund und Mengenoperationen auf Tabellen + SQL-spezifische Erweiterungen (z.b. Sortierung, Gruppierung, etc.) Data Manipulation Language (DML): Erzeugen, Ändern und Löschen von Datensätzen in Tabellen Data Definition Language (DDL): Erzeugen, Ändern und Löschen von Tabellen sowie Indexen (Baum- oder Hash-Datenstrukturen für Zugriffsbeschleunigung) und Sichten (aus Anfragen definierte virtuelle Tabellen) Weitere Teile: Zugriffsrechte (Data Control Language) Transaktionen zur Steuerung der Ablaufkonsistenz Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
28 Relationale Datenbanksysteme Überblick SQL Im folgenden Teile von SQL erklärt entsprechend Reihenfolge der Nutzung entspricht nicht unbedingt Bedeutung 1 Erzeugung von Tabellen DDL Einmalig genutzt beim Erstellen der Datenbank 2 Einfügen von Daten DML Erzeugung und Modifikation in meisten Anwendungen seltener als... 3 Lesen der Daten Anfragesprache meist sehr oft angewandt Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
29 Relationale Datenbanksysteme SQL DDL: Operationen für Tabellen Erzeugen einer Tabelle CREATE TABLE student ( matrnr CHAR(6) PRIMARY KEY, name VARCHAR(50) NOT NULL, vorname VARCHAR(50)NOT NULL, geburt DATE, sgid CHAR(5) ); Ändern einer Tabelle: Hinzufügen/Löschen/Ändern von Spalten, Constraints, etc. ALTER TABLE student (ADD DROP MODIFY CHANGE)...; Löschen einer Tabelle DROP TABLE student; Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
30 Relationale Datenbanksysteme SQL DDL: Basisdatentypen laut SQL Standard Ganzzahlige Datentypen:smallint,int bzw.integer, bigint Festkommazahlen (garantierte Genauigkeit der Nachkommastellen):numeric (n, m) bzw.decimal (n, m) Gleitkommazahlen:float (m),real,double Zeichenkettencharacter (n) bzw.char (n),varchar (n) bzw.character varying (n) Zeiten und Datumsangaben:date,time,timestamp Logische Werte:boolean Große Binär- oder Textdatenblob (n) bzw.binary large object (n),clob Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
31 SQL DDL: Indexe und Sichten Relationale Datenbanksysteme Erzeugen einer logischen Sicht (virtuelle Tabelle) durch Anfrage ( ) CREATE VIEW alte_studenten AS SELECT * FROM student WHERE geburt < ; Sicht kann (mit Einschränkungen bzgl. Änderungen) wie eine normale Tabelle genutzt werden Daten werden aber nicht erneut (redundant) abgespeichert Erzeugen eines Index CREATE INDEX studenten_name ON student (name); Erzeugt eine Indexdatenstruktur in den meisten DBMS einen B-Baum welche eine schnelle Suche nach Datensätzen mit der angegebenen Spalte als Suchkriterium, z.b. bei SELECT * FROM student WHERE name = Müller ; System erkennt automatisch, dass hier der Index verwendet werden kann Ändern und Löschen von Indexen überalter unddrop Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
32 Relationale Datenbanksysteme SQL DML: Daten Einfügen, Ändern, Löschen Gebräuchlichste Form desinsert-statements zum Einfügen von Zeilen INSERT INTO student VALUES ( , Müller, Eva, , MB ); Ändern und Löschen von Zeilen basiert auf Angabe einer Bedingung inwhere-klausel (siehe Anfragesprache ), welche Zeilen davon betroffen sein sollen UPDATE student SET name = Meier WHERE matrnr = ; DELETE FROM student WHERE matrnr = ; Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
33 Relationale Datenbanksysteme SQL Anfragesprache Grundaufbau durch SFW-Block SELECT <Projektion auf Ausgabespalten> FROM <Eingabetabellen ggf. mit Verbund> WHERE <Selektionsbedingungen>; SELECT undfrom müssen angegeben werden WHERE ist optional aber meist verwendet Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
34 SQL Anfragesprache: Projektion Relationale Datenbanksysteme Projektion ist die Auswahl von in der Ergebnisrelation enthaltenen Spalten (Auswahl aus Eingaberelation) In SQL umgesetzt in derselect Klausel: Erfordert Angabe der Spaltennamen Erlaubt auch Umbenennung durchas, z.b. SELECT name AS nachname...; Erlaubt im Zusammenhang mit Gruppierung ( ) auch Aufruf von Aggregatfunktionen zur Berechnung von einem einzelnen Spaltenwert aus ggf. vielen Gruppenwerten (z.b. Mittelwert, Anzahl, Summe, Minimum, Maximum,...) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
35 Relationale Datenbanksysteme SQL Anfragesprache: Projektion Beispiel SELECT name, vorname FROM student; Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
36 Relationale Datenbanksysteme SQL Anfragesprache: Projektion mit Duplikateliminierung SELECT DISTINCT name, vorname FROM student; Eliminierung von Duplikaten passiert (im Gegensatz zur Theorie der relationalen Algebra) in SQL nicht automatisch Erfordert Angabe des SchlüsselwortsDISTINCT Vorsicht: Duplikateliminierung ggf. sehr aufwändige Operation, da u.u. Sortierung oder Erstellung einer Hash-Tabelle notwendig ist Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
37 Relationale Datenbanksysteme SQL Anfragesprache: Selektion Selektion ist die Auswahl von Zeilen der Eingabetabelle für die Ergebnistabelle In SQL durch die WHERE-Klausel umgesetzt Selektion hat als Parameter eine Bedingung, welche das Auswahlkriterium umfaßt Prädikate sind einfache (atomare) Bedingungen, zum Beispiel name = Müller kontostand > 0 student.sgid = studiengang.sgid immadatum < exmadatum Komplexe Bedingungen können durch logische OperatorenAND, OR,NOT (Negation) etc. sowie Klammerung gebildet werden Auch existenz- und allquantifizierte geschachtelte Anfragen als Prädikate möglich (hier nicht behandelt) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
38 Relationale Datenbanksysteme SQL Anfragesprache: Selektion Beispiel SELECT * FROM student WHERE name = Müller OR name = Schulze Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
39 Relationale Datenbanksysteme SQL Anfragesprache: Selektionsprädikate SELECT * FROM student WHERE name LIKE S% ; SQL beinhaltet zahlreiche spezielle Prädikate, als Operatoren oder Funktionen Hier: häufig verwendete Textähnlichkeit durch Wildcard-Muster mitlike (% als Auslassung einer Zeichenfolge beliebiger Länge, _ als Auslassung eines einzelnen Zeichens) Im Beispiel: alle Studenten, deren Nachname mit S beginnt Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
40 Relationale Datenbanksysteme SQL Anfragesprache: Verbund Verbund (engl. Join) macht aus Zeilen zweier (oder mehrerer) Eingabetabellen eine Zeile der Ergebnistabelle Sehr wichtige Operation, da wegen einfacher Struktur des relationalen Datemodells zusammengehörige Daten meist über mehrere Tabellen verteilt abgespeichert werden müssen (z.b. durch Normalisierung, s.u.) Zahlreiche spezielle Verbundoperationen in SQL durch verschiedenen Syntax unterstützt Einfachste und gebräuchlichste Form des Verbundes in SQL: Angabe der zu verbindenden Tabellen in derfrom-klausel (kommasepariert) Angabe einer Verbundbedingung (z.b. Primärschlüssel = Fremdschlüssel) in derwhere-klausel Wichtige Alternativen: Natural Join und Kartesisches Produkt (s.u.) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
41 Relationale Datenbanksysteme SQL Anfragesprache: Verbund Eingabe Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
42 Relationale Datenbanksysteme SQL Anfragesprache: Verbund Ausgabe SELECT s.name, s.vorname, sg.bezeichnung AS studiengang FROM student s, studiengang sg WHERE s.sgid = sg.sgid; Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
43 Relationale Datenbanksysteme SQL Anfragesprache: Weitere Verbundoperationen Gleiches Ergebnis alternativ übernatural JOIN möglich SELECT name, vorname, bezeichnung AS studiengang FROM student NATURAL JOIN studiengang; Kann direkt in derfrom-klausel angegeben werden Funktioniert nur, wenn namensgleiche Spalten in beiden Tabellen existieren Für diese Spalten werden Zeilen mit gleichen Spaltenwerten verbunden Was passiert, wenn keine Verbundbedingung angegeben wird? Berechnung des kartesischen Produkts (Kreuzprodukt) Jede Zeile der einen Eingabetabelle wird mit jeder Zeile der anderen Eingabetabelle verbunden (alle möglichen Kombinationen) Vorsicht: Ergebnis kann u.u. sehr groß sein Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
44 Relationale Datenbanksysteme SQL Anfragesprache: Kartesisches Produkt T1 T2 SELECT * FROM t1,t2; Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
45 Relationale Datenbanksysteme SQL Anfragesprache: Gruppierung SELECT sgid, COUNT(*) AS anzahl FROM student GROUP BY sgid; Gruppierung fasst Zeilen mit gleichen Werten für Gruppierungsspalten zu einer Zeile zusammen Spalten, die nicht Gruppierungsspalten sind, und somit keine gleichen Werte haben, können mit Aggregatfunktionen zusammengefaßt werden, z.b COUNT() - Anzahl von Werten SUM() - Summe der Werte AVG() - Mittelwert MIN() - Minimum MAX() - Maximum Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
46 Relationale Datenbanksysteme SQL Anfragesprache: Sortierung SELECT * FROM student ORDER BY matrnr ASC; Angabe eines Sortierkriteriums für die Ergebnistabelle bestehend aus Spalte(n) und ReihenfolgeASC (ascending = aufsteigend, default) oder DESC (descending = absteigend) Reihenfolge der Zeilen in der Ergebnistabelle erhält damit konkrete Bedeutung Tabelle entspricht dann Datentyp Liste, ohne Sortierung Multimenge Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
47 Relationale Datenbanksysteme SQL Anfragesprache: Mengenoperationen SELECT * FROM t1 UNION SELECT * FROM t2; MengenoperationenUNION (Vereinigung),INTERSECT (Schnittmenge) undexcept (Mengendifferenz) Erwartet für Eingabetabellen kompatible Schemata (gleiche Spaltenanzahl mit kompatiblen Datentypen) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
48 Zusammenfassung: RDBMS Relationale Datenbanksysteme Relationales Datenmodell heute Standard im Bereich Datenbanken Darstellung von Daten in Form von Tabellen mit festgelegter Struktur Zeilen repräsentieren Datenobjekte Spalten legen Wertebereiche für einzelne Eigenschaften fest Komplexere Beziehungen durch Schlüsselbeziehungen über verschiedene Tabellen hinweg dargestellt SQL als deklarative Anfragesprache für RDBMS SELECT... FROM... WHERE-Block für lesende Zugriffe INSERT,UPDATE unddelete zur Modifikation von Daten (DML) CREATE,ALTER unddrop zur Veränderung der Schemata (Tabellendefinitionen) (DDL) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
49 Entwurf von Datenbanken Entwurf von Datenbanken Bisher: was sind Datenbanken? Wie funktionieren sie? Im Folgenden: wie entwickle ich eine Datenbank? Was ist eine gute Datenbank? Der Datenbankentwurfsprozess Das Entity Relationship (ER) Modell Abbildung von ER-Diagrammen auf Relationenschemata Normalformen als Qualitätskriterien Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
50 Entwurf von Datenbanken Der Datenbankentwurfsprozess Datenbankentwurfsprozess beschreibt systematische Vorgehensweise zur Entwicklung einer Datenbanklösung: Ausgehend von Anforderungen an zu entwickelnde Lösung über eine schrittweise Verfeinerung des Entwurfs bis hin zur Implementierung und zum Einsatz der Lösung Angelehnt an Software-Entwicklungsprozess ( ) zur Entwicklung allgemeiner Software-Lösungen Unabhängig von konkretem Anwendungsszenario Im folgenden: Entwurf relationaler Datenbanken Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
51 Entwurf von Datenbanken Phasen des Datenbankentwurfsprozesses Anforderungsanalyse Dokumentatation Konzeptueller Entwurf Konzeptuelles Schema z.b. Entity Relationship Diagramm Logischer Entwurf Logisches Schema = Tabellen- und Spaltendefinition Datendefintion und Implementierung Datenbank Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
52 Entwurf von Datenbanken Phasen des Datenbankentwurfs /1 Anforderungsanalyse: Sammlung von Anforderungen, die zu entwickelndes Datenbanksystem beschreiben Z.B. Informationsbedarf zukünftiger Anwender, zu unterstützende Abläufe, etc. Ergebnis: informell festgehaltene Dokumentation der Anforderungen Konzeptueller Entwurf: Entwicklung eines implementierungsunabhängigen (abstrakt, high-level) Datenbankschemas Erste Strukturierung für Anwendungsdaten Dient der schrittweisen Verfeinerung des Entwurfs sowie der Diskussion verschiedener Entwickler untereinander und mit Anwendern Ergebnis: konzeptuelles Schema, z.b. als Entity Relationship Diagramm Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
53 Entwurf von Datenbanken Phasen des Datenbankentwurfs /2 Verteilungsentwurf (optional): nur für verteilte Systeme Festlegung des Speicherorts der Daten im Netz Prinzipiell unabhängig vom Implementierungsmodell (nächster Schritt) Erfolgt meist aber als Teil des physischen Entwurfs Ergebnis: Verteilungsschema Logischer Entwurf: Überführung in relationales Datenmodell für Implementierung sowie Erfüllung von Qualitätskriterien (Normalformen) durch Normalisierung Entwurf geeigneter Tabellenstrukturen zur Darstellung der Anwendungsdaten Qualitätskriterium: Strukturen vermeiden Abspeicherung widersprüchlicher Daten Ergebnis: logisches Schema Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
54 Entwurf von Datenbanken Phasen des Datenbankentwurfs /3 Physischer Entwurf: ermöglicht Beeinflussung interner Speicherstrukturen zu Zwecken der Performance Optimierung Festlegen von Indextsrukturen (Hash-Tabellen, B-Bäume) für Zugriffspfade Weitere Mittel: materialisierte Sichten (Vorberechnung) sowie Partitionierung (Teile und Herrsche) Datendefinition und Implementierung: Erstellen enstprechender DDL-Statements und deren Ausführung Erzeugung von Tabellen, Sichten und Indexstrukturen Ergebnis: (leere) Datenbank Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
55 Entwurf von Datenbanken Das Enity Relationship (ER) Modell Standard für die konzeptuelle Modellierung von Datenbankschemata Ziel: Darstellung der Inhalte und Bedeutung (auch semantische Modellierung) Was wird durch das Schema dargestellt (welche Daten)? Nicht: wie werden die Daten dargestellt (Implementierung)? Dient der Diskussion (Entwickler und Anwender) und Verfeinerung der Schemata Deshalb möglichst einfache Modellierungskonstrukte: Gegenstände (Entities), deren Beziehungen untereinander (Relationships) und Eigenschaften (Attributes) Eigentliche Modellierung auf Typebene: Gegenstände mit gleichen Eigenschaften und Beziehungen werden zu einem Entity Type zusammgefaßt (analog Relationship Types) Begriffe Entity und Relationship werden meist verkürzend für Entity Types bzw. Relationship Types verwendet Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
56 ER Modell: Einführendes Beispiel Entwurf von Datenbanken Student besucht Vorlesung MatrNr Name Vorname Semester ID Bezeichnung Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
57 Entwurf von Datenbanken ER Modell: Grundlegende Grafische Notation Entity (Type): Rechteck mit Typbezeichner Relationship (Type): Raute mit Typbezeichner Attribut: abgerundete Box oder Ellipse mit Attributbezeichner, Schlüssel mit Unterstreichung Zahlreiche abweichende grafische Darstellungen in verwandten Ansätzen und Entwicklungs-Tools mit gleicher oder ähnlicher Beduetung sowie ggf. Erweiterungen Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
58 Entwurf von Datenbanken ER Modell: Kardinalitäten Kardinalitäten geben numerische Grenzen an, wie Objekte verschiedener Typen miteinander in Beziehung stehen können Beispiele: Ein Student kann beliebig viele Vorlesungen besuchen Eine Vorlesung kann (je nach Kapazität des Hörsaals) von vielen Studenten besucht werden Eine Vorlesung wird von genau einem Dozenten angeboten Eine Person kann mit maximal einer anderen Person verheiratet sein (optional) Jede Person hat genau eine Mutter und genau einen Vater Von entscheidender Bedeutung bei Überführung in das Relationenmodell Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
59 Entwurf von Datenbanken ER Modell: Kardinalitäten 1:N [1,1] [1,*] Dozent hält Vorlesung ist äquivalent zu: 1 * Dozent hält Vorlesung 1:N-Beziehung: ein Objekt darf mit beliebig vielen eines anderen Typs in Beziehung stehen, aber eindeutige Zuordnung in die andere Richtung Min/Max-Notation: Angabe der minimimalen und maximalen Anzahl, in der das Objekt in Beziehung stehen kann Abkürzende Schreibweise verwendet nur Obergrenze (Optionalität mit Untergrenze 0 so aber schlecht abbildbar) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
60 Entwurf von Datenbanken ER Modell: Kardinalitäten N:M Student besucht Vorlesung ist äquivalent zu: * * Student besucht Vorlesung N:M-Beziehungen (Objekte beider beteiligter Typen können beliebig oft in Beziehung stehen) sind bei keiner Angabe von Kardinalität der angenommene Standardfall Oft auch auch N und M als Notation für Kardinalitäten verwendet Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
61 Entwurf von Datenbanken ER Modell: Optionale Beziehungen [0,1] verheiratet Person [0,1] Beispiel für eine optionale Beziehung Außerdem selbst-bezüglich auf Typ-Ebene: auch Objekte des selben Typs können in Beziehungen zueinander stehen Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
62 ER Modell: Weitere Konstrukte Entwurf von Datenbanken Dozent Vorlesung Gebäude hält hat Raum Raum Mehrstellige Beziehungstypen Schwache (existentiell abhängige) Entitätstypen Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
63 Entwurf von Datenbanken Abbildung von ER-Diagrammen auf Relationenschemata ER Modell ist prinzipiell unabhängig vom Implementierungsmodell In der Praxis meist eingesetzt als Entwurfsmittel für relationale Datenbanken Überführung von ER Diagrammen auf Relationenschemata geschieht nach einfachen Regeln Im folgenden illustriert an folgendem einfachen Beispiel: Artikel * * * 1 in Bestellung von Kunde ArtikelNr BestellNr KundenNr Bezeichnung Anzahl Rabat Name Preis Datum Anschrift Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
64 Entwurf von Datenbanken Abbildung von ER-Diagrammen: Entities Artikel ArtikelNr Bezeichnung Preis Artikel Alle Entities werden auf separate Tabellen abgebildet Attribute werden Spalten, konkrete Datentypen müssen festgelegt werden Schlüsselattribute werden Schlüssel der Tabelle Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
65 Entwurf von Datenbanken Abbildung von ER-Diagrammen: N:M-Beziehungen Artikel * * in Bestellung ArtikelNr Bezeichnung Preis Anzahl BestellNr Rabat Datum Artikel Bestellung ArtikelBestellung Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
66 Entwurf von Datenbanken Abbildung von ER-Diagrammen: N:M-Beziehungen /2 N:M-Beziehungen müssen generell auf separate Tabellen abgebildet werden Schlüssel der Beziehungstabelle bildet sich aus zusammengesetzten Schlüsseln der in Beziehung stehen Entity-Tabellen Teilschlüssel dienen als Fremdschlüssel auf Entity-Tabellen Attribute der Beziehung werden Spalten der Beziehungstabelle Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
67 Entwurf von Datenbanken Abbildung von ER-Diagrammen: 1:N-Beziehungen Bestellung * 1 von Kunde BestellNr Rabat Datum Bestellung Kunde KundenNr Name Anschrift Bei 1:N-Beziehungen Verschmelzung der Beziehungstabelle mit der Entity-Tabelle der N-Kardinalität möglich Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
68 Entwurf von Datenbanken Abbildung von ER-Diagrammen: Optionale Beziehungen Optionale Beziehungen, egal ob N:M, 1:N oder 1:1, sollten als separate Tabelle umgesetzt werden Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
69 Entwurf von Datenbanken Schemakonsistenz Ergebnis der Überführung ist relationales Datenbankschema Zweiter Teilschritt des logischen Entwurfs umfaßt Sicherstellung der Schemakonsistenz Allgemein drei wichtige Kriterien der Konsistenz (Widerspruchsfreiheit) für Schemata und Daten Modellkonsistenz: reale Informationen können im Schema korrekt dargestellt werden muss durch konzeptuellen Entwurf und korrekte Überführung in Relationenmodell sichergestellt werden Semantische Konsistenz: die gespeicherten Daten sind korrekt (stehen nicht im Widerspruch zur Wirklichkeit) kann durch Integritätsbedingungen und Anwendungslogik unterstützt werden, letzten Endes aber Verantwortlichkeit der Anwender Schemakonsistenz: Daten müssen untereinander widerspruchsfrei sein Sicherstellung durch Vermeidung mehrfacher Abspeicherung von Informationen (Redundanz) Normalformen als Qualitätskriterium Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
70 Entwurf von Datenbanken Redundanz und Inkonsistenzen Mehrfache Speicherung der selben Realweltfakten (Redundanz) ermöglicht Dateninkonsistenzen Erkennbar an Abhängigkeiten zwischen Attributwerten Sollen durch Normalisierung vermieden werden Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
71 Entwurf von Datenbanken Funktionale Abhängikeiten Funktionale Abhängikeiten in einer Tabelle liegen vor, wenn Werte einer Spalte (oder einer Gruppe von Spalten) einen eindeutigen Schluss auf die Werte einer anderen (Gruppe von) Spalte(n) zulassen Funktional, weil... eindeutige Werteabbildung entspricht mathematischem Konzept der Funktion: für einen Eingabewert ist nur ein Ergebniswert möglich (Eindeutigkeit) Beispiele: Die Postleitzahl bestimmt eindeutig den Ort Die Matrikelnummer (Schlüssel) bestimmt alle weiteren Eigenschaften eines Studenten Vorwahl und Telefonnummer bestimmen eindeutig alle Eigenschaften des Anschlusses Semester, Termin und Raum bestimmen eindeutig Vorlesungstitel und Dozenten Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
72 Entwurf von Datenbanken Normalformen Ziel der Normalisierung: alle Spalten einer Tabelle sollen nur vom vollständigen Schlüssel abhängen, d.h. dadurch bestimmt sein (3. Normalform) Erreichen von Normalformen z.b. durch schrittweises Zerlegen Wichtigste Normalformen: 1. Normalform: nur atomare Werte in jeder Spalte 2. Normalform: keine funktionalen Abhängigkeiten von einem Teil des Schlüssels 3. Normalform: keine funktionalen Abhängigkeiten zwischen Nicht-Schlüsselattributen Zahlreiche weitere Normalformen existieren Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
73 Entwurf von Datenbanken 1. Normalform: Problem 1. Normalform: nur atomare Werte in jeder Spalte (grundlegende Anforderung im Relationenmodell) Problem: mengen- oder listenwertige Spalten Eigentlich kein Problem bzgl. Redundanz, aber Voraussetzung für weitere Normalformen Erleichtert Lesen und Modifikation von Daten Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
74 Entwurf von Datenbanken 1. Normalform: Lösung Abspalten einer separaten Tabelle mit folgenden Spalten: Schlüssel der Ursprungstabelle Spalte für einzelne Einträge der Menge Schlüssel der neuen Tabelle sind beide Spalten gemeinsam Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
75 Entwurf von Datenbanken 2. Normalform: Problem 2. Normalform: 1. Normalform + keine funktionalen Abhängigkeiten von nur einem Teil des Schlüssels Problem: mögliche Redundanzen durch sich oft wiederholende Wertepaare Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
76 Entwurf von Datenbanken 2. Normalform: Lösung Abspalten einer separaten Tabelle mit folgenden Spalten: Teilschlüssel der Ursprungstabelle, von welchem andere Spalte(n) abhängig Alle vom Teilschlüssel abhängig Spalten Abhängige Spalten werden aus der Originaltabelle entfernt Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
77 Entwurf von Datenbanken 3. Normalform: Problem 3. Normalform: 2. Normalform + keine funktionalen Abhängigkeiten zwischen Nicht-Schlüsselattributen Problem: mögliche Redundanzen durch sich oft wiederholende Wertepaare Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
78 3. Normalform: Lösung Datenbanken Entwurf von Datenbanken Abspalten einer separaten Tabelle mit folgenden Spalten: Bestimmende Spalte(n) als Schlüssel Alle davon abhängigen Spalten Abhängige Spalten werden aus der Originaltabelle entfernt Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
79 Entwurf von Datenbanken Normalformen in der Praxis Praktisch relevant zur Vermeidung von Inkonsistenzen Aber: Zerlegung von Tabellen führt zu höherem Aufwand bei der Anfragebearbeitung durch mehr Verbundoperationen Deshalb oft Abstriche von Normalformen kontrollierte Redundanz Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
80 Entwurf von Datenbanken Zusammenfassung: DB-Entwurf Entwurfsprozess für Datenbanken angelehnt an allgemeine Entwurfsprozesse: Analyse des Problems, schrittweise Verfeinerung der Lösung bis hin zur Implementierung ER-Modell als implementierungsunabhängige Modellierungsmethode für Datenbankschemata Überführung in das Relationenmodell entsprechend festen Regeln Normalformen als Qualitätskriterien für Tabellen Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
81 DB-Anwendungsprogrammierung DB-Anwendungsprogrammierung Hauptaufgabe: Abbildung der unterschiedlichen Datenmodelle und Zugriffsparadigmen zwischen Programmiersprache und dem DBMS, z.b. C++ Basisdatentypen und flexible Typkonstruktoren wie Strukturen und Klassen Basisdatentypen entsprechend C++ Standard Imperative Programmiersprache (wie wird das Ergebnis berechnet) SQL Tabellen (Multimengen/Listen) von Zeilen mit Attributwerten von Basisdatentypen Plattform- und Programmiersprachen unabhängige Basisdatentypen Deklarative Anfragesprache (was soll das Ergebnis sein) Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
82 DB-Anwendungsprogrammierung Aufgaben von Programmierschnittstellen Kapselung der Datenbankfunktionalität durch geeignete Funktionen/Strukturen/Klassen für Verbindung zum DBMS Zugriff auf konkrete Datenbank Absetzen von Anfragen... Zugriff auf Ergebnisse Geeignete Datenstrukturen für mengenwertige Anfrageergebnisse Zugriff über imperative Programmiersprache Cursor- oder Iterator-Konzept zum zeilenweisen Auslesen der Ergebnisse Zugriff auf Metadaten (Beschreibung von Tabellen und Anfrageergebnissen, z.b. welche Spalten hat das gerade übertragene Ergebnis) Umgesetzt als Bibliotheken, die auf Treiber (optional) und Protokoll zur Kommunikation mit DBMS Server abbilden Anwendung Schnittstelle Treiber DBMS DB Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/ Client Server
83 Programmierschnittstellen DB-Anwendungsprogrammierung engl. Application Programming Interface (API) Zahlreiche verschiedene Schnittstellen existieren Unterscheidung nach verschiedenen Kriterien möglich Abstraktionsstufe: Low-level (Absetzen von Anfragen, generische Ergebnistypen) bis High-level (z.b. definierte/definierbare Abbildung auf Anwendungsobjekte) Abhängigkeit oder Unabhängigkeit von Programmiersprache Hardware-/Betriebssystemplattform konkretem DBMS Im folgenden 2 Beispiele: ODBC und proprietäre MySQL Anbindung Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
84 ODBC Datenbanken DB-Anwendungsprogrammierung Open Database Connectivity Low-level: Aufbau von Verbindungen, Absetzen von Anfragen, Lesen generischer Ergebnisse) Unabhängig von Programmiersprache: Schnittstelle bestehend aus Funktionen mit Handles (Strukturen) zur Verwaltung der Zustandsinformationen Unabhängig von Hardware und Betriebssystem: ursprünglich Umsetzung des CLI-Standards (Call Level Interface) für Microsoft Windows, mittlerweile aber auf vielen Plattformen Unabhängig vom verwendeten DBMS: Treiber für fast alle kommerziellen DBMS verfügbar Extrem flexibel, dafür aber nicht sehr einfach in der Handhabung siehe folgendes Beispielprogramm zum Auslesen der Tabelle Studenten Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
85 DB-Anwendungsprogrammierung ODBC Beispiel Aufbau einer Datenbankverbindung und komplettes Lesen der Student-Tabelle Code auf der Web-Seite zur Vorlesung Übersetzung und Ausführung des Beispiels erfordern Installiertes MySQL DBMS Beispieldatenbank entsprechend Script auf Web-Seite zur Vorlesung Installierten MySQL ODBC Treiber Konfiguration der MySQL Datenbank als ODBC-Quelle Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
86 ODBC Beispiel /1 Datenbanken DB-Anwendungsprogrammierung #include <windows.h> #include <sql.h> #include <sqlext.h> #include <sqltypes.h> #include <iostream> using namespace std; int main() { SQLHENV sql_henv = 0; SQLHDBC sql_hdbc = 0; SQLHSTMT sql_hstmt = 0; SQLSMALLINT nsize = 0; SQLRETURN sqlret;... Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
87 ODBC Beispiel /2 Datenbanken DB-Anwendungsprogrammierung... SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sql_henv ); SQLSetEnvAttr( sql_henv, SQL_ATTR_ODBC_VERSION, (void*) SQL_OV_ODBC3, 0 ); SQLAllocHandle(SQL_HANDLE_DBC, sql_henv, &sql_hdbc ); sqlret = SQLConnect( sql_hdbc, (SQLCHAR*) gif, SQL_NTS, (SQLCHAR*), SQL_NTS, (SQLCHAR*), SQL_NTS );... Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
88 ODBC Beispiel /3 Datenbanken DB-Anwendungsprogrammierung... if (SQL_SUCCEEDED(sqlRet)) { sqlret = SQLAllocHandle( SQL_HANDLE_STMT, sql_hdbc, &sql_hstmt ); sqlret = SQLExecDirect( sql_hstmt, (SQLCHAR*) SELECT * FROM gif.student;, SQL_NTS ); SQLSMALLINT ncols = 0; SQLINTEGER nrows = 0; SQLINTEGER nidicator = 0; SQLCHAR buf[1024] = {0}; SQLNumResultCols( sql_hstmt, &ncols ); SQLRowCount( sql_hstmt, &nrows );... Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
89 ODBC Beispiel /4 Datenbanken DB-Anwendungsprogrammierung... while(sql_succeeded(sqlret = SQLFetch(sql_hStmt))) { cout << Student: ; for (int i=1; i <= ncols; ++i ) { sqlret = SQLGetData( sql_hstmt, i, SQL_C_CHAR, buf, 1024, &nidicator ); if (SQL_SUCCEEDED( sqlret )) { cout << buf; } if (i==ncols) cout << endl; else cout <<, ; } }... Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
90 ODBC Beispiel /5 Datenbanken DB-Anwendungsprogrammierung }... SQLFreeHandle( SQL_HANDLE_STMT, sql_hstmt ); SQLDisconnect( sql_hdbc ); } else { cout << Fehler bei der Verbindung zur Datenbank! << endl; } SQLFreeHandle( SQL_HANDLE_DBC, sql_hdbc ); SQLFreeHandle( SQL_HANDLE_ENV, sql_henv ); return 0; Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
91 DB-Anwendungsprogrammierung MySQL Connector/C++ Proprietäre Schnittstelle für MySQL DBMS Low-level Nur für C++: objektorientierte Schnittstelle mit Klassen und Methoden, aber angelehnt an JDBC (Industriestandard für Datenbankzugriffe in Programmiersprache Java) und ähnliche zu MySQL Connector-Implementierungen für andere Programmiersprachen Unabhängig von Hardware und Betriebssystem: Bibliothek für zahlreiche Plattformen verfügbar Abhängig vom verwendeten DBMS: funktioniert nur mit MySQL Vergleichsweise einfache und intuitive Nutzung Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
92 DB-Anwendungsprogrammierung MySQL Beispiel Aufbau einer Datenbankverbindung und Lesen von 2 Spalten der Student-Tabelle Code auf der Web-Seite zur Vorlesung Übersetzung und Ausführung des Beispiels erfordern Installiertes MySQL DBMS Beispieldatenbank entsprechend Script auf Web-Seite zur Vorlesung Installierten MySQL Connector/C++ Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
93 MySQL Beispiel /1 Datenbanken DB-Anwendungsprogrammierung #include <stdlib.h> #include <iostream> #include mysql_connection.h #include <cppconn/driver.h> #include <cppconn/exception.h> #include <cppconn/resultset.h> #include <cppconn/statement.h> using namespace std; int main() { try { sql::driver *driver; sql::connection *con; sql::statement *stmt; sql::resultset *res;... Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
94 MySQL Beispiel /2 Datenbanken DB-Anwendungsprogrammierung... driver = get_driver_instance(); con = driver->connect(,, ); con->setschema( gif ); stmt = con->createstatement(); res = stmt->executequery( SELECT * FROM student ); while (res->next()) { cout << res->getstring( name ) <<, ; cout << res->getstring( vorname ) << endl; }... Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
95 MySQL Beispiel /3 Datenbanken DB-Anwendungsprogrammierung... delete res; delete stmt; delete con; } catch (sql::sqlexception &e) { cout << ERROR: << e.what(); cout << MySQL error code: << e.geterrorcode() << endl; } } cout << endl; return 0; Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
96 Transaktionen Datenbanken DB-Anwendungsprogrammierung Transaktion: Folgen von Datenbankoperationen, die für die Ausführung als logische Einheit betrachtet werden Transaktion: Überweisung(X, Y, Betrag) Checke Konto X: SELECT... X = X - Betrag: UPDATE... Checke Konto Y: SELECT... Y = Y + Betrag: UPDATE... Erfolgreich beendet: Commit Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
97 ACID-Eigenschaften Datenbanken DB-Anwendungsprogrammierung Transaktion müssen dem ACID-Prinzip entsprechend vom DBMS ausgegeführt werden: Atomicity (Atomarität): eine Transaktion muss als Einheit ausgeführt werden, d.h. entweder ganz oder gar nicht Consistency (Konsistenz): eine Transaktion muss die Datenbank immer von einem konsistenten Zustand in einen konsistenten Zustand überführen (auch wenn Zwischenzustände ggf. inkonsistent sein können) Isolation (Schutz bei Nebenläufigkeit): bei der zeitgleichen Ausführung von Transaktionen (z.b. durch mehrere Nutzer) dürfen in einer Transaktion keine Effekte paralleler, noch nicht abgeschlossener Transaktionen sichtbar sein Durability (Dauerhaftigkeit): wird eine Transaktion erfolgreich beendet, so kann der von ihr erzielte Effekt nicht nachträglich rückgängig gemacht werden Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
98 Beispiel: Problem Atomarität DB-Anwendungsprogrammierung TXN: Überweisung Checke Konto X X = X - Betrag Checke Konto Y: Fehler: Konto gesperrt ABBRUCH Beenden der Transaktion Zurücksetzen aller zuvor gemachten Änderungen Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
99 Beispiel: Problem Isolation DB-Anwendungsprogrammierung Parallele Ausführung zweier Transaktionen: TXN: Überweisung Checke Konto X X = X - Betrag TXN: Zinsen Lies Konto X Zinsen = X * Zinssatz X = X + Zinsen Inkonsistenter Zustand, der die Überweisung des Betrages überschreibt, muss durch DBMS vermieden werden Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
100 DB-Anwendungsprogrammierung Umsetzung in SQL oder Programmiersprachen Möglichkeiten zum Start einer Transaktion SQL:START TRANSACTION Impliziter Transaktionsbeginn: spezieller Modus in vielen DBMS, der bei erstem Datenzugriff eine Transaktion beginnt, wleche bis zu explizitem Beenden (s.u.) läuft Transaktion pro Statement: spezieller Modus in vielen DBMS, der für jedes Statement (Anfrage, Update, etc.) eine einzelne Transaktion startet Erfolgreiches Beenden einer Transaktion SQL:COMMIT Abbruch einer Transaktion (mit Rücksetzen aller bisherigen Ergebnisse: SQL:ROLLBACK Programmierschnittstellen bieten oft eigene Schnittstellen (Funktionen, Transaktionsklassen) zur Steuerung von Transaktionen Eike Schallehn Grundlagen der Informatik für Ingenieure 2009/
Entwurf von Datenbanken
Bisher: was sind Datenbanken? Wie funktionieren sie? Im Folgenden: wie entwickle ich eine Datenbank? Was ist eine gute Datenbank? Der Datenbankentwurfsprozess Das Entity Relationship (ER) Modell Abbildung
MehrTeil VI. Datenbanken
Teil VI Datenbanken Überblick 1 Grundlegende Begriffe Motivation 2 Relationale Datenbanksysteme Das Relationale Datenmodell SQL 3 Entwurf von Datenbanken Das Enity Relationship (ER) Modell Abbildung von
MehrDB-Anwendungsprogrammierung
Hauptaufgabe: Abbildung der unterschiedlichen Datenmodelle und Zugriffsparadigmen zwischen Programmiersprache und dem DBMS, z.b. C++ Basisdatentypen und flexible Typkonstruktoren wie Strukturen und Klassen
MehrAllgemeines 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,
MehrAndreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt
Andreas Heuer Gunter Saake Kai-Uwe Sattler Datenbanken kompakt Inhaltsverzeichnis Vorwort v 1 Was sind Datenbanken 1 1.1 Warum Datenbanken 1 1.2 Datenbanksysteme 4 1.3 Anforderungen: Die Codd'schen Regeln
MehrInformatik 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
Mehr7. Ü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
MehrDATENBANKEN 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.
MehrSQL 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
MehrSQL 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
MehrAufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken
Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken 30 Wozu dient ein Primärschlüssel? Mit dem Primärschlüssel wird ein Datenfeld
MehrMengenvergleiche: 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
MehrSQL 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-
MehrSQL (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
Mehr9. 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
MehrDie Grundbegriffe Die Daten Die Informationen
Die Grundbegriffe Die Daten sind diejenigen Elemente, die vom Computer verarbeitet werden. Die Informationen sind Wissenselemente, welche durch die Analyse von Daten erhalten werden können. Die Daten haben
MehrISU 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
MehrEinteilung von Datenbanken
Datenbanksysteme (c) A.Kaiser; WU-Wien 1 Einteilung von Datenbanken 1. formatierte Datenbanken 2. unformatierte Datenbanken Information Retrieval Systeme 2 Wozu Datenbanken? Speicherung und Verwaltung
MehrDatenbanken. Prof. Dr. Bernhard Schiefer. bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer
Datenbanken Prof. Dr. Bernhard Schiefer bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Wesentliche Inhalte Begriff DBS Datenbankmodelle Datenbankentwurf konzeptionell, logisch und relational
MehrNachtrag: 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Übersicht über Datenbanken
Übersicht über Datenbanken Vergleich zwischen normaler Datenorganisation und Datenbanken Definition einer Datenbank Beispiel (inkl. Zugriff) Der Datenbankadministrator Relationale Datenbanken Transaktionen
MehrInhaltsverzeichnis. 1. Fragestellung
Inhaltsverzeichnis 1. Fragestellung... 1 2. Herleitung zum Thema... 1 3. Das Entity Relationship Modell (ERM)... 2 4. Praktisches Beispiel zum ERM... 7 5. Anhang...Fehler! Textmarke nicht definiert. 1.
MehrSQL. 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
MehrDatenmanagement in Android-Apps. 16. Mai 2013
Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer
MehrRelationales 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
MehrVielen Dank an Dennis Riehle für die Bereitstellung dieser Folien
Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS
MehrRelationale 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
MehrXAMPP-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.
MehrDatenbankentwurf. 4.2 Logischer Entwurf. Kapitel 4. ER-Modell. Umsetzung. Entwurfsdokumentation. relationales Modell. Verbesserung
4.2 Logischer Entwurf Datenbankentwurf 4.2 Logischer Entwurf 2002 Prof. Dr. Rainer Manthey Informationssysteme Logischer Entwurf: Einordnung Entwurfsdokumentation logische Strukturen "auf dem Papier" konzeptueller
MehrDatenbankmodelle 1. Das Entity-Relationship-Modell
Datenbankmodelle 1 Das Entity-Relationship-Modell Datenbankmodelle ER-Modell hierarchisches Modell Netzwerkmodell relationales Modell objektorientierte Modelle ER Modell - 2 Was kann modelliert werden?
MehrSQL 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
MehrEinfü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Ü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
MehrObjektrelationale 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
MehrDatenbanken 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,
Mehr3. 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
Mehr2.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
MehrDipl. 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
MehrIn 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
MehrDatenbanktechnologie mit praktischen Übungen in MySQL und PHP
Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 22. April 2013 - MySQL Sebastian Cuy sebastian.cuy@uni-koeln.de Datenbanken Was sind eigentlich Datenbanken? Eine
MehrDatenbanken (WS 2015/2016)
Datenbanken (WS 2015/2016) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde
MehrCarl-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
MehrABTEILUNGS- 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)
MehrEin Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?
Ein Beispiel Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse? Dipl.-Kfm. Claus Häberle WS 2015 /16 # 42 XML (vereinfacht) visa
MehrWS 2002/03. Prof. Dr. Rainer Manthey. Institut für Informatik III Universität Bonn. Informationssysteme. Kapitel 1. Informationssysteme
Informationssysteme Informationssysteme WS 2002/03 Prof. Dr. Rainer Manthey Institut für Informatik III Universität Bonn 2002 Prof. Dr. Rainer Manthey Informationssysteme 1 DB und/oder IS: terminologischer
Mehrmit 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
MehrFachbericht 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
MehrEinführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
MehrSQL: 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
MehrDatenbanken. Ein DBS besteht aus zwei Teilen:
Datenbanken Wikipedia gibt unter http://de.wikipedia.org/wiki/datenbank einen kompakten Einblick in die Welt der Datenbanken, Datenbanksysteme, Datenbankmanagementsysteme & Co: Ein Datenbanksystem (DBS)
MehrDatenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.
Lehrstuhl für Datenbanken und Informationssysteme Wintersemester 1999/2000 Universität Augsburg, Institut für Informatik 25. Februar 2000 Prof. Dr. Werner Kießling A. Leubner, M. Wagner Datenbanksysteme
Mehr4 Grundlagen der Datenbankentwicklung
4 Grundlagen der Datenbankentwicklung In diesem Kapitel werden wir die Grundlagen der Konzeption von relationalen Datenbanken beschreiben. Dazu werden Sie die einzelnen Entwicklungsschritte von der Problemanalyse
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrLabor 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.
MehrEinführung. Informationssystem als Abbild der realen Welt
Was ist ein Datenbanksystem? Anwendungsgrundsätze Betrieb von Datenbanksystemen Entwicklung von Datenbanksystemen Seite 1 Informationssystem als Abbild der realen Welt Modellierung (Abstraktion) Sachverhalte
Mehr4. 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
MehrSQL - Ü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
MehrDatenbanksysteme 2 Frühjahr-/Sommersemester 2014 28. Mai 2014
Lehrstuhl für Praktische Informatik III Prof. Dr. Guido Moerkotte Email: moer@db.informatik.uni-mannheim.de Marius Eich Email: marius.eich@uni-mannheim.de Datenbanksysteme 2 8. Übungsblatt Frühjahr-/Sommersemester
MehrAbfragen: Grundbausteine
Abfragen: Grundbausteine Abfragen sollen gezielt Teile der Information wiedergeben. Das Ergebnis einer solchen Operation ist eine. Der Aufbau der Ergebnistabelle wird durch zwei Grundverfahren festgelegt:
MehrUniversitä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
MehrWirtschaftsinformatik 2. Tutorium im WS 11/12
Wirtschaftsinformatik 2. Tutorium im WS 11/12 Entity/Relationship-Modell SQL Statements Tutorium Wirtschaftsinformatik WS 11/12 2.1 Datenmodellierung mit ERM (1) Datenmodellierung zur Erarbeitung des konzeptionellen
MehrACCESS das Datenbankprogramm. (Einführung) DI (FH) Levent Öztürk
ACCESS das Datenbankprogramm Vom Microsoft (Einführung) DI (FH) Levent Öztürk Inhalt Grundlagen einer Datenbank Planung einer Datenbank Programm starten Datenbank Anlegen Tabellen anlegen Tabellen Verknüpfen
MehrBibliografische 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
MehrArbeiten mit einem lokalen PostgreSQL-Server
Arbeiten mit einem lokalen PostgreSQL-Server Download für das Betriebssystem Windows PostgreSQL-Server und pgadmin: http://www.enterprisedb.com/products-servicestraining/pgdownload#windows pgadmin: http://www.pgadmin.org/download/windows.php
MehrArbeiten mit ACCESS 2013
Dipl.-Hdl., Dipl.-Kfm. Werner Geers Arbeiten mit ACCESS 2013 Datenbanken mit Datenmodellierung Tabellen, Abfragen, Formularen und Berichten Beziehungen Makros Datenaustausch SQL Structured Query Language
MehrProfilbezogene informatische Bildung in den Klassenstufen 9 und 10. Schwerpunktthema Daten und Datenbanken
Profilbezogene informatische Bildung in den Klassenstufen 9 und 10 Schwerpunktthema Robby Buttke Fachberater für Informatik RSA Chemnitz Fachliche Einordnung Phasen relationaler Modellierung Fachlichkeit
MehrEinleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join
Parsen der Anfrage (SQL) Transformation in eine Standardform (Relationenalgebra) Logische Optimierung Transformation in alternative Zugriffspläne, Physische Optimierung Ausführung des gewählten Zugriffsplans
MehrKapitel 10 Aktive DBMS
Kapitel 10 Aktive DBMS 10 Aktive DBMS 10 Aktive DBMS...1 10.1 Einführung und Definition...2 10.2 Funktionsprinzip: ADBMS und ECA-Modell...4 10.3 Potentiale und Vorteile ADBMS...5 10.4 Aktive Elemente einer
MehrInformations- und Wissensmanagement
Übung zur Vorlesung Informations- und Wissensmanagement (Übung 1) Frank Eichinger IPD, Lehrstuhl für Systeme der Informationsverwaltung Zur Person Beruflicher Hintergrund Studium an der TU Braunschweig
MehrP.A. Bernstein, V. Hadzilacos, N. Goodman
TRANSAKTIONEN UND DATENINTEGRITÄT Concurrency Control and Recovery in Database Systems P.A. Bernstein, V. Hadzilacos, N. Goodman Addison Wesley, 1987. Kapitel 1. und 6. Grundlagen der Datenbanksysteme
MehrSemantische 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
MehrDas 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
MehrKapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023
Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten
MehrIm 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.
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrKapitel 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
MehrDatenbanken für Online Untersuchungen
Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren
MehrErstellen einer Datenbank. Datenbankabfragen
Erstellen einer Datenbank Datenbankabfragen Überblick Die fünf Stationen Semantisches Modell Logisches Modell Prüfung auf Redundanz Abfragen Softwaremäßige Implementierung Zur Erinnerung: Semantisches
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 08. Exkurs: Datenbanken 1 Motivation Datenbanksysteme
MehrER-Modell. Entity-Relationship-Model
+ ER-Modell Entity-Relationship-Model + Was ist ein Modell? Worte/Zitat aus einem Physikbuch: "Modelle sind also Vorstellungshilfen und Wirklichkeitshilfen, nicht die Wirklichkeit selbst." (Metzler Physik).
MehrEinführung. Kapitel 1 2 / 508
Kapitel 1 Einführung 2 / 508 Einführung Was ist ein Datenbanksystem (DBS)? Ein System zum Speichern und Verwalten von Daten. Warum kein herkömmliches Dateisystem verwenden? Ausfallsicherheit und Skalierbarkeit
MehrWindows Vista Security
Marcel Zehner Windows Vista Security ISBN-10: 3-446-41356-1 ISBN-13: 978-3-446-41356-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41356-6 sowie im Buchhandel
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrTag 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
MehrHandbuch 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
MehrProbeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5
Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5 Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Hinweise Der Aufgabensatz
Mehr3. Stored Procedures und PL/SQL
3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln
MehrDatenbanken Microsoft Access 2010
Datenbanken Microsoft Access 2010 Abfragen Mithilfe von Abfragen kann ich bestimmte Informationen aus einer/mehrerer Tabellen auswählen und nur diese anzeigen lassen die Daten einer/mehrerer Tabellen sortieren
MehrVorlesung Datenbankmanagementsysteme
Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S.
MehrTag 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
Mehr6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015
6. Sichten, Integrität und Zugriffskontrolle Vorlesung "Informa=onssysteme" Sommersemester 2015 Überblick Sichten Integritätsbedingungen Zugriffsrechte SQL- Schema und SQL- Katalog Das Informa=onsschema
MehrUnterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur
Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert
MehrViews 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
MehrThemen. M. Duffner: Datenbanksysteme
Datenbanksysteme Themen Theorie Einführung Datenbank, Datenbankmanagementsystem (DBMS), Aufgaben eines DBMS Relationale Datenbanken Daten als Tabellen Datenbankentwurf im Entity-Relationship-Modell Abfragesprache
MehrPass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl
Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt
MehrGrundlagen von Datenbanksystemen
Ramez Elmasri Shamkant B. Navathe Grundlagen von Datenbanksystemen 3., überarbeitete Auflage ein Imprint der Pearson Education Deutschland GmbH Inhaltsverzeichnis Vorwort 9 Über die Autoren 13 Teil 1 Grundkonzepte
MehrWiederholung VU Datenmodellierung
Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester
MehrFragenkatalog 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
MehrDatenbanken 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,
MehrVorlesung 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