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

Откуда: Москва (Муром)
Сообщений: 74930
pkarklin
Это же T-SQL?! ;)


В смысле:

CREATE TABLE dbo.MyTable
(
    IDColumn nvarchar(25) NOT NULL PRIMARY KEY,
    name varchar(25) NOT NULL
) ;
GO

CREATE SEQUENCE dbo.CounterSeq
    AS int
    START WITH 1
    INCREMENT BY 1 ;
GO

ALTER TABLE dbo.MyTable
    ADD 
        DEFAULT N'AdvWorks_' + 
        CAST(NEXT VALUE FOR dbo.CounterSeq AS NVARCHAR(20)) 
        FOR IDColumn;
GO

INSERT dbo.MyTable (name)
VALUES ('Larry') ;
GO

SELECT * FROM dbo.MyTable;
GO
11 июл 13, 22:16    [14555136]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Бредятина
Member [заблокирован]

Откуда: Москва
Сообщений: 2497
Andrey Sribnyak
offtop
Улыбнуло
Сегодня читал нововведения в последней версии Оракла, там первым пунктом идет: Новый тип данных для PK — Identity.
А сколько здесь копий было поломано в том, что лучше sequence или identity, а теперь и тот и другой есть и там и сям...

Идентификатор не может быть атрибутом)) Копья ломались напрасно - Oracle, как и MS SQL, останутся банальными СХОД - средством обеспечения работой армии программистов))
12 июл 13, 10:27    [14555940]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Yo.!
Guest
Бредятина
Идентификатор не может быть атрибутом)) Копья ломались напрасно - Oracle, как и MS SQL, останутся банальными СХОД - средством обеспечения работой армии программистов))

шуруповерт и отвертка тоже средством обеспечения работой ...
12 июл 13, 11:21    [14556430]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Бредятина
Member [заблокирован]

Откуда: Москва
Сообщений: 2497
Yo.!
Бредятина
Идентификатор не может быть атрибутом)) Копья ломались напрасно - Oracle, как и MS SQL, останутся банальными СХОД - средством обеспечения работой армии программистов))

шуруповерт и отвертка тоже средством обеспечения работой ...

Разумеется. Ластик еще. Карандаш. Ножичек перочинный. И т.п. Но, идентификатор не может быть атрибутом. А создание приложений БД не должно требовать программирования.
12 июл 13, 11:46    [14556690]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
Andrey Sribnyak
offtop
Улыбнуло
Сегодня читал нововведения в последней версии Оракла, там первым пунктом идет: Новый тип данных для PK — Identity.


А сколько здесь копий было поломано в том, что лучше sequence или identity, а теперь и тот и другой есть и там и сям...

А что же Вы хотели?
Конкуренция. Допустим identity хуже. А Скуль возьми и добавь sequence. И теперь у него и то и то. Это уже преимущество. Так как есть те кто не поверил или не знает, что sequence лучше. Тем более identity проще. Чтобы выровнить нуно и Ораклу identity.

Хотя теперь сложнее: одно дело копья ломать, когда выбора нет, поскольку СУБД ограничивает. Другое когда он есть. Тут ломка копий может быть уже внутри СУБД.
12 июл 13, 12:55    [14557335]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
mayton
Member

Откуда: loopback
Сообщений: 53016
Будет-ли identity особенностью технологии? Или это просто макрос который создаёт
триггер так-же как и опция PRIMARY KEY авто-создаёт индекс?
12 июл 13, 13:01    [14557391]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
mayton
Будет-ли identity особенностью технологии? Или это просто макрос который создаёт
триггер так-же как и опция PRIMARY KEY авто-создаёт индекс?
А скачать с офф-сайта и попробовать и проверить? :)
12 июл 13, 14:06    [14558043]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
softwarer,

Вы не озвучили что задачи, такие, в которых требуется один сиквенс на несколько таблиц
softwarer
identity не решает задачу кормления нескольких таблиц из одного источника.
12 июл 13, 14:23    [14558191]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
mayton
Member

Откуда: loopback
Сообщений: 53016
sphinx_mv
mayton
Будет-ли identity особенностью технологии? Или это просто макрос который создаёт
триггер так-же как и опция PRIMARY KEY авто-создаёт индекс?
А скачать с офф-сайта и попробовать и проверить? :)

Мне некогда к сожалению. Но если кто-то это сделает и расскажет о результате - буду признателен.
12 июл 13, 14:44    [14558402]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
Infernal V. Raven
Вы не озвучили что задачи, такие, в которых требуется один сиквенс на несколько таблиц

