Warning: include_once(/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php): failed to open stream: No such file or directory in /var/www/html/fields/dbp15/local/config.php on line 4

Warning: include_once(): Failed opening '/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php' for inclusion (include_path='.:/opt/php/lib/php') in /var/www/html/fields/dbp15/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp15/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2015 - D - Database

Datenbank

Syntax von Rust benutzt in den Code ausschnitten werden im Glossar genauer erklärt

Aufgabe der Datenbank

Die Datenbank ist eine interne Repräsentation des Verzeichnisses, welches das Datenbanksystem nutzt um Tabellen geordnet abzulegen. Sie verfügt über einen Namen der dem Namen des Verzeichnisses repräsentiert welches als Datenbank vom System genutzt genutzt wird. Mit Hilfe des Datenbank-struct's ist es Möglich neue Datenbanken anzulegen und zu verwalten, dies schließt entfernen der Datenbank und der in ihr befindlichen Tabellen ein.

Datenbank im Verzeichnis

Ist es nun ein Verzeichnis oder eine Datenbank ?

Die Datenbank ist intern ein sogenanntes struct¹ welches über einen Namen und einige Funktionen verfügt.

pub struct Database {
    pub name: String,
}

Für das Datenbanksystem ist Database ein struct und erfüllt Aufgaben als dieses. Jedoch ist es auf der Speicherebenen nichts weiter als ein Ordner/Verzeichnis auf das ganz normal auch zugegriffen werden kann.

Benutzung (eine kurze Anleitung)

Erstelle ein Objekt der Datenbank mit der 'new' Funktion, da sie statisch ist kann sie wie folgt aufgerufen werden:

let Database = Datenbank::new("IamADatabase")

Falls eine bereits vorhandene Datenbank benutzt werden soll:

let Database = Datenbank::load("IamADatabase")

Nun ist es Möglich mit dem Objekt der Datenbank Tabellen für diese Datenbank zu laden oder erstellen.

Funktionen des Datenbank structs¹

create

pub fn create(name: &str) -> Result<Database, Error>

create versucht eine neue Datenbank mit dem übergebenen Namen und der Funktion save anzulegen, es liefert ein Result² zurück das entweder eine Instanz der Datenbank enthält, wenn die Funktion Erfolgreich war, oder einen Fehler.

load

pub fn load(name: &str) -> Result<Database, Error>

load versucht eine bereits existierende Datenbank zu laden, es braucht lediglich den Namen der Datenbank und wird falls die Datenbank nicht existiert einen eigens Definierten Fehler zurück liefern siehe Speichersystem Fehler

save

fn save(&self) -> Result<(), Error>

save wird benutzt um das eigentliche erstellen der Datenbank auf dem Festplatten Speicher zu ermöglichen. save wird von create benutzt und gibt sein Result² an create weiter. Für mehr Informationen zu dem Fehler siehe Rust Dokumentation: create_dir

delete

pub fn delete(&self) -> Result<(), Error>

delete kann verwendet werden um die Datenbank auf der es verwendet wird unwiderruflich zu löschen. Es löscht sich und alle Unterverzeichnisse von sich, somit auch alle Tabellen und Daten. Kann Fehlschlagen. Für Informationen zu genauen Fehler siehe Rust Dokumentation: remove_file, remove_dir

create_table

pub fn create_table(&self, name: &str, columns: Vec<Column>, engine_id: EngineID) -> Result<Table, Error>

create_table wird benutzt um eine neue Tabelle in der Datenbank anzulegen es ruft daher 'new' in Tabel auf und speichert dessen Meta Informationen sofort mit der 'save' Funktion von der Tabelle.

load_table

pub fn load_table(&self, name: &str) -> Result<Table, Error>

load_table wird verwendet um einen in der Datenbank bereits existierende Tabelle zu laden es verwendet daher die associated-function³ 'load' in Tabel?


Autor: Dennis Lindner
Gruppe: Mathias Flüggen, Dennis Lindner, Heiner Rieping


Page last modified on September 24, 2015, at 02:22 PM