Система Paradox Paradox представляет из себя реляционную базу данных, разработанную формой Borland. Данная база даннных предназначена как для непрофессионалов, которым нужно решать задачи типа картотеки и пр., так как обладает достаточно развитой и понятной системой меню и подсказки, так и для профессиональных программистов, разрабатывающих сложные информационные системы, используя при этом язык запросов QBE или язык разработки приложений PAL. Кроме версий под DOS, разработана версия Paradox for Windows. Требования к техническим средствам и сравнительные характеристики по быстродействию см. Глава ??. Поддерживаются следующие типы полей: - алфавитно-цифровые (строковые); - числовые; - денежные; - дата; - Memo - поля; - графические; - OLE - поля; - BLOB (Binary Large OBject); Причем, типы полей от Memo до Blob поддерживаются только в Paradox for Windows. Строковые поля позволяют содержать любую последовательность символов длиной до 255 байт. Числовые поля могут содержать как целые, так и действительные числа с числов цифр до 15. Денежные поля - тоже что и числовые с двумя знаками после запятой, отдельный тип служит только для определения Paradox-ом формата вывода данных полей. Поля даты - соответственно содержат дату и позволяют проводить над собой соответствующие операции сравнения и вычитания. Мемо - поля содержат любой текст неограгиченной длины (вместе с атрибутами текста - шрифт, начертание, цвет и др.) В графических полях могут содержаться графика типа bitmat. В OLE - полях могут содержаться объекты от других приложений Windows. В BLOB - полях можно хранить любые данные по выбору пользователя (на самом деле с точки зрения Paradox, Memo, Graphic и OLE - поля так-же являются полями типа BLOB). В настоящий момент возможно хранение объектов MultiMedia, чертежи и другие приложения. Достаточно удобным является тот факт, что для всех типов полей существует значение "пустое поле". Так-же следует отметить тип данных "BLOB", т.к. в полях такого типа можно хранить любые данные произвольного размера, что выгодно отличается от MEMO-полей в dBASE и Clipper, которые позволяют хранить только текст, да и то ограниченного об'ема (4K). Вся работа по созданию и работе с таблицами, подготовке отчетов и запросов, созданию достаточно сложных приложений, не требующих каких-либо сложных расчеов проводится в единой интегрированной среде при помощи системы меню. Система обладает достаточно широкими возможностями по манипулированию данными и построению отчетов, некоторыми полезными статистическими и алгебраическими функциями для создания расчетных задач. Функции манипулирования данными можно разделить на следующие достаточно стандартные группы: - работа с таблицами; - работа с отдельными записями; - подготовки отчетов; - работа с запросами; - работа с сетью; - работа с макросами; - работы с деловой графикой. Функии работы с таблицами позволяют создавать таблицы, переименоввывать, удалять, копировать и, что достаточно важно, модифицировать структуру таблиц, даже если в них уже находятся данные. Так-же, что немаловажно, все эти операции производятся не над отдельными файлами (как, скажем, в dBase), а над всем семейством таблиц (включая файлы данных, индексов, запросов и отчетов). Имеются и такие операции реляционной алгебры, как объединение и вычитание ?таблиц?отношений?. Функции работы с записями - стандартные (добавить, удалить, отредактировать. Удобными средствами обладает генератор отчетов - форму отчета можно "нарисовать" на экране и получить фактически то, что вы видите. Генератор отчетов позволяет создавать как отчеты в "стандартной" (табличной) форме, так и отчет в свободной форме (в т.ч. наклейки, деловые письма и пр.), производить группировку отчета по значениям полей (причем нескольких уровней вложенности), использовать вычисляемые поля. Функции запросов реализованы на реляционном языке QBE, причем отчеты можно вормировать и по запросным формам. В Paradox for Windows построение запросов еще более упрощено - для связей таблиц дрег с другом достаточно просто провести линии между соответствующими полями. Функции работы с сетью позволяют получить доступ к удаленной БД, заблокировать данные для защиты от доступа других пользователей на время модификации, установить защиту по паролю от несанкционированного доступа. Функции работы с макросами позволяют практически создавать сценарий работы с пользователем и делать некоторые простые приложения. Смстема деловой графики позволяет по таблицам строить до шести функций в виде различного рода диаграм и графиков. Если всех перечисленных возможностей недостаточно, то можно воспользоваться языком построения приложений PAL. Данный язык позволяет воспользоваться всеми перечисленными выше возможностями, т.к. из него можно иметь доступ к функциям основного меню, а так-же обладает дополнительными средствами, характерными для языков программирования (управляющие структуры типы if - then - else, циклы, переменные, операторы ввода-вывода, дополнительные математические и статистические фунции, возможность создания процедур и библиотек процедур) и средствами доступа к продукту фирмы Borland - SQL-link. Средствами Pal можно создавать пользовательские меню, окна и прочие радости для неискушенного пользователя, для которого картинка важнее, чем содержание. В системе имеется отладчик, с помощью которого можно достаточно удобно отлаживать программы на PAL. К сожалению, для работы программ на PAL необходима либо система Paradox, либо соответствующий модуль исполнения, т.е. проблематичной становится возможность распространения программ (каждый пользователь должен приобрести соответствующий Run-time модуль для исполнения программ. По показателям быстродействия система находится в первых рядях среди подобных. Система поддерживает следующие индексы - первичный (не может быть повторяющихся ключевых полей), вторичный - по одному полю, и составной - по группе полей. К сожалению, если таблица имееи несколько индексов, то при работе с записями производится модификация только одного индекса, а все остальные будут перестраиваться либо по окончании работы с таблицей, либо по запросу пользователя. Можно сделать этот процесс "прозрачным" для пользователя (первая возможность - индексы перестраиваются при закрытии таблицы), на ясно, что это достаточно сильно замедляет работу с подобными таблицами и причиняет пользователю некоторые неудобства (особенно если таблицы больших размеров). Система поддерживает доступ к БД на сервере по сети типа Novell, 3Com, Starlan, Banyan, а так-же другими, совместимыми с NetBios и обеспечивает необходимую блокировку данных как на уровне таблиц, так и на уровне отдельных записей. Paradox for Windows позволяет работать со всеми типами сетей, поддерживаемых Windows. Система имеет и такую полезную особенность, как возможность определить во время работы , менялись-ли данные в таблицах, к которым имеют доступ несколько пользователей одновременно, хотя это и увеличивает нагрузку на сеть и может создать некоторые проблемы при наличии большого числа пользователей . Данные в таблицах хранятся в их естественном виде без преобразования, а не ввиде символьных строк, как это принято в формате dBase, что сказывается на ускорении работы и уменьшении размеров самой базы данных. Имеются средства экспорта и импорта данных из/в формат Qattro/Pro, 1-2-3, Symphony, dBase, VisiCalc, а в системе Paradox for Windows возможно работать с файлами dBase без преобразования. Таким образом, система достаточна удобна как для неподготовленного пользователя, который хочет решить свою мелкую задачку типа записной книжки - за счет развитой системы меню и подсказки; и удобна для профессионального программиста, который решает достаточно сложные задачи - за счет богатых возможностей, предостваляемых системой, мощного реляционного языка запросов QBE, развитых средств построения отчетов, наличия языка построения приложений, имеющего выход на SQL-link; развитые средства защиты данных от несанкционированного доступа. Все это позволяет строить сложные приложения, работающие в сети со многими пользователями. Но отсутствие возможности получить исполняемый модуль накладывает ограничения на широкое распространение разработанных программ (хотя Run-Time модуль стоит достаточно дешево, все-таки психологически лучше купить одну или несколько программ у одного изготовителя, чем связываться с несколькими) А работа фактичкски в режиме интерпретации PAL хоть и практически не сказывается при построении сложных информационныо-поисковых систем, в которых время на поиск данных значительно превышает время выполнения расчетов, но накладывает ограничения на системы, в которых кроме задач поиска стоят достаточно сложные задачи обработки данных. Но Paradox for Windows позволяет преодолеть это ограничение, т.к. в нем возможно иметь доступ к функциям, написанных на обычных языках программирования и собранные в динамические библиотеки (DDL). Так что можно пользоваться этой возможностью, хотя перенос программ в среду Windows (в том числе и СУБД) работу этих программ явно не ускоряет. В пользу выбора данной системы для нашей задачи могут служить следующие факторы (наверхое): - программирование на языке программирования PAL позволяет проводить достаточно сложную обработку данных, позволяет использовать развитые средства диалога с пользователем; - данные в БД хранятся в их естественном виде, что позволяет ывеличить скорость обработки и уменьшить необходомое для хранения данных пространство; - очень полезные поля типа BLOB - позволяют хранить текст произвольной длины, например, тексты методичек и пр.; - возможность сетевого взаимодеяствия позвояет проводить дальнеяшее расширение системы до уровня института с подключением других подсистем (скажем, УэО, деканат и пр.) и обеспечивать необходимую в рамках подобных систем защиту данных; - богатые возможности по экспорту и импорту данных; - возможность работы под Windows; - относительно простые, но мощные средства для построения запросов к базе данных. Хотя, конечно, вышеуказанные ограничения (невозможность получить .ЕХЕ - файл и итерпретатор) - это для нас явные минусы.