Нет ни одной задачи, для которой вообще требовался бы сиквенс. А вот удобен - вполне.

Один сиквенс на несколько таблиц удобен во всех случаях, когда по нескольким сущностям разложено "что-то, обладающее общими чертами". Например, когда несколько наследников одного базового класса разложены каждый по своей таблице в БД - ну хотя бы те же самые классические физики-юрики. Аналогично, это удобно, например, когда требуется организовать "журнал операций", "журнал аудита" или что-то подобное - в общем, по идентификатору ссылаться на "произвольную запись в БД".
12 июл 13, 14:55    [14558512]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3795
softwarer
Infernal V. Raven
Вы не озвучили что задачи, такие, в которых требуется один сиквенс на несколько таблиц

Нет ни одной задачи, для которой вообще требовался бы сиквенс. А вот удобен - вполне.

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

вместе с реализацией сквозного идентити пришлось бы реализовывать и поддержку его в транзакциях. Имхо именно в этом причина
12 июл 13, 15:27    [14558762]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
Ivan Durak
вместе с реализацией сквозного идентити пришлось бы реализовывать и поддержку его в транзакциях. Имхо именно в этом причина

Я не знаю внутренней механики MSSQL, может быть поэтому не понимаю проблемы. Абстрактно же я проблемы совсем не вижу - и в оракле, и в последние годы в MSSQL последовательности работают, более того, всегда можно было "некрасиво эмулировать" этот механизм, просто заведя таблицу с единственным identity-полем, этакий своеобразный генератор.
12 июл 13, 15:54    [14559010]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
softwarer
Один сиквенс на несколько таблиц удобен во всех случаях, когда по нескольким сущностям разложено "что-то, обладающее общими чертами". Например, когда несколько наследников одного базового класса разложены каждый по своей таблице в БД - ну хотя бы те же самые классические физики-юрики. Аналогично, это удобно, например, когда требуется организовать "журнал операций", "журнал аудита" или что-то подобное - в общем, по идентификатору ссылаться на "произвольную запись в БД".
В этом случае используют GUID. Прикручивание сиквенса в этом случае выглядит как костыль.
12 июл 13, 15:54    [14559013]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3795
Infernal V. Raven
softwarer
Один сиквенс на несколько таблиц удобен во всех случаях, когда по нескольким сущностям разложено "что-то, обладающее общими чертами". Например, когда несколько наследников одного базового класса разложены каждый по своей таблице в БД - ну хотя бы те же самые классические физики-юрики. Аналогично, это удобно, например, когда требуется организовать "журнал операций", "журнал аудита" или что-то подобное - в общем, по идентификатору ссылаться на "произвольную запись в БД".
В этом случае используют GUID. Прикручивание сиквенса в этом случае выглядит как костыль.

гуид неудобен по своим причинам.
12 июл 13, 15:56    [14559031]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
Infernal V. Raven
В этом случае используют GUID. Прикручивание сиквенса в этом случае выглядит как костыль.

Боюсь, мне трудно воспринять это мнение как сколько-нибудь продуманное. Я понимаю, что человек может привыкнуть выкручиваться существующими средствами, но это совершенно не повод считать извращение нормальным, а нормальное решение - костылём.

Гуиды придуманы для независимой генерации идентификаторов в распределённых, неконтролируемых системах. Использование гуида в рамках системы, ограниченной единственным инстансом - уже, мягко говоря, забавное проектное решение.

Попробуйте отступить на шаг от привычной механики и подумать о таком понятии как "генератор id". И последовательность, и гуид являются некоторыми реализациями генератора. Концепция identity в MSSQL изначально нарушает одно из "весьма желательных" требований к генераторам, концепция последовательности в этом плане изначально выигрывает. Поскольку последовательностей в MS не было, кое-кто привык использовать вместо них третью реализацию, также соответствующую этому требованию, но со своими минусами. Привык. Ну.. последовательности появились, теперь можно делать нормально.
12 июл 13, 16:04    [14559112]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
mayton
Member

Откуда: loopback
Сообщений: 53016
Infernal V. Raven
softwarer
Один сиквенс на несколько таблиц удобен во всех случаях, когда по нескольким сущностям разложено "что-то, обладающее общими чертами". Например, когда несколько наследников одного базового класса разложены каждый по своей таблице в БД - ну хотя бы те же самые классические физики-юрики. Аналогично, это удобно, например, когда требуется организовать "журнал операций", "журнал аудита" или что-то подобное - в общем, по идентификатору ссылаться на "произвольную запись в БД".
В этом случае используют GUID. Прикручивание сиквенса в этом случае выглядит как костыль.

GUID это вообще серебрянная пуля которую можно советовать всем подряд. Но недостатки
его известны. Он имеет избыточно выскую разрядность для решения задач. И никто не захочет
чтобы 50% сегмента данных в БД занимали какие-то синтетические ключи.
12 июл 13, 16:11    [14559153]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3795
mayton
Infernal V. Raven
пропущено...
В этом случае используют GUID. Прикручивание сиквенса в этом случае выглядит как костыль.

GUID это вообще серебрянная пуля которую можно советовать всем подряд. Но недостатки
его известны. Он имеет избыточно выскую разрядность для решения задач. И никто не захочет
чтобы 50% сегмента данных в БД занимали какие-то синтетические ключи.

а еще он не возрастает при генерации!
12 июл 13, 16:18    [14559206]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
Весьма повеселило обсуждение GUID :)
Технари увидев слово GUID понеслись обсуждать его, забыв про исходную задачу - зачем требуется обеспечение уникальности в нескольких таблицах с использованием одного сиквенса?
Уникальность записи в БД чаще всего определяется названием таблицы и содержанием суррогатного ключа определенного по ней (без разницы сиквенс или идентити)

softwarer
Один сиквенс на несколько таблиц удобен во всех случаях, когда по нескольким сущностям разложено "что-то, обладающее общими чертами". Например, когда несколько наследников одного базового класса разложены каждый по своей таблице в БД - ну хотя бы те же самые классические физики-юрики.

Я думаю мне не нужно объяснять как проектируется в этом случае модель? И как связи между этими таблицами организуются, при этом с констрэинтами FK.

softwarer
Аналогично, это удобно, например, когда требуется организовать "журнал операций", "журнал аудита" или что-то подобное - в общем, по идентификатору ссылаться на "произвольную запись в БД".

А в чем сложность указания имени сущности и идентификатора? Это намного удобнее по сравнению выполнения поиска по всем сущностям с указанием ID поиска.
Т.е. задачи высосаны из пальца, пока я не вижу задач действительно требующих один сиквенс для использования в нескольких таблицах.
12 июл 13, 17:22    [14559733]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
Infernal V. Raven
В этом случае используют GUID.

Infernal V. Raven
Т.е. задачи высосаны из пальца

Когда человек в ходе разговора прыгает от позиции к позиции, мне приходится сделать вывод, что собственной позиции у него нет - вернее, что она сугубо неконструктивна, стиля "не соглашусь и всё тут". Продолжать беседу в этом случае я смысла не вижу - ну опровергну я вторую-третью-четвёртую позицию, он просто перепрыгнет на пятую и "эта музыка будет вечной".
12 июл 13, 17:30    [14559793]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
softwarer
Когда человек в ходе разговора прыгает от позиции к позиции, мне приходится сделать вывод, что собственной позиции у него нет - вернее, что она сугубо неконструктивна, стиля "не соглашусь и всё тут".
Г-н, softwarer, я попросил Вас сформулировать задачи для которых требуется то, что я озвучивал в постах выше.
Для меня это основная цель. Обсуждение GUID - это то, что возникло в ходе обсуждения этих задач и разговор ушел в сторону. Поэтому я и вернулся к интересующей меня теме.
Позицию я свою высказал, о чем также написал, ожидая от Вас обоснований либо более детальных описаний требований пресловутых задач.
softwarer
Продолжать беседу в этом случае я смысла не вижу - ну опровергну я вторую-третью-четвёртую позицию, он просто перепрыгнет на пятую и "эта музыка будет вечной".

Ну что тут сказать - в рамках форума невозможно человека призвать к ответу. Но не исключаю мысль о простом желании избежать неудобной темы.
12 июл 13, 17:37    [14559844]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
Infernal V. Raven
Г-н, softwarer, я попросил Вас сформулировать задачи для которых требуется то, что я озвучивал в постах выше.

Эти задачи сто раз озвучивались в куче флеймов "identity vs sequence" у нас на форуме. Вы попросили, я не стал посылать Вас в поиск, а в очередной раз озвучил. Был неправ?

Infernal V. Raven
Для меня это основная цель. Обсуждение GUID - это то, что возникло в ходе обсуждения этих задач и разговор ушел в сторону.

Я вижу ситуацию не так. Я озвучил задачи. Вы сказали: да не нужно решать это инструментом А, это решается инструментом Б. Вас опровергли. Тогда Вы делаете финт и говорите: да не нужно решать эти задачи инструментом А, это решается инструментом В. Не знаю как Вы, а я вижу в этом тенденцию и не собираюсь последовательно рассказывать о недостатков инструментов В, Г, Д итд поотдельности в разных возникающих ситуациях. Не хотите решать инструментом А - да не решайте, мне-то что?
12 июл 13, 17:46    [14559906]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
softwarer
Эти задачи сто раз озвучивались в куче флеймов "identity vs sequence" у нас на форуме. Вы попросили, я не стал посылать Вас в поиск, а в очередной раз озвучил. Был неправ?

Как говорится "для тех кто в танке", еще раз задача: что это за задачи такие, в которых требуется один сиквенс на несколько таблиц
Ваши варианты ответа:
- Эти задачи сто раз озвучивались в куче флеймов "identity vs sequence" у нас на форуме. При этом непонятно причем здесь identity
- Нет ни одной задачи, для которой вообще требовался бы сиквенс. А вот удобен - вполне.
- Один сиквенс на несколько таблиц удобен во всех случаях, когда по нескольким сущностям разложено "что-то, обладающее общими чертами". Например, когда несколько наследников одного базового класса разложены каждый по своей таблице в БД - ну хотя бы те же самые классические физики-юрики. Аналогично, это удобно, например, когда требуется организовать "журнал операций", "журнал аудита" или что-то подобное - в общем, по идентификатору ссылаться на "произвольную запись в БД".

Последний вариант похож на ответ :)
Только вот решается он без одного сиквенса на несколько таблиц и GUID.
Чем не устраивает GUID - в принципе понятно.
Чем вариант использования для идентификации произвольной записи в БД связки название таблицы и суррогатного ключа по сравнению с сиквенсом на несколько таблиц?

softwarer
Я вижу ситуацию не так. Я озвучил задачи. Вы сказали: да не нужно решать это инструментом А, это решается инструментом Б. Вас опровергли. Тогда Вы делаете финт и говорите: да не нужно решать эти задачи инструментом А, это решается инструментом В. Не знаю как Вы, а я вижу в этом тенденцию и не собираюсь последовательно рассказывать о недостатков инструментов В, Г, Д итд поотдельности в разных возникающих ситуациях. Не хотите решать инструментом А - да не решайте, мне-то что?

Ну надеюсь сейчас наше видение совпадет
12 июл 13, 18:01    [14559990]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
Infernal V. Raven
Чем [не устраивает] вариант использования для идентификации произвольной записи в БД связки название таблицы и суррогатного ключа по сравнению с сиквенсом на несколько таблиц?

Громоздко и неудобно. Такой вариант резонен тогда, когда основной операцией будет "видя запись в журнале, найти, с какими данными делались эти изменения" - чтобы не искать, в какой таблице есть такой ID. На практике задача чаще обратная - "видя данные, посмотреть, что с ними происходило", и тут описанный Вами подход в лучшем случае не даёт никакой выгоды, а в худшем - мешает в варианте проектирования, когда сущность размазана по нескольким таблицам.
12 июл 13, 18:12    [14560055]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
softwarer
Громоздко и неудобно. Такой вариант резонен тогда, когда основной операцией будет "видя запись в журнале, найти, с какими данными делались эти изменения" - чтобы не искать, в какой таблице есть такой ID. На практике задача чаще обратная - "видя данные, посмотреть, что с ними происходило", и тут описанный Вами подход в лучшем случае не даёт никакой выгоды, а в худшем - мешает в варианте проектирования, когда сущность размазана по нескольким таблицам.

Может я не понимаю, но задач "видя данные, посмотреть что с ними происходило" решается достаточно просто и с озвученым подходом Тип сущности+идентифкатор:
- исходя из того что мы видим объект, который мы анализируем - мы знаем его тип и идентификатор
- есть некая таблица аудита для разнотипных объектов, пусть хранящимся в разных таблицах и в ней хранится тип сущности и идентификатор объекта
- запросом по типу сущности и идентификатору получаем все операции

В этом случае параметра будет два, в случае общего сиквенса - один. Но предложенный вариант решает в т.ч. и задачу "найди в журнале объекты, по которым совершались такие вот действия", а вариант с общим сиквенсом, делает ее более трудоемкой. Нет?
12 июл 13, 19:00    [14560250]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение СУБД MS SQL Server и Oracle  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
softwarer
Громоздко и неудобно.

Ну и это конечно интересно. Потому как на практике я сталкивался с подобными решениями (идентификатор, который надо искать по всей базе) и с ними всегда было больше геммороя, потому как громоздко и неудобно :)
12 июл 13, 19:05    [14560259]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить