Современные РСУБД — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (rollbackEdits.php mass rollback)
 
(не показаны 2 промежуточные версии 2 участников)
Строка 3: Строка 3:
 
|definition =
 
|definition =
 
'''Корпоративные СУБД''' {{---}} предназначены для продажи большим корпорациям. }}
 
'''Корпоративные СУБД''' {{---}} предназначены для продажи большим корпорациям. }}
 +
 +
''Замечание'', у большинства корпоративных СУБД есть девелоперские лицензии, которые позволяют использовать их в ограниченной среде (ограничение на кол-во ядер и размер памяти).
  
 
* Oracle [http://www.oracle.com/database/] (Oracle)
 
* Oracle [http://www.oracle.com/database/] (Oracle)
Строка 20: Строка 22:
 
* MySQL[https://www.mysql.com/]
 
* MySQL[https://www.mysql.com/]
 
** GPL
 
** GPL
** различные форматы хранения БД
+
** поддерживаются различные форматы хранения БД  
 
** неполная поддержка SQL
 
** неполная поддержка SQL
 +
** есть enterprise и community версии
  
 
* PostgreSQL [https://www.postgresql.org/]
 
* PostgreSQL [https://www.postgresql.org/]
Строка 29: Строка 32:
  
 
* Firebird [http://www.firebirdsql.org/]
 
* Firebird [http://www.firebirdsql.org/]
** используется только в старых проектах, так как в БД, которые используют это СУБД, есть данные, которые нельзя потерять  
+
** была очень популярна когда делалась Borland'ом [https://en.wikipedia.org/wiki/Borland] под Delphi
 +
** используется только в старых проектах, так как в БД, которые используют это СУБД, есть данные, которые нельзя потерять, а перенести их очень сложно
  
 
== Встраиваемые ==
 
== Встраиваемые ==
Строка 39: Строка 43:
 
* Apache Derby [http://db.apache.org/derby/]
 
* Apache Derby [http://db.apache.org/derby/]
 
** In-memory mode - умеет быть полностью in-memory, а также умеет работать с данными которые в память не поместились  
 
** In-memory mode - умеет быть полностью in-memory, а также умеет работать с данными которые в память не поместились  
** хорошо совместим с DB2, не очень хорошо совместим со всеми остальными
+
** хорошо совместим с DB2, так как был проектом IBM'а, и из-за этого же не очень хорошо совместим со всеми остальными
** pure Java
+
** pure Java - встраивается в любое java приложение
 
** Apache License
 
** Apache License
  
Строка 48: Строка 52:
 
** не поддерживает транзакции
 
** не поддерживает транзакции
 
** in-memory mode
 
** in-memory mode
 +
** в основном используется для тестирования
  
 
* Access [http://office.microsoft.com/access]
 
* Access [http://office.microsoft.com/access]
Строка 53: Строка 58:
 
** Встраиваемые приложения
 
** Встраиваемые приложения
  
''Замечание.'' In-memory базы данных хорошо подходят для тестирования, потому что каждый пользователь может легко поднять свой instance из-за того что база in-memory, и каждому из instance'ов не будут мешать тесты других пользователей.
+
''Замечание.'' In-memory базы данных хорошо подходят для тестирования, потому что каждый пользователь может легко поднять свой instance из-за того что база in-memory и это всё ещё SQL, и каждому из instance'ов не будут мешать тесты других пользователей, также нет проблем с тем что схема данных может быть старой.

Текущая версия на 19:26, 4 сентября 2022

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

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


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

  • 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'ов не будут мешать тесты других пользователей, также нет проблем с тем что схема данных может быть старой.