Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7 8   вперед  Ctrl      все
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Андрей Леонидович
Guest
Да, Терпеливый, я рассчитываю на уважение. Вы читайте, пожалуйста, все ответы, а не только нужные Вам.
А вот на понимание я уже давно не рассчитываю. Для этого нужно, все-таки, чтобы мои оппоненты знали предметы сравнения (см. название раздела).
Я считаю, что они не знакомы с ОМД и ОСУБД. Они считают, что я не знаком с РМД и "Р"СУБД. Когда я перевел разговор на конкретные аспекты РМД и "Р"СУБД, выяснилось, что "единого мнения" (мякго говоря) по этим, казалось бы, очень формальным "конструкциям", не существует. Выяснилось, что даже РМД не существует, что уж говорить про СУБД.
А Вы говорите "понимание".
22 дек 04, 21:36    [1202229]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
vybegallo
Guest
2 Alexey Rovdo

Я вижу целых три больших недостатка в системе индексирования :
1. Подкласс не наследует индексы родителя
2. Нельзя создавать композитные индексы (но при этом зачем-то можно создавать два индекса на одном атрибуте !)
3. Сортировка ломается при выборке из наскольких классов, нельзя указать порядок сортировки по убыванию.

Кроме того, практика индексирования шагнула далеко вперед за это время - разные R-индексы, битмап индексы, выборка нужных значений прямо из индексов без доступа к данным, фрагментация, параллельная обработка фрагментов - что из этого есть в наличии ? Как насчет регулируемой степени оптимизации ?
22 дек 04, 22:10    [1202267]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
vybegallo
Guest
To Alexey Rovdo

Слушайте, я вчитался в порядок использования индексов в AND выражениях - вы ЭТО называете оптимизатором ? Он не то что cost-based, он просто отсутствует как класс. "Будет выбираться первое условие на равенство, а если таких нет - то первое условие слева" - это, блин, новое слово в оптимизации запросов !
22 дек 04, 22:23    [1202275]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Терпеливый
Guest
Андрей Леонидович
Вы читайте, пожалуйста, все ответы, а не только нужные Вам.

После столь пренебрежительного отношения к собеседнику на уважение Вам рассчитывать не придется.

Андрей Леонидович
Когда я перевел разговор на конкретные аспекты РМД и "Р"СУБД, выяснилось, что "единого мнения" (мякго говоря) по этим, казалось бы, очень формальным "конструкциям", не существует.


"Единого мнения" в терминогии информационных технологий никогда не было. Даже однозначного определения СУБД не существует. Сколько именитых авторов, столько и определений и все чем-то, да отличаются.

К томуже из Ваших постов следует, что Ваши познания в области "существующих" и "несуществующих" СУБД весьма ограничены и дальше модели данных не распространяются.

Поэтому и понимания здесь Вы не находите.
22 дек 04, 22:58    [1202304]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Андрей Леонидович
Guest
Извините, Терпеливый !

Не думал, что просьба читать все ответы - это неуважение к собеседнику.
Еще раз, извините.

Итак, я про КОНКРЕТНЫЕ АСПЕКТЫ РМД и "Р"СУБД, а мне про "терминологию информационных технологий". Красиво !
Из какого моего "поста" следует ограниченность моих познаний в области "существующих" и "несуществующих" СУБД ?
22 дек 04, 23:25    [1202339]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Андрей Леонидович
Уважаемый Alex.Czech !

Спасибо, что поддерживаете серьезный разговор.
Зря сомневаетесь. Только Cache здесь не причем. Я говорю про ОСУБД на MUMPS. Именно "апдейтит при каждой операции". И все прекрасно работает, но уже именно тщательной реализации MUMPS в Cache.

Итак, чтобы банально посмотреть сколько у нас Сидоровых (и т.п.) нужно делать запрос на языке SQL. В OEBS, как нам тут сообщили, конечные пользователи делают это с помощью discoverer и gldi. А в R/3 на MS SQL с помощью чего ?
Вам не кажется, что чем дальше, тем ужаснее ?


В принципе, наверное, можно лучше. В принципе, вы утверждаете что вы (или авторы MUMPS, или другие разработчики и пользователи ООСУБД) сделали лучше, и теперь каждый начальник цеха, доярка или учитель труда могут в любой момент времени абсолютно самостоятельно узнать сколько у нас Сидоровых или почем фунт лиха в разрезе по кварталам с себестоимостью рассчитанной по методу среднего. Я всей душой готов вам поверить, но увы - вы не предоставляете мне такого шанса. Объясните хотя бы принципиально, как начальник цеха и доярка этого добиваются... вы ж этого не сделали, хотя вас уже не раз и не два спрашивали
22 дек 04, 23:40    [1202366]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Андрей Леонидович
Guest
Уважаемый Alex.Czech !

Ну мы же буквально на этой странице нормально с Вами общались. Что случилось-то, вдруг ? Опять корпоративная солидарность ?

Количество экземпляров для значений индексов обновляется автоматически. Поэтому пользователь ПРОСТО ВИДИТ количество Сидоровых (и т.п. данные) в объектном навигаторе. Что объяснить принципиально ???

Итак, чтобы банально посмотреть сколько у нас Сидоровых (и т.п.) в "Р"СУБД нужно делать запрос на языке SQL. В OEBS, как нам тут сообщили, конечные пользователи делают это с помощью discoverer и gldi. А в R/3 на MS SQL с помощью чего ?
23 дек 04, 00:02    [1202392]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Константин Лисянский
Member

Откуда: Москва
Сообщений: 902
vybegallo
To Alexey Rovdo

Слушайте, я вчитался в порядок использования индексов в AND выражениях - вы ЭТО называете оптимизатором ? Он не то что cost-based, он просто отсутствует как класс. "Будет выбираться первое условие на равенство, а если таких нет - то первое условие слева" - это, блин, новое слово в оптимизации запросов !


Согласен на 100%. Интеллектом этот оптимайзер не блещет.
Действительно, современные реляционные СУБД имеют гораздо более сильный арсенал средств индексирования и оптимизации запросов.

Хотелось бы сделать несколько комментариев и задать вопросы:

It is a list of pairs consisting of key values and associated object identifiers

Т.е. индекс представляет собой не указатель на физическое местоположение данных класса на диске, и его идентификатор? А как, интересно, по идентификатору определяется физическое местоположение экземпляров класса?

There are two kinds of index structures: b-tree and hash table

Интересно, как устроен этот hash table. Нельзя ли привести краткое описание? Я представляю себе очень неплохо, что можно делать с помощью хэширования, и какие особенности имеются (поскольку СУБД Teradata, которой я занимаюсь, использует хэширование как фундаментальный принцип).

Indexes do not have names

Это не очень удобно, на мой взгляд. По крайней мере в РСУБД имя индекса может понадобиться, если индекс нужно удалить, или по нему нужно собрать статистику. Или посмотреть план запроса (если, конечно, план запроса показывает имя индекса, который используется при выборке).

An index is set on a single attribute of a class

Это явный недостаток. Композитные индексы иметь полезно. Ну, или хотя бы иметь возможность динамического битмапа индексов, имеющих по отдельности низкую селективность, но высокую совокупную.


Because indexes are set only on one attribute in one class, you should set corresponding indexes on all classes that have an inheritance relationship. For example, in the above, if you set an index on Person, then set the same index on Customer, Employee, Developer, and Intern.

Отсутствие гибкости. Неплохо было бы иметьвозможность проиндексировать атрибут только того класса, к которому наиболее часто выполняются запросы. Например, если запросы по индексированному атрибуту делаются только к Person и Employee, зачем его индексировать для всех остальных классов?

Suppose that your predicate consists of a single predicate term, and that it is indexable. In this case, index pages are brought into memory and read sequentially on its leaf pages. If an index value satisfies the predicate term, then the data page for the corresponding object is fetched.
Query with terms concatenated only with AND Suppose you have a predicate such as:
( A and B and C and ... ) where A, B, and C... are "terms," such as color=="Red" or age>=65 .
In this case, the query terms will be read from left to right.
If none of the terms are indexable, then all objects will be fetched and evaluated in a single pass through the data pages.
If there is only one indexable term, then the index pages are brought into memory and read sequentially from its leaf pages. If an index value satisfies the indexable term, then the data page for the corresponding object is fetched, and the object is evaluated further using the rest of the predicate terms.
If there are multiple indexable terms, then the terms will be evaluated to determine which one to use. If any of the indexable terms uses the equals operator, then the first term using the equals operator, reading from left to right, is used. If none of the indexable terms use the equals operator, then the first term found, reading from left to right, will be used. (The reasoning for preferring the equals operator is
that it will likely produce fewer objects for evaluation.)
Once an indexable term is chosen, index pages for that term will be brought into memory and read sequentially. If an index value satisfies the predicate term, then the data page for the corresponding object is fetched, and the object is evaluated further.
Knowing that access paths are chosen with left-to-right, equality-preference logic, you can phrase your query to use the indexable term that you want. For example, suppose that you have an indexable term with an equality operator, such as (sex=='M'). To avoid having it used as the access path, you can rewrite this term as a range predicate, such as (sex >= 'M' and sex <= 'M'), and then move it to the right end of your predicate.


Здесь мне хочется отметить тот факт, что поведение оптимизатора описывается серией конструкций IF ... THEN ...
Мне это очень сильно напоминает rule based оптимизатеор, а вовсе не cost based. Тем более, что ни единого упоминания стоимости запроса в этом фрагменте я не нашёл.
К тому же на разработчика перекладывается перефразирование запроса. Оптимизаторы РСУБД это делают самостоятельно. Если используется инструмент, который генерирует запросы (BusinessObjects, Microstrategy, Cognos, Crystal), не факт, что они будут перефразировать условие sex='M' в sex >= 'M' and sex <= 'M'. Это к вопросу о нерегламентированных запросах.
Если я не прав по поводу отсутствия стоимостного оптимизатора, есть ли фрагмент доки, описывающей то, как рассчитываеться стоимость запроса?


In this case, index pages are brought into memory and read sequentially on its leaf pages


А это к вопросу о параллелизме. Почему это индексные страницы читаются последовательно, а не параллельно?


To Alexey Rovdo:
Спасибо, что потрудились выложить это описание. Было интересно познакомиться немного с внутренним устройством ООСУБД. Здесь они явно уступают реляционным, но ничего, скорее всего, в чём-то другом выигрывают.


Не сочтите за труд, приведите, пожалуйста, фрагмент доки, которая описывает принципы параллельной обработки в ООСУБД. Это тоже, на мой вгляд, немаловажный критерий качества любой (не только ОО) СУБД.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
23 дек 04, 00:46    [1202434]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
c127
Guest
2 Андрей Леонидович

>Из какого моего "поста" следует ограниченность моих познаний в области "существующих" и "несуществующих" СУБД ?

Я уже приводил многократно. Это вообще перлы из перлов и свидетельствуют они не только об ограниченности познаний в области баз данных, но и об ограниченности вообще.
Итак, читаем:
Андрей Леонидович>
ОБЪЕКТ - все, что противостоит субъекту в его предметно-практической и познавательной деятельности.


Понятно? Всем программистам с понедельника в работе руководствоваться этим определением объекта.

А чтоб и математики с физиками тоже не скучали, вводится следующее определение:
Андрей Леонидович>
ПРОСТРАНСТВО и ВРЕМЯ - всеобщие формы существования материи и сознания.

Пусть и они теперь ломают голову над тем, что бы это значило.

Человек говорит это на полном серьезе в докладе перед профессиональной аудиторией, и выкладывает ссылку на этот доклад в программистском форуме. (http://www.informx.ru/doclad.zip)

А вот перлик попроще, зато совсем свежий:

Андрей Леонидович>чтобы отличать ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ модели данных (иерархическую...) от ЗАПИСЕ-ОРИЕНТИРОВАННОЙ реляционной модели данных

Это по какой классификации иерархическиая модель попала в объектно-ориентированные, по классификации Андрея Леонидовича? Так привели бы ее, а мы бы обсудили.

Ага, вот ответ нашелся:
>В последствии из-за утраты знаний при смене поколений некоторые авторы стали допускать грубейшую ошибку, относя иерархическую и сетевую модели данных к записе-ориентированным.

Теперь все встало на свои места. Оказывается знания были утеряны. И только Андрею Леонидовичу, хранителю сокровенных знаний, истина осталась открытой, а мы отринули ее и бредем впотьмах по тропе к пропасти. Много лет уже бредем.

Поэтому когда Андрей Леонидович тут прилюдно изрекает глупости, нам, слепцам, нужно помнить, что это может и не глупости вовсе, а утерянные знания, другим недоступные.
23 дек 04, 02:44    [1202506]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Андрей Леонидович
Уважаемый Alex.Czech !

Ну мы же буквально на этой странице нормально с Вами общались. Что случилось-то, вдруг ? Опять корпоративная солидарность ?

Количество экземпляров для значений индексов обновляется автоматически. Поэтому пользователь ПРОСТО ВИДИТ количество Сидоровых (и т.п. данные) в объектном навигаторе. Что объяснить принципиально ???

Итак, чтобы банально посмотреть сколько у нас Сидоровых (и т.п.) в "Р"СУБД нужно делать запрос на языке SQL. В OEBS, как нам тут сообщили, конечные пользователи делают это с помощью discoverer и gldi. А в R/3 на MS SQL с помощью чего ?


Да все нормально, никакой корпоративной солидарности, просто чтобы не заснуть приходится себя развлекать вычурностью стиля в такое время :)

С R/3 признаться не знаком... в MS SQL без R/3 эти данные несомненно надо получать запросом на SQL, если есть индекс по фамилии - то запрос этот пройдет достаточно быстро и безболезненно для окружающих. Если нету... ну если в иерархической СУБД иерархия по этому полю не выстроена, там тоже все будет нехорошо я так подозреваю.

Меня интересует другое - если скажем вам нужно в объектном навигаторе показать не сколько Сидоровых, а сколько Иванов, вы что делаете в MUMPS ? Еще одну иерархию строите ? Все руками перебираете ? И это все делают начальники цехов или программисты все-таки ?
23 дек 04, 09:42    [1202833]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Правильнее будет наверное сказать, что я не знаком с термином R/3... я почему-то сразу подумал о SAP R/3, возможно вы какой-то другой смысл в это вкладывали
23 дек 04, 09:58    [1202902]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
AI
Member

Откуда: Москва
Сообщений: 2817
Sp1Der

Вопрос в том, что работает лучше и надежнее: Надстройки на тот же Оракл, призванные добавить ему "объектности", или системы, изначально созданные объектными?

Возьмем, к примеру, танк, приделаем к нему все, чтобы заставить его плавать (со скоростьую узла 2 :) ) и начнем сравнивать с катером, который сразу был сделан для того, чтобы плавать... Как вы считаете, что из этого выйдет?


Ваш пример не очень удачный: давайте теперь к катеру приделаем пушку (возможность выполнения запросов, требующих движения не только по ссылкам), гусеницы (SQL-интерфейс) и защитим броней (добавим контроль согласованности данных и защиты от сбоев). После этого сравним не только скорость плавания по течению, но и непотопляемость после попадания вражеского снаряда, дальность стрельбы самого катера, скорость плавания против или поперек течения и т.д.

Давайте сделаем так, как я уже несколько раз предлагал: расскажите, как хранятся данные в "объектных" СУБД, как хранится код, каким образом обеспечивается изолированность транзакций, каким образом строятся индексы, как работают оптимизаторы и выполняются запросы. Потом сравним с тем же ораклом. Его я знаю достаточно хорошо и могу привести соответствующие дампы данных, планов выполнения запросов и т.д.

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

После этого сразу будет видно, за счет чего будет обеспечиваться большая/меньшая производительность СУБД, в каких условиях, при каких нагрузках. Какие алгоритмы более эффективны, какие менее, где возникают дополнительные расходы на обеспечение отказоустойчивости или их просто нет. Причем рассматривать надо именно СУБД. Мне тут уже сказали, что я приводил в пример неудачную базу данных. Расскажите, как работают удачные.

Как пример. Говорят, что в каше есть транзакционные битовые индексы. Расскажите, как они устроены, почему не вызывают таких блокировок, как оракловские. Почти наверняка найдутся и недостатки выбранной схемы.
23 дек 04, 10:38    [1203082]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Константин Лисянский
vybegallo

[quot ]It is a list of pairs consisting of key values and associated object identifiers

Т.е. индекс представляет собой не указатель на физическое местоположение данных класса на диске, и его идентификатор? А как, интересно, по идентификатору определяется физическое местоположение экземпляров класса?


Object location table - содержит соответствия идентификаторов и физических адресов. Все это тесно связано с работой механизма кэширования и целиком я здесь его писание не привожу.

Константин Лисянский

There are two kinds of index structures: b-tree and hash table

Интересно, как устроен этот hash table. Нельзя ли привести краткое описание? Я представляю себе очень неплохо, что можно делать с помощью хэширования, и какие особенности имеются (поскольку СУБД Teradata, которой я занимаюсь, использует хэширование как фундаментальный принцип).


A b-tree index is useful for value-range comparisons, and a hash index is useful for direct comparisons of values.
A b-tree index will return objects in ascending order; to access objects in descending order, access the returned vstr or array from its end rather than beginning. However, if a query evaluates a class and its subclasses, objects are returned in ascending order in each subclass, which means that the set of all objects are not necessarily in ascending order.
If you will only be making equality comparisons, generally a hash table is better; otherwise, use a b-tree index.
(Подробнее пока не нашел)

Константин Лисянский

Indexes do not have names

Это не очень удобно, на мой взгляд. По крайней мере в РСУБД имя индекса может понадобиться, если индекс нужно удалить, или по нему нужно собрать статистику. Или посмотреть план запроса (если, конечно, план запроса показывает имя индекса, который используется при выборке).


Поскольку индексу всегда соответствует только один атрибут (обычный или виртуальный см. ниже), то нет смысла в назначении индексу специального имени - его имя фактически соответствует имени этого атрибута. Атрибуту может соответствовать два индекса, но только разного типа (b-tree и hash).


Константин Лисянский

An index is set on a single attribute of a class

Это явный недостаток. Композитные индексы иметь полезно. Ну, или хотя бы иметь возможность динамического битмапа индексов, имеющих по отдельности низкую селективность, но высокую совокупную.


Virtual Attribute

Virtual Attribute is a derived attribute, built on one or more normal attributes of a class. As the Virtual Attributes are computed at runtime, they are not part of the schema of a class, but can be indexed. The indexes on Virtual Attributes are maintained during normal operations like insert, delete and update and used during query processing. This release will support only b-tree index on Virtual Attribute of a Class.
Т.е. можно создать композитный виртуальный атрибут, а уже ему назначить индекс.

Константин Лисянский

Because indexes are set only on one attribute in one class, you should set corresponding indexes on all classes that have an inheritance relationship. For example, in the above, if you set an index on Person, then set the same index on Customer, Employee, Developer, and Intern.

Отсутствие гибкости. Неплохо было бы иметьвозможность проиндексировать атрибут только того класса, к которому наиболее часто выполняются запросы. Например, если запросы по индексированному атрибуту делаются только к Person и Employee, зачем его индексировать для всех остальных классов?


Разумеется когда речь идет только о выборке данных, то так поступить можно.
На самом деле в руководстве все это написано именно с целью показать, что индексы не наследуются. Т.е. определив индекс в классе Person вы не можете его использовать при запросах к классу Customer - вам нужно определить корреспондирующий индес и в этом классе. Кроме этого могут возникнуть проблемы, когда вы определяете уникальный индекс в родительском классе и не определяете такого же индекса в дочерних классах (проблемы при создании объектов дочерних классов с неуникальными значениями соответствующего поля).

Константин Лисянский

Suppose that your predicate consists of a single predicate term, ... as (sex >= 'M' and sex <= 'M'), and then move it to the right end of your predicate.


Здесь мне хочется отметить тот факт, что поведение оптимизатора описывается серией конструкций IF ... THEN ...
Мне это очень сильно напоминает rule based оптимизатеор, а вовсе не cost based. Тем более, что ни единого упоминания стоимости запроса в этом фрагменте я не нашёл.
К тому же на разработчика перекладывается перефразирование запроса. Оптимизаторы РСУБД это делают самостоятельно. Если используется инструмент, который генерирует запросы (BusinessObjects, Microstrategy, Cognos, Crystal), не факт, что они будут перефразировать условие sex='M' в sex >= 'M' and sex <= 'M'. Это к вопросу о нерегламентированных запросах.
Если я не прав по поводу отсутствия стоимостного оптимизатора, есть ли фрагмент доки, описывающей то, как рассчитываеться стоимость запроса?


Стоимостный оптимизатор в VDS отсутствует - действительно эта работа перекладывается на программиста. Развитый механизм сбора статистики для анализа поведения системы присутствует, так что тонкая оптимизация возможна, но требует некоторой ручной работы. В этом смысле VDS отстает от Oracle.

Константин Лисянский

In this case, index pages are brought into memory and read sequentially on its leaf pages


А это к вопросу о параллелизме. Почему это индексные страницы читаются последовательно, а не параллельно?

Не сочтите за труд, приведите, пожалуйста, фрагмент доки, которая описывает принципы параллельной обработки в ООСУБД. Это тоже, на мой вгляд, немаловажный критерий качества любой (не только ОО) СУБД.


The back-end server is completely under Versant’s realm of control, and is
inherently multi-threaded, with a separate thread being used to manage each
database connection. The primary motivation for making the server multi-threaded
is to support highly concurrent accesses to the database with the lightest
possible process footprint on the server.
Of far more importance than Versant’s multi-threaded server, however, is the
granularity of critical sections of database code. The simplest and most common
approach is what is termed single-latch, which implies that all critical sections
of code have been grouped together within a single semaphore-protected unit of
execution. While it is the easiest to implement, a shortcoming of this approach
is that once the critical section of code has been entered, all other processes
or threads that want access to that section must wait until that section has been
exited. Versant, by comparison, has implemented an approach that divides the
server application space into a fine-grained collection of units of atomic
execution that allows many threads to be executing simultaneously and
significantly reduces the length of time that a particular process or thread
might be forced to wait when contention for a particular resource or section of
code does occur.
Подробнее

С уважением, Алексей Ровдо.
23 дек 04, 14:20    [1204398]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
AI

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


Типовые объектные СУБД не содержат каких-то уникальных решений в части индексации (про Cache мне ничего не известно). Наоборот - все, что в них есть, заимствовано из реляционных систем. И это так именно потому, что механизмы индексации в ООСУБД носят второстепенный характер и введены для увеличения быстродействия нетипичных для них запросов "по значению". Стандартным же является механизм навигации, которого в РСУБД вообще нет.
23 дек 04, 14:34    [1204490]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Alexey Rovdo
AI

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


Типовые объектные СУБД не содержат каких-то уникальных решений в части индексации (про Cache мне ничего не известно). Наоборот - все, что в них есть, заимствовано из реляционных систем. И это так именно потому, что механизмы индексации в ООСУБД носят второстепенный характер и введены для увеличения быстродействия нетипичных для них запросов "по значению". Стандартным же является механизм навигации, которого в РСУБД вообще нет.


Один в один похоже на описание какого-нибудь Парадокса или xBase, если честно. То есть ООСУБД можно отнести к этому замечательному классу систем, вознесенных на новый уровень абстракции с применением модных слов "полиморфизьм", "инкапсуляцыя" и "наследование" ?
23 дек 04, 14:38    [1204508]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Alex.Czech
[quot Alexey Rovdo]

Один в один похоже на описание какого-нибудь Парадокса или xBase, если честно. То есть ООСУБД можно отнести к этому замечательному классу систем, вознесенных на новый уровень абстракции с применением модных слов "полиморфизьм", "инкапсуляцыя" и "наследование" ?


Ну если "полиморфизьм", "инкапсуляцыя" и "наследование" воспринимается вами только лишь как модные слова, то комментировать что-то сложно.
Надо понимать, что за этой "модностью" стоят десятки лет исследований, дискуссий, разработок, а также люди, имена которых говорят сами за себя.
23 дек 04, 15:06    [1204726]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
Гы - немного в оффтоп: я вот по себе лично знаю, что если на какой то вопрос точно ответа не знаю, то лезу в RTFM, читаю, понимаю, потом оттуда кусок прямо на инглишь и выкладываю (лень двигатель прогресса). Если же я точно и практически знаю ответ на вопрос, то пишу своими словами вкратце, так как опять же согласно лени открывать и искать чего то в RTFM не хочется. Поэтому чисто по дружески рекомендую Alexey Rovdo если он не полностью обладает познаниями во всех этих хитрых тонкостях ООСУБД лучше не связываться со спецами РСУБД, уж они то точно на те вопросы, которые Вам задают сейчас в RTFM не смотрят - а то попадете в просак и честно говоря этого никому здесь не хочется, так как мы искренне и с интересом слушаем Ваши мысли и готовы дискутировать :)
23 дек 04, 15:20    [1204816]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Alexey Rovdo
Alex.Czech
[quot Alexey Rovdo]

Один в один похоже на описание какого-нибудь Парадокса или xBase, если честно. То есть ООСУБД можно отнести к этому замечательному классу систем, вознесенных на новый уровень абстракции с применением модных слов "полиморфизьм", "инкапсуляцыя" и "наследование" ?


Ну если "полиморфизьм", "инкапсуляцыя" и "наследование" воспринимается вами только лишь как модные слова, то комментировать что-то сложно.
Надо понимать, что за этой "модностью" стоят десятки лет исследований, дискуссий, разработок, а также люди, имена которых говорят сами за себя.


Честно говоря, для меня переход от навигации к SQL в смысле продвижения вперед в работе с СУБД гораздо важнее чем переход от процедурного к объектно-ориентированному программированию
23 дек 04, 15:21    [1204826]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Андрей Леонидович
Guest
Уважаемый Alex.Czech !

Да, конечно, именно о SAP R/3 я и говорил. Но это уже не актуально, так как по OEBS ответа все равно не последовало. Видимо и в том, и в другом случае сами пользователи данных не получат. Нужно звать "специалиста, зарабатывающего на SQL"...

Извините, там у Вас ошибочка в тексте. Я понял так: "не сколько Сидоровых, а сколько Ивановых". И сколько наименований товара на складе, и, наоборот, на скольких складах есть этот товар, и т.д. и.т.п. Ну причем же здесь программисты, если это автоматически поддерживается. Все ЭТО видно в той части схемы данных (в объектном навигаторе), к которой ЭТО относится. И ведь это всего лишь "ПОБОЧНЫЙ ЭФФЕКТ" ! Мы же говорили о статистиках для стоимостного оптимизатора запросов. И о том какие из этих "статистик" поддерживаются автоматически при вводе/удалении/обновлении экземпляров, а какие собираются автоматически.
И выяснилось, что, например, MS SQL не имеет данных о количестве записей для значения индекса. Честное слово, до сих пор не могу поверить...
23 дек 04, 16:56    [1205451]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
AI
Member

Откуда: Москва
Сообщений: 2817
Alexey Rovdo
Alex.Czech
[quot Alexey Rovdo]

Один в один похоже на описание какого-нибудь Парадокса или xBase, если честно. То есть ООСУБД можно отнести к этому замечательному классу систем, вознесенных на новый уровень абстракции с применением модных слов "полиморфизьм", "инкапсуляцыя" и "наследование" ?


Ну если "полиморфизьм", "инкапсуляцыя" и "наследование" воспринимается вами только лишь как модные слова, то комментировать что-то сложно.
Надо понимать, что за этой "модностью" стоят десятки лет исследований, дискуссий, разработок, а также люди, имена которых говорят сами за себя.


Именитые люди, о которых Вы говорите, служат лишь прикрытием для того, чтобы откатиться в использовании СУБД на 20-30 лет назад.

Объект в программистском смысле (ООП) - это запись с методами и дополнительной совместимостью разных типов. Но все авторы ООП и, особенно, их последователи стали считать, что программистский объект действительно является самым правильным методом отбражения реальных объектов.

При этом полностью игнорируется тот факт, что все СУБД работают именно с записями, как бы их не называли (объект с полями или атрибутами). В РСУБД эти записи были жестко отделены от ссылочной организации доступа к данным, к которой так привыкли "классические" программисты. В программировании без указателей (деревьев, списков) просто не удастся получить доступ к динамически порождаемому или уничтожаемому объекту. А в БД они хранятся в виде простой последовательности байтов (плюс служебная информация, словари, защита данных и т.п.). И, зная структуру записи, можно легко найти нужные записи по некоторым критериям. ПРичем все равно, одну или много. Простой перебор иногда работает быстро, но, чаще всего, работает медленно. Поэтому понадобились вспомогательные структуры для ускорения доступа к данным типа индексов, кластеров индексных или хэш и т.д. Здесь все предельно ясно. Не хватало только совместимости типов между наследником и родителем, которая нужна для расширения системы. Она появилась в ОРСУБД.

Но ООПники никак не могут забыть про типичные алгоритмы работы с динамическими объектами в памяти. Почему нужна "простота навигации"? Да потому, что привыкли так программировать доступ к объектам в памяти! Доступ по ключу будет работать быстро, а вот с полным перебором или диапазоном по неключевым данным все совсем не так. Приходится работать точно так же, как и в РСУБД, то есть строить дополнительные индексы. И оптимизаторы поэтому недоразвитые. Не надо было работать с большими объемами данных. Забывается также и то, что код не хранится вместе с данными. Иначе размеры записей были бы слишком большие. Есть просто таблицы методов и коды самих методов. По этим таблицам в зависимости от типа объекта вызывается нужный код.
23 дек 04, 16:57    [1205457]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
2Андрей Леонидович

Я понимаю, что для каких-то из разрезов эта информация постоянно хранится в виде статистической информации... но не для всех же ! Если в таблице (глобали, объекте) 50 полей-атрибутов, то не может же информация такого рода храниться по всем 50 полям и быть постоянно up-to-date, это же будут глобальные тормоза
23 дек 04, 16:59    [1205480]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Андрей Леонидович
Guest
Уважаемый с127 !

Каким образом ограниченность моих познаний в области "существующих" и "несуществующих" СУБД, и моя ограниченность вообще следует из:

1) определения (при чем здесь "программисты с понедельника" ???):
ОБЪЕКТ - все, что противостоит субъекту в его предметно-практической и познавательной деятельности.

2) определения (почему математики и физики должны ломать голову ???):
ПРОСТРАНСТВО и ВРЕМЯ - всеобщие формы существования материи и сознания.

3) выкладывания кем-то (а вовсе не мной) ссылки на мой доклад на семинаре в 1999 году "в программистком форуме";
против чего я, конечно, не возражаю, так как доклад очень хорош;

4) факта утраты знаний ?????

Вы можете хоть что-то сказать по-существу ? Хотя бы по одному из обсуждаемых здесь вопросов ?
Здорово Вас, все-таки, задели мои аргументы по РМД и "Р"СУБД. Вместо того, чтобы так расстраиваться, лучше займитесь изучением баз данных. И я всегда готов Вам помочь, и ответить на любой Ваш вопрос в этой области.
23 дек 04, 17:09    [1205539]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Андрей Леонидович
Guest
Уважаемый Alex.Czech !

И это мы уже обсудили. Просто напоминаю:

- количество экземпляров объектов;
- количество экземпляров других объектов, связанных с конкретным экземпляром объекта по конкретной связи;
- количество экземпляров для каждого значения в индексах

поддерживаются автоматически при вводе/удалении/обновлении экземпляров.

По неиндексированным характеристикам ТАКИХ данных нет.
23 дек 04, 17:15    [1205577]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
vybegallo
Guest
Alexey Rovdo

The back-end server is completely under Versant’s realm of control, and is
inherently multi-threaded, with a separate thread being used to manage each
database connection. The primary motivation for making the server multi-threaded
is to support highly concurrent accesses to the database with the lightest
possible process footprint on the server.
Of far more importance than Versant’s multi-threaded server, however, is the
granularity of critical sections of database code. The simplest and most common
approach is what is termed single-latch, which implies that all critical sections
of code have been grouped together within a single semaphore-protected unit of
execution. While it is the easiest to implement, a shortcoming of this approach
is that once the critical section of code has been entered, all other processes
or threads that want access to that section must wait until that section has been
exited. Versant, by comparison, has implemented an approach that divides the
server application space into a fine-grained collection of units of atomic
execution that allows many threads to be executing simultaneously and
significantly reduces the length of time that a particular process or thread
might be forced to wait when contention for a particular resource or section of
code does occur.
Подробнее

С уважением, Алексей Ровдо.


Малтитредность реализована в Информиксе начиная с версии 6 (1993 г.) (а так же в, насколько я знаю, Сайбейсе и MS SQL Server-е). За 11 лет эксплуатации на паре десятков юниксов, нескольких сотнях платформ и в самых требовательных окружениях она всяко-разно вылизана и оптимизирована получше.
23 дек 04, 17:19    [1205595]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
vybegallo
Guest
Кстати, еще вопрос - а асинхронный ввод-вывод ваша база поддерживает ? Есть ли у вас отдельный процесс, занимающийся вводом-выводом, или каждая нить сама выполняет чтение-запись, блокируя всех остальных ?
23 дек 04, 17:23    [1205619]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7 8   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить