Delphi и базы данных

Содержание

Слайд 2

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

Основы алгоритмизации и программирования

Введение в базы данных

Слайд 3

Введение в базы данных Базой данных (БД) называется электронное хранилище информации,

Введение в базы данных


Базой данных (БД) называется электронное хранилище информации,

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

Введение в базы данных Основой любой БД является таблица. Таблица -это

Введение в базы данных


Основой любой БД является таблица. Таблица -это файл определенного формата с данными, представленными в

табличном виде, например:
Такая таблица состоит из полей и записей.
Поле - столбец таблицы, имеющий название, тип данных и размер. Поле предназначено для описания отдельного атрибута записи. Например, поле "№" имеет целочисленный тип данных, а поле "Фамилия" - строковый.
Запись - строка таблицы, описывающая какой-то объект, или иначе, набор атрибутов какого-то объекта. Например, строка под номером 1 описывает человека - Иванова Ивана Ивановича.
Слайд 5

Введение в базы данных Первичный ключ - это поле или набор

Введение в базы данных


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

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

Введение в базы данных Связи (отношения) Реляционные связи (отношения) между таблицами

Введение в базы данных


Связи (отношения)

Реляционные связи (отношения) между таблицами 
предназначены для разбивки таблиц

на самодостаточные части. Рассмотрим пример.

Разобьём эту таблицу на две разных таблицы, имеющие релятивную связь:

Слайд 7

Введение в базы данных При создании связей, как правило, одна таблица

Введение в базы данных


При создании связей, как правило, одна таблица 
называется главной (master),

другая - подчиненной (details). Связь, представленная на предыдущем рисунке называется отношением один-ко-многим.
Отношение один-к-одному подразумевает, что одной записи в главной таблице соответствует одна запись в подчиненной таблице.

Отношение один-к-одному

Отношение многие-ко-многим

Слайд 8

Введение в базы данных Ссылочная целостность Ссылочной целостностью называют особый механизм,

Введение в базы данных


Ссылочная целостность
Ссылочной целостностью называют особый механизм, осуществляемый средствами СУБД или

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

Введение в базы данных Нормализация базы данных Существуют некоторые правила, помогающие

Введение в базы данных


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

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

Повторяющиеся группы

Слайд 10

Введение в базы данных Вторая нормальная форма (2НФ) требует, чтобы таблица

Введение в базы данных


Вторая нормальная форма (2НФ) требует, чтобы таблица удовлетворяла всем

требованиям первой нормальной формы, и чтобы любое не ключевое 
поле однозначно идентифицировалось полным набором ключевых полей. Рассмотрим пример: некоторые студенты посещают спортивные платные секции, и ВУЗ взял на себя оплату этих секций.

Нарушение второй нормальной формы

Правильная вторая нормальная форма

Слайд 11

Введение в базы данных Третья нормальная форма (3НФ) требует, чтобы в

Введение в базы данных


Третья нормальная форма (3НФ) требует, чтобы в таблице

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

Нарушение третьей нормальной формы

Слайд 12

Введение в базы данных. Механизм доступа к данным Механизм доступа к

Введение в базы данных. Механизм доступа к данным


Механизм доступа к

данным - это программный инструмент, позволяющий получить доступ к базе данных и ее таблицам. Как правило, это драйвер в виде *.dll файлов, который устанавливается на ПК разработчика (и клиента), и который используется программой для связи с БД.

Сравнение BDE и ADO
Borland Database Engine (BDE) - этот механизм доступа к данным позволяет обращаться к локальным и файл-серверным форматам баз данных dBase, FoxPro и Paradox, к различным серверам SQL и ко многим другим источникам данных, доступ которых поддерживался при помощи драйверов ODBC. Например, с помощью BDE можно напрямую работать с табличными файлами MS Excel. Но механизм доступа BDE признается устаревшим.
В данный момент многие инструменты Delphi являются кросс - платформенными. 

Слайд 13

Введение в базы данных. Механизм доступа к данным ActiveX Data Object

Введение в базы данных. Механизм доступа к данным


ActiveX Data Object

(ADO) - это механизм доступа к данным, разработанный корпорацией Microsoft. Если точнее, то ADO - это надстройка над технологией OLE DB, посредством которой можно связываться с различными данными приложений Microsoft. Технология ADO, как и BDE, независима от конкретного сервера БД, имеет поддержку как локальных баз данных различных типов, так и некоторых клиент-серверных БД. Плюсов у этой технологии много. Драйверы, разработанные корпорацией Microsoft для собственных нужд, более надежные, чем драйверы сторонних производителей. Поэтому если вам требуется работать с базами данных MS Access или для архитектуры клиент-сервер использовать MS SQL Server, то использование ADO будет наиболее предпочтительным. Кроме того, имеется плюс и в вопросе распространения программ - во всех современных Windows встроены драйверы ADO.
Слайд 14

Введение в базы данных. Механизм доступа к данным Основными компонентами являются:

Введение в базы данных. Механизм доступа к данным


Основными компонентами являются:
- TADOConnection (для

подключения к БД); 
-TADOTable (аналог TTable из BDE ); 
-TADOQuery (аналог TQuery из BDE, для выполнения запросов и получения набора данных);
-TADODataSet (предназначенный для набора данных, полученных через SQL-запрос).
Слайд 15

Основы алгоритмизации и программирования Использование компонент Delphi для работы с базами данных

Основы алгоритмизации и программирования

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

Слайд 16

Использование компонент Delphi для работы с базами данных Начнем с обзора

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

Начнем с обзора

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

1. Компонент TTable – основной компонент базы, через который идет обращение к конкретной таблице конкретной базы данных. Находится он на вкладке BDE

2. Компонент TData Sourse – он связывает наш компонент TTable с конкретной таблицей на нашем диске. Находится на вкладке Доступ к Данным

Слайд 17

Использование компонент Delphi для работы с базами данных Начнем с обзора

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

Начнем с обзора

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

3. Компонент TDBGrid – визуальный компонент, который отображает таблицу и ее содержимое на форме (без него мы не сможем увидеть таблицу, хотя программно можем с ней работать). Находится на вкладке Управление данными

2. Компонент TDBNavigator – визуальный компонент, который позволяет осуществлять навигацию по базе. Находится на вкладке Управление данными

Слайд 18

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

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

После знакомства с

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

ШАГ 1

Положим на форму компонент TTable с вкладки BDE. Сейчас присоединим его к конкретной базе данных на нашем диске
Для этого раскрываем свойство DataBaseName и выбираем базу данных DBDEMOS – это демонстрационная база, входящая в состав Delphi
Дальше раскроем свойство TableName и выберем среди нескольких входящих таблиц файл biolife.db – это и есть таблица, которая содержит описание и фото рыбок

Слайд 19

Использование компонент Delphi для работы с базами данных ШАГ 2 Ложим

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

ШАГ 2

Ложим на

форму компонент TDataSourse – он будет связывать визуальные компоненты, которые отображают содержимое таблицы с компонентом TTable
Находим свойство DataSet у этого компонента и в выпадающем списке указываем на Table1

ШАГ 3

Ставим на форму компонент DBGrid – он и будет отображать нашу таблицу с рыбками
В свойстве DataSourse выбираем источник данных – DataSourse1

Слайд 20

Использование компонент Delphi для работы с базами данных ШАГ 4 А

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

ШАГ 4

А сейчас

делаем таблицу активной: у компонента TTable устанавливаем свойство Active в True.
В результате в DBGrid мы видим содержание таблицы :

ШАГ 5

Для удобства работы с таблицей поместим на форму элемент DBNavigator с вкладки Управление данными и в инспекторе объектов поставим его свойство DataSource указывающим на тот же DataSource1, что и для DBGrid - сейчас работать с таблицей стало гораздо удобнее

Можно откомпилировать приложение и поработать с таблицей – мы можем просматривать и редактировать эту базу

Слайд 21

Использование компонент Delphi для работы с базами данных ШАГ 6 В

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

ШАГ 6

В Delphi

имеется ряд компонент для отображения содержания отдельных ячеек – DBEdit, DBMemo, DBImage и др. Все они находятся на вкладке Управление данными . Поместим их на форму и свяжем с определенными столбцами таблицы: для каждого из этих  компонентов укажем свойство DataSourse в DataSourse1, а свойство DataField, следующим образом: DBEdit - ассоциируем с полем Common_name DBMemo - ассоциируем с полем Notes DBImage - ассоциируем с полем Graphic

DBEdit , отображающий ячейку с именем

DBMemo, отображающий ячейку с описанием

DBImage, отображающий ячейку с рисунком рыбки

Слайд 22

Использование компонент Delphi для работы с базами данных Итак, мы создали

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

Итак, мы создали

программу для работы с демонстрационной ( с готовой) базой данных, но сами базу мы не создавали
Для создания базы данных (таблицы) существует программа Database Desktop, входящая в состав Delphi

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

Слайд 23

Основы алгоритмизации и программирования Создаем приложение с базой данных MS Access

Основы алгоритмизации и программирования

Создаем приложение с базой данных MS Access

Слайд 24

Создаем приложение с базой данных Access Для работы с базой данных

Создаем приложение с базой данных Access

Для работы с базой данных

сначала создадим ее в MS Access. Пусть это будет телефонный справочник с полями ФИО, ТЕЛЕФОН и АДРЕС

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

Слайд 25

Создаем приложение с базой данных Access База телефонов MS Access О

Создаем приложение с базой данных Access

База
телефонов
MS Access

О программе
(Form2)

Поиск по номеру
(Form4)

Поиск по

фамилии
(Form3)

Просмотр всей базы
(Form5)

Главная (стартовая) форма
(Form1)

Рассмотрим структуру нашей программы:

Слайд 26

Создаем приложение с базой данных Access Как видно из схемы, наше

Создаем приложение с базой данных Access

Как видно из схемы, наше

приложение содержит 5 форм и опирается на базу Ms Access

ШАГ 1

Создадим 5 форм, познакомим их, назовем заголовки форм, выберем размеры и стили форм

ШАГ 2

На главной (стартовой) форме (Form1) расположим компоненты:

Кнопка – Поиск по фамилии
Кнопка – Поиск по номеру
Кнопка – Посмотреть всю базу
Кнопка – Справка
Кнопка – Выход
Манифест XP
Для всех кнопок запишем соответствующий код (открытие соответствующей формы – ShowModal, выход – close)

Слайд 27

Создаем приложение с базой данных Access ШАГ 3 Разработаем дизайн формы

Создаем приложение с базой данных Access

ШАГ 3

Разработаем дизайн формы Справка

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

Создаем приложение с базой данных Access ШАГ 4 Разрабатываем форму Поиск

Создаем приложение с базой данных Access

ШАГ 4

Разрабатываем форму Поиск по

фамилии. Эта форма должна быть связана с базой телефонов MS Access

Для связи формы с Access используем следующие компоненты:

Вместо TTable, которую мы использовали в первом примере, для связи с Access служит «свой» компонент – ADOTable, который находится на вкладке ADO.
Помещаем его на форму и привязываем к таблице телефонных номеров. Для этого раскрываем свойство ConnectiоnString и нажимаем кнопку Build

Слайд 29

Создаем приложение с базой данных Access 2. Открывается окно связи с

Создаем приложение с базой данных Access

2. Открывается окно связи с данными,

в котором на вкладке Поставщик данных выбираем Microsoft Jet 4.0 Ole DB Provider

3. Переходим на вкладку Подключение и выбираем через кнопку обзора нашу базу (телефон.mdb)
Здесь же можно проверить подключение, задать пароль и права доступа к базе

Слайд 30

Создаем приложение с базой данных Access Устанавливаем свойства ADOTable: TableName –

Создаем приложение с базой данных Access

Устанавливаем свойства ADOTable:
TableName – в раскрывающемся

списке выбираем нашу таблицу ( у меня она названа Таблица1
IndexFieldName – ФИО (данные будут сортированы по полю ФИО)
Свойство Active ставим в True

5. Помещаем на форму элемент DataSourse и его свойство DataSet устанавливаем через раскрывающийся список в ADOTable1

Слайд 31

Создаем приложение с базой данных Access 6. Ложим на форму компонент

Создаем приложение с базой данных Access

6. Ложим на форму компонент для

отображения данных таблицы – DBGrid, у которого источником данных выбираем DataSourse1 – и мы сразу видим, что в DBGrid появились данные из нашей таблицы

Помещаем на форму кнопки Найти и Выход, Label «Введите фамилию» и поле Edit для ввода фамилии

8. В результате мы имеем следующую форму

Свойство Visible у DBGrid – а сделаем False, чтобы при открытии формы поиска не было видно содержимого таблицы

Слайд 32

Создаем приложение с базой данных Access Сейчас запишем код кнопки Найти

Создаем приложение с базой данных Access

Сейчас запишем код кнопки Найти

Если фамилия не введена, то выводим об этом сообщение

Если фамилия введена, то видимость грида делаем True, активизируем ADOTable и осуществляем поиск по полю ФИО с помощью метода Locate

Ищем по полю ФИО

Образец для поиска берем из Edit – a, в который вводится фамилия для поиска

Параметр поиска, позволяющий искать по первым буквам фамилии

Слайд 33

Создаем приложение с базой данных Access И последнее – код кнопки

Создаем приложение с базой данных Access

И последнее – код кнопки Выход

Очищаем Edit для ввода фамилии

Делаем грид невидимым

Закрываем форму

Слайд 34

Создаем приложение с базой данных Access ШАГ 5 Разрабатываем форму Поиск

Создаем приложение с базой данных Access

ШАГ 5

Разрабатываем форму Поиск по

номеру.

Для этой формы размещаем точно такие же компоненты, связываем их с таблицей – т.е выполняем те же шаги, что и с формой Поиск по фамилии (смотри шаг 4)
Аналогичны и коды кнопок Найти и Выход. Отличие в коде кнопки Найти в том, что в качестве поля поиска указываем поле «Телефон»

Слайд 35

Создаем приложение с базой данных Access ШАГ 6 Последняя форма отображает

Создаем приложение с базой данных Access

ШАГ 6

Последняя форма отображает всю

базу, поэтому DBGrid на ней можно развернуть на всю форму, а саму форму сделать побольше. Естественно те же компоненты для отображения данных (ADOTable, DataSourse и DBGrid, но кнопок никаких не ставим