Vorlesung. Grundlagen betrieblicher Informationssysteme. Prof. Dr. Hans Czap. Lehrstuhl für Wirtschaftsinformatik I
|
|
- Curt Egger
- vor 6 Jahren
- Abrufe
Transkript
1 Vorlesung Grundlagen betrieblicher Informationssysteme Prof. Dr. Hans Czap - II - 1 -
2 Inhalt Kap. 1 Ziele der Datenbanktheorie Kap. 2 Datenmodellierung und Datenbankentwurf Kap. 3 Datenbankarchitektur Kap. 4 Die Datenbanksprache SQL Kap. 5 Konzepte für Objektorientierte Datenbanken Kap. 6 Objektrelationale Datenbanken Kap. 7 Datenbankentwurf: Funktionale Abhängigkeiten und Normalisierung Kap. 8 Datenintegrität Sperrprotokolle Recovery Kap. 9 Data-Warehouse-Konzept Kap. 10 Data Mining und Knowledge Discovery - II - 2 -
3 SQL Der Sprachstandard (Einfache) Datendefinition in SQL Veränderungen am Datenbestand Einfache SQL-Anfragen Anfragen über mehrere Relationen: Join Mengenoperationen und geschachtelte Anfragen Aggregatfunktion und Gruppierung Geschachtelte Anfragen Quantifizierende Anfragen in SQL Nullwerte Spezielle Sprachkonstrukte Joins in SQL-92 Veränderungen am Datenbestand: Vorgehensweise - II - 3 -
4 SQL Aspekte von Sichten Anfragen in Anwendungsprogrammen: Embedded SQL Datenintegrität Arten von Integritätsbedingungen Referentielle Integrität Einfache statische Integritätsbedingungen Komplexere Konsistenzbedingungen Datenbank-Trigger - II - 4 -
5 SQL: Sprachstandard standardisierte - Data Definition Language (DDL)- - Data Manipulation Language (DML)- - Data Control Language (DCL) - Data Query Langauge (DQL) Gängige Version: SQL2 (auch SQL 92) 1992 standardisiert Aktueller Standard: SQL 3 auch SQL 99 (ISO/IEC 9075:1999), noch nicht in allen Datenbanksystemen implementiert. objektrelationale Erweiterungen Jüngste Entwicklung: SQL:2003 noch weitgehend unimplementiert. - II - 5 -
6 Uni-Schema MatrNr Name Studenten Semester N N voraussetzen Nachfolger Vorgänger hören M N Vorlesungen M M N VorlNr SWS Titel Note prüfen lesen PersNr 1 1 Rang Name Assistenten N arbeitenfür 1 Professoren Raum Fachgebiet - II PersNr Name
7 Professoren PersNr Name Rang Raum 2125 Sokrates C Russel C Kopernikus C Popper C Augustinus C Curie C Kant C4 7 voraussetzen Vorgänger Nachfolger prüfen MatrNr VorlNr PersNr Note Studenten MatrNr Name Semester Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach 2 MatrNr hören VorlNr II Vorlesungen VorlNr Titel SWS gelesenv on 5001 Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheori e Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken Assistenten PerslNr Name Fachgebiet Boss 3002 Platon Ideenlehre Aristoteles Syllogistik Wittgenstein Sprachtheorie Rhetikus Planetenbewegung Newton Keplersche Gesetze Spinoza Gott und Natur 2126
8 Datentypen (Einfache) Datendefinition in SQL character (n), char (n) character varying (n), varchar (n) numeric (p,s), integer blob oder raw für sehr große binäre Daten clob für sehr große String-Attribute date für Datumsangaben Anlegen von Tabelle create table Professoren (PersNr integer not null, Name varchar (30) not null, Rang character (2), Raum integer); - II - 8 -
9 Veränderungen am Datenbestand Einfügen von Tupeln insert into hören select MatrNr, VorlNr from Studenten, Vorlesungen where Titel= `Logik ; insert into Studenten (MatrNr, Name) values (28121, `Archimedes ); - II - 9 -
10 Studenten MatrNr Name Semester Theophrastos Feuerbach Archimedes - Null-Wert - II
11 Veränderungen am Datenbestand Löschen von Tupeln delete Studenten where Semester > 13; Verändern von Tupeln update Studenten set Semester= Semester + 1; - II
12 Einfache SQL-Anfragen select from where PersNr, Name Professoren Rang= C4 ; PersNr Name 2125 Sokrates 2126 Russel 2136 Curie 2137 Kant - II
13 Sortierung select PersNr, Name, Rang from Professoren Einfache SQL-Anfragen order by Rang desc, Name asc; PersNr Name Rang 2136 Curie C Kant C Russel C Sokrates C Augustinus C Kopernikus C Popper C3 - II
14 Duplikateliminierung select distinct Rang from Professoren Rang C3 C4 - II
15 Professoren PersNr Name Rang Raum 2125 Sokrates C Russel C Kopernikus C Popper C Augustinus C Curie C Kant C4 7 voraussetzen Vorgänger Nachfolger prüfen MatrNr VorlNr PersNr Note Studenten MatrNr Name Semester Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach 2 MatrNr hören VorlNr II Vorlesungen VorlNr Titel SWS gelesenv on 5001 Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheori e Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken Assistenten PerslNr Name Fachgebiet Boss 3002 Platon Ideenlehre Aristoteles Syllogistik Wittgenstein Sprachtheorie Rhetikus Planetenbewegung Newton Keplersche Gesetze Spinoza Gott und Natur 2126
16 Anfragen über mehrere Relationen: Join Welcher Professor liest "Mäeutik"? select Name, Titel from Professoren, Vorlesungen where PersNr = gelesenvon and Titel = `Mäeutik ; - II
17 Anfragen über mehrere Relationen: Join Professoren Vorlesungen PersNr Name Rang Raum VorlNr Titel SWS gelesen Von Sokrates Russel C4 C Grundzüge Ethik Kant C Mäeutik Die 3 Kritiken Verknüpfung Χ - II
18 PersN 2125 r Name Sokrates Rang C4 Raum 226 VorlNr 5001 Titel Grundzüge SWS 4 gelesen Von Sokrates C Ethik Sokrates C Mäeutik Russel Russel C4 C Grundzüge Ethik Kant C Die 3 Kritiken PersN r Auswahl Name Rang Raum VorlNr Titel SWS gelesen Von 2125 Sokrates C Mäeutik Projektion Name Titel Sokrates - II Mäeutik
19 Anfragen über mehrere Relationen: Join Welche Studenten hören welche Vorlesungen? select Name, Titel from Studenten, hören, Vorlesungen where Studenten.MatrNr = hören.matrnr and hören.vorlnr = Vorlesungen.VorlNr; Alternativ: select s.name, v.titel from Studenten s, hören h, Vorlesungen v where s. MatrNr = h. MatrNr and h.vorlnr = v.vorlnr - II
20 Professoren PersNr Name Rang Raum 2125 Sokrates C Russel C Kopernikus C Popper C Augustinus C Curie C Kant C4 7 voraussetzen Vorgänger Nachfolger prüfen MatrNr VorlNr PersNr Note Studenten MatrNr Name Semester Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach 2 MatrNr hören VorlNr II Vorlesungen VorlNr Titel SWS gelesenv on 5001 Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheori e Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken Assistenten PerslNr Name Fachgebiet Boss 3002 Platon Ideenlehre Aristoteles Syllogistik Wittgenstein Sprachtheorie Rhetikus Planetenbewegung Newton Keplersche Gesetze Spinoza Gott und Natur 2126
21 Mengenoperationen und geschachtelte Anfragen Mengenoperationen union, intersect, minus ( select Name from Assistenten ) union ( select Name from Professoren); - II
22 Existenzquantor exists select p.name from Professoren p where not exists ( select * from Vorlesungen v where v.gelesenvon = p.persnr ); - II
23 Existenzquantor exists select p.name from Professoren p where not exists ( select * from Vorlesungen v where v.gelesenvon = p.persnr ); Korrelation - II
24 select Name from Professoren Mengenvergleich where PersNr not in ( select gelesenvon Unkorrelierte Unteranfrage: meist effizienter, wird nur einmal ausgewertet from Vorlesungen ); - II
25 Aggregatfunktion und Gruppierung Aggregatfunktionen avg, max, min, count, sum select avg (Semester) from Studenten; select gelesenvon, sum (SWS) from Vorlesungen group by gelesenvon; select gelesenvon, Name, sum (SWS) from Vorlesungen, Professoren where gelesenvon = PersNr and Rang = C4 group by gelesenvon, Name having avg (SWS) >= 3; - II
26 Professoren PersNr Name Rang Raum 2125 Sokrates C Russel C Kopernikus C Popper C Augustinus C Curie C Kant C4 7 voraussetzen Vorgänger Nachfolger prüfen MatrNr VorlNr PersNr Note Studenten MatrNr Name Semester Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach 2 MatrNr hören VorlNr II Vorlesungen VorlNr Titel SWS gelesenv on 5001 Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheori e Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken Assistenten PerslNr Name Fachgebiet Boss 3002 Platon Ideenlehre Aristoteles Syllogistik Wittgenstein Sprachtheorie Rhetikus Planetenbewegung Newton Keplersche Gesetze Spinoza Gott und Natur 2126
27 Besonderheiten bei Aggregatoperationen SQL erzeugt pro Gruppe ein Ergebnistupel Deshalb müssen alle in der select-klausel aufgeführten Attribute - außer den aggregierten auch in der group by-klausel aufgeführt werden Nur so kann SQL sicherstellen, dass sich das Attribut nicht innerhalb der Gruppe ändert - II
28 Ausführen einer Anfrage mit group by Vorl Nr Vorlesung x Professoren Titel SWS gelesen Von PersNr Name Rang Raum 5001 Grundzüge Sokrates C Ethik Sokrates C Die 3 Kritiken Kant C4 7 where-bedingung - II
29 VorlNr Titel SWS gelesen Von PersN r Name Rang Raum 5001 Grundzüge Kant C Ethik Sokrates C Erkenntnistheori Russel C4 232 e 5049 Mäeutik Sokrates C Logik Sokrates C Wissenschaftsth Russel C4 232 eorie 5216 Bioethik Russel C Die 3 Kritiken Kant C4 7 Gruppierung - II
30 VorlNr VorlN 5041 r Titel Ethik Mäeutik Logik Erkenntnistheorie Wissenschaftstheo. Bioethik Grundzüge Die 3 Kritiken Titel Ethik Mäeutik Logik SWS SWS gelesenvon having-bedingung gelesenvon PersNr PersNr Name Sokrates Sokrates Sokrates Russel Russel Russel Kant Kant Name Sokrates Sokrates Sokrates Rang C4 C4 C4 C4 C4 C4 C4 C4 Rang C4 C4 C4 Raum Raum Grundzüge Die 3 Kritiken Kant Kant C4 C4 7 7 Aggregation (sum) und Projektion - II
31 gelesenvon Name sum (SWS) 2125 Sokrates Kant 8 - II
32 Geschachtelte Anfragen Unteranfrage in der where-klausel Welche Prüfungen sind besser als durchschnittlich verlaufen? select * from prüfen where Note < ( select avg (Note) from prüfen ); - II
33 Geschachtelte Anfrage (Forts.) Unteranfrage in der select-klausel Für jedes Ergebnistupel wird die Unteranfrage ausgeführt Man beachte, dass die Unteranfrage korreliert ist (greift auf Attribute der umschließenden Anfrage zu) select PersNr, Name, ( select sum (SWS) as Lehrbelastung from Vorlesungen from Professoren; where gelesenvon=persnr ) - II
34 Professoren PersNr Name Rang Raum 2125 Sokrates C Russel C Kopernikus C Popper C Augustinus C Curie C Kant C4 7 voraussetzen Vorgänger Nachfolger prüfen MatrNr VorlNr PersNr Note Studenten MatrNr Name Semester Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach 2 MatrNr hören VorlNr II Vorlesungen VorlNr Titel SWS gelesenv on 5001 Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheori e Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken Assistenten PerslNr Name Fachgebiet Boss 3002 Platon Ideenlehre Aristoteles Syllogistik Wittgenstein Sprachtheorie Rhetikus Planetenbewegung Newton Keplersche Gesetze Spinoza Gott und Natur 2126
35 Unkorrelierte versus korrelierte Unteranfragen korrelierte Formulierung select s.* from Studenten s where exists (select p.* from Professoren where p.gebdatum > s.gebdatum); - II
36 Äquivalente unkorrelierte Formulierung select s.* from Studenten s where s.gebdatum < (select max (p.gebdatum) from Professoren p); Vorteil: Unteranfrageergebnis kann materialisiert werden Unteranfrage braucht nur einmal ausgewertet zu werden - II
37 Entschachtelung korrelierter Unteranfragen -- Forts. select a.* from Assistenten a where exists ( select p.* from Professoren p where a.boss = p.persnr and p.gebdatum>a.gebdatum); Entschachtelung durch Join select a.* from Assistenten a, Professoren p where a.boss=p.persnr and p.gebdatum > a.gebdatum; - II
38 Verwertung der Ergebnismenge einer Unteranfrage select tmp.matrnr, tmp.name, tmp.vorlanzahl from (select s.matrnr, s.name, count(*) as VorlAnzahl from Studenten s, hören h where s.matrnr=h.matrnr group by s.matrnr, s.name) tmp where tmp.vorlanzahl > 2; MatrNr Name VorlAnzahl Carnap Theophrastos 3 - II
39 Decision-Support-Anfrage mit geschachtelten Unteranfragen select h.vorlnr, h.anzprovorl, g.gesamtanz, h.anzprovorl/g.gesamtanz as Marktanteil from ( select VorlNr, count(*) as AnzProVorl from hören group by VorlNr ) h, ( select count (*) as GesamtAnz from Studenten) g; - II
40 Das Ergebnis der Anfrage VorlNr AnzProVorl GesamtAnz Marktanteil II
41 Weitere Anfragen mit Unteranfragen ( select Name from Assistenten ) union ( select Name from Professoren ); select Name from Professoren where PersNr not in ( select gelesenvon from Vorlesungen ); - II
42 select Name from Studenten where Semester > = all ( select Semester from Studenten ); - II
43 Quantifizierende Anfragen in SQL Existenzquantor: exists select Name from Professoren where not exists ( select * from Vorlesungen where gelesen Von = PersNr ); - II
44 Allquantifizierung SQL-92 hat keinen Allquantor Allquantifizierung kann durch eine äquivalente Anfrage mit Existenzquantifizierung ausgedrückt werden. Dazu wäre ein Grundverständnis der Logik erforderlich - II
45 Allquantifizierung durch count- Aggregation Allquantifizierung kann immer auch durch eine count- Aggregation ausgedrückt werden Wir betrachten dazu eine etwas einfachere Anfrage, in der wir die (MatrNr der) Studenten ermitteln wollen, die alle Vorlesungen hören: select h.matrnr from hören h group by h.matrnr having count (*) = (select count (*) from Vorlesungen); - II
46 Nullwerte unbekannter Wert wird vielleicht später nachgereicht Nullwerte können auch im Zuge der Anfrageauswertung entstehen (Bsp. äußere Joins) manchmal sehr überraschende Anfrageergebnisse, wenn Nullwerte vorkommen select count (*) from Studenten where Semester < 13 or Semester > =13 Wenn es Studenten gibt, deren Semester-Attribut den Wert null hat, werden diese nicht mitgezählt Der Grund liegt in folgenden Regeln für den Umgang mit null- Werten begründet: - II
47 Auswertung bei Null-Werten 1. In arithmetischen Ausdrücken werden Nullwerte propagiert, d.h. sobald ein Operand null ist, wird auch das Ergebnis null. Dementsprechend wird z.b. null + 1 zu null ausgewertet-aber auch null * 0 wird zu null ausgewertet. 2. SQL hat eine dreiwertige Logik, die nicht nur true und false kennt, sondern auch einen dritten Wert unknown. Diesen Wert liefern Vergleichsoperationen zurück, wenn mindestens eines ihrer Argumente null ist. Beispielsweise wertet SQL das Prädikat (PersNr=...) immer zu unknown aus, wenn die PersNr des betreffenden Tupels den Wert null hat. 3. Logische Ausdrücke werden nach den folgenden Tabellen berechnet: - II
48 Diese Berechnungsvorschriften sind recht intuitiv. Unknown or true wird z.b. zu true - die Disjunktion ist mit dem true- Wert des rechten Arguments immer erfüllt, unabhängig von der Belegung des linken Arguments. Analog ist unknown and false automatisch false - keine Belegung des linken Arguments könnte die Konjunktion mehr erfüllen. 4. In einer where-bedingung werden nur Tupel weitergereicht, für die die Bedingung true ist. Insbesondere werden Tupel, für die die Bedingung zu unknown auswertet, nicht ins Ergebnis aufgenommen. 5. Bei einer Gruppierung wird null als ein eigenständiger Wert aufgefaßt und in eine eigene Gruppe eingeordnet. - II
49 not true false unknown unknown false true and true unknown false true true unknown false unknown unknown unknown false false false false false or true unknown false true true true true unknown true unknown unknown false true unknown false - II
50 Spezielle Sprachkonstrukte ("syntaktischer Zucker") select * from Studenten where Semester > = 1 and Semester < = 4; select * from Studenten where Semester between 1 and 4; select * from Studenten where Semester in (1,2,3,4); - II
51 select * from Studenten where Name like `T%eophrastos ; select distinct s.name from Vorlesungen v, hören h, Studenten s where s.matrnr = h.matrnr and h.vorlnr = v.vorlnr and v.titel like `%thik% ; - II
52 Das case-konstrukt select MatrNr, ( case when Note < 1.5 then sehr gut from prüfen; when Note < 2.5 then gut when Note < 3.5 then befriedigend when Note < 4.0 then ausreichend else nicht bestanden end) Die erste qualifizierende when-klausel wird ausgeführt - II
53 Vergleiche mit like Platzhalter "%" ; "_" "%" steht für beliebig viele (auch gar kein) Zeichen "_" steht für genau ein Zeichen select * from Studenten where Name like T%eophrastos ; select distinct Name from Vorlesungen v, hören h, Studenten s where s.matrnr = h.matrnr and h.vorlnr = v.vorlnr and v.titel = %thik% ; - II
54 Joins in SQL-92 cross join: Kreuzprodukt natural join: natürlicher Join Join oder inner join: Theta-Join left, right oder full outer join: äußerer Join union join: Vereinigungs-Join (wird hier nicht vorgestellt) select * from R 1, R 2 where = R 1.A = R 2.B; select * from R 1 join R 2 on R 1.A = R 2.B; - II
55 Äußere Joins select p.persnr, p.name, f.persnr, f.note, f.matrnr, s.matrnr, s.name from Professoren p left outer join (prüfen f left outer join Studenten s on f.matrnr= s.matrnr) on p.persnr=f.persnr; PersNr p.name f.persnr f.note f.matrnr s.matrnr s.name 2126 Russel Carnap 2125 Sokrates Jonas 2137 Kant Schopenhauer 2136 Curie II
56 Äußere Joins select p.persnr, p.name, f.persnr, f.note, f.matrnr, s.matrnr, s.name from Professoren p right outer join (prüfen f right outer join Studenten s on f.matrnr= s.matrnr) on p.persnr=f.persnr; PersNr p.name f.persnr f.note f.matrnr s.matrnr s.name 2126 Russel Carnap 2125 Sokrates Jonas 2137 Kant Schopenhauer Fichte - II
57 Äußere Joins select p.persnr, p.name, f.persnr, f.note, f.matrnr, s.matrnr, s.name from Professoren p full outer join (prüfen f full outer join Studenten s on f.matrnr= s.matrnr) on p.persnr=f.persnr; - II
58 p.persnr p.name f.persnr f.note f.matrnr s.matrnr s.name 2126 Russel Carnap 2125 Sokrates Jonas 2137 Kant Schopenhauer Fichte 2136 Curie II
59 Veränderungen am Datenbestand: Vorgehensweise Einfügen von Tupeln insert into hören select MatrNr, VorlNr from Studenten, Vorlesungen where Titel= `Logik ; insert into Studenten (MatrNr, Name) values (28121, `Archimedes ); - II
60 Studenten MatrNr Name Semester Theophrastos Feuerbach Archimedes - - II
61 Veränderungen am Datenbestand Löschen von Tupeln delete Studenten where Semester > 13; Verändern von Tupeln update Studenten set Semester= Semester + 1; - II
62 Zweistufiges Vorgehen bei Änderungen 1. die Kandidaten für die Änderung werden ermittelt und ''markiert'' 2. die Änderung wird an den in Schritt 1. ermittelten Kandidaten durchgeführt Anderenfalls könnte die Änderungsoperation von der Reihenfolge der Tupel abhängen, wie folgendes Beispiel zeigt: delete from voraussetzen where Vorgänger in (select Nachfolger from voraussetzen); - II
63 Vorgänger vorausssetzen Nachfolger Ohne einen Markierungsschritt hängt das Ergebnis dieser Anfrage von der Reihenfolge der Tupel in der Relation ab. Eine Abarbeitung in der Reihenfolge der Beispielausprägung würde das letzte Tupel (5052, 5229) fälschlicherweise erhalten, da vorher bereits alle Tupel mit 5052 als Nachfolger entfernt wurden. - II
64 Aspekte von Sichten für den Datenschutz create view prüfensicht as select MatrNr, VorlNr, PersNr from prüfen - II
65 Sichten... für die Vereinfachung von Anfagen create view StudProf (Sname, Semester, Titel, Pname) as select s.name, s.semester, v.titel, p.name from Studenten s, hören h, Vorlesungen v, Professoren p where s.matr.nr=h.matrnr and h.vorlnr=v.vorlnr and v.gelesenvon = p.persnr select distinct Semester from StudProf where PName=`Sokrates ; - II
66 Sichten zur Modellierung von Generalisierung create table Angestellte (PersNr Name integer not null, create table ProfDaten (PersNr Rang Raum varchar (30) not null); integer not null, character(2), integer); create table AssiDaten (PersNr Fachgebiet Boss integer not null, varchar(30), integer); - II
67 create view Professoren as select * from Angestellte a, ProfDaten d where a.persnr=d.persnr; create view Assistenten as select * from Angestellte a, AssiDaten d where a.persnr=d.persnr; Untertypen als Sicht - II
68 create table Professoren (PersNr integer not null, Name varchar (30) not null, Rang character (2), Raum integer); create table Assistenten (PersNr integer not null, Name varchar (30) not null, Fachgebiet varchar (30), Boss integer); create table AndereAngestellte (PersNr integer not null, Name varchar (30) not null); - II
69 create view Angestellte as (select PersNr, Name from Professoren) union (select PersNr, Name from Assistenten) union (select* from AndereAngestellte); Obertypen als Sicht - II
70 Sichten zur Gewährleistung von Datenunabhängigkeit Benutzer logische Datenunabhängigkeit Sicht 1 Sicht 2 Sicht 3 physische Datenunabhängigkeit Relation 1 Relation 2 Relation 3 - II
71 Änderbarkeit von Sichten Beispiele für nicht änderbare Sichten create view WieHartAlsPrüfer (PersNr, Durchschnittsnote) as select PersNr, avg(note) from prüfen group by PersNr; create view VorlesungenSicht as select Titel, SWS, Name from Vorlesungen, Professoren where gelesen Von=PersNr; insert into VorlesungenSicht values (`Nihilismus, 2, `Nobody ); - II
72 in SQL nur eine Basisrelation Änderbarkeit von Sichten Schlüssel muß vorhanden sein keine Aggregatfunktionen, Gruppierung und Duplikateliminierung alle Sichten theoretisch änderbare Sichten in SQL änderbare Sichten - II
73 Anfragen in Anwendungsprogrammen: Embedded SQL genau ein Tupel im Ergebnis exec sql select avg (Semester) into :avgsem from Studenten; - II
74 Anfragen in Anwendungsprogrammen Verbindungsorientierter Zugriff Verbindung zur Datenquelle bleibt während des Verarbeitungsprozesses erhalten. Sinnvoll, bei Verarbeitungsprozessen, die jeweils mit den aktuellen Daten arbeiten müssen. Sequentielle, satzorientierte Verarbeitung (Verwendung eines Cursors, der auf den jeweils aktuellen Datensatz zeigt). Skaliert schlecht Verbindungsloser Zugriff Erforderliche Daten werden zu Beginn der Verarbeitung in einem DataSet-Objekt zwischengespeichert. Anschließend wird die Verbindung zur Datenquell unterbrochen. Typisch für 3-Tier-Architektur. Das DataSet-Objekt wird in der Anwendungsebene gehalten, die die Konsistenzbedingungen regelt. - II
75 Verbindungsorientierte Anfragen in Anwendungsprogrammen mehrere Tupel im Ergebnis Satzorientierte Programmiersprache 3. Tupel sequentiell verarbeiten 1. Anfrage 4. Cursor/Iterator schließen mengenorientiertes DBMS - II Anfrage auswerten, Ergebnistupel im Cursor/Iterator/ ResultSet bereitstellen
76 JDBC: Java Database Connectivity Standardisierte Schnittstelle zur Anbindung von relationalen Datenbanken an Java Wird heute fast immer für die Anbindung von Datenbanken an das Internet/Web verwendet Java Servlets als dynamische Erweiterung von Webservern Java Server Pages (JSP): HTML-Seiten mit eingebetteten Java Programmfragmenten - II
77 Zugriff auf Datenbanken via JDBC standardisierte Schnittstelle JDBC- Treiber 1 Java-Programm mit Zugriff auf zwei unterschiedliche (heterogene) Datenbanken JDBC- Treiber 2 Datenbank 1 Datenbank 2 DBMS-spezifische Implementierung - II
78 Browser Web-Anbindung von Datenbanken via Servlets/JDBC Internet Webserver Vorlesungs- Verzeichnis.html Servlet-Engine Servlet VrlVrz Servlet VrlVrz Servlet VrlVrz JDBC (Java Database Conn.) Datenbank - II
79 DataSet Verbindungsloser Zugriff Container für benötigte Tabellen + DataRelationCollection (Fremdschlüsselbeziehungen) Zur Kommunikation mit der Datenbank wird ein DataAdapter benötigt. Befehle: Fill bzw. Update (jeweils verbindungslose Datenflüsse!) DataAdapter Realisiert Verbindung zur Datenbank mittels IDbConnection und IDataReader Befehle: SelectCommand, InsertCommand, UpdateCommand, DeleteCommand - II
80 Verbindungsloser Zugriff: Lesen einer Tabelle OleDbCommand GetSelectCmd(string sqlselstmt) { } OleDbCommand cmd = new OleDbCommand(); cmd.connection = new OleDbConnection( provider = SQLOLEDB; + server= localhost; Initial Catalog=Uni_DB; user Id = K1; password = pw; ); cmd.commandtext = sqlselstmt; return cmd; - II
81 DataTable oleselectstmtdt(string sqlselstmt, string tablename) { OleDbCommand selcmd = GetSelectCmd(sQLSelStmt); selcmd.commandtype = CommandType.Text; // kann evtl. entfallen OleDbDataAdapter adapter = new OleDbDataAdapter(); DataTable resulttable = new DataTable(tableName); try { adapter.selectcommand = selcmd; int numrows = adapter.fill(resulttable); } catch (Exception e) { /* Handle Exception */ }f if (adapter is IDisposable) ((IDisposable) adapter).dispose(); return resulttable; } - II
82 int oleupdatestmt(dataset resultdataset,string table) { string sqlsel = "Select * from " + table; OleDbCommand selcmd = GetSelectCmd(sqlSel); OleDbDataAdapter adapter = new OleDbDataAdapter(); adapter.selectcommand = selcmd; OleDbCommandBuilder comdbd = new OleDbCommandBuilder(adapter); Int32 recordsaffected = 0; try { // Schreibe resultdataset zurück in Datenbank recordsaffected = adapter.update(resultdataset, table); } catch (Exception e) { /* Handle Exception */ } adapter.dispose(); return recordsaffected; } - II
83 Datenintegrität Arten von Integritätsbedingungen Objekte von Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische Integritätsbedingungen Bedingungen an Zustandsübergänge - II
84 Referentielle Integrität in SQL Kandidatenschlüssel: unique Primärschlüssel: primary key Fremdschlüssel: foreign key Beispiel: create table R ( α integer primary key,... ); create table S (..., κ integer references R ); - II
85 Fremdschlüssel Referentielle Integrität verweisen auf Tupel einer Relation z.b. gelesenvon in Vorlesungen verweist auf Tupel in Professoren referentielle Integrität Fremdschlüssel müssen auf existierende Tupel verweisen oder einen Nullwert enthalten - II
86 Einhaltung referentieller Integrität Änderung von referenzierten Daten 1. Default: Zurückweisen der Änderungsoperation 2. Propagieren der Änderungen: cascade 3. Verweise auf Nullwert setzen: set null - II
87 Einhaltung referentieller Integrität Originalzustand S κ α 1 α α 1 R α 2 α 2 Änderungsoperationen update R set α = α' 1 where α = α 1 ; delete from R where α = α 1 ; - II
88 Kaskadieren S R S R κ α κ α α' 1 α' 1 α 2 α 2 α 2 α 2 create table S create table S (..., (..., κ integer references R on update cascade ); κ integer references R on delete cascade ); - II
89 Auf Null setzen S κ --- R α α' 1 α 2 S κ --- α 2 α α 2 R α 2 create table S create table S (..., (..., κ integer references R on update set null ); κ integer references R on delete set null ); - II
90 Kaskadierendes Löschen Sokrates Logik Mäeutik Ethik Schopenhauer Theophrastos Russel Erkenntnistheorie Wissenschaftstheorie Bioethik Carnap - II
91 create table Vorlesungen (..., gelesenvon integer references Professoren on delete cascade); create table hören (..., VorlNr integer references Vorlesungen on delete cascade); - II
92 Einfache statische Integritätsbedingungen Wertebereichseinschränkungen... check Semester between 1 and 13 Aufzählungstypen... check Rang in (`C2, `C3, `C4 )... - II
93 Das Universitätsschema mit Integritätsbedingungen create table Studenten ( MatrNr integer primary key, Name varchar(30) not null, Semester integer check Semester between 1 and 13), create table Professoren ( PersNr integer primary key, Name varchar(30) not null, Rang character(2) check (Rang in (`C2,`C3,`C4 )), Raum integer unique ); - II
94 create table Assistenten ( PersNr integer primary key, Name Fachgebiet Boss foreign key varchar(30) not null, varchar(30), integer, create table Vorlesungen (Boss) references Professoren on delete set null); ( VorlNr integer primary key, Titel SWS gelesen Von varchar(30), integer, integer references Professoren on delete set null); - II
95 create table hören ( MatrNr integer references Studenten on delete cascade, VorlNr integer references Vorlesungen on delete cascade, primary key (MatrNr, VorlNr)); create table voraussetzen ( Vorgänger integer references Vorlesungen on delete cascade, Nachfolger integer references Vorlesungen on delete cascade, primary key (Vorgänger, Nachfolger)); - II
96 create table prüfen ( MatrNr integer references Studenten on delete cascade, VorlNr PersNr integer references Vorlesungen, integer references Professoren on delete set null, Note numeric (2,1) check (Note between 0.7 and 5.0), primary key (MatrNr, VorlNr)); - II
97 Komplexere Konsistenzbedingungen: Leider selten / noch nicht unterstützt Studenten können sich nur über Vorlesungen prüfen lassen, die sie vorher gehört haben Bei jeder Änderung und Einfügung wird die check-klausel ausgewertet Operation wird nur durchgeführt, wenn der check true ergibt - II
98 create trigger keine Degradierung before update on Professoren for each row when (old.rang is not null) begin 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; end Datenbank-Trigger - II
99 Trigger-Erläuterungen: Oracle Konventionen - II
100 Gleicher Trigger in DB2 / SQL:1999-Syntax - II
101 Übung: Trigger zur Konsistenzhaltung redundanter Information bei Generalisierung - II
Relationale Anfragesprachen
Relationale Anfragesprachen Structured Query Language: SQL Query by Example: QBE Kapitel 1 Übungen Fr 8.0 Uhr Michael Kühn Raum E 11 SQL standardisierte - Datendefinitions (DDL)- - Datenmanipulations (DML)-
MehrFortsetzung: Projektion Selektion. NULL Werte
Fortsetzung: Anfragen mit SQL Bisher: Projektion Selektion Duplikatbehandlung NULL Werte Professoren PersNr Name Rang Raum 2125 Sokrates 226 2126 Russel 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134
MehrDatenintegritä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
MehrDatenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012
Datenbanken Datenintegrität + Datenschutz Tobias Galliat Sommersemester 2012 Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus
MehrKapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien
Kapitel 5 Dr. Jérôme Kunegis SQL: Grundlagen WeST Institut für Web Science & Technologien Lernziele Kenntnis der Grundkonzepte von SQL Fähigkeit zur praktischen Anwendung von einfachen SQL-Anweisungen
MehrDatenintegritä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!
MehrDatenintegritä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
MehrDatenintegritä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!
MehrFortsetzung: Kreuzprodukt, Inner Join. Sortierung. Existenzquantor, Mengenvergleich Gruppierung, Aggregate Cast-Operator
Fortsetzung: Anfragen mit SQL Bisher: Projektion, Selektion, Duplikatbehandlung, NULL Werte Kreuzprodukt, Inner Join Mengenoperationen Sortierung Geschachtelte Anfragen Existenzquantor, Mengenvergleich
MehrReferentielle 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
MehrWS 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)
MehrWS 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
MehrReferentielle 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
MehrWiederholung VU Datenmodellierung
Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester
MehrInformatik 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
MehrDatenintegritä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
MehrDatenbanksysteme 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
MehrDiskussion: Personal (1)
Diskussion: Personal (1) ER-Diagramm: Abteilung ist beschäftigt in [0, n] [0, 1] Person Umsetzung ins Relationenmodell? Diskussion: Personal (2) Zusätzliche Regel: In jeder Abteilung (Person) muss mindestens
MehrKapitel 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:
MehrRelationale Abfragesprachen
Relationale Abfragesprachen Relationale Abfragesprachen VO Datenmodellierung Katrin Seyr Institut für Informationssysteme Technische Universität Wien Katrin Seyr Seite 1 Relationale Abfragesprachen 1 Überblick
MehrSQL standardisierte - Datendefinitions (DDL)- - Datenmanipulations (DML)- - Anfrage (Query)-Sprache derzeit aktueller Standard ist SQL 99 objektrelationale Erweiterung Für praktische Übungen steht eine
MehrFür praktische Übungen steht eine Web-Seite zur Verfügung: www-db.in.tum.de/db2face/index.shtml
SQL standardisierte - Datendefinitions (DDL)- - Datenmanipulations (DML)- - Anfrage (Query)-Sprache derzeit aktueller Standard ist SQL 99 objektrelationale Erweiterung Für praktische Übungen steht eine
MehrWeb Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken SQL. Dr. Gerd Gröner Wintersemester 2013/14
Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken Dr. Gerd Gröner Wintersemester 2013/14 Lernziele Kenntnisse der Grundkonzepte von Fähigkeit zur praktischen Anwendung
MehrVorlesung Datenbanksysteme vom
Vorlesung Datenbanksysteme vom 27.10.2008 Wiederholung: Relationale Algebra Relationale Algebra Join-Operatoren Eigenschaften der relationalen Operatoren Grundlagen des relationalen Modells Seien D 1,
MehrSQL!standardisierte - Datendefinitions (DDL)- - Datenmanipulations (DML)- - Anfrage (Query)-Sprache! derzeit aktueller Standard ist SQL 99!objektrelationale Erweiterung!Für praktische Übungen steht eine
MehrSQL. Man kann eigene Relationen anlegen und/oder die Uni-DB verwenden DB2 von IBM liegt dahinter
SQL standardisierte - Datendefinitions (DDL)- - Datenmanipulations (DML)- - Anfrage (Query)-Sprache derzeit aktueller Standard ist SQL 99 und SQL3 (2003) objektrelationale Erweiterung Für praktische Übungen
MehrGrundlagen des relationalen Modells
Historische Entwicklung relationaler DBMS Grundlagen des relationalen Modells Seien D 1, D 2,..., D n Domänen (~Wertebereiche) Relation: R D 1 x... x D n Bsp.: Telefonbuch string x string x integer Tupel:
MehrDatenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück
Datenbanksysteme 2015 noch Kapitel 7: SQL Vorlesung vom 12.05.2015 Oliver Vornberger Institut für Informatik Universität Osnabrück SQL: Schlüsselworte select from where order by asc desc as like upper
MehrWiederholung: Relationale Algebra
Vorlesung Datenbanksysteme vom 1.11.016 Wiederholung: Relationale Algebra Relationale Algebra Join-Operatoren Eigenschaften der relationalen Operatoren Grundlagen des relationalen Modells Seien D1, D,,
Mehrwww-db.in.tum.de/db2face/index.shtml
SQL standardisierte - Datendefinitions (DDL)- - Datenmanipulations (DML)- - Anfrage (Query)-Sprache derzeit aktueller Standard ist SQL 2011 Für praktische Übungen steht eine Web-Seite zur Verfügung: www-db.in.tum.de/db2face/index.shtml
MehrRelationale Anfragesprachen
Relationale Anfragesprachen Structured Query Language: SQL Query by Example: QBE UniSchema MatrNr Studenten Semester N N voraus setzen Nachfolger Vorgänger hör en M N M M N SWS Titel Note prüfen lesen
MehrWS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3)
Vorlesung #5 SQL (Teil 3) Fahrplan Besprechung der Übungsaufgaben Rekursion Rekursion in SQL-92 Rekursion in DBMS- Dialekten (Oracle und DB2) Views (Sichten) - gespeicherte Abfragen Gewährleistung der
MehrDatenbanksysteme 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):
MehrVorlesungen. Studenten. hören. Grundzüge. Fichte Glaube und Wissen Jonas
Das relationale eato aedatenmodell Studenten hören Vorlesungen MatrNr Name MatrNr VorlNr VorlNr Titel 26120 Fichte 25403 5022 5001 Grundzüge 25403... Jonas... 26120... 5001... 5022... Glaube und Wissen...
MehrDatenmodellierung. VU , SS 2016 Relationale Abfragesprachen SQL. Nysret Musliu, Sebastian Skritek
Relationale Abfragesprachen Datenmodellierung VU 184685, SS 2016 Relationale Abfragesprachen SQL Nysret Musliu, Sebastian Skritek Institut für Informationssysteme Technische Universität Wien Nysret Musliu,
MehrDatenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück
Datenbanksysteme 2009 Vorlesung vom 19.05.2009 noch Kapitel 7: SQL Oliver Vornberger Institut für Informatik Universität Osnabrück SQL: Self Join 15.) Liste die Namen der Assistenten, die für denselben
MehrWie definieren wir das Relationen-
Wie definieren wir das Relationen- schema für eine Datenbank? Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus C3 309 2136
MehrRelationale Anfragesprachen
Relationale Anfragesprachen Structured Query Language: SQL Query by Example: QBE SQL standardisierte Datendefinitions (DDL) Datenmanipulations (DML) Anfrage (Query)Sprache derzeit aktueller Standard ist
MehrDatenbanksysteme noch Kapitel 7: SQL Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück
Datenbanksysteme 2013 noch Kapitel 7: SQL Vorlesung vom 7.5.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Sprung Transititve Hülle SQL: avg, group by 16.) Liste die durchschnittliche
MehrKapitel 8 Dr. Jérôme Kunegis. SQL Continued. WeST Institute for Web Science & Technologies
Kapitel 8 Dr. Jérôme Kunegis SQL Continued WeST Institute for Web Science & Technologies Lernziele Syntax von SQL Anfragen Erweiterte Konstrukte in SQL Abfragen: Aggregation, Gruppierung, rekursive Anfragen..
MehrArchitektur eines DBMS Logische Optimierung
Vorlesung Datenbanksysteme vom 16.11.2015 Anfragebearbeitung 1 Architektur eines DBMS Logische Optimierung Physische Optimierung Kostenmodelle + Tuning Architektur eines DBMS SW-Komponenten der Anfragebearbeitung
MehrAufgabensammlung 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
MehrDatenbanksysteme 2009
Datenbanksysteme 2009 Vorlesung vom 11.05.2009: Anfang von Kapitel 6: Das Relationale Modell Oliver Vornberger Institut für Informatik Universität Osnabrück Das Relationale Modell Wertebereiche (Domänen):
MehrSQL. 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:
MehrTransaktionsverwaltung read write read write
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1. Lese den Kontostand von A in die Variable a: read(a,a); 2. Reduziere den Kontostand um 50.- Euro: a:= a 50; 3. Schreibe
MehrWeb Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken. SQL Teil 2. Dr. Jérôme Kunegis Wintersemester 2013/14
Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken SQL Teil 2 Dr. Jérôme Kunegis Wintersemester 2013/14 Bereichsanfragen und Mitgliedschaft in der Menge Anfrage:
MehrGrundlagen des relationalen Modells
Grundlagen des relationalen Modells Seien D 1, D,, D n Domänen (Wertebereiche) Relation: R D 1 x x D n Bsp.: Telefonbuch string x string x integer Tupel: t R Bsp.: t = ( Mickey Mouse, Main Street, 4711)
MehrGrundlagen des relationalen Modells
Grundlagen des relationalen Modells Seien D 1, D 2,..., D n Relation: R D 1 Domänen (Wertebereiche) x... x D n Bsp.: Telefonbuch string x string x integer Tupel: t R Bsp.: t = ( Mickey Mouse, Main Street,
MehrGrundlagen des relationalen Modells
Grundlagen des relationalen Modells Seien D 1, D,, D n Domänen (Wertebereiche) Relation: R D 1 x x D n Bsp.: Telefonbuch string x string x integer Tupel: t R Bsp.: t = ( Mickey Mouse, Main Street, 711)
MehrVO 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
Mehrhttp://www-db.in.tum.de/research/publications/books/dbmseinf
SQL standardisierte - Datendefinitions (DDL)- - Datenmanipulations (DML)- - Anfrage (Query)-Sprache derzeit aktueller Standard ist SQL 99 und SQL3 (2003) objektrelationale Erweiterung Für praktische Übungen
MehrDas relationale Modell
Das relationale Modell Grundlagen Übersetzung von ER-Schemata in relationale Schemata Relationale Algebra Relationenkalkül Domänenkalkül Grundlagen des relationalen Modells Seien D 1, D 2,..., D n Domänen
MehrDatenbanksysteme SS 2007
Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück 1 Kapitel 6a: Das relationale Modell 2 Das Relationale Modell Wertebereiche (Domänen): D 1, D 2,,...,
MehrRelationale Darstellung von Entitytypen. Uni-Schema. Grundlagen des relationalen Modells
Grundlagen des relationalen Modells Seien D, D 2,, D n Domänen (Wertebereiche) elation: D x x D n Bsp.: Telefonbuch string x string x integer Mickey Mouse Mini Mouse Donald Duck Telefonbuch Straße Main
MehrGrundlagen des relationalen Modells
Grundlagen des relationalen Modells Seien D 1, D,, D n Domänen (Wertebereiche, Mengen) Eine Relation ist eine Teilmenge R D 1 x x D n Bsp.: Telefonbuch string x string x integer Ein Tupel ist jedes Element
MehrGrundlagen des relationalen l Modells
Grundlagen des relationalen l Modells Seien D 1, D 2,..., D n Domänen (~Wertebereiche) Relation: R D 1 x... x D n Bsp.: Telefonbuch string x string x integer Tupel: t R Bsp.: t = ( Mickey Mouse, Main Street,
MehrMicrosoft SQL-Server 2000. Enterprise-Manager
Kapitel 7: SQL Microsoft SQL-Server 2000 Server: Client: Enterprise-Manager Query-Analyzer Installation Query Analyzer Tunnel mit Putty Tunnel mit Putty SQL: Geschichte 1970: System R mit Abfragesprache
MehrSWE4 Slide 1. Software-Engineering. Vorlesung 4 vom Sebastian Iwanowski FH Wedel
SWE4 Slide Software-Engineering Vorlesung 4 vom 08..2004 Sebastian Iwanowski FH Wedel SWE4 Slide 2 Software-Engineering Vorlesungsthemen:. Überblick über das Thema und die Vorlesung 2. Grundlegende Prinzipien
MehrTermin 12: Datenbanksysteme (2) - Einführung in SQL
Termin 12: Datenbanksysteme (2) - Einführung in SQL Grundlagen der Informatik Wintersemester 2006/07 Prof. Bernhard Jung Übersicht 1. Einführung SQL 2. Datenbankanfragen mit SQL (select from where) 3.
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
MehrTU 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. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrWeb Science & Technologies University of Koblenz Landau. Grundlagen der Datenbanken. Integrität. Dr. Jérôme Kunegis Wintersemester 2013/14
Web Science & Technologies University of Koblenz Landau Grundlagen der Datenbanken Integrität Dr. Jérôme Kunegis Wintersemester 2013/14 Lernziele Verankerung von Integritätsregeln in DB Durch: effektivere
MehrSeminar 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
MehrReferentielle Integrität Fremdschlüssel verweisen auf Tupel einer Relation z.b. gelesenvon in Vorlesungen verweist auf Tupel in Professoren referentie
Datenintegrität Integritätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierungen statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische
MehrRückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung
Rückblick SQL bietet viele Möglichkeiten zur Anfrageformulierung mathematische Funktionen (z.b. ABS(A) und SIGN(A)) Aggregatfunktionen (z.b. MIN(A) und SUM(A)) Boole sche Operatoren (AND, OR, EXCEPT) Verknüpfungen
MehrSoftware-Engineering
FH Wedel Prof. Dr. Sebastian Iwanowski SWE42 Folie Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 4: Systemanalyse Teil 2: Datenorientierte Sicht FH Wedel Prof. Dr. Sebastian Iwanowski SWE42
MehrSoftware-Engineering
SWE42 Slide Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 4: Systemanalyse Teil 2: Datenorientierte Sicht SWE42 Slide 2 Systemanalyse: Datenorientierte Sicht Entity-Relationship-Modellierung
MehrGrundlagen des relationalen Modells
Grundlagen des relationalen Modells Das relationale Modell Verfeinerung des relationalen Schemas Relationale Algebra Relationenkalkül Kapitel 3 1 Grundlagen des relationalen Modells Seien D 1, D,, D n
MehrDatenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück
Datenbanksysteme 2011 noch Kapitel 7: SQL Vorlesung vom 17.05.2011 Oliver Vornberger Institut für Informatik Universität Osnabrück Sprung Selfjoin SQL 1970 Edgar Codd: A relational model for large shared
MehrEs wird empfohlen folgendes Material anzusehen:
Übung zur Vorlesung "Einführung in die Informatik für Hörer anderer Fachrichtungen (WZW)" IN8003, SS 2011 Prof. Dr. J. Schlichter Dr. Georg Groh, Dipl.Inform. Dipl.Geogr. Jan Herrmann, Florian Schulze
MehrDatenbanksysteme 2013. Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück
Datenbanksysteme 2013 Kapitel 7: SQL Oliver Vornberger Institut für Informatik Universität Osnabrück Sprung Transititve Hülle SQL 1970 Edgar Codd: A relational model for large shared data banks 1975 SEQUEL
MehrDatenbanksysteme 2009. Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück
Datenbanksysteme 2009 Kapitel 7: SQL Oliver Vornberger Institut für Informatik Universität Osnabrück SQL 1970 Edgar Codd: A relational model for large shared data banks 1975 SEQUEL für System R von IBM
MehrStudierende, die diese Vorlesung hören, haben sich auch für folgende Lehrveranstaltungen interessiert:
Studierende, die diese Vorlesung hören, haben sich auch für folgende Lehrveranstaltungen interessiert: Lehrangebot des FG Informationssysteme Modellierung Datenbanken Internet-Suchmaschinen Information
MehrDatenintegrität, Views und Zugriffsrechte
Kapitel 11 Dr. Jérôme Kunegis Datenintegrität, Views und Zugriffsrechte WeST Web Science & Technologien Lernziele Verankerung von Integritätsregeln in DB effektivere Integritätssicherung einfachere Anwendungsprogrammierung
MehrSQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.
SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit
MehrAcknowledgments. Datenmodellierung VU , WS Das Relationale Modell: Begriffsklärung. Übersicht. Das relationale Modell
Das relationale Modell Das relationale Modell Acknowledgments Datenmodellierung VU 184.685, WS 2015 Das relationale Modell Sebastian Skritek Die Folien sind eine kleine Erweiterung der Folien von Katrin
MehrObjektorientierte Datenbanken
OODB 1 Slide 1 Objektorientierte Datenbanken Vorlesung 1 Sebastian Iwanowski FH Wedel OODB 1 Slide Organisatorisches Vorlesung Mittwochs, 09:30 10:5 Raum HS Übung Dienstags, 09:30 10:5 (erstmalig am 1.0.)
MehrTU 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. 8 Hausaufgabe 1 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de)
MehrAuf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13
Auf einen Blick Vorwort... 13 Teil 1 Vorbereitung Kapitel 1 Einleitung... 17 Kapitel 2 SQL der Standard relationaler Datenbanken... 21 Kapitel 3 Die Beispieldatenbanken... 39 Teil 2 Abfrage und Bearbeitung
MehrDas relationale Modell
Das relationale Modell Das relationale Modell VO Datenmodellierung Katrin Seyr Institut für Informationssysteme Technische Universität Wien Katrin Seyr Seite 1 Das relationale Modell 1. Überblick Überblick
MehrAuf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13
Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel
MehrInhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15
Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................
MehrTU 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. 05 Übung zur Vorlesung Grundlagen: Datenbanken im WS16/17 Harald Lang, Linnea Passing (gdb@in.tum.de
MehrDatenmodellierung. VU , SS 2015 Das relationale Modell. Sebastian Skritek. Institut für Informationssysteme Technische Universität Wien
Das relationale Modell Datenmodellierung VU 184.685, SS 2015 Das relationale Modell Sebastian Skritek Institut für Informationssysteme Technische Universität Wien Sebastian Skritek Seite 1 Das relationale
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Übersicht der wichtigsten MySQL-Befehle
Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit
MehrInhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15
Vorwort 13 Kapitel 1 Einleitung 15 Kapitel 2 SQL-der Standard relationaler Datenbanken... 19 2.1 Die Geschichte 19 2.2 Die Bestandteile 20 2.3 Die Verarbeitung einer SQL-Anweisung 22 2.4 Die Struktur von
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
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. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)
SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro
MehrDATENBANKSYSTEME: DAS ENTITY RELATIONSHIP MODELL UND DAS RELATIONALE MODELL
Einführung, Entity-Relationship Modell, Funktionalitäten, Formalismus des Relationalen Modells, Transformation des ER-Modells, Relationale Algebra: Selektion, Projektion, kartesisches Produkt, Umbenennung
MehrDas Relationale Modell
Kapitel 6 Das Relationale Modell 6.1 Definition Gegeben sind n nicht notwendigerweise unterschiedliche Wertebereiche (auch Domänen genannt) D 1,..., D n, welche nur atomare Werte enthalten, die nicht strukturiert
MehrSQL. Kapitel 4 SQL 121 / 508
Kapitel 4 SQL 121 / 508 Generelle Anmerkungen SQL: Structured Query Language Früherer Name war SEQUEL Standardisierte Anfragesprache fuer relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative
Mehrinsert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle
Einführung in SQL insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Quelle Wikipedia, 3.9.2015 SQL zur Kommunikation mit dem DBMS SQL ist
MehrInformatik II Vorlesung am D-BAUG der ETH Zürich
Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 11, 2017 Datenbanksysteme: Das Entity Relationship (ER) Modell, das Relationale Modell und SQL. Literatur Literatur: Kemper, Eickler: Datenbanksysteme:
MehrDie Anweisung create table
SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl
Mehrdbis Praktikum DBS I SQL Teil 2
SQL Teil 2 Übersicht Fortgeschrittene SQL-Konstrukte GROUP BY HAVING UNION / INTERSECT / EXCEPT SOME / ALL / ANY IN / EXISTS CREATE TABLE INSERT / UPDATE / DELETE 2 SELECT Syntax SELECT FROM [WHERE [GROUP
MehrDatenbanksysteme Kapitel 7: SQL Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück
Datenbanksysteme 2013 Kapitel 7: SQL Vorlesung vom 6.05.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Sprung Transititve Hülle SQL 1970 Edgar Codd: A relational model for large shared
MehrSQL als Zugriffssprache
SQL als Zugriffssprache Der Select Befehl: Aufbau Select- und From-Klausel Where-Klausel Group-By- und Having-Klausel Union Join-Verbindung Order-By-Klausel Der Update-Befehl Der Delete-Befehl Der Insert-Befehl
Mehr