Relationales Datenmodell und DDL

Slides:



Advertisements
Ähnliche Präsentationen
Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen.
Advertisements

Datenintegrität Integitätsbedingungen Schlüssel
Grundlagen des relationalen Datenmodells
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
spezielle Nutzersichten formale Ebene (deskriptive Regeln)
© A. Kemper / A. Eickler1 Kapitel 5: Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
SQL::Geschichte/Normen (Übersicht)
Grundlagen Datenbanken
SQL als Abfragesprache
SQL als Abfragesprache
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Prof. Dr. T. Kudraß1 Das Relationen-Modell. Prof. Dr. T. Kudraß2 Einführung Geht auf klassische Arbeit von Codd zurück (1970) Meistgenutztes Datenmodell.
Prof. Dr. T. Kudraß1 Integrität in Datenbanken. Prof. Dr. T. Kudraß2 Unterschied Konsistenz - Integrität Konsistenz beschreibt die Korrektheit der DB-internen.
Datenintegrität Referentielle Integrität create table
Kapitel 2: Konzeptuelle Modellierung
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
3.5.2 Fremdschlüssel/ Referentielle Integrität (6/9)
3.5.2 Fremdschlüssel/ Referentielle Integrität (1/9)
2.2 Definition eines Datenbankschemas (SQL-DDL)
Datenbankentwicklung IV-LK
Relationale Datenbanken III
Datenintegrität Integitätsbedingungen Schlüssel
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
SS 2010 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #2 Datenbankentwurf.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #8 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
(D.h. „Hallo MausFans!“ auf Japanisch).
Datenbanksysteme für hörer anderer Fachrichtungen
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Structured Query Language
1 Polymorphe Konsistenzbedingungen (1) Polymorphe Konsistenzbedingungen legen fest, welche Arten von Zustandsbeschränkungen nach einer Konkretisierung.
Integritätsbedingungen (Constraints)
Abbildung UML-Schema  Rel. Schema (1)
1 Referenzielle Konsistenz (1) Vorgehensweise: Klausel references mit nachfolgender Spezikation eines Attributs einer anderen Tabelle identifiziert ein.
RelationentheorieObjektorientierte Datenbanken  AIFB SS C++-ODL (1/6) Erweiterung des deklarativen Teils einer C++-Klasse Datentypen d_String,
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Vordefinierte Datentypen (1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
SS 2014 – IBB4B Datenmanagement Do 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Datenbank System (DBS) - Warum?
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #2 Datenbankentwurf.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
Übungsblatt 4 Erläuterungen Wintersemester 15/16 DBIS.
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
SQL Basics Schulung –
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #7 SQL (Teil 4).
Constraints anlegen und löschen, Data Dictionary Tabellen
Datenbanken Das Relationale Datenmodell
 Präsentation transkript:

Relationales Datenmodell und DDL

A. Grundlagen des relationalen Modells Domänen mögliche Wertebereiche für die Attribute Relationen Tabelle eines Datenbanksystems - Attribute entsprechen den Spalten - Tupel entsprechen den Zeilen Tupel Relationen mit konkreten Attributwerten t = („Mickey Mouse“, „Main Street“, 4711) 4. Schema legt die Struktur einer Relation fest Telefonbuch: {[Name : string, Adresse : string, TelefonNr : integer]} Hier unten kann eine Hilstext eingegeben werden.

A. Grundlagen des relationalen Modells 5. Ausprägung aktueller Zustand der Datenbasis 6. Schlüsselkandidaten minimale Anzahl der zur eindeutigen Identifikation eines Tupel nötigen Attribute Primärschlüssel nur einer der Schlüssel wird zum Primärschlüssel wird zur Kennzeichnung unterstrichen Hier unten kann eine Hilstext eingegeben werden.

A. Grundlagen des relationalen Modells 8. Relationale Darstellung von Entitymengen Studenten: {[MatrNr : integer, Name : string, Semester : integer]} 9. Relationale Darstellung von Beziehungen hören (N:M): {[MatrNr : integer, VorlNr : integer]} 10. Verfeinerte Abbildungsregeln für Beziehungen zwischen 2 Entities E und F 1:1-Beziehungen Primärschlüssel von E in Relation F schreiben oder Umgekehrt 1:N-Beziehungen Primärschlüssel von E in Relation F schreiben Attribute der Relation R ebenfalls in F übernehmen Vorlesungen: {[VorlNr, Titel, SWS, gelesenVon]} Professoren: {[PersNr, Name, Rang, Raum]} Hier unten kann eine Hilstext eingegeben werden.

A. Grundlagen des relationalen Modells 11. Anomalien Update-Anomalie: was passiert wenn Sokrates einen anderen Raum bekommt? Lösch-Anomalie: was passiert wenn „Glaube und Wissen“ wegfällt? Einfügeanomalie: Curie ist neu und liest noch keine Vorlesungen Hier unten kann eine Hilstext eingegeben werden.

A. Grundlagen des relationalen Modells 12. Relationale Modellierung der Generalisierung Angestellte: {[PersNr, Name]} Professoren: {[PersNr, Rang, Raum]} Assistent: {[PersNr, Fachgebiet]} Hier unten kann eine Hilstext eingegeben werden.

B. SQL (Structured Query Language) 1. Allgemeines Deklarative Anfragesprache Mengenorientiert In andere Programmiersprachen einbettbar Vier große Teile DRL (Data Retrieval Language) Kommandos für Anfragen DML (Data Manipulation Language) Befehle, um Daten einzufügen, zu löschen und zu ändern (insert, delete, update) DDL (Data Definition Language) Definition des Schemas der Datenbank Befehle, um den Zugriff auf Daten zu kontrollieren (create table, alter table, create view, create index, drop) DCL (Data Control Language) Befehle, um den Fluss von Transaktionen zu steuern

B. SQL (Structured Query Language) 2. Varianten von SQL Embedded SQL SQL-Befehle werden direkt in die jeweilige Hostsprache eingebettet SQL-Befehle werden durch ein vorangestelltes EXEC SQL markiert sie werden vom Präprozessor durch Konstrukte der jeweiligen Sprache ersetzt Dynamic SQL Wird eingesetzt, wenn die Anfragen zur Übersetzungszeit des Programms noch nicht bekannt sind Standardisierte Schnittstellen (ODBC, JDBC) Flexibler, aber üblicherweise etwas langsamer als Embedded SQL

B. SQL (Structured Query Language) 3 B. SQL (Structured Query Language) 3. DDL: Create Table Statement CREATE TABLE Tabellenname ( Attribut_1 Datentyp_1 [NOT NULL], … Attribut_n Datentyp_n [NOT NULL]);

B. SQL (Structured Query Language) 4. DDL: Datentypen Zeichenketten und Zahlen VARCHAR (n) CHAR[ACTER] NUMERIC DEC[IMAL] INT[EGER] SMALLINT FLOAT Datum und Zeit DATE, TIME, TIMESTAMP Zeichenketten, Binärdaten LONG, CLOB, RAW (n), LONG RAW, BLOB, CFILE, BFILE, DATALINK, MONEY/SMALLMONEY, …

C. Integritätsbedingungen Definition Beschreibung der Eigenschaften der modellierten Miniwelt durch semantische Integritätsbedingungen Ziel Sicherung der Konsistenz der Daten einer Datenbank Überprüfung durch Constraints Hier unten kann eine Hilstext eingegeben werden.

C. Integritätsbedingungen Arten a. NOT NULL Bedingung i. erzwingt Definition von Attributwerten beim Einfügen von Tupeln -> zwingend erforderlich für Schlüssel ii. Formulierung: NOT NULL direkt hinter Attributdefinition -> Bsp.: PersNr INTEGER NOT NULL iii. Default-Angabe möglich, wo NOT NULL nicht eingesetzt wird -> ratsam, um Auftreten von NULL-Werten zu vermeiden -> Formulierung: DEFAULT ‘Attributwert‘ direkt hinter Attributdefinition -> Bsp.: Ort VARCHAR(80) DEFAULT ‘Garching‘ Hier unten kann eine Hilstext eingegeben werden.

C. Integritätsbedingungen b. Primärschlüssel Bedingung i. Primärschlüssel: Attribut(-kombination), die in jeder Ausprägung der Relation keinen Wert hat, der mehr als einmal vorkommt -> entsprechende Attribute müssen mit NOT NULL definiert sein! ii. Formulierung - Langform [CONSTRAINT constraintname_pk] PRIMARY KEY (Attribut_x,…,Attribut_z) -> Bsp.: PersNr INTEGER NOT NULL, …, PRIMARY KEY (PersNr) - Kurzform NOT NULL PRIMARY KEY direkt hinter entsprechende Schlüsseldefinition -> Bsp.: PersNr INTEGER NOT NULL PRIMARY KEY Hier unten kann eine Hilstext eingegeben werden.

C. Integritätsbedingungen c. UNIQUE Bedingung i. stellt Schlüsseleigenschaft für Attribut sicher: kann nur einmal vorkommen ii. Formulierung: UNIQUE direkt hinter Attributdefinition -> Bsp.: PersNr INTEGER NOT NULL UNIQUE Hier unten kann eine Hilstext eingegeben werden.

C. Integritätsbedingungen d. CHECK Klauseln i. Einschränkung des Wertebereiches für Attribute ii. Formulierung: CHECK (Wertebereichbedingung) -> Bsp.: CHECK (PersNr > 0 AND PersNr < 99999) Hier unten kann eine Hilstext eingegeben werden.

C. Integritätsbedingungen e. Referentielle Integrität: Fremdschlüssel Bedingung i. Referenz von einer Kindtabelle auf eine Elterntabelle ii. Annahmen -> Relationen R und S mit Schemata R und S -> R hat Primärschlüssel k iii. Voraussetzungen für Fremdschlüssel f in S: für alle Tupel s in S gilt -> entweder Attribut f aus Tupel s enthält nur NULL-Wert -> oder Attribut f aus Tupel s enthält keine NULL-Werte und es existiert ein Tupel r aus R, dessen Attribut k gleich Attribut f aus Tupel s ist (r.k = s.f) Hier unten kann eine Hilstext eingegeben werden.

C. Integritätsbedingungen e. Referentielle Integrität: Fremdschlüssel Bedingung iv. Formulierung - Langform [CONSTRAINT constraintname_fk] FOREIGN KEY (Attribut_x,…,Attribut_z) REFERENCES Elterntabellenname (Attribut_u,…,Attribut_w) -> Bsp.: gelesenVon INTEGER, …, FOREIGN KEY (gelesenVon) REFERENCES Professoren (PersNr) - Kurzform REFERENCES Elterntabellenname direkt hinter entsprechende Schlüsseldefinition -> Bsp.: gelesenVon INTEGER REFERENCES Professoren Hier unten kann eine Hilstext eingegeben werden.

C. Integritätsbedingungen e. Referentielle Integrität: Fremdschlüssel Bedingung v. Varianten: automatische Propagierung der Änderung von Schlüsselattributen -> Änderung der Fremdschlüsselwerte bei Änderung (ON UPDATE) oder Löschung (ON DELETE) der Schlüssel, auf die sie zeigen - SET NULL -> alle Fremdschlüsselwerte werden auf NULL gesetzt -> Formulierung: SET NULL nach Fremdschlüsseldefinition -> Bsp.: gelesenVon INTEGER REFERENCES Professoren ON DELETE SET NULL - CASCADE -> alle Fremdschlüsselwerte werden ebenfalls geändert oder gelöscht -> Formulierung: CASCADE nach Fremdschlüsseldefinition -> Bsp.: VorlNr INTEGER REFERENCES Vorlesungen ON DELETE CASCADE Hier unten kann eine Hilstext eingegeben werden.

Erstelle Tabelle Professoren mit folgenden Bedingungen: D. Beispielaufgabe Erstelle Tabelle Professoren mit folgenden Bedingungen: PersNr ist Primärschlüssel Name muss Wert erhalten, Rang nicht Raumnummer hat höchstens fünf Stellen CREATE TABLE Professoren (PersNr INTEGER NOT NULL, Name VARCHAR(30) NOT NULL, Rang CHAR(2), Raum INTEGER CHECK (PersNr > 0 AND PersNr < 99999), PRIMARY KEY (PersNr)); Hier unten kann eine Hilstext eingegeben werden.