Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
 Re: Анализ популярности СУБД  [new]
glebofff
Member

Откуда: Оренбург
Сообщений: 72
Что ж вы, господа, испортили тут всё своими ООБД? :-)

Мне показалось, что тему начал вымышленный персонаж, виртуал. И простебал он вас всех некисло. В общем, посмеялся я, спасибо Инкину.
22 июл 05, 10:47    [1726725]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
BaZa
Guest
Victor Metelitsa

Да, я в курсе, что "некоторые люди" типа Страуструпа определение извратили.


Я плакал...
22 июл 05, 18:31    [1729389]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
vadiminfo
Member

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

Дейт рассматривал именно GemStone/S.

Вы уверены, что Дейт рассматривал GemStone именно в "Введение в базы данных"?
Я там даже упоминания не нашел.

Victor Metelitsa

ООСУБД или нет, зависит от определения. Если впомнить, кто придумал определение объектной ориентированности и в чём оно заключалось, C++, Java, Delphi и их духовные родственники идут лесом. ;-).

Зачем же мы будем придаваться всякого рода воспинаниям? Какое значение кроме исторического, имеет - кто придумал определение ОО, и в чем оно в те далекие годы заключалось. Када это было.
Все-таки на этом форуме больше занимаются современным положением дел.


Victor Metelitsa

Да, я в курсе, что "некоторые люди" типа Страуструпа определение извратили.

А я не в курсе. Где, кем и при каких обстоятельствах факт извращения зафиксирован?

Victor Metelitsa

Как-то я переформулировал определение Кея, заменив "объектно-ориентированный" на "серверно-ориентированный" (заменил "объект" на "сервер" и "сообщение" на "запрос" => 1. есть сервера и ничего кроме серверов; 2. сервера общаются между собой запросами).


Зачем Вы так поступили? Можно было бы как-то помягче. Даже осужденный Вами Страуструп так делать не стал.

Victor Metelitsa

Cовершенно не помню этого момента.

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

Victor Metelitsa

В GemStone/S я могу всё сделать в command line, во время работы сервера. Как можно говорить о проблемах с adhoc?

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

Victor Metelitsa

Выборка по условию:
table select: [:each |each name = 'Smith']
чем не декларативная запись?
Или второй пример:
(employeeCollection select: [:each |each lastName='Иванов']) collect: [:eachEmployee | eachEmployee department manager].
Де-факто это всё-таки вызовы методов. Но сама запись декларативна - "дайте мне то-то", а не "сделайте так-то".


Имеется в виду декларативный язык БД. А не просто вызов процедуры, к примеру. И типа это и есть декларативность. Юзер вообще кнопки нажимает - т.е. тоже не знает как.
Некоторыми ООСУБД поддерживается OQL. Однако, там оптимизатор нарушает принцип инкапсуляции. Кроме того, все равно главным остается навигационный способ извлечения данных - а он не декларативный.

Victor Metelitsa

GLORP и TOPLink я приплёл из-за оптимизаций запросов. Они транслируют похожие запросы прямо на SQL, "дизассемблируя" условия в квадратных скобках, предоставляя разбираться с оптимизациями серверу БД. Очевидно, нично не мешает транслировать Smalltalk на Smalltalk (GemStone/S - это большой конструктор).

Что за БД, которая у Вас там оптимизирует SQL запросы? Она что реляционная что-ли, чтобы SQL выполнять? Что значит большой конструктор? А кто конструктор маленький? У Вас там маппинг объектов на РСУБД чтоли?
22 июл 05, 20:13    [1729622]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Андрей Леонидович
Guest
Вот я и предполагаю, Victor Metelitsa, что ХУЖЕ Вас понимаю ООСУБД. И задаю совершенно безобидный конкретный вопрос:

Как, например, в "вашей" ООСУБД представляются связи между сущностями многие-ко-многим, когда у них (связей) есть свои свойства (характеристики)? Как в РСУБД ?

И не получаю (вполне ожидаемо) на него конкретного ответа.

Пример из соседней дискуссии (НРМ):

Товар <--- Хранится на/Хранит ---> Склад

Эта связь многие-ко-многим имеет характеристики, например, количество (товара на складе).

И уж заодно еще более простой вопрос: семантика связей хранится на уровне метаданных в ООСУБД GemStone ?
23 июл 05, 22:25    [1730523]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Андрей Леонидович
Guest
Да, vadiminfo, Дейт рассматривает именно GemStone. См. 25.4 Всеобъемлющий пример.
23 июл 05, 22:28    [1730526]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
Андрей Леонидович

Да, vadiminfo, Дейт рассматривает именно GemStone. См. 25.4 Всеобъемлющий пример.

Здорово. У Конноли рассматривается пример ObjectStore и говорится, что в частности у этих двух производителей разные стратегии разработки СУБД.
GemStone - Введение средств работы в существующий ОО язык программирования.
ObjectStore, Версант, Онтос - Предоставление расширяемых ОО библиотек СУБД. (тоже используется существующий ОО язык программирования)

Возможно, теперь можно будет на примерах лучше понять разницу этих стратегий.
Меня давно интересовал этот вопрос.
24 июл 05, 01:06    [1730577]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
Андрей Леонидович
Вот я и предполагаю, Victor Metelitsa, что ХУЖЕ Вас понимаю ООСУБД. И задаю совершенно безобидный конкретный вопрос:

Как, например, в "вашей" ООСУБД представляются связи между сущностями многие-ко-многим, когда у них (связей) есть свои свойства (характеристики)? Как в РСУБД ?

И не получаю (вполне ожидаемо) на него конкретного ответа.


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


Пример из соседней дискуссии (НРМ):

Товар <--- Хранится на/Хранит ---> Склад

Эта связь многие-ко-многим имеет характеристики, например, количество (товара на складе).


То, что вы хотите, вполне очевидно раскладывается на связи 1:N (Товар <--- Хранится на/Хранит) и N:1 (Хранится на/Хранит ---> Склад) между экземплярами классов "Товар", "Хранится на/Хранит", "Склад"


И уж заодно еще более простой вопрос: семантика связей хранится на уровне метаданных в ООСУБД GemStone?


Там нет понятия "связей". Есть объекты, они знают о других объектах - вот и всё.
25 июл 05, 20:40    [1734136]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
vadiminfo
...

Имеется Кэево определение (1. есть только объекты 2. объекты общаются между собой посредством сообщений). Именно он придумал термин и его определение. Можете спросить его лично. Таково и старое, и современное положение дел. Отсюда автоматически вытекает, что знаменитая триада "наследование-инкапсуляция-полиморфизм" является извращением. Я называю его страуструповым, не интересуясь, он ли придумал это - как минимум, он это поддержал.

"Серверы" и "запросы" я подставил, чтобы его определение было более понятно (объект в такой системе очень напоминает вебсервер - ему можно послать любой запрос/сообщение, некоторые он обрабатывает, на некоторые даёт "ошибки 404").

Чтобы рассуждать и делать выводы, мне мандаты, сертификаты и государственные лицензии не требуются.

Главу я читал полностью, как вы могли видеть по приведенной мной ссылке на письмо в ньюсгруппу, но это было давно и издание было 6-е. Мне не так просто прямо сейчас найти 8-е.

Сама запись запросов в GemStone/S декларативна. Семантику _можно_ сделать декларативной (как уже сделано в GLORP и TOPLink - O/R frameworks для Smalltalks). Я примерно представляю, как это делать, но за реализацию не возьмусь из-за лицензионной политики фирмы Gemstone (или как она сейчас называется). Не забывайте, что декларативная запись SQL тоже в конечном счете ведет к вызову внутренних функций/процедур, циклам while и пр., которые сокрыты от SQL-программиста.
25 июл 05, 20:59    [1734147]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
U-gene
Фигня! Вы не пробовали перед тем, как поставить, системную дату лет на 10 вперед перемотать...

Они "хитрые" (но мне кажется, что они перехитрили сами себя). Лицензия именная, это зашифрованный текстовый файл с явно заданной датой завершения в нем.
25 июл 05, 21:01    [1734149]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Андрей Леонидович
Guest
Мне "надо было немного (или много) больше подумать над "головокружительными вариантами"" ???
Ну да ладно, ответ Вы, все-таки, дали. Не поддерживает GemStone ни связи многие-ко-многим (то есть поддерживает как и "Р"СУБД - нужно создать третий класс), ни семантику связей...
Особенно "элегантно":

1) "вполне очевидно раскладывается на связи"
в сочетании с
2) "там нет понятия "связей"".
25 июл 05, 23:42    [1734383]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
Victor Metelitsa
Имеется Кэево определение (1. есть только объекты 2. объекты общаются между собой посредством сообщений). Именно он придумал термин и его определение. Можете спросить его лично. Таково и старое, и современное положение дел. Отсюда автоматически вытекает, что знаменитая триада "наследование-инкапсуляция-полиморфизм" является извращением. Я называю его страуструповым, не интересуясь, он ли придумал это - как минимум, он это поддержал.


ИМХО эта фишка с сообщениями позволяет сделать в определенном смысле совсем нетипизированную систему (в том смысле, что посылая сообщение объекту мы можем вообще не знать, что это за объект), а Страуструп пытался сделать таки типизированный язык.
26 июл 05, 01:47    [1734461]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
vadiminfo
Member

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

Имеется Кэево определение (1. есть только объекты 2. объекты общаются между собой посредством сообщений). Именно он придумал термин и его определение. Можете спросить его лично. Таково и старое, и современное положение дел. Отсюда автоматически вытекает, что знаменитая триада "наследование-инкапсуляция-полиморфизм" является извращением. Я называю его страуструповым, не интересуясь, он ли придумал это - как минимум, он это поддержал.

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

Victor Metelitsa

"Серверы" и "запросы" я подставил, чтобы его определение было более понятно (объект в такой системе очень напоминает вебсервер - ему можно послать любой запрос/сообщение, некоторые он обрабатывает, на некоторые даёт "ошибки 404").


Это похоже на CОM. Но и в принципе терминами "обмен сообщениями" используют в ООП подходах. Это ничего не заменяет в тех "извращениях". Они главнее.


Victor Metelitsa

Чтобы рассуждать и делать выводы, мне мандаты, сертификаты и государственные лицензии не требуются.

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

Victor Metelitsa

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

Ну Вы еще вспомните, что все это выполняется в машинных командах. Потому нет разницы между С++ и ассемблером?
Имеет значение именно декларативность языка. SQL - язык БД.
26 июл 05, 10:20    [1734892]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
Андрей Леонидович
Мне "надо было немного (или много) больше подумать над "головокружительными вариантами"" ???
Ну да ладно, ответ Вы, все-таки, дали. Не поддерживает GemStone ни связи многие-ко-многим (то есть поддерживает как и "Р"СУБД - нужно создать третий класс), ни семантику связей...
Особенно "элегантно":

1) "вполне очевидно раскладывается на связи"
в сочетании с
2) "там нет понятия "связей"".


Те связи, о которых шла речь, у нас в головах. В самом GemStone/S такого понятия нет. Чем вас не устраивает разбиение, о котором я сказал?
26 июл 05, 22:34    [1738060]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
U-gene

ИМХО эта фишка с сообщениями позволяет сделать в определенном смысле совсем нетипизированную систему (в том смысле, что посылая сообщение объекту мы можем вообще не знать, что это за объект).


Да, Smalltalk и Self именно такие. Куда угодно может быть передано что угодно, послано какое угодно сообщение. А ещё у Self'а нет наследования.
26 июл 05, 22:36    [1738061]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
vadiminfo
То что кто-то придумал что-то, то честь ему и хвала. И, наверное, он займет место в истории.

Разумеется, он занял место в истории, разве что вы её, по-видимому, не знаете. Возможно, для вас даже будет сюрпризом, что ОО, оконный интерфейс, мышь и сеть Ethernet появились в одном месте.

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

Продолжение работ Кэя - это Squeak (http://www.squeak.org) и Open Croquet (http://opencroquet.org/). Он (вместе с группой товарищей) активно работает над ними.

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

Если объекты обмениваются сообщениями, а ничего кроме нет, то инкапсуляция и полиморфизм обеспечены автоматически. Наследование же не обязательно - существуют другие приемы.

Victor Metelitsa

"Серверы" и "запросы" я подставил, чтобы его определение было более понятно (объект в такой системе очень напоминает вебсервер - ему можно послать любой запрос/сообщение, некоторые он обрабатывает, на некоторые даёт "ошибки 404").

Это похоже на CОM. Но и в принципе терминами "обмен сообщениями" используют в ООП подходах. Это ничего не заменяет в тех "извращениях". Они главнее.

Согласен, что и на COM это похоже. Вообразите себе систему, где, кроме COM-объектов, ничего нет. Даже "числа" - COM-объекты.

Т.е., например, 1, 2 и 3 - это некие COM-объекты, запись 1 + 2 означает посылку сообщения с селектором + и аргументом-ссылкой на 2 объекту 1, и результатом сообщения будет ссылка на 3.

Victor Metelitsa

Чтобы рассуждать и делать выводы, мне мандаты, сертификаты и государственные лицензии не требуются.

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

В чём вы видите пользу "быть скромным"?

Victor Metelitsa

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

Ну Вы еще вспомните, что все это выполняется в машинных командах. Потому нет разницы между С++ и ассемблером?
Имеет значение именно декларативность языка. SQL - язык БД.


В декларативном вы говорите "что", а в процедурном "как". Но Smalltalk вы можете трактовать и так, и сяк.
26 июл 05, 22:59    [1738079]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
В GemStone/S нет связей в том же смысле, в каком нет складов, аэропортов и пр. Эти вещи моделируются объектами соответствующих классов. Если "связь" "сложная", имеет атрибуты, просто напрашивается сопоставить ей объект соответствующего класса.
26 июл 05, 23:29    [1738116]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
В Self'е, кстати, не то что наследования - там и классов нет. Объекты размножаются копированием. Очевидно, каждый объект в подобной системе может (но не обязан) иметь уникальный набор методов.
26 июл 05, 23:31    [1738117]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
vadiminfo
Member

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

Разумеется, он занял место в истории, разве что вы её, по-видимому, не знаете. Возможно, для вас даже будет сюрпризом, что ОО, оконный интерфейс, мышь и сеть Ethernet появились в одном месте.

Если бы я все знал, то, наверное, мне не за чем было бы ходить на этот форум.

Victor Metelitsa

Продолжение работ Кэя - это Squeak (http://www.squeak.org) и Open Croquet (http://opencroquet.org/). Он (вместе с группой товарищей) активно работает над ними.

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

Victor Metelitsa

Если объекты обмениваются сообщениями, а ничего кроме нет, то инкапсуляция и полиморфизм обеспечены автоматически. Наследование же не обязательно - существуют другие приемы.

Инкапсуляция то не связана явно с наследованием. А вот такой тип полиморфизма как полиморфизм включения связан с наследованием.
Впрочем, наследование обосновано не тока этим, но и тем, что обобщение и специализация имеют значение в моделировании.

Victor Metelitsa

Согласен, что и на COM это похоже. Вообразите себе систему, где, кроме COM-объектов, ничего нет. Даже "числа" - COM-объекты.

Т.е., например, 1, 2 и 3 - это некие COM-объекты, запись 1 + 2 означает посылку сообщения с селектором + и аргументом-ссылкой на 2 объекту 1, и результатом сообщения будет ссылка на 3.

И зачем такая система нужна? Все хорошо на своем месте. Чем 1, 2 и 3 - это некие COM-объекты, лучше, чем 1, 2 и 3 - это некие значения типа int?

Victor Metelitsa

В чём вы видите пользу "быть скромным"?

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

Victor Metelitsa

В декларативном вы говорите "что", а в процедурном "как". Но Smalltalk вы можете трактовать и так, и сяк.

Все-таки обыкновенно трактуют так или так. И раньше я думал, что Smalltalk т.е. не декларативный.
27 июл 05, 00:15    [1738166]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Андрей Леонидович
Guest
Что значит "просто напрашивается" ???
А что можно явно представить связь многие-ко-многим в GemStone ???
Не зацикливайтесь, Victor Metelitsa. Очевидно же, что:

1) в GemStone не поддерживаются связи многие-ко-многим (приходится, как и в "Р"СУБД, создавать еще один класс);
2) в GemStone не поддерживается семантика связей, просто потому, как Вы пояснили, что там "вообще нет связей" (на концептуальном уровне они есть - ER-модель, а на логическом - нет).
27 июл 05, 00:55    [1738189]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Андрей Леонидович
Guest
vadiminfo в своем репертуаре: "Выкиньте это и объекты канут в лету".
Опять забыл элементарную теорию баз данных. "Объекты" - это не столько инкапсуляция, полиморфизм и наследование, сколько - идентификация, навигация и семантика. Выкиньте объекты, и базы данных канут в лету - так будет вернее...
27 июл 05, 01:00    [1738193]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
vadiminfo

Если бы я все знал, то, наверное, мне не за чем было бы ходить на этот форум.

Форум - сомнительное место для приобретения знаний. Он полезен, чтобы понять, что что-то не знаешь, но за _знаниями_ лучше обращаться к руководствам, справочникам, учебникам, ...

Victor Metelitsa

Продолжение работ Кэя - это Squeak (http://www.squeak.org) и Open Croquet (http://opencroquet.org/). Он (вместе с группой товарищей) активно работает над ними.

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

Классная наработка - собачья пятая нога. Бывают, знаете ли, вещи, которые в лучшем случае ни к чему.

Victor Metelitsa

Если объекты обмениваются сообщениями, а ничего кроме нет, то инкапсуляция и полиморфизм обеспечены автоматически. Наследование же не обязательно - существуют другие приемы.

Инкапсуляция то не связана явно с наследованием. А вот такой тип полиморфизма как полиморфизм включения связан с наследованием.
Впрочем, наследование обосновано не тока этим, но и тем, что обобщение и специализация имеют значение в моделировании.

Есть другой подход - собирать всё из деталек. Агрегация. Человек - сборище клеток, которые состоят из молекул, которые состоят из атомов. Возьмем несколько человек, перетасуем их атомы и получим... жирафа.

Victor Metelitsa

Согласен, что и на COM это похоже. Вообразите себе систему, где, кроме COM-объектов, ничего нет. Даже "числа" - COM-объекты.

Т.е., например, 1, 2 и 3 - это некие COM-объекты, запись 1 + 2 означает посылку сообщения с селектором + и аргументом-ссылкой на 2 объекту 1, и результатом сообщения будет ссылка на 3.

И зачем такая система нужна? Все хорошо на своем месте. Чем 1, 2 и 3 - это некие COM-объекты, лучше, чем 1, 2 и 3 - это некие значения типа int?

Смысл в обобщении. Для написания универсального кода, которому всё равно, с чем он имеет дело. Некоему объекту посылается некое сообщение, он его как-то обрабатывает. Простейший пример:

ооо рисоватьСебяНаЭкране: экран.

Что есть ооо? Число, строка, иконка, экземпляр класса Авиакомпания, коллекция? Какая разница.

Ещё одна интересная черта ST - количество и код методов, переменные экземпляра, иерархия классов может меняться прямо во время выполнения программы.

Victor Metelitsa

В чём вы видите пользу "быть скромным"?

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

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

Victor Metelitsa

В декларативном вы говорите "что", а в процедурном "как". Но Smalltalk вы можете трактовать и так, и сяк.

Все-таки обыкновенно трактуют так или так. И раньше я думал, что Smalltalk т.е. не декларативный.


А тут имеет место двойственный случай. И выполнение одного и того же кода (!) может пойти по разному пути - исключительно цепочкой вызовов (характерно для процедурного подхода) или оптимизер с составлением и выполнением плана (как SQL).
27 июл 05, 01:42    [1738227]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
Андрей Леонидович
Что значит "просто напрашивается" ???
А что можно явно представить связь многие-ко-многим в GemStone ???
Не зацикливайтесь, Victor Metelitsa. Очевидно же, что:

1) в GemStone не поддерживаются связи многие-ко-многим (приходится, как и в "Р"СУБД, создавать еще один класс);
2) в GemStone не поддерживается семантика связей, просто потому, как Вы пояснили, что там "вообще нет связей" (на концептуальном уровне они есть - ER-модель, а на логическом - нет).


Я вас с трудом понимаю - если понимаю вообще.

(1)Что касается просто N:M (классы X и Y), то объект класса X может содержать/ссылаться на коллекцию Y, а объект класса Y - сдержать/ссылаться на коллекцию класса X, и, как понимаю, это и есть одна из реализаций связи многие-ко-многим между классом X и классом Y (в явном виде в GemStone/S не прописывается нигде).
(2)Если же (конкретные) связи имеют атрибуты, то связь (между объектами x и y) удобно представить как объект z (который знает про x и y, а x и y знают про z). (Слово "приходится" несёт негативный оттенок - вы знаете лучший вариант?)

Однако вы вольны держать в коллекциях объекты классов X и Y одновременно, и вот такую связь я вообще не знаю, как назвать. В GemStone/S можно задать constraint "эта коллекция содержит только экземпляры X", только это против духа Smalltalk'а, и потому я такие вещи не рассматриваю.
27 июл 05, 02:13    [1738252]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
Андрей Леонидович
Guest
А я Вас очень хорошо понимаю, Victor Metelitsa. И поэтому спрашиваю: что значит "удобно" ? Вы знаете "лучший вариант" в GemStone ?

Я не "знаю", а просто использую много лет явное представление связей:
1) вне описания самих объектов (по Вашему - классов);
и
2) без создания дополнительного объекта (по Вашему - класса).

И чего Вы здесь не понимаете, я, действительно, не понимаю...
28 июл 05, 23:06    [1745808]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
ModelR
Member

Откуда: Нижний Новгород
Сообщений: 1798
Андрей Леонидович

Я не "знаю", а просто использую много лет явное представление связей:
1) вне описания самих объектов (по Вашему - классов);
и
2) без создания дополнительного объекта (по Вашему - класса).
а также вне самих объектов, каких-либо переменных и языков программирования вообще. :). Сорри, очень напрашивалось:)
29 июл 05, 11:47    [1746940]     Ответить | Цитировать Сообщить модератору
 Re: Анализ популярности СУБД  [new]
ModelR
Member

Откуда: Нижний Новгород
Сообщений: 1798
Victor Metelitsa
ModelR
[quot Victor Metelitsa]
Про ненужность джойнов плз подробнее. Пример

Таблиц нет, есть коллекции объектов (тоже объекты). Объекты предметной области "знают" о других. Чтобы узнать подразделение сотрудника, на SQL вы напишете
SELECT D.* 
FROM Department D, Employee E
WHERE D.department_id = E.department_id
  AND E.employee_id = ?
На Smalltalk'е это
  employee department

Вообще то я просил получить множество кортежей из двух других множеств:
table a(n,x);
table b(m,y);
select a.x, b.y from a,b where a.n = 3*b.m or a.n<b.m
Что значит такое b знает про a позволяет
[b]b [/b] [b]a[/b] 
получить нужный результат?
29 июл 05, 16:04    [1748542]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить