Особенности работы с базами данных

Обработка баз данных построена на использовании BDE (Borland Database Engine) фирмы BORLAND. Поэтому работа с базами данных возможна только при установленном BDE. При его отсутствии STRATUM будет функционировать нормально, но без поддержки баз данных (Проекты, использующие базы, работать не будут).

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

Для работы с базами данных применяются специальные функцииBase_functions.


Базы данных и таблицы

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


номер

пол

фамилия

имя

количество

пользовательские имена

1

м

Жуков

Иван

100.2

1-я запись

55

ж

Цветкова

Наталия

201.6

2-я запись

56

м

Жаров

Кирилл

0.002

3-я запись

70

м

Бабочкин

Кирилл

22.35

4-я запись


В таблицах хранится информация по темам, например данные о заказчиках, или о закупках, или о производстве. Таблицы состоят из строк и столбцов. Набор информации в каждой строке называется записью. Все значения в столбце имеют один и тот же тип данных.


При работе с такой таблицей приняты следующие понятия:

1-е поле

3-е поле

5-е поле

2-е поле

4-е поле


number

sex

family

name

quantity

системные имена полей

integer

char

string

string

real

тип поля



[11]

[10]


размер поля


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


Функции для работы с базой данных

Перед началом работы с базой данных необходима операция открытия (см. DbOpenBaseDbOpenBase). При открытии задается тип базы (например ORACLE, SYBASE и др.), пароль, если доступ к базе данных ограничен,  и режим доступа (чтение/модифицирование, разделенный/эксклюзивный режим использования).

Дескриптор базы данных используется затем при некоторых операциях с таблицами.

После работы, базу данных можно закрыть функцией DbCloseBaseDbCloseBase или DbCloseAllDbCloseAll. При останове моделирования схемы (кнопка Стоп) базы данных автоматически закрываются.


Функции для работы с таблицами

Таблицу можно создать с помощью функции DbCreateTableDbCreateTable, или через SQL запрос.

Существующие таблицы для работы открываются функцией DbOpenTableDbOpenTable и могут быть закрыты функцией DbCloseTableDbCloseTable. Записи можно добавить функцией DbAppendRecordDbAppendRecord.

Изменение содержимого таблицы осуществляется через текущую запись. После открытия таблицы активной становится первая запись (точнее, нулевая, так как нумерация записей начинается с нуля). Далее, можно передвигать текущую запись вперед по таблице и назад (см. DbSkipDbSkip) или сразу на начало/конец таблицы (см. DbGoTopDbGoTop и DbGoBottomDbGoBottom). В текущей записи можно прочитать и изменить значение полей (см. DbSetFieldDbSetField, DbGetFieldDbGetField). Для удаления записей используется функция DbDeleteRecordDbDeleteRecord.

Визуально просматривать и редактировать содержимое таблицы позволяет функция DbBrowseDbBrowse.


Индексация таблиц

Для индексации таблиц следует использовать язык SQL.


Краткий обзор языка SQL

Язык SQL (Structured Query Language) - распространенный язык запросов к базам данных. Обладает развитыми возможностями и может использоваться как конечными пользователями для формулировки не очень сложных запросов, так и специалистами в области обработки данных.

Stratum поддерживает SQL  c помощью специальной функции - DbSQL()DbSQL.

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

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

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

SELECT <список столбцов, включаемых в ответ>

FROM <список таблиц>

WHERE <условие>        

Запрос может быть простым и вложенным, то есть один оператор SELECT может быть включен в состав другого оператора. Этот включенный оператор будет называться подзапросом (SUBSELECT). Существуют два типа вложенных подзапросов: простой и коррелированный. В простом подзапросе внутренний запрос выполняется первым , и его результат используется для выполнения основного запроса. В коррелированном подзапросе внешний запрос выполняется первым, и его результат используется для выполнения внутреннего запроса. Внутренний запрос выполняется для каждой строки, возвращенной внешним запросом.

Предложения SELECT (отобрать) и FROM(из) должны присутствовать. Условие WHERE (где) может быть опущено. Если условие WHERE отсутствует, то в ответ войдут все строки, имеющиеся в таблице.

Если в ответ должны войти все столбцы, имеющиеся в исходной таблице, то вместо их перечисления в SELECT можно поставить знак *. Например:

SELECT * FROM kadr WHERE vozr = 40

Условие, задаваемое в предложении WHERE, может быть простым и сложным. Сложные условия форматируются с помощью логических операторов AND и OR.

Можно в запросе указать отсортированность ответа по определенному признаку.

Возможно агрегатирование данных с целью получения обобщающих велечин (среднее, минимум, максимум).

При выполнении запроса может потребоваться соединение двух и более таблиц. В этом случае список таблиц задается во фразе FROM, а условие соединения - во фразе WHERE. Обычно соединение производится по условию равенства значения указанных полей.

Кроме этого SQL позволяет выполнять такие операции, как создание и уничтожение различных объектов базы данных (таблиц, индексов и т.д.), ввод, удаление и изменение данных.

Более подробно про SQL см. Локальный SQLSQL.


см. функции для работы с базой данныхBase_functions

Created with the Personal Edition of HelpNDoc: Make the switch to CHM with HelpNDoc's hassle-free WinHelp HLP to CHM conversion tool