Введение - Институт динамики систем и теории управления

advertisement
База данных и СУБД:
основные понятия
Информационная система
В самом широком смысле информационная
система представляет собой программный
комплекс, функции которого состоят в поддержке
надежного хранения информации в памяти
компьютера, выполнении специфических для
данного приложения преобразований информации
и/или вычислений, предоставлении пользователям
удобного и легко осваиваемого интерфейса.
Потребности
информационных систем
Эти системы главным образом ориентированы на хранение, выбор и
модификацию постоянно существующей информации. Структура
информации зачастую очень сложна, и хотя структуры данных
различны в разных информационных системах, между ними часто
бывает много общего.
На начальном этапе использования вычислительной техники для
управления информацией проблемы структуризации данных
решались индивидуально в каждой информационной системе.
Производились необходимые надстройки над файловыми
системами (библиотеки программ), подобно тому, как это делается в
компиляторах, редакторах и т.д.
Обобщение управлением сложно
структурированными данными
Но поскольку информационные системы требуют сложных структур
данных, эти дополнительные индивидуальные средства управления
данными являлись существенной частью информационных систем и
практически повторялись от одной системы к другой. Стремление
выделить и обобщить общую часть информационных систем,
ответственную за управление сложно структурированными
данными, явилось, на наш взгляд, первой побудительной причиной
создания СУБД. Очень скоро стало понятно, что невозможно
обойтись общей библиотекой программ, реализующей над
стандартной базовой файловой системой более сложные методы
хранения данных.
Понятие согласованности данных является ключевым понятием
баз данных.
Если же некоторая вспомогательная система управления данными
позволяет работать с несколькими файлами, обеспечивая их
согласованность, можно назвать ее системой управления базами
данных. Уже только требование поддержания согласованности
данных в нескольких файлах не позволяет обойтись библиотекой
функций: такая система должна иметь некоторые собственные
данные (метаданные) и даже знания, определяющие целостность
данных.
Но это еще не все, что обычно требуют от СУБД. Необходимо,
чтобы СУБД позволяла сформулировать некоторый запрос к
данным на близком пользователям языке. Такие языки называются
языками запросов к базам данных.
Базовые понятия
База данных (БД) – это структура, содержащая
данные, их описания и связи. БД представляет
собой самостоятельный информационный
ресурс, который может многократно
использоваться различными приложениями.
Система управления базами данных (СУБД) –
инструментальная программная среда,
обеспечивающая создание баз данных, их
обновление, доступ к базам данных и их
использование.
База данных: общее понятие
База данных:
• хранилище информации
• отражает объект реального мира
• имитирует деятельность объекта реального
мира
Функции СУБД.
Непосредственное управление данными во внешней памяти
Управление буферами оперативной памяти
Управление транзакциями
Журнализация
Поддержка языков БД
Модели построения баз данных
1.
Иерархическая, основанная на древовидной
структуре, которая поддерживает отношение данных
типа «один ко многим».
2.
Сетевая в виде графа, поддерживающая отношение
данных типа «многие ко многим».
3.
Реляционная с представлением данных в виде
взаимосвязанных двумерных таблиц.
4.
Постреляционная более сложной структуры,
например, со вложением одной таблицы в другую
таблицу.
5.
Объектно-ориентированная.
6.
Многомерная с таблицами в виде гиперкуба.
База данных: пример
База данных школы №1:
• Преподаватели: Иванов, Кузнецов
• Ученики: Петров, Сидоров, Федоров, Семенов,
Алексеев
• Обучение:
Петров, Сидоров, Федоров - преподаватель Иванов
Петров, Семенов, Алексеев - преподаватель Кузнецов
Двумерный файл
Школа
№1
№1
№1
№1
№1
№1
Преподаватели
Иванов
Иванов
Иванов
Кузнецов
Кузнецов
Кузнецов
Ученики
Петров
Сидоров
Федоров
Семенов
Петров
Алексеев
Иерархическая модель
• База данных - файл
• Записи логически организованы в виде
дерева
• Жесткое отношение подчиненности: каждая
ветвь имеет не более одного корня
Иерархическая модель:
пример
Школа №1
Преподаватель Иванов
Ученик
Петров
Ученик
Сидоров
Ученик
Федоров
Преподаватель Кузнецов
Ученик
Семенов
Ученик
Петров
Ученик
Алексеев
Сетевая модель
• База данных - файл
• Записи логически организованы в виде сети
• Произвольное отношение подчиненности:
ветвь может иметь более одного корня
Сетевая модель: пример
Школа №1
Преподаватель Иванов
Ученик
Сидоров
Ученик
Федоров
Преподаватель Кузнецов
Ученик
Петров
Ученик
Семенов
Ученик
Алексеев
Реляционная база данных
Реляционная модель БД , предложенная Е. Коддом в
1970-х гг., основана на математической теории отношений
и опирается на систему понятий реляционной алгебры,
важнейшими из которых являются:
- двумерная таблица (отношение);
- строка-запись (кортеж);
- столбец-поле (атрибут);
- множество значений столбца (домен);
- первичный и внешний ключи.
В целом реляционная БД – это несколько связанных
между собой плоских таблиц.
Реляционная модель:
структура
Школы
Преподаватели
№ Фамилия
№ школы
1 Иванов
1
2 Кузнецов
1
№
1
№
1
2
3
4
5
Ученики
Фамилия
Петров
Сидоров
Федоров
Семенов
Алексеев
№ школы
1
1
1
1
1
Обучение
№ преподавателя № ученика
1
1
1
2
1
3
2
1
2
4
2
5
Реляционная модель:
целостность
Ограничения, направленные на обеспечение
целостности:
• Первичный ключ (Primary key) - уникальный
идентификатор каждой строки в таблице,
предотвращает избыточность данных
• Внешний ключ (Foreign key) - ссылка на
первичный ключ в той же самой или другой таблице,
обеспечивает непротиворечивость и целостность
данных
Реляционная модель:
целостность
Школы
№
Ученики
№ школы №
Фамилия
№ школы
№
№
№
№ школы
Преподаватели
№
Фамилия
№ школы
№ ученика
№
№ преподавателя
Обучение
№ преподавателя
№ ученика
Реляционная модель:
манипулирование
Формальные языки запросов:
• Реляционная алгебра
• Реляционное исчисление кортежей
• Реляционное исчисление доменов
• Табло запросов
Реляционная модель:
манипулирование
Реализация формальных языков запросов:
• ISBL
• QUEL
• SQL
• QBE
SQL ANSI 92
(Structured Query Language)
• Стандартизированный язык запросов для
доступа к базам данных
• Теоретическая основа - реляционное
исчисление кортежей
• Поддерживается всеми современными
СУБД
• Взаимодействие между различными СУБД
при помощи протокола ODBC
SQL ANSI 92
• Язык определения данных (DDL)
• Язык манипулирования данными (DML)
• Язык управления данными (DCL)
• Язык управления транзакциями
SQL ANSI 92: пример запроса
SQL>
2
3
4
select id,last_name,salary
from s_emp
where title = 'Stock Clerk'
order by 3,2 desc;
SQL ANSI 92: ответ на запрос
ID LAST_NAME
SALARY
--------- ------------------------- --------20 Newman
750
19 Patel
795
23 Patel
795
22 Chang
800
21 Markarian
850
24 Dancs
860
17 Smith
940
25 Schwartz
1100
18 Nozaki
1200
16 Maduro
1400
Система управления базой
данных (СУБД)
• Языки запросов
• Процедурные языки
• Средства создания экранных форм
• Средства генерации отчетов
• Средства графического представления
информации
• Средства организации работы с базой
данных через WWW
Типы СУБД
• Корпоративные: (Oracle, MS SQL Server)
архитектура клиент-сервер
работа в сети (включая Internet)
подключение тысяч пользователей
• СУБД для небольших рабочих групп и
индивидуальной работы (Access, FoxPro)
локальное хранение информации
подключение небольшого количества
пользователей
Архитектура клиент-сервер
СУБД
Хранение информации
Получение запросов
Ответ на запросы
СЕРВЕР
Запрашивание сервера
Получение ответов
Хранение ответов
КЛИЕНТ
КЛИЕНТ
КЛИЕНТ
Интерфейс базы данных
Экранная форма:
• Форма для локальной работы с базой
данных (приложение СУБД)
• Форма в виде Web-страницы для работы с
базой данных удаленно (Web-интерфейс)
Открытый интерфейс к
базам данных
• Свободный доступ к базе данных
• Выполнение транзакций базы данных
• Примеры: Электронный магазин
Гостевая книга
Конференции, форумы
Средства организации работы
с базой данных через WWW
• Языки программирования
PERL
JAVA
PHP
• Драйверы (обработчики)
DBI
JDBC
Схема доступа к базе данных
из службы WWW
Схема доступа к базе данных
из службы WWW
Web-браузер
Web-сервер
Драйвер
Технологии доступа к базе
данных из службы WWW
MS SQL Server
Технологии доступа к базе
данных из службы WWW
Заключение
• База данных, реляционная модель
• SQL ANSI 92
• СУБД, архитектура клиент-сервер в СУБД
• Работа с базой данных через WWW
Download