Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обьектные базы данных, Что оно из себя представляет 
:(
    Опции темы
Grey
Дата 3.4.2002, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 25.3.2002

Репутация: нет
Всего: нет



Кто сталкивался, поделитесь впечатлениями.
PM MAIL   Вверх
podval
Дата 3.4.2002, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: нет
Всего: 62



Может объектно-ориентирванные?
PM WWW ICQ   Вверх
Grey
Дата 3.4.2002, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 25.3.2002

Репутация: нет
Всего: нет



Они самые. Так расскажет кто-нибудь?
PM MAIL   Вверх
podval
Дата 3.4.2002, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: нет
Всего: 62



PM WWW ICQ   Вверх
Vit
Дата 3.4.2002, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Статья не впечатлила - обо всем и ни о чем, так рассуждения об "объектности", я сам не работал с объектными технологиями баз данных и хотелось бы услышать не рассуждения и "объективные исторические предпосылки возникновения объектных технологий" (вся статья смахивает на лекцию какого-то отраслевого техникума народного хозяйства по программированию), а примеры, архитектуру и логику работы, плюсы и минусы технологии... Может кто-то другого мнения об этой статье, но я ничего для себя из нее не вынес, и могу написать подобную статью по любому языку или технологии включая те которых я и в глаза не видывал - достаточно прочитать какое-нибудь ревью, и размазать на 5-10 килобайт текста.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Grey
Дата 4.4.2002, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 25.3.2002

Репутация: нет
Всего: нет



Согласен с Vit. Хотелось бы увидеть мнение людей, которые потрогали эту технологию руками.
PM MAIL   Вверх
Vyacheslav
Дата 5.4.2002, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 59



Я не оцениваю статью. Но на фирме мы используем примерно такой же подход. Правда в основу положили Microsoft SQL сервер и на него накладываем объектную модель.Почему MSSQL, а не Cache или какую-нибудь другую действительно ОO? Большинство заказчиков ориентировано на MSSQL. В основном выйгрыш  при  проявляется при проектировании БД( пока у нас все новые задача логически легко впихивается в выбранную концепцию) а также при программировании.Вот еще один пример, где пошли по такому же пути
http://www.ivn.newmail.ru/index_rus.html Смотреть матриал по Ultima-S


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Е. Григорьев.
Дата 22.4.2002, 10:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Правтически я этим не занимаюсь - только теоретически :) Поэтому могу дать несколько ссылок, которые могут быть полезными
http://www.inteltec.ru/publish/articles/objtech/4kx4_9.shtml
http://www.tts.tomsk.su/personal/~sas/DBMS/96_4/source/36.htm
http://www.ccas.ru/~prz/hp1.html - несколько статей по теме
http://y-larin.chat.ru/russian/oodbms/dbms_index.htm - несколько статей по теме
Можно так же поискать литературу по ключевым словам на сайтах www.osp.ru и www.citforum.ru - там ее очень много.

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

По поводу предлагаемой выше статьи - я не могу ее воспринимать серьезно.
  Вверх
crimaniak
Дата 12.7.2002, 15:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Реляционные базы данных недостаточно точно описывают окрущающий мир. При их помощи можно создавать двумерные сечения, связанные между собою. Набор же реальных объектов, как правило, в такую схему не укладывается. Во-первых, объекты могут обладать _разным_ набором свойств. Во-вторых, не все свойства объектов могут быть известны. В-третьих, не всегда объекты одного класса четко связаны с объектами другого класса. В-четвертых, атрибуты объектов сами могут быть объектами или коллекциями. И наконец, объектная схема имеет свойство меняться по ходу эксплуатации системы. А соответствующее изменение структуры таблиц - это отдельная  и достаточно геморройная задача, так как SQL запросы совершенно не толерантны к таким изменениям. Приходится много чего переписывать. Все это снижает эффективность базы и создает трудности в проектировании. Дополнительный отрицательный момент в реляционных базах - добавление еще одной среды, с которой должен иметь дело программист. Если он и до этого должен был соорудить правильно работающую систему из PHP, XML, XSLT, генерящих HTML, CSS, Javascript и работу с DOM, добавление ко всему этому хозяйству еще и PL/SQL надежности коду отнюдь не прибавляет.

Поэтому возникла идея хранить объекты именно в виде объектов. Отдельных объектов.  каждый - со своими свойствами. И изменить способы обращения к ним. Один из вариантов реализации такого подхода - Persistent Objects. Наборы классов, связанных с хранилищем. Когда программист создает объект, наследованный от такого класса, в хранилище создается его копия. Вся работа с базой скрыта в недрах служебного класса, и программист не думает об этом вообще. Ничего не нужно сохранять, все сохраняется само и при следующем запуске программы ты можешь достать свои объекты из хранилища и продолжить работу с ними. Единственно, о чем надо озаботиться дополнительно - о создании некоторых объектов-коллекций, позволяющих выбирать объекты по признакам. При наличии таких коллекций, связанных с хранилищем, оно определяет принадлежность каждого пихаемого объекта к ним и ставит у себя соответствующие галочки, так что потом можно быстро выбрать нужные объекты. Это аналог индексов в SQL базах.

Есть и другие подходы. Например, хранить объекты в XML форме. И не только.

Сумбурно, но надеюсь, понятно.
  Вверх
Е. Григорьев
Дата 12.7.2002, 17:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как бы это объяснить....:) Требовать от реляционных баз данных, что бы они служили для описания окружающего мира не следует. Реляционная модель описывает ДАННЫЕ - и ни на что большее она не претендует. Сравнивать отношения и обьекты так же  неразумно, как сравнивать , скажем, устройство оперативной памяти и архитектуру объектной программы. Перое описывает систему ХРАНЕНИЯ данных (мы можем сказать это про любую Рел. БД),   а второе позволяет ПРЕДСТАВИТЬ эти данные в удобном для человека виде (в виде объектов).

Вооот....:)

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

   Представления идентифицируемых сложных объектов в реляционной базе данных

и

Модель "объект - качество".

К сожалению - это только теория. :( Даже протипа нет, а могла бы классная штука получиться.
  Вверх
crimaniak
Дата 13.7.2002, 13:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
Как бы это объяснить....:) Требовать от реляционных баз данных, что бы они служили для описания окружающего мира не следует. Реляционная модель описывает ДАННЫЕ - и ни на что большее она не претендует.


Фигушки, именно требует. Ведь ЧТО ЕСТЬ ДАННЫЕ?

Прочитал статейки. Ну и бардак, надо сказать! Я человек простой и практически неграмотный, так что первую статейку по диагонали прочитал, но выводы неверны: все, что там в конце написано, давным-давно реализовано. Этих библиотек уже, просто как собак нерезанных. Начиная от Cache и кончая поделками Вась Пупкиных на SourceForge. Я когда попытался обзор сделать, нашел штук пятнадцать подобных систем и понял, что дальше искать не буду. Так что бери и пользуйся. На C++ и Java.

По поводу второй статейки. Не люблю я этих "Доид принадлежит П от ля-ля-ля при ву-аля от тру-ля-ля до тра-ля-ля", и все это в тройных скобках. Поэтому изложу все то же самое, но попроще.

Тут следует фрагмент доки, писанной для одного заказчика. Дока из Ворда, так что картинка - условно. :)
------------------------------------------------------------
Как мы описываем мир? Мы говорим фразы типа: «Вес стола равен двадцати килограммам». Принято считать это описанием одного из свойств объекта стол. Вот у нас есть стол и у него есть свойство вес, равное числу двадцать. Но к чему тогда относится слово «килограммы»? Оно относится к весу, это единица измерения веса. Значит, свойство вес имеет свойство измеряться в килограммах. А поскольку то, что имеет свойства, является объектом, мы можем и должны рассматривать сущность «Вес» тоже как объект. Отсюда следует, что свойство есть направленное соотношение между двумя объектами. Причем, несмотря на направленность конкретной связи, мы не можем дифференцировать объекты по этому признаку, так как один и тот же объект может являться одновременно объектом-источником для одного свойства и объектом-целью для другого, как объект «Вес» в рассматриваемом примере. Изобразим информацию, передаваемую примером, графически:

