Prof. Dr. Bernd Blümel Prof. Dr. Volker Klingspor Datenbanken und SQL FB W Falsche Datenstruktur 2012-03-26 Datenbanken und SQL 2 FB W Optimierte Struktur 2012-03-26 Datenbanken und SQL 3 FB W Tabellen der campusInfo-Datenbank 2012-03-26 Datenbanken und SQL 4 FB W Elemente einer Tabelle 2012-03-26 Datenbanken und SQL 5 FB W Der Fremdschlüssel 2012-03-26 Datenbanken und SQL 6 FB W Beispiele • Beispiel1: Kunden können Aufträge erteilen, Aufträge enthalten Artikel. • Beispiel2: In den Veranstaltungsräumen der FH sind Ressourcen installiert. Damit sind Beamer, Tafeln, PC's usw. gemeint. Räume besitzen darüber hinaus eine Kapazitätsklasse. Damit ist eine Klassifizierung in Bezug auf ihre Anzahl an Sitzplätzen gemeint. Professoren der FH führen Veranstaltungen in festgelegten Zeitblöcken an Wochentagen in den Vorlesungsräumen durch. Die Benutzer des Informationssystems sind die Professoren und Studenten. • Beispiel3: Mitarbeiter arbeiten in Abteilungen, Abteilungen werden von Mitarbeitern geleitet. Mitarbeiter können mit 2012-03-26 Datenbanken und SQL 7 FB W Entities Beispiel 1 • Kunden können Aufträge erteilen, Aufträge enthalten Artikel. 2012-03-26 Datenbanken und SQL 8 FB W Entities Beispiel 2 • In den Veranstaltungsräumen der FH sind Ressourcen installiert. Damit sind Beamer, Tafeln, PC's usw. gemeint. Räume besitzen darüber hinaus eine Kapazitätsklasse. Damit ist eine Klassifizierung in Bezug auf ihre Anzahl an Sitzplätzen gemeint. Professoren der FH führen Veranstaltungen in festgelegten Zeitblöcken an Wochentagen in den Vorlesungsräumen durch. Die Benutzer des Informationssystems sind die Professoren und Studenten. 2012-03-26 Datenbanken und SQL 9 FB W Entities Beispiel 3 • Mitarbeiter arbeiten in Abteilungen, Abteilungen werden von Mitarbeitern geleitet. Mitarbeiter können mit Mitarbeitern verheiratet sein. 2012-03-26 Datenbanken und SQL 10 FB W Beziehungen • Beziehung zwischen Kunde und Auftrag: Kunde erteilt Auftrag. • Beziehung zwischen Raum und Ressource: Raum besitzt Ressource. 2012-03-26 Datenbanken und SQL 11 FB W 1:N Beziehung 2012-03-26 Datenbanken und SQL 12 FB W m:n Beziehung 2012-03-26 Datenbanken und SQL 13 FB W 1:1 Beziehung ABER: 2012-03-26 Datenbanken und SQL 14 FB W Beziehungen zwischen mehr als zwei Entities 2012-03-26 Datenbanken und SQL 15 FB W Rekursive Beziehung 2012-03-26 Datenbanken und SQL 16 FB W is-a Beziehung 2012-03-26 Datenbanken und SQL 17 FB W ERM Kunde 2012-03-26 Datenbanken und SQL 18 FB W ERM CampusInfo 2012-03-26 Datenbanken und SQL 19 FB W ERM Unternehmen 2012-03-26 Datenbanken und SQL 20 FB W ERM Promotoren 2012-03-26 Datenbanken und SQL 21 FB W Entities zu Tabellen Jede Entity aus dem ERM führt zu einer Tabelle in der Datenbank 2012-03-26 Datenbanken und SQL 22 FB W 1:N Beziehung zu Tabellen • Bei einer 1:N Beziehung wird der Primärschlüssel der zur 1Entity gehörigen Tabelle Fremdschlüssel in der zu n-Entity gehörenden Tabelle 2012-03-26 Datenbanken und SQL 23 FB W 1:N Beziehung zu Tabellen – Beispiel campusInfo 2012-03-26 Datenbanken und SQL 24 FB W m:n Beziehung zu Tabellen 2012-03-26 Datenbanken und SQL 25 FB W m:n Beziehung zu Tabellen: Regel • • • • • Bei der Auflösung einer n:m-Beziehung ensteht aus dieser Beziehung eine weitere Tabelle. Diese Tabelle besitzt einen zusammengesetzten Primärschlüssel. Bestandteile des zusammengesetzten Primärschlüssel sind die Primärschlüssel der Grundtabellen der n:m-Beziehung. Der Primärschlüssel der Verbindungstabelle kann weitere Attribute enthalten. Die Tabelle selber kann ebenfalls weitere Attribute enthalten, diese müssen aber vom Primärschlüssel insgesamt abhängig sein. 2012-03-26 Datenbanken und SQL 26 FB W m:n Beziehung zu Tabellen: Auftrag Produkt 2012-03-26 Datenbanken und SQL 27 FB W m:n Beziehung zu Tabellen: Auftrag Produkt 2. Lösung 2012-03-26 Datenbanken und SQL 28 FB W 1:1 Beziehung zu Tabellen: Regel • Bei einer 1:1 Beziehung hat man freie Auswahl in welche Tabelle man den Primärschlüssel der anderen Tabelle als Fremdschlüssel einfügt. 2012-03-26 Datenbanken und SQL 29 FB W Beziehungen zwischen mehr als 2 Entities zu Tabellen: Regel • • • • Bei der Auflösung einer Beziehung zwischen mehr als 2 Entities ensteht aus dieser Beziehung eine weitere Tabelle. Diese Tabelle besitzt einen zusammengesetzten Primärschlüssel. Bestandteile des zusammengesetzten Primärschlüssels sind die Primärschlüssel der Grundtabellen der Beziehung. Der Primärschlüssel der Verbindungstabelle kann weitere Attribute enthalten. Die Tabelle selber kann ebenfalls weitere Attribute enthalten, diese müssen aber vom Primärschlüssel insgesamt abhängig sein. 2012-03-26 Datenbanken und SQL 30 FB W Beziehungen zwischen mehr als 2 Entities zu Tabellen: Beispiel 2012-03-26 Datenbanken und SQL 31 FB W is-a Beziehung zu Tabellen: Regel • • • Bei der Auflösung einer is-a-Beziehung werden die Attribute, die allen Spezialisierungen gemeinsam sind in die Tabelle der Generalisierungs-Entity aufgenomen. Die Attribute, die die Spezialisierungen kennzeichnen in ihren jeweiligen Tabellen. Der Primärschlüssel aller drei Tabellen ist der Primärschlüssel der Tabelle der Generalisierungs-Entity. 2012-03-26 Datenbanken und SQL 32 FB W is-a Beziehung zu Tabellen: Beispiel 2012-03-26 Datenbanken und SQL 33 FB W Tabellen Kunde, Auftrag, Produkt – 3 Lösungen möglich 1. Lösung 2. Lösung 3. Lösung 2012-03-26 Datenbanken und SQL 34 FB W Tabellen campusInfo 2012-03-26 Datenbanken und SQL 35 FB W Tabellen Unternehmen 2012-03-26 Datenbanken und SQL 36 FB W Tabellen Promotoren 2012-03-26 Datenbanken und SQL 37 FB W SQL – Structured Query Language • Kommandos zum: – Datenbanken anlegen – Tabellen anlegen – Datensätze in Tabellen eintragen – Datensätze aus Tabellen löschen – Datensätze in Tabellen ändern – Datensätze aus Tabellen selektieren 2012-03-26 Datenbanken und SQL 38 FB W SQL-1 | Select mit Wildcard SQL Statement Select * from Kunde Ergebnis 2012-03-26 Datenbanken und SQL 39 FB W SQL-2 | Spalten auswählen SQL Statement Select Nachname, Vorname from Kunde Ergebnis 2012-03-26 Datenbanken und SQL 40 FB W SQL-3 | Sortierung aufsteigend 2012-03-26 Datenbanken und SQL 41 FB W SQL-4 | Ergebnisse absteigend sortieren 2012-03-26 Datenbanken und SQL 42 FB W SQL-5 | Distinct- doppelte Werte vermeiden 2012-03-26 Datenbanken und SQL 43 FB W SQL-6 | Sortierung nach mehreren Spalten 2012-03-26 Datenbanken und SQL 44 FB W SQL-7 | Mehrere Bedingungen 2012-03-26 Datenbanken und SQL 45 FB W SQL-8 | Not-Operator 2012-03-26 Datenbanken und SQL 46 FB W SQL-9 | Klammersetzung in der Bedingung 2012-03-26 Datenbanken und SQL 47 FB W SQL-10 | Verknüpfung von Ausdrücken 2012-03-26 Datenbanken und SQL 48 FB W SQL-11 | Rechnen mit SQL 2012-03-26 Datenbanken und SQL 49 FB W SQL-12 | Rechnen mit SQL ohne Tabellen 2012-03-26 Datenbanken und SQL 50 FB W SQL-13 | Funktionen 2012-03-26 Datenbanken und SQL 51 FB W SQL-14 | Suche nach Text mit Platzhaltern Teil 1 2012-03-26 Datenbanken und SQL 52 FB W SQL-15 | Suche nach Text mit Platzhaltern Teil 2 2012-03-26 Datenbanken und SQL 53 FB W SQL-16 | Suche nach leeren Zellen 2012-03-26 Datenbanken und SQL 54 FB W SQL-17 | Zählen von Datensätzen 2012-03-26 Datenbanken und SQL 55 FB W SQL-18 | Gruppieren von Datensätzen 2012-03-26 Datenbanken und SQL 56 FB W SQL-19 | Falsches Gruppieren von Datensätzen 2012-03-26 Datenbanken und SQL 57 FB W SQL-20 | Having – Einschränkung beim Gruppieren 2012-03-26 Datenbanken und SQL 58 FB W SQL-21 | Select über zwei Tabellen 2012-03-26 Datenbanken und SQL 59 FB W SQL-21a | Select über zwei Tabellen 2012-03-26 Datenbanken und SQL 60 FB W SQL-22 | Weitere Abfrage über zwei Tabellen 2012-03-26 Datenbanken und SQL 61 FB W SQL-23 | Weitere Abfrage über zwei Tabellen mit Bedingungen 2012-03-26 Datenbanken und SQL 62 FB W SQL-24 | Alternative Möglichkeit zur Abfrage über zwei Tabellen 2012-03-26 Datenbanken und SQL 63 FB W SQL-25 | Abfragen über drei Tabellen 2012-03-26 Datenbanken und SQL 64 FB W SQL-25a| Abfragen über drei Tabellen Teil 2 2012-03-26 Datenbanken und SQL 65 FB W SQL-26 | Abfragen über vier Tabellen 2012-03-26 Datenbanken und SQL 66 FB W SQL-27 | Joins weiteres Beispiel 2012-03-26 Datenbanken und SQL 67 FB W SQL-28 | Left Join 2012-03-26 Datenbanken und SQL 68 FB W SQL-29 | Right Join 2012-03-26 Datenbanken und SQL 69 FB W SQL-30 | Gegenüberstellung left – right joins 2012-03-26 Datenbanken und SQL 70 FB W SQL-31 |Alle Datensätze einer Tabelle löschen 2012-03-26 Datenbanken und SQL 71 FB W SQL-32 | Löschen von Datensätzen mit einer Bedingung 2012-03-26 Datenbanken und SQL 72 FB W SQL-33 | Löschen von Datensätzen mit mehreren Bedingungen 2012-03-26 Datenbanken und SQL 73 FB W SQL-34 | Ändern von allen Datensätzen 2012-03-26 Datenbanken und SQL 74 FB W SQL-35 | Ändern von einem bestimmten Datensatz 2012-03-26 Datenbanken und SQL 75 FB W SQL-37 | Neuberechnung und direkte Änderung eines Wertes 2012-03-26 Datenbanken und SQL 76 FB W SQL-38 | Einfügen eines Datensatzes 2012-03-26 Datenbanken und SQL 77 FB W SQL-39 | Einfügen von mehreren Datensätzen 2012-03-26 Datenbanken und SQL 78 FB W SQL-41 | Einfügen von Datensätzen ohne ID 2012-03-26 Datenbanken und SQL 79