- •Технології проектування баз даних в delphi
- •6.051001 - Метрологія та інформаційно-вимірювальні технології
- •Технології проектування баз даних в delphi
- •6.051001 - Метрологія та інформаційно-вимірювальні технології
- •1Введение
- •2Введение в базы данных
- •2.1Типы субд
- •2.2Стандарт odbc
- •2.3Технологии взаимодействия delphi с бд
- •2.3.1Особенности технологии bde
- •2.3.2Особенности технологии ado
- •2.4Таблицы бд и связи между ними
- •2.5Первичные ключи и индексы
- •2.6Демонстрационная бд "поставщик книг"
- •3Использование odbc для подключения источника данных. Псевдонимы бд
- •3.1Внешний и внутренний псевдонимы бд
- •3.1.1Создание внешнего псевдонима
- •3.1.2Проверка работоспособности внешнего псевдонима в среде Delphi
- •3.2Внутренний псевдоним бд
- •3.2.1Назначение внутреннего псевдонима бд
- •3.2.2Создание внутреннего псевдонима
- •3.2.3Преимущества использования внутреннего псевдонима и проблемы перехода на другие субд
- •4Создание проекта с бд в технологии bde
- •4.1Особенности использования bde для соединения с источником данных
- •4.2Структура проекта с бд и визуальными компонентами
- •4.3Активизация проекта
- •4.4.4Компоненты tdbGrid
- •4.5Модуль данных
- •4.5.1Создание модуля данных tDataModule
- •4.5.2Связь модуля главного окна с модулем данных
- •4.5.3Создание компонента tDatabase
- •4.5.4Создание компонента tTable
- •4.5.5Создание компонента tDataSource
- •4.5.6Связь модуля главного окна с модулем данных
- •4.5.7Связь сетки tdbGrid и навигатора dbNavigator c источником данных tDataSource
- •4.5.8Связь главный-детальный между наборами данных
- •4.5.9Задание реляционной связи между наборами данных
- •4.5.10Активизация наборов данных
- •4.5.11Недостатки полученных решений и пути их устранения
- •4.6Объекты-столбцы сетки dbGrid
- •4.6.1Создание объектов-столбцов
- •4.6.2Редактирование объекта-столбца
- •4.7Объекты-поля наборов данных
- •4.7.1Назначение объектов-полей
- •4.7.2Создание объектов-полей
- •4.7.3Присоединение к наборам данных новых полей
- •4.7.4Присоединение полей из других таблиц. Подстановочные поля
- •4.7.5Вычисляемые поля
- •4.8Обработчики событий компонент работы с бд
- •4.8.1Обработчики событий OnGetText полей нд и компонента визуализации данных tdbGrid
- •4.8.2Установка системных переменных в обработчике событя OnCreate
- •4.9Бизнес-правила и обработчики событий компонент работы с бд
- •5Sql запросы к бд
- •5.1Компонент tQuery
- •5.2Создание компонента tQuery
- •5.3Использования компонента tQuery
- •5.3.1Свойство sql компонента tQuery
- •5.3.2Методы Open и ExecSql
- •5.3.3Схема программного формирования sql-запроса
- •5.3.4Параметрические запросы
- •5.3.5Параметрические запросы и свойство DataSource компонента tQuery
- •5.3.6Связь главный-детальный с компонентом tQuery в качестве детального набора данных
- •5.4Доступ к полям запроса
- •5.4.1Обращение к значению поля при помощи свойств объектов-полей Value и AsXxxx
- •5.4.2Обращение к значению поля при помощи свойств набора данных Fields и FieldValues
- •5.4.3Обращение к значению поля при помощи функции набора данных FieldByName
- •5.5Программный доступ к данным запроса
- •5.5.1Общая схема программного доступа к данным запроса
- •5.5.2Последовательная навигация по записям
- •5.6Обзор событий компонента tQuery
- •6Хранимые процедуры и триггеры
- •6.1Хранимые процедуры
- •6.2Создание хранимых процедур
- •6.3Вызов хранимых процедур
- •6.4Триггеры
- •7Наборы данных
- •7.1Обзор событий класса tdbDataSet
- •7.1.1Реализация каскадных изменений и бизнес-правил
- •7.1.2Другие события
- •8Технология ado
- •8.1Основные особенности технологии ado
- •8.2Реализация технологии ado в Delphi
- •8.3Создание проекта с бд в технологии ado. Установка связи с бд
- •8.3.1Создание модуля данных
- •8.3.2Начало настройки связи
- •8.3.3Выбор провайдера
- •8.3.4Настройка провайдера
- •8.3.5Настройка провайдера Microsoft Jet 4.0 ole db Provider
- •8.3.6Настройка провайдера Microsoft ole db Provider for odbc Drivers
- •8.3.7Завершение настройки связи
- •8.3.8Настройка оставшихся компонент модуля данных
- •8.4Особенности использования компонентов ado
- •8.4.1Базовые объекты ado
- •8.4.2Объект Recordset
- •8.4.3Объект Command
- •8.4.8Связной компонент tadoConnection
- •8.4.9Компонент tadoCommand
- •8.5.2Специфические свойства
- •8.5Свойства, методы и события ado компонентов-наборов
- •8.5.1Общие свойства с bde-компонентами
- •8.5.3Методы класса tCustomAdoDataSet
- •8.5.4События класса tCustomAdoDataSet
- •8.6Компонент tadoDataSet
- •8.7Компонент tadoTable
- •8.8Компонент tadoQuery
- •9Компоненты визуализации данных в Delphi
- •9.1Компонент tdbGrid
- •9.1.1Свойства
- •9.1.2Дополнительные возможности сетки
- •9.2Компоненты визуализации полей текущей записи
- •9.2.1Компонент tdbText
- •9.2.2Компонент tdbEdit
- •9.2.3Компонент tdbCheckBox
- •9.2.4Компонент tdbRadioGroup
- •9.2.5Списочные компоненты
- •9.2.6Компонент tdbMemo
- •9.2.7Компонент tdbRichEdit
- •9.2.8Компонент tdbCtrlGrid
- •9.2.9Компонент tdbNavigator
- •Приложение 2. Бд "поставщик книг"
- •Рекомендованная литература
1Введение
Исторически вычислительные машины появились как средство резкого ускорения вычислений при проведении сложных расчетов в научной и инженерной деятельности. Однако на сегодня эти задачи перестали быть господствующими при использовании компьютерной техники и составляют по разным оценкам от 3% до 5% общих затрат машинного времени.
На сегодня на передний план вышла способность компьютеров хранить и обеспечивать быстрый доступ и обработку больших объемов данных, что связано с использованием компьютера для моделирования и решения задач в различных предметных (проблемных) областях человеческой деятельности. Компьютерная техника стала центральным звеном систем обработки данных.
Решение задач хранения и обработки данных достигается применением определенных средств организации (представления) данных в памяти компьютера, а также созданием специальных средств доступа и обработки этих данных.
Для хранения больших объемов данных в современных компютерных системах используются определенным образом организованные базы данных (БД), а для управления и взаимодействия с БД – системы управления базами данных (СУБД). Следует подчеркнуть, что каждый тип СУБД ориентирован на свой тип БД.
Многие из современных СУБД обладают весьма гибкими и мощными средствами высокоуровневого программирования задач обработки БД. Во многих случаях этих средств достаточно для задач, решаемых конкретными организациями. Вместе с тем возможности таких СУБД резко сокращаются, если необходимо выполнять обработку данных из БД других типов.
С другой стороны современные высокоуровневые языки и среды программирования, ориентированные на обработку данных, обладают мощными средствами по обработке БД разных типов - локальных, централизованных и распределенных. К таким средам программирования относится и Delphi.
В настоящем пособии на примере БД PostgreSQL, подробно рассматриваются вопросы подключения к программе БД разных типов и средства Delphi по высокоуровневому программированию задач обработки данных.
Еще 2-мя важными свойствами сред программирования, ориентированных на обработку данных, являются:
Возможность создания в этих средах развитых отчетов на основе данных из БД;
Обеспечение переносимости программного обеспечения.
Этим вопросам посвящено отдельное учебно-методическое пособие "Проектирование баз данных в Delphi. Создание отчетов и распространение пприложений" [1].
2Введение в базы данных
Базами данных (Database, БД, DB) называют электронные хранилища данных, доступ к которым осуществляется с одного или нескольких компьютеров. Обычно БД создается для хранения и доступа к данным, содержащим сведения о некоторой предметной области (ПО), то есть некоторой области человеческой деятельности или области реального мира.
2.1Типы субд
Системы управления базами данных (СУБД) - это программные средства, предназначенные для создания, наполнения, обновления, поиска и удаления данных в БД.
По своей архитектуре программнные системы (ПС), использующие СУБД, делятся на одно-, двух- и трехзвенные (рисунок 1.1).
В однозвенной архитектуре ПС используется единственное звено (клиент), обеспечивающее необходимую логику управления данными и их визуализацию.
В двухзвенной архитектуре ПС значительную часть логики управления данными берет на себя сервер БД, в то время как клиент в основном занят обработкой и отображением данных в удобном для пользователя виде. При этом клиент должен знать, где расположен сервер.
В трехзвенной архитектуре ПС используется промежуточное звено - сервер приложений, являющееся посредником между клиентом и сервером БД. Сервер приложений призван полностью избавить клиента от каких бы то ни было забот по управлению данными и обеспечению связи с сервером БД.
а
б в
Рисунок 1.1 – Архитектура СУБД: а) - однозвенная, б) - двухзвенная, в) - трехзвенная
В зависимости от местоположения отдельных частей СУБД различают локальные и сетевые СУБД.
Все части локальной СУБД размещаются на компьютере пользователя БД.
К сетевым СУБД относятся файл-серверные, клиент-серверные и распределенные СУБД. Непременным атрибутом этих систем является сеть, обеспечивающая аппаратную связь компьютеров и делающая возможной корпоративную работу множества пользователей с одними и теми же данными.
В файл-серверных СУБД все данные обычно размещаются в виде отдельных файлов в одном или нескольких каталогах достаточно мощной машины, специально выделенной для этих целей и постоянно подключенной к сети. Такой компьютер называется файл-сервером.
Безусловным достоинством файл-серверных систем является относительная простота их создания и обслуживания - фактически все сводится лишь к развертыванию локальной сети и установке на подключенных к ней компьютерах сетевых операционных систем (ОС).
Недостатком файл-серверных систем является значительная нагрузка на сеть, так как между клиентом и сервером пересылается весь файл или файлы, а выборку требуемых данных он делает сам. Такие систем на сегодня уходят в прошлое.
Клиент-серверные (двухзвенные) системы значительно снижают нагрузку на сеть, так как клиент общается с данными через специализированного посредника - сервер БД, который размещается на машине с данными.
Сервер БД принимает запрос от клиента, отыскивает в данных нужные записи и передает их клиенту. Таким образом, по сети передаются относительно короткий запрос и нужные записи, даже если соответствующий файл с данными содержит сотни тысяч записей.
Клиент-серверные системы масштабируются до сотен и тысяч клиентских мест.
Запрос к серверу формируется на специальном языке структурированных запросов (Structured Query Language, SQL), поэтому часто серверы БД называются SQL-серверами.
Серверы БД представляют собой относительно сложные программы, разрабатываемые различными фирмами. К ним относятся, например, Microsoft SQL Server, Oracle, Sybase SQL Server, DB2, Informix, MySQL, PostgreSQL, InterBase и т. д.
Распределенные СУБД могут содержать несколько десятков и сотен серверов БД. Количество клиентских мест в них может достигать десятков и сотен тысяч. СУБД ведущих производителей Oracle, Sybase, Informix, Microsoft, IBM на сегодня, в той или иной форме, предоставляют возможности по построению распределенных БД.