Код

      20           Килограммы
Стол -------> Вес --------------> Единицы измерения



Жирной рамкой тут изображены объекты, надписанными стрелками – связи между ними, они же значения свойств объектов. Можно читать это так: килограмм есть единица измерения веса, двадцать есть вес стола.
-------------------------------------------------------------

Что из этого проистекает:

1. Всё есть недифференцированные объекты.
2. Свойство - троично. Оно есть отношение чего-то к чему-то и имеет какое-то значение.

Что я и реализовал.

Упрощенный вариант: есть таблица объектов, где есть ID, Имя и ParentID (это мы их параллельно кубу в дерево выстраиваем). И есть таблица свойств, где есть ObjectID, TargetID и Value. Эта таблица позволяет нам сделать многомерный разреженный куб. Вуаля!

Ну, на самом деле немного сложнее. Например, таблиц свойств столько, сколько типов свойств ты используешь, для эффективного индексирования. Использовал ты CHAR(12) - у тебя появилась таблица l_CHAR_12_, где все такие свойства и лежат. Ну, еще таймстэмпы есть у всех объектов и свойств (для репликации) и так далее.

Но смысл остается тот же. Реляционная база используется как основа, на ней можешь навешать любую схему. Любой объект может соотноситься с любым объектом, иметь любые свойства. Работаешь с этим хозяйством типа $oo->createObj('\\Города\\Псков'); или $oo->setProp($Town, '\\common\\properties\\distance',$distance);
(это PHP).
Правда, выбирать непосредственно трудно, поэтому пришлось язычок написать, и транслятор к нему. Даешь OQL - получаешь SQL.
Получилось достаточно удобно, типа $recordset=$shop->executeOQL('SELECT parcels.*,parcels->\\shop\\parms\\products\\price as Price FROM \\shop\\orders\\%\\% as parcels ORDER BY parcels.Name');

Тут есть ветка \shop\orders, в ней лежит куча заказов, из каждого заказа растут посылки, вот они-то и выбираются с их ценами. Сначала все это транслируется в соответствующий SQL [SELECT parcels.*, lnk0.Value AS Price FROM o as o0,o as o1,o as parcels LEFT JOIN l_FLOAT AS lnk0 ON lnk0.FID=parcels.ID AND lnk0.TID=80 WHERE (o0.ParentID=25 AND o0.Name LIKE "orders" AND o1.ParentID=o0.ID AND parcels.ParentID=o1.ID) ORDER BY parcels.Name], а потом выполняется.

Так что и тут, как видишь, у кого - теория, а у кого - и практика. :)
  Вверх
Евгений Григорьев
Дата 16.7.2002, 13:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











О чем спорим то?

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

Почему я так говорю?

Во-первых, Вы сами признались.

Во-вторых, в своей первой статье я вовсе не претендую на пальму первенства в области разработки (даже речи об этом нет). Цель статьи совсем другая - показать бессмысленность спора "объектные системы проит реляционных". Я пытаюсь показать, что реляционный подход к ХРАНЕНИЮ данных может не противоречит объектному подходу к их ПРЕДСТАВЛЕНИЮ и реляционная модель может описывать данные реализующие схему данных основанную на объектных принципах (разницу между понятиями "модель данных" и "схема данных" хорошо объесняется по приведенной ссылке). О чем спорим, спрашиваю? Цитата из предыдущего поста - "Реляционная база используется как основа, на ней можешь навешать любую схему."

В-третьих, для того, что бы излагать что-то "попроще" надо это, как минимум, внимательно прочитать. Это я о "попроще" изложнении своей второй статьи.В ней я начинаю с того, что пытаюсь показать, что объектная концепция НЕ является достаточной для адекватного описания окружающего мира. По моему мнению НЕ ВСЕ моделируемые сущности могут описываться как объекты. Я пытаюсь дать критерий для различия объектов и "необъектов". Критерий очень простой: если для сравнения сущностей используется ее ЯВНО ЗАДАННОЕ значение, то это "необъект" (я называю это качество). Если же для того, что бы отличить одну сущность от другой требуется дополнительная идентификация, то это объект. Например "вес" - это не объект, для его сравнения мы используем только его явно заданное значение (20). Тот факт, что Вы вводите единицу измерения (кг) ничего не меняет, просто явно заданное значнение становиться сложным и включает явно заданные единицы измерения (20,"кг"). Стол же - это объект, поскольку могут существовать стола с одни и тем же весом, цветом, размерами.... т.е. столы не могут однозначено сравниваться только исходя из явно заданных значений. Почему я делаю упор на ЯВНО ЗАДАННЫХ значениях? Да потому что именно явно заданные значения являются единсвенно возможным способом представления данных в реляционной модели - т.е. "необъекты"(качества) должны описываться в терминах именно реляционной модели.  Далее я эту тему развиваю.

Ну и что? как ваше изложение соотноститься с этим? Да никак -  я говорю о другом! Хотя бы потому, я буквально на первой странице говорю, что не имеет смысла описывать сущность "вес", как объект, я Вы это делаете... То есть Вы  попросту вводите в заблуждение читателей отностительно моей статьи, потому что вы не удосужились внимательно прочитать ее. Нахрена так делать?

Несколько практических вопросов о  системе, созданной Вами. Заметьте, что я спрашиваю именно про систему хранения... про серверную компоненту (что бы было понятнее). Независима ли она от использующей ее программы? Существет ли язык, описывающий ее и служащий для ее управления? Храняться ли в ней метаданные (я имею в виду хотя бы описание структуры хранимых сложных объектов)? Можно ли получить и изменить метаданные? Контролирует ли система то, что вносимые данные соответсвуют этим метаданным? Контролирует ли система то, что при изменении метаданных существующие данные не будут противоречить внесенным изменениям? Реализует ли система хранения метаданных наследование и полиморфизм? Реализует ли система хранения метаданных хранение методов? Возможно ли выполнение эти методов (на стороне сервере, конечно)? Если на эти вопросы Вы ответите утвердительно, то совершенно очевидно, что Ваша работа заслуживает самого пристального внимания.

Наконец, насчет теории и практики. Хорощей практики без теории не бывает. Хотя бы потому, что теория дает однозначные практические ответы (взять хотя бы реляционные БД, основанные на математически строгой теории). К сожалению, в области  систем хранения данных сейчас наблюдается разброд и шатание, связанное не в последнюю очередь с тем, что множество крутых программёров забивают на теорию. Я уверен, что люди въехавший в теорию рел.БД, не будет создавать "постреляционные" базы данных (это такое же бредовое выражение, как и "постлогические") или утверждать, что рел. БД плохо описывают окружающий мир. А кто не въехал, тот по прежнему будет ваять "язычки" и "библиотечки", что с одной стороны в общем-то помогает самоутверждению как крутейшего программёра с правом подчеркивания сего момента и виртуального похлопывания по плечам, но с другой стороны приводит к возникновению программных монстров, страшных как тришкин кафтан.

Ни в коем случае не хочу, что бы последний абзац был отнесено на чей то личный счет:)
  Вверх
Fantasist
Дата 17.7.2002, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: нет
Всего: 41



Хе. Кажись парни с DelphiKindom подвалили.  :D

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


--------------------
Волны гасят ветер...
PM MAIL   Вверх
adminlion
Дата 21.7.2002, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 14.7.2002

Репутация: нет
Всего: нет



Oracle -это ОО язык как делфи
у него все свое.
Вот это крутой язык 5 лет с ним
Советую, не пожалеешь
Это и есть база данных, одна из самых крутых на сегоднешний день
PM MAIL   Вверх
Vit
Дата 21.7.2002, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Цитата(adminlion @ 21.7.2002, 04:17)
Oracle -это ОО язык как делфи
у него все свое.
Вот это крутой язык 5 лет с ним
Советую, не пожалеешь
Это и есть база данных, одна из самых крутых на сегоднешний день

Еслиб только он не был такой дорогой!


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0875 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.