Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.58 MB
Время: 0.015 c
2-1230151206
Nostalgia
2008-12-24 23:40
2009.02.08
символы


15-1228913461
atruhin
2008-12-10 15:51
2009.02.08
Качество кода VCL


15-1228484974
ANTPro
2008-12-05 16:49
2009.02.08
SQL людям :о)


2-1230027493
Slav
2008-12-23 13:18
2009.02.08
Добавить текст на изображение JPEG


15-1228816032
Petr V. Abramov
2008-12-09 12:47
2009.02.08
Работа кипит