Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Alexey Sh
Member

Откуда: SPB
Сообщений: 1930
автор
Предположим клиент заблокировал запись и отвалился. Как будет вести себя СУБД?


Аксесс будет вести себя просто, если клиент отвалился, то и блокировки с файла снимутся.
При модификации данных в заголовок пишется флажок модификации. Если клиент отвалит до его снятия - база перейдёт в состояние Corrupted, нужно произвести Repair. Схему изложил очень грубо.
если интересно, как блокировки реализованы в аксессе
14 дек 04, 16:17    [1180414]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
В FP блокировку снимет файловый сервер. Через некоторое время. Если клиент "отвалился", установив блокировку, ничего страшного не случится, за исключением того, что в течение времени, пока файл-сервер ее не снимет, запись таблицы будет недоступна для операции записи. Кстати, наложение блокировки никогда не запрещает доступа по чтению.
Транзакции в VFP, конечно, есть, но они не такие, как в "серьезных" серверах БД. И если с точки зрения записи в таблицы БД они способны обеспечить должный уровень контроля и целостность при сохранении единого блока операций, то с точки зрения чтения не все так хорошо. Насколько я знаю, нет никакой гарантии, что в выборку одного пользователя не попадут данные из еще не до конца проведенной транзакции другого. Если не принять специальные меры. А именно, в особо критичных случаях придется ставить блокировку и перед чтением, а не только при записи. К счастью, такие случаи можно пересчитать по пальцам. ;-)
Хочу заметить, что в старых версиях FP вообще не было транзакций, но это не мешало реализовывать замухрявистую многопользовательскую работу одним только ручным наложением блокировок.
Отсюда и исторически сложившаяся в FP традиция работать "короткими транзакциями", о которых упоминал Sergey Ch (сколь угодно продолжительная работа пользователя с буфером, затем блокировка, тут же проверка, не изменились ли данные другими пользователями, пока шла работа с буфером, и тут же запись и снятие блокировки). Такому поведению соответствует теперешний режим "оптимистических блокировок" в VFP. Он применим практически всегда, за исключением случаев, когда за какой-либо ресурс идет сильная конкуренция. Тогда лучше блокировать, потом редактировать, потом писать и снимать блокировку. Кто первым встал - того и тапки. Это режим "пессимистических блокировок". Но и здесь надо так обустроить, чтобы надолго ресурс не блокировался.
Кстати, а ведь правило, согласно которому надо стараться как можно реже и на минимальное время блокировать ресурсы, оно ведь универсальное. ;-) Т.е. и в "серьезных" серверах негоже раздувать лог транзакций сверх всякой меры ;-)))
14 дек 04, 18:56    [1180965]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Yo!
Guest
Urri
В FP блокировку снимет файловый сервер. Через некоторое время. Если клиент "отвалился", установив блокировку, ничего страшного не случится, за исключением того, что в течение времени, пока файл-сервер ее не снимет, запись таблицы будет недоступна для операции записи.


это как :) ? может я конечно от прогресса в области файл-серверов отстал, но этож просто сервер-чудотворец получается. как файл сервер может узнать который юзер что-то там покарежил в заголовке дбф файлика, да и еще и коректно откарежить этот заголовок обратно ??
14 дек 04, 19:16    [1180991]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
Так ведь не покорежил же еще ;-) Блокировка ставится на уровне ОС файл-сервера ;-)
Другое дело, если пользователь запись не только заблокировал, но и писать туда начал уже - и отвалился в это время. Это уже, как правило, приводит к разной тяжести сбоям. Ну а простая блокировка - это еще как бы и ничего. ;-)
14 дек 04, 19:24    [1180999]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
Да, возможно, мои знания несколько устаревшие - я описал работу скорее со свободными таблицами, а вот что творится в контейнере БД (это отдельная, специальная таблица) во время транзакции, плохо себе представляю.
14 дек 04, 19:28    [1181003]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Yo!
Guest
>Так ведь не покорежил же еще ;-) Блокировка ставится на уровне ОС файл-сервера ;-)

непонял ... есть файлик, его можно на уровне ос залочить только целиком. что не канает. дальше есть заголовок файлика, там фокс хранит инфо о блокировках. какая связь этого заголовка и оси сервера на котором лежит файлик ??
14 дек 04, 19:29    [1181006]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
Файлико можно на уровне ос залочить и по частям.
14 дек 04, 19:31    [1181008]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Zaxx
Guest
Sergey Ch
К сожалению VFP поддерживает только что-то среднее на уровне READ COMMITTED + SERIALIZABLE , то есть если есть открытая транзакция, то остальные пользователи читать не могут данные.


Urri
Насколько я знаю, нет никакой гарантии, что в выборку одного пользователя не попадут данные из еще не до конца проведенной транзакции другого.


Странно, эти два утверждения противоречат друг другу. "Sergey Ch" - говорит про блокировку , а "Urri" про DIRTY READS и отсутствие блокировки по чтению. Кто же прав ???
14 дек 04, 21:13    [1181104]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Yo!
Guest
>Файлико можно на уровне ос залочить и по частям.

лет 10 назад так умел только новель, а как же фокс работает на win9x ? и действительно если блокируется часть файла на уровне оси как другой юзер хотябы прочитает эту часть ??

и в гугле нихера не нашел, зато нашел как там забавно с индексами:
http://forum.foxclub.ru/read.php?f=5&i=82145&t=82145#reply_82145
14 дек 04, 22:03    [1181147]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898
Yo!
лет 10 назад так умел только новель

уже сто лет так умеет делать любая винда

аксес, например, активно использует блокировку частей файла (правда, не основного, а специально выделенного под это дело)
15 дек 04, 01:14    [1181408]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Zaxx
Guest
Лох Позорный
аксес, например, активно использует блокировку частей файла (правда, не основного, а специально выделенного под это дело)


А может, таки, он куски файла не блокирует, а пишет флажки - признаки блокировки записи в файл " специально выделенный под это дело" ?
15 дек 04, 06:40    [1181465]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
Так никто и не сказал, есть транзакции в FP или нет:-(.
P.S. Много много лет назад нарвались мы на большую каку - в момент регистрации нового авто (это была БД МРЭО) один хороший человек вырубил сервер на котором была БД угонов. Регистрация затргивала порядка 5-6 таблиц и проверка на угон шла где-то посередине "транзакции". Можете себе представить радость рукопашной правки таблиц по 80-120 Мб размерами. Согласитесь - типичная ситуация. И не редкая. Поэтому я утверждал и буду утверждать - нет транзакций, нет СУБД. Это и к MySQL относится тоже, хотя говорят, что это сервер БД.
15 дек 04, 10:00    [1181684]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
nik_x
Member

Откуда:
Сообщений: 1887
f_w_p
Так никто и не сказал, есть транзакции в FP или нет:-(.
P.S. Много много лет назад нарвались мы на большую каку - в момент регистрации нового авто (это была БД МРЭО) один хороший человек вырубил сервер на котором была БД угонов. Регистрация затргивала порядка 5-6 таблиц и проверка на угон шла где-то посередине "транзакции". Можете себе представить радость рукопашной правки таблиц по 80-120 Мб размерами. Согласитесь - типичная ситуация. И не редкая. Поэтому я утверждал и буду утверждать - нет транзакций, нет СУБД. Это и к MySQL относится тоже, хотя говорят, что это сервер БД.


В том понимании, как это описано у Кодда - НЕТ.
А после этой "каки", на Oracle перешли?
15 дек 04, 10:41    [1181845]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8894
Zaxx
Sergey Ch
К сожалению VFP поддерживает только что-то среднее на уровне READ COMMITTED + SERIALIZABLE , то есть если есть открытая транзакция, то остальные пользователи читать не могут данные.


Urri
Насколько я знаю, нет никакой гарантии, что в выборку одного пользователя не попадут данные из еще не до конца проведенной транзакции другого.


Странно, эти два утверждения противоречат друг другу. "Sergey Ch" - говорит про блокировку , а "Urri" про DIRTY READS и отсутствие блокировки по чтению. Кто же прав ???

Скорее всего оба. Я имел в виду пессиместическую блокировку а Urri опимистическую, то есть в его случае клиент в памяти своего компьютера выполнил операцию, но сервер ее еще не начал осуществлять - если сделать выборку в данный момент, то данные будут старые.

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

И не надо забывать, что FoxPro работает очень быстро с данными и блокировки проходят незаметно для пользователей при правильной работе с базай данных - причем справедливы правила как и для всех БД - все делать только через триггеры или ХП - а в них уже писать Вашу бизнес - логику...
15 дек 04, 11:09    [1181945]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8894
f_w_p
Так никто и не сказал, есть транзакции в FP или нет:-(.

В FPD транзакций не было - там шел пакет для Novell. Так вот этот пакет позволял очень хорошо отслеживать транзакции на уровне OS. Неоднократно и не только мной проводились эксперименты - выключалось питание сервера в момент проведения транзакций... После включения питани во время загрузки сервера выдавалось сообщение - у вас столь-ко то незавершенных транзакций - сейчас произойдет откат... И все возвращалось в исходное сосотояние...

Да, связкака Novell+FPD 2.6 работала очень хорошо, надежнее многих современных клиент-серверов :) Да и программы мы тогда писали с большим количеством мысли :)
15 дек 04, 11:16    [1181973]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8894
f_w_p
Sergey Ch
Чего не хватало раньше FoxPro? Правильно, тонкой прослойки, котрая бы слушала запросы от клиента и посылала бы ему назад ответы. Начиная с 7 версии MS вживил в VFP Web Services - и тем самым првератив FoxPro в одну из самых быстрых клиент-серверных СУБД...

Это не клиент-сервер. Это трехзвенное приложение. Причем между APP сервером и СУБД все равно отношения файл серверные и никуда вы от этого не денетесь.


А что, клиент-сервер после получения запроса от клиента работает как-то иначе? Скорее всего нет - все тот-же файл-сервер, но на одной машине, ничего нового, увы - еще не придумали а SQL Server - это та-же прослойка что и Web Serveices для FoxPro, только туда (SQL Server) встроили немного логики...
15 дек 04, 11:23    [1182006]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Alexey Sh
Member

Откуда: SPB
Сообщений: 1930
Zaxx
Лох Позорный
аксес, например, активно использует блокировку частей файла (правда, не основного, а специально выделенного под это дело)


А может, таки, он куски файла не блокирует, а пишет флажки - признаки блокировки записи в файл " специально выделенный под это дело" ?


Зачем гадать? Никаких флажков, я ссылку кидал.
в Винде блокировки на участки файла - логические, они не препятствуют операциям чтения/записи, т.е работают на уровне соглашений между процессами, совместно использующих файйл
15 дек 04, 11:33    [1182051]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
f_w_p
Так никто и не сказал, есть транзакции в FP или нет

Так это зависит от того, какую совокупность мероприятий мы объявим достаточной, чтобы ее можно стало назвать термином "транзакция". ;-)
Если мы будем подразумевать под наличием транзакций в системе только наличие механизма, обеспечивающего целостность некоей логически единой совокупности атомарных операций изменения данных, включая запрет изменения данных другим пользователем или процессом, пока не завершена отработка этой совокупности, и возможность либо целиком сохранить изменения, либо откатить их так же целиком, если что-то пойдет не так, то, безусловно, транзакции в VFP есть. Но механизм транзакций VFP не спасает от порчи таблиц при выключении питания на сервере. И при вылете пользователя посередине незавершенной транзакции не спасает тоже.
15 дек 04, 11:47    [1182124]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
nik_x
А после этой "каки", на Oracle перешли?
Таки перешли ;-)))
15 дек 04, 11:54    [1182162]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
Urri
nik_x
А после этой "каки", на Oracle перешли?
Таки перешли ;-)))

Да. Я, правда, как раз свалил на другое место работы, а мои бывшие коллеги перешли на Oracle под нетварь. Уж не помню какая версия, наверное 7.* какая-то.
15 дек 04, 12:38    [1182336]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
Urri
Но механизм транзакций VFP не спасает от порчи таблиц при выключении питания на сервере. И при вылете пользователя посередине незавершенной транзакции не спасает тоже.

Ну так это не транзакция. Это нечто иное, только маскируется хорошо:-)
15 дек 04, 12:41    [1182354]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
karly™
Guest
f_w_p
Много много лет назад нарвались мы на большую каку - в момент регистрации нового авто (это была БД МРЭО) один хороший человек вырубил сервер на котором была БД угонов. Регистрация затргивала порядка 5-6 таблиц и проверка на угон шла где-то посередине "транзакции". Можете себе представить радость рукопашной правки таблиц по 80-120 Мб размерами.

А что мешало сначала выполнить все проверки, а потом единым пакетом сохранить данные на диск? Так логичнее с любой точки зрения.

f_w_p
Согласитесь - типичная ситуация. И не редкая.

Не соглашусь. Редкая и не типичная. Или у вас вырубить сервер - как покурить выйти?
Последний раз я сталкивался с повреждением таблиц году в 98. С тех пор то ли сети научились хорошо прокладывать, то ли Винда стала меньше виснуть

f_w_p
Поэтому я утверждал и буду утверждать - нет транзакций, нет СУБД. Это и к MySQL относится тоже, хотя говорят, что это сервер БД.

Что называть термином "СУБД" - дело вкуса. Думаю, использовать для БД МРЭО Oracle - правильное решение по многим причинам. А не только потому что "с новой базой сервер стали реже отключать" ;-)
15 дек 04, 14:36    [1182889]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
karly™
А что мешало сначала выполнить все проверки, а потом единым пакетом сохранить данные на диск? Так логичнее с любой точки зрения.

Что мешало сейчас уже не упомнишь - все ж 11 лет прошло.

karly™
f_w_p
Согласитесь - типичная ситуация. И не редкая.

Не соглашусь. Редкая и не типичная. Или у вас вырубить сервер - как покурить выйти?
Последний раз я сталкивался с повреждением таблиц году в 98. С тех пор то ли сети научились хорошо прокладывать, то ли Винда стала меньше виснуть

При чем здесь физическое повреждение таблиц. Я о нарушении целостности говорил.
15 дек 04, 15:41    [1183163]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
Yo!
Urri
В FP блокировку снимет файловый сервер. Через


это как :) ? может я конечно от прогресса в области файл-серверов отстал,


В некоторых OS есть API для блокировки областей файлов (в которых в свою очередь есть тайм-аут на блокировку).
FoxPro его может использовать. На сколько я помню, это было (и есть) в Nowell, и для FoxPro для DOS были доп. библиотеки, которые позволяли блокировать записи с использованием этого API.
В LanManager (т.е. в Win32 ) тоже может быть такое API, а если оно есть, то современный Fox наверняка его использует.
16 дек 04, 12:04    [1185054]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатные десктопные СУБД лучше FoxBase в природе существуют?  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
Транзакции в современном FoxPro есть, но они не соответствуют стандарту ANSI SQL (не обеспечивают durability). Это не значит, что их нет. Просто они другие.
16 дек 04, 12:07    [1185070]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить