Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 [8] 9 10 11 12 .. 34   вперед  Ctrl
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Гмм. IMHO многозвенные архитектуры далеко не всегда лучше двузвенных. Более того есть задачи, в которых ОДНОзвенные архитектуры лучше двузвенных
3 фев 05, 08:42    [1296064]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Lirik_SPB
Guest
SergSuper
2 Lirik_SPB
Если сложно, ответьте: а какой опыт у Вас работы с реляционными базами данных(какие СУБД, сколько лет)? А что это за проект такой?


Буду краток:

Oracle - 2 года (разработка хранилищ данных)
Microsoft SQL - 5 лет (разработка, администрирование БД)
Interbase (Firebird) - 2 года (разработка БД; администрирование :-) )

это основное.
3 фев 05, 10:01    [1296251]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
PArth
2 Злой Хорёк:
"Почему требуя чтобы все делалось по правилам я являюсь категоричным догматиком. Вы же когда писали решение задач по математике, свои математические символы и операции не выдумывали. А если уж у вас какая-то своя методика разработки, то так и надо писать, что это моя методика разработки, а не ОО"

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

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

Угу. "В то время, когда все прогрессивное человечество..." См. абзац выше (про догматика)...
Все-таки это не Alexey Rovdo лично предлагает, а Versant. И почему Вы решили, что ООБД исключают трехзвенную архитектуру?


Честно говоря, я просто не знаю как отвечать Злому Хорьку. Он постоянно находит в моих текстах то, чего я вовсе не писал и относит мои высказывания к той области, к которой они вовсе не относятся, делая после этого далеко идущие выводы о моем знании ООП и т.п. Из той же серии и замечания про EJB, серверы приложений и все остальное. Выше я объснял, что JDO работает поверх JDBC и не является конкурирующей с JDBC технологией. Теперь, по-видимому, я должен объяснить, что и в EJB тоже можно использовать JDO, а JDO работает поверх JDBC и ... Но есть ли смысл в ответах на хаотично сформулированные критические высказывания, которые завершаются просьбой уточнить тему разговора?
3 фев 05, 10:29    [1296375]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
c127
2 Alexey Rovdo

>Таким образом, и вы используете вместе с базой данных ПРИЛОЖЕНИЕ.
Я привел пример приложения на Java, но совершенно согласен с тем, что это может быть и приложение, разработанное на Delphi, MS VS, IBM WSAD ...
А вот почитав, что пишет c127 :

Но НИ РАЗУ за это время не возникла необходимость использовать джаву для получения или складывания данных в БД ...

Я так и не понял, как же он решает эту проблему.


Там же по-русски написано: не с помощью джавы, что тут можно не понять?


Но я то спрашиваю "как же он решает" , а у вас ответ на вопрос "как не решает". Я прекрасно понял, что с помощью Java не решает, вот и все ...
И посему еще раз конкретизирую.

Что пользователи разработанных вами информационных систем используют для получения или складывания данных в БД ? Обращаю внимание, "что используют", а не "что могли бы использовать в зависимости от постановки задачи".

c127

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

>Дано: дата d, маршрут [Z1, Z2]
Выдать таблицу (билеты в наличии): рейс - класс - кол-во мест

Смотрим код:
select race, p.class, p.cnt-sum(isnull(cnt,0))
  from Shedul s 
  inner join Place p where s.fly=p.fly
  left join Sold d on d.race=s.race and d.date='нужная дата' and d.class=p.class  and d.flag=1
  where s.date='нужная дата' and s.race='нужный рейс'
  group by race, p.class, p.cnt


Если вы являетесь разработчиком-практиком, то странно, что вы не понимаете что значит "чтоб оно работало". Демонстрирую пример претензии к вашему "теоретически верному" коду.

А как узнать, что этот код действительно выдает то, что заявлено? Я вот, к примеру, не верю. Давайте убедимся на тестовом примере. Как это сделать?

c127

Во вторых, как Вы это запускали, если так уверенно заявляете, что оно не работает? javac x.sql? Оно так и не должно работать. Именно этот код, который Вы перед собой видите, не изменив в нем ни байта, можно запускать (и получать и анализировать результаты) квери аналайзером (QA), если это МССКЛ или интерактив СКЛ-ем, если это сайбейз АСА или еще чем, зависит от конкретного СКЛ сервера, но у всех серверов без исключения есть для этого специальное средство. Есть и другие способы.



Именно этот конкретный код можно запускать в QA ? Попробуйте - раскажете о результатах, заодно познакомитесь с MS SQL Server.

c127

В-третьих, поскольку Вы упорно настаивали, что задача решена не полностью, я просил ПРОЦИТИРОВАТЬ ту часть постановки, которая не решается кодом SergSuper-а, а не писать сочинения на тему "решение плохое". Очевидно процитировать Вы не можете поскольку код таки решает поставленную задачу полностью.

На этом прения о доводке кода SergSuper-а можно прекратить. Нечего кивать на зеркало. Доводите до ума свой код и не лезьте в чужой.

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


Еще раз озвучиваю свое мнение на сей счет:

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

Код SergSuper меня не устраивает не потому, что он теретически "плохой", а потому, что я хочу осуществлять практическое сравнение, что для кода SergSuper просто не возможно.

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

c127

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


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

А меня вот больше интересует сравнение эффективности обоих систем (РСУБД и ООСУБД) при выполнении идентичных (по логике работы) задач (выборка данных, ввод и модификация данных). Можно обсудить и эффективность работы разработчика - трудоемкость написания конкретного решения и т.п. Но саму справедливость проведения всего этого анализа на структурно идентичных базах и в составе конкретных приложений, написанных на одном и том же языке программирования я обсуждать не намерен (впрочем, готов проводить такой анализ для разных структур, разных языков, разных СУБД).
3 фев 05, 11:31    [1296623]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Lirik_SPB
Guest
Наверное я повторюсь, но скажу, что любую задачу можно свести
к реляционной модели. Другое дело эффективонсть разработки программы, ее
дальнейшей работы и внесения изменений. А по поводу структуры данных
я имел ввиду, что она неизвестна не только на в начале написания кода, а и
после запуска программы. Проще говоря, программа запущена, а часть
структуры данных поменялась. Насколько просто и безопасно можно
это сделать с реляционной базой данных? В объектной базе данных
это естественно.
3 фев 05, 11:32    [1296631]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
tygra
Member

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

Т.е., если перевести на русский язык, в достоинство ООБД вы относите отсутствие или тупость постановщиков задачи и разработчиков, которые перед началом разработки системы даже не знают, о чем в ней и чего в ней будет и как оно будет работать, вследствие чего они постоянно переделывают и меняют структуру данных и системы. Так???

Расстреливать надо таких спецов!!!

-- Tygra's --
3 фев 05, 12:26    [1296888]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
tygra
автор
А по поводу структуры данных
я имел ввиду, что она неизвестна не только на в начале написания кода, а и
после запуска программы. Проще говоря, программа запущена, а часть
структуры данных поменялась. Насколько просто и безопасно можно
это сделать с реляционной базой данных? В объектной базе данных
это естественно.

Т.е., если перевести на русский язык, в достоинство ООБД вы относите отсутствие или тупость постановщиков задачи и разработчиков, которые перед началом разработки системы даже не знают, о чем в ней и чего в ней будет и как оно будет работать, вследствие чего они постоянно переделывают и меняют структуру данных и системы. Так???

Расстреливать надо таких спецов!!!

-- Tygra's --


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

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

По своему опыту могу сказать, что если заменить фразу "несколько раз в день" на "несколько раз в квартал", то это уже может стать описанием вполне реальной ситуации именно в сфере учета и отчетности. И сталкиваясь с необходимостью постоянно переделывать систему под новые требования я лично зачастую сожалею, что для этой системы изначально в качестве основной платформы не была выбрана ООСУБД.
3 фев 05, 12:53    [1296991]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Lirik_SPB
Guest
tygra
автор
А по поводу структуры данных
я имел ввиду, что она неизвестна не только на в начале написания кода, а и
после запуска программы. Проще говоря, программа запущена, а часть
структуры данных поменялась. Насколько просто и безопасно можно
это сделать с реляционной базой данных? В объектной базе данных
это естественно.

Т.е., если перевести на русский язык, в достоинство ООБД вы относите отсутствие или тупость постановщиков задачи и разработчиков, которые перед началом разработки системы даже не знают, о чем в ней и чего в ней будет и как оно будет работать, вследствие чего они постоянно переделывают и меняют структуру данных и системы. Так???

Расстреливать надо таких спецов!!!


Нет, в достоинство ООБД я отношу возможность менять структуру данных если предметная область не может быть известна при разработке (а вы с таким не сталкивались?!!!).

Например, (в картографии) необходимо сохранить кучу маяков, причем два объекта могут называтся маяками и вообще иметь непересекающиеся структуры (не только те маяки, о которых думаете вы когда слышите это слово, но и, например, атомные, наводные и т.д.), но при запросе "покажите маяки" должны быть выведены оба объекта. А после того как все данные заведены, вдруг оказалось что конкретный маяк перестроили и у него появились новые аттрибуты. Само собой все программисты должны обладать даром предвидиния, но для тех отсталых разработчиков, которые им не обладают и придуман Versant...
3 фев 05, 12:59    [1297012]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Lirik_SPB
Например, (в картографии) необходимо сохранить кучу маяков, причем два объекта могут называтся маяками и вообще иметь непересекающиеся структуры (не только те маяки, о которых думаете вы когда слышите это слово, но и, например, атомные, наводные и т.д.), но при запросе "покажите маяки" должны быть выведены оба объекта. А после того как все данные заведены, вдруг оказалось что конкретный маяк перестроили и у него появились новые аттрибуты. Само собой все программисты должны обладать даром предвидиния, но для тех отсталых разработчиков, которые им не обладают и придуман Versant...

По-моему типичная задача для реляционных СУБД. Храним в разных таблицах заголовки объектов и их аттрибуты. Тип объекта храниться в загловке, по нему и выбираем. Или пример неудачный, или одно из двух...
3 фев 05, 13:26    [1297149]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
SergSuper
Lirik_SPB
Например, (в картографии) необходимо сохранить кучу маяков, причем два объекта могут называтся маяками и вообще иметь непересекающиеся структуры (не только те маяки, о которых думаете вы когда слышите это слово, но и, например, атомные, наводные и т.д.), но при запросе "покажите маяки" должны быть выведены оба объекта. А после того как все данные заведены, вдруг оказалось что конкретный маяк перестроили и у него появились новые аттрибуты. Само собой все программисты должны обладать даром предвидиния, но для тех отсталых разработчиков, которые им не обладают и придуман Versant...

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


Нет, пример на мой взгляд вполне удачный. И вот почему.
Я тоже сталкивался с подобной ситуацией. И сегодня подобная база построена так, как вы пишете, т.е. атрибуты и заголовки объектов разнесены.
Но вот сам состав атрибутов для разных объектов и типы объектов постоянно изменяются. Т.е. сегодня говорят ввести один атрибут, завтра вместо него появляется другой, послезавтра три атрибута удаляется, но появляется пять новых. Само по себе это не доставляет проблему - ну в чем собственно трудность - взяли да изменили состав атрибутов. Но оказывается, что нужно хранить всю информацию за предыдущее время. Т.е.. если у нас был определенный период, когда для объектов определенного типа существовал атрибут А, то вся информация, введенная в это время в базу, должна там оставаться. А вот это уже приводит к значительным издержкам, которые, разумеется, преодолимы и в рамках реляционной модели, но в случае использования ООСУБД это вообще не было бы проблемой. Механизмы версионности классов и объектов, встроенные в ООСУБД, позволили бы вообще не задумываться об изменении структуры базы данных в такой ситуации - для них указанные изменения являются естественным поведением хранимых объектов.
3 фев 05, 14:12    [1297392]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
2 Lirik_SPB, Alexey Rovdo
Мне вот что непонятно. Вы утверждаете, что в любой момент эксплуатации системы (!) может поменять количество и типы свойств объекта определенного класса (давайте все же не будем путать понятия).
Итак, есть класс и объект.
public class A {
long propertyA;
long propertyB;
long propertyC;
};

function funcA () {
A a_obj = new A();
};

Итак, каким образом вы в эксплуатируемой системе добавите классу А новое свойство, например, char[50] propertyD? Помимо этого, каким образом будет добавлено и проинициализировано это свойство для всех объектов класса А, сохраненных в БД?

Насчет маяков - есть разные способы хранения такого типа данных. Например, во всех нормальных СУБД (например, Oracle) есть поддержка XML, неструктурированные данные могут быть в XML, а описываться схемой. А дальше - дело техники.
3 фев 05, 14:18    [1297419]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
AAron
Member

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

Опять неудачный пример. Почитайте про хранилища данных, а именно SCD. Полезная в общем штука.
3 фев 05, 14:26    [1297449]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Lirik_SPB
Guest
AAron
2 Lirik_SPB, Alexey Rovdo
Мне вот что непонятно. Вы утверждаете, что в любой момент эксплуатации системы (!) может поменять количество и типы свойств объекта определенного класса (давайте все же не будем путать понятия).
Итак, есть класс и объект.
public class A {
long propertyA;
long propertyB;
long propertyC;
};

function funcA () {
A a_obj = new A();
};

Итак, каким образом вы в эксплуатируемой системе добавите классу А новое свойство, например, char[50] propertyD? Помимо этого, каким образом будет добавлено и проинициализировано это свойство для всех объектов класса А, сохраненных в БД?

для vds легко сохранится, как напишите так и проинициализируется.

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

А это заплатка для базы которая не сильно поможет в работе с такими данными. Кого - то она наверное устраивает, но рассматривать как серезное
решение нельзя.




Я начал с того что любую задачу можно свести к реляционной базе данных вопрос какой ценой. А по поводу примера можно усложнить. Объект маяк может воплощать в себе несколько сущностей (географический объект, береговой знак и т.п.). Естественно существуют другие сущности являющиеся географическими объектами, но не являющиеся маяками.
Для ООП программиста это означает наследование и интерфейсы которые поддерживаются в объектной базе данных. Для программиста реляционных баз данных это означет заплаты для каждой новой структуры данных. Разработка систем на реляционных базах данных подразумевает что один программист кодирует бизнес-логику, второй кодирует обращение к базе данных. Для объектных базах данных нужен только кодер бизнес-логики.
3 фев 05, 15:03    [1297635]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
для vds легко сохранится, как напишите так и проинициализируется.

Как? Приведите код, последовательность действий. Мне действительно непонятно, как это выполняется и я прошу объяснить. Если вы ратуете за объектные СУБД, то наверно такие вопросы приходилось решать?

В SQL все просто - alter table. Но в этом случае все просто, есть консоль. Вбивается команда и все. Как поступить в том же VDS или FO?
3 фев 05, 15:28    [1297773]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
BaZa
Guest
AAron
для vds легко сохранится, как напишите так и проинициализируется.

Как? Приведите код, последовательность действий. Мне действительно непонятно, как это выполняется и я прошу объяснить. Если вы ратуете за объектные СУБД, то наверно такие вопросы приходилось решать?

В SQL все просто - alter table. Но в этом случае все просто, есть консоль. Вбивается команда и все. Как поступить в том же VDS или FO?


Окей alter table, а что потом? как мне начать работать с этим полем, которое создастся? бизнес-логика не будет работать с полем, которого не знает...
3 фев 05, 15:52    [1297935]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Lirik_SPB
Guest
Для изменнения структуры достаточно написать

ClassHandle cls=session.locateClass("Report");
AttrString desc=session.newAttrString("description");
AttrBuilder attr=session.newAttrBuilder(desc);
cls.appendAttr(attr);

Консоль это конечно замечательно, для vds вы
делаете кнопку в вашем приложении "Добавить аттрибут"
с кодом приведенным выше если это нужно.
3 фев 05, 15:59    [1297970]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Мимо пробегал...
Guest
Не понЯл... что значить - "делаем кнопку"? а для другова атрибута - другую кнопку? А что тогда с первой делать?
3 фев 05, 16:06    [1298008]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Мимо пробегал....
Guest
автор
Окей alter table, а что потом? как мне начать работать с этим полем, которое создастся? бизнес-логика


Эта... а что, функционал, который с вновь созданным атрибутом объектов работать будет божим словом появиться?.... что, создали атрибут и система сам уже знает, шо в нем лежит и куде его девать?... это прям не система а распознователь мыслей....
3 фев 05, 16:10    [1298025]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
BaZa
Guest
?????? кнопка "добавить аттрибут" !!!!!!!

Это означает, что есть такая кнопка, нажимаешь ее, добавляешь аттрибут:

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

PS хотя если просто мимо пробежал, все равно этого не прочтет
3 фев 05, 16:12    [1298035]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
ЛП
Guest
2 BaZa
AAron
для vds легко сохранится, как напишите так и проинициализируется.

Как? Приведите код, последовательность действий. Мне действительно непонятно, как это выполняется и я прошу объяснить. Если вы ратуете за объектные СУБД, то наверно такие вопросы приходилось решать?

В SQL все просто - alter table. Но в этом случае все просто, есть консоль. Вбивается команда и все. Как поступить в том же VDS или FO?


Окей alter table, а что потом? как мне начать работать с этим полем, которое создастся? бизнес-логика не будет работать с полем, которого не знает...

А что, в случае ОО - бызнес-логика тут же начнет работать с новым, непонятно откуда появившимся св-вом у уже существующих объектов?


2 Lirik_SPB
Я начал с того что любую задачу можно свести к реляционной базе данных вопрос какой ценой. А по поводу примера можно усложнить. Объект маяк может воплощать в себе несколько сущностей (географический объект, береговой знак и т.п.). Естественно существуют другие сущности являющиеся географическими объектами, но не являющиеся маяками.
Для ООП программиста это означает наследование и интерфейсы которые поддерживаются в объектной базе данных.

Если не затруднит - можно пример?
Ведь тут именно этого все и ждут - реального примера, показывающего преимущества ОО-подхода в хранении и обработке данных
А вместо этого получают реляционную задачу, непонятно зачем натянутую на ОО, да еще впридачу с каким-то джавовским клиентом для ввода/вывода.
3 фев 05, 16:15    [1298049]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Мимо пробегал...
Guest
автор
Нажал-->выскакивает окно-->там спрашивают, про то, какой аттрибут добавить и пр.-->задаешь все данные-->получаешь что хотел :)


Во-во я про это и говорю.....задаешь данные.... то есть фактически атрибут описывашь..... чем это отличается от ALTER TABLE ?.......это всего лишь интерфейс...... что в вашем случае без кнопки никак, а в случае ALTER TABLE одна консоль на ВСЕ действия с БД.

Точно так же можно сделать кнопку,которая пошлет на сервер и "ALTER TABLE"..это будет всего лишь интерфейс....... а вот ты попробуй без кнопки своей БД управиться...только языковыми командами, как это делают РСУБД.....
3 фев 05, 16:22    [1298086]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Lirik_SPB
Guest
Еще раз повторяю что всее можно свести к таблицам. А насчет реального примера - все равно все скажут что это реляционная задача (что истинно). Никто не попытается попробовать это реализовать и наткнутся на все грабли которые ставит реляционная субд. Задача с географическими объектами требует работы с объектами, которые могут наследоваться и представлятся под разными сущностями. Такую возможность предоставляют языки программирования. Естественное желание сохранить объекты и классы как они есть предоставляют только объектные базы данных.
3 фев 05, 17:05    [1298291]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
Окей alter table, а что потом? как мне начать работать с этим полем, которое создастся? бизнес-логика не будет работать с полем, которого не знает...

Может бизнес логика и не будет работать, пока ее не реализуют, но во всяком случае, есть возможность добавить поле не меняя приложение. В случае FO нет даже возможности добавить (или ее не показывают). Есть только какая-то невнятная кнопка, которая добавляет атрибут. Какой атрибут? Куда?

2Lirik_SPB
Я же привел пример класса "А" и объекта класса "А". Покажите, как Вы в определение класса добавите атрибут в работающее приложение, как вы его проинициализуете для существующих объектов этого класса? А для наследников?

PS. Это не попытка "завалить" оппонента, просто неоднократно утверждалось, что в ООСУБД это делается просто и естественно. Покажите.
3 фев 05, 17:17    [1298336]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
AAron
для vds легко сохранится, как напишите так и проинициализируется.

Как? Приведите код, последовательность действий. Мне действительно непонятно, как это выполняется и я прошу объяснить. Если вы ратуете за объектные СУБД, то наверно такие вопросы приходилось решать?

В SQL все просто - alter table. Но в этом случае все просто, есть консоль. Вбивается команда и все. Как поступить в том же VDS или FO?


В FastObjects объекты и описания классов хранятся раздельно (в разных базах/файлах). Поэтому, при появлении, например, нового атрибута в описании класса нам нужно только внести новое описание в базу с описаниями классов (словарь) - база объектов остается неизменной. Это делается совершенно элементарно (можно и через консоль, но это даже менее удобно, чем с помощью специальных средств импорта описаний классов из байт-кода Java или C++-исходника).
Но что же при этом происходит с предыдущим описанием? Оно также остается в словаре, т.е. FastObjects отслеживает изменение описаний классов и сохраняет все последовательно замещающие друг друга версии. А что же происходит с самими хранимыми объектами? Когда доступ к базе осуществляется через новую версию приложения, которая использует новое описание класса, то FastObjects преобразует старые версии объектов в новую форму на лету по мере доступа к ним (или все сразу, если нам это нужно).
Но что, если мы не добавляли, а удаляли поле в атрибутах класса, то пропадает ли информация из базы ? Не обязательно. Если мы специальной командой не зададим преобразование всех объектов в новую версию, то FastObjects будет хранить старые версии объекта в том виде, который соответствует старым описаниям классов, а при доступе к этим объектам проводить преобразование "на лету" в новое описание (фактически - отбрасывать атрибуты, отсутствующие в новом описании класса). Если после этого мы снова внесем в класс удаленные атрибуты и обратимся к нашим старым объектам, то снова сможем получить доступ к сохраненным ранее данным.
В аналогичной манере можно обрабатывать изменения в иерархии наследования классов.

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

Обе системы (VDS и FastObjects) позволяют проводить трансформацию структуры хранимых объектов в самом приложении, т.е. трансформация структуры может входит в логику самого приложения, а не являться частью процесса разработки (особенно это касается VDS).
3 фев 05, 17:27    [1298368]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Порядок добавления нового атрибута в приложение (и БД) для FastObjects.
На примере приложения, представленного выше в этом топике. Например, мы решили изменить описание класса Person и добавить в него поле address типа String.


1) Изменяем файл Person.java

Ранее:
package avia.model;

public class Person {
  public String last_name;
  public String first_name;
}

Теперь:
package avia.model;

public class Person {
  public String last_name;
  public String first_name;
  public String address;
}

2) Делаем байт-код (в простейшем случае используем команду javac Person.java). На выходе появляется новая версия файла Person.class.

3) Выполняем команду
ptj -enhance -update -schema avia_dict

Эта команда вносит изменения в словарь базы данных.

Все! И база данных и приложение готовы для работы с новым атрибутом (в консоли разработчика мы уже можем вводить и редактировать данные с учетом нового атрибута). Разумеется в приложении нам прийдется также дописывать логику, которая собственно будет использовать/заполнять/выбирать значения этого атрибута, но к структуре хранимых данных это уже отношения не имеет.
3 фев 05, 17:45    [1298440]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 [8] 9 10 11 12 .. 34   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить