Конференция "Базы" » MySQL 5.0 - "клон" Interbase ?
 
  • MsGuns © (24.06.08 11:20) [0]
    Вчера писал рецензию на дипломную работу и, просматривая раздел записки с описанием скрипта создания БД, наткнулся на генераторы, триггеры After/Befor, UDF-ки и прочие интербэйзовые штучки.
    Был зело удивлен
  • Правильный-Вася (24.06.08 11:25) [1]
    а ты уверен, что этот диплом не срисован с интербейза?
    а то текст - одно, а программа может быть и другой
  • Ega23 © (24.06.08 11:32) [2]

    > генераторы, триггеры After/Befor, UDF-ки и прочие интербэйзовые
    > штучки.


    С какого перепуга они интербэйзовские?
  • Правильный-Вася (24.06.08 11:41) [3]

    > С какого перепуга они интербэйзовские?

    генератора в стандарте нет, а в поздних редакциях это вообще сиквенсы
    udf в стандарте нет, хотя в некоторых субд они присутствуют, имхо, раньше они появились в Ib
    кстати, триггеры в стандарте тоже отсутствовали, емнип
    по крайней мере, "до/после", да еще и по нескольку штук каждого вида на таблицу с указанием порядка срабатывания
  • Johnmen © (24.06.08 16:40) [4]

    > Правильный-Вася   (24.06.08 11:41) [3]
    > генератора в стандарте нет, а в поздних редакциях это вообще сиквенсы

    Сиквенс это псевдоним генератора.

    > MsGuns ©   (24.06.08 11:20) 

    Да, стараются разработчики "недобазу", как тут кто-то говорил, привести в человеческий вид.
  • Правильный-Вася (24.06.08 16:43) [5]

    > Сиквенс это псевдоним генератора.

    это в FB 2 для совместимости со стандартом, когда эти сиквенсы все-таки появились
  • Правильный-Вася (24.06.08 16:44) [6]
    в смысле, когда появились в стандарте
  • Johnmen © (24.06.08 16:46) [7]

    > это в FB 2 для совместимости со стандартом, когда эти сиквенсы
    > все-таки появились

    Что это "это"?
    И что за "стандарт"? Где его почитать?
  • MsGuns © (24.06.08 16:47) [8]
    >Johnmen ©   (24.06.08 16:40) [4]
    >Да, стараются разработчики "недобазу", как тут кто-то говорил, привести в человеческий вид.

    Интересно? а кто-нибудь из наших с нею работал ? Было бы любопытно услышать впечатления
  • Правильный-Вася (24.06.08 16:57) [9]

    > И что за "стандарт"? Где его почитать?

    http://www.ncb.ernet.in/education/modules/dbms/SQL99/
  • Поросенок Винни-Пух © (24.06.08 17:04) [10]
    я работал немного.
    то была бд онлайнового сервиса (честно говоря игрухи) в которой велась некая статистика. меня попросили её несколько расширить.
    попробовал начать с серверной логики - там голяк (4.х версия была)
    пришлось писать обраьотку с клиента. начал с dbexpress, вроде все нормальноЮ, без проблем. пока не встретил пятерку. там авторизация была сделана как-то по другому и без костылей работать не удавалось.
    перешел на прямой доступ (пакет от crlab). вот там все в шоколаде.
  • Johnmen © (24.06.08 17:14) [11]

    > Правильный-Вася   (24.06.08 16:57) [9]

    А первый вопрос?

    > http://www.ncb.ernet.in/education/modules/dbms/SQL99/

    Что конкретно из этой ссылки?
  • Правильный-Вася (24.06.08 17:24) [12]

    > А первый вопрос?

    ключевое слово "сиквенс" появилось в FB как синоним генератора, потому как генератора в стандарте нет, а а сиквенс - есть, а суть - одинаковая

    > Что конкретно из этой ссылки?

    все ansi-iso*1999.pdf
  • Johnmen © (24.06.08 17:31) [13]

    > все ansi-iso*1999.pdf

    Там во всех в них про стандарт "сиквенса"?

    > а суть - одинаковая

    Кто-то разве возражал?
  • Игорь Шевченко © (24.06.08 22:17) [14]
    насколько я знаю, генераторов, равно как и sequence и прочих autoincrement в стандарте не было ? Или я совсем старый стандарт читал ?
  • PEAKTOP © (25.06.08 00:14) [15]
    > MsGuns ©   (24.06.08 11:20)
    > Был зело удивлен


    А че удивительного - папа у обоих изделий один: Джим Старки. Его, по-моему, с MySQL 3.25 к разработке привлекли, видать маркетологи просчитали, что в комплекте с Джимом Старки MySQL Sun-у можно подороже загнать :)

    Кто же мог подумать, что он свалит, чтобы разрабатывать свою СУБД, которая "будет работать в облаках" (смейтесь, смейтесь - дословная цитата: http://www.firebirdnews.org/?p=1742)

    Скажу даже более - читал релизноты MySQL 6.0, который щаз в состоянии альфы. По тактико-техническим характеристикам шестерка уже из СУБД становиться в ряд с SQL-серверами (транзитивность-многоверсионность-изолированность-"ручной контроль транзакций"). Так что у нашего Птица появиться еще один конкурент.

    > насколько я знаю, генераторов, равно как и sequence и прочих autoincrement в стандарте не было ?

    Дык, кто ж его видел этот стандарт - самому интересно было поглядеть на эти самые SEQUENCE. Дима Еманов просто объявил - теперь есть синоним SEQUENCE. Возможно, в Вулкане (Firebird 3.0) снесем генераторы на фиг, так что вот вам время, чтобы плавно перейти на новый синтаксис SEQUENCE, типа это все давно обсуждалось и решение принято. Где именно обсуждалось - гугль так и не ответил. Видать, у них(разработчиков) между собой.
  • Petr V. Abramov © (25.06.08 00:27) [16]
    FB идет за синтаксисом Oracle - update...returning, sequence и т.д.
    И ПРАВИЛЬНО делает
  • Loginov Dmitry © (25.06.08 00:43) [17]
    > Возможно, в Вулкане (Firebird 3.0) снесем генераторы на
    > фиг, так что вот вам время, чтобы плавно перейти на новый
    > синтаксис SEQUENCE, типа это все давно обсуждалось и решение
    > принято.


    SEQUENCE только и умеет что "1" прибавлять.
    Генераторы же прибавляют и убавляют что угодно, тем самым много более полезны.
    Имхо, оставят :)
  • Кщд (25.06.08 09:19) [18]
    >Loginov Dmitry ©   (25.06.08 00:43) [17]
    >Генераторы же прибавляют и убавляют что угодно, тем самым много более полезны.
    если не сложно, приведите пример выгоды от такого поведения?
    ни капли сарказма - действительно, интересно
  • MsGuns © (25.06.08 09:49) [19]
    Сиквенсы можно "вручную" устанавливать или сбрасывать как генераторы ? Если да, не вижу преимуществ вторых перед первыми.
  • Ega23 © (25.06.08 09:50) [20]

    > И ПРАВИЛЬНО делает


    Оракл - ацтой, ini-файлы рулят!
  • Правильный-Вася (25.06.08 11:00) [21]

    > Оракл - ацтой, ini-файлы рулят!

    оракл - это система уравления ини-файлами, только они зашифрованы
    а ты не знал?
    ;)

    > >Генераторы же прибавляют и убавляют что угодно, тем самым
    > много более полезны.если не сложно, приведите пример выгоды
    > от такого поведения?

    да хотя бы то, что можно самому варьировать шаг генератора в любом месте, а не только при создании (хочу, добавлю 10, хочу - единицу), как в оракле
    генераторы можноприменить ведь не только для создания искусственных первичных ключей
  • Anatoly Podgoretsky © (25.06.08 11:04) [22]
    > MsGuns  (25.06.2008 9:49:19)  [19]

    Неплохо бы уточнить, что такое Сиквенс, а то слухи ходят разные, мол это какая то сверхособенная сущность.
  • Кщд (25.06.08 14:28) [23]
    >Правильный-Вася   (25.06.08 11:00) [21]
    произвольный шаг - через небольшую самописную ф-цию:
    gen_id(p_sequence_name => 'sequence_name', p_step => :step)

    не то?
  • Правильный-Вася (25.06.08 16:40) [24]

    > произвольный шаг - через небольшую самописную ф-цию:

    а в обратную сторону?
  • PEAKTOP © (25.06.08 18:53) [25]
    > SEQUENCE только и умеет что "1" прибавлять.
    > Генераторы же прибавляют и убавляют что угодно, тем самым много более полезны.
    > Имхо, оставят :)

    Возможно, в Оракле так и есть - конкретно систаксис и особенности Оракла я не знаю, так что судить не могу.

    > а в обратную сторону?

    В ЖарПтице это не более чем, как замена одного служебного слова другим, GEN_ID никуда не денется. Удобства, конечно прибавилось: можно прямо в Insert делать автоинкремент без триггера
    INSERT INTO MY_TABLE(ID, NAME)VALUES(NEXT VALUE FOR <SEQUENCE_NAME>, 'VALUE');

    , но "внутрях" сервера ничего не поменялось. Также прирост значения SEQUENCE в Firebird в функции GEN_ID может быть отрицательным. Хочешь "расти" на вставке не на единицу, - пожалуйста, хочешь расти "в обратную сторону" - кто не дает ?

    > Неплохо бы уточнить, что такое Сиквенс, а то слухи ходят разные, мол это какая то сверхособенная сущность.

    Ничего нового. Просто в разных SQL серверах стали появляться транзитивно-независимые переменные (например, в MySQL они называются VARIABLES), которые используют в качестве генераторов уникальных значений по образу и подобию того, как в InterBase с давних времен использовали GENERATOR. Чтоб не путаться и иметь кросс-серверные скрипты создания метаданных БД договорились, что отныне они будут именоваться SEQUENCE у всех.
  • Anatoly Podgoretsky © (25.06.08 20:19) [26]
    > PEAKTOP  (25.06.2008 18:53:25)  [25]

    Вот взял все и приземлил, некоторые Ораклисты утверждают, что SEQUENCE в Оракл не имеет аналогов, IB/FB/MsSQL это всего лишь бледные поделки.
  • Loginov Dmitry © (25.06.08 22:23) [27]
    > Удобства, конечно прибавилось: можно прямо в Insert делать
    > автоинкремент без триггера INSERT INTO MY_TABLE(ID, NAME)
    > VALUES(NEXT VALUE FOR <SEQUENCE_NAME>, 'VALUE');


    А чем это отличается от возможности
    INSERT INTO MY_TABLE(ID, NAME)VALUES(GEN_ID(<SEQUENCE_NAME>, 1), 'VALUE');


    которая есть с давних времен?
  • Игорь Шевченко © (25.06.08 22:50) [28]

    > Возможно, в Оракле так и есть - конкретно систаксис и особенности
    > Оракла я не знаю, так что судить не могу.


    В оракле много чего есть - он большой и толстый

    > можно прямо в Insert делать автоинкремент без триггера INSERT
    > INTO MY_TABLE(ID, NAME)VALUES(NEXT VALUE FOR <SEQUENCE_NAME>,
    >  'VALUE');


    ну да, ну да.

     INSERT INTO foo(id,name) VALUES ((SELECT foo_seq.NEXTVAL FROM dual),
       'NAME');
  • Кщд (26.06.08 06:00) [29]
    >Правильный-Вася   (25.06.08 16:40) [24]
    >а в обратную сторону?
    собственно, этим и интересовался: в чем практическая необходимость декремента?
  • Кщд (26.06.08 06:08) [30]
    Игорь Шевченко ©   (25.06.08 22:50) [28]

    >INSERT INTO foo(id,name) VALUES ((SELECT foo_seq.NEXTVAL FROM dual),'NAME');
    теперь можно и без select from dual
  • Sergey13 © (26.06.08 08:51) [31]
    > [24] Правильный-Вася   (25.06.08 16:40)
    > а в обратную сторону?

    Вроде как в оракловой секвенции есть параметр increment by, который может быть и отрицательным.
  • Правильный-Вася (26.06.08 11:06) [32]

    > есть параметр increment by, который может быть и отрицательным

    может
    но нельзя одновременно сиквенс то вперед, то назад дергать

    > в чем практическая необходимость декремента?

    генераторы можно применить ведь не только для создания искусственных первичных ключей

    а уж в однопользовательских системах это вообще простор для фантазии
  • MsGuns © (26.06.08 11:37) [33]
    >а уж в однопользовательских системах это вообще простор для фантазии

    Ну почему же в однопользовательских ?
    У меня генераторы используются для нумерации документов в системе. Для каждого типа документов - свой генератор, сбрасываемый 1-го января если нужно.
  • Sergey13 © (26.06.08 11:57) [34]
    > [32] Правильный-Вася   (26.06.08 11:06)
    > но нельзя одновременно сиквенс то вперед, то назад дергать

    Ну и слава богу! 8-)
    Они не для того и придуманы.
  • Правильный-Вася (26.06.08 12:06) [35]

    > Они не для того и придуманы.

    узко смотришь
    это всего лишь глобальная переменная базы
    а как ее использовать, дело разработчика
    если он видит в ней смысл только для автоинкремента, его право
    но не стоит ограничивать других
  • Sergey13 © (26.06.08 13:11) [36]
    > [35] Правильный-Вася   (26.06.08 12:06)
    > узко смотришь

    Так китаец я. 8-)

    > это всего лишь глобальная переменная базы
    Это просто разный подход производителя к проблеме. Некторыми вещами производитель позволяет играться, другими нет. У оракла помнится около 200 настроечных параметров, у жарптицы меньше десятка вроде. У жарптицы возможны несколько одновременных транзакций в одной сессии у оракла 1. Плохо ли хорошо ли - не знаю, но вот от ораклистов как то меньше поступает вопросов на тему "я вставил запись - где она". Оракл не дает так лихо рулить сиквенсами, поэтому наверное у его пользователей поменьше и конфликтов при вставке. Хотя мне сложно придумать применение для игр с генератором при многопользовательской работе.
  • PEAKTOP © (26.06.08 14:49) [37]
    > Хотя мне сложно придумать применение для игр с генератором
    > при многопользовательской работе.


    Да ну есть такие области применения. Например, когда учетная система - Распределенная СУБД, и ежедневно филиальные базы приносят на флешках на центральный офис и скидывают в общую папку. Кто их потом подгрузит в центральную базу - леший ведает. Вот и надо обеспечить НЕвозможность одновременной подгрузки одного и того же филиала с разных компов. Тут на помощь транзитивно-независимые переменные и приходят.
  • Anatoly Podgoretsky © (26.06.08 14:52) [38]
    > Правильный-Вася  (26.06.2008 11:06:32)  [32]

    Генераторы придуманы не для создания каких либо ключей и единственно только для генерации значений, вне транзакции, они вообще к полям отношения не имеют, а то что в ИБ/ФБ их используют для иммитации автоинкриметных полей так это из-за недостатков ИБ/ФБ.
  • Правильный-Вася (26.06.08 15:26) [39]

    > в ИБ/ФБ их используют для иммитации автоинкриметных полей
    > так это из-за недостатков ИБ/ФБ.

    это как раз достоинство, а не недостаток
    автоинкрементные поля - зло, их невозможно использовать нормально
  • Johnmen © (26.06.08 16:08) [40]

    > автоинкрементные поля - зло, их невозможно использовать
    > нормально

    Главный программист планеты, Б.Гейтс, с тобой не согласен.
    А я с ним заодно...
  • Sergey13 © (26.06.08 16:13) [41]
    > [37] PEAKTOP ©   (26.06.08 14:49)

    Я честно говоря не особо понял зачем при этом рулить туда-сюда генератором, но наверное ты прав - найти применение можно. Но для меня трудно. 8-)
  • Правильный-Вася (26.06.08 17:26) [42]

    > Главный программист планеты, Б.Гейтс
    > А я с ним заодно...

    "не сотвори себе кумира"
  • Johnmen © (26.06.08 17:46) [43]

    > "не сотвори себе кумира"

    Хм... А где про кумира?
  • Anatoly Podgoretsky © (26.06.08 20:02) [44]
    > Правильный-Вася  (26.06.2008 15:26:39)  [39]

    Использовать нельзя, а иммитировать можно.
    У тебя все в порядке с логикой?
    А еше Правильный
  • Правильный-Вася (26.06.08 20:36) [45]

    > У тебя все в порядке с логикой?

    у меня в порядке, а у тебя проблемы с восприятием написанного
    перечитай еще раз
    не все, что можно делать, стоит делать
 
Конференция "Базы" » MySQL 5.0 - "клон" Interbase ?
Есть новые Нет новых   [134434   +28][b:0][p:0.001]