Database Management Library

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 12:07, 26 февраля 2018.
Database Management Library
Разработчики: Rodrigo C. O. Rocha
Постоянный выпуск: 1.0 / 2 July 2010 года; 9 years ago (2010-07-02)
Локализация: C++
Тип ПО: СУБД
Лицензия: GNU General Public License
Веб-сайт sites.google.com/site/rcorcs/download/library sourceforge.net/projects/dblibrary

Database Management Library (DBL) – это реляционная СУБД содержащаяся в программной библиотеке С++. Исходный код DBL доступен под лицензией GNU General Public License. DBL была полностью разработана в течение двух недель, как праздничный программный проект. Она призвана быть легкой и простой в использовании для программирования на C++.

Дизайн

DBL - библиотека и становится неотъемлемой частью прикладной программы. В отличие от систем управления базами данных клиент-серверной модели, которые являются автономным процессом, с которым связывается прикладная программа. Прикладное программное обеспечение использует функциональность DBL посредством вызовов функций.

Пример программ

Создание простой базы данных

#include "dbl.h"

int main()
{
    path( "D:\\" ); //настраивает путь к папке, где будут храниться файлы

    database db("mydatabase");  //mydatabase название базы данных
    db.new_tab("customer");  //создать новую таблицу customer в базе данных
	
    write(db);  //записать структуру базы данных в файл

    char pkey = 1;
    table *tab = db.get_tab("customer"); //получить таблицу customer из базы данных
    tab->add_col("cod", INTEGER, 1, pkey);  //добавить столбец cod в таблицу
    tab->add_col("name", CHARACTER, 32);  //добавить столбец name в таблицу
    tab->add_col("brithdate", INTEGER, 3);
    tab->add_col("sex", CHARACTER, 1);
    tab->add_col("phone", INTEGER, 1);
    tab->set_structure();
    write(*tab);  //записать структуру таблицы в файл
    create_data_file(*tab); //создать дата файл таблицы customer
    
    return 0;
}

Структура библиотеки[Источник 1]

Класс database

Этот класс содержит название базы данных и ее таблицы. Главные функции:

   char *name(); //получить название бызы данных
   char *name(char *dbname); //настроить название базы данных
   void new_tab(char *tabname); //создать новую таблицу
   table *get_tab(char *tabname); //возвращает указатель на таблицу

Полезные функции, которые используют класс database:

   void write(database &db); //записать структуру базы данных в файл
   friend void read(database &db); //прочитать структуру базы данных из тфайла
   friend void del(database &db); //удалить файлы базы данных и ее таблиц
   friend void print(database &db); //вывести базу данных на экран

Класс table

Этот класс содержит имя таблицы и ее структуру, столбцы таблицы. Главные функции:

   char *name(); //получить имя таблицы
   char *name(char *dbname); //настроить имя таблицы
   void add_col(column &c); //добавить новый столбец к таблице
   void add_col(char *col_name, char col_type, int col_len=1, char pkey=0);
   column *get_col(int idx); //получить столбец по его индексу
   column *get_col(char *name); //получить столбец по его имени
   int num_col(); //получить количечтво столбцов в таблице

   //Закончить структуру таблицы.
   //Эта функция должна быть вызвана после добавления всех столбцов или после чтения структуры таблицы из файла
   void set_structure();

   row new_row(); //получить новую строку таблицы

Полезные функции, которые используют класс table:

void write(table &t); //запиать структуру таблицы в файл
   void read(table &t); //прочитать структуру таблицы из файла
   friend void del(table &t); //удалить файлы таблицы,  дата файлы и файлы заголовков
   void print(table &t); //вывеститаблицу на экран
   friend std::ostream &operator<<(std::ostream &o, table &t); //вывести структуру таблицы
   int num_row(table &t); //получить количество строк из дата файла таблицы

Класс row

Этот класс содержит столбцы таблицы и данные, которые будут содержаться в дата файле. Главные функции:

   void set(int idx, storage &s); //настроить содержание ячейки по индексу столбца
   void set(int idx, void* v); //настроить значение, которая сохранится в ячейку по индексу столбца
   storage *get(int idx); //получить содержание ячейки по индексу столбца

Полезные функции, которые используют класс row:

   void write(table &t, row &r, int idx); //записать данные в дата файл таблицы
   void read(table &t, row &r, int idx); //прочитать данные из дата файла таблицы
   void del(char *file, table &t, int idx); //удалить данные из дата файла таблицы

Класс storage

Этот класс содержит стобец и значение столбца. Главные функции:

   char *value(); //получить значение,хранящиеся в объекте
   void value(void *val); //установить значение, которое нужно сохранить
   void value(char *val); //установить значение, которое нужно сохранить

Полезные функции, которые используют класс storage:

   int get_int(storage &s); //получить целое число
   char get_char(storage &s); //получить символ
   bool get_bool(storage &s); //получить булево значение
   float get_float(storage &s); //получить число с плавающей точкой 
   double get_double(storage &s); //получить число с плавающей точкой двойной точности

Класс column

Этот класс содержит название и структуру столбца. Главные функции:

   char *name(); //получить  имя толбца
   char *name(char *n); //настроить имя стобца
   char type(); //получить тип столбца
   char type(char t); //натроить тип столбца
   int length(); //получить длину массива, который может храниться в столбце
   int length(int len); //настроить длину массива, который может храниться в столбце
   void pkey(char b); //задать столбец первичным ключом
   char pkey(); //узнать, является ли столбец первичным ключом
   int total_size(); //получить размер в байтах, который столбец может содержать

Класс index

Этот класс содержит индексы таблицы. Главные функции:

   int seek(void *val); //найти индекс, соответствующий значению
   int seek(char *val); //найти индекс, соответствующий строке

Полезные функции, которые используют класс index:

   void write(table &t, index &idx); //записать индексы таблицы в файл
   void read(index &idx); //прочитать индексы из файла

Интерфейс командной строки DBL

Программой интерфейса командной строки DBL можно создать базу данных, таблицу и добавить столбцы к этой таблице помимо других операций, таких как печать.

Внешние ссылки

Примечания

  1. Libraries // rcorcs[2016-2018]. Дата обновления: 01.08.2016. URL:https://sites.google.com/site/rcorcs/download/library (дата обращения: 11.02.2018)