Краткое описание Paradox
01.01.2007
1) Краткое описание
Парадокс - одна из самых старых локальных баз данных. Изначально развивалась фирмой Борланд (до 7й версии включительно), последние 3 версии: 8я, 9я и 10я выпущены фирмой Corel. В настоящее время судьба проекта не известна, но есть основания предполагать, что ни Борланд, ни Corel не имеют далекоидущих планов в отношении этой базы данных, а объёмы её продаж в чистом виде незначительны, впрочем она входит в поставку некоторых версий Corel Office.
2) Возможности
количество баз данных на сервере - собственно база данных представляет собой каталог на диске который содержит файлы таблиц, индексов, view, форм и т.п. На одном компьютере может быть практически ничем не ограниченное количенство баз данных.
количество таблиц в базе - неограниченно, но одновременно на одном компьютере не может быть открыто более 127 таблиц и 512 физических файлов
размер таблиц - 255 полей, 2000000 записей в таблице (реально меньше, так как лимит блокировок исчерпывается быстрее, реальное количество записей где-то около полумиллиона),
максимальный размер записи (без Memo/Blob полей) - 10800 Bytes
вторичных индексов на таблицу - 127,
максимум в Blob поле - 256 Mb
количество пользователей и количество одновременных подключений - теоретический предел - 300 пользователей, но к этой информации надо относиться с известной долей скептицизма, как и любая другая локальная база данных, парадокс в силу своей архитектуры очень плохо работает в многопользовательском режиме, и реальное количество работающих одновременных подключений вряд ли может быть больше 10-20.
наличие View - есть возможность создания View, которые представляют собой обычные текстовые файлы, отвечающие следующим требованиям:
- лежат в каталоге базы данных
- имеют расширение sql
- в качестве наполнения имеют обычное выражение SQL
Кроме того имеется другая разновидность View - файлы QBE (Query By Example) - очень древний, но довольно удобный способ работы с данными - альтернатива SQL, отличается гораздо большей гибкостью, чем SQL, но тем ни менее с развитием серверных баз данных отошедший в прошлое. Итак возможно создание текстового файла с расширением qbe и выражением qbe-запроса внутри, который можно использовать как View
наличие SP, языка программирования - сам парадокс поддерживает хранимые процедуры на своём собственном языке, однако я не знаю, можно ли их использовать вне самого парадокса из других програм. Вот пример SP:
method pushButton (var eventInfo Event)
method pushButton (var eventInfo Event) var txt String myNum Number endVar myNum = 123.321 txt = String(myNum) msgInfo("myNum = ", txt) endMethodналичие триггеров - нет
репликация и синхронизация, перенос данных, средства backup - нет, однако, так как каждый объект базы данных является по сути отдельным файлом можно применять любые утилиты для Backup/Restore файлов.
поддержка кластеров - нет
поддержка XML, объектов, внешних процедур. - нет
возможность взаимодействия между серверами, включая сервера других типов. - BDE имеет средства для взаимодействия между любыми базами данных, для которых есть BDE драйвера.
Вот пример SQL запроса к 2м базам данных:
Select T1.Field1, T2.Field2 From :Alias1:Table1 T1, :Alias2:Table2 T2 Where T1.Field3=T2.Field4В данном случае не важно в какого типа базы данных под Alias1 и Alias2 - это могут быть базы данных любых разновидностей.
поддерживаемые типы данных:
- Alpha - строка
- Number - 15 знаков, плавающая запятая, плюс-минус 10 в 308 степени
- Money - обычное поле с плавающей запятой, возможно прнименение различных форматов вывода
- Short - целое от -32,767 до +32,767
- Long Integer - oт -2147483648 дo 2147483647
- BCD - плавающая запятая, повышенная точность, применяется для финансовых рассчётов
- Date - для хранения даты
- Time - для хранения времени
- Timestamp - для хранения даты/времени
- Memo - Форматированный текст
- Graphic - вариант Blob поля
- OLE - вариант Blob поля
- Logical - True/False
- Autoincrement - автоинкрементное поле
- Binary - вариант Blob поля
- Bytes - вариант Blob поля
поддерживаемые конструкции SQL - поддерживаются все стандартные конструкции SQL: Select, Update, Insert, Create Table, Create Index, Alter Table, Alter Index, Join и т.д.
Нет поддержки всторенных запросов типа: Select * From (Select * ...), нет поддержки использования переменных в запросах, нет возможности использования нескольких SQL statement в одном запросе.
поддержка транзакций - есть
системы репортинга, в том числе для Web - имеется встроенный не очень мощный репортинг.
Возможно использование других репортинговых систем: Crystal Report, Fast Report, Quick Report, Rave и д.р.
Собственного репортинга, ориентированного на Web нет.
наличие собственного агента для выполнения заданий по расписанию - нет
3) Защита данных, шифрование
Очень слабая защита паролем, шифрования нет, защита может предохранить только от неискушённого пользователя, так как присутствуют универсальные пароли, то профессионалом защита снимается за пару минут.
4) простота использования
В целом Парадокс достаточно дружелюбная среда. Администрирование и освоение трудностей не составляет.
наличие встроенных средств администрирования с GUI интерфейсом - сам Парадокс - программа с довольно продуманным GUI интерфейсом, кроме того с BDE поставляется бесплатная программа Database Desktop, которая практически 90% дублирует функциональность самого Парадокса
возможность удалённого и Web администрирования - нет
сложность перевода проекта написанного под другую базу данных на рассматриваемую - Следует различать программы написанные именно при помощи самого Парадокса и программы на других языках программирования использующих таблицы формата парадокс.
а) Перевод програм с языка других баз данных на язык Парадокс достаточно трудоёмок и не стоит потраченных усилий.
б) Если же таблицы формата парадокс используются в третьесторонних программах то перевод с таблиц формата dbf на парадоксовский db обычно почти автоматический.
Перевод с формата db на dbf может быть связан с трудностями, так как db немного более "богатый" формат и могут быть нужны небольшие переделки в коде.
Перевод MS Access в Парадокс и наоборот будет связан с более значительными переделками.
Перевод с серверных баз данных на парадокс практически бессмысленен и подчас очень труден.
Перевод с парадокса на серверные базы данных обычно достаточно лёгок.
Итог:
с Парадокса легко перейти на почти любые другие базы данных, обратное зачастую намного сложнее. Наибольшая совместимость с форматом dbf.сложность в установке и настройке - установка автоматическая, проблема может быть только одна - на больших винчестерах програма инсталляции может неправильно определять объём свободного места и не ставится (выход - временно занять свободное место оставив свободным только 1 гигабайт на время установки). Настройка не требуется. Практически не конфликтует с другим софтом
насколько сложно администрирование сервера - администрирование практически не требуется
наличие утилит для автоматизации операций для работы в командной строке - нет
наличие собственных утилит для отладки запросов (выполнение SQL, построение плана выполнения кверей, профайлер и т.п.), утилиты для слежения за производительностью сервера. - Сам парадокс, Database Desktop
5) платформы
на которых может работать сервер - MS DOS, MS Windows всех версий после Win 3.1
на которых может работать клиент - MS DOS, MS Windows всех версий после Win 3.1
6) версии продуктов, краткая характеристика отличий
- наиболее широкораспространена версия 7 - под win32 платформу, последняя версия от Борланд. Последующие версии привносили практически лишь косметические изменения
7) способы доступа
- собственные API - есть DBI - API поставляемые с BDE
- ODBC - поддержка только таблиц до 5й версии включительно, для более поздних версий - с ограничениями.
- JDBC - есть
- ADO (OLE DB) - фактически работает через драйвер ODBC
- DAO - поддержка только таблиц до 5й версии включительно, для более поздних версий - с ограничениями.
- BDE - "родной" и самый быстрый способ доступа
- DBExpress - нет
- Другие: большое количество сторонних производителей компонентов, классов и библиотек для работы с форматами таблиц Парадокс.
- языки программирования - Парадокс является очень распространённым форматом для работы с базами данных самых различных языков программирования. Является "родным" для програмных сред от фирмы Борланд: Дельфи, СBuilder. Из этих сред работа с таблицами в формате Парадокса очень простая.
8) производительность
Оценка производительности - наиболее быстрый способ доступа - через BDE, на 1-2 порядка превосходит по скорости все остальные способы. Он же обеспечивает и максимальную функциональность.
- монопольный доступ - очень высокая, особенно при локальном доступе. Например скорость выполнения Insert квери на локальной таблице при подключении BDE может достигать 2000-3000 кверей в минуту.
- для большого количества одновременных подключений - очень низкая, крайне желательен перевод на бузу данных с серверной архитектурой.
- для больших таблиц - при монопольном доступе весьма большая.
- для больших массивов данных при монопольном доступе - большая
9) цена
отдельно уже производителями не продаётся, вместе с Corel Office стоит порядка $100. Однако для написания програм которые работают с базами данных Парадокс сам Парадокс не требуется, достаточно иметь набор бесплатных утилит, таких как Database Desktop, тем более Парадокс не нужен для run-time среды таких програм.
10) явные недостатки и преимущества по сравнению с системами такого же класса
парадокс показывает практически такую-же или даже превосходящую производительность чем DBase/FoxPro, однако имеет значительно более слабую собственную среду программирования.
В сравнении с MS Access Парадокс показывает значительно более высокую производительность(примерно на порядок!), но проигрывает в мощности языка программирования и интегрированности с другими продуктами. Кроме того в отличие от MS Access развитие среды Парадокс практически прекращено.
11) предпочтительные проекты для использования
- с точки зрения количества данных - для проектов манипулирующих не более чем сотней тысяч записей.
- количества пользователей - 1-3 пользователя (одновременных подключений)
- уровня защищённости - не требующие защиты информации
- цены - для продуктов, которые не должны требовать дополнительных вложений в базы данных
- распространённости - годится для распространяемых приложений, как весьма компактная и лёгкая в распространении бизнес-модель
Итог:
оптимально использование баз данных Парадокс для небольших
проектов персонального пользования написанных на Дельфи или CБилдере
12) проекты в которых не рекомендуется использовать
Yt htrjvtyletncz для многопользовательских проектов, там где требуется высокий уровень защиты данных и большие массивы информации.
13) Известные глюки и проблемы
система очень старая, что характеризует не только значительно устаревший интерфейс и отсутствие новомодных наворотов, но и очень низкое количество глюков.
2 основных глюка:
- При многопользовательском доступе довольно частое возникновение corrupted table особенно если есть BLOB/Memo поля
- При принудительном прерывании транзакции не освобождение ресурсов и как следствие "разбухание" служебных файлов.
14) Краткий обзор основных прилагаемых утилит и средств для обслуживания сервера
- Database Desktop - полноценная среда для управления любыми базами данных через BDE
- DataPump - утилита переноса данных из одной базы данных в другую
- BDE Administrator - программа управления BDE
15) Краткий обзор наиболее примечательных продуктов третьесторонних производителей для работы с данной базой данных
огромное количество софта для работы с Парадоксовскими таблицами, практически можно найти программы на любой вкус и для любых целей.

