bung Datenbanksysteme SQLDDL 27 11 2002 bung Datenbanksysteme
Übung Datenbanksysteme SQL-DDL 27. 11. 2002 Übung Datenbanksysteme WS 2002/2003 9/11/2021
Umsetzung Relationenschema - SQL • SQL verwendet Relationenschema • Weitere Implementierungsdetails – Mehr Datentypen – Indexe – Integritätsregeln – Views – Speicherplatz, Tabellentyp. . . • Herstellerspezifische Optionen • Tuning Übung Datenbanksysteme WS 2002/2003 9/11/2021
SQL-DDL Aufgaben • • • Tabellenerzeugung Indexerzeugung Viewerzeugung Löschen von Tabellen, Indizes und Views Änderung von Tabellen, Spalten Übung Datenbanksysteme WS 2002/2003 9/11/2021
Tabellen erstellen • CREATE TABLE Tabellenname ( Spalte 1 Typ 1, Spalte 2 Typ 2 Einschränkungen ) Beispiele: Aufgaben 1 a-e Übung Datenbanksysteme WS 2002/2003 9/11/2021
„Einschränkungen“ von Spalten • NOT NULL Wert muss eingegeben werden • PRIMARY KEY Diese Spalte ist der Schlüssel der Tabelle • Warum Primärschlüssel ? – Fremdschlüssel (Beziehungen) – Kandidatenschlüssel (Entwurfstheorie) • Mehrspaltige Primärschlüssel ? Primary Key (Spalte 1, Spalte. X, . . . ) Übung Datenbanksysteme WS 2002/2003 9/11/2021
Tabellen ändern • Kein Entwurf ist immer richtig und vollständig => nachträgliche Änderungen notwendig ALTER TABLE. . . Unser Beispiel: neue Spalte. . . ADD COLUMN Spaltendefinition Beispiel: 1 f Geht auch für Einschränkungen, Typänderungen, Löschen • Sehr Herstellerabhängig • Oft nicht alles unterstützt Übung Datenbanksysteme WS 2002/2003 9/11/2021
Indexe • Dienen zur Beschleunigung der Zugriffe • Können für eine oder mehrere Spalten definiert sein, Reihenfolge der Spalten ist wichtig ! CREATE INDEX indexname ON Tabelle (Spalte, . . . ) • Wann man Indexe verwendet, wird im DBPraktikum genauer behandelt • Auch Indexe kosten etwas • Löschen mit DROP INDEX indexname Übung Datenbanksysteme WS 2002/2003 9/11/2021
Aufgabe 2: Überlegung zu Datentypen Ein Tuningparameter bei der Umsetzung von relationalen Schemata in SQL sind ähnliche, aber nicht identische Datentypen Ziel: Bestmögliches Verhältnis von Speicherplatz, Flexibilität und Genauigkeit Beispiel: Real, Numeric(n, m), Integer – Gleicher Platzbedarf – Unterscheidliche Darstellungsqualität Übung Datenbanksysteme WS 2002/2003 9/11/2021
Aufgabe 2 a) Ergebnisse von wissenschaftlichen Berechnungen ? • Float • Real • Double Ergebnistyp von numerischen Programmen Hintergrund: Wissenschaftliche Berechnungen arbeiten mit – – bester verfügbarer Genauigkeit Möglichst hoher Geschwindigkeit Übung Datenbanksysteme WS 2002/2003 9/11/2021
Aufgabe 2 b Kontostände, Umsätze und Bilanzen bei einer großen Bank ? Numeric Geldbeträge haben Nachkommastellen, große Werte: Þ kein Integer Banken benötigen exakte Rechnung innerhalb des Zahlenraums: Þ kein Float, Double etc. Übung Datenbanksysteme WS 2002/2003 9/11/2021
Aufgabe 2 c Studentenzahlen an deutschen Universitäten? • Aufzählbar • Genau • Relativ kleiner Zahlenbereich ÞInteger (32 bit) Wahrscheinlich sogar ÞSmallint (16 bit) (keine deutsche Uni hat mehr als 65000 Studenten) Übung Datenbanksysteme WS 2002/2003 9/11/2021
Aufgabe 2 d Ortsnamen in Deutschland? Þ Zeichenkette Char(n) oder Varchar(n) ? Char: immer n Bytes Varchar strlen+c Bytes Varchar besser, da große Längenunterschiede Was ist N ? Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch Nicht aus Deutschland, aber echter Ortsname => N > 60 ? Übung Datenbanksysteme WS 2002/2003 9/11/2021
Aufgabe 2 e Raumbezeichnungen an der TU (MI 00. 001)? Ziffern reichen nicht: kein Integer Þ Zeichenkette Char(n) oder Varchar(n) ? Hier besser char(n): • • • Länge ist relativ konstant, Keine Ausreisser Overhead von varchar unnötig Übung Datenbanksysteme WS 2002/2003 9/11/2021
Aufgabe 2 f Satellitenbilder? – – Groß (bis zu mehreren GB) Binär Keine Struktur für relationales System Auswertung erfolgt im Client Þ BLOB Binary Large Object Warum nicht Pointer/URL auf File ? => Konsistenz, Transaktionskonzept, … Übung Datenbanksysteme WS 2002/2003 9/11/2021
Aufgabe 2 g Sehr lange Texte (50 MB) bestehend aus vielen einzelnen Wörtern und Sätzen? Ideen: • Varchar für den ganzen Text Problem: Varchar hat Limit bei 32000 Zeichen • CLOB (Character BLOB) Funktioniert, aber Keine Ausnutzung von DB-Features (Index) Wie können wir es eventuell besser machen ? Wir zerlegen den Text entlang bestimmter Kriterien - Sätze - Wörter Übung Datenbanksysteme WS 2002/2003 9/11/2021
Aufgabe 2 g (2) Zerlegungen: • Varchar pro Satz (Satznr: integer, Text: varchar(n)) ÞText kann indiziert werden • Varchar pro Wort (Satznr: integer, Wortnummer: integer, Text: varchar(n)) =>Index auf einzelnen Wörtern möglich Anwendung ? Fazit: Zerlegung hängt von Anwendungszweck an, keine ist immer gut Übung Datenbanksysteme WS 2002/2003 9/11/2021
- Slides: 16