регистрация | карта сайта
Постоянно обновляемая лента новостей
Обзоры, комментарии и статьи
Даты и дополнительная информация о событиях компьютерного рынка
Контакты, виды деятельности, предложения и другая информация о компьютерных компаниях
Новости, анонсы и пресс-релизы компьютерных компаний
Конференции с участием ведущих специалистов и экспертов
Информация для пользователей ITware, изменения персональных настроек, персональные закладки и web-карточки, служба переадресации
   
    
     Как искать?   Расширенный поиск
 ITware :. Конкурс статей Borland      Вход для зарегистрированных пользователейВыход

Конкурс статей Borland
Главная страница
Правила участия
Общий рейтинг
Призовой фонд
Сообщество ITware

Логин:
Пароль:
Забыли пароль? Забыли логин?

Зарегистрируйтесь сейчас - это абсолютно бесплатно!
Подпишитесь на рассылку ITware, чтобы ежедневно получать анонсы последних новостей и свежих материалов


CHIP online
Best Buy
Посоветуйся с Чипом!
Downloads

Контакты
Редакция:

Web-мастер:

 
Реклама




I Love BDE
24 мая 2003 20:06  bo2 количество баллов: 5

В этой статье я собираюсь рассказать о небольших (настольных) базах
данных, точнее об их создании с использованием Delphi + BDE + Paradox.

Многим BDE не нравится по причине сложности распространения и настройки,
но мне кажется, что это вполне приемлемая цена за те средства, которые
он взамен предоставляет.

Используя это сочетание (Delphi + BDE + Paradox) мы получаем следующие
преимущества;

- VCL - на нем можно сделать качественный интерфейс приложения;

- DBGrid - трудно придумать что-нибудь проще, интуитивное
и функциональнее;

- TTable - для небольших таблиц - просто и удобно;

- TQuery - для больших таблиц - возможность применять SQL;

- BDE + Paradox - как бы не было сложно его распространять и
настраивать, но SQL-сервер все же сложнее;

- переход на SQL-сервер происходит довольно безболезненно из-за
удачной реализации в Delphi компонентов доступа к данным, т.е.
логику приложения переделывать не придется.

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

Ну, во-первых, использовать эти механизмы стоит если организация данных
достаточно сложна. Например для телефонного справочника вполне достаточно
dBase файла + компонент прямого доступа к нему. На мой взгляд существуют
следующие признаки необходимости использовать описываемые инструменты:

- количество таблиц > 10;

- количество записей в самой длинной таблице > 1000;

- количество пользователей > 1;

- объем базы > 1Mb.

С другой стороны, если база продолжает расти, то пора подумать о переходе
на SQL-сервер. Кстати фирма Borland в настоящий момент заморозила проект
BDE и развивать его дальше не собирается, а программистам даже для
настольных баз советует использовать InterBase Personal. Но если все-таки
мы используем Paradox, то симптомами необходимости перехода на SQL-сервер
могут быть следующие показатели;

- количество таблиц > 50;

- количество записей в самой длинной таблице > 1 000 000;

- количество пользователей > 10;

- количество пользователей, активно изменяющих базу > 3;

- объем базы > 100Mb.

Теперь, когда база данных более-менее обрела очертания, позволю себе дать
несколько советов, которые помогут вам лучше построить свою базу с
использованием Delphi + BDE + Paradox.


1. Изучите реляционные базы данных.

Правильно организованные данные - это 80% успеха программы, SQL
предназначен для реляционных баз и только в них можно использовать
всю его мощь, а если не не использовать SQL, то весь смысл BDE
теряется, тогда лучше перейти на компоненты прямого доступа к dBase
файлам.

Могу посоветовать книги "Основы современных баз данных" С.Д. Кузнецова
и "Основы проектирования реляционных баз данных" В.В. Кириллова,
которые легко можно найти в сети.


2. Правильно создавайте индексы.

Индексы - это основной способ увеличения быстродействия базы данных,
более действенного способа пока не придумали, поэтому к созданию
индексов надо подойти очень серьезно.

- Для каждой таблицы создайте первичный ключ, индекс по нему
будет создан автоматически.

- Создайте индексы для всех внешних ключей.

- Индексируйте те столбцы, по которым часто производится отбор.

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

- Индексы замедляют обновление таблицы.


3. Для больших таблиц используйте TQuery, т.к. TTable на больших таблицах
фильтруются очень медленно.


4. Для ускорения храните в базе промежуточные итоги.

Это некоторое отступление от реляционной модели, но без этого иногда
трудно обойтись.


5. Периоды, как способ ускорить работу с растущей базой.

Это другой способ кардинально решить вопрос быстродействия, когда
база вырастает до слишком больших размеров. Нужно сделать в приложении
механизм позволяющий переключаться между базами данных и, когда база
вырастет и начнет замедлятся работа приложения, создавать новую с
автоматическим переносом итоговых данных из старой.


6. Шифрование.

Есть в Paradox такая возможность - защитить базу паролем, при этом
шифруются непосредственно файлы и скорость работы практически не падает.
Но. Существует универсальный пароль "jIGGAe", поэтому такая защита
сработает только для неопытного пользователя.


7. Ссылочная целостность.

Это - еще одна возможность Paradox, которая тоже реализована не
совсем так, как хотелось бы, но в некоторых случаях и она может
оказаться полезной. Она позволяет автоматически обновлять значения
внешних ключей при изменении первичного и запрещает удалять главную
запись если есть дочерние. Жаль, что нельзя заказать каскадное
удаление.


8. Сеть.

Возможность многопользовательского доступа это вторая важнейшая
возможность BDE + Paradox наряду с поддержкой SQL. Для ее активизации
достаточно указать при конфигурации BDE один и тот же NET DIR для
всех машин (Configuration->Drivers->Native->Paradox->NET DIR
в BDE администраторе) и для всех машин установить LOCAL SHARE в true
(Configuration->System->Init->LOCAL SHARE).

Некоторые советуют совершить еще ряд шаманских действий, но практика
показывает, что этого вполне достаточно. Я думаю, что периодически
возникающие ошибки - следствие ограниченности самой модели "файл-сервер".


9. Временные файлы.

Во время работы BDE создает временные файлы - при исполнении запросов
это файлы вида Del###.MB в директории основной программы, в них
находятся результаты выполненных запросов, и файлы с расширением LCK,
по-видимому, - файлы блокировок, которые могут находиться как в
директории программы так и в директории базы данных.

При некорректном завершении программы (а в Windows такое происходит
довольно часто) эти файлы не удаляются и первые из них могут занимать
много места на диске, а вторые могут препятствовать запуску программы,
так что имеет смысл при запуске удалять MB-файлы, а при неудачной
инициализации BDE пробовать удалить LCK-файлы.


10. Восстановление поврежденных таблиц.

При аварийном завершении программы файлы базы данных иногда
повреждаются и иногда их после этого можно восстановить. Для этого
можно использовать программу PDXRBLD (см http://www.rksolution.cz/).


11. Транзакции.

BDE + Paradox/dBase поддерживает транзакции. Для этого следует
воспользоваться компонентом TDatabase. Это на, мой взгляд, тоже очень
полезная возможность.


12. BDE API.

Вместе с Delphi распространяется файл bde.int, с помощью которого
можно вызывать BDE API функции, он находится в подкатологе Doc каталога
куда установлен Delphi и, что очень приятно, содержит комментарии.
Используя этот API можно делать из программы то, что обычно делается
из Database Desktop. Рано или поздно это понадобится каждому кто
использует BDE.


13. Распространение BDE.

Осталось только обратить внимание на то, что фирма Borland разрешает
распространять BDE только одним способом - при помощи
сертифицированного ими инсталлятора, о чем недвусмысленно сообщает
в файле bdedeploy.txt (в папке BDE). Этой чести, например, удостоился
InstallShield Express.


Итак, учитывая все вышеизложенное следует признать, что:

- С помощью Delphi + BDE + Paradox можно (и нужно) делать качественные
приложения баз данных.

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



Статьи данного автора в акции Borland:
Обсуждение
30 августа 2003 - 08:01 aeff предложение...
Как подметил Rollback в комментариях к статье ╚Методика разработки программного обеспечения в среде Delphi для систем промышленной автоматизации╩, особенностью конкурса на itware есть то, что в статье позволено размещать только одну картинку и то в конце статьи, а я вижу 2 статьи, к которым это не относится. У нас, есть черные и белые люди? Предлагаю исключить из конкурса статьи, у которых больше одного рисунка. ИМХО это будет справедливо
26 мая 2003 - 16:15 rollback BDE современно ?
Имхо, BDE свое уже отработало. И если уж надо некую карманную базу, то вполне подходит Acces с доступом ч-з ADO.
Новое сообщение
Логин:
Пароль:
Заголовок:
Сообщение:

© ICC. Перепечатка допускается
только с разрешения .
Новости Публикации Календарь событий Пресс-центр
IT-каталог: продукты IT-каталог: компании Библиотека
Форум Персональные сервисы Регистрация Карта сайта
Звуки му последнее представление в киеве