3.4.3 Датологическое проектирование
3.4.3.1 Выбор СУБД
Чтобы создать базу данных, нужно выбрать СУБД. Роль СУБД является важнейшей в построении БД. Обычно при проектировании баз данных используют следущие СУБД: Oracle, MSSQL, Sybase, FoxPro, Informix, InterBase, Paradox, Clipper и др.
Для построения нашей базы данных воспользуемся СУБД Paradox. Данная СУБД проста в понимании и отвечает нашим требованиям.
Основные функции СУБД:
— управление данными во внешней памяти;
— управление буферами оперативной памяти;
— управление транзакциями;
— журнализация и восстановление БД после сбоев;
— поддержание языков БД.
Парадокс — одна из самых старых локальных баз данных. Изначально развивалась фирмой Борланд (до 7й версии включительно), последние 3 версии: 8я, 9я и 10я выпущены фирмой Corel.
Основными возможностями Paradox являются:
— количество баз данных на сервере — собственно база данных представляет собой каталог на диске который содержит файлы таблиц, индексов, view, форм и т.п. На одном компьютере может быть практически ничем не ограниченное количество баз данных;
— количество таблиц в базе — неограниченно, но одновременно на одном компьютере не может быть открыто более 127 таблиц и 512 физических файлов;
— размер таблиц — 255 полей, 2000000 записей в таблице (реально меньше, так как лимит блокировок исчерпывается быстрее, реальное количество записей где-то около полумиллиона);
— 10800 Bytes максимальный размер записи (без Memo/Blob полей), 127 вторичных индексов на таблицу;
— 256 Mb максимум в Blob поле;
— количество пользователей и количество одновременных подключений — теоретический предел — 300 пользователей, но к этой информации надо относится с известной долей скептицизма, как и любая другая локальная база данных, парадокс в силу своей архитектуры очень плохо работает в многопользовательском режиме и реальное количество работающих одновременных подключений вряд ли может быть больше
— наличие SP, языка программирования — сам парадокс поддерживает хранимые процедуры на своём собственном языке;
— простота использования — в целом Парадокс достаточно дружелюбная среда. Администрирование и освоение трудностей не составляет;
— наличие встроенных средств администрирования с GUI интерфейсом — сам Парадокс — программа с довольно продуманным GUI интерфейсом, кроме того с BDE поставляется бесплатная программа Database Desktop, которая практически 90% дублирует функциональность самого Парадокса;
— высокая скорость при локальном доступе. Например скорость выполнения Insert квери на локальной таблице при подключении BDE может достигать
— языки программирования — Парадокс является очень распространённым форматом для работы с базами данных самых различных языков программирования. Является «родным» для программных сред от фирмы Borland: Delphi, CBuilder. Из этих сред работа с таблицами в формате Парадокса очень простая. BDE — «родной» и самый быстрый способ доступа.
Логически в современной реляционной СУБД можно выделить внутреннюю часть — ядро СУБД (часто его называют Data Base Engine), компилятор языка БД (обычно SQL), подсистему поддержки времени выполнения, набор утилит.
Ядро СУБД состоит из следующих элементов:
— модуль управления данными во внешней памяти — обеспечивает создание необходимых структур внешней памяти как для хранения данных, непосредственно входящих в БД, так и для служебных целей (например для ускорения доступа к данным);
— модуль управления буферами оперативной памяти — предназначен для решения задач эффективной буферизации;
— модуль управления транзакциями — поддерживает механизмы фиксации и отката транзакций;
— модуль управления журналами;
— транслятор SQL запросов.
Функции этих компонентов взаимосвязаны, и для обеспечения корректной работы СУБД все эти компоненты должны взаимодействовать по тщательно продуманным и проверенным протоколам. Ядро СУБД обладает собственным интерфейсом, не доступным пользователям напрямую и используемым в программах, производимых компилятором SQL (или в подсистеме поддержки выполнения таких программ) и утилитах БД. Ядро СУБД является основной резидентной частью СУБД.
3.4.3.2 Переход от ИЛМ к ДЛМ
SQL-скрипт
CREATE TABLE devices (
tip char(60),
podtip char(60),
name char(60),
radius float,
comment blob
);