SystemJ AbschlußpräsentationDBJCatalogManager Dennis Heimann + Marcus Hetterle Friedrich Schiller Universität Jena 2005.

Slides:



Advertisements
Ähnliche Präsentationen
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Advertisements

Imperative Programmierung
Präsentation PS: Klasse File von Janko Lange, Thomas Lung, Dennis Förster, Martin Hiller, Björn Schöbel.
Objekt – Relationales – Modell Tomasz Makowski IN
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
Praktikum Datenbanksystementwicklung – System J – Knut Stolze
MySQL.
der Universität Oldenburg
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Gliederung Motivation / Grundlagen Sortierverfahren
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
SQL als Abfragesprache
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Delphi-Datenbankkomponenten
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.
Business Logik als EJB-Applikation Gruppe pea19 Raed IssaChristian KubanekHonoré Tiako.
Oracle interMedia Image
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
DVG Felder1 Felder. DVG Felder 2 Was sind Felder? Felder sind Reihungen aus endlich vielen Elementen gleichen Typs. Z.B.: Vektoren : (x.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
JDBC EDV JDBC.
Buch S73ff (Informatik I, Oldenbourg-Verlag)
Datenbanken 13: Objekt-Klasse-Datenbank
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
2.2 Definition eines Datenbankschemas (SQL-DDL)
objekt-relationale Datenbanken
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Datenbankentwicklung IV-LK
Relationale Datenbanken III
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Normalisierungsprozess
Objektorientierte Programmierung
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Objektorientierte Modellierung mit UML
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java-Kurs Übung Besprechung der Hausaufgabe
Record Manager Andreas Bräu, Martin Salzbrenner. Record Manager - Übersicht ● Datenstrukturen – Freispeicherverzeichnis – Datenseiten ● Record Manager.
Datenbanksystementwicklung – Systemarchitektur & Prozessmodell – Knut Stolze
Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
Datenbanken erstellen mit PostgreSQL
15 Tabellen erstellen und Tabellenstruktur bearbeiten Grundlagen zu Tabellen l Tabelle l Enthält Daten zu einem bestimmten Thema l Beispiele:  Mitarbeiterdaten.
© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
Tutorium Software-Engineering SS14 Florian Manghofer.
C++ FÜR cOMPUTERSPIELENTWICKLER
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
SQL Basics Schulung –
Struktur von Datenbanktabellen
Constraints anlegen und löschen, Data Dictionary Tabellen
Create Table, Rechte und Rollen
Grundkurs Informatik 11-13
Implementieren von Klassen
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
 Präsentation transkript:

SystemJ AbschlußpräsentationDBJCatalogManager Dennis Heimann + Marcus Hetterle Friedrich Schiller Universität Jena 2005

Welche Klassen werden von unserer Gruppe bereitgestellt? DbjTable  beschreibt eine Tabelle  wird zum erzeugen und auslesen einer Tabelle verwendet DbjRecordTupel  enthält Methoden zum auslesen eines Records DbjIndex  beschreibt einen Index auf eine Tabelle DbjCatalogManager  verwaltet die Katalogtabellen

DbjTable Anwendung des DbjTable Objekts: Containerobjekt zum verwalten von Tabellendefinitionen Katalogmanager erzeugt ein DbjTable Objekt und füllt dessen Klassenvariablen mit Information aus dem Systemkatalog Katalogmanager erzeugt ein DbjTable Objekt und füllt dessen Klassenvariablen mit Information aus dem Systemkatalog zum erstellen einer neuen Tabelle wird ein DbjTable Objekt erzeugt und dann in Katalog eingetragen zum erstellen einer neuen Tabelle wird ein DbjTable Objekt erzeugt und dann in Katalog eingetragen

Methoden von DbjTable setColumnName Setzt den Namen einer Spalte setTableName Setzt den Namen einer Tabelle createColumns Erzeugt Spalten setColumnDefinition Definiert Spalten und deren Datentypen -->Intern: Belegen der Klassenattribute Methoden die Informationen eintragen

Methoden von DbjTable getTableIdgetTableNamegetTupleCountgetNumColumnsgetMaxRecordLengthgetColumnNamegetColumnNumber getColumnDatatypegetmaxColumnLength ->für Integer 11, sonst Varcharlength getIsNullablegetNumIndexesgetIndexhasIndex Methoden die Klassenattribute auslesen

Methoden von DbjTable calculateMaxRecordLength --> Berechnet Länge eines Records getTuple Überprüft die Kompatibilität des übergebenen Records zum DbjTable Objekt bzw. der Tabelle. --> Erzeugung eines DbjRecordTuple Objekts

DbjRecordTuple Abgeleitete Klasse von DbjTuple zur Darstellung von Records als Tupel zur Darstellung von Records als Tupel DbjRecordTupel besteht aus einem DbjTable Objekt und einem Record zur Konvertierung bzw. zum indirekten Zugriff auf die Tupelelemente DbjRecordTupel besteht aus einem DbjTable Objekt und einem Record zur Konvertierung bzw. zum indirekten Zugriff auf die Tupelelemente

Aufbau eines Records Beispieltabelle: Angest(PNr Integer not Null, Name Varchar(128) not Null, Name Varchar(128) not Null, AbtNr Integer not Null Anzahl_Kinder Integer) 4711Weihnachtsmann81514N …010100… …001011…010…1011… Osterhase81510Y 4 byte 2 byte 14 byte 4 byte 1 byte4 byte …010100… …0010…010…1 4 byte 2 byte 10 byte 4 byte1 byte

Methoden von DbjRecordTuple getVarchargetIntgetColumnNamegetMaxDataLengthgetNumberColumns getDataTypegetRecordsetVarcharsetIntgetTupleId Public Private findAttributeOffsetcloseGapInRecordmakeSpaceInRecord

DbjIndex Containerobjekt zum Speichern von Indexdefinitionen Index-Id, Type, Name, zugehörige Tabellen-Id Index-Id, Type, Name, zugehörige Tabellen-Id Spalte auf der Index liegt Spalte auf der Index liegt Erstellungszeit Erstellungszeit Information über Uniqueness Information über Uniqueness Katalogmanager erzeugt Index-Objekt und füllt es mit Informationen aus dem Systemkatalog ODER zum Erstellen eines neuen Indexes wird Index-Objekt erzeugt und in den Katalog eingetragen

Methoden von DbjIndex getIndexIdgetIndexNamegetIndexTypegetTableIdgetColumnNumbergetUniquegetCreateTimesetIndexNamesetIndexTypesetTableIdsetColumnNumbersetUniquesetCreateTime Abfragen der Informationen Setzen der Informationen

DbjCatalogManager verwaltet Datenbankkatalog des Systems Aufgaben Katalog auslesen Katalog auslesen Erweiterungen und Änderungen im Katalog Erweiterungen und Änderungen im Katalog Create Table, Delete Table, Create Index, … Katalog implementiert drei "hard-verdrahtete" Tabellen  Systemtabellen SYSTABLES, SYSCOLUMNS, SYSINDEXES SYSTABLES, SYSCOLUMNS, SYSINDEXES enthält Metainformationen über sich selbst Zugriff auf Daten über Record-Manager

DbjCatalogManager- Systemtabellen SYSTABLES ( tableName VARCHAR(128), tableId INTEGER, columnCount INTEGER, createTime VARCHAR(26), tupleCount INTEGER ) Index auf tableName Index auf tableName und tableId SYSCOLUMNS ( tableId INTEGER, columnName VARCHAR(128), columnId INTEGER, dataType VARCHAR(128), maxLength INTEGER, nullable VARCHAR(1)) Index auf columnName und tableId Index auf columnName und tableId SYSINDEXES ( tableId INTEGER, indexName VARCHAR(128), indexId INTEGER, type VARCHAR(5), columnId INTEGER, unique VARCHAR(1), createTime VARCHAR(26)) Index auf tableId, indexName und indexId Alle Index-Informationen der Systemtabellen liegen ebenfalls „fest verdrahtet“ vor!

Methoden von DbjCatalogManager getTableIdgetTableDescriptorgetIndexIdgetIndexDescriptoraddTableremoveTableaddIndexremoveIndexupdateTupleCountgetTupleCountinitializeCataloggetCurrentTimestamp Public:Private:

initializeCatalog() kann nur von der Klasse DbjSystem aufgerufen werden kann nur von der Klasse DbjSystem aufgerufen werden legt den Katalog an legt den Katalog an die drei Katalogtabellen direkt die Indexe auf Katalogtabellen über den Index-Manager generiert Tupel mit den Kataloginformationen, die über den Record-Manager eingefügt werden über den Record-Manager eingefügt werden  komplett selbst beschreibender Katalog

Methoden von DbjCatalogManager getTableDescriptor(tableId, *&tableDesc) erzeugt aus Tabellen-Id ein DbjTable-Objekt erzeugt aus Tabellen-Id ein DbjTable-Objekt Überprüfung der Tabellen-Id bzgl. Systemtabellen-Id‘s Überprüfung der Tabellen-Id bzgl. Systemtabellen-Id‘s  falls Systemtabelle, dann Descriptor mit fest kodierten Informationen füllen falls keine Systemtabelle falls keine Systemtabelle  Daten aus Datenbank holen mit Hilfe des Index-Managers wird anhand der Tabellen-Id das passende Record-Tupel aus der DB geholt aus dem Record-Tupel werden mit getInt() und getVarchar() die einzelnen Attribute ausgelesen und im Descriptor abgelegt

Methoden von DbjCatalogManager updateTupleCount(tableId, tupleCount) holt Record mit entsprechender Tabellen-Id aus der holt Record mit entsprechender Tabellen-Id aus der Datenbank und aktualisiert es bzgl. der Tupel-Anzahl mit Index-Manager wird anhand der Tabellen-Id (SYSTABLES_ID) passendes Record-Tupel aus DB geholt mit Index-Manager wird anhand der Tabellen-Id (SYSTABLES_ID) passendes Record-Tupel aus DB geholt im Record-Tupel wird mit setInt(4, tupleCount) gesetzt im Record-Tupel wird mit setInt(4, tupleCount) gesetzt über RecordManager mit replace(Tupel-Id, record) über RecordManager mit replace(Tupel-Id, record) wird altes Record durch neues ersetzt

Methoden von DbjCatalogManager addIndex() --> fügt Index in Katalog ein (Sysindexes) 1. generieren der IndexID (find last + first fit) 2. erzeugen des Records zum Einfügen in Sysindexes 3. Einfügen in Katalog mithilfe RecordManager tableId | IndexName | indexId|type | columnId | unique | createTime

Methoden von DbjCatalogManager getTableIdgetTableDescriptorgetIndexIdgetIndexDescriptoraddTableremoveTableaddIndexremoveIndexupdateTupleCountgetTupleCount Public:

Fragen? Abschlußpräsentation DBJ Catalog Manager (Dennis Heimann + Marcus Schiller Universität Jena