Современные РСУБД
Корпоративные
Определение: |
Корпоративные СУБД — предназначены для продажи большим корпорациям. |
Замечание, у большинства корпоративных СУБД есть девелоперские лицензии, которые позволяют использовать их в ограниченной среде (ограничение на кол-во ядер и размер памяти).
- 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'ов не будут мешать тесты других пользователей, также нет проблем с тем что схема данных может быть старой.