Слайд 1Введение
Без баз данных сегодня невозможно представить работу большинства финансовых, промышленных,
торговых и прочих организации. Потоки информации, циркулирующие в мире, который
нас окружает, огромны. Во времени они имеют тенденцию к увеличению. Не будь баз данных, мы давно захлебнулись бы в информационной лавине. Базы данных позволяют информацию структурировать, хранить и извлекать оптимальным для пользователя образом.
Слайд 2Выдвигаемые к БД требования
быстрота,
простота,
эффективность,
надежность.
Слайд 3Приложения БД в среде Delphi
разрабатываются быстро,
взаимодействие разработчика с интерактивной
средой Delphi не вызывает внутреннего отторжения, а наоборот, оставляет ощущение
комфорта.
Delphi-приложения эффективны, если разработчик соблюдает определенные правила
Слайд 4Определение БД
Под базой данных (БД) понимают хранилище структурированных данных, при
этом данные должны быть
непротиворечивы,
минимально избыточны,
целостны.
Слайд 5Цель создания БД
БД создается для хранения и доступа к данным,
содержащим сведения о некоторой предметной области, то есть некоторой области
человеческой деятельности или области реального мира.
Слайд 6Степень детализации БД
определяется
целью использования информации из базы данных
сложностью
производственных (деловых) процессов, существующих в пределах предметной области в конкретных
условиях.
Слайд 7ПРИМЕР
Рассмотрим в качестве предметной области отпуск товаров со склада. Пусть
существуют две изолированные друг от друга организации А и Б,
испытывающие потребность в автоматизации своих производственных (деловых) процессов.
Слайд 8Организация А
невысокий ассортиментом товаров.
Ассортимент стабилен.
Ограниченный состав покупателей
(юр. лица).
Предоплаты не допускаются
Отпуск товара в кредит не практикуется
Система
скидок отсутствует.
Оплата производится в рублях.
Отпуск товаров осуществляется с одного склада.
Цели атоматизации:
• быстрая выдача информации об остатках товара
• ежемесячной выдачей отчета об общих суммарных отпусках товара.
Слайд 9Организация Б
множеством территориально распределенных складов
Ассортимент товаров высок и быстроизменчив.
Состав покупателей велик (физические, юр. лица).
Система скидок.
Система предоплат,
отпуска товаров в кредит.
Оплата производится в местной валюте по текущему курсу доллара, реже - рубля.
Слайд 10Цели автоматизации
получением информации об остатках товара на конкретном складе, по
регионам, по всей организации;
получением отчета об общих суммарных отпусках
товара за любой временной интервал в любой валюте, в том числе по всей организации, по конкретному региону, по конкретному складу, по конкретному покупателю - отдельно для физических и юридических лиц, по группам покупателей, объединенным по одному признаку - например, территориальному, зачетом предоплат и задолженностей отдельных покупателей;
автоматический перевод покупателей в льготные категории
• прогнозированием будущего спроса (по покупателю, товару, региону) и т.д.
Слайд 11Иерархические базы данных.
информация хранилась в виде иерархий. Для того,
чтобы получить элемент данных А 12, нужно сначала отыскать в
БД узел А, спуститься к узлу А1 и затем - к узлу А 12.
Пример – каталог
Слайд 12Иерархическая БД состоит из упорядоченного набора деревьев; более точно, из
упорядоченного набора нескольких экземпляров одного типа дерева.
Тип дерева состоит
из одного "корневого" типа записи и упорядоченного набора из нуля или более типов поддеревьев (каждое из которых является некоторым типом дерева). Тип дерева в целом представляет собой иерархически организованный набор типов записи.
Пример типа дерева (схемы иерархической БД):
Слайд 14Здесь Отдел является предком для Начальник и Сотрудники, а Начальник
и Сотрудники - потомки Отдел. Между типами записи поддерживаются связи.
База данных с такой схемой могла бы выглядеть следующим образом (мы показываем один экземпляр дерева):
Слайд 16Сетевые базы данных.
Характеризуется внутренними ссылками между структурами данных. Если
от элемента В имеется ссылка на элемент А, возможен выбор
элемента данных А .
Слайд 17Реляционные базы данных
Представляют связанную между собой совокупность таблиц баз данных
(ТБД).
Каждая таблица БД представляется как совокупность строк и столбцов.
Строки
соответствуют экземпляру объекта, конкретному событию или явлению
Столбцы - атрибутам (признакам, характеристикам, параметрам) объекта, событиям, явлениям.
Слайд 18Таблица базы данных "Отпуск товаров со склада "
Слайд 19Реляционные БД имеют мощный теоретический фундамент, основанный на математической теории
отношений.
Он был разработан доктором Эдгаром Коддом.
Для построения запросов
к реляционным БД был также разработан язык SQL (Structured Query Language, язык структуризированных запросов).
Слайд 20Первичный ключ
Это поле или набор полей, однозначно идентифицирующий запись
Значение первичного
ключа в таблице БД должно быть уникальным, то есть в
таблице не должно существовать двух или более записей с одинаковым значением первичного ключа.
Первичный ключ должен быть минимально достаточным: в нем не должно быть полей, удаление которых из первичного ключа не отразится на его уникальности.
Слайд 22Иногда следует добавить в таблицу семантически незначащее поле (то есть
не имеющего иного смысла, кроме обеспечения уникальности записи), например числовое
поле NN
Уникальность подобного поля обычно отслеживается или программно, или автоматически (автоинкрементное поле) (П411,413)
Слайд 23Реляционные отношения (связи) между таблицами базы данных
Отношение "один-ко-многим"
Отношение "один-к-одному"
Отношение "многие-ко-многим"
Слайд 24Отношение "один-ко-многим"
одной записи родительской таблицы может
соответствовать несколько записей в
дочерней таблице.
Слайд 25Отношение "один-к-одному"
когда одной записи в родительской таблице
соответствует
одна запись
в дочерней таблице.
Слайд 26Отношение "многие-ко-многим"
а) записи в родительской таблице может соответствовать
больше
одной записи в дочерней таблице;б) записи в дочерней таблице может
соответствовать
больше одной записи в родительской таблице.
Слайд 27Ссылочная целостность и каскадные воздействия
Слайд 28Возможны два вида изменений, которые приведут к утере связей между
записями в родительской и дочерней таблицах:
изменение значения поля связи в
записи родительской таблицы без изменения значений полей связи в соответствующих записях дочерней таблицы;
Слайд 29изменение значения поля связи в одной из записей дочерней таблицы
без соответствующего изменения значения полей связи в родительской и дочерней
таблицах.
Слайд 30Чтобы предотвратить потерю ссылочной целостности, используется механизм каскадных изменений. Он
состоит в обеспечении следующих требовании:
необходимо запретить изменение поля связи
в записи дочерней таблицы без синхронного изменения полей связи в родительской и дочерней таблицах; обычно инициатива изменения поля связи реализуется в записи родительской таблицы;
Слайд 31при изменении поля связи в записи родительской таблице, следует синхронно
изменить значения полей связи в соответствующих записях дочерней таблицы;
Слайд 32при удалении записи в родительской таблице, следует удалить соответствующие записи
в дочерней таблице.
Слайд 33. Понятие внешнего ключа
В СУБД для реализации ссылочной целостности в
дочерней таблице создают внешний ключ, ссылающийся на родительскую таблицу, и
указывают вид каскадных воздействий.
Слайд 34Для связей типа "один-ко-многим" внешний ключ по составу полей должен
совпадать с первичным ключом родительской таблицы
Слайд 35Локальные и клиент-серверные приложения баз данных
Приложение, созданное с помощью Delphi,
осуществляет доступ к базе данных через специальный процессор баз данных,
который называется BDE (Borland Database Engine).
Слайд 36BDE — это набор драйверов и динамически присоединяемых библиотек (файлов
*.dll), которые обеспечивают доступ к данным.
Если вы используете в своих
приложениях BDE, то нужно обеспечить его установку на все компьютеры, на которых будут работать ваши приложения.
Слайд 37Процессор баз данных BDE позволяет наиболее эффективно работать с таблицами
баз данных типа dBase и Paradox.
Слайд 38Все базы данных можно условно разделить на две большие группы
в зависимости от взаимного расположения приложения и таблиц базы данных:
локальные;
клиент-серверные.
Слайд 39Локальные — это базы данных, таблицы которых расположены на том
же компьютере, что и работающие с ними приложения. В таком
случае говорят, что база данных имеет локальную архитектуру.
Слайд 41Приложения, которые работают с локальными базами данных, называются одноярусными, так
как и приложение и база данных расположены на одном и
том же компьютере (ярусе).
Слайд 42Кроме представленной выше организации локальной базы данных возможно осуществление многопользовательского
доступа к данным таблиц. Такой вариант предусматривает наличие сети компьютеров
с сервером. Данный способ организации базы данных называется файл-сервером
Слайд 44На каждом из компьютеров-клиентов сети создается локальная копия базы данных
сервера. Эта копия периодически обновляется.
Такая архитектура построения базы данных используется
в сетях с малым количеством пользователей. Разработка приложения для работы с таким типом базы данных практически не отличается от создания обычного приложения для локальной базы данных.
Слайд 45недостатки данной архитектуры
создание копий базы данных и работа с
ними на отдельных компьютерах обусловливает необходимость периодического обновления всей базы
данных. Это повышает сетевой трафик (нагрузку сети) и ведет к снижению быстродействия всей системы;
Слайд 46при изменении данных, сделанном одним пользователем, они не сразу передаются
в локальные копии базы данных других пользователей, поэтому любой пользователь
может видеть уже устаревшую информацию;
Слайд 47необходима синхронизация работы пользователей. Она должна заключаться во временном блокировании
записей, с которыми работает пользователь, для других пользователей. Таким образом,
оказывается невозможным одновременный доступ к одной и той же записи с нескольких компьютеров;
существуют трудности организации контроля доступа к данным, идентификции пользователя и поддержки целостности данных
Слайд 48Клиент-серверные базы данных (удаленные базы данных)
— это базы данных, в
которых таблицы расположены на сервере сети, а приложения для работы
с этими таблицами находятся на пользовательских компьютерах (клиентах), подключенных к серверу. В данном случае говорят, что база данных имеет архитектуру «клиент-сервер».
Клиент-серверные базы данных работают с помощью запросов на языке SQL (Structured Query Language). SQL-запросы применяются для любых операций с таблицами базы данных, расположенной на сервере.
Слайд 49В клиент-серверных приложениях баз данных вся информационная система делится на
две разнородные части:
клиент базы данных;
сервер базы данных.
Слайд 50Клиент базы данных
— это приложение пользователя, которое обеспечивает формирование и
передачу запросов серверу, а также отображение полученных результатов. Кроме того,
приложение-клиент должно обеспечивать интерфейс пользователя базы данных.
Слайд 51Сервер базы данных
— специальная программа, которая управляет удаленной базой данных
и обеспечивает выполнение запросов клиентов и выдачу результатов запросов.
Слайд 52Приложения, работающие с клиент-серверными базами данных, называются двухъярусными или многоярусными
приложениями (two-tiered и multi-tiered applications).
Слайд 54При использовании двухъярусной архитектуры любой клиент посылает серверу SQL-запрос на
предоставление данных из таблиц.
. Сервер обрабатывает этот запрос и
возвращает клиенту только те данные, которые были определены запросом.
Слайд 55преимущества такой архитектуры
передача только востребованной информации, а не всей
базы данных, что приводит к снижению трафика сети;
Слайд 56обеспеченле безопасности данных и возможности установки прав доступа к информации
для отдельных групп пользователей, связанные с тем, что работа с
данными осуществляется одной программой — сервером базы данных;
упрощение клиентских приложений за счет сокращения кода, необходимого для обработки данных и обеспечения доступа к ним.
Слайд 57обеспеченле безопасности данных и возможности установки прав доступа к информации
для отдельных групп пользователей, связанные с тем, что работа с
данными осуществляется одной программой — сервером базы данных;
Слайд 58упрощение клиентских приложений за счет сокращения кода, необходимого для обработки
данных и обеспечения доступа к ним.
Слайд 59Несмотря на указанные достоинства, следует заметить, что обслуживание сервера и
самой базы данных требует наличия в организации соответствующего специалиста. Такого
специалиста называют администратором базы данных.
Слайд 60В круг его обязанностей обычно входит обеспечение механизма защиты данных,
поддержание их целостности, резервное копирование и восстановление данных и многое
другое.
Слайд 61многоярусная архитектура базы данных (напр. 3-х ярусная)
Слайд 62В многоярусной архитектуре часть кода приложений клиентов перенесена в сервер
приложений.
Сервер приложений — это программа, которая содержит средства доступа к
данным и программный код, являющиеся наиболее общими для всех приложений-клиентов базы данных.
Слайд 63Преимущество данной архитектуры заключается в упрощении программ-клиенов и уменьшении их
кода.
Слайд 64На тип создаваемой базы данных влияет:
■ сколько человек будут использовать таблицы
базы данных? Клиент-серверные базы данных разработаны для одновременного доступа к
ним нескольких пользователей. Локальные базы данных обычно работают с одним пользователем;
Слайд 65Какое количество данных будет содержаться в таблицах базы данных? Клиент-серверные
базы данных могут содержать намного больше данных, чем локальные базы
данных;
какая скорость доступа к данным вас устроит? Локальные базы данных обеспечивают более быстрый доступ к данным по сравнению с клиент-серверными;
как вы планируете администрировать базу данных? Локальные базы данных менее требовательны к настройке и администрированию.