Современные РСУБД

Материал из Викиконспекты
Перейти к: навигация, поиск

Корпоративные

Определение:
Корпоративные СУБД — предназначены для продажи большим корпорациям.


Замечание, у большинства корпоративных СУБД есть девелоперские лицензии, которые позволяют использовать их в ограниченной среде (ограничение на кол-во ядер и размер памяти).

  • Oracle [1] (Oracle)
    • высокая пропускная способность (англ. throughput)
    • невысокая скорость обновления (англ. latency)

Замечание. Два утверждения выше не противоречат друг другу, хотя каждый запрос и исполняется медленно, пропускная способность получается большой за счёт того, что конкретная СУБД заточена на исполнение тысяч параллельных запросов, и суммарная пропускная способность всех этих запросов, а не отдельных запросов, будет высокой.

  • DB2 [2] (IBM)
    • Ориентация на «большие» машины, то есть с точки зрения IBM, СУБД это не приложение, которое крутится на сервере, а отдельное железо
    • Мало распространена в России, так как развивалась в 60'е - 80'е годы предыдущего века
    • Неполная совместимость с SQL
  • SQL Server [3] (Microsoft)
    • работа под Windows
    • Масштабируемость (путём добавления новых процессоров)

Свободные

  • MySQL[4]
    • GPL
    • поддерживаются различные форматы хранения БД
    • неполная поддержка SQL
    • есть enterprise и community версии
  • PostgreSQL [5]
    • BSD License
    • непосредственная поддержка связей - СУБД достаточно стабильна, чтобы использовать в реальных проектах
    • объектные расширения - но в то же время эта СУБД - экспериментальный проект, в который добавляется куча различных возможностей, некоторые из которых не выходят из экспериментального статуса
  • Firebird [6]
    • была очень популярна когда делалась Borland'ом [7] под Delphi
    • используется только в старых проектах, так как в БД, которые используют это СУБД, есть данные, которые нельзя потерять, а перенести их очень сложно

Встраиваемые

  • SQLite [8]
    • компактна, поэтому много используется на мобильных устройствах
    • in-memory mode - все данные должны поместиться в память
    • ограниченная реализация SQL-92
  • Apache Derby [9]
    • In-memory mode - умеет быть полностью in-memory, а также умеет работать с данными которые в память не поместились
    • хорошо совместим с DB2, так как был проектом IBM'а, и из-за этого же не очень хорошо совместим со всеми остальными
    • pure Java - встраивается в любое java приложение
    • Apache License
  • HyperSQLDB [10]
    • BSD License
    • pure Java
    • не поддерживает транзакции
    • in-memory mode
    • в основном используется для тестирования
  • Access [11]
    • Совмещение СУБД и RAD
    • Встраиваемые приложения

Замечание. In-memory базы данных хорошо подходят для тестирования, потому что каждый пользователь может легко поднять свой instance из-за того что база in-memory и это всё ещё SQL, и каждому из instance'ов не будут мешать тесты других пользователей, также нет проблем с тем что схема данных может быть старой.