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

Вниз

Снова о Paradox vs IB   Найти похожие ветки 

 
KIR   (2002-09-18 11:03) [0]

Народ, после чтения ветки, посвященной сабжу, я понял что основное различие в подходе к созданию БД на Pardox"e и на IB заключается в использовании запросов вместо таблиц и триггеров/хранимых процедур вместо обычных процедур Дельфи, которые производят некие действия с БД. Правильно ли я понял: достаточно поменять таблицы на запросы, процедуры Дельфи сменить на хранимые процедуры, создать в IB такую же БД (с теми же таблицами и, соответственно полями), как и Paradox"e и можно пытаться перелезать?


 
-= Demon =-   (2002-09-18 11:25) [1]

Значит так.
Что значит "поменять таблицы на запросы"? Таблицы есть всегда и везде. Разница в том, что при использовании Paradox вся БД ограничивается только набором этих самых таблиц, а при работе с сервером БД (напр. Interbase, пакостная штука доложу я вам) понятие БД много расширяется - это еще и триггера, и хранимые процедуры, и генераторы, и просмотры, и ... Много чего, в общем.
А запрос - это способ доступа к данным БД, написанный на специальном языке - SQL. И к Paradox"у можно обращаться с помощью SQL-запросов, только надо использовать не TTable, a TQuery, что настоятельно советую.


 
MsGuns   (2002-09-18 11:48) [2]

Основное преимущество, ИМХО, клиент-серверного подхода в том, что
- совершенно не волнует проблема блокировок/разблокировок - головная боль Парадокса
- централизованный подход к реализации большей части логики обмена с БД, т.е. вопросы взаимоувязки, целостности, ссылок, прав доступа и т.д. информации БД решается на сервере, т.е. 1 раз для всех приложений (клиентов). Не надо при написании нового клиента морщить задницу, описывая по-новой всю топологию БД, обработчики OnDataChange,OnStateChange,BeforeXXX,AfterXXX и пр.
Ну и отдельный сыр - это РЕАЛЬНЫЕ транзакции (в парадоксе они представлены весьма куце) с возможностью откатов


 
KIR   (2002-09-18 13:42) [3]

>> -= Demon =- Я имел ввиду поменять таблицы на запросы в клиенте.


 
Mike Kouzmine   (2002-09-18 13:58) [4]

MsGuns © ->
- "совершенно не волнует проблема -блокировок/разблокировок - головная боль Парадокса" - Кто это Вам рассказал?
- "Ну и отдельный сыр - это РЕАЛЬНЫЕ транзакции (в парадоксе они представлены весьма куце) с возможностью откатов" - Кто Вам сказал, что они вообще реализованы?


 
3JIA9I CyKA   (2002-09-18 14:25) [5]

2Mike Kouzmine
>>Кто Вам сказал, что они вообще реализованы?
А сам проверял? Похоже, что нет.


 
Mike Kouzmine   (2002-09-18 14:35) [6]

А ты попробуй стартануть и изменить значение в полей в одной таблице сделать пост, изменить значения в другой т и сд пост, а потом, при изменении в третей передумать и сделать бэк, что получиться? Хрен с маслом.


 
3JIA9I CyKA   (2002-09-18 14:39) [7]

Делал и получалось.


 
Mike Kouzmine   (2002-09-18 14:42) [8]

Тогда беру свои слова обратно. Смрозил глупость. Хотя вериться с трудом, но тебе поверю :)


 
3JIA9I CyKA   (2002-09-18 14:43) [9]

Я, когда сделал, сам очень удивился - просто ведь по приколу проверял. Прокатило.


 
Mike Kouzmine   (2002-09-18 14:59) [10]

Верю. А какие-нибудь установки типа CashUpt в тру надо ставить или так катит?


 
KIR   (2002-09-19 00:16) [11]

Главное все по теме :)


 
Sergey13   (2002-09-19 09:26) [12]

2KIR © (19.09.02 00:16)
>Главное все по теме :)
По теме не плохо бы литературку почитать. Ее море.

Вкратце
>"использовании запросов вместо таблиц "
И да и нет.
Нет, потому что и с TTable все будет работать.
Да, потому что:
1. В запросе можно сформировать виртуальную таблицу, где сосредотачивается инфа из несколких физических таблиц.
2. (Главное). При работе с локальной БД на клиента тянется ВСЯ таблица(с некоторыми оговорками), а при кл.-серв. БД только нужные строки. Если например из таблицы в 1000000 записей ты хочешь посмотреть 1 конкретную, то по сети пройдет только она (выберется на серваке). При локальной БД притащатся все 1000000 и твоя прога отберет нужную.

>и триггеров/хранимых процедур вместо обычных процедур Дельфи
Нет, не совсем так. Одно другому не мешает, а взаимно дополняет. Существуют действия которые необходимо делать всегда при работе с данными не зависимо от клиентских программ. Например заполнять PK-поле. Такую работу нужно делать на сервере. В IB это решается как раз через тригер/хп которые срабатывают ВСЕГДА при добавлении строки в таблицу. Написав один тригер можно не заботиться о генерации PK во ВСЕХ программах.

Кроме того, есть очень классная вещь - ссылочная целостность. Это когда САМА БАЗА НЕ ДАСТ НИКОМУ стереть запись, если на нее ссылается запись из другой таблицы. Даже если юзер(или программист) о ней не знает.

Да дофига там еще чего...


 
3JIA9I CyKA   (2002-09-19 10:04) [13]

2Mike Kouzmine
А я помню? Полтора года прошло.


 
KIR   (2002-09-19 10:16) [14]

>> Sergey13

По теме не плохо бы литературку почитать. Ее море.


Может порекомендуете что-нибудь стоящее, т.к. литературки действительно море.


 
Sergey13   (2002-09-19 10:44) [15]

2KIR © (19.09.02 10:16)
>Может порекомендуете что-нибудь стоящее, т.к. литературки действительно море.
Из того что под рукой - А.Я. Архангельский "Прграммирование в Delphi4" - не самое лучшее, но основы даны.
В остальном - поищи в инете на тему "клиент-сервер", посмотри сранички "Книги" и "Статьи" на этом сайте, сходи на "Кролевство Делфи",... Ищущий да обрящет...


 
Юрий Жуков   (2002-09-19 11:05) [16]

Если интересует программирование по IB, то сходи на
http://ibase.ru
http://www.interbase-world.com/
на последнем есть ссылка на недавно вышедшую книгу "Мир InterBase"
Из классики ищи книгу М.Грабера в инете полно в электронном виде, можно наверное и в магазинах купить.


 
MsGuns   (2002-09-19 12:25) [17]

>Mike Kouzmine (18.09.02 13:58)
>- "совершенно не волнует проблема -блокировок/разблокировок - головная боль Парадокса" - Кто это Вам рассказал?

Никто. Сам с этой бедой боролся, борюсь и (к сожалению) еще долго буду бороться). Слышали про такие файлы *.lck ?
Это когда ТРАНЗАКЦИЯ (да-да, именно так и и называются у Борланда еще с 3.0 Paradox, а может и ранее) не завершена.
Т.е. прога получила доступ к таблице (Paradox авоматически накладывет на таблицу соотв.блокировку), а потом аварийно завершилась, при этом ядро Paradox "проспало" этот момент и блокировку оставило.

- "Ну и отдельный сыр - это РЕАЛЬНЫЕ транзакции (в парадоксе они представлены весьма куце) с возможностью откатов" - Кто Вам сказал, что они вообще реализованы?

Под понятием "транзакция" в Paradox считается логически завершенноая операция по модификации данных в таблице (таблицах).
Другими словами: в режиме позаписного редактирования транзакцией по-парадоксовски можно считать операцию по редактированию, удалению или вставке записи. Т.е. если прога в цикле меняет n записей, то и транзакций будет n+2 (n+открытие+закрытие таблицы). Если редактирование через буфер, тогда под транзакцией надо понимать автоматические "сбросы" буферов + "насильственные" ApplyUpdates
В режиме запросов транзакция имеет тот же смысл, что и в SQL, т.е. если в таблице удаляются все записи и по какой-то причине их не удалось удалить (вырубили свет), то исх.таблица остается "невредимой" безо всяких там "откатов". Правда это все не всегда работает именно так, как я написал (и док-я по P4.5, например, тоже), пожтому я и использовал слово "КУЦЕ"

А падение ключей/индексов и lck-шки действительно головная боль программиста, сопровождающего СЕТЕВЫЕ реализации на Парадоксе.


 
3JIA9I CyKA   (2002-09-19 12:31) [18]

2MsGuns ©
А падение ключей/индексов и lck-шки действительно головная боль программиста, сопровождающего СЕТЕВЫЕ реализации на Парадоксе.

Индексы замечательно валятся и ВаЩе без сети.
И это головная боль и юзеров, и программистов. Только дядя Борланд (парадоксов друг) на всё пЛюВал.


 
MsGuns   (2002-09-19 12:41) [19]

>3JIA9I CyKA © (19.09.02 12:31)
>Индексы замечательно валятся и ВаЩе без сети.

Я вообще стараюсь не использовать вторичных индексов,- только первичные ключи. Конечно, из-за этого приходится спец.образом проектировать сами табличные структуры, зато надежность в локалке быстро все окупает. Да и на сети без индексов получше



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.007 c
1-31869
Алексей Смирнов
2002-09-28 21:02
2002.10.10
Массив компонентов


14-31995
JohnnyJ
2002-09-17 04:49
2002.10.10
Давно мучает вопрос %))))))))


1-31758
Карлсон
2002-09-30 17:52
2002.10.10
как сохранять настройки?


1-31858
Walker
2002-09-29 00:39
2002.10.10
COM, интерфейсы


14-31973
программист_ищу_работу
2002-09-16 12:02
2002.10.10
у кого есть заголовок к библиотеке winpcap?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский