System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Objekt – Relationales – Modell Tomasz Makowski IN
Praktikum Datenbanksystementwicklung – System J – Knut Stolze
MySQL.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Datenintegrität, Views und Zugriffsrechte
FH-Hof SQLJ Richard Göbel. FH-Hof SQLJ - Idee Erweiterung von Java um SQL Die Verwendung von SQL-Anweisungen innerhalb einer Programmiersprache wird vereinfacht.
FH-Hof Effizienz - Anweisungen für Indexstrukturen Richard Göbel.
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],
Datenbank-Zugriffsschnittstellen am Beispiel von Oracle und PL/SQL.
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.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Otto-von-Guericke-Universität Magdeburg Gamal Kassem 1 Tabellenzeile mit READ lesen READ TABLE itab INDEX idx READ TABLE itab WITH KEY comp1 = f1.... Compn.
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Übung Datenbanksysteme WS 2003/ Übung Datenbanksysteme Hierarchische DBMS
Datenintegrität Referentielle Integrität create table
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
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.
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
Informationssysteme SS Kapitel 7: Die Datenbanksprache SQL 7.1 Datendefinition 7.2 Einfache Anfragen 7.3 Semantik einfacher SQL-Anfragen 7.4 Erweiterte.
Kapitel 9: Integritätssicherung
Datenbanken 13: Objekt-Klasse-Datenbank
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Datenbanken 10: Einfügen, Ändern, Löschen
3.5.2 Fremdschlüssel/ Referentielle Integrität (6/9)
2.2 Definition eines Datenbankschemas (SQL-DDL)
objekt-relationale Datenbanken
Datenbankentwicklung IV-LK
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Relationale Datenbanken III
FH-Hof Standard Query Language Richard Göbel. FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #9 SQL (Teil 4)
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
Vorlesung #10 Physische Datenorganisation
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
Transaktionsverwaltung
Integritätsbedingungen (Constraints)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
Prolog: Datenbanken Inhalt - Überblick - Erstellen einer Datenbank
SystemJ AbschlußpräsentationDBJCatalogManager Dennis Heimann + Marcus Hetterle Friedrich Schiller Universität Jena 2005.
Datenbanksystementwicklung – Systemarchitektur & Prozessmodell – Knut Stolze
Datenbank für Skriptenverkauf
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
PHP Schulung Beginner Newthinking Store GmbH Manuel Blechschmidt.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
SQL Basics Schulung –
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Abfragesprache SQL in ORACLE
Sichten.
Constraints anlegen und löschen, Data Dictionary Tabellen
Create Table, Rechte und Rollen
Indexierung Oracle: indexes Indexierung.
(Structured Query Language)
 Präsentation transkript:

System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze

2 Aufgaben des Compilers Parsen der SQL-Anweisung Aufbau des internen Zugriffsplan (Baum) Ermitteln der intenen Spalten-, Tabellen- und Index-IDs Zuordnung der Spalten zu den Tabellen (SELECT)

3 Unterstütze SQL-Syntax (1) >>--CREATE TABLE--table-name--( >.--, V | >-----column-name--| data-type | > '--NOT NULL--' > )------>< '--,--PRIMARY KEY--(--column-name--)--' >>--DROP TABLE--table-name ><

4 Unterstütze SQL-Syntax (2) data-type: |--+--INTEGER | +--INT '--VARCHAR--(--length--)--' >>--COMMIT >< >>--ROLLBACK ><

5 Unterstütze SQL-Syntax (3) >>--CREATE INDEX--index-name--ON > '--UNIQUE--'.--OF TYPE BTREE--. >--table-name--(--column-name--) >< '--OF TYPE HASH---' >>--DROP INDEX--index-name ><

6 Unterstütze SQL-Syntax (4) >>--INSERT--INTO--table-name--VALUES >.--, |.--, | V V | | >-----(-----value--+--) ><.--AS--corr-name--. >>--DELETE--FROM--table-name > > >< '--| where-clause |--'

7 Unterstütze SQL-Syntax (5).--, | | V.--AS--new-name--. | >>--SELECT--+---column-name > '--* '.--, V.--AS--corr-name--. | >---FROM-----table-name > > >< '--| where-clause |--'

8 Unterstütze SQL-Syntax (6) where-clause: |--WHERE--| predicate | | predicate: |--+--| expression |--| operation |--| expression | | +--| expression |--IS NULL | '--NOT--' | +--(--| predicate |--) NOT--(--| predicate |--) | expression | LIKE--REGEX--value | '--NOT--' | +--| expr | BETWEEN--| expr |--AND--| expr |--+ | '--NOT--' | '--| predicate |--+--AND--+--| predicate | ' '--OR---'

9 Unterstütze SQL-Syntax (7) operation: |--+--"=" | +--"<" "<=" ">" ">="--+ '--"<>"--' expression:.--correlation-name--"."--. | column-name | '--value '

10 Interner Zugriffsplan – Datenstruktur – DbjAccessPlan – DbjAccessPlanTable (mit Korrelationsname) DbjAccessPlanColumn (zusätzlich mit neuem Spaltenname bei umbenannten Spalten) Aufgebaut von Parser Parser wurde mittels Bison generiert – Schlüsselworte dürfen nicht als Spalten-, Tabellen- oder Indexnamen verwendet werden Ungültig ist also: SELECT SELECT SELECT, FROM FROM FROM FROM FROM WHERE WHERE = WHERE Lexer per Hand geschrieben

11 Interner Zugriffsplan – Beispiel 1 – CREATE TABLE t1 ( a INT NOT NULL, b VARCHAR(10), c INTEGER, PRIMARY KEY (a) ) CreateTableStmt | Table ('T1') - Column ('A') | Column ('A') - Column ('B') - Column ('C') | | | | | DataType ('INTEGER') | | | DataType ('VARCHAR'/10) | DataType ('INTEGER') - NotNullOption

12 Interner Zugriffsplan – Beispiel 2 – SelectStmt | Projections - Column ('A'/0) - Column ('D'/0) | Sources - Table ('T1'/1) - Table ('T2'/2) | WhereClause - Pred - LogicalOp ('AND') - Neg - Pred - LogicalOp ('AND') - Pred | | | | | Pred | | | | | Column ('D'/0) - Comp ('=') – Varchar('text') | | | Pred | | | Column ('B'/1) - Comp ('=') - Integer (7) | Column ('C'/2) - Comp ('=') - Column ('F'/2) SELECT t1.a, t2.d FROM t1, t2 WHERE T1.C = T2.F AND NOT (T1.b = 7) AND ( T2.D = 'text' )

13 Interner Zugriffsplan Kann so von RunTime nicht direkt verarbeitet werden – Wird vom Optimizer noch vereinfacht und umstrukturiert