База данных и СУБД: основные понятия Информационная система В самом широком смысле информационная система представляет собой программный комплекс, функции которого состоят в поддержке надежного хранения информации в памяти компьютера, выполнении специфических для данного приложения преобразований информации и/или вычислений, предоставлении пользователям удобного и легко осваиваемого интерфейса. Потребности информационных систем Эти системы главным образом ориентированы на хранение, выбор и модификацию постоянно существующей информации. Структура информации зачастую очень сложна, и хотя структуры данных различны в разных информационных системах, между ними часто бывает много общего. На начальном этапе использования вычислительной техники для управления информацией проблемы структуризации данных решались индивидуально в каждой информационной системе. Производились необходимые надстройки над файловыми системами (библиотеки программ), подобно тому, как это делается в компиляторах, редакторах и т.д. Обобщение управлением сложно структурированными данными Но поскольку информационные системы требуют сложных структур данных, эти дополнительные индивидуальные средства управления данными являлись существенной частью информационных систем и практически повторялись от одной системы к другой. Стремление выделить и обобщить общую часть информационных систем, ответственную за управление сложно структурированными данными, явилось, на наш взгляд, первой побудительной причиной создания СУБД. Очень скоро стало понятно, что невозможно обойтись общей библиотекой программ, реализующей над стандартной базовой файловой системой более сложные методы хранения данных. Понятие согласованности данных является ключевым понятием баз данных. Если же некоторая вспомогательная система управления данными позволяет работать с несколькими файлами, обеспечивая их согласованность, можно назвать ее системой управления базами данных. Уже только требование поддержания согласованности данных в нескольких файлах не позволяет обойтись библиотекой функций: такая система должна иметь некоторые собственные данные (метаданные) и даже знания, определяющие целостность данных. Но это еще не все, что обычно требуют от СУБД. Необходимо, чтобы СУБД позволяла сформулировать некоторый запрос к данным на близком пользователям языке. Такие языки называются языками запросов к базам данных. Базовые понятия База данных (БД) – это структура, содержащая данные, их описания и связи. БД представляет собой самостоятельный информационный ресурс, который может многократно использоваться различными приложениями. Система управления базами данных (СУБД) – инструментальная программная среда, обеспечивающая создание баз данных, их обновление, доступ к базам данных и их использование. База данных: общее понятие База данных: • хранилище информации • отражает объект реального мира • имитирует деятельность объекта реального мира Функции СУБД. Непосредственное управление данными во внешней памяти Управление буферами оперативной памяти Управление транзакциями Журнализация Поддержка языков БД Модели построения баз данных 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