db4o

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:01, 28 января 2018.

db4o
Db4o logo.gif
Разработчики: Action
Написана на: Java
Операционная система: Кросс-платформенное
Тип ПО: База данных
Лицензия: GNU GPL, Проприетарная лицензия
Веб-сайт db4o.com

db4o (database for objects) - встраиваемая система управления базами данных для объектов с открытым исходным кодом. Для некоммерческого использования DB4O доступна под лицензией GPL. Написана на Java и .NET и предоставляет соответствующие API. Может быть запущена на любой ОС, поддерживающей Java или .NET.

Общее

DB4O[Источник 1]. представляет собой объектно-ориентированную базу данных.Разрабатываемые на DB4O базы данных не требуют создания отдельной модели данных, модель приложения определяется структурой данных в базе DB4O.

DB4O можно использовать как дополнительный инструмент вместе с другими реляционными базами данных. В DB4O-RDBMS обмен данными выполняется с помощью копирующей системы (dRS). Так же dRS может использоваться для перемещения между объектом (DB4O) и реляционными технологиями (RDBMS).

Недостатки

  1. Плохая полнотекстовая индексация.
  2. Отсутствие встроенной поддержки импорта/экспорта, XML (eXtensible Markup Language), JSON (JavaScript Object Notation).
  3. Поля при удалении не удаляются - лишь скрываются.
  4. Медленный поиск по тексту.
  5. Необходимо стороннее ПО для настройки отображений.
  6. Так же другие недостатки СУБД для объектов, такие как: малое количество поддерживаемых сторонних программ (например OLAP и резервного копирования), слабая математическая модель.
  7. Отсутствие поддержки со стороны разработчика.

Особенности

  1. LINQ - позволяет создавать объектно-ориентированные запросы любой сложности. Связывает реляционные и объектовые хранилища данных.
  2. Нативные запросы - позволяют разработчикам использовать непосредственно языки программирования для доступа к базе данных, что исключает возможность SQL-инъекций.
  3. Db4o обеспечивает некоторые административные функции: индексация, дефрагментация, дублирование.
  4. Документация - Db4o обеспечивает различные источники документации : обучающая программа, ссылки на документацию, документацию API (Application Programming Interface) и блоги. Достаточное количество важной информации также может быть доступной из форумов, статей и т.п.
  5. Встраиваемость - db4o проектируется таким образом, что она является вложенной в другие программные компоненты, полностью невидимой пользователю. Поэтому, db4o не нужен никакой отдельный инсталляционный механизм.
  6. Client-server метод - позволяет db4o держать связь между клиентскими приложениями и сервером. Db4o использует TCP/IP (Transmission Control Protocol/Internet Protocol) для обмена данными типа client-server и позволяет устанавливать номер порта. Коммуникация осуществляется через запросы.
  7. Кодовая база - Db4o содержит функцию, позволяющий хранить любой объект с единственной командой: .

Пример

Файл Person.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Person
    {
        public String firstName;
        public String lastName;
        public byte age;
        public String title;

        public Person(string firstName, string lastName, byte age)
        {
            this.firstName = firstName;
            this.lastName = lastName;
            this.age = age;
        }

        public Person(string firstName, string lastName, byte age, string title)
        {
            this.firstName = firstName;
            this.lastName = lastName;
            this.age = age;
            this.title = title;
        }

        public String ToString()
        {
            return title + " " + firstName + " " + lastName + ": " + age;
        }
    }
}

Файл Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Db4objects.Db4o;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //открыть файл "person.data"
            using (IObjectContainer db = Db4oEmbedded.OpenFile("person.data"))
            {
                //объявляем новых людей
                Person stefan = new Person("Max", "Mustermann", 17);
                Person pohl = new Person("Alfred", "Adams", 33);
                Person eckl = new Person("Florian", "Dietrich", 21);
                //храним их
                db.Store(stefan);
                db.Store(pohl);
                db.Store(eckl);
                db.Commit();
                //*
                
                //получаем людей из бд
                IObjectSet result = db.QueryByExample(new Person(null, null, 0, null));

                //вывод результатов
                while (result.HasNext())
                {
                    Person next = (Person) result.Next();
                    Console.WriteLine(next.ToString());
                }

                Console.Read();

                //закрываем бд
                db.Close();
            }
        }
    }
}

Пример работы с Db4o

Скачать ресурс можно с сайта сервиса под Вашу среду. [Источник 2].

Источники

  1. Db4o // Официальный сайт.URL: http://www.db4o.com (дата обращения:21.10.2017)
  2. Аctian // Электронный ресурс. URL:http://supportservices.actian.com/versant/default.html (дата обращения:21.10.2017)