OOBD vs RDB
От: Cyberax Марс  
Дата: 15.04.05 07:19
Оценка: 1 (1)
bkat wrote:

> C>???.... ????? ?????? ???? ????? ? ???? ?????.

> !!!!!! google !!!!!! ! !!! !!!!! !!!, !!!!!! O(M^N) ! !!!! O(exp N) )

Странно, остальные письма прошли нормально.

Пишу повторно:
==========================================
Эхх.... Решил внести свой вклад в этот флейм.

Тут похоже некоторые участники не понимают в чем фундаментальная разница
между *чистыми* ООБД и РБД. Эта разница вовсе не в полиморфизме или
OID'ах, а в *путях доступа к данным*. В ООБД пути доступа к данным —
фиксированы, в РБД — нефиксированы.

Что это значит: предположим, что у нас простая модель "Школа-Ученик".
1. В РБД у нас будет простая модель из двух табличек со связью
один-ко-многим. В такой модели выборки будет занимать O(log N) времени
при наличии индексов по нужным полям, а значит запросы типа "Все школы,
где есть ученик с фамилией 'Петров'" будут быстрыми. Однако, за счет
простоты выборки мы теряем в скорости мутирующих операций и навигации:
добавления/изменения/удаления — будут выполняться за O(M*log N) времени
(N — количество строк в таблице, M — количество индексов), а навигация
за O(log N).

2. В ООБД у нас будут два класса: 'Школа' и 'Ученик'. У класса 'Школа'
будет свойство вектор (возможно отсортированный) учеников. Таким образом
вставка/удаление/изменени учеников будут происходить за O(1) или O(log
K) времени (K — количество учеников в школе, если вектор
отсортированый). Навигация будет происходить за O(1). Естественно, такая
халява не остается безнаказаной , и произвольные выборки у нас
получаются намного сложнее, чем в РБД. То есть для поиска всех школ, в
которых есть ученик "Петров" нам нужно будет перебрать все школы
(сложность O(n) ), и у каждой школы попробовать найти нужных учеников
(сложность O(n) или O(log N) ).
==========================================

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9

15.04.05 11:52: Ветка выделена из темы OOBD vs RDB
Автор: Cyberax
Дата: 14.04.05
— Odi$$ey
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.