Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 19 20 21 22 23 [24] 25 26 27 28 .. 34   вперед  Ctrl
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
serg99
Member

Откуда:
Сообщений: 422
vadiminfo
на выходе оператора Select в SQL - реляционная таблица (или лучше отношение для того, чтобы в терминах алгебры было проще). А в версанте разве они есть? Ить там должны быть какие-то коллекции? Элементы в них как-то индексированы (по типу массивов) для навигации?

Я не имею никакого отношения к Версанту, поэтому не могу ничего по этому поводу сказать.

vadiminfo
И например, операция прекции в РМД - это опять таблица. А в объекте если выкинуть часть атрибутов - это что? Это же не объект схемы? или как это понимать?

Как правило объекты одного класса имеют одинаковый набор атрибутов. Соответственно атрибуты можно добавить или убавить на уровне классов.
25 мар 05, 14:25    [1415409]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Павел Воронцов
Кстати замена явной операции JOIN на неявную ссылочную (.) мне кажется недостатком.

А почему? Мне наоборот это единственное что нравится
25 мар 05, 14:32    [1415455]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
SergSuper
Павел Воронцов
Кстати замена явной операции JOIN на неявную ссылочную (.) мне кажется недостатком.
А почему? Мне наоборот это единственное что нравится
Не люблю недоговорённостей. Кроме того - меньше гибкость. Если в JOIN я могу указать условие слияния (любое в общем случае), то тут - никак. Не говоря уж о внешних соединениях...
25 мар 05, 14:57    [1415566]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
serg99
Member

Откуда:
Сообщений: 422
Павел Воронцов
А может Вы тогда перечислите набор сущностей, которыми манипулирует ООБД?


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


Павел Воронцов
serg99
Нет. Это то же самое что получается на выходе оператора Select в SQL.
То есть таблица? Хм. Ну если Вы пишете новый диалект SQL, то при чём тут объекты? Кстати замена явной операции JOIN на неявную ссылочную (.) мне кажется недостатком.

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

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

JOIN не заменяется на ".". Это разные вещи, которые удобно применять в разных ситуациях. При этом применяться и то и другое можно в одном и том же операторе.


Павел Воронцов
serg99
Лично я sum не использовал. Про Count я уже говорил. Смысл этой функции примерно такой же как в SQL.
Меня "примерно" не устраивает, я зануда. Извольте объяснить.


Вы тогда для начала определите что такое count в SQL (с учетом его применения в разных секциях оператора select и в разных контекстах определяемых стандартом)
25 мар 05, 15:01    [1415595]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
serg99
Я думаю разные ООБД манипулируют разными вещами. Есть например встариваемые СУБД, которые так же называются ООБД и которые с определенной степенью условности ничем кроме ООП объектов не манипулируют. Поэтому ответ на этот вопрос будет разным в зависимости от того про какую конкретную ООБД спрашивается.
То, что у ООБД нет теории, а начит и единой терминологии, мы уже установили. Давайте говорить о конкретной БД (Вашей например). Можете перечислить сущности, с которыми она имеет дело? Помимо классов и экземпляров (объектов)?
serg99
Мне предсталяется, что то, что получается на выходе select, и то что создается через create table, несмотря на то что называются часто одинаково таблицей, тем не менее отличаются, хотя при определенных условиях могут быть преобразованы друг в друга.
Ошибаетесь. С логической точки зрения это одно и то же. И лично меня при манипулировании данными интересует всего лишь и только эта сторона (логическая). Я могу написать запрос, используя таблицу, представление, результат работы функции или запроса в качестве источника (в секции FROM)
serg99
JOIN не заменяется на ".". Это разные вещи, которые удобно применять в разных ситуациях. При этом применяться и то и другое можно в одном и том же операторе.
То есть вы заменили точкой NATURAL JOIN. Угу. Ладно, пусть так, хотя мне ближе явный синтаксис. Ибо зануда есьм.
serg99
Вы тогда для начала определите что такое count в SQL (с учетом его применения в разных секциях оператора select и в разных контекстах определяемых стандартом)
Во как! Хорошо, это не проблема.

В SQL (к сожалению) есть не одна, а две функции COUNT, отличающиеся реакцией на появление неопределённых значений (NULL). В любом случае COUNT относится к т.н. групповым функциям и применяется для подсчёта количества записей (строчек таблицы, кортежей в отношении), относящихся к некоторому уникальному набору значений множества атрибутов (колонок), по которым и происходит группировка. То есть запрос

SELECT S#, COUNT(*) AS CNT
FROM SP
GROUP BY S#

эквивалентен

SAMMORIZE SP BY (S#) ADD COUNT() AS CNT

(посчитать количество поставок для каждого поставщика)
, запрос

SELECT COUNT(*) AS CNT
FROM S

эквивалентен

SAMMORIZE S BY () ADD COUNT() AS CNT

(получить общее количество поставщиков)
, запрос (SPJ - отношение деталей, поставщиков и проектов)

SELECT S#, COUNT(DISTINCT J#) AS JCNT
FROM SPJ
GROUP BY S#

SUMMORIZE SPJ BY (S#) ADD COUNT(J#) AS JCNT

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

Теперь к неопределённым значениям. Если подсчитывается COUNT по конкретной колонке, то при неопределённом значении (COL IS NULL) это значение не будет учитываться при подсчёте. Это приводит к таким вот "курьёзам"
create table null_count (col int)

insert into null_count values (1)
insert into null_count values (2)
insert into null_count values (null)
insert into null_count values (null)

select count(*) from null_count
select count(col) from null_count
25 мар 05, 16:47    [1416156]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
vadiminfo
Member

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

Как правило объекты одного класса имеют одинаковый набор атрибутов. Соответственно атрибуты можно добавить или убавить на уровне классов.

Я имел в виду результат запроса. Оно вернет множество чего? К примеру, в списке Select
один арибут одного объекта и один от другого. Он вернет множество пар значений этих атрибутов (бинарное отношение, если отбросить упорядоченность). Но не объектов? Или там есть типа динамические объекты, и эта пара такой типа объект?
По типу Рел модели - любая операция над отношениями всегда возвращает отношение - принцип алгебры. Тут любая возвращает множество объектов?
Или нет? Или это не имеет значения?
Я тут в литре порылся. Про OQL надыбал. Там общее - написано, что вернет мультимножество. Вот про него вопрос был. Что оно из себя представляет?
В реализации на стороне клиента вернет, наверное, коллекцию типа Recorset. А теоретически, наверное, похоже опять на отношение? Раз взяли подобие SQL, то он, возможно, и потянет за собой явно или неявно все остальное.

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

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

Т.е. РСУБД идут в сторону ОРСУБД добавляя объеты, а ООСУБД а в сторону РМД добавляя SQL? Единство и борьба противоположностей дадут что-то новое?
25 мар 05, 23:33    [1416934]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
serg99
Member

Откуда:
Сообщений: 422
Павел Воронцов
То, что у ООБД нет теории, а начит и единой терминологии, мы уже установили. Давайте говорить о конкретной БД (Вашей например). Можете перечислить сущности, с которыми она имеет дело? Помимо классов и экземпляров (объектов)?

Могу но не хочу. Вдруг Микрософт подслушивает :-).

Павел Воронцов
serg99
Мне предсталяется, что то, что получается на выходе select, и то что создается через create table, несмотря на то что называются часто одинаково таблицей, тем не менее отличаются, хотя при определенных условиях могут быть преобразованы друг в друга.
Ошибаетесь. С логической точки зрения это одно и то же. И лично меня при манипулировании данными интересует всего лишь и только эта сторона (логическая). Я могу написать запрос, используя таблицу, представление, результат работы функции или запроса в качестве источника (в секции FROM)
С этой точки зрения и мой настенный календарь является таблицей. Тем не менее степень персистентности результата select и table разная. К тому же с точки зрения манипуляции данными важно какие операции я могу над данными выполнить. И если с table я могу сделать скажем insert, то с результатом select я этого сделать не могу, пока не преобразую его в table.

Павел Воронцов
serg99
JOIN не заменяется на ".". Это разные вещи, которые удобно применять в разных ситуациях. При этом применяться и то и другое можно в одном и том же операторе.
То есть вы заменили точкой NATURAL JOIN. Угу. Ладно, пусть так, хотя мне ближе явный синтаксис. Ибо зануда есьм.
Точка не заменяет никакой из JOINов, даже если на первый взгляд кажется именно так.

Павел Воронцов
[
serg99
Вы тогда для начала определите что такое count в SQL (с учетом его применения в разных секциях оператора select и в разных контекстах определяемых стандартом)
Во как! Хорошо, это не проблема.

В SQL (к сожалению) есть не одна, а две функции COUNT, отличающиеся реакцией на появление неопределённых значений (NULL). В любом случае COUNT относится к т.н. групповым функциям и применяется для подсчёта количества записей (строчек таблицы, кортежей в отношении), относящихся к некоторому уникальному набору значений множества атрибутов (колонок), по которым и происходит группировка. ...

В общем то кроме COUNT(DISTINCT..) COUNT(ALL..) и COUNT(*) с группировкой существуют еще COUNT(ALL..) и COUNT(*) без группировки, то есть не относящиеся к "уникальному набору значений". В моем примере COUNT является аналогом COUNT(*) без группировки.
26 мар 05, 01:41    [1416998]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
serg99
Member

Откуда:
Сообщений: 422
vadiminfo
Я имел в виду результат запроса. Оно вернет множество чего? К примеру, в списке Select
один арибут одного объекта и один от другого. Он вернет множество пар значений этих атрибутов (бинарное отношение, если отбросить упорядоченность). Но не объектов? Или там есть типа динамические объекты, и эта пара такой типа объект?
По типу Рел модели - любая операция над отношениями всегда возвращает отношение - принцип алгебры. Тут любая возвращает множество объектов?
Или нет? Или это не имеет значения?
Я тут в литре порылся. Про OQL надыбал. Там общее - написано, что вернет мультимножество. Вот про него вопрос был. Что оно из себя представляет?
В реализации на стороне клиента вернет, наверное, коллекцию типа Recorset. А теоретически, наверное, похоже опять на отношение? Раз взяли подобие SQL, то он, возможно, и потянет за собой явно или неявно все остальное.
Если Вас интересует информация общего характера по OQL/ODMG, то можно посмотреть на http://www.citforum.ru/database/articles/manifests/art_28_2_2.shtml

vadiminfo
Т.е. РСУБД идут в сторону ОРСУБД добавляя объеты, а ООСУБД а в сторону РМД добавляя SQL? Единство и борьба противоположностей дадут что-то новое?
Если долго мучиться - что нибудь получится :-).
26 мар 05, 02:07    [1417012]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
c127
Guest
2 serg99

>Вы тогда для начала определите что такое count в SQL (с учетом его применения в разных секциях оператора select и в разных контекстах определяемых стандартом)

Насколько я понял народ (я по крайней мере) интересуется не оператором count (sum) вообще, а как именно он отрабатывает в приведенных примерах:

select r from Race r, r.sold s where s.date between '2003.01.01' and '2003.01.31'
and r.shedul.fly.name != 'TU 154' and sum(r.shedul.fly.place.cnt) between 10 and 20

select r1, r2 from Race r1, Race r2 where count(r1.sold.fio) - count(r1.sold.fio - r2.sold.fio) >10

По какому множеству считается count(r1.sold.fio), count(r1.sold.fio - r2.sold.fio) и sum(r.shedul.fly.place.cnt)?

>С этой точки зрения и мой настенный календарь является таблицей. Тем не менее степень персистентности результата select и table разная. К тому же с точки зрения манипуляции данными важно какие операции я могу над данными выполнить. И если с table я могу сделать скажем insert, то с результатом select я этого сделать не могу, пока не преобразую его в table.

С точки знрения оператора селект таблица эквивалентна оператору селект, т.е. нет разницы делать селект из таблицы или из результатов другого оператора селект.

>Точка не заменяет никакой из JOINов, даже если на первый взгляд кажется именно так.

Теперь я уже не понимаю, что означает точка, мне тоже казалась что это сокращенная форма селекта. В таком случае что она возвращает в приведенных примерах? Можно ли ее использовать, чтоб получить результат - множество значений в случае связи 1:N?
26 мар 05, 03:45    [1417028]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
serg99
Member

Откуда:
Сообщений: 422
c127
2 serg99

>Вы тогда для начала определите что такое count в SQL (с учетом его применения в разных секциях оператора select и в разных контекстах определяемых стандартом)

Насколько я понял народ (я по крайней мере) интересуется не оператором count (sum) вообще, а как именно он отрабатывает в приведенных примерах:

select r from Race r, r.sold s where s.date between '2003.01.01' and '2003.01.31'
and r.shedul.fly.name != 'TU 154' and sum(r.shedul.fly.place.cnt) between 10 and 20

select r1, r2 from Race r1, Race r2 where count(r1.sold.fio) - count(r1.sold.fio - r2.sold.fio) >10

По какому множеству считается count(r1.sold.fio), count(r1.sold.fio - r2.sold.fio) и sum(r.shedul.fly.place.cnt)?)?
Это нужно спрашивать у автора этих примеров.


c127
>С этой точки зрения и мой настенный календарь является таблицей. Тем не менее степень персистентности результата select и table разная. К тому же с точки зрения манипуляции данными важно какие операции я могу над данными выполнить. И если с table я могу сделать скажем insert, то с результатом select я этого сделать не могу, пока не преобразую его в table.

С точки знрения оператора селект таблица эквивалентна оператору селект, т.е. нет разницы делать селект из таблицы или из результатов другого оператора селект.

Из того что у стула и собаки по четыре ноги нельзя делать вывод об их эквивалентности.

c127
>Точка не заменяет никакой из JOINов, даже если на первый взгляд кажется именно так.

Теперь я уже не понимаю, что означает точка, мне тоже казалась что это сокращенная форма селекта. В таком случае что она возвращает в приведенных примерах? Можно ли ее использовать, чтоб получить результат - множество значений в случае связи 1:N?
С некоторой степенью условности можно сказать что точка - это операция навигации. Про то что возвращается в примерах лучше спросить автора примеров. Насколько я помню в OQL "точечную" запись нельзя использовать для связей 1-N. В запросном языке на котором я написал свои примеры - можно.
26 мар 05, 13:18    [1417320]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
vadiminfo
Member

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

Если Вас интересует информация общего характера по OQL/ODMG, то можно посмотреть на http://www.citforum.ru/database/articles/manifests/art_28_2_2.shtml


Спасибо. Мож посмотрю. Но литра у меня есть, в частности и про OQL/ODMG. Хотел мысли пракитков ООМД об этом, а потом читать литру - так проще. Я из литры понял, что отображение ООМД в РМД приводит к потерям свойств ООМД, но дает преимущества РМД. С доругой стороны РСУБД добавляют объекты. Тоже видно с каким-то потерями. Но получается, так что ОРСУБД ничего не стоит с какого-то момента добавить коллекции как в ООСУБД. Например, в Оракле есть вложенные таблы - коллекции по сути. Но есть и объектные таблы. А ООП для объектов они будут наращивать и дальше. И что получится? ОРСУБД будут иметь все возможности ООСУБД? Ну, пусть называться будут Универсальным сервером. Для прилрожений CORBA и EJB Оракл, например, давно поддерживает в том или ином виде. (Про Оракл пишу не из рекламы его, а из соображений - пишу про то, что знакомо на практике).
Вопрос такой - не поглотят ли РСУБД в совоем дальнейшем развитии ООСУБД, но будут считать это дальнейшим расширением РМД?
По любому расчитывать трудно на то, что ведущие производители СУБД отдадут какие-то серьезные возможности другим, пока отстающим производителям.
26 мар 05, 13:57    [1417341]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

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

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


Думаю, что такой интеграции в ближайшее время не произойдет. Существуют концептуальные препятствия к этому. Попытки пойти навстречу ОО вынуждают кардинально отходить от реляционности и в конечном счете замедляют обработку реляционных данных. Скорее уже крупнейшие производители СУБД начнут поддерживать обе модели параллельно, позволяя приложению самому выбирать то, что его больше устраивает. О последних объектных веяниях в реляционных и объектно-реляционных СУБД и их ограничениях есть свежая статья Кузнецова.
26 мар 05, 17:31    [1417571]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
serg99
С этой точки зрения и мой настенный календарь является таблицей. Тем не менее степень персистентности результата select и table разная.
Вы опять про персистентность... Мы с Вами по разному трактуем базу данных и СУБД. Для меня база данных - это набор фактов, жизненно необходимых для функционирования бизнеса. А для Вас - место персистентного хранения чего-то как-то структурированного. Почувствуйте разницу.
serg99
К тому же с точки зрения манипуляции данными важно какие операции я могу над данными выполнить. И если с table я могу сделать скажем insert, то с результатом select я этого сделать не могу, пока не преобразую его в table.
Ошибаетесь. Иногда и в результат select можно делать insert.
serg99
Точка не заменяет никакой из JOINов, даже если на первый взгляд кажется именно так.
Ась? Тогда ещё раз с третьей цифры пожалуйста - что такое навигация?
serg99
В общем то кроме COUNT(DISTINCT..) COUNT(ALL..) и COUNT(*) с группировкой существуют еще COUNT(ALL..) и COUNT(*) без группировки, то есть не относящиеся к "уникальному набору значений". В моем примере COUNT является аналогом COUNT(*) без группировки.
Ошибаетесь. Не существует групповых функций без группировки. Просто в запросах без указания секции GROUP BY группировка происходит по пустому множеству атрибутов. Я ведь привёл пример. Стало быть Ваш COUNT производится по всему множеству (группировка по пустому множеству атрибутов). Осталось выяснить подсчёт по множеству чего.
26 мар 05, 18:57    [1417652]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Su  [new]
c127
Guest
2 serg99

>Это нужно спрашивать у автора этих примеров.

>В запросном языке на котором я написал свои примеры - можно.

В таком случае о каких именно примерах идет речь и кто автор?

>Из того что у стула и собаки по четыре ноги нельзя делать вывод об их эквивалентности.

Как раз можно. Они эквивалентны по количеству ног. Эквивалентность - бинарное рефлексивное-симметричное-транзитивное отношение и сравнение количества ног это оно и есть. Учите матчасть.
26 мар 05, 22:37    [1417818]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
serg99
Member

Откуда:
Сообщений: 422
Павел Воронцов
serg99
С этой точки зрения и мой настенный календарь является таблицей. Тем не менее степень персистентности результата select и table разная.
Вы опять про персистентность... Мы с Вами по разному трактуем базу данных и СУБД. Для меня база данных - это набор фактов, жизненно необходимых для функционирования бизнеса. А для Вас - место персистентного хранения чего-то как-то структурированного. Почувствуйте разницу.
Я не помню что бы когда нибудь говорил про персистентность. Что касается разного понимания баз данных, то вполне возможно, что оно у нас действительно разное. Я например считаю что бы назвать нечто базой данных, то
1) ОПИСАНИЕ фактов хранящихся там должно быть доступно более чем одному пользователю/приложению (в том числе одновременно).
2) Время жизни этих описаний должно превышать время жизни приложений использующих эту БД посредством СУБД. То есть должна быть возможность воспользоваться теми же описаниями фактов из БД при следующем запуске приложения. Это можно назвать требованием персистентности.
...про всякие целостности, непротиворечивости и т.п. для краткости не продолжаю.

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


Павел Воронцов
serg99
К тому же с точки зрения манипуляции данными важно какие операции я могу над данными выполнить. И если с table я могу сделать скажем insert, то с результатом select я этого сделать не могу, пока не преобразую его в table.
Ошибаетесь. Иногда и в результат select можно делать insert.

Я всего лишь говорил, что результаты select и create table не являются идентичными. Что бы утверждать обратное нужно показать, что эти результаты выглядят одинаково со всех точек зрения и идентичны с точки зрения операций над ними. То есть если над одним я могу что то сделать всегда, а над другим только иногда, то это уже является показателем различий.

Павел Воронцов
serg99
Точка не заменяет никакой из JOINов, даже если на первый взгляд кажется именно так.
Ась? Тогда ещё раз с третьей цифры пожалуйста - что такое навигация?
Я об этом уже говорил. Зачем повторяться?

Павел Воронцов
serg99
В общем то кроме COUNT(DISTINCT..) COUNT(ALL..) и COUNT(*) с группировкой существуют еще COUNT(ALL..) и COUNT(*) без группировки, то есть не относящиеся к "уникальному набору значений". В моем примере COUNT является аналогом COUNT(*) без группировки.
Ошибаетесь. Не существует групповых функций без группировки. Просто в запросах без указания секции GROUP BY группировка происходит по пустому множеству атрибутов. Я ведь привёл пример.
Если в операторе не задана секция GROUP BY, то не происходит там никакой группировки (в самой СУБД). Конечно в формулах наверное может быть обозначена группировка по пустому множеству атрибутов, хотя мне трудно понять чему соответствует "уникальный набор значений" несуществующих атрибутов из этого множества. Следуя Вашей логике в Ваших примерах не хватает фильтрации по пустому предикату, которая должна в поте лица отрабатываться СУБД даже если секция HAVING пропущена.


Павел Воронцов
Стало быть Ваш COUNT производится по всему множеству (группировка по пустому множеству атрибутов). Осталось выяснить подсчёт по множеству чего.
В конкретном примере по множеству объектов - сидений самолета. В общем случае по множеству чего угодно, так как в конечном счете COUNT - это операция определяемая над типом данных.
27 мар 05, 14:58    [1418150]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
serg99
Если в операторе не задана секция GROUP BY, то не происходит там никакой группировки (в самой СУБД). Конечно в формулах наверное может быть обозначена группировка по пустому множеству атрибутов, хотя мне трудно понять чему соответствует "уникальный набор значений" несуществующих атрибутов из этого множества. Следуя Вашей логике в Ваших примерах не хватает фильтрации по пустому предикату, которая должна в поте лица отрабатываться СУБД даже если секция HAVING пропущена.
Это Вы о чём? Какой пот? какое лицо! Группировка по пустому множеству - весьма простая вещь и не моя вина, что Вы этого не понимаете.
serg99
В конкретном примере по множеству объектов - сидений самолета. В общем случае по множеству чего угодно, так как в конечном счете COUNT - это операция определяемая над типом данных.
Так, хорошо.. Но тогда вероятно операция COUNT должна быть методом некотрого класса (я подразумеваю, что класс и тип данных - синонимы)? То есть запись должна быть такая something.somefield.count(), а не COUNT( something.somefield ) ? Мне это показалось бы более логичным синтаксисом.
27 мар 05, 19:31    [1418300]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
serg99
Я об этом уже говорил. Зачем повторяться?
Ну если Вы не хотите меня в чём-то убедить (или хотя бы помочь понять, разобраться), то, конечно, не повторяйте.
27 мар 05, 20:21    [1418331]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
serg99
Member

Откуда:
Сообщений: 422
Павел Воронцов
serg99
Если в операторе не задана секция GROUP BY, то не происходит там никакой группировки (в самой СУБД). Конечно в формулах наверное может быть обозначена группировка по пустому множеству атрибутов, хотя мне трудно понять чему соответствует "уникальный набор значений" несуществующих атрибутов из этого множества. Следуя Вашей логике в Ваших примерах не хватает фильтрации по пустому предикату, которая должна в поте лица отрабатываться СУБД даже если секция HAVING пропущена.
Это Вы о чём? Какой пот? какое лицо! Группировка по пустому множеству - весьма простая вещь и не моя вина, что Вы этого не понимаете.
Просто для меня группировка по пустому множеству атрибутов означает отсутствие группировки как действия на стороне СУБД. А непонятно мне было что в случае отсутствия GROUP BY может означать "уникальный набор значений" несуществующих атрибутов, который (набор значений) согласно Вашему определению COUNT должен тем не менее существовать. Вы зря цепляетесь к моим словам и делаете вид, что не понимаете, что я хотел сказать :-).

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

Для унарных операций вобщем то допустимы оба стиля синтаксиса. Тем не менее синтаксис запросного языка БД совсем не обязан копировать синтаксис какого либо языка программирования.
27 мар 05, 20:22    [1418332]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
serg99
Просто для меня группировка по пустому множеству атрибутов означает отсутствие группировки как действия на стороне СУБД. А непонятно мне было что в случае отсутствия GROUP BY может означать "уникальный набор значений" несуществующих атрибутов, который (набор значений) согласно Вашему определению COUNT должен тем не менее существовать. Вы зря цепляетесь к моим словам и делаете вид, что не понимаете, что я хотел сказать :-).
Повторяю - я зануда и люблю точность в определениях. Групповые операции невозможны без группировки по уникальным наборам значений некоторого подмножества атрибутов отношения (колонок таблицы). Пустое множество - это пустое множество, а не множество "несуществующих атрибутов". Я не цепляюсь к словам, я уточняю определение. Вы же хотели определения? Вы его получили.
serg99
Для унарных операций вобщем то допустимы оба стиля синтаксиса. Тем не менее синтаксис запросного языка БД совсем не обязан копировать синтаксис какого либо языка программирования.
Так. Стоп. С пятой цифры пожалуйста. COUNT - операция, определяемая над типом данных. Над любым типом? Я обязан определять эту операцию или она имманетно присуща любому типу, определённому в базе? Как определяется эта операция для результатов выражений (COUNT(a.fld-b.fld)) ? Язык запров к БД - это не язык программирования? Перегрузка синтаксиса (возможность написания одного и того же действия несколькими способами) - намеренна? Если да, то зачем?

Disclaimer: Я вовсе не считаю перегруженность синтаксиса абсолютным злом. Мне просто интересно.
28 мар 05, 06:37    [1418555]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
serg99
Member

Откуда:
Сообщений: 422
Павел Воронцов
serg99
Просто для меня группировка по пустому множеству атрибутов означает отсутствие группировки как действия на стороне СУБД. А непонятно мне было что в случае отсутствия GROUP BY может означать "уникальный набор значений" несуществующих атрибутов, который (набор значений) согласно Вашему определению COUNT должен тем не менее существовать. Вы зря цепляетесь к моим словам и делаете вид, что не понимаете, что я хотел сказать :-).
Повторяю - я зануда и люблю точность в определениях. Групповые операции невозможны без группировки по уникальным наборам значений некоторого подмножества атрибутов отношения (колонок таблицы). Пустое множество - это пустое множество, а не множество "несуществующих атрибутов". Я не цепляюсь к словам, я уточняю определение. Вы же хотели определения? Вы его получили.
Я Вам написал чему соответсвует в моем примере COUNT исходя из вашего первого определения. Вы сразу поняли что я имею ввиду, но стали меня винить за недостаточное соответствие моих слов Вашему уточненному определению. Так сразу надо было уточнять. И вообще создается впечатление что для Вас важна не суть а форма (впрочем это характерная черта зануд :-)). Что касается Вашего определения, то оно мне представляется как минимум не полным. И у меня создалось впечатление что Вы имеете ввиду абстрактные математические операции на бумаге. Я же неоднократно уточнял что веду речь об операциях РЕАЛЬНО ВЫПОЛНЯЕМЫХ в СУБД. Тем не менее если Вы приведете план выполнения запроса select, где сервер планирует выполнение группировки по пустому множеству атрибутов (в отсутствие секции GROUP BY), а так же фильтрацию групп по пустому предикату (в отсутствие секции HAVING) и тратит на выполнение этого отличное от нуля время, то я чистосердечно признаю свои ошибки.

Павел Воронцов
serg99
Для унарных операций вобщем то допустимы оба стиля синтаксиса. Тем не менее синтаксис запросного языка БД совсем не обязан копировать синтаксис какого либо языка программирования.
Так. Стоп. С пятой цифры пожалуйста. COUNT - операция, определяемая над типом данных. Над любым типом? Я обязан определять эту операцию или она имманетно присуща любому типу, определённому в базе? Как определяется эта операция для результатов выражений (COUNT(a.fld-b.fld)) ? Язык запров к БД - это не язык программирования? Перегрузка синтаксиса (возможность написания одного и того же действия несколькими способами) - намеренна? Если да, то зачем?

Disclaimer: Я вовсе не считаю перегруженность синтаксиса абсолютным злом. Мне просто интересно.
Вы на каждое мое невинное высказывание способны задать по 10 вопросов. Здесь только на тему считать ли запросный язык языком программирования можно развести флейма страниц на 20. Поэтому давайте дождемся конкретного продукта и многие вопросы снимутся сами по себе.
28 мар 05, 13:59    [1419597]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
To serg99

К сожалению Ваши ответы больше запутывают, чем объясняют. Увы, Вы так и не ответили толком ни на один мой вопрос. Точка - это аналог джойна и именно так используется в запросе, однако она не является джойном (а чем является и что такое тогда навигация?) Что возвращает запрос - неясно, перечислить сущности, которыми манипулирует база данных Вы отказались, ссылаясь на коммерческую тайну (вдруг Майкрософт подсмотрит). Как работает count и что же он подсчитывает - неясно.

Ещё раз скажу - увы, Вы меня только ещё больше настрили против ООБД. Сплошная невнятица и сомнительная риторика.
28 мар 05, 14:49    [1419871]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Старанно вы как-то обобщаете. А хотите я невнятно расскажу о какой-нибудь РСУБД? Вас это против нее (и всех других РСУБД) тоже настроит? Смею утверждать, что невнятный рассказ сам по себе ничего не говорит о продукте - именно потому, что рассказ невнятный. Здесь только растянутая во времени статистика по разным источникам позволяет делать выводы (и то, только в отношении одного продукта).
28 мар 05, 15:08    [1419969]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
Alexey Rovdo
Старанно вы как-то обобщаете. А хотите я невнятно расскажу о какой-нибудь РСУБД? Вас это против нее (и всех других РСУБД) тоже настроит? Смею утверждать, что невнятный рассказ сам по себе ничего не говорит о продукте - именно потому, что рассказ невнятный. Здесь только растянутая во времени статистика по разным источникам позволяет делать выводы (и то, только в отношении одного продукта).
Именно растянутая (на более чем сотню страниц) статистика невнятных попыток адептов ООБД что-либо объяснить (и не только мне) о своих продуктов и действует отталкивающе. Теории нет. Чётких формулировок нет - в каждом продукте терминология своя (что и понятно в отсутствии теории). На конкретные вопросы вместо ответов получаешь пространные разсуждения с рекламными заявлениями. Это не конкретно к Вам упрёк, а именно что "статистика по разным источникам".
28 мар 05, 15:20    [1420029]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Cache - не объектная СУБД.
28 мар 05, 15:58    [1420212]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
Alexey Rovdo
Cache - не объектная СУБД.
Да я ж не спорю...
28 мар 05, 16:12    [1420273]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 19 20 21 22 23 [24] 25 26 27 28 .. 34   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить