powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Сравнение различных SQL-серверов
25 сообщений из 51, страница 1 из 3
Сравнение различных SQL-серверов
    #32141604
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Благородные доны!
Мне, как и многим, действительно хочется сравнить различные SQL-сервера.
Предлагается следующая схема обсуждения.

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

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

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

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

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

Поддерживаются ли хранимые процедуры?
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141605
Фотография judge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модерируй ;)
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141607
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Проверка прав на модерирование прошла успешно.

Предупреждаю.
Все будет удалятся очень жестко
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141609
Фотография judge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так и писать никто не будет :))

ps. можешь удалять :)
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141610
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Judge>Настоящие спецы не побоятся
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141612
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вопрос.
Последняя версия Вашего SQL-сервера?

Ответ.
>>Последняя версия Вашего SQL-сервера?
MS SQL. Версия 2000.
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141623
Paul Atreidies
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Темка... :)
Ну в познавательных целях:
1. Поддерживает ли сервер рекурсию (хоть какую) в операторе SELECT?
db2 - да
..... - ?
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141678
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Paul Atreidies > Вопрос. Рекурсия в SELECT.
Это про самосоединения таблиц?
MS SQL поддерживает.
======
Мною удален постинг ppp. Я предупреждал о жестком модерировании.
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141738
f2f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
f2f
Гость
"Есть-нет" не всегда удачный ответ на вопрос. Обычно требуется комментарий.
Например в MS SQL запросы на чтение частенько блокируют и друг друга и запросы обновления, а в ORACLE - нет.

Кроме того предлагаю топик разделить на две части.
Первая - свободный обмен мнениями (можно даже без модерирования).
А вторая - сухой остаток в виде таблички возможностей с кратким комментарием, формируемый модератором.
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141741
SiDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласованность по чтению на уровне предложения: Oracle - Да
Согласованность по чтению на уровне транзикции: Oracle - Да
Многоверсионная модель согласованности данных: Oracle - Да
Несколько видов ссылочной целостности (для Oracle):
RESTRICT Правило ссылочной целостности, которое запрещает
обновление или удаление адресуемых данных.

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

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

CASCADE При обновлении адресуемых данных все
ассоциированные зависимые данных обновляются
соответственно; при удалении адресуемой строки
все ассоциированные зависимые строки удаляются.
Ограничения самоссылочной целостности: Oracle - Да
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141839
Paul Atreidies
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2>Это про самосоединения таблиц?
Не совсем. Это возможность запроса ссылается на самого себя.
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141932
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select *
from
(select * from
(select * from tab1))

Такая конструкция имелась в виду ?
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141959
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю что такая:
Код: plaintext
1.
2.
3.
4.
5.
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
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32141992
f2f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
f2f
Гость
Согласованность по чтению на уровне предложения: Oracle - Да
Согласованность по чтению на уровне транзикции: Oracle - Да
Многоверсионная модель согласованности данных: Oracle - Да
Несколько видов ссылочной целостности (для Oracle)


В разных продуктах используется разная (фирменная) терминология
Требуется какой-то комментарий чтобы понять что такое "Согласованность по чтению на уровне предложения" иначе для всех остальных баз формальным ответом будет "Нет".
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32142068
SiDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To f2f:
Наприимер делаем запрос на выборку, дается гарантия, что все данные будут актуальны на время начала запроса. (Аналогично для транзакций).
По поводу "Например в MS SQL запросы на чтение частенько блокируют и друг друга и запросы обновления, а в ORACLE - нет."
Имхо ноги расстут из-за отсутствия многоверсионной модели согласованности данных.
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32142122
Paul Atreidies
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 killed
2 mahoune:

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

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
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: то что выше - один запрос :)
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32142132
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Oracle 9.2 такой запрос должен допустим, в описании синтаксиса SELECT есть subquery_factoring_clause:
http://technet.oracle.com/docs/products/oracle9i/doc_library/release2/server.920/a96540/statements_103a.htm#2075668
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32142148
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет, не совсем. Только сейчас заметил динамическое определение массива. Разве что получится через

Код: plaintext
1.
2.
3.
select  1  col1,  2  col2 from dual
union all
select  1  col1,  3  col2 from dual
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32142265
x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x
Гость
Имхо ноги расстут из-за отсутствия многоверсионной модели согласованности данных.

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

Несколько видов ссылочной целостности
Аналогично - я понял, что имеется в виду, но называется это вероятно не так.
По существу - в MS SQL 2000 есть cascade update и cascade delete (можно естественно и без cascade вообще).
Но ! Если из одной таблицы есть две ссылки на одну другую, то при попытке установить каскад на обе связи - ругается
Код: plaintext
1.
2.
3.
4.
- 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
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32142291
f2f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
f2f
Гость
Многоверсионности записей очень не хватает в MS SQL

Изза отсутствия многоверсионности накручено несколько "Уровней изоляции".
Причем пользователю(программисту интерфейса) допускается установить даже уровень "грязного чтения" и я(программист базы данных) не могу ему восприпятствовать !
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32142367
SiDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ту х: Я вроде не говорил что это проблема целостности. А лишь привожу примеры различных возможностей. В MSSQL и 4-ех приведенных типов, имхо, отсутствует проставление в null и в default.
А вот например по поводу блокировок:
Служба управления блокировками ORACLE позволяет разработчику
приложений включать в блоки PL/SQL предложения, запрашивающие
блокировку указанного типа, давать ей уникальное имя,
распознаваемое в другой процедуре в той же самой или другой
инстанции, изменять тип блокировки и освобождать блокировку.
Зеркалирование транзакционного лога: Oracle - Да.
Ограничение использования ресурсов(например процессорного времени): Oracle - Да.
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32142401
SiDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Счетчик-столбец: MS SQL - да.
Oracle - нет (реализуется при помощи последовательностей)
ПОСЛЕДОВАТЕЛЬНОСТЬ (sequence) - это объект базы данных, который генерирует порядковые номера. При создании последовательности вы можете специфицировать ее начальное значение и приращение.
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32142494
x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x
Гость
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 - Нет (на уровне базы) Есть (на уровне таблицы)
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32142520
nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотел бы добавить про SEQUENCE
Можно не только ставить начальное значение и приращение, но так же максимальное значение и цикличность.

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

что значит на уровне таблицы?
...
Рейтинг: 0 / 0
Сравнение различных SQL-серверов
    #32142538
x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x
Гость
2 nick

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

create table t (
c int identity(1,10)
)
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Сравнение различных SQL-серверов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]