|
|
ru.website- RU.WEBSITE ------------------------------------------------------------------- From : Eugene A Belousov 2:5034/1 10 Mar 2001 08:18:07 To : All Subject : Re: Хoчу заделать WebServer -------------------------------------------------------------------------------- "Alexis Nazarbayev" wrote... > > Привет Eugene! > > 06 Mar 01 17:26, Eugene A Belousov -> All: > > >> они не нужны. не "можно обойтись без транзакций", а "не нужны вовсе". > EB> И все-таки... > EB> Как можно организовать online-маназин в частности, и любую систему, > EB> обновляющую БД, не используя транзакций и делая LOCK TABLE на определенные > EB> таблицы в exclusive mode? > будешь смеяться, но локтаблес тоже редко используется. угу. живой пример: пользователь заказывает товар. создается заголовок заказа, отбираются конкретные позиции, проверяется кол-во на складе, проверяется превышение допустимой задолженности, товар списывается со склада, если закончился товар, то запись о нем удаляется. при этом все это происходит интерактивно, например, в течение 10 минут. И в самый последний момент нажимается кнопка cancel. Или другой клиент вламывается и тот же товар забирает. Что проще, вручную писать код для отката или просто rollback сказать? Тут иногда даже вложенные транзакции городить приходится... > >> майскуэль не полноценная реляционная бд? в чём же заключается её > >> неполноценность? > EB> Собственно список неполноценностей есть в документации на mysql: > EB> 1. Транзакции. > EB> 2. Ограничения целостности. > EB> 3. Хранимые процедуры. > EB> 4. Триггеры. > EB> 5. Подзапросы. > EB> 6. Много всего прочего, достаточно сравнить доки по последней версии > EB> Oracle и MySQL. > EB> Однако, сравнивая стоимость Oracle 9i и MySQL, > EB> с этими недостатками (за исключением транзакций) можно смириться ;) > ого. и всё это входит в реляционную модель? я же спросил, почему mysql не > _полноценная реляционная бд_ ? Hу ссылки на Кодда тут уже кидали. Я, конечно свалил тут в кучу все, но ведь мы же не на лекции ;) mysql не есть rdbms хотя бы по Codd's rule 10. С теоретической точки зрения этого вполне достаточно. А с практической точки зрения, если СУБД не предоставляет ничего из вышеперечисленного, я никак не могу считать ее полноценной, безотносительно к Коддовским правилам. Даже в однопользовательской среде наличие транзакций позволяет уменьшить объем кодирования в несколько раз, про ограничения целостности тоже, думаю, понятно. Hафиг проверять в коде, то, что можно задекларировать? По поводу хранимых процедур. Вот например мне надо пройтись по всем товарным позициям на складе и выдать прайс с установленной для данного клиента наценкой. Так хранимая процедура прекрасненько все это выдаст в форме обычного курсора, который можно отдать куда хочешь. А иначе как? через ... По поводу триггеров. Вот надо мне при изменении БД вести журнал: кто и когда изменил запись, а старые данные пометить как архивные/удаленные да еще из новых данных на старые ссылку сделать. Можно и без триггера, но ведь проще же триггер написать. Или например такая милая штука как триггер "instead of" в Oracle, при помощи которого можно прописать обновление любой вьюхи, хоть с агрегированием. -- Евгений А Белоусов, media@kosnet.ru --- Microsoft Outlook Express 5.50.4133.2400 * Origin: Kostroma Telegraph & Telephone station (2:5034/1@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.website/12050ea8560ca.html, оценка из 5, голосов 10
|