Краткое описание Paradox

Материал из DRKB

Краткое описание Paradox[править | править код]

Краткое описание[править | править код]

Paradox - одна из самых старых локальных баз данных. Изначально развивалась фирмой Borland (до 7й версии включительно), последние 3 версии: 8я, 9я и 10я выпущены фирмой Corel. В настоящее время судьба проекта не известна, но есть основания предполагать, что ни Borland, ни Corel не имеют далекоидущих планов в отношении этой базы данных, а объёмы её продаж в чистом виде незначительны, впрочем она входит в поставку некоторых версий Corel Office.


Возможности[править | править код]

  • количество баз данных на сервере - собственно база данных представляет собой каталог на диске который содержит файлы таблиц, индексов, view, форм и т.п. На одном компьютере может быть практически ничем не ограниченное количество баз данных.
  • количество таблиц в базе - неограниченно, но одновременно на одном компьютере не может быть открыто более 127 таблиц и 512 физических файлов
  • размер таблиц - 255 полей, 2000000 записей в таблице (реально меньше, так как лимит блокировок исчерпывается быстрее, реальное количество записей где-то около полумиллиона),
    • 10800 Bytes максимальный размер записи (без Memo/Blob полей), 127 вторичных индексов на таблицу,
    • 256 Mb максимум в Blob поле
  • количество пользователей и количество одновременных подключений - теоретический предел - 300 пользователей, но к этой информации надо относится с известной долей скептицизма, как и любая другая локальная база данных, парадокс в силу своей архитектуры очень плохо работает в многопользовательском режиме и реальное количество работающих одновременных подключений вряд ли может быть больше 10-20.
  • наличие View - есть возможность создания View, которые представляют собой обычные текстовые файлы, отвечающие следующим требованиям:
    • лежат в каталоге базы данных
    • имеют расширение sql
    • в качестве наполнения имеют обычное выражение SQL

Кроме того имеется другая разновидность View - файлы QBE (Query By Example) - очень древний, но довольно удобный способ работы с данными - альтернатива SQL, отличается гораздо большей гибкостью, чем SQL, но тем ни менее с развитием серверных баз данных отошедший в прошлое. Итак возможно создание текстового файла с расширением qbe и выражением qbe-запроса внутри, который можно использовать как View

  • наличие SP, языка программирования - сам парадокс поддерживает хранимые процедуры на своём собственном языке, однако я не знаю, можно ли их использовать вне самого парадокса из других програм. Вот пример SP:
method pushButton (var eventInfo Event)
var
txt String
myNum Number
endVar
myNum = 123.321
txt = String(myNum)
msgInfo("myNum = ", txt)
endMethod
method pushButton (var eventInfo Event)
  • наличие триггеров - нет
  • репликация и синхронизация, перенос данных, средства 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
    • Formatted 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 нет.
  • наличие собственного агента для выполнения заданий по расписанию - нет


Защита данных, шифрование[править | править код]

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

Простота использования[править | править код]

В целом Парадокс достаточно дружелюбная среда. Администрирование и освоение трудностей не составляет.

  • наличие встроенных средств администрирования с GUI интерфейсом - сам Парадокс - программа с довольно продуманным GUI интерфейсом, кроме того с BDE поставляется бесплатная программа Database Desktop, которая практически 90% дублирует функциональность самого Парадокса
  • возможность удалённого и Web администрирования - нет
  • сложность перевода проекта написанного под другую базу данных на рассматриваемую - Следует различать программы написанные именно при помощи самого Парадокса и программы на других языках программирования использующих таблицы формата парадокс.
  • Перевод програм с языка других баз данных на язык Парадокс достаточно трудоёмок и не стоит потраченных усилий.
  • Если же таблицы формата парадокс используются в третьесторонних программах то перевод с таблиц формата dbf на парадоксовский db обычно почти автоматический.
  • Перевод с формата db на dbf может быть связан с трудностями, так как db немного более "богатый" формат и могут быть нужны небольшие переделки в коде.
  • Перевод MS Access в Парадокс и наоборот будет связан с более значительными переделками.
  • Перевод с серверных баз данных на парадокс практически бессмысленен и подчас очень труден.
  • Перевод с парадокса на серверные базы данных обычно достаточно лёгок.

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


  • сложность в установке и настройке - установка автоматическая, проблема может быть только одна - на больших винчестерах програма инсталляции может неправильно определять объём свободного места и не ставится (выход - временно занять свободное место оставив свободным только 1 гигабайт на время установки). Настройка не требуется. Практически не конфликтует с другим софтом
  • насколько сложно администрирование сервера - администрирование практически не требуется
  • наличие утилит для автоматизации операций для работы в командной строке - нет
  • наличие собственных утилит для отладки запросов (выполнение SQL, построение плана выполнения кверей, профайлер и т.п.), утилиты для слежения за производительностью сервера. - Сам парадокс, Database Desktop


Платформы[править | править код]

  • на которых может работать сервер - MS DOS, MS Windows всех версий после Win 3.1
  • на которых может работать клиент - MS DOS, MS Windows всех версий после Win 3.1


Версии продуктов, краткая характеристика отличий[править | править код]

  • наиболее широко распространена версия 7 - под win32 платформу, последняя версия от Borland. Последующие версии привносили практически лишь косметические изменения


Способы доступа[править | править код]

  • собственные API - есть DBI - API поставляемые с BDE
  • ODBC - поддержка только таблиц до 5й версии включительно, для более поздних версий - с ограничениями.
  • JDBC- есть
  • ADO (OLE DB) - фактически работает через драйвер ODBC
  • DAO - поддержка только таблиц до 5й версии включительно, для более поздних версий - с ограничениями.
  • BDE - "родной" и самый быстрый способ доступа
  • DBExpress - нет
  • Другие: - большое количество сторонних производителей компонентов, классов и библиотек для работы с форматами таблиц Парадокс.

оценка производительности - наиболее быстрый способ доступа - через BDE, на 1-2 порядка превосходит по скорости все остальные способы. Он же обеспечивает и максимальную функциональность.

  • языки программирования - Парадокс является очень распространённым форматом для работы с базами данных самых различных языков программирования. Является "родным" для программных сред от фирмы Borland: Delphi, СBuilder. Из этих сред работа с таблицами в формате Парадокса очень простая.


Производительность[править | править код]

  • монопольный доступ - очень высокая, особенно при локальном доступе. Например скорость выполнения Insert квери на локальной таблице при подключении BDE может достигать 2000-3000 кверей в минуту.
  • для большого количества одновременных подключений - очень низкая, крайне желателен перевод на бузу данных с серверной архитектурой.
  • для больших таблиц - при монопольном доступе весьма большая.
  • для больших массивов данных при монопольном доступе - большая


Цена[править | править код]

Отдельно уже производителями не продаётся, вместе с Corel Office стоит порядка $100. Однако для написания програм которые работают с базами данных Парадокс сам Парадокс не требуется, достаточно иметь набор бесплатных утилит, таких как Database Desktop, тем более Парадокс не нужен для run-time среды таких программ.

По сравнению с системами такого же класса[править | править код]

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

В сравнении с MS Access Парадокс показывает значительно более высокую производительность(примерно на порядок!), но проигрывает в мощности языка программирования и интегрированности с другими продуктами. Кроме того в отличие от MS Access развитие среды Парадокс практически прекращено.


Предпочтительные проекты для использования[править | править код]

  • с точки зрения количества данных - для проектов манипулирующих не более чем сотней тысяч записей.
  • количества пользователей - 1-3 пользователя (одновременных подключений)
  • уровня защищённости - не требующие защиты информации
  • цены - для продуктов, которые не должны требовать дополнительных вложений в базы данных
  • распространённости - годится для распространяемых приложений, как весьма компактная и лёгкая в распространении бизнес-модель


Итог[править | править код]

Оптимально использование баз данных Парадокс для небольших проектов персонального пользования написанных на Дельфи или CБилдере

  • проекты в которых не рекомендуется использовать - для многопользовательских проектов, там где требуется высокий уровень защиты данных и большие массивы информации.
  • Известные глюки и проблемы - система очень старая, что характеризует не только значительно устаревший интерфейс и отсутствие новомодных наворотов, но и очень низкое количество глюков. 2 основных глюка:
1. При многопользовательском доступе довольно частое возникновение corrupted table особенно если есть BLOB/Memo поля
2. При принудительном прерывании транзакции не освобождение ресурсов и как следствие "разбухание" служебных файлов.


Краткий обзор основных прилагаемых утилит и средств для обслуживания сервера

  • Database Desktop - полноценная среда для управления любыми базами данных через BDE
  • DataPump - утилита переноса данных из одной базы данных в другую
  • BDE Administrator - программа управления BDE


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

Огромное количество софта для работы с Парадоксовскими таблицами, практически можно найти программы на любой вкус и для любых целей.


ID: 02960