SQL Basics Schulung 05.12.2016 – 07.12.2016 • Vorstellungsrunde • Organisatorisches • Agenda Einführung Organisatorisches Mo, 05.12.16: Di, 08.12.16: Mi, 07.12.16: 09:00 – ca. 16:00 08:30 – ca. 16:00 08:30 – ca. 15:00 Mittagspause von 12:30 bis 13:30 SQL Basics Schulung - Einführung Agenda 1. Grundlagen Datenbanken 2. Vorstellung der Schulungsdatenbank 3. Einfache Abfragen erstellen 4. Mehrere Tabellen abfragen (Joins) 5. Gruppierungen und Aggregationen 6. Verschiedenes (DDL, DML, Unterabfragen, Mengenoperationen) 7. Wahlbereich a) Üben der Grundlagen an Beispielen b) Unterabfragen c) Tabellen anlegen (DDL) und befüllen (DML) SQL Basics Schulung - Einführung • Was ist eigentlich eine Datenbank? • Beziehungen • Normalformen • Transaktionen Grundlagen Datenbanken Begrifflichkeiten 1/2 • Eine Tabelle beinhaltet Spalten und Zeilen • Mehrere Tabellen gehören zu einer Datenbank (zu einem bestimmten Thema) SQL Basics Schulung – Grundlagen Datenbanken Begrifflichkeiten 2/2 • Ein Datenbankmanagementsystem (DBMS) verwaltet die Datenbanken. • Zum lesenden Zugriff auf Daten gibt es die Structured Query Language (SQL) • Zur Erstellung und Veränderung der Daten gibt es noch die Data Definition Language (DDL) und Data Manipulation Language (DML) SQL Basics Schulung – Grundlagen Datenbanken Beziehungen 1/2 • Stellt Zusammenhänge zwischen Tabellen dar • Es gibt verschiedene Typen: • 1:1 Beziehung • 1:n Beziehung • N:m Beziehung • Es gibt auch Kann-Beziehungen (0:1, 0:n) • N:m Beziehungen können in rel. Datenbanken nicht direkt umgesetzt werden. Zwischentabelle • Beziehungen werden in einem Entity-Relationship-Diagramm dargestellt SQL Basics Schulung – Grundlagen Datenbanken Beziehungen 2/2 • Def.: Schlüssel kennzeichnen einen Satz eindeutig. • Es gibt dabei Primär- und Fremdschlüssel SQL Basics Schulung – Grundlagen Datenbanken Normalformen • Ziel: Daten sollen redundanzfrei, eindeutig und in sich konsistent sein • Normalformen sind Regeln, wie Daten in Tabellen abgelegt sein sollen und beseitigen verschiedene Anomalien • Es gibt insgesamt 5 verschiedene Normalformen, 3 werden in der Praxis verwendet • Video Normalformen: https://www.youtube.com/watch?v=ktZ-W7BzqvE SQL Basics Schulung – Grundlagen Datenbanken Normalformen - Ausgangslage • Daten sind so nur schwer auswertbar SQL Basics Schulung – Grundlagen Datenbanken Normalformen - 1. Normalform • Def.: keine Wiederholungsgruppen innerhalb der Tabelle und jedes Attribut ist Atomar (d.h. nicht weiter aufteilbar) • Dadurch werden Daten überhaupt erst vernünftig auswertbar SQL Basics Schulung – Grundlagen Datenbanken Normalformen - 2. Normalform • Def.: 1. NF + jedes Nicht-Schlüsselfeld hängt vom gesamten Primärschlüssel ab und nicht nur von Teilen. • dadurch ist sichergestellt, dass nur zusammengehörige Daten in der Tabelle sind und es werden Redundanzen vermieden SQL Basics Schulung – Grundlagen Datenbanken Normalformen - 3. Normalform 1/2 • Def.: 2. NF + Nicht-Schlüsselfelder dürfen nicht von anderen NichtSchlüsselfeldern abhängen. • dadurch werden weitere Redundanzen vermieden • Durch Normalisierung steigt die Anzahl der Tabellen und es kann negative Auswirkungen auf die Abfrageperformance haben. • Es gibt Fälle in der Praxis, in denen Daten auch denormalisiert werden SQL Basics Schulung – Grundlagen Datenbanken Normalformen - 3. Normalform 2/2 SQL Basics Schulung – Grundlagen Datenbanken Datenbanktransaktionen • Um sicherzustellen, dass bei Datenänderungen, die Daten hinterher auch noch in sich konsistent sind, gibt es das sog. ACID-Paradigma: • • • • Atomicity alle Änderungen oder keine Concistancy Daten sollen hinterher auch noch konsistent sein Isolation Operationen sollen sich nicht gegenseitig beeinflußen können Durability Daten müssen zum Abschluss dauerhaft gespeichert werden • In DBMS wird ACID über sog. Transaktionen realisiert. (COMMIT und ROLLBACK) • Konsistenz kann über Constraints sichergestellt werden (Foreign Key Constraints, Check Constraints, ref. Integrität) SQL Basics Schulung – Grundlagen Datenbanken • Von der Anforderung zur Datenbank • Vorstellung Schulungsdatenbank Vorstellung der SchulungsDatenbank • Erstellen von Tabellen • Erstellen von Schlüsseln und FK Constraints • Nachträgliches Ändern der DB Strukturen • Datensätze einfügen / ändern / löschen • Abschneiden von Tabellen DDL + DML Tabellen erstellen CREATE TABLE tbl_xyz ( VORNAME VARCHAR2(20) NOT NULL, NACHNAME VARCHAR2(20) NOT NULL, …. ); Empfehlung: Keine Namen in “ …. “ !!! <Name> <Datentyp> [NOT NULL][CHECK] [DEFAULT] NUMBER ( p, s ) VARCHAR2 ( l ) DATE CHECK <Bedingung> DEFAULT <Wert> DEFAULT <Funktion> SQL Basics Schulung – DDL + DML Struktur ändern ALTER TABLE tbl_xyz <ALTER TABLE OPTION>; ALTER TABLE OPTION Beschreibung ADD ( <Spalten Def.> ) Ergänzung einer Spalte zu bestehender Tabelle. DROP <Spalten Name> Löschen einer Spalte aus einer Tabelle MODIFY <Spalten Def.> Ändern einer Spalte in der Tabelle ADD CONSTRAINT …. ALTER TABLE TBL_PRODUKT ADD ( test VARCHAR2(20) ); ALTER TABLE TBL_PRDUKTT ADD CONSTRAINT PK_PRODUKT PRIMARY KEY …. ; SQL Basics Schulung – DDL + DML