Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2009.02.08;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.016 c
2-1230284005
Шакал
2008-12-26 12:33
2009.02.08
Next


10-1152270238
Dok
2006-07-07 15:03
2009.02.08
Как вернуть вариантный массив?


2-1230138119
Евгений Р.
2008-12-24 20:01
2009.02.08
Цвет tLabel


15-1228938459
js jin
2008-12-10 22:47
2009.02.08
Загрузка страницы


15-1229124812
No_Dead
2008-12-13 02:33
2009.02.08
iertutil.dll не был найден... как решить проблему?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский