Текущий архив: 2005.07.25;
Скачать: CL | DM;
Вниз
Блокировка операций изменения данных Найти похожие ветки
← →
analyzer (2005-06-14 09:18) [0]Уважаемые мастера подскажите пожалуйста.
Имеется подобие СУБД с компонентами query,datasource и т.д необходимо чтобы когда один пользователь в сети входил в режим редактирования происходила блокировока операций изменения для других пользователей.В компоненте table есть функция lock,а в в query я ничего подобного не наблюдаю.Подскажите как быть.Заранее благодарен
← →
Sergey13 © (2005-06-14 09:26) [1]Какое имя у "подобия СУБД"?
← →
analyzer (2005-06-14 09:29) [2]Написаная на дельфе.В качестве таблиц используются DBF...
← →
Sergey13 © (2005-06-14 09:32) [3]2 [2] analyzer (14.06.05 09:29)
>В качестве таблиц используются DBF...
Боюсь, что это будет непросто, как минимум.
← →
analyzer (2005-06-14 09:38) [4]Етто точно.А по поводу функции lock() компонента table кто может что рассказать?
← →
Anatoly Podgoretsky © (2005-06-14 09:50) [5]Ну раз подобие, то все в твоих руках.
← →
Тучудище (2005-06-14 09:51) [6]Table.Lock(ltWriteLock)
Table.Lock(ltReadLock)
Table.Unlock(ltWriteLock)
Table.Unlock(ltReadLock)
← →
analyzer (2005-06-14 09:54) [7]А можно ли эту красоту в query поюзать?
← →
size=20 (2005-06-14 09:55) [8]Отказать от этого подобия в пользу подобия с транзакциями - ФБ, МСДЕ и т.п.
← →
analyzer (2005-06-14 09:58) [9]Да транзакции вещь полезная,но данном случае не уместная...
← →
msguns © (2005-06-14 10:05) [10]А что, нельзя с помощью TTable заблокировать таблицу, а с помощью TQuery ее читать - менять ?
Правда, что это будет за уе...ще, одному господу известно ;(
← →
msguns © (2005-06-14 10:07) [11]А какой смысл в сетевом доступе к БД, если все равно более чем одному юзеру доступ к таблице невозможен ?
← →
analyzer (2005-06-14 10:14) [12]Насчет юзанья table и query паралельно я думал ,но изврат конечно такой что страшно подумать...
Невозможно одновременное редактирование ,а доступ на чтение паралельный.
← →
Val © (2005-06-14 10:14) [13]>analyzer (14.06.05 09:18)
Раз работаете с дбф так и блокируйте их классически, с помощью TTable. Думаю, вполне нормальный вариант создать ряд процедурок, в которой будет создаваться экземпляр TTable с указанным именем таблицы(и что там еще нужно будет), локироваться, разлокироваться и освобождаться.
← →
Val © (2005-06-14 10:15) [14]сорри за повтор. не увидел пока писал.
← →
msguns © (2005-06-14 10:20) [15]>analyzer (14.06.05 10:14) [12]
>Невозможно одновременное редактирование ,а доступ на чтение паралельный.
Для подобных целей (разграничение возможностей) используются логины и права. Если БД локальная, то реализуется программно. "Админ"-информацию хранить в отдельной таблице БД.
← →
Anatoly Podgoretsky © (2005-06-14 10:24) [16]Val © (14.06.05 10:14) [13]
Какие TTable, у него же своия СУБД, а TTable это уже БДЕ.
Кстати в сети это красиво выглядит, когда пользователь входит в редактирование, а потом отходит по делам не закончив его или в случае сбоя программы. Красота неописуемая.
← →
Val © (2005-06-14 10:30) [17]> [16] Anatoly Podgoretsky © (14.06.05 10:24)
Он говорит о квери, сравнивая с ттейбл, подозреваю, что все-таки движок БДЕ.
Блокировки таблиц везде красиво выглядят, но их используют. Как вариант используется сброс локирования по таймеру, но, при отсутствии транзакций...не мне вам объяснять.
← →
Anatoly Podgoretsky © (2005-06-14 10:33) [18]Он говорит "Имеется подобие СУБД"
← →
Val © (2005-06-14 10:39) [19]ага, сделанное в делфи, добавляет он. программка, которая написана на чем-угодно и просматирвает одну табличку - вполне тянет на субд :) давайте не будем отвечать за автора и дождемся его ответа.
← →
msguns © (2005-06-14 10:45) [20]Скорее всего, дбф-то нормальное, а вот работает с нею подобие программиста ;)
← →
analyzer (2005-06-14 10:53) [21]Уважаемые мастера!
Слово "подобие" было применено как раз для того чтобы подчеркнуть уровень сего произведения.Естественно использоваться в практических целях оно не будет.Это курсовая по бд..........
← →
Val © (2005-06-14 10:56) [22]скажите, все-таки слово БДЕ - знакомо? используется ли этот движок в вашей программе?
← →
analyzer (2005-06-14 10:57) [23]Конечно используется.Я думал уточнять это не требуется.
← →
Zacho © (2005-06-14 11:16) [24]analyzer (14.06.05 10:57) [23]
Требуется. Кроме BDE имеется ещё множество движков для работы с БД. А твой пост без этого уточнения поняли так, как то, что ты использешь свой самодельный движок.
← →
analyzer (2005-06-14 11:26) [25]Тут все намного проще
← →
size=20 (2005-06-14 11:33) [26]
> Да транзакции вещь полезная,но данном случае не уместная...
неуместно изобретать велосипед и геморой на свой зад
← →
msguns © (2005-06-14 12:19) [27]Было бы неплохо огласить тему "курсовой по бд" как она звучит в официальном, тасазать, виде
← →
analyzer (2005-06-14 13:40) [28]Если есть такое желание то вот тема:
Курсовая работа по СУБД
По выбранной теме в некоторой предметной области
разработать базу данных и комплекс программ по управлению
этой базой.
Курсовая работа должна содержать следующие разделы:
1. Концептуальная (внешняя) модель предметной области,
которая должна включать описание представлений о
предметной области не менее 2-х пользователей в
следующем виде:
1.1 Описание объктов предметной области, их
атрибутов и связей между объектами;
1.2 Описание функциональных зависимостей, имеющих
место в предметной области;
1.3 Описание способов, форм обработки и представ-
ления сведений о хранимой в базе данных инфор-
мации (не менее 3-х запросов);
1.4 Дополнительные требования;
1.5 Модель предметной области ввиде схемы "Объекты-
связи".
2. Логическая модель предметной области с использованием
реляционной модели.
При этом необходимо выполнить следующее:
2.1 Разработать схемы базовых отношений;
2.2 Описать домены атрибутов всех отношений;
2.3 Построить множество функциональных зависимостей;
2.4 Построить неприводимое множество функциональных
зависимостей;
2.5 Построить множество супер-ключей.
2.6 По множеству супер-ключей построить множество
потенциальных ключей. Доказать их потенциальность.
2.7 Выбрать первичные ключи. Обосновать выбор.
2.8 Провести нормализацию отношений до уровня
не ниже 3НФ. На каждом этапе нормализации
обосновывать выбор первичных ключей для
каждого отношения.
2.9 Разработать предикат для проверки целостности
базы данных.
2.10 Описать требуемые виртуальные отношения.
2.11 Разработать реляционные выражения для реализа-
ции запросов.
3. Фическая (внутренняя) модель, которая должна содержать
тексты программ для создания и поддержки всех исполь-
зуемых отношений, визуализацию запросов ввиде экран-
ных форм и документов.
При реализации внутренней модели особое внимание
уделить выполнению следующих правил Кодда:
- физическая независимость данных;
- логическая независимость данных;
- дистрибутивная независимость.
Разрабатываемое программное обеспечение должно
реализовывать сетевой, многопользовательский способ
доступа, содержать инструкции по инсталяции программ-
ного обеспечения и базовых отношений.
Требуется обеспечить простое изменение основных
констант, характеризующих предметную область типа:
название организации, фамилия руководителя и т.д.
← →
Sergey13 © (2005-06-14 13:47) [29]2[28] analyzer (14.06.05 13:40)
>Разрабатываемое программное обеспечение должно
реализовывать сетевой, многопользовательский способ
доступа
Ты неверно выбрал инструмент реализации этого пункта.
Ибо
>В качестве таблиц используются DBF
← →
msguns © (2005-06-14 13:50) [30]Если не секрет, то какая же "предметная область" выбрана для реализации задачи ?
← →
analyzer (2005-06-14 14:21) [31]2 Sergey13
Да сетевой,многопользовательский режим это обязательное условие.
2 msguns
СПИСОК ПРЕДМЕТНЫХ ОБЛАСТЕЙ:
1. Библиотека
2. Видиотека(фонотека)
3. Общежитие студентов
4. Гостиница
5. Студенческий профком
6. Бюро знакомств
7. Деканат
8. Кафедра
9. Почтовое отделение
10. Телефонная компания
11. Торговый склад
12. Поликлиника
13. Учет автотранспорта (для ГИБДД)
14. Архив ИНТЕРПОЛА
15. Учет коммунальных платежей
16. Торговый зал магазина
17. Фирма по продаже недвижимости
18. Рекламная газета
19. Школа
20. Отдел кадров
21. Приемная комиссия института
22. База переписи населения
23. Налоговая инспекция
24. Аэропорт (учет самолетов, служащих, рейсов, билетов, вылетов и т.д.)
25. ЖД (учет поездов,служащих, направлений следовання, продажи билетов, отправлений и т.д.)
Я выбрал телефонную компанию,точнее оператора сотовой связи,т.к. сам работаю в телекомуникационной компании и имею опыт работы с билинговыми системами на основе oracle.
← →
Val © (2005-06-14 14:32) [32]
> имею опыт работы с билинговыми системами на основе oracle.
В качестве кого? Как-то это не соотносится с вопросом.
← →
Sergey13 © (2005-06-14 14:32) [33]2 [31] analyzer (14.06.05 14:21)
Как же тебя после Оракла на дибейс то потянуло? 8-)
← →
Danilka © (2005-06-14 14:42) [34]во житуха-то пошла!
один в качестве курсовика свой движок к бд делает, другой - биллинг на дбф-ках, утверждая что транзакции в данном случае неуместны. :)
← →
msguns © (2005-06-14 14:45) [35]Ну так если есть представление о БД сотовой связи, модель инфопотоков в студию !
← →
Sergey13 © (2005-06-14 14:58) [36]2[35] msguns © (14.06.05 14:45)
Зачем они тебе? Поиздеваться? 8-)
2[31] analyzer (14.06.05 14:21)
Самое простое, ИМХО, что можно предложить (раз БДЕ) - это скачай ФайрБерд сделай базенку аналогичную по структуре с имеющейся и подсунь ее программе вместо своей. В принципе все должно заработать почти без переделки (для курсовика сойдет). И можно говрить преподу, что блокировки в системе не нужны.
← →
analyzer (2005-06-14 15:03) [37]Удалено модератором
Примечание: У нас не принято матюгаться
← →
analyzer (2005-06-14 15:06) [38]2sergey13
Я хочу сделать все без организации клиент-серверной херни.А фиреберд это как я понимаю имено к-с субд.
Видел бы ты этого препода...Втер бы ты ему ченить... )))
← →
Sergey13 © (2005-06-14 15:10) [39]2[37] analyzer (14.06.05 15:03)
>Я не знаю сколько тебе лет ,
Не расстраивай меня. Много. 8-)
>но если ты помнишь основная задача курсовой быть сданной,а все остальное мелочи.
Помню, как ни странно. Но ведь эти мелочи тебе покоя не дают, а не мне. Что, твой препод будет по коду лазать и блокировки искать? Или многопользовательский режим организовывать?
← →
Val © (2005-06-14 15:10) [40]>[37,38] analyzer (14.06.05 15:03)
Вы чушь несете, простите. Такой курсовик логичнее было бы реализовывать именно на клиент-сервере, а не файл-сервере. И заметного усложнения при переходе на клиент-сервер при такой небольшой задаче я не вижу.
← →
ANB © (2005-06-14 15:10) [41]
> 2Sergey13
> Я не знаю сколько тебе лет ,но если ты помнишь основная
> задача курсовой быть сданной,а все остальное мелочи.Если
> бы я делал клиент-серверное приложение,тем более на оракле
> я бы просто зае№;%я такие курсовики писать.
1. На хами
2. На оракле все было бы намного проще
3. Если очень нужны блокировки (я так понимаю, записей, а не всей таблицы), заведи доп. поле таблице, пиши туда какую нибудь инфу при включении блокировки и стирай ее при разблокировке. Перед блокированием проверяй (ОТДЕЛЬНЫМ ЗАПРОСОМ), что эта запись еще не блокирована. И сделай принудительную разблокировку. Подход кривой, но рабочий, я даже в оракловых реализациях такое видел.
← →
Val © (2005-06-14 15:13) [42]> [41] ANB © (14.06.05 15:10)
3. сервер оракла обычно блокирует при изменении именно на уровне записей, этого НЕ НАДО делать.
← →
analyzer (2005-06-14 15:21) [43]2 ANB
Вот это то что мне пришло в голову после первого ответа на мой пост и скорее всего я так и сделаю.Только у меня был садистко-извращеный вариант текстового файла со структурой:
название таблицы заблокированые записи
abons.dbf иванов
петров
cals.dbf 89999999999
97777777778
и т.д.
Всем спасибо за ответы и желание помочь ,седня буду делать.
← →
ANB © (2005-06-14 15:21) [44]
> 3. сервер оракла обычно блокирует при изменении именно на
> уровне записей, этого НЕ НАДО делать.
- смотря чем к нему коннектится, как изменять и как настроить эту возможность. Гы. Кстати, если изначально у меня все юзеры в соседних кабинетах сидят, а их не больше 10 будет (по ТЗ), - почему бы и нет ? Сейчас у меня такая задача стоит в перспективе, так как потеря данных при одновременном изменении хуже, чем блокировка редактирования хоть даже на несколько часов (в смысле, в моем проекте).
← →
ANB © (2005-06-14 15:22) [45]
> analyzer (14.06.05 15:21) [43]
- ну с текстовым файлом ты маханул. Есть еще реализации с отдельной таблицей блокировок. Тоже жизненно.
← →
analyzer (2005-06-14 15:25) [46]2 ANB
Где ты видел хамство в моих постах?
Надеюсь Sergey13 не обиделся насчет вопроса по кол-ва лет,я так думаю он сам или студент или был им в недавне прошлом.
Всем GL&HF
← →
msguns © (2005-06-14 15:27) [47]>analyzer (14.06.05 15:03) [37]
>Какие инфопотоки.Билинг приходит со станции,обрабатывается,тарифицируется и рассовывается по счетам абонентов и все дела.А то понимаешь инфопотоки какие-то...
Прежде чем укладывать чемодан в дорогу, некисло было б узнать куда направляешься: в Египед или на Северный полюс. От этого существенно зависит содержимое этого самого чемодана.
Ти пишешь "биллинг". Это что за зверь ? У него есть информационные характеристики: реквизиты, объемы, требования по надежности и избыточности и т.д. Кто или что источник ? Какова надежность линий связи и т.д.
"Счета абонентов". Какие реквизиты ? Какова схема хранения и пополнения данных ?
С таким подходом невозможно решить ни одной даже простенькой задачки с БД. Что уж говорить о таком монстре, как телефония с ее объемами и требованиями по скорости и транзакционности.
Понятно теперь, почему препод-зверь.
Вместо нормальной постановки задачи и проектирования модели данных визгливый вопрос "как заблокировать таблицу" ?
А теперь представь себе, что будет с телефонией, если при связи таблица абонентов будет заблокирована ?! При одновременном доступе хотя бы тысячи абонентов ?
Мой совет: быстро смени тему. Ну хоть вон школу возми. Типа расписания уроков и учет там чего-нить, типа успеваемости. Иначе этот препод на тебе выспится ;))
← →
ANB © (2005-06-14 15:29) [48]
> analyzer (14.06.05 15:25) [46]
> 2 ANB
>
> Где ты видел хамство в моих постах?
Ну не очень вежливый наезд в :
> 2Sergey13
> Я не знаю сколько тебе лет ,но если ты помнишь основная
> задача курсовой быть сданной,а все остальное мелочи.
Можно было и анкету глянуть.
← →
ANB © (2005-06-14 15:31) [49]
> msguns © (14.06.05 15:27) [47]
- думаю, билинг ему как раз и не нужен.
← →
Sergey13 © (2005-06-14 15:32) [50]2[46] analyzer (14.06.05 15:25)
Я (или мой ник) так молодо выгляжу? Спасибо. 8-)
2[38] analyzer (14.06.05 15:06)
>Я хочу сделать все без организации клиент-серверной херни.
Я пебе говорил уже, что ты ошибся с выбором инструмена, конкретно БД. Ибо эта "клиент-серверная херня" делает как раз то, что ты тут хочешь практически без всякой организации с твоей стороны. Этим собственно она и отличается от файл-серверной "херни".
← →
Val © (2005-06-14 15:38) [51]> [50] Sergey13 © (14.06.05 15:32)
разве не 13? 8О
;)
>[44] ANB © (14.06.05 15:21)
Потому что вы явно сделаете лишние телодвижения, мешающие работе сервера. Блокируйте явно, используйте пессимистическую блокировку, раз боитесь потерять данные при одновременном изменении записей...
← →
analyzer (2005-06-14 15:41) [52]Удалено модератором
Примечание: С перебранкой в персональную почту
← →
analyzer (2005-06-14 15:47) [53]
> Ну не очень вежливый наезд в :
И наездов никаких не было..А анкета вещь полезная быстро меняет
ты на вы.
← →
analyzer (2005-06-14 15:50) [54]2Sergey13
Да я согласен что в итоге было бы гораздо проще сделать клиент-серверное проложение,но было так в лом переделывать то что писалось целых пару часов что я решил домучать эту прогу,тем более что осталось мелочь...
← →
ANB © (2005-06-14 15:51) [55]
> Val © (14.06.05 15:38) [51]
> > [50] Sergey13 © (14.06.05 15:32)
> разве не 13? 8О
> ;)
> >[44] ANB © (14.06.05 15:21)
> Потому что вы явно сделаете лишние телодвижения, мешающие
> работе сервера.
- я их вообще не делаю. В квере одака можно включить и выключить блокировку при редактировании.
← →
Sergey13 © (2005-06-14 15:59) [56]2[54] analyzer (14.06.05 15:50)
8-)
Страницы: 1 2 вся ветка
Текущий архив: 2005.07.25;
Скачать: CL | DM;
Память: 0.63 MB
Время: 0.042 c