Текущий архив: 2009.02.08;
Скачать: CL | DM;
Вниз
MySQL 5.0 - "клон" Interbase ? Найти похожие ветки
← →
MsGuns © (2008-06-24 11:20) [0]Вчера писал рецензию на дипломную работу и, просматривая раздел записки с описанием скрипта создания БД, наткнулся на генераторы, триггеры After/Befor, UDF-ки и прочие интербэйзовые штучки.
Был зело удивлен
← →
Правильный-Вася (2008-06-24 11:25) [1]а ты уверен, что этот диплом не срисован с интербейза?
а то текст - одно, а программа может быть и другой
← →
Ega23 © (2008-06-24 11:32) [2]
> генераторы, триггеры After/Befor, UDF-ки и прочие интербэйзовые
> штучки.
С какого перепуга они интербэйзовские?
← →
Правильный-Вася (2008-06-24 11:41) [3]
> С какого перепуга они интербэйзовские?
генератора в стандарте нет, а в поздних редакциях это вообще сиквенсы
udf в стандарте нет, хотя в некоторых субд они присутствуют, имхо, раньше они появились в Ib
кстати, триггеры в стандарте тоже отсутствовали, емнип
по крайней мере, "до/после", да еще и по нескольку штук каждого вида на таблицу с указанием порядка срабатывания
← →
Johnmen © (2008-06-24 16:40) [4]
> Правильный-Вася (24.06.08 11:41) [3]
> генератора в стандарте нет, а в поздних редакциях это вообще сиквенсы
Сиквенс это псевдоним генератора.
> MsGuns © (24.06.08 11:20)
Да, стараются разработчики "недобазу", как тут кто-то говорил, привести в человеческий вид.
← →
Правильный-Вася (2008-06-24 16:43) [5]
> Сиквенс это псевдоним генератора.
это в FB 2 для совместимости со стандартом, когда эти сиквенсы все-таки появились
← →
Правильный-Вася (2008-06-24 16:44) [6]в смысле, когда появились в стандарте
← →
Johnmen © (2008-06-24 16:46) [7]
> это в FB 2 для совместимости со стандартом, когда эти сиквенсы
> все-таки появились
Что это "это"?
И что за "стандарт"? Где его почитать?
← →
MsGuns © (2008-06-24 16:47) [8]>Johnmen © (24.06.08 16:40) [4]
>Да, стараются разработчики "недобазу", как тут кто-то говорил, привести в человеческий вид.
Интересно? а кто-нибудь из наших с нею работал ? Было бы любопытно услышать впечатления
← →
Правильный-Вася (2008-06-24 16:57) [9]
> И что за "стандарт"? Где его почитать?
http://www.ncb.ernet.in/education/modules/dbms/SQL99/
← →
Поросенок Винни-Пух © (2008-06-24 17:04) [10]я работал немного.
то была бд онлайнового сервиса (честно говоря игрухи) в которой велась некая статистика. меня попросили её несколько расширить.
попробовал начать с серверной логики - там голяк (4.х версия была)
пришлось писать обраьотку с клиента. начал с dbexpress, вроде все нормальноЮ, без проблем. пока не встретил пятерку. там авторизация была сделана как-то по другому и без костылей работать не удавалось.
перешел на прямой доступ (пакет от crlab). вот там все в шоколаде.
← →
Johnmen © (2008-06-24 17:14) [11]
> Правильный-Вася (24.06.08 16:57) [9]
А первый вопрос?
> http://www.ncb.ernet.in/education/modules/dbms/SQL99/
Что конкретно из этой ссылки?
← →
Правильный-Вася (2008-06-24 17:24) [12]
> А первый вопрос?
ключевое слово "сиквенс" появилось в FB как синоним генератора, потому как генератора в стандарте нет, а а сиквенс - есть, а суть - одинаковая
> Что конкретно из этой ссылки?
все ansi-iso*1999.pdf
← →
Johnmen © (2008-06-24 17:31) [13]
> все ansi-iso*1999.pdf
Там во всех в них про стандарт "сиквенса"?
> а суть - одинаковая
Кто-то разве возражал?
← →
Игорь Шевченко © (2008-06-24 22:17) [14]насколько я знаю, генераторов, равно как и sequence и прочих autoincrement в стандарте не было ? Или я совсем старый стандарт читал ?
← →
PEAKTOP © (2008-06-25 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 © (2008-06-25 00:27) [16]FB идет за синтаксисом Oracle - update...returning, sequence и т.д.
И ПРАВИЛЬНО делает
← →
Loginov Dmitry © (2008-06-25 00:43) [17]> Возможно, в Вулкане (Firebird 3.0) снесем генераторы на
> фиг, так что вот вам время, чтобы плавно перейти на новый
> синтаксис SEQUENCE, типа это все давно обсуждалось и решение
> принято.
SEQUENCE только и умеет что "1" прибавлять.
Генераторы же прибавляют и убавляют что угодно, тем самым много более полезны.
Имхо, оставят :)
← →
Кщд (2008-06-25 09:19) [18]>Loginov Dmitry © (25.06.08 00:43) [17]
>Генераторы же прибавляют и убавляют что угодно, тем самым много более полезны.
если не сложно, приведите пример выгоды от такого поведения?
ни капли сарказма - действительно, интересно
← →
MsGuns © (2008-06-25 09:49) [19]Сиквенсы можно "вручную" устанавливать или сбрасывать как генераторы ? Если да, не вижу преимуществ вторых перед первыми.
← →
Ega23 © (2008-06-25 09:50) [20]
> И ПРАВИЛЬНО делает
Оракл - ацтой, ini-файлы рулят!
← →
Правильный-Вася (2008-06-25 11:00) [21]
> Оракл - ацтой, ini-файлы рулят!
оракл - это система уравления ини-файлами, только они зашифрованы
а ты не знал?
;)
> >Генераторы же прибавляют и убавляют что угодно, тем самым
> много более полезны.если не сложно, приведите пример выгоды
> от такого поведения?
да хотя бы то, что можно самому варьировать шаг генератора в любом месте, а не только при создании (хочу, добавлю 10, хочу - единицу), как в оракле
генераторы можноприменить ведь не только для создания искусственных первичных ключей
← →
Anatoly Podgoretsky © (2008-06-25 11:04) [22]> MsGuns (25.06.2008 9:49:19) [19]
Неплохо бы уточнить, что такое Сиквенс, а то слухи ходят разные, мол это какая то сверхособенная сущность.
← →
Кщд (2008-06-25 14:28) [23]>Правильный-Вася (25.06.08 11:00) [21]
произвольный шаг - через небольшую самописную ф-цию:
gen_id(p_sequence_name => "sequence_name", p_step => :step)
не то?
← →
Правильный-Вася (2008-06-25 16:40) [24]
> произвольный шаг - через небольшую самописную ф-цию:
а в обратную сторону?
← →
PEAKTOP © (2008-06-25 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 © (2008-06-25 20:19) [26]> PEAKTOP (25.06.2008 18:53:25) [25]
Вот взял все и приземлил, некоторые Ораклисты утверждают, что SEQUENCE в Оракл не имеет аналогов, IB/FB/MsSQL это всего лишь бледные поделки.
← →
Loginov Dmitry © (2008-06-25 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");
которая есть с давних времен?
← →
Игорь Шевченко © (2008-06-25 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");
← →
Кщд (2008-06-26 06:00) [29]>Правильный-Вася (25.06.08 16:40) [24]
>а в обратную сторону?
собственно, этим и интересовался: в чем практическая необходимость декремента?
← →
Кщд (2008-06-26 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 © (2008-06-26 08:51) [31]> [24] Правильный-Вася (25.06.08 16:40)
> а в обратную сторону?
Вроде как в оракловой секвенции есть параметр increment by, который может быть и отрицательным.
← →
Правильный-Вася (2008-06-26 11:06) [32]
> есть параметр increment by, который может быть и отрицательным
может
но нельзя одновременно сиквенс то вперед, то назад дергать
> в чем практическая необходимость декремента?
генераторы можно применить ведь не только для создания искусственных первичных ключей
а уж в однопользовательских системах это вообще простор для фантазии
← →
MsGuns © (2008-06-26 11:37) [33]>а уж в однопользовательских системах это вообще простор для фантазии
Ну почему же в однопользовательских ?
У меня генераторы используются для нумерации документов в системе. Для каждого типа документов - свой генератор, сбрасываемый 1-го января если нужно.
← →
Sergey13 © (2008-06-26 11:57) [34]> [32] Правильный-Вася (26.06.08 11:06)
> но нельзя одновременно сиквенс то вперед, то назад дергать
Ну и слава богу! 8-)
Они не для того и придуманы.
← →
Правильный-Вася (2008-06-26 12:06) [35]
> Они не для того и придуманы.
узко смотришь
это всего лишь глобальная переменная базы
а как ее использовать, дело разработчика
если он видит в ней смысл только для автоинкремента, его право
но не стоит ограничивать других
← →
Sergey13 © (2008-06-26 13:11) [36]> [35] Правильный-Вася (26.06.08 12:06)
> узко смотришь
Так китаец я. 8-)
> это всего лишь глобальная переменная базы
Это просто разный подход производителя к проблеме. Некторыми вещами производитель позволяет играться, другими нет. У оракла помнится около 200 настроечных параметров, у жарптицы меньше десятка вроде. У жарптицы возможны несколько одновременных транзакций в одной сессии у оракла 1. Плохо ли хорошо ли - не знаю, но вот от ораклистов как то меньше поступает вопросов на тему "я вставил запись - где она". Оракл не дает так лихо рулить сиквенсами, поэтому наверное у его пользователей поменьше и конфликтов при вставке. Хотя мне сложно придумать применение для игр с генератором при многопользовательской работе.
← →
PEAKTOP © (2008-06-26 14:49) [37]> Хотя мне сложно придумать применение для игр с генератором
> при многопользовательской работе.
Да ну есть такие области применения. Например, когда учетная система - Распределенная СУБД, и ежедневно филиальные базы приносят на флешках на центральный офис и скидывают в общую папку. Кто их потом подгрузит в центральную базу - леший ведает. Вот и надо обеспечить НЕвозможность одновременной подгрузки одного и того же филиала с разных компов. Тут на помощь транзитивно-независимые переменные и приходят.
← →
Anatoly Podgoretsky © (2008-06-26 14:52) [38]> Правильный-Вася (26.06.2008 11:06:32) [32]
Генераторы придуманы не для создания каких либо ключей и единственно только для генерации значений, вне транзакции, они вообще к полям отношения не имеют, а то что в ИБ/ФБ их используют для иммитации автоинкриметных полей так это из-за недостатков ИБ/ФБ.
← →
Правильный-Вася (2008-06-26 15:26) [39]
> в ИБ/ФБ их используют для иммитации автоинкриметных полей
> так это из-за недостатков ИБ/ФБ.
это как раз достоинство, а не недостаток
автоинкрементные поля - зло, их невозможно использовать нормально
← →
Johnmen © (2008-06-26 16:08) [40]
> автоинкрементные поля - зло, их невозможно использовать
> нормально
Главный программист планеты, Б.Гейтс, с тобой не согласен.
А я с ним заодно...
Страницы: 1 2 вся ветка
Текущий архив: 2009.02.08;
Скачать: CL | DM;
Память: 0.56 MB
Время: 0.006 c