Реферат: Классификация приложений для работы с базами данных - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Классификация приложений для работы с базами данных

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 382 kb, скачать бесплатно
Обойти Антиплагиат
Повысьте уникальность файла до 80-100% здесь.
Промокод referatbank - cкидка 20%!

Узнайте стоимость написания уникальной работы




Классификация приложенийдля работы

с базами данных.


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

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

Программа называется соответствующей архитектуре клиент/сервер, если она имеет мощный серве БД, отвечающий за обработку поступающих запросов и передачу результата клиентам.В качестве СУБД используются мощные промышленные серверы, для создания запросов и управления данными используется SQL.Также обязательной состовляющей частью должны быть клиентические приложения, обеспечивающий отображение данных и интерфейс с конечным пользователем.Клиентическое ПО чаще всего распологается на удаленных рабочих местах, в сетях, требующих отдельного администрирования.

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

Одноврименно с усложнениемрешаемых задач усложнялись и совершенствовались программы для работы с БД.Появились деления на однопользовательские и многопользовательские локальные СУБД, соответсвенно локальные программы стали делиться на однопользовательские и сетевые.Возникла дополнительная классификация клиентических приложений на "слабые" ("тонкие") и "сильные" ("толстые"), появились разнообразные способы связи между клиентом и сервером, алгоритмы обслуживания очередей клиентов и способы управления транзакциями.

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

Те программы которые раньше называлисьлокальными (независимо от способа связи с СУБД), чаще всего сейчас входят в число одноуровневых приложений, так как обработка данных в них ведется в единственном месте. Клиент/серверные приложения стали делится на двухуровневые (классический клиент/сервер) и трехуровневые (клиент/сервер с ПО промежуточного слоя).

С точки зрения Delphi при учоте уровней обработки данных из расмотрения выпал процессор БД и ВДЕ, который берет на себя большую часть низкоуровневой обработки данных и установку соединения между СУБД и приложением. НО эта классификатция подразумиваетразделения на уровни только создоваемой разработчиком логики обработки данных, без учета стандартных используемых механизмов. Поэтому в документации по Delphi двухуровневые программы (с учетом уровня обработки ВДЕ) часто называются одноуровневыми приложениями, основными на ВДЕ.

Терминология

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

Объединение-это логическое отношение между двумя таблицами на основе внешнего ключа.

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

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

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

Набор атрибутов-структура, которая содержит информацию о свойствах поля (его типе, размере и т.д.), а также об особенностях визуализации данного поля.

В приложениях Delphi набор может быть получен не только в результате выполнения запроса SQL, но и простым открытием таблицы компонентом T Table (с фильтром или без него).Следует отметить что любое обращение к БД ВДЕ, которые трансформируют любые виды требований на наборы данных в собственные запросы.


Процессор баз данных Borland

Database Engine (ВДЕ)

1. Архитектура

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

Архитектура ВДЕ основана на драйверах которые обеспечивают обмен данными с конкретными СУБД. Ядро процессора БД состовляет совокупность динамических библиотек, содержащих механизмы обмена данными,управления запрсами, подержки национальных языков и т.д. Назначение всех динамических библиотек представленно в таблице1.

В состав ВДЕ включены стандартные драйверы, обеспечивающие доступ к СУБД Paradox, dBase, Foxpro и текстовым файлом. Помимо этого в ВДЕ имеется простой механизм подключения любых драйверов ОДБС (например, Microsoft Access) т создание на их основе пакетов ОДВС.

Доступ к данным серверов SQL обеспечивает отдельная система драйверов-SQL Links. С их помощью в Delphi можно разрабатывать приложения для серверов Dracle 8, Sybase, ДВ2 и, естественно, Interbase.

Эта особенность архитектуры ВДЕ обеспечивает ряд существенных преимуществ.

1.Реальное разделение програмного кода и механизм доступа к данным. Причем сам доступ также осуществляется на нескольких уровнях-ВДЕ, драйвера, сервера БД. Приложение Delphi для работы с БД можно настроить на использования с любой СУБД, для которой имеется состветствующий драйвер, буквально за несколько минут. При этом перекомпиляция самой програмы не требуется. Плата за такую великолепную переносимость - скорость обмена данными через ВДЕ и драйверы несколько меньше чем напрямую между приложением и СУБД.

2.Разделение драйверов и выдиление в спецальную группу драйверов для серверов SQLпозволило гораздо полнее использовать функциональные возможности серверов БД, а применение единого API сняло остроту проблемы интерпритации процесса выполнения транзакций разными серверами.

3.ВДЕ идеально подходит для создания приложений для архитектуры клиент/сервер, так какобеспечивает сследующие функции:

- обработка запросов вдиалоговом режиме;

- представление через ВДЕ вызовов операционной системы;

- модифицируемые запросы;

- поддержка хронимых процедур;

- управление регистрацией пользователя.


Таблица 1. Ядро процессора баз данных ВДЕ 5

Имя файла Назначение

DBClient.dll Динамическая библиотека, отвечающая за работу клиентской части приложения

IDPROV.dll Динамическая библиотека, отвечающая за работу серверной части приложения

IDAPI32.dll Базовая динамическая библиотека ВДЕ

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

IDBAT32.dll Дин. б-ка, с функциями межтабличного переноса данных

IDQBE32.dll Дин. б-ка, обеспечивающая работу запросов по примеру (Query By Example)

IDSQL32.dll Дин. б-ка, обеспечивающая обработку запросов SQL

IDASCI32.dll Дин. б-ка, обеспечивающая работу драйвера текстовых файлов

IDPDX32.dll Дин. б-ка, обеспечивающая работу драйверов Paradox

IDDBAS32.dll Дин. б-ка, обеспечивающая работу драйвера dBase

DODBS32.dll Дин. б-ка, обеспечивающая работу драйвера сокета ODBC

IDR20009.dll Дин. б-ка, ресурсов, содержащая сообщения об ошибках

IDDAO32.dll Дин. б-ка, обеспечивающая работу драйвера Micrjsoft Access 95 и Tet Engine 3.0

IDDA3532.dll Дин. б-ка, обеспечивающая работу драйвера Microsoft Access 97 и Tet Engine 3.5

IDDR32.dll Дин. б-ка, для работы с репазиторием данных


2.Функционально ВДЕ содержит следующие составные части

-Администратор системных ресурсов

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

-Системаоброботки запросов

Обеспечивает выполнение запросов SQL и QBE от приложения к любым базам данных, для которых установлен драйвер, даже если сама СУБД не поддерживает прямое использование запросов SQL

-Система сортировки

Является запатентованной технологией и обеспечивает очень быстрый поиск по запросам SQL и через стандартные драйверы для Paradox и dBase.

-Система пакетной обработки

Представляет собой механизм преобразования данных из одного формата в другой при выполнении операций над целыми таблицами. Эта система использована в качестве основы для компонента TBatchMove и утилиты Data Pump, входящие в стандартную постановку ВДЕ.

-Диспетчер памяти

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

-Диспетчер буфета

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

-Транслятор данных

Обеспечивает преобразования форматов данных для различных типов БД.

-КЭШ BLOB

Используется для ускорения работы с данными в формате BLOB

-SQL -генератор

Транслирует запросы QBE в запросы SQL.

-Система ресруктиризации

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

-Система поддержки драйверов SQL

Повышает эффективность механизма поиска при выполнении запроса SQL

-Таблица в памяти

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

-Связанные курсоры

МЕханизм связанных курсоров обеспечивает низкоуровневое выполнение межтабличных соединений. Для реализации подобных связей на уровне VSL достаточно установить значение нескольких свойств.

-Диспетчер конфигурации

Обеспечивает разработчику доступ к информации о конфигурации драйверов.

3. Процесс доступа к данным из BDE.

Осущестляется следующим образом (рис. 1)

1) Компонент доступа к данным приложения получает команду на открытие наора данных и при помощи уноследования от предка (T BDE Data Set) методов обращается к BDE с соответствующим запросом.

2) BDE выдиляет для нового процесса необходимые ресурсы и, при необходимости, транслирует запрос в соответствии с особенностями драййвера запрашиваемой СУБД.

3) При обращении к локальной базе данных драйвер ан прямую обращается к таблицам; при обращении к серверу SQL вызывается соответствующее клиентское ПО.















4. Настройка BDE

Для управления псевдонимами баз данных, настройки стандартных и дополнительных драйверов в составе BDE имеются специальная утилита-BDE Administrator.

Стандартная конфигурация BDE сохраняется в файле /DAP/.CFG . При необходимости текущую конфигурациюв в новом файле с расширением CFG.

Рабочая область утилиты BDE Administrator представляет собой двухстроничный блокнот. Страница Databases содержит иерархическое дерево, в узлах которого расположены на данный момент псевдонимы БД. При выборе какого-либо псевдонима в правой части панели появляется перечень параметров драйвера, соответствующего псевдониму, которые можно настраивать в ручную.

Страница Configuration предназначена для настройки параметров драйверов BDE , предназначеных для обеспечения доступа к СУБД и серверам БД. Также здесь опредиляется системная конфигурация BDE, которая включает параметры числовых форматов, дат,времени. Вся информация здесь также структуризированна в виде иерархического дерева.

При выборе в левой панелти утилиты какого-либо узла, в правой части на стронице Definition отображается вся необходимая информация для этого объекта. Назначение параметров локальных драйверов BDE представленно в табл.2.

Таблица 2.Параметры драйверов BDEдля локаль ных баз данных.

Параметр Назначение

STANDART

DEFOLT DRIVER Задает тип конкретного локального драйвера

(Paradox, dBase, FoxPro, Asc).

ENABLE BCD Определяет способ представления вещественных чисел. При значении True такие числапреобразуются в формат BCD (десятичные с двоичным кодированием), который позволяет округлять погрешности высших разрядов дробной части числа. Точность состовляет 20 знаков после запятой.

PATH Указывает путь к файлам базы данных.

PARADOX

NET DIR Указывает путь к файлу обеспечения сетевого доступа PDOXVSRS.NET. Дравер приложения, который работает с БД локально, должен указывать на этот фаил, расположеный на том же компьютере. Драйвер приложения обращающийся к БД по сети, должен указывать на подключенный сетевой диск сэтим файлом.

VERSION Нередактируемая информация оверсии драйвера.

TYPE Тип СУБД. Для Paradox имеет значение FILE только для чтения.

LANGDRIVER Определяет дравер языковой поддержки.

BLOCK SIZE Задает размер блоков дискового пространства для хранения записей, кратно 1024.

FILL FACTOR Определяет процент заполнения блока дискового пространства при хранении индексов, по умолчанию 95%.

LEVEL Задает формат временной таблицы впамяти:

3-совместим с Paradox 3.5 иниже

4-Paradox 4.0

5-Paradox 5.0

7-Paradox

STRICTINTEGRTY Определяет возможность использования приложения на базе Paradox 4.0 более позних таблиц с ссылочной целосностью. При значении TRUE использование разрешается, но возникает риск нарушения целосности данных.

DBASE

VERSION Нередактируемая информация о версии драйвера.

TYPE Тип СУБД. Для dBASE имеет значение FILE только для чтения.

LANGDRIVER Определяет драйвер языковой поддержки.

LEVEL Задает формат таблиц. Значение соответствует номеру версии СУБД.

MDX BLOCK SIZE Размер блоков для файлов с расширением MDX, кратно 5/2

MEMO FILE BLOCK Размер блоков для файлов с данными типа memo, кратно 5/2

SIZE

FOXPRO

VERSION Нередактируемая информация оверсии драйвера

TYPE Тип СУБД. Для FoxPro имеет значение FILE только для чтения.

LANGDRIVER Определяет драйвер языковой поддержки

LEVEL Имеет значение 25.

5. Интерфейс прикладного програмирования.

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

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

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

Для создания приложений на основе вызовов функций BDE необходимо выполнить следующие операции:

1.Инициализация BDE (функция DbiInit).

2.Открытие объектов базыданных (функция DbiopenDatabase).

3.Определение рабочего каталога (функция Dbi Set Direktory), если на предидущем этапе не задан псевдоним БДю

4.Определение временного каталога (функция Dbi Set Private Dir).

5.Открытие набора данных и создание курсора (функции DbiOpen Table,DbiQExec и пр.;дескриптор курсора hDBICur).

6.Заполнение структуры CUR Props, содержащий данные о курсоре и наборе данных (функция Dbi Get Cursor Props).

7.Выделение памяти для буфера записи .

8.Навигация по набору данных (функции Dbi Set to Begin, Dbi Set to End, Dbi Set to Cursor ипр.)

9.Чтение необходимой записи (функции Dbi Get Relativ Recod, Dbi Get Next Recod, Dbi Get Recod, Dbi Get Prior Recod и пр.).

10.Чтение или обновление необходимого поля (функции Dbi Get Field).

11.Освобождение всех ресурсов (освобождение буфера записи, записи курсора, таблицы, BDE).

При использовании в программе функции из API BDE необходимо включить в секцию uses модуль BDE.

В компонентах VCL для доступа к данным (TTable, TQuery, TStored Proc) инкапсулирован механизм взаимодействия с дина мическими библиотеками BDE.Любой компонент для доступа к данным имеет в иерархии наследования класс TBDE DataSet, унаследованые методы которого используется для установления связи с базой данных через BDE. Важную роль при этом играет зарегистрированный в BDE псевдоним базы данных (свойство компонента называется DataBaseName). Второе важнейшее свойство-Activ, имеющее тип Doolean, позволяет открыть или закрыть сеанс связи с базой данных.

Визуализацию полученных даных обычно выполняет компонент TDataSource и один или несколько компонентов отображения данных (Data Controls). Основная задача компонента TData Scource-разделение набора данных на поля или группы полей и передача их по назначению. Он же отвечает за возврат зделанных изменений и передачу сигналов управления от пользователя в набор данных.

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
















Таким образом, компонент TDataScource служит мостом между набором данных и пользовательским интерфейсом. С точки зрения разработчика приложений процес подключения набора данных не содержит сложностей. Эту работу выполняет механизм доступа к данным, основой которого является процессор баз данных Borland Database Engine.

Типы данных.

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

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

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

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

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

Практически во всех серверах БД пользователь имеет возможность создовать собственные типы данных. Для их использования в приложении Delphi имеется абстрактный тип данных и класс TADT Field. Абстрактный тип может в себя включать любой скалярный тип данных (числа, даты, ссылки, массивы, наборы данных).

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

Данные типа Blob (Binary Large OBject) предстовляют собой двоечные массивы произвольной длинны. В самом поле содержится только ссылка на отдельный фаил базы данных, в котором хронится двоичный массив. Таким образом поля типа Blob являются универсальным носителем любых данных, которые имеют сколярную и не сколярную структуру и которое можно приобразовать в двоичное представление.

Новой возможностью Delphi стало использование массивов.Этот тип организует массив из данных любой структуры, за исключением таких же массивов .Для каждого элимента массива может создоваться собственный объект TField. Для управления этим механизмом используется свойство SparseArays в классе TDataSet.

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

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

Состояние набора данных

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

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

Базовый класс TDataSet, инкапсулирующий свойства набора данных, позволяет изменять состояния, а также проверять текущее состояние набора данных. Текущее состояние набора даных передается в свойство State, имеющая вид NDataSetState.

Таблица 3. Афтомотические состояния набора данных

Константа состояния Описание

dsNewValue Включаются при обращении к свойству NewValue поля набора данных

dsOldValue Включается при обращении к свойству OldValue поля набора данных

dsCurValue Включается при обращении к свойству CurValueполя набора данных

dsInternalCalc Включается при расчете значений полей, для которых FindKind=frInternalCalc

dsCalcFields Включается при выполнении метода onCalcFields

dsBlockRead Включается механизм ускорения перемещения по набору данных

dsFilter Включается при выполнении метода onFilterRecond

Таблица4. Управляемые состояния набора данных

Константа состояния Метод Описание

dsInactive Close Набор данных закрыт

dsBrowse Open Данные доступны для просиотра, но не доступны дляредактирования

dsEdit Edit Данные можно редактировать

dsInsert Insert К наборам данных можно добовлять новые записи

dsSetKey SetKey Включается механизм поиска по ключу. Также могут использоваться диапазоны

Для управления состояния набора данных используются методы Open, Close, Edit, Insert. Закрытый набор данных всегда имеет не закыртое состояние dsInactiv. При открытии набора данных переход в состояние просмотра данных dsBrowse. В этом состоянии по записям набора данных можно перемещаться ипросматривать их содржимое, но редактировать данные нельзя. Это основное состояние открытого набора данных, из него можно перейти вдругие состояния, но любое изменение состояния происходит через просмотр данных (рис.3)



















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

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

Состояние установки ключа используется только в компоненте TTable рпи необходимости описка методами FindKey и FindNext, а также при использовании деапозонов (метод SetRang). Это состояние сохроняется до момента вызова одного из методов поиска по ключу или метода обмена диапазона.

Состояние просмотра по блокам используется набором данных при реализации быстрого перемещения по большим мосивам записей в компонентах отображения данных и без вызова обработчика события перемещения позаписям. Для реализации быстрого перемещения по наборам данных можно использовать методы Disable Controls и Enable Controls/

Объект поля

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

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

С точки зрения дабора данных объект поля является хранилищем текущего значения

этого поля (а не всего столбца данных). Класс TField Тесно интегрирован с компонентами досутпа к данным.

1.Динамические и статические поля

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

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

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

Фильтрация данных

Наиболее эффективным способом отбора записей в набор данных (особенно из больших таблиц) является создание и выполнение соответствующего запроса SQL.

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

Текст фильтра должен содержаться в свойстве Filter, а свойство Filtered включает и выключает фильтр. Параметры фильтра определяются свойством FilterOptions.

Эти свойства уже присутствуют в базовом классе TdataSet, однако в нем работают только методы присваивания значений для этих свойств. Сам механизм фильтрации включен в класс TBDEDatSet, так как BDE производит фильтрацию данных для их передачи в компонент приложения.

Компонент Tquery также может использовать фильтры. Это позволяет решать некоторые проблемы, которые иначе требует изменение текста запроса.

При использовании фильтра его текст транслируетсяBDEв синтаксис SQL и передается для выполнения на сервер или через соответствующий драйвер в локальную СУБД.

Фильтры можно создавать двумя способами:

  1. при помощи свойства Filter;

  2. для создания более сложных фильтров с применением средств языка программирования применяется метод-обработчик набора данных OnFilterRecord.

Также фильтры можно разделять на статистические и динамические.

Статистические фильтры создаются во время разработки приложения. Динамические фильтры можно создавать и редактировать во время выполнения приложения.

При создании текста фильтра для свойства Filter используются для полей соответствующей таблицы БД, а для задания отношений между ними применяются все операторы сравнения и логические операторы AND, OR, NOT.

Нельзя сравнивать между собой два поля.

Параметры фильтра определяются свойством FilterOptions, который может принимать следующие значения: foCaseInsenSitive – отключает сравнение строковых значений с учетом регистра символов;

FoNoPatialCompare – отключает отбор строковых значений по заданой части строки.

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

Такой фильтр можно модифицировать путем присвоения методу процедурной переменной, содержащей ссылку на новый метод.

Закладки

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

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

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

GetBookmark – создает новую закладку для текущей записи;

GotoBookmark – осуществляет переход к заплатке, переданной в парметре;

FreeBookmark – удаляет закладку, переданную в параметре.

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

Примечание механизм закладок также используется в компоненте TDBGrid. Сетка имеет свойство SelecntdRows типа TbookmarkList, которое представляет свой список закладок, указывающих на одновременно выделенные записи.

Индексация данных

Важнейшей проблемой для любой БД является достижение максимальной производительности и ее сохранение при дальнейшем объемов хранимых данных. Использование индексов решает эту задачу.

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

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

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

Свойства и методы для работы с индексами присутствуют только в классе VCL Delphi Ttable, так как в компоненте TQuery работа с индексами осуществлаются средствами SQL. Следовательно, в ближайшем общем предке – классе TBDE DataSet – отсутствуют возможности для использования индексов.

При открытии набора данных все записи отсортированы в соответствии с первичным ключом, но только в случае, если свойство DefaultIndex имеет значение True.

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

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

Список имен всех индексов таблицы можно получить при помощи метода GetIndexNames.

Информация об индексах набора данных содержится в свойстве Items класса TIndexDefs. В нем для каждого индекса создается структура TIndexDef.

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

Диапазоны

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

Диапазоны работают быстрее фильтров. При использовании диапазонов набор данных обязательно должен находиться в состоянии dsSetKey.

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

Метод Назначение

SetRangeStart Переводит набор данных в режим dsSetKey для задания начальной и конечной таблицы диапазона

SetRangeEnd

ApplyRange Применяет диапазон к набору данных

CancelRange отменяет диапазон


Для одновременного задания верхней и нижней границы можно использовать SetRange. Кака граница будет у диапазона – открытая или закрытая, определяет свойство KeyExclusive.


1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Ты можешь быть бесконечно прав. Но какой в этом толк, если судебный процесс проходит в России?
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

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

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2017
Рейтинг@Mail.ru