|
|
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
Добрый день. Хочу попросить местных завсегдатаев высказать мнение о расширениях SQL описанных по этой ссылке . Для того, что бы заинтересовать, добавлю, что вариант статьи на английском опубликован на ODBMS.ORG Единственный вопрос - стали бы Вы пользоваться этими расширениями? PS Надеюсь, что здесь это к месту. PPS Так и не понял, где эту статью можно выложить в рунете. Citforum загнулся, аналогов не нашел. Если кому интересно - пользуйтесь, размещайте, только про (с) не забывайте. PPPS Основная теория (всего то десяток страниц) здесь . английский вариант идет туда же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2011, 19:19 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
Авторы подобных изысканий всегда неявно подразумевают, что всё и вся нужно моделировать объектами (в парадигме ООП). ИМХО это не так. Посему, от лукавого это всё, от лукавого... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 09:36 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
Прежде чем выдумывать, что же неявно подразумевают авторы, можно все же прочитать, что они подразумевают явно. Тогда , может быть, ИМХО можно будет оставить при себе. Не сомневаюсь в его правильности, кстати. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 10:34 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
U-gene, вы не поверите, но я таки прежде прочитал :) просили же высказать мнение... я высказал. не нужно никакое OO расширение SQL-ю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 11:05 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
Немного сомневаюсь. Просто эта мысль, что все нужно описывать объектами, взялась непонятно откуда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 11:18 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
ДедушкаU-gene, вы не поверите, но я таки прежде прочитал :) просили же высказать мнение... я высказал. не нужно никакое OO расширение SQL-ю. Немножко не соглашусь - иногда бывает необходимо наследование (когда в одно поле могут быть вставлены ссылки на разные сущности), но это не часто и подходить к этому надо осторожно и с умом ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 12:45 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
Дедушкане нужно никакое OO расширение SQL-ю.+500 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 14:44 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
spДедушкаU-gene, вы не поверите, но я таки прежде прочитал :) просили же высказать мнение... я высказал. не нужно никакое OO расширение SQL-ю. Немножко не соглашусь - иногда бывает необходимо наследование (когда в одно поле могут быть вставлены ссылки на разные сущности), но это не часто и подходить к этому надо осторожно и с умом ) Я тоже не соглашусь. Но не с тем что он не нужен, а с тем, что просто мнений не достаточно для решения вопроса о егойной ненужности. Вдруг окажется нужным, а мы счас отметем? Что тогда? Опасаюсь, что нужно, есче кое-что менее безапеляционное для таких выводов. Вон Дейт, думет что сам SQL не нужен был, а мы его юзаем. Поди плохо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 15:24 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
Прежде чем предлагать реализацию ОО расширений неплохо было бы 1 сформулировать проблему 2 описать методы решения этой проблемы существующие до вас 3 описать чем ваш метод лучше, чем решения конкурентов 4 и вот только после этого заинтересованного, клюнувшего читателя подсекать тонкостями реализации. Объекты к субд пытаются прикрутить как бы не сразу после их появления, и если процесс еще не пошел то ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 18:31 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
vadiminfoВон Дейт, думет что сам SQL не нужен был, а мы его юзаем. Поди плохо? а можно пруф для ликбеза, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 18:54 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
U-geneЕдинственный вопрос - стали бы Вы пользоваться этими расширениями? Не ясно, как пользоваться. Возьмем к примеру этот пример из описалова: GOODS.Turnover.Contractor.Bank Скока записей он вернет? Для каждой GOODS одну запись в результате? Или по числу банков? Другой вопрос. А если я хочу задом наперед: имея банки, получить goods: BANKS <?> GOODS Че посередке должно стоять? Или так низя делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2011, 01:12 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
вопросВозьмем к примеру этот пример из описалова: GOODS.Turnover.Contractor.Bank Скока записей он вернет? Для каждой GOODS одну запись в результате? Или по числу банков? это пример пути, а не запроса. если это заголовок запроса (то есть там дальше есть атрибуты, например Name и BIC), то он вернет данные о банках, на которые есть ссылки, согласно пути указанному в заголовке. вопросДругой вопрос. А если я хочу задом наперед: имея банки, получить goods: BANKS <?> GOODS Че посередке должно стоять? Или так низя делать? Можно например конструкция GOODS [ .Turnover.Contractor.Bank.Name LIKE "Citi" ] .Art вернет артикулы товаровЮ проданных контракторам у которых банк удовлетворяет условию. В скобках - критерий отбора объектов, где используются абсолютно те же пути. Критерии можно вкладывать как угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2011, 11:32 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
U-geneДобрый день. Хочу попросить местных завсегдатаев высказать мнение о расширениях SQL описанных по этой ссылке . Для того, что бы заинтересовать, добавлю, что вариант статьи на английском опубликован на ODBMS.ORG Единственный вопрос - стали бы Вы пользоваться этими расширениями? PS Надеюсь, что здесь это к месту. PPS Так и не понял, где эту статью можно выложить в рунете. Citforum загнулся, аналогов не нашел. Если кому интересно - пользуйтесь, размещайте, только про (с) не забывайте. PPPS Основная теория (всего то десяток страниц) здесь . английский вариант идет туда же. Выглядит эклектично. Скорее всего из-за того что не предложена объектная модель данных как таковая. Впечатление что к SQL достаточно искусственно прикручиваются элементы ООП и почившего в бозе OQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2011, 20:18 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
Эклектично :) Я когда-то давным-давно использовал plain С и не как не мог понять, что же все носятся с С++. "Не все ли равно?" думал я что класс, что структура - те же яйца, только в профиль". Оказалось - не те. В общем, НВы стали смотреть на языковые конструкции, я предлагаю посмотреть на то. что этими конструкциями реализуется. 0) ничего не исчезает - по-прежнему можно использовать обычные для SQL табличные структутры. 1) Появляются классы. При этом мы исходим из идеи, что объект по своей сложности сравним с реляционной БД. Состояние объекта описывается множеством значений отношений (точнее - не более сложных, чем значения отношений). Если раньше мы хранили данные о , например, накладной в двух таблицах, то теперь можно описать класс "накладная", и вместо того, что бы делать JOIN, использовать точечную нотацию. (На самом деле этот пункт - "состояние объекта есть множество значений отношений" - позволяет применить к таким сложным объектам трансформации, основанные исключительно на РМД. Например, запросы к данным описанным в терминах сложных структур - это "замаскированные" JOINы, выборки, проекции и тд, (то есть традиционные реляционные операции ) выполняемые согласованно с операцией переименования атрибутов.) 2) Появляется возможность использования ссылок между классами. Опять таки, вместо того, что бы JOINить можно использовать ссылочные конструкции. При этом, несмотря на кажущуюся направленность ссылок, запросы к данным работают в обеих "направлениях". (тут выше про это написано). 3) Спецификация класса отделена от реализации. Каждый компонент реализуются отдельно. Компонент может быть реализован как хранимый. Для компонентов реализовано позднее связывание. Когда мы делаем запрос к классу, у которого есть наследники, то система связывает все реализации.По сути речь идет о динамическом UNION, который автоматом может подтягивать данные из разных источников. В обычном SQL такого не достичь... точнее, каждый раз, когда появляется новая разновидность данных, которая должна попасть в какой-то результирующий отчет, мы этот отчет должны обязательно править руками, явно добавляя туда источник новой разновидности. 4) Собственно запросы к классам. Запросы к классам основаны на О-видах.Я уже сказал, что они - "замаскированные" реляционные операции. Результата - всегда отношений. О-виды могут быть произвольными, самое главное, что бы были употреблены "правильные" последовательности имен, заданные в описании классов. "Правильные" значит - те же имена в той же последовательности. Это единственно требование - система посчитает любой такой вид. В запросам можно комбинировать классы и таблицы, классы можно использовать как домены таблиц. 5) Методы инкапсулированы в классе и полиморфны. Допускается групповой вызов методов. Вы говорите, что нет модели. Вам шашечки или ехать? Я сознательно не употребляю термин "модель" применительно к объектам. Мне это не нравится. Но смотрите. Структура объекта определяется правилом "множество значений, не более сложных, чем отношения". Я могу описывать сложные объекты, использовать ссылки, у меня реализованы инкапсуляция, тотальный(и компоненты и метода) полиморфизм, даже множественное наследование. Мне не нужны экстенты, мне не нужны итераторы, я обхожусь без обязательного описания обратных ссылок. В общем, модель (не люблю это слово, когда про объекты) есть. Просто она такая простая, что вы несколько раз мимо прошли и не заметили. Конечно, с ODMG3.0 где модель на ...цати листах описывается, она не сравниться. Там, только коллекций 8 штук , если не ошибаюсь. Моя модель маленькая, но достаточая, В ODMG модель сложная, а у меня она очень простая - при большей мощности. Про OQL. (кстати - он вроде не загнулся ) Но, опять таки, давайте начнем не с конструкций, а с идеи. OQL создавался для программистами для программистов. Я не буду говорить, хорошо это или плохо, но полноценно работать с ODMG объектами можно только из языка програмирования. Кстати, насколько я понимаю, OQL не был ни разу полноценно реализован. Только какие то кусочки. Это был(есть?) такой красивый прожект. Что касается схожести. Ну да, раз есть иерархические конструкции, то грех не воспользоваться точечной нотацией. Но в остальном.... ODMG требует явного определения обратных ссылок. ODMG требует эсктенты, ODMG содержит очень много близких конструкций, что делает модель излишне сложной. Про полиморфные виды я вообще нигде не слышал. Запросы ODMG могут выполняться только в языковой среде. Результат запросов ODMG неоднороден по структуре (могут вернуть ссылку, структура, литерал) - в общем они предназначены для дальнейшей обработки в языковой среде. А здесь запросы выполняются сервером as is (как любой SQL запрос), возвращают данные о состоянии объектов, существующих на стороне сервера. Результат - всегда отношение(таблица). То есть языковые конструкции местами может и схожи, но концепция и идея в целом вообще другая. Так что эклетичность здесь сугубо поверхностная. А схожесть обусловлена скорее конвергенцией (см про иерархии и точечную нотацию) и желанием сделать понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2011, 15:57 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
Перекликается с моей мыслью http://mynaf.narod.ru/OQL.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 10:59 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
NafПерекликается с моей мыслью http://mynaf.narod.ru/OQL.html Это должно вызывать какую-то дополнительную обеспокоенность по поводу данной мыстли? Или что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 12:38 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
Дедушкаvadiminfo, всё-таки, если не затруднит 11548401 Плиз, сформулируйте более однозначно вопрос, поскоку, скорее всего, не догал его содержания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 13:17 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
vadiminfoДедушкаvadiminfo, всё-таки, если не затруднит 11548401 Плиз, сформулируйте более однозначно вопрос, поскоку, скорее всего, не догал его содержания. вы упомянули, Дейт думает, что SQL не нужен... если возможно киньте ссылку почитать для ликбеза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 13:25 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
Дедушкаvadiminfoпропущено... Плиз, сформулируйте более однозначно вопрос, поскоку, скорее всего, не догал его содержания. вы упомянули, Дейт думает, что SQL не нужен... если возможно киньте ссылку почитать для ликбеза Ну, это то вроде довольно избитый факт. Сам я читал в книгах. Например, Дейт "Основы баз данных". Например упоминается Третий манифест Дейта и Дарвена в источниках. Ну и там был ими предложен некий язык D. Впрочем, наскока я помню и реляционная алгеба А от них есть. Ну вот упоминание об этом одного из отечесвенных авторитетов http://www.osp.ru/os/2000/04/178000/ . Но я то упомянул все же с иронией, намекая на неопределенность в подобного рода вопросах. Например еще раньше сам Кодд чуть ли 10 лет обивал типа пороги с идеей реляционных БД, наскока я где-то читал, пока дело тронулось. Тоже, возможно, многим казалось, что дело ненужное это. А вона как все потом обернулось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 13:53 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
спасибо. как то это мимо меня проскочило :) vadiminfoТоже, возможно, многим казалось, что дело ненужное это. А вона как все потом обернулось. ну этак можно и наркоманов подкармливать... типа вдруг они в своих глюках нечто гениальное увидят и будет нам счастье. впрочем, это тоже суровая ирония. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 14:56 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
А есть что пощупать, кроме теории? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 16:16 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
NafПерекликается с моей мыслью http://mynaf.narod.ru/OQL.html Да, внешне местами похоже. Но я, когда смотрю на такие впредложеня, в первую очередь пытаюсь оценить их с формальной точки зрения. Vadiminfo дал ссылку на "Третий манифест" Дарвена и Дейта. Цитата оттуда Крис Дейт и Хью Дарвен «Foundation for Object/Relational Databases: The Third Manifesto»Можно предложить два возможных ответа на поставленный вопрос: домен = объектный класс отношение = объектный класс. В главе показывается, что первый ответ - правильный, а второй - нет. У Вас написано "Класс данных – обычная таблица в реляционной БД", то есть сразу понятно, что Вы идете по второму пути, который рассматирвают Дейт и Дарвен. Далее, в тексте, они убедительно аргументируют, почему второй путь ведет в тупик. Подход, который я реализовал, никто никогда нигде вообще не рассматривал. Несмотря на отмеченное выше явное внешнее сходство моей реализации с существующими языковыми конструкциями, я основываюсь на идее "любой объект = реляционная БД", и далее реализую формальное преобразование, позволяющее представить множество таких объектов относящихся(к разным классам) тоже в виде (одной общей) реляционной БД. Поэтому я и предлагаю всем в первую очередь оценивать не столько языковые конструкции, сколько то, что за ними стоит. 2 Дедушка Почему Дейт критикует SQL - что можно здесь прочитать Но, вообще лучше книгу "Третий манифест найти". Там, в приложении H, на 25 страницах Д&Д сравнивают SQL со своим видением "истинно реляционной системы" сравнивают по пунктам. А начинать надо с того, что SQL допускает дублирование строк в таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 16:20 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
U-geneNafПерекликается с моей мыслью http://mynaf.narod.ru/OQL.html Да, внешне местами похоже. Но я, когда смотрю на такие впредложеня, в первую очередь пытаюсь оценить их с формальной точки зрения. Vadiminfo дал ссылку на "Третий манифест" Дарвена и Дейта. Цитата оттуда Крис Дейт и Хью Дарвен «Foundation for Object/Relational Databases: The Third Manifesto»Можно предложить два возможных ответа на поставленный вопрос: домен = объектный класс отношение = объектный класс. В главе показывается, что первый ответ - правильный, а второй - нет. У Вас написано "Класс данных – обычная таблица в реляционной БД", то есть сразу понятно, что Вы идете по второму пути, который рассматирвают Дейт и Дарвен. Далее, в тексте, они убедительно аргументируют, почему второй путь ведет в тупик. Ну а если домен = абстрактный класс (интерфейс) таблица = реальный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 16:24 |
|
||
|
OO расширения SQL.
|
|||
|---|---|---|---|
|
#18+
U-geneформальное преобразование, позволяющее представить множество таких объектов относящихся(к разным классам) тоже в виде (одной общей) реляционной БД. Ну, например так: 1. таблица ID всех объектов всех классов 2. таблица всех свойств всех объектов всех классов обычный EAV ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2011, 11:30 |
|
||
|
|

start [/forum/topic.php?fid=32&startmsg=37509429&tid=1541920]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
191ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 555ms |

| 0 / 0 |
