Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТА № 8_Часть1.doc
Скачиваний:
1
Добавлен:
25.11.2018
Размер:
309.25 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 8

Часть 1 Базы данных в Delphi

11.1. Принципы построения баз данных

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

Одним из достоинств программирования баз данных в Delphi является использование открытой архитектуры доступа к данным, в основу которой положена концепция, построенная на использовании как реляционного (с помощью SQL-запросов), так и навигационного (последовательного) доступа к различным базам данных (БД) Возможность подключения к локальным и удаленным базам данных обеспечивается процессором баз данных Borland Database Engine (рис. 11.1.1).

Borland Database Engine (BDE) предоставляет единый набор функций (API) обработки локальных и серверных данных. Обращение к различным источникам данных основывается на концепции драйверов. Таким образом, обеспечивается интерфейс к наиболее распространенным форматам/способам хранения данных: DBase, Paradox, ASCII-файлам, для связи с серверами третьих фирм BDE использует стандартный интерфейс открытого подключения к БД (Open DataBase Connectivity (ODBC)), а к большинству популярных SQL-серверов BDE подключается через Borland SQL. Кроме того, библиотека визуальных компонент содержит компоненты библиотеки ADOExpress для работы с источниками данных Microsoft ActiveX Data Objects (ADO).

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

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

Реляционная база данных — это набор логически связанных между собой таблиц. Требования к проектированию реляционной базы данных заключаются в следующем:

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

  • каждая таблица состоит из фиксированного числа колонок (полей) и значений. В одной колонке не может быть сохранено более одного значения;

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

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

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

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

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

Между таблицами может быть установлено одно из следующих типов отношений:

  • один-к-одному, если часть таблицы может использоваться несколькими таблицами одновременно или ряд полей в большинстве записей не будет заполняться;

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

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