Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 70 71 72 73 74 [75] 76 77 78 79 .. 83   вперед  Ctrl
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
самопал
2 Alexey Rovdo:
Схема это интересно, но вы лучше просто скажите, есть ли метод задания ограничений, которые будут срабатывать для любого работающего с БД приложения?


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

самопал

По-моему, есть варианты:
1. Versant/SQL триггеры, и вносить данные только через Versant/SQL. При этом теряется куча преимуществ ОО подхода.
2. Ультимативное требование использовать одну библиотеку классов для всех приложений, которые будут работать с этой ОБД. (раз объектная модель одна, то и библиотека классов, описывающая операции над объектами должна быть одна). При этом эффективно и корректно разрабатывать приложения для этой ОБД можно только на том же (одном) языке, а заявления о возможности использования других языковых интерфейсов следует сопровождать предупреждением о грядущих проблемах и последствиях.
3. А разве такое надо? Нормальные люди занимаются кодированием и маркетингом а не думают о такой х...не ... :) Шутка.


4. Применить п.2 к промежуточному слою, а клиентские приложения (прикладные программы) писать на любом языке, но обращаться к данным только через этот промежуточный слой (который можно развернуть на JBoss, Websphere, IIS, Tomcat ... ). На мой взгляд это оптимальный вариант (причем некоторые ООСУБД имеют специальные средства для повышения эффективности работы именно в таком варианте).
5 апр 05, 19:34    [1443218]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
самопал
Guest
Alexey Rovdo
Но декларативные ограничения целостности в большом количестве могут присутствовать и в самой базе. Причем для этого не надо ничего выдумывать - дайте список допустимых значений в самом объявлении класса - вот вам и ограничение целостности.

Примерчик, пожалуйста, приведите.
5 апр 05, 19:56    [1443266]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
serg99
Member

Откуда:
Сообщений: 422
Alexey Rovdo
Вы вольны обеспечить целостность вашей модели данных и любыми другими способами, поскольку в этом случае ваша модель данных ничуть не пострадает - она ведь по-прежнему будет целостной. И вы можете совершенно справедливо утверждать, что с такой задачей могут справится и продукты, которые вы относите к разряду "неСУБД".

Разумеется мы можем исключить из рассмотрения все способы обеспечения целостности кроме триггеров и ХП. Но от этого ведь другие способы не исчезнут. Просто мы искусственно сузим границы нашего сравнения.

Мне кажется я знаю самый дешевый способ обеспечения целостности. Надо описать ограничения целостности на бумаге и прикрепить эту бумагу рядом с дисплеем пользователя, что бы он просто не делал ничего, что бы нарушало эти ограничения. Если мы придем к соглашению с пользователем следовать соглашениям о не нарушении ограничений целостности, то получается что и нет никакой проблемы поддерживать ссылочную целостность в БД :-).

Да и по ограничениям в доменах значений так же можно прийти к соглашению с пользователями, - им достаточно согласиться не вводить в поля форм неверные значения. Если уж расширять границы сравнения, то вслед за прикладными программистами, которым для обеспечения целостности данных достаточно следовать определенным соглашениям, нужно включить в рассмотрение и пользователей, которые не хуже программистов могут следовать соглашениям. При этом и программы попроще будут :-).
5 апр 05, 21:33    [1443351]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
Alexey Rovdo

Я такого нигде не говорил.


Когда Вы говорите, что ОЦ нет в ОМД, то это значит, что их нет в ООСУБД.
Или ООСУБД возможна без ОМД? Но ведь тогда это просто некоея СУБД, отличная от ООСУБД - нужно убрать впереди ОО , а скорее всего тогда это и не СУБД, и она по ошибке в этой теме. Или ОЦ в ООСУБД обеспечиваются вне ОМД? Т.е. в сервере приложений или библиобеках? Но это уже скорее всякого рода поытки ослабления отрицательных последствий недостатка ООСУБД.

Alexey Rovdo

Отрицая Java и C++-программный код в роли средства обеспечения целостности данных, будьте последовательны. А чем SQL-код лучше?

Тем, что SQL - язык БД поддерживаемый СУБД. И речь идет не о программном коде вообще, а об управлении данными. Пожалуйста, пусть в ООСУБД будут спец классы для обеспечения управления данными на Java и C++. Т.е. напишите на нем инстркции по созданию триггеров, или декларативных ограничений целостности, и пусть СУБД их будет поддерживать. Я же говорил, что мне все равно как Вы поддерживаете. Но они должны быть в ОМД. Если нет то это недостаток ООСУБД. Если не в СУБД, а в сервере приложения - это недостаток. Т.е. в этом аспекте ООСУБД уступает РСУБД.

Alexey Rovdo

А вот что вы хотите сравнивать - определитесь сами, я ведь за вас это сделать не могу.

ООСУБД, РСУБД и ОРСУБД я хочу сравнивать, и определись в этом авторы темы. Если что-то не СУБД, или СУБД но не прописанного в названии темы типа, то его рассмотрение включать в эту тему, скорей всего не следует.

Alexey Rovdo

Именно поэтому я внес в перечень критериев для сравнения и такой пункт:

Наличие стандартов и спецификаций на протоколы доступа к сервисам системы со стороны клиентских приложений.

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

Что касается стандартов, то на данный момент они явно болле продвинуты для РМД. Однако, это ведь не зависит непосредственно от самой модели?
Ну завтра это может измениться.
А когда мы сравнивали ограничения целостности, то мы сравнивали именно типы СУБД, т.е. то что прописано в названии темы. Потому что это входит в МД и неизбежно в СУБД, которые поддерживают данную МД.

Конечно можно все сравнивать. Но сначало главное.

Alexey Rovdo

Так и давайте выявим список критериев, по которым мы хотим сравнивать и определимся с конфигурациями систем, которые мы будем сравнивать.

Прежде всего это - структурирование, ОЦ, манипулирование данными.
Семантические возможности и все такое. Т.е. аспекты моделирования.
Считается, например, что ООСУБД обладает улучшенными возможностями моделирования. Вроде как она позволяет более точно моделировать реальный мир. Объект, который инкапсулирует состояние и поведение, является более естественным и реалистичным представлением объектов окружающего мира.
Это я - апологет РМД Вам подсказываю, то с чего Вы должны были в начинать, вместо того, чтобы рассказывать нам про какие-то малоинтересные соглашения, сервера приложений и всякие второстепенные детали реализации.
5 апр 05, 22:46    [1443412]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
c127
Guest
tygra>> Но неплохо было бы, если внутри ХП можно было бы вызвать метод объекта. Тогда вообще было бы все хорошо. И апп-сервера нет, и методы исполняются, и ХП работают.

Dimonische> Хорошо бы хорошо бы
нам моржа поймать - большого, пребольшого :)


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



2 Alexey Rovdo

>Если вы считаете, что целостность данных нужно обеспечивать триггерами и ХП, то смело можете называть продукты, которые их не поддерживают "неСУБД" (мне все равно).

Не "нужно обеспечивать триггерами и ХП", а "можно обеспечивать триггерами и ХП". А можно и по-другому, причем тоже не выходя за пределы сервера. Не путайте "нужно" и "можно", это важно.

>Но сами то продукты от этого никуда не исчезают.

Разумеется не исчезают, просто они не могут называться СУБД. Мало ли есть хороших продуктов, которые не СУБД. Тетрис, например, или мозилла.

>Если вы работаете с ООСУБД и не следуете парадигме ООП, то вероятность получения эффективной системы мизерна.

А не Вы ли привели решение придуманной Вами же задачи в чисто реляционном духе? (https://www.sql.ru/forum/actualthread.aspx?tid=138641&pg=4) А когда я сказал, что играть на поле СКЛ-я по его правилам это заведомый проигрыш, то Вы ответили: "Согласен, я действительно придерживался близкой аналогии с типичными реляционными моделями." Но при этом начали спорить: "Но и в этом случае тягаться с SQL очень даже получается."

Так получается тягаться или нет?

>Отрицая Java и C++-программный код в роли средства обеспечения целостности данных, будьте последовательны. А чем SQL-код лучше?

Во-первых С++ и джаву в качестве процедурной добавки к СКЛ-ю никто не отрицает. Тут уже упоминалась ASA и джава как встроенный язык, а у ДБ2 до недавнего времени вообще не было специального языка для сохраненок, их можно было писать на любом языке, компилятор которого есть в системе.

Но если говорить о преимуществах, то SQL иногда лучше тем, что это апликативный, а джава, С++ и др. языки императивные. Чтоб понять разницу Вы можете попробовать с помощью прямой навигации и циклов, но без OQL, VQL и пр. решить 3 задачи (https://www.sql.ru/forum/actualthread.aspx?bid=10&tid=138641&pg=5), которые мы уже обсуждали. Потом посмотрИте сколько кода получится и сравните с СКЛ решением.
6 апр 05, 04:17    [1443529]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Достали извортливые рекламщики!!
Отличный маркетинговый ход!!! Сначала мы высосали из пальца некую классификацию, а потом, как то случайно получилось, что в этой классифика VERSANT - лучшая ООСУБД. Хотите я предложу свою классификацию? все программы начинающиеся на V являются лучшими OOСУБД! все прогаммы, не начинающеся на V таковыми не являются. О! опять победил Versant!!!


Как я понимаю вы об ООСУБД знаете не слишком то много. Но готовы спорить с теми, кто знает. Что же я должен был сказать, если действительно Versant делает лучшие ООСУБД (лучшие - самые успешные на рынке)? Но если вы не согласны, так валяйте - расказывайте нам о других, а не разводите слюни ...
6 апр 05, 10:08    [1443931]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
Alexey Rovdo
Member

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

Что нового можно узнать изучая старое? Да мне и нет охоты лезть в дебри ...


Что было то и будет ...
Как известно, история движется по спирали раз за разом повторяя пройденное на каждом новом витке. И информационные технологии из этого вечного закона ничуть не выбиваются. :)
6 апр 05, 10:15    [1443977]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
Genady
Member

Откуда: Москва
Сообщений: 2005
Alexey Rovdo
Триггеры и хранимки будут срабатывать для любого приложения, работающего через представленную схему (т.е. поверх VSQL).


Что такое VSQL? И в чем проявляется его объектная ориентированность?
Ну и хотелось бы уже все таки пример кода посмотреть.
6 апр 05, 10:23    [1444036]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
самопал
Guest
Alexey Rovdo
tygra

Что нового можно узнать изучая старое? Да мне и нет охоты лезть в дебри ...


Что было то и будет ...
Как известно, история движется по спирали раз за разом повторяя пройденное на каждом новом витке. И информационные технологии из этого вечного закона ничуть не выбиваются. :)

"...И что делалось, то и будет делаться,.. И кто умножает знания, тот умножает печаль..." (c) Экклезиаст

Нах... философию отсюда!..
6 апр 05, 10:24    [1444049]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Dimonische
Member

Откуда:
Сообщений: 137
самопал
2 Alexey Rovdo:
Схема это интересно, но вы лучше просто скажите, есть ли метод задания ограничений, которые будут срабатывать для любого работающего с БД приложения?
По-моему, есть варианты:
1. Versant/SQL триггеры, и вносить данные только через Versant/SQL. При этом теряется куча преимуществ ОО подхода.
2. Ультимативное требование использовать одну библиотеку классов для всех приложений, которые будут работать с этой ОБД. (раз объектная модель одна, то и библиотека классов, описывающая операции над объектами должна быть одна). При этом эффективно и корректно разрабатывать приложения для этой ОБД можно только на том же (одном) языке, а заявления о возможности использования других языковых интерфейсов следует сопровождать предупреждением о грядущих проблемах и последствиях.


Пункт номер 2 отстой, т.к. нереально заставить дотнеткоманду писать на яве.

А Алексей похоже замалчивает проблему. Я не хочу общаться через Версант/СКЛ и использовать хранимки + триггера. Я хочу чтобы хранимки + триггера работали всегда, регардлес метода доступа. Похоже, это нет так.

Это печаль.
6 апр 05, 10:24    [1444054]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
Alexey Rovdo
Member

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

Вот тут то и возникает закономерный вопрос - а нужен ли ООП для обработки данных ? Для меня очевидный ответ, что для формализованных данных абсолютно не нужен, здесь SQL полностью и безоговорочно рулит как элегатный способ работы с множествами, а не единичными записями/обьектами.


Если вы отвергаете ООП, то вам нет смысла даже интересоваться ООСУБД. ООСУБД не эффективны без ООП на всех этапах. А нужен или нет ООП - этот вопрос я обсуждать не буду - решайте его сами.

ASCRUS

А вот для неформализованных ООП очень даже нужен, где существует динамически расширяемая по ходу работы структура данных, где основная задача хранение и обработка достаточно разносторонней с неизвестной структурой на момент проектирования приложения информации.


Это одна из нескольких задач, при решении которых ООСУБД эффективны. К другим можно отнести, например, работу с очень сложно структурированными данными (сети из многих тысяч объектов), а также некоторые виды OLTP-задач.

ASCRUS

Надо думать не зря именно на CACHE сейчас существует множество CRM-систем.


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

ASCRUS

Я прекрасно представляю что такое ООП в Java или C и лично мне удобно на них делать свои парсеры, языки, IDE, компоненты и т.д., но уж никак обработку множеств.


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

А по поводу языков я уже высказывался, по моему мы говорим почти одно и то же.

ASCRUS

Вот и я о том же - стандартные ОО-языки меня совсем не удовлетворяют как инструмент описания бизнес-логики БД.


Не знаю. Системы с проприетарными языками как-то не очень прижились на рынке. Но похоже вы именно их сторонник. Попробуйте посмотреть на GemStone и O2. Но я об этих системах знаю мало - так что по ним я не могу дать консультацию.

ASCRUS

Я не против ООБД. Я против неэффективного труда, поэтому стараюсь выбрать то, что наиболее оптимальное под существующие задачи. 12 лет назад я писал достаточно крупные по тем меркам проекты, которые сейчас мне кажутся смешными и маленькими.


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

И если вас (или кого-то еще) интересуют именно best practices по работе с ООСУБД, то вероятно стоит взять на заметку мои рекомендации, просто потому, что они не взялись из ниоткуда, а являются обобщенным описанием уже накопленного в мире опыта по использованию продуктов Versant.

ASCRUS

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


Гораздо более широкие перспективы сейчас у разнообразных ORM-технологий, которые позволяют работать в парадигме ООП, используя при этом в качестве хранилища данных все те же РСУБД (т.е. всегда можно выйти за рамки ООП, когда это необходимо). Я рекомендую искать удобство и эффективность для действительно широкого круга задач и приложений в первую очередь именно в этой стороне (ORM). ООСУБД же пока остаются нишевым продуктом, эффективным только в некоторых сферах (некоторые из них мы уже назвали выше). Но на своем поле они могут дать большую фору любым другим системам, если окажутся в руках грамотного и разумного разработчика.
6 апр 05, 10:53    [1444237]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
автор
Триггеры и хранимки будут срабатывать для любого приложения, работающего через представленную схему (т.е. поверх VSQL).

Так все же: при работе через ОО - с апп-сервера например - с объектами, и дергая методы объектов, будут срабатывать триггеры? :))

-- Tygra's --
6 апр 05, 11:14    [1444373]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Dimonische
Member

Откуда:
Сообщений: 137
tygra
автор
Триггеры и хранимки будут срабатывать для любого приложения, работающего через представленную схему (т.е. поверх VSQL).

Так все же: при работе через ОО - с апп-сервера например - с объектами, и дергая методы объектов, будут срабатывать триггеры? :))

-- Tygra's --


Тигра, ты не даешь чела прижать к стенке - щас тебе скажут, что Версант пофигу, что происходит если исполняются методы объектов, т.к. он их не хранит.

Правильно припереть к стенке:

"Так все же: при работе через ОО - с апп-сервера например - если я сохраню объект через JVI апи, будут срабатывать Версант/СКЛ триггеры? :))
6 апр 05, 11:33    [1444488]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
funikovyuri
Member

Откуда: Симферополь
Сообщений: 4045
Достала вездесущая наглая реклам


И, прошу пардона, разве Дейт когда-нибудь про конкретные продукты а-ля Версант что-то говорил?

Приводил примеры при классификации СУБД - так вот Versant там был как OODBMS
6 апр 05, 11:41    [1444525]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Да, так лучше :))

Но почти приперли и так: на конкретные вопросы по поводу примеров и прямого объяснения работы, мы ничего пока что не услышали - только ответ на вчерашние ранние топики и пространная схема на иностранном языке. Или так долго технические специалисты отвечают, которым это было переправлено? :))
На это (на мыло к тех.спецам) наводит следующее:
вчера на всего парочку-тройку вопросов AR ответствовал
PS: На другие вопросы тоже отвечу - дайте отдышаться

Было это в 17:06.
Отдышаться от чего? Мы бежали? Штанги тягали? Или такое "огромное" количество конкретных вопросов повергло в шок? Оказалось, что пространно уже не ответить, соглашений не привести.... Облом полный!
В 18:55 (через два часа!!!!!) наконец-то появилась странная схема без объяснений. Наверное техподдержка уже ушла домой :)
Потом через полчаса был дан ответ самим AR:
автор
Триггеры и хранимки будут срабатывать для любого приложения, работающего через представленную схему (т.е. поверх VSQL).

Что самим явно видно - длинное предложение без смысла и толка. Типа ответил. :)
Сегодня опять пространные размышления - видимо AR для себя уже посчитал (заключил соглашение :)), что он на все вопросы ответил (или подумал, что все забыли про них :)).

Так что, технические специалисты Версанта ответили маркетинг-менеджеру Софткея, как оно там работает?

Ждемс!

-- Tygra's --
6 апр 05, 11:52    [1444602]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Alexey Rovdo
Member

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

Ага, значит понятие FK существует? А каким образом задается?

Задается объявление того, что данное поле - референс на другой объект.


Ну так мне и интересно как задаются?
В MS SQL так
alter table Entity_2
   add constraint FK_ENTITY_2__ENTITY_1 foreign key (Entity_1_Id)
      references Entity_1 (Entity_1_Id)
go
А в версанте?


В Versant любой ссылочный атрибут класса фактически содержит OID связанного объекта. OID уникален для каждого объекта. Атрибут не может принять значение от балды - в момент создания объекта (и в процессе редактирования оного) все ссылочные атрибуты могут принять значения либо null, либо действительного OID. Если объекта с введенным OID в базе не окажется, то возникнет ошибка. Таким образом обеспечивается ссылочная целостность на уровне базы.

Следующий уровень обеспечения ссылочной целостности - указание на класс объекта, который связан с атрибутом-ссылкой (указателем). Т.е. мы можем ограничить возможный выбор связанных объектов только объектами определенного класса. Выше я приводил пример объявления классов для FastObjects. Там атрибут company_ является ссылкой на объекты класса Company. Так вот ссылки на объекты любого другого класса в этот атрибут не запишутся (возникнет ошибка). Таким образом выстраивая иерархию классов мы можем сужать выбор возможных значений ссылочных атрибутов вплоть до любого необходимого нам множества.

Третий вопрос. Если в FastObjects мы решили удалить объект-родитель, который содержит ссылки на некие дочерние объекты. Как вместе с ним удалить и эти дочерние объекты? Такие объекты объявляются зависимыми (модификатор depend) и удаляются вместе с объектом-родителем автоматически. В VDS существует похожий механизм, но там все определяется типом самой ссылки и этот механизм побогаче.
6 апр 05, 12:04    [1444699]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Genady
Member

Откуда: Москва
Сообщений: 2005
Alexey Rovdo
Третий вопрос. Если в FastObjects мы решили удалить объект-родитель, который содержит ссылки на некие дочерние объекты. Как вместе с ним удалить и эти дочерние объекты? Такие объекты объявляются зависимыми (модификатор depend) и удаляются вместе с объектом-родителем автоматически. В VDS существует похожий механизм, но там все определяется типом самой ссылки и этот механизм побогаче.

Автоматически? Всегда? А если я удалял родителя и просто не знал, что у него есть дети, иначе бы не удалил?

Ну со ссылочной целостностью более мене ясно.

Расскажите о поддержке ограничений.
Например РСУБД обычно поддерживают 3 вида ограничений.
1. Уровень столбца (мой первый вопрос о диапазоне значений) в MS SQL это констрейнт.
2. Уровень таблицы (например значение столбца тип не может принимать значение 3 если в столбце "Назначение" записана 1) в MS SQL это констрейнт.
3. Уровень БД (в качестве примера можно рассмотреть предыдущий пример с поправкой на, то что столбцы в разных таблицах). в MS SQL это триггер.

Приведите примеры ограничений в версанте, заменив таблицу на класс.

З.Ы. Прошу прощения за несколько натянутые примеры, надеюсь они все же понятны.
6 апр 05, 12:19    [1444809]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
автор
Выше я приводил пример объявления классов для FastObjects. Там атрибут company_ является ссылкой на объекты класса Company. Так вот ссылки на объекты любого другого класса в этот атрибут не запишутся (возникнет ошибка). Таким образом выстраивая иерархию классов мы можем сужать выбор возможных значений ссылочных атрибутов вплоть до любого необходимого нам множества.

Очень непонятен вывод "таким образом бла-бла.....". Это каким? Примеры можно? И как это получится - сужать выбор возможных значений ссылочных атрибутов вплоть до любого необходимого нам множества

А на другие вопросы ответы хде? Хотя бы такие же пространные :))

-- Tygra's --
6 апр 05, 12:21    [1444823]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
Alexey Rovdo
Member

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

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


Это действительно самый дешевый способ, если пользователь в единственном числе. Но, будете смеяться, я видал немало систем с числом пользователей 5-20, в которых все примерно так и было сделано (опять таки именно по причине дешевизны). Да и бумажка иногда не нужна вовсе - в конце-концов надо быть полным идиотом, чтобы вписать в поле месяц что-то кроме 1-12.

Так что не делайте вид, будто ваша мысль показывает то, до каких крайностей можно якобы дойти, следуя моей логике. Эти крайности - заурядная действительность.
6 апр 05, 12:31    [1444872]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
самопал
Guest
Alexey Rovdo
в конце-концов надо быть полным идиотом, чтобы вписать в поле месяц что-то кроме 1-12

Угу, например что-то вроде
12' AND 1=1 UNION SELECT username, userpasswd FROM users
. Это не относится к целостности БД и СУБД вообще, а просто пример (почти реальный) использования дурной веры разработчиков в то, что"...надо быть полным идиотом..."
Sorry за оффтоп.
Вот получить ответы на эти вопросы интереснее...
И с ORM тоже не все хорошо, если база проектировалась под классы приложения (что далеко не редкость) то работать с такой базой, не используя ту же библиотеку классов, через SQL можно, но слишком проблематично.
6 апр 05, 12:49    [1444977]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
Alexey Rovdo
...надо быть полным идиотом, чтобы вписать в поле месяц что-то кроме 1-12.



...Страшно далеки они от народа...
6 апр 05, 12:57    [1445013]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
Alexey Rovdo
Member

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

Когда Вы говорите, что ОЦ нет в ОМД, то это значит, что их нет в ООСУБД.


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

vadiminfo

Или ООСУБД возможна без ОМД? Но ведь тогда это просто некоея СУБД, отличная от ООСУБД - нужно убрать впереди ОО , а скорее всего тогда это и не СУБД, и она по ошибке в этой теме. Или ОЦ в ООСУБД обеспечиваются вне ОМД? Т.е. в сервере приложений или библиобеках?


У меня ответов на эти вопросы нет. И я полагаю, что и единого устоявшегося мнения пока не существует. Есть только некие рыночные штампы - называть ряд продуктов ООСУБД.

vadiminfo

Alexey Rovdo

Отрицая Java и C++-программный код в роли средства обеспечения целостности данных, будьте последовательны. А чем SQL-код лучше?

Тем, что SQL - язык БД поддерживаемый СУБД. И речь идет не о программном коде вообще, а об управлении данными.


SQL - язык БД поддерживаемый РСУБД. Он не приспособлен для работы с объеткными данными и поэтому и не может использоваться в ООСУБД. Для работы с объектными данными нужен объектный язык. Основанный на SQL язык объектных запросов OQL решает проблему только в части запросов - для манипулирования данными он не предназначен. Остаются только стандартные ОО-языки (Java, Smalltalk, C++) или проприетарные языки.

vadiminfo

ООСУБД, РСУБД и ОРСУБД я хочу сравнивать, и определись в этом авторы темы. Если что-то не СУБД, или СУБД но не прописанного в названии темы типа, то его рассмотрение включать в эту тему, скорей всего не следует.


Вот вы и решайте. Решите - позовете.
Если вам интересно узнать про Versant - я опишу характеристики этих систем в конкретных конфигурациях и порядок их разработки.

vadiminfo

Тот перечень, что Вы привели, если имеет значение, то для сравнения конкретных продуктов СУБД


Именно так.

vadiminfo

а не типов, которые определяются МД, и которые предложенны для рассмотрения в этой теме. Потому что Ваш перечень не очень сильно завист от модели данных.


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

vadiminfo

В частности, Вы пытались доказать, что производительность у ООСУБД выше, чем РСУБД. Но доказательство не оказалось убедительным.


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

vadiminfo

Что касается стандартов, то на данный момент они явно болле продвинуты для РМД.


Конечно.

vadiminfo

Однако, это ведь не зависит непосредственно от самой модели?


Именно, что зависит. Для стандартизации ООСУБД нужно сначала полностью стандартизировать множество аспектов ООП.

vadiminfo

Alexey Rovdo

Так и давайте выявим список критериев, по которым мы хотим сравнивать и определимся с конфигурациями систем, которые мы будем сравнивать.

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


Моделирование в таком контексте не имеет отношения к ООСУБД как таковым - вы просто описываете положения ООП. Выше я уже не однократно говорил, что использовать ООП и вместе с РСУБД никто не мешает. Выгода от перехода с РСУБД на ООСУБД может быть только при условии следования принципам ООП. А саму полезность ООП я не обсуждаю (вы либо используете ООП, либо нет). Т.е., если вас не устраивает ООП и ОО-языки в задачах манипулирования данными, то и ООСУБД вы эффективно использовать не сможете - тут и сравнивать ничего не нужно.
6 апр 05, 13:05    [1445054]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД .  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
2 Alexey Rovdo

Так вы будете на конкретные вопросы отвечать?

Или скажите честно, что не знаете ничего, а те кто знает, вам не говорят. Сколько можно воду в ступе толочь?

-- Tygra's --
6 апр 05, 13:20    [1445139]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Alexey Rovdo
Member

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

Пункт номер 2 отстой, т.к. нереально заставить дотнеткоманду писать на яве.


Для VDS можно писать на C++. Летом должна быть новая версия - может и .NET появится.

Dimonische

А Алексей похоже замалчивает проблему. Я не хочу общаться через Версант/СКЛ и использовать хранимки + триггера. Я хочу чтобы хранимки + триггера работали всегда, регардлес метода доступа. Похоже, это нет так.

Это печаль.


Это не так и это печаль.

Но причина совершенно прозрачна. Выполнить триггер в контексте транзакции можно только там, откуда эта транзакция инициирована (т.е. к примеру триггер по изменению объекта должен этот измененный объект реально получить, но измененный объект попадает в хранилище данных только в результате закрытия транзакции, а до тех пор он есть только в приложении, которое эту транзакцию и выполняет). При работе через объектный native-интерфейс контекст транзакции создается в том приложении, которое ее и инициировало - он не может создаться на сервере (сервер VDS пассивен). Поэтому и любые триггеры могут сработать только, если будут выполняться там же, где и инстанцирована транзакция. При чистом объектном подходе (в обход VSQL) мы можем обрабатывать события через соответствующие интерфейсы классов (preInsert(), postInsert() и т.п.). Разумеется обработка эта будет происходить там же, где и была начата транзакция. Альтернатива - демоны обработчики, работающие вне транзакции. VSL работает в стиле классических РСУБД и владеет контекстом транзакции, поэтому и триггеры при доступе к данным через VSQL могут срабатывать как положено.
6 апр 05, 13:23    [1445153]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Alexey Rovdo
Member

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

Ну со ссылочной целостностью более мене ясно.

Расскажите о поддержке ограничений.
Например РСУБД обычно поддерживают 3 вида ограничений.
1. Уровень столбца (мой первый вопрос о диапазоне значений) в MS SQL это констрейнт.
2. Уровень таблицы (например значение столбца тип не может принимать значение 3 если в столбце "Назначение" записана 1) в MS SQL это констрейнт.
3. Уровень БД (в качестве примера можно рассмотреть предыдущий пример с поправкой на, то что столбцы в разных таблицах). в MS SQL это триггер.

Приведите примеры ограничений в версанте, заменив таблицу на класс.

З.Ы. Прошу прощения за несколько натянутые примеры, надеюсь они все же понятны.


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

Про VDS пока точно ответить не могу.
6 апр 05, 13:29    [1445188]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 70 71 72 73 74 [75] 76 77 78 79 .. 83   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить