Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "SystemJ AbschlußpräsentationDBJCatalogManager Dennis Heimann + Marcus Hetterle Friedrich Schiller Universität Jena 2005."—  Präsentation transkript:

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

2 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

3 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

4 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

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

6 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

7 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

8 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) 4711Weihnachtsmann81514N50 010101…010100…00101010100…001011…010…1011…110 4712Osterhase81510Y 4 byte 2 byte 14 byte 4 byte 1 byte4 byte 010101…010100…0010101…0010…010…1 4 byte 2 byte 10 byte 4 byte1 byte

9 Methoden von DbjRecordTuple getVarchargetIntgetColumnNamegetMaxDataLengthgetNumberColumns getDataTypegetRecordsetVarcharsetIntgetTupleId Public Private findAttributeOffsetcloseGapInRecordmakeSpaceInRecord

10 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

11 Methoden von DbjIndex getIndexIdgetIndexNamegetIndexTypegetTableIdgetColumnNumbergetUniquegetCreateTimesetIndexNamesetIndexTypesetTableIdsetColumnNumbersetUniquesetCreateTime Abfragen der Informationen Setzen der Informationen

12 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

13 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!

14 Methoden von DbjCatalogManager getTableIdgetTableDescriptorgetIndexIdgetIndexDescriptoraddTableremoveTableaddIndexremoveIndexupdateTupleCountgetTupleCountinitializeCataloggetCurrentTimestamp Public:Private:

15 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

16 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

17 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

18 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

19 Methoden von DbjCatalogManager getTableIdgetTableDescriptorgetIndexIdgetIndexDescriptoraddTableremoveTableaddIndexremoveIndexupdateTupleCountgetTupleCount Public:

20 Fragen? Abschlußpräsentation DBJ Catalog Manager (Dennis Heimann + Marcus Hetterle)@Friedrich Schiller Universität Jena


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

Ähnliche Präsentationen


Google-Anzeigen