Основные понятия и определения баз данных в Delphi

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

Множество фирм и компаний всего мира используют компьютеры для хранения и обработки служебной информации. Эта информация содержится в так называемых базах данных.

  

База данных — это хранилище для большого количества систематизированных данных, с которыми можно производить определенные действия (добавление, удаление, изменение, копирование, упорядочивание п т. д.).

Все данные, находящиеся в базе данных, можно представить в виде записей или объектов.

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

 

Система управления базами данных (СУБД) —это совокупность языковых и программных средств, обеспечивающих создание, использование и ведение базы данных. 

Все СУБД делятся на две группы:

  1. локальные;
  2. сетевые.

Локальные — это СУБД, работающие на одном компьютере. К ним относятся dBase, FoxPro, Microsoft Access и т. д.

Сетевые — это СУБД, позволяющие нескольким компьютерам использовать одну и ту же базу данных с помощью технологии клиент-сервер.

 

Примерами сетевых СУБД являются InterBase, Oracle, Microsoft SQL Server и т. д. О локальных и сетевых СУБД подробнее будет рассказано ниже.

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

Взаимосвязи данных

Взаимосвязи данных могут быть одного из четырех типов: 

  1. один к одному;
  2. один ко многим;
  3.  много к одному;
  4.  много ко многим 

Давайте рассмотрим принципы построения таких взаимосвязей.

  1. Вид взаимосвязи один к одному подразумевает, что каждая запись одного объекта базы данных будет указывать на единственную запись другого объекта. Например, с одним клиентом может быть связан только один заказ.
  2. Взаимосвязь один ко многим означает, что одной записи объекта базы данных будет соответствовать несколько записей других объектов. Например, один клиент может иметь несколько квартир. Тогда с записью клиента будут связаны записи о его квартирах.
  3. Вид взаимосвязи много к одному равносилен рассмотренному выше виду «один ко многим» и отличается от него только направлением.
  4. Последний вид взаимосвязи много ко многим устанавливается между двумя типами объектов базы данных. Например, когда у одного банкира может быть несколько клиентов и, одновременно, один клиент может пользоваться услугами нескольких банков.

По принципу хранения данных все базы данных разделяются на несколько основных типов: 

  • иерархические;  
  • сетевые;
  • реляционные.

Иерархические базы данных 

Иерархические базы данных  применялись в начале 60-х годов. Они построены в виде обычного дерева. Данные здесь делятся на две категории: главные и подчиненные. Таким образом, один тип объекта является главным  а остальные, находящиеся на более низких ступенях иерархии, — подчиненными (рис. 1.1).

Схема базы данных иерархического типа

Рис. 1.1. Схема базы данных иерархического типа  

 

 

 Сетевые базы данных

Сетевые базы данных начали применяться практически одновременно с иерархическими. В этих базах данных любой объект может быть как главным, так и подчиненным (рис. 1.2).

Схема базы данных сетевого типа

Рис 1.2 Схема базы данных сетевого типа 

 

Таким образом, в сетевой модели базы данных каждый объект может иметь сколько угодно связей с другими объектами. Из-за сложности представления данных в таком виде от сетевой модели базы данных в большинстве случаев также пришлось отказаться.

Реляционные базы данных

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

Схема реляционной базы данных

Рис. 1.3. Схема реляционной базы данных 

 

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


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

 

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

 

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


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

 

Столбцы таблицы обычно называют полями, а строки — записями. К полям таблицы предъявляются следующие требования:

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

Рис 1.4 Структура таблицы базы данных 

 Структура таблицы базы данных

 

ВНИМАНИЕ: При переименовании таблицы помните, что имя таблицы можно изменить только с помощью специальных программ, например Database Desktop. Простое изменение имени файла таб­лицы с помощью проводника Windows не приведет к переименованию таблицы.
 

 

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

 

 

К числу серверных таблиц баз данных, поддерживаемых Delphi, относятся:

  •     DB2;
  •     Informix;
  •     InterBase;
  •     Microsoft SQL Server;
  •     Oracle;
  •     Sybase.

В число локальных таблиц баз данных, поддерживаемых средой Delphi, входят:

  • Microsoft Access;
  • dBase;
  • FoxPro;
  • Paradox.

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

 

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

Расширение файла     Содержание файла

 

*.dbf

Непосредственно данные таблицы

*.dbt

большие двоичные данные (BLOBBinary Large Object). В их число

 

входят двоичные данные, memo-поля и OLE-поля

*.mdx

Индексы, которые поддерживаются средствами dBase

*.ndx

Не поддерживаемые индексы. Такие индексы должны обрабатываться

 

программно

 

Поля в таблице базы данных dBase должны удовлетворять следующим условиям:

  • имя поля может состоять из букв и цифр, но начинаться — с буквы;
  • не допускается включение в имя поля специальных символов и пробелов;
  • максимальное количество символов в имени поля — 10.

В таблице 1.2 перечислены основные типы полей таблиц dBase, указаны их обозначения в программе Database Desktop и приведено описание.

 

Таблица 1.2. Основные типы полей таблиц dBase
Тип поля    Обозначение                              Описание

в Database Desktop

 

Binary

В

Двоичные значения в виде последовательности байтов, хранящейся в файле с расширением *.dbt. Длина не ограничена

Character

С

Символьная строка. Длина ограничена 255 символами

Date

D

Значение даты

Float

F

Число с плавающей запятой в диапазоне от -1O308 до 10308. Точность представления — 15 знаков после десятичной точки

Logical

L

Булевская (логическая) переменная. Может принимать одно из двух значений: true (истина) или false (ложь)

Memo

M

Неограниченная последовательность символов, хранящихся в файле с расширением *.dbt

Number

N

Двоично-десятичный формат представления чисел

OLE

О

Данные, поддерживаемые технологией связывания и внедрения объектов OLE (Object Unking and Embedding)

Преимуществом  баз данных dBase является поддержка их многими средами программирования.

К недостаткам относятся отсутствие контроля целостности связей и отсутствие защиты данных.

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

 

Таблица 1.3. Файлы таблиц Paradox

Расширение файла

Содержание файла

*.db

Данные таблицы

*.mb

Большие двоичные данные (BLOB, Binary Large Object)

*.рх

Ключ (главный индекс)

*.xg* и *.yg*

Индексы

*.val

Параметры для проверки типов вводимых данных и целостности ссылок

*.tv и *.fam

Форматы вывода таблицы в приложении Database Desktop

*.net

Применяется для контроля доступа к таблице по сети

 

Поля в таблице Paradox должны удовлетворять следующим требованиям:

  • имя поля может состоять из букв (включая символы кириллицы) и цифр, но начинаться должно обязательно с буквы;
  • в имени поля допускается использовать символы пробела. -. $ и другие специальные символы;
  • не рекомендуется (хотя и не запрещается) использовать п имени поля символы точки, восклицательного знака и |,так как они зарезервированы средой Delphi;
  • максимальная длина имени поля составляет 25 символов:
  • ключевые поля таблицы должны быть первыми в ее структуре.

СОВЕТ: Если вы хотите обеспечить совместимость данных таблицы Paradox с таблицами других форматов (например, dBase), именуйте поля со следующими ограничениями: длина имени поля не должна быть более 10 символов, имя должно состоять только из латинских букв и цифр.

 

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

Тип поля

Обозначение

в Database Desktop

Описание

Alpha

A

Символьная строка, ограниченная 255 символами

Autoincrement

+

Поле, автоматически увеличивающее значение новой записи. Обычно используется для ключевого поля

BCD

#

Двоично-десятичная форма представления числа

Binary

В

Двоичное значение в виде последовательности байтов. Длина не ограничена. Первые 240 байтов хранятся в файле таблицы, остальные — в файле с расширением *.mb

Bytes

Y

Последовательность байтов длиной до 255

Date

D

Значение даты. Значения от 01.01.9999 до н. э. до 31.12.9999

Formatted Memo

F

Неограниченная последовательность форматирован­ных символов

 

Тип поля

Обозначение

в Database Desktop

Описание

Graphic

G

Графическое изображение в одном из форматов: *.bmp, *.eps, *.glf*.рсх, *.trfПосле загрузки в поле

 

 

 

 

таблицы изображение преобразуется в формат

 

 

*.bmpЗначение поля данного типа хранится в файле

 

 

с расширением *.mb

Logical

_i

Булево значение: true или false

Longlnteger

I

Целочисленное поле. Диапазон возможных значений от -2 147 483 648 до 2 147 483 647

Memo

M

Неограниченная последовательность символов.

 

 

Первые 240 символов хранятся в файле таблицы, остальные — в файле с расширением *.mb

 

 

Money

$

Хранит денежные величины. Отличается от типа Numberтем, что отображает денежный знак. Символ знака зависит от настроек операционной системы

Number

N

Число с плавающей запятой. Может принимать значения от -10307 до 10308. Точность —15 знаков после запятой

OLE

0

Хранит данные, поддерживаемые технологией OLE.Значения содержатся в файле с расширением *.mb

Short

S

Целое число. Может принимать значения от -32 768 до 32 767

Time

T

Содержит значения времени

TimeStamp

@

Содержит значения даты и времени

Приложение, созданное с помощью Delphi, осуществляет доступ к базе данных через специальный процессор баз данных, который называется BDE (Borland Database Engine)

BDE — это набор драйверов и динамически присоединяемых библиотек (файлов *.dll), которые обеспечивают доступ к данным.

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

Процессор баз данных BDE позволяет наиболее эффективно работать с таблицами баз данных типа dBase и Paradox.

Все базы данных можно условно разделить на две большие группы в зависимости от взаимного расположения приложения и таблиц базы данных:

  1. локальные;
  2. клиент-серверные.

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

 локальную архитектуру

Приложения, которые работают с локальными базами данных, называются одно-ярусными (single-tiered applications), так как и приложение и база данных расположены на одном и том же компьютере (ярусе).

 

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

 

Рис 1.6. Файл-серверная архитектура базы данных 

 Файл-серверная архитектура базы данных

Как вы можете видеть, на каждом из компьютеров-клиентов сети создается локальная копия базы данных сервера. Эта копия периодически обновляется.

 

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

 

К числу недостатков данной архитектуры можно отнести:

  • создание копий базы данных и работа с ними на отдельных компьютерах обусловливает необходимость периодического обновления всей базы данных. Это повышает сетевой трафик (нагрузку сети) и ведет к снижению быстродействия всей системы;
  • при изменении данных, сделанном одним пользователем, они не сразу передаются в локальные копии базы данных других пользователей, поэтому любой пользователь может видеть уже устаревшую информацию;
  • необходима синхронизация работы пользователей. Она должна заключаться во временном блокировании записей, с которыми работает пользователь, для других пользователей. Таким образом, оказывается невозможным одновременный доступ к одной и той же записи с нескольких компьютеров;
  • существуют трудности организации контроля доступа к данным, идентификации пользователя и поддержки целостности данных.
От всех этих сложностей избавлены клиент-серверные базы данных. Клиент-серверные базы данных (удаленные базы данных) — это базы данных, в которых таблицы расположены на сервере сети, а приложения для работы с этими таблицами находятся на пользовательских компьютерах (клиентах), подключенных к серверу. В данном случае говорят, что база данных имеет архитектуру «клиент-сервер».
Клиент-серверные базы данных работают с помощью запросов на языке SQL (Structured Query Language).
SQL-запросы применяются для любых операций с таблицами базы данных, расположенной на сервере.
 
В клиент-серверных приложениях баз данных вся информационная система делится на две разнородные части:
  1. клиент базы данных;
  2. сервер базы данных.
Клиент базы данных — это приложение пользователя, которое обеспечивает формирование и передачу запросов серверу, а также отображение полученных результатов. Кроме того, приложение-клиент должно обеспечивать интерфейс пользователя базы данных.
Сервер базы данных — специальная программа, которая управляет удаленной базой данных и обеспечивает выполнение запросов клиентов и выдачу результатов запросов.
 
Приложения, работающие с клиент-серверными базами данных, называются двухъярусными (рис. 1.7) или многоярусными (рис. 1.8) приложениями (two-tiered и multi-tiered applications).
 
Рис. 1.7. Двухъярусная архитектура «клиент-сервер»
Двухъярусная архитектура «клиент-сервер»

 

При использовании двухъярусной архитектуры любой клиент посылает серверу SQL-запрос на предоставление данных из таблиц. Сервер обрабатывает этот запрос и возвращает клиенту только те данные, которые были определены запросом. Очевидны следующие преимущества такой архитектуры:

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

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

Для того чтобы еще больше упростить приложения клиентов базы данных, была разработана многоярусная архитектура базы данных, пример которой (трехъярусная архитектура) приведен на рис. 1.8.

Рис. 1.8. Трехъярусная архитектура «клиент-сервер» 

 Трехъярусная архитектура «клиент-сервер»

 В многоярусной архитектуре часть кода приложений клиентов перенесена в сервер приложений.

 

Сервер приложений — это программа, которая содержит средства доступа к данным и программный код, являющиеся наиболее общими для всех приложений-клиентов базы данных. 

 

Преимущество данной архитектуры заключается в упрощении программ-клиентов и уменьшении их кода.

Выбор типа базы данных зависит от многих факторов, не последним из которых является наличие сети из нескольких компьютеров.

Выбирая тип создаваемой базы данных, ответьте на следующие вопросы:

  • сколько человек будут использовать таблицы базы данных? Клиент-серверные базы данных разработаны для одновременного доступа к ним нескольких пользователей. Локальные базы данных обычно работают с одним пользователем;
  • какое количество данных будет содержаться в таблицах базы данных? Клиент-серверные базы данных могут содержать намного больше данных, чем локальн ые базы данных;
  • какая скорость доступа к данным вас устроит? Локальные базы данных обеспечивают более быстрый доступ к данным по сравнению с клиент-серверными;
  • как вы планируете администрировать базу данных? Локальные базы данных менее требовательны к настройке и администрированию. 
dle

Помоги проекту! Расскажи друзьям об этом сайте: