Relationales Datenbanksystem Oracle

Ähnliche Dokumente
SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Erzeugung und Veränderung von Tabellen

Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints

3.3. Implementierung in SQL DDL-Grundlagen Constraint-Verzögerung Implementierungs-Strategien

Praktische SQL-Befehle

SQL (Structured Query Language) Schemata Datentypen

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung }

Erzeugen von Constraints

Datenbanken im WI-Unterricht mit

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

DB1. DB SQL-DQL 1 Mario Neugebauer

4. Datenbanksprache SQL

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

SQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Datenbanken. Zusammenfassung. Datenbanksysteme

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

SQL structured query language

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Datenbanksysteme 2013

Wiederholung VU Datenmodellierung

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten

Die Anweisung create table

Kapitel DB:VI (Fortsetzung)

Kapitel 7: Referentielle Integrität

Datenbank und Tabelle mit SQL erstellen

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Wiederholung VU Datenmodellierung

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

Kapitel 3: Datenbanksysteme

SQL-Anweisungen. SELECT (SQL Data Query Language)

Kapitel 2: Das Relationale Modell

Kapitel 3: Datenbanksysteme

Es geht also im die SQL Data Manipulation Language.

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Datenbanksysteme Kapitel 2: SQL Data Definition Language

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Oracle SQL. Seminarunterlage. Version vom

Üben von DDL und DML. Ergebnis:

8. Tabellendefinition in SQL 8-1. Tabellendefinitionen

Relationale Datenbanken in der Praxis

Datendefinition und Datenmanipulation in SQL

Kapitel 8: Datenintegrität

Grundlagen von Datenbanken

Garten - Daten Bank. - survival pack -

Datenintegrität. Kapitel 5 1

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Kapitel 2: Das Relationale Modell

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Domänen: Grundtypen, alle vordefiniert, z.b. INTEGER ~ integer NUMERIC (p,s) p: precision, s: scale (nach,) etc.

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Datenbanksysteme Kapitel: SQL Data Definition Language

Probeklausur Datenbanken und Informationssysteme II

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

Integritätsbedingungen Eindeutige Identifikation (1)

Datenintegrität. Kapitel 5 1

7. Datenbankdefinitionssprachen

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.

Arbeiten mit einem lokalen PostgreSQL-Server

6. Datenintegrität. Integritätsbedingungen

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Referenzielle Integrität SQL

Beispiel zur referentiellen Integrität

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

SQL. Was ist SQL? SQL- Standards Grundregeln Die DDL Datenbanken erstellen Tabellen erstellen und ändern Spalten definieren Schlüssel definieren - 2 -

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

Transkript:

Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information wird also in Relationen R i abgelegt. Den Attributen A X i wird mittels der Funktion a ein semantischer Bereichsname zugeordnet. Außerdem können lokale (SC i ) und globale (SC) semantische Bedingungen angegeben werden. Diese müssen von einem der folgenden Typen sein: funktionale Abhängigkeiten mehrwertige Abhängigkeiten Verbundabhängigkeiten Enthaltenseinsabhängigkeiten Oracle verwendet Tabellen anstelle von Relationen. Das bedeutet dass ein Tupel durch eine Zeile in einer solchen Tabelle dargestellt wird. Prinzipiell kann im Gegensatz zum relationalen Modell in einer Tabelle eine Zeile mehrmals vorkommen. Anstatt von Attributen spricht man bei Oracle-Tabellen auch von Spalten. Während man im relationalen Modell beliebige semantische Bereichsnamen verwenden kann gibt Oracle eine feste Menge von Datentypen vor (siehe Abschnitt 4.2). Dabei ist ein Unterschied zum relationalen Modell dass verschiedene Tabellen für Spalten mit gleichen Namen unterschiedliche Datentypen haben können. Abschnitt 4.1 beschreibt die in Oracle zur Verfügung stehenden semantischen Bedingungen. Im Wesentlichen handelt es sich dabei um Spezialfälle von funktionalen Abhängigkeiten und von Enthaltenseinsabhängigkeiten. 1

2 Konzepte Die logische Struktur einer Oracle-Datenbank besteht aus mehreren Schichten: Die oberste Schicht ist die Datenbank. Jede Datenbank enthält einen oder mehrere tablespaces. Jedem Benutzer ist genau ein Schema zugeordnet (und umgekehrt). Die Daten jedes Schemas können über mehrere tablespaces verteilt sein. Ein Schema enthält Schemaobjekte. Schemaobjekte können u. a. von einem der folgenden Typen sein: Tabellen (tables) Sichten (views) Materialisierte Sichten (materialized views) Sequenzen (sequences) Synonyme (synonyms) Zugriffsstrukturen (indexes clusters hash clusters) Dimensionen (dimensions) Datenbankverknüpfungen (database links) Programmeinheiten (program units): procedures functions packages triggers... 3 Structured Query Language (SQL) In SQL können verschiedene Arten von Befehlen unterschieden werden: data definition language (DDL) data manipulation language (DML) transaction control session control system control embedded SQL 2

4 Erzeugen von Tabellen CREATE TABLE table ( (column datatype [DEFAULT expr] [column_constraint] table_constraint)... ) ; Hierbei sind table und column Bezeichner. 4.1 Semantische Bedingungen column_constraint [CONSTRAINT constraint] ([NOT] NULL UNIQUE PRIMARY KEY REFERENCES table [(column)] [ON DELETE (CASCADE SET NULL)] CHECK (condition)) table_constraint [CONSTRAINT constraint] (UNIQUE (column... ) PRIMARY KEY (column... ) FOREIGN KEY (column... ) references_clause CHECK (condition)) references_clause REFERENCES table [(column... )] [ON DELETE (CASCADE SET NULL)] Jeder semantischen Bedingung kann ein Name constraint gegeben werden. Gibt man keinen Namen an wird vom Datenbanksystem ein Name generiert. Oracle kennt den speziellen Wert NULL der zu jedem Datentyp passt. Er bedeutet soviel wie ist unbekannt oder nicht definiert. Für jede Spalte kann man solche Nullwerte mittels NULL erlauben (default) oder mittels NOT NULL verbieten. Mit UNIQUE und PRIMARY KEY werden Schlüsselattribute gekennzeichnet. Das heißt dass alle anderen Attribute funktional von den Schlüsselattributen abhängen. Darüber hinaus darf bei PRIMARY KEY keines der Schlüsselattribute den Wert NULL annehmen und es darf nur einen solchen Primärschlüssel pro Tabelle geben. Bei UNIQUE sind Nullwerte erlaubt und zusätzlich ist es zulässig dass mehrere Zeilen in einer Tabelle sind die für alle Schlüsselattribute den Wert NULL haben. Für jede Tabelle dürfen mittels UNIQUE mehrere Schlüssel definiert werden. Mit der Angabe von FOREIGN KEY... REFERENCES... bzw. REFERENCES... bei einzelnen Spalten wird ein sogenannter Fremdschlüssel festgelegt. Dies ist ein Spezialfall von Enthaltenseinsabhängigkeiten. Hierbei muss auf der nach REFERENCES angegeben Tabelle auf den angegebenen Attributen ein Schlüssel (mittels UNIQUE oder PRIMARY KEY) existieren. Gibt man keine Attribute an muss es auf der angegebenen Tabelle einen geeigneten Primärschlüssel geben der dann verwendet wird. 3

4.2 Datentypen Unter anderem stellt Oracle die folgenden Datentypen zur Verfügung: VARCHAR2(n) Zeichenketten bis maximal n Zeichen (1 n 4000) CHAR(n) Zeichenketten mit genau n Zeichen (1 n 2000). NUMBER(ps) Festkommazahlen mit p signifikanten Stellen und s Nachkommastellen (1 p 38 84 s 127). NUMBER(p) Kurzform für NUMBER(p0). NUMBER Fließkommazahlen mit einer Genauigkeit von 38 Dezimalstellen. FLOAT(b) Fließkommazahlen mit einer Genauigkeit von b Binärstellen (1 b 126). FLOAT Kurzform für FLOAT(126). DATE Zeitpunkte zwischen dem 1. 1. 4712 v. Chr. 0:00 und dem 31. 12. 9999 24:00 LONG Zeichenketten von maximal 2 GB. RAW(n) Binärdaten von maximal n Bytes (1 n 2000). LONG RAW. Binärdaten von maximal 2 GB. CLOB Zeichenketten von maximal 4 GB. BLOB Binärdaten von maximal 4 GB. 4.3 Werte und Bezeichner Textliterale (bzw. Textkonstanten) werden durch das Zeichen (Apostroph) begrenzt. Will man das Zeichen selbst in den Text aufzunehmen muss man es doppelt angeben. Somit sind z. B. Hallo und So n Quatsch syntaktisch korrekte Textkonstanten. Das Zeichen " (Anführungsstriche) kann verwendet werden um Bezeichner zu begrenzen. Während Bezeichner normalerweise mit einem Buchstaben beginnen müssen und alle Kleinbuchstaben in die entsprechenden Großbuchstaben umgewandelt werden kann dies durch die Verwendung von Anführungszeichen vermieden werden. Somit sind Folgendes drei von einander verschiedene gültige Bezeichner: "emp" "Emp" "EMP ". Die folgenden Angaben stehen hingegen alle für den gleichen Bezeichner: emp EMP "EMP". 5 Einfügen von Daten INSERT INTO table VALUES ( (expr DEFAULT)... ) ; 4

6 Löschen des gesamten Tabelleninhalts TRUNCATE TABLE table ; 7 Entfernen von Tabellen DROP TABLE table ; 8 Syntaxdiagramme create-table CREATE TABLE table ( column datatype table-constr. ) ; DEFAULT expr col.-constr. 5

col.-constr. CONSTRAINT constraint NOT NULL UNIQUE PRIMARY KEY REFERENCES table ( column ) ON DELETE CASCADE SET NULL CHECK ( condition ) 6

table-constr. CONSTRAINT constraint UNIQUE ( column ) PRIMARY KEY ( column ) FOREIGN KEY ( column ) references-clause CHECK ( condition ) references-clause REFERENCES table ( column ) ON DELETE CASCADE SET NULL insert-values INSERT INTO table VALUES ( expr ) ; DEFAULT truncate-table TRUNCATE TABLE table ; 7

drop-table DROP TABLE table ; 8