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

Откуда: Petroskoi, Karjala
Сообщений: 145754
Благородные доны!
Мне, как и многим, действительно хочется сравнить различные SQL-сервера.
Предлагается следующая схема обсуждения.

Вопрос. Поддерживатся ли эта возможность на SQL-сервере?

Ответ1. Да. На *** это возможно.
Ответ2. Нет. На *** это не возможно.
Ответ3. Нет, но на *** это можно реализовать иным способом.

Я очень прошу Judge или АГ модерировать это топик. Или дать права на модерирование мне.
Принцип модерирования -
удаляются все упоминания о "кривых руках", "ламерах", "воспоминаниях о версии 1.0", ответы более 10 строк (по существу можно выразится коротко)

Примерный вопрос.
Поддерживаются ли хранимые процедуры?
MS SQL 2000 (и с перывых версий) - да
MySQL - нет

Ну и нормальный вопрос (для затравки)

Поддерживаются ли хранимые процедуры?
15 апр 03, 23:19    [175586]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
judge
Администратор

Откуда: SQL.ru
Сообщений: 6042
Блог
Модерируй ;)
15 апр 03, 23:25    [175588]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
Проверка прав на модерирование прошла успешно.

Предупреждаю.
Все будет удалятся очень жестко
15 апр 03, 23:42    [175592]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
judge
Администратор

Откуда: SQL.ru
Сообщений: 6042
Блог
так и писать никто не будет :))

ps. можешь удалять :)
15 апр 03, 23:45    [175594]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
Judge>Настоящие спецы не побоятся
15 апр 03, 23:49    [175595]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
Вопрос.
Последняя версия Вашего SQL-сервера?

Ответ.
>>Последняя версия Вашего SQL-сервера?
MS SQL. Версия 2000.
15 апр 03, 23:58    [175597]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
Paul Atreidies
Member

Откуда:
Сообщений: 35
Темка... :)
Ну в познавательных целях:
1. Поддерживает ли сервер рекурсию (хоть какую) в операторе SELECT?
db2 - да
..... - ?
16 апр 03, 01:13    [175612]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
Paul Atreidies > Вопрос. Рекурсия в SELECT.
Это про самосоединения таблиц?
MS SQL поддерживает.
======
Мною удален постинг ppp. Я предупреждал о жестком модерировании.
16 апр 03, 08:10    [175692]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
f2f
Guest
"Есть-нет" не всегда удачный ответ на вопрос. Обычно требуется комментарий.
Например в MS SQL запросы на чтение частенько блокируют и друг друга и запросы обновления, а в ORACLE - нет.

Кроме того предлагаю топик разделить на две части.
Первая - свободный обмен мнениями (можно даже без модерирования).
А вторая - сухой остаток в виде таблички возможностей с кратким комментарием, формируемый модератором.
16 апр 03, 09:36    [175768]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
SiDen
Member

Откуда:
Сообщений: 518
Согласованность по чтению на уровне предложения: Oracle - Да
Согласованность по чтению на уровне транзикции: Oracle - Да
Многоверсионная модель согласованности данных: Oracle - Да
Несколько видов ссылочной целостности (для Oracle):
RESTRICT Правило ссылочной целостности, которое запрещает
обновление или удаление адресуемых данных.

SET NULL При обновлении или удалении адресуемых данных
все ассоциированные зависимые данные
устанавливаются в NULL.

SET DEFAULT При обновлении или удалении адресуемых данных
все ассоциированные зависимые данные
устанавливаются в умалчиваемое значение.

CASCADE При обновлении адресуемых данных все
ассоциированные зависимые данных обновляются
соответственно; при удалении адресуемой строки
все ассоциированные зависимые строки удаляются.
Ограничения самоссылочной целостности: Oracle - Да
16 апр 03, 09:41    [175771]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
Paul Atreidies
Member

Откуда:
Сообщений: 35
Cat2>Это про самосоединения таблиц?
Не совсем. Это возможность запроса ссылается на самого себя.
16 апр 03, 11:04    [175918]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
killed
Member

Откуда: Moscow
Сообщений: 3526
select *
from
(select * from
(select * from tab1))

Такая конструкция имелась в виду ?
16 апр 03, 11:57    [176038]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
mahoune
Member

Откуда: Moscow
Сообщений: 5654
Я думаю что такая:
SELECT a.id, a.name FROM tbl_1 a,

(
SELECT b.id, b.name FROM tbl_1 b
WHERE
b.id=a.id
) AS c
16 апр 03, 12:10    [176078]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
f2f
Guest
Согласованность по чтению на уровне предложения: Oracle - Да
Согласованность по чтению на уровне транзикции: Oracle - Да
Многоверсионная модель согласованности данных: Oracle - Да
Несколько видов ссылочной целостности (для Oracle)


В разных продуктах используется разная (фирменная) терминология
Требуется какой-то комментарий чтобы понять что такое "Согласованность по чтению на уровне предложения" иначе для всех остальных баз формальным ответом будет "Нет".
16 апр 03, 12:34    [176116]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
SiDen
Member

Откуда:
Сообщений: 518
To f2f:
Наприимер делаем запрос на выборку, дается гарантия, что все данные будут актуальны на время начала запроса. (Аналогично для транзакций).
По поводу "Например в MS SQL запросы на чтение частенько блокируют и друг друга и запросы обновления, а в ORACLE - нет."
Имхо ноги расстут из-за отсутствия многоверсионной модели согласованности данных.
16 апр 03, 13:19    [176211]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
Paul Atreidies
Member

Откуда:
Сообщений: 35
2 killed
2 mahoune:

На примере DB2. Пример: вычисление уровней вершин дерева (рекурсивная структура все ж :))


with
temp(col1, col2)
as (values
(1, 2), (1, 3), (2, 4),
(3, null), (4, 5), (4, 6),
(5, null), (6, null)
),

gpl (level, col1, col2)
as (
select 1, root.col1, root.col2
from temp root
where root.col1 = 1
union all
select parent.level+1, child.col1, child.col2
from gpl parent, temp child
where parent.col2 = child.col1
)
select distinct col1 "Node", level "Level"
from gpl
order by col1

temp - представляет дерево из 6 вершин. Просто временная табличка.
gpl - запрос, который вычисляет уровни вершин и определяется рекурсивным запросом - в union стоит ссылка на gpl.
Собственно, интересует наличие подобных возможностей в других серверах.

ps: то что выше - один запрос :)
16 апр 03, 14:02    [176290]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862
На Oracle 9.2 такой запрос должен допустим, в описании синтаксиса SELECT есть subquery_factoring_clause:
http://technet.oracle.com/docs/products/oracle9i/doc_library/release2/server.920/a96540/statements_103a.htm#2075668
16 апр 03, 14:08    [176305]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862
Хотя нет, не совсем. Только сейчас заметил динамическое определение массива. Разве что получится через


select 1 col1, 2 col2 from dual
union all
select 1 col1, 3 col2 from dual
16 апр 03, 14:17    [176326]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
x
Guest
Имхо ноги расстут из-за отсутствия многоверсионной модели согласованности данных.

Со смыслом утверждения я согласен. Многоверсионности записей очень не хватает в MS SQL. Только это не проблема согласованности (она обеспечивается), а проблема блокировок.

Несколько видов ссылочной целостности
Аналогично - я понял, что имеется в виду, но называется это вероятно не так.
По существу - в MS SQL 2000 есть cascade update и cascade delete (можно естественно и без cascade вообще).
Но ! Если из одной таблицы есть две ссылки на одну другую, то при попытке установить каскад на обе связи - ругается
- Unable to create relationship 'FK_...'.  

Introducing FOREIGN KEY constraint 'FK_...' on table '...'
may cause cycles or multiple cascade paths.
Specify ON DELETE NO ACTION or ON UPDATE NO ACTION,
or modify other FOREIGN KEY constraints
16 апр 03, 15:34    [176490]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
f2f
Guest
Многоверсионности записей очень не хватает в MS SQL

Изза отсутствия многоверсионности накручено несколько "Уровней изоляции".
Причем пользователю(программисту интерфейса) допускается установить даже уровень "грязного чтения" и я(программист базы данных) не могу ему восприпятствовать !
16 апр 03, 15:48    [176518]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
SiDen
Member

Откуда:
Сообщений: 518
Ту х: Я вроде не говорил что это проблема целостности. А лишь привожу примеры различных возможностей. В MSSQL и 4-ех приведенных типов, имхо, отсутствует проставление в null и в default.
А вот например по поводу блокировок:
Служба управления блокировками ORACLE позволяет разработчику
приложений включать в блоки PL/SQL предложения, запрашивающие
блокировку указанного типа, давать ей уникальное имя,
распознаваемое в другой процедуре в той же самой или другой
инстанции, изменять тип блокировки и освобождать блокировку.
Зеркалирование транзакционного лога: Oracle - Да.
Ограничение использования ресурсов(например процессорного времени): Oracle - Да.
16 апр 03, 16:22    [176610]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
SiDen
Member

Откуда:
Сообщений: 518
Счетчик-столбец: MS SQL - да.
Oracle - нет (реализуется при помощи последовательностей)
ПОСЛЕДОВАТЕЛЬНОСТЬ (sequence) - это объект базы данных, который генерирует порядковые номера. При создании последовательности вы можете специфицировать ее начальное значение и приращение.
16 апр 03, 16:40    [176657]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
x
Guest
2 SiDen

Ту х: Я вроде не говорил что это проблема целостности. А лишь привожу примеры различных возможностей.

Тогда формальный ответ
Согласованность по чтению на уровне предложения: MS SQL - Да
Согласованность по чтению на уровне транзикции: MS SQL - Да
Многоверсионная модель согласованности данных: MS SQL - Нет
Несколько видов ссылочной целостности (для MS SQL):
RESTRICT Правило ссылочной целостности, которое запрещает
обновление или удаление адресуемых данных. - Да

SET NULL При обновлении или удалении адресуемых данных
все ассоциированные зависимые данные
устанавливаются в NULL. - Нет

SET DEFAULT При обновлении или удалении адресуемых данных
все ассоциированные зависимые данные
устанавливаются в умалчиваемое значение. - Нет

CASCADE При обновлении адресуемых данных все
ассоциированные зависимые данных обновляются
соответственно; при удалении адресуемой строки
все ассоциированные зависимые строки удаляются. - Аж два раза да, причем независимо - cascade update, cascade delete, но с ограничениями, как я уже писал.

Ограничения самоссылочной целостности: MS SQL - Да

Зеркалирование транзакционного лога: MS SQL - Нет. А зачем этим заниматься серверу базы данных ?

Ограничение использования ресурсов(например процессорного времени): MS SQL - Нет.

ПОСЛЕДОВАТЕЛЬНОСТЬ (sequence) - это объект базы данных, который генерирует порядковые номера. При создании последовательности вы можете специфицировать ее начальное значение и приращение. MS SQL - Нет (на уровне базы) Есть (на уровне таблицы)
16 апр 03, 17:32    [176777]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
nick
Member

Откуда: Москва
Сообщений: 129
Хотел бы добавить про SEQUENCE
Можно не только ставить начальное значение и приращение, но так же максимальное значение и цикличность.

2 x
ПОСЛЕДОВАТЕЛЬНОСТЬ (sequence) - это объект базы данных, который генерирует порядковые номера. При создании последовательности вы можете специфицировать ее начальное значение и приращение. MS SQL - Нет (на уровне базы) Есть (на уровне таблицы)

что значит на уровне таблицы?
16 апр 03, 17:52    [176808]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение различных SQL-серверов  [new]
x
Guest
2 nick

что значит на уровне таблицы?

create table t (
c int identity(1,10)
)
16 апр 03, 18:03    [176832]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить