Слайд 2Основные понятия
База данных (БД) – совместно используемый набор логически связанных
данных (и их описание), предназначенный для удовлетворения информационных потребностей организации.
СУБД
(система управления базами данных) – программное обеспечение, с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также получать к ней контролируемый доступ.
Слайд 3Реляционные СУБД
Реляционные СУБД имеют мощный теоретический фундамент, основанный на математической
теории отношений. Появление теории реляционных баз данных дало толчок к
разработке ряда языков запросов, которые можно отнести к двум классам:
Слайд 4Языки запросов
алгебраические языки, позволяющие выражать запросы средствами специализированных операторов, применяемых
к отношениям;
языки исчисления предикатов, представляющие собой набор правил для записи
выражения, определяющего новое отношение из заданной совокупности существующих отношений. Следовательно, исчисление предикатов есть метод определения того отношения, которое желательно получить как ответ на запрос из отношений, уже имеющихся в базе данных.
Слайд 5Стандарт и реализация языка SQL
Рост количества данных, необходимость их хранения
и обработки привели к тому, что возникла потребность в создании
стандартного языка баз данных, который мог бы функционировать в многочисленных компьютерных системах различных видов. Действительно, с его помощью пользователи могут манипулировать данными независимо от того, работают ли они на персональном компьютере, сетевой рабочей станции или универсальной ЭВМ.
Слайд 6Стандарт и реализация языка SQL
Одним из языков, появившихся в результате
разработки реляционной модели данных, является язык SQL (Structured Query Language),
который в настоящее время получил очень широкое распространение и фактически превратился в стандартный язык реляционных баз данных. Стандарт на язык SQL был выпущен Американским национальным институтом стандартов (ANSI) в 1986 г., а в 1987 г. Международная организация стандартов (ISO) приняла его в качестве международного. Нынешний стандарт SQL известен под названием SQL/92.
Слайд 7Введение в технологию клиент-сервер
Технология клиент-сервер означает такой способ взаимодействия программных
компонентов, при котором они образуют единую систему. Как видно из
самого названия, существует некий клиентский процесс, требующий определенных ресурсов, а также серверный процесс, который эти ресурсы предоставляет. Совсем необязательно, чтобы они находились на одном компьютере. Обычно принято размещать сервер на одном узле локальной сети, а клиентов – на других узлах.
Слайд 8Введение в технологию клиент-сервер
В контексте базы данных клиент управляет пользовательским
интерфейсом и логикой приложения, действуя как рабочая станция, на которой
выполняются приложения баз данных. Клиент принимает от пользователя запрос, проверяет синтаксис и генерирует запрос к базе данных на языке SQL или другом языке базы данных, соответствующем логике приложения. Затем передает сообщение серверу, ожидает поступления ответа и форматирует полученные данные для представления их пользователю. Сервер принимает и обрабатывает запросы к базе данных, после чего отправляет полученные результаты обратно клиенту. Такая обработка включает проверку полномочий клиента, обеспечение требований целостности, а также выполнение запроса и обновление данных. Помимо этого поддерживается управление параллельностью и восстановлением.
Слайд 9Архитектура клиент-сервер обладает рядом преимуществ:
обеспечивается более широкий доступ к существующим
базам данных;
повышается общая производительность системы: поскольку клиенты и сервер находятся
на разных компьютерах, их процессоры способны выполнять приложения параллельно. Настройка производительности компьютера с сервером упрощается, если на нем выполняется только работа с базой данных;
Слайд 10снижается стоимость аппаратного обеспечения; достаточно мощный компьютер с большим устройством
хранения нужен только серверу – для хранения и управления базой
данных;
сокращаются коммуникационные расходы. Приложения выполняют часть операций на клиентских компьютерах и посылают через сеть только запросы к базам данных, что позволяет значительно сократить объем пересылаемых по сети данных;
Слайд 11повышается уровень непротиворечивости данных. Сервер может самостоятельно управлять проверкой целостности
данных, поскольку лишь на нем определяются и проверяются все ограничения.
При этом каждому приложению не придется выполнять собственную проверку;
архитектура клиент-сервер естественно отображается на архитектуру открытых систем.
Слайд 12Введение в технологию клиент-сервер
Дальнейшее расширение двухуровневой архитектуры клиент-сервер предполагает разделение
функциональной части прежнего, "толстого" (интеллектуального) клиента на две части. В
трехуровневой архитектуре клиент-сервер "тонкий" (неинтеллектуальный) клиент на рабочей станции управляет только пользовательским интерфейсом, тогда как средний уровень обработки данных управляет всей остальной логикой приложения. Третий уровень – сервер базы данных. Эта трехуровневая архитектура оказалась более подходящей для некоторых сред – например, для сетей Internet и intranet, где в качестве клиента может выступать обычный Web-браузер.
Слайд 13Типы команд SQL
Реализация в SQL концепции операций, ориентированных на табличное
представление данных, позволила создать компактный язык с небольшим набором предложений.
Язык SQL может использоваться как для выполнения запросов к данным, так и для построения прикладных программ.
Слайд 14Типы команд SQL
Основные категории команд языка SQL предназначены для выполнения
различных функций, включая построение объектов базы данных и манипулирование ими,
начальную загрузку данных в таблицы, обновление и удаление существующей информации, выполнение запросов к базе данных, управление доступом к ней и ее общее администрирование.
Слайд 15Основные категории команд языка SQL:
DDL – язык определения данных;
DML
– язык манипулирования данными;
DQL – язык запросов;
DCL – язык управления
данными;
команды администрирования данных;
команды управления транзакциями
Слайд 16Определение структур базы данных (DDL)
Язык определения данных (Data Definition Language,
DDL) позволяет создавать и изменять структуру объектов базы данных, например,
создавать и удалять таблицы. Основными командами языка DDL являются следующие: CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX.
Слайд 17Манипулирование данными (DML)
Язык манипулирования данными (Data Manipulation Language, DML) используется
для манипулирования информацией внутри объектов реляционной базы данных посредством трех
основных команд: INSERT, UPDATE, DELETE.
Слайд 18Выборка данных (DQL)
Язык запросов DQL наиболее известен пользователям реляционной базы
данных, несмотря на то, что он включает всего одну команду
SELECT. Эта команда вместе со своими многочисленными опциями и предложениями используется для формирования запросов к реляционной базе данных.
Слайд 19Язык управления данными (DCL - Data Control Language)
Команды управления данными
позволяют управлять доступом к информации, находящейся внутри базы данных. Как
правило, они используются для создания объектов, связанных с доступом к данным, а также служат для контроля над распределением привилегий между пользователями. Команды управления данными следующие: GRANT, REVOKE.
Слайд 20Команды администрирования данных
С помощью команд администрирования данных пользователь осуществляет контроль
за выполняемыми действиями и анализирует операции базы данных; они также
могут оказаться полезными при анализе производительности системы. Не следует путать администрирование данных с администрированием базы данных, которое представляет собой общее управление базой данных и подразумевает использование команд всех уровней.
Слайд 21Команды управления транзакциями
Существуют следующие команды, позволяющие управлять транзакциями базы данных:
COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION.
Слайд 22Преимущества языка SQL
Язык SQL является основой многих СУБД, т.к. отвечает
за физическое структурирование и запись данных на диск, а также
за чтение данных с диска, позволяет принимать SQL-запросы от других компонентов СУБД и пользовательских приложений. Таким образом, SQL – мощный инструмент, который обеспечивает пользователям, программам и вычислительным системам доступ к информации, содержащейся в реляционных базах данных.
Слайд 23Основные достоинства языка SQL
стандартность – как уже было сказано,
использование языка SQL в программах стандартизировано международными организациями;
независимость от конкретных
СУБД – все распространенные СУБД используют SQL, т.к. реляционную базу данных можно перенести с одной СУБД на другую с минимальными доработками;
Слайд 24Основные достоинства языка SQL
возможность переноса с одной вычислительной системы на
другую – СУБД может быть ориентирована на различные вычислительные системы,
однако приложения, созданные с помощью SQL, допускают использование как для локальных БД, так и для крупных многопользовательских систем;
Слайд 25Основные достоинства языка SQL
реляционная основа языка – SQL является языком
реляционных БД, поэтому он стал популярным тогда, когда получила широкое
распространение реляционная модель представления данных. Табличная структура реляционной БД хорошо понятна, а потому язык SQL прост для изучения;
возможность создания интерактивных запросов – SQL обеспечивает пользователям немедленный доступ к данным, при этом в интерактивном режиме можно получить результат запроса за очень короткое время без написания сложной программы;
Слайд 26Основные достоинства языка SQL
возможность программного доступа к БД – язык
SQL легко использовать в приложениях, которым необходимо обращаться к базам
данных. Одни и те же операторы SQL употребляются как для интерактивного, так и программного доступа, поэтому части программ, содержащие обращение к БД, можно вначале проверить в интерактивном режиме, а затем встраивать в программу;
Слайд 27Основные достоинства языка SQL
обеспечение различного представления данных – с помощью
SQL можно представить такую структуру данных, что тот или иной
пользователь будет видеть различные их представления. Кроме того, данные из разных частей БД могут быть скомбинированы и представлены в виде одной простой таблицы, а значит, представления пригодны для усиления защиты БД и ее настройки под конкретные требования отдельных пользователей;
Слайд 28Основные достоинства языка SQL
возможность динамического изменения и расширения структуры БД
– язык SQL позволяет манипулировать структурой БД, тем самым обеспечивая
гибкость с точки зрения приспособленности БД к изменяющимся требованиям предметной области;
поддержка архитектуры клиент-сервер – SQL – одно из лучших средств для реализации приложений на платформе клиент-сервер. SQL служит связующим звеном между взаимодействующей с пользователем клиентской системой и серверной системой, управляющей БД, позволяя каждой из них сосредоточиться на выполнении своих функций.
Слайд 29Любой язык работы с базами данных должен предоставлять пользователю следующие
возможности:
создавать базы данных и таблицы с полным описанием их структуры;
выполнять
основные операции манипулирования данными, в частности, вставку, модификацию и удаление данных из таблиц;
выполнять простые и сложные запросы, осуществляющие преобразование данных.
Слайд 30Описание учебной базы данных
Небольшая база данных, отражает процесс поставки или
продажи некоторого товара постоянным клиентам.
Исходя из анализа предметной области, можно
выделить два типа сущностей – ТОВАР и КЛИЕНТ, которые связаны между собой отношением "многие–ко–многим", т.к. каждый покупатель может купить много наименований товара, а каждый товар может быть куплен многими покупателями. Однако реляционная модель данных требует заменить отношение "многие–ко-многим" на несколько отношений "один–ко-многим". Добавим еще один тип сущностей, отображающий процесс продажи товаров, – СДЕЛКА.
Слайд 31Описание учебной базы данных
Установим связи между объектами. Один покупатель может
неоднократно покупать товары, поэтому между объектами КЛИЕНТ и СДЕЛКА имеется
связь "один–ко–многим". Каждое наименование товара может неоднократно участвовать в сделках, в результате между объектами ТОВАР и СДЕЛКА имеется связь "один-ко-многим".
Слайд 32Описание учебной базы данных
Определим атрибуты и свяжем их с сущностями
и связями. К объекту ТОВАР относятся такие характеристики, как название,
тип, цена, сорт. К объекту КЛИЕНТ – имя, отчество, фамилия, фирма, город, телефон. Тип сущности СДЕЛКА может быть охарактеризован такими признаками, как дата и количество проданного товара.
Слайд 33Описание учебной базы данных
Важным этапом в создании базы данных является
определение атрибутов, которые однозначно определяют каждый экземпляр сущности, т.е. выявление
первичных ключей.
Для таблицы ТОВАР название не может служить первичным ключом, т.к. товары разных типов могут иметь одинаковые названия, поэтому введем первичный ключ КодТовара, под которым можно понимать, например, артикул товара. Точно так же ни Имя, ни Фирма, ни Город не могут служить первичным ключом в таблице КЛИЕНТ. Введем первичный ключ КодКлиента, под которым можно понимать номер паспорта, идентификационный номер налогоплательщика или любой другой атрибут, однозначно определяющий каждого клиента. Для таблицы СДЕЛКА первичным ключом является поле КодСделки, т.к. оно однозначно определяет дату, покупателя и другие элементы данных. В качестве первичного ключа можно было бы выбрать не одно поле, а некоторую совокупность полей, но для иллюстрации конструкций языка ограничимся простыми первичными ключами.
Слайд 34Описание учебной базы данных
Установим связи между таблицами. Один покупатель может
неоднократно покупать товары. Поэтому между таблицами КЛИЕНТ и СДЕЛКА имеется
связь "один–ко–многим" по полю КодКлиента.
Каждый покупатель может приобрести несколько различных товаров. Поэтому между таблицами ТОВАР и СДЕЛКА имеется связь "один–ко–многим" по полю КодТовара.
Теперь нужно создать связи между таблицами базы данных. Для этого поместим копии первичных ключей из родительской таблицы (таблицы со стороны "один") в дочернюю таблицу (таблицу со стороны "много"). Для организации связи между таблицами ТОВАР и СДЕЛКА поместим копию поля КодТовара из таблицы ТОВАР в таблицу СДЕЛКА. Для организации связи между таблицами КЛИЕНТ и СДЕЛКА поместим копию поля КодКлиента из таблицы КЛИЕНТ в таблицу СДЕЛКА. Для таблицы СДЕЛКА поля КодКлиента и КодТовара являются внешними (чужими) ключами. В результате получим следующую структуру базы данных.
Слайд 35Описание учебной базы данных
Пример структуры базы данных.