Базы данных
План Понятие БД Архитектура БД Модели данных Нормальные формы Операции реляционной алгебры Операции языка SQL СУБД
То, как человек собирает, управляет и использует информацию, будет определять, окажется ли он в выигрыше или в проигрыше Билл Гейтс, глава компании Microsoft
Увеличение объемов данных на примере состояния морской среды Рост потоков информации так велик, что его часто называют информационным взрывом.
Оценки объемов данных по некоторым разделам наук о земле в России
Общее определение базы данных В широком смысле слова база данных – это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области. Предметная область – часть реального мира, подлежащего изучению для организации управления и автоматизации, например, предприятие, вуз и т.д.
Пример неструктурированных данных Сложно организовать поиск необходимых данных, хранящихся в неструктурированном виде, а упорядочить подобную информацию практически не представляется возможным.
Пример структурированных данных Структурирование – это введение соглашений о способах представления данных.
Определение базы данных База данных (БД) – это поименованная совокупность структурированных данных, относящихся к определенной предметной области. Система управления базами данных (СУБД) – это комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в актуальном состоянии и организации поиска в них необходимой информации.
Классификация баз данных Централизованные хранится в памяти одной вычислительной системы, которая может быть мэйнфреймом (доступ с помощью терминалов) или файловым сервером локальной сети. Технология обработки данных Распределенные состоит из нескольких частей, которые хранятся в различных ЭВМ вычислительной сети.
Классификация баз данных С локальным доступом Способ доступа к данным С сетевым доступом
Классификация баз данных Централизованные базы данных с сетевым доступом могут иметь следующую архитектуру: файл-сервер клиент-сервер двухуровневая модель трехуровневая модель
Архитектура файл-сервер
1. Ввод и отображение данных 3. Реализация вычислительных функций над данными 2. Доступ к данным и поиск по критериям 1. Хранение файла БД Архитектура файл-сервер
1. Отсутствие высоких требований к производительности сервера (главное – требуемый объем дискового пространства) 2. На сервере СУБД не размещается и не инсталлируется 1. Высокий сетевой трафик 2. Отсутствие специальных механизмов безопасности файла (файлов) БД со стороны СУБД Достоинства и недостатки архитектуры файл-сервер Достоинства: Недостатки:
Архитектура клиент-сервер
1. Регистрация на сервере при входе в клиентскую часть 2. Формирование SQL-запроса и его отправка SQL-серверу 3. Выполнение полученного SQL-запроса и отправка наборов данных серверу Последовательность действий при использовании архитектуры клиент-сервер 4. Реализация вычислительных функций над полученным набором данных
1. Ввод и отображение данных 2. Реализация вычислительных функций над наборами данных 2. Доступ к данным и поиск по определенным критериям 1. Хранение файла БД Архитектура клиент-сервер
1. Более низкий трафик сети, чем в модели файл-сервер 2. SQL-сервер обеспечивает функции по обеспечению целостности и безопасности данных 1. В определенных случаях некоторые наборы данных могут занимать достаточно существенный объем Достоинства: Недостатки: Достоинства и недостатки архитектуры клиент-сервер
Двухуровневая архитектура 1. Ввод и отображение данных 3. Реализация вычислительных функций над наборами данных 2. Доступ к данным и поиск по критериям 1. Хранение файла БД
Достоинства: Недостатки: 1. Существенное снижение трафика сети по сравнению с моделью клиент-сервер 2. Высокая надежность хранения и обработки данных 1. Высокие требования к вычислительной установке сервера по объему дискового пространства и быстродействия Достоинства и недостатки двухуровневой архитектуры
Трехуровневая архитектура Трехуровневая архитектура (трёхзвенная архитектура) предполагает наличие следующих компонентов приложения: клиентское приложение ("тонкий клиент" или терминал), подключенное к серверу приложений, который в свою очередь подключен к серверу базы данных. Обзор архитектуры Терминал - это интерфейсный (обычно графический) компонент, который представляет первый уровень, собственно приложение для конечного пользователя. Первый уровень не должен иметь прямых связей с базой данных (по требованиям безопасности), быть нагруженным основной бизнес-логикой (по требованиям масштабируемости) и хранить состояние приложения (по требованиям надежности). На первый уровень может быть вынесена и обычно выносится простейшая бизнес-логика: интерфейс авторизации, алгоритмы шифрования, проверка вводимых значений на допустимость и соответствие формату, несложные операции (сортировка, группировка, подсчет значений) с данными, уже загруженными на терминал. Сервер приложений располагается на втором уровне. На втором уровне сосредоточена большая часть бизнес-логики. Вне его остаются фрагменты, экспортируемые на терминалы (см.выше), а также погруженные в третий уровень хранимые процедуры и триггеры. Сервер базы данных обеспечивает хранение данных и выносится на третий уровень . Обычно это стандартная реляционная или объектно-ориентированная СУБД. Если третий уровень представляет собой базу данных вместе с хранимыми процедурами, триггерами и схемой, описывающей приложение в терминах реляционной модели, то второй уровень строится как программный интерфейс, связывающий клиентские компоненты с прикладной логикой базы данных. В простейшей конфигурации физически сервер приложений может быть совмещен с сервером базы данных на одном компьютере, к которому по сети подключается один или несколько терминалов. В "правильной" (с точки зрения безопасности, надежности, масштабирования) конфигурации сервер базы данных находится на выделенном компьютере (или кластере), к которому по сети подключены один или несколько серверов приложений, к которым, в свою очередь, по сети подключаются терминалы.
Достоинства трехуровневой архитектуры 2. Высокая безопасность 3. Низкие требования к скорости сети между терминалами и сервером приложений 4. Низкие требования к производительности и техническим характеристикам терминалов, как следствие снижение их стоимости 1. Изолированность уровней друг от друга позволяет (при правильном развертывании архитектуры) быстро и простыми средствами переконфигурировать систему при возникновении сбоев или при плановом обслуживании на одном из уровней
Недостатки трехуровневой архитектуры 2. Высокие требования к скорости сети между сервером базы данных и серверами приложений 3. Более сложные операции разворачивания и администрирования 1. Высокие требования к производительности серверов приложений и сервера базы данных, а, значит, и высокая стоимость серверного оборудования
Модель данных определяет способ организации данных, ограничения целостности и множество операций, допустимых над объектом. Хранимые в базе данные имеют определенную логическую структуру – описываются некоторой моделью представления данных (моделью данных), поддерживаемой СУБД. Модели данных
К числу классических относятся следующие модели данных: иерархическая сетевая реляционная Модели данных
Иерархическая модель была разработана исторически первой. На основе данной модели в конце 60 – начале 70 гг. была создана первая профессиональная СУБД IMS фирмы IBM. Иерархическая модель данных
Связи между данными описываются с помощью упорядоченного графа или дерева Иерархическая модель данных
Иерархическая модель данных
1. Достаточно высокие показатели времени выполнения операций над данными 1. Сложность понимания для обычного пользователя 2. Присутствие избыточности Достоинство и недостатки иерархической модели Достоинство: Недостатки:
Связи между данными описываются с помощью произвольного графа Сетевая модель данных
Сетевая модель данных
1. Минимальная избыточность 1. Сложность понимания для обычного пользователя 2. Ослаблен контроль правильности образования связей Достоинства: Недостатки: 2. В сравнении с иерархической моделью сетевая модель предоставляет большие возможности в смысле допустимости образования новых связей 3. Эффективная реализация по показателям затрат памяти. Достоинства и недостатки сетевой модели
Реляционная модель впервые предложена Эдгаром Коддом в 1970 г. Основывается на понятии отношение (relation). Графически отношение представляется в виде двумерной таблицы. В реляционной СУБД предполагается, что пользователь воспринимает БД как набор таблиц. Реляционная модель данных
Примеры реляционных СУБД: MicroSoft Access Paradox dBASE FoxPro Clarion DB2 Oracle Последние версии реляционных СУБД имеют некоторые свойства объектно-ориентированных систем. Такие СУБД часто называют объектно-реляционными. Примером такой системы можно считать продукт Oracle 10g. Реляционная модель данных
Реляционная модель данных
1. Простота и понятность для широкого пользователя, что явилось причиной ее широкого распространения. 1. Необходимая избыточность из-за связей между таблицами. Достоинство: Недостаток: Достоинства и недостатки реляционной модели
В реляционной модели существуют альтернативные варианты терминов: Реляционная модель данных
Первичный ключ Ключом отношения, или первичным ключом, называется атрибут отношения (набор атрибутов), однозначно идентифицирующий каждый из его кортежей. Студент(№ личного дела, Фамилия, Имя, Отчество, Дата рождения, Группа)
Внешний ключ Логические связи между отношениями устанавливаются с помощью внешних ключей. Внешний ключ – это атрибут (набор атрибутов) одного отношения, являющийся ключом другого отношения.
Проблема: осуществить в таблице поиск по Фамилии
Индексы Индекс – средство ускорения операции поиска записей в таблице, а также выполнения других операций, использующих поиск (извлечение, модификация, сортировка и т.д.)
Виды индексов Первичный Ключевое поле таблицы всегда индексируется, поэтому для него не требуется дополнительно определять индекс. Индексы Вторичный Используются для ускорения выполнения запросов. Может быть несколько. Может входить любое количество полей. Одно и то же поле может входить в разные индексы.
Имена выделенных атрибутов и их краткие характеристики: № - номер личного дела студента Фамилия – фамилия студента Имя – имя студента Дата рождения – дата рождения студента Группа – номер группы, в которой учится студент Специальность – специальность, на которой обучается студент Пример: для учебной части факультета создать БД о студентах Проблема формирования отношений
Проблема формирования отношений
Проблема формирования отношений
Нормализация Нормализация отношений – правила формирования отношений (таблиц), которые позволяют устранить дублирование, противоречивость хранимых в базе данных.
Э. Коддом разработаны три нормальные формы отношений и предложен механизм, позволяющий любое отношение преобразовать к третьей нормальной форме. Нормализация
Разбиение отношения
Разбиение отношения
Имена выделенных атрибутов и их краткие характеристики: № - номер личного дела студента Фамилия – фамилия студента Имя – имя студента Дата рождения – дата рождения студента Группа – номер группы, в которой учится студент Специальность – специальность, которой обучается студент Семестр – номера семестров обучения Предмет – предмет, изучаемый студентом Оценка – экзаменационная оценка за предмет Пример: для учебной части факультета создать БД о студентах Проблема формирования отношений
Проблема формирования отношений
Проблема обновления данных Проблема формирования отношений
Проблема вставки новых данных Проблема формирования отношений
Первая нормальная форма (1НФ) Отношение находится в 1НФ, если в каждой ячейке всегда находится единственное атомарное значение, и никогда не может быть множества таких значений.
Отношение не находится в 1НФ Первая нормальная форма (1НФ)
Отношение находится в 1НФ Первая нормальная форма (1НФ)
Функциональная зависимость Нормализация основывается на наличии функциональной зависимости между атрибутами отношения.
Атрибут В отношения функционально зависит от атрибута А того же отношения в том и только том случае, когда в любой заданный момент времени для каждого из различных значений атрибута А обязательно существует только одно значение поля В. (допускается, что атрибуты А и В могут быть составными) Функциональная зависимость
Диаграмма функциональных зависимостей для примера БД «Студент»
Причина избыточности: Фамилия, Имя, Дата рождения, Группа, Специальность зависят от атрибута № личного дела, являющегося частью составного ключа Причина избыточности
Отношение находится в 2НФ, если оно не содержит неключевых атрибутов, функционально зависящих от части ключа Вторая нормальная форма (2НФ)
Причина избыточности: транзитивная зависимость между атрибутами отношения №личного дела->Группа -> ->Специальность Причина избыточности
Отношение находится в 3НФ, если оно не содержит неключевых атрибутов, транзитивно зависящих от части ключа Третья нормальная форма (3НФ)
Результат проектирования БД «Студент»
SQL Доступ к информации, содержащейся в реляционных базах данных, для пользователей, программ и вычислительных систем обеспечивает язык запросов SQL (Structured Query Language)
Достоинства SQL Независимость от конкретных СУБД – все распространенные СУБД используют SQL. Приложения, созданные с помощью SQL, допускают использование как для локальных БД, так и для клиент-серверных систем. Операторы SQL употребляются как для интерактивного, так и программного доступа, поэтому части программ, содержащие обращение к БД, можно вначале проверить в интерактивном режиме, а затем встраивать в программу.
Реляционная алгебра SQL основан на операциях реляционной алгебры. Реляционная алгебра – набор операций, выполняемых над отношениями. Реляционная алгебра разработана Э.Коддом в рамках реляционной модели Применяя операции реляционной алгебры к одним отношениям можно получить другие отношения
Основные операции реляционной алгебры Объединение
Объединением двух совместимых по типу отношений А и В называется отношение с тем же заголовком, что и у отношений А и В, и телом, состоящим из кортежей, принадлежащих или А, или В, или обоим отношениям. Отношения называют совместимыми по типу, если они имеют идентичные заголовки, также атрибуты с одинаковыми именами определены на одних и тех же доменах. Основные операции реляционной алгебры
Пересечение Основные операции реляционной алгебры
Пересечением двух совместимых по типу отношений А и В называется отношение с тем же заголовком, что и у отношений А и В, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям А и В. Основные операции реляционной алгебры
Вычитание Основные операции реляционной алгебры
Вычитанием двух совместимых по типу отношений А и В называется отношение с тем же заголовком, что и у отношений А и В, и телом, состоящим из кортежей, принадлежащих отношению А и не принадлежащих отношению В. Основные операции реляционной алгебры
Выборка Основные операции реляционной алгебры
Выборкой на отношении А с условием с называется отношение с тем же заголовком, что и у отношения А, и телом, состоящем из кортежей, значения атрибутов которых при подстановке в условие с дают значение ИСТИНА. Основные операции реляционной алгебры
Оператор выбора языка SQL SELECT [DISTINC] элементы FROM таблица(цы) [WHERE условие] [GROUP BY поле(я) [HAVING условие]] [ORDER BY поле(я)] Производит выборку указанных элементов из указанных таблиц в соответствии с указанными условиями. Результатом является новая таблица.
SELECT – выбрать DISTINC – устранить в результирующей таблице одинаковые строки FROM – из (таблиц) WHERE – где SELECT [DISTINC] элементы FROM таблица(цы) [WHERE условие] [GROUP BY поле(я) [HAVING условие]] [ORDER BY поле(я)] Оператор выбора языка SQL
GROUP BY – выборка с точностью до группы строк HAVING – условие выборки группы ОRDER BY – упорядочивание результата по указанным полям SELECT [DISTINC] элементы FROM таблица(цы) [WHERE условие] [GROUP BY поле(я) [HAVING условие]] [ORDER BY поле(я)] Оператор выбора языка SQL
SELECT Фамилия FROM Cтуденты Выбрать фамилии всех студентов Оператор выбора языка SQL
SELECT * FROM Cтуденты WHERE Группа=591 ORDER BY Фамилия Вывести все сведения о студентах 591 группы, упорядочив их по фамилии Оператор выбора языка SQL
SELECT Дата рождения FROM Cтуденты WHERE Фамилия=“Петров” Вывести дату рождения студента Петрова Оператор выбора языка SQL
Возможности SQL Создание базы данных и таблицы с полным описанием их структуры Выполнение основных операций манипулирования данными, в частности, вставки, модификации и удаления данных из таблиц. Выполнение простых и сложных запросов, осуществляющих преобразование данных
Тенденции развития СУБД Направление развития реляционных СУБД в последние годы заметно меняется. Если предыдущее десятилетие они развивались, чтобы обеспечить быстрый доступ к данным, то теперь часто нужно хранить еще графику и звук. Существенно изменилась аппаратная среда - она стала сетевой. С развитием Web появилась необходимость поддерживать HTML - страницы.
Основные функции СУБД управление данными во внешней памяти (на дисках) управление данными в оперативной памяти журнализация изменений, резервное копирование и восстановление базы данных после сбоев поддержка языка манипулирования данными
В состав СУБД входят средства для: создания БД и модификации их структуры, создания индексных файлов работы с базами в табличном формате или в виде стандартной формы с расположением полей построчно разработки экранных форм генерации печатных форм генерации запросов очень сложной структуры в системах, ориентированных на разработчика, разработка меню, справочной системы и проекта, включающего все перечисленные выше компоненты и компилирующегося в исполняемую программу
СУБД Система управления базами данных (СУБД) – это комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в актуальном состоянии и организации поиска в них необходимой информации. Термин "сервер баз данных" обычно используют для обозначения всей СУБД, основанной на архитектуре "клиент-сервер", включая и серверную, и клиентскую части.
СУБД Cервер баз данных - СУБД, которая принимает запросы по сети и возвращает информацию, соответствующую запросу. Наиболее распространенными серверами являются в настоящее время Interbase, Microsoft SQL Server, Oracle, IBM DB2, Informix
Классификация СУБД По типу управляемой базы данных СУБД разделяются на: Сетевые (CronosPlus ) Иерархические (IMS, System 2000) Реляционные (MS Access, Paradox, Interbase, FireBird, MySQL, DB2, Oracle, Ingres) Объектно-реляционные (Oracle Database, MicroSoft SQL Server 2005)
Сравнение СУБД
Возможности СУБД Производительность СУБД оценивается: скоростью поиска информации; скоростью выполнения операций обновления, вставки, удаления данных; временем выполнения операций импортирования базы данных из других форматов; максимальным числом параллельных обращений к данным в многопользовательском режиме; временем генерации отчета.
Обеспечение целостности данных на уровне базы данных. Эта характеристика подразумевает наличие средств, позволяющих удостовериться, что информация в базе данных всегда остается корректной и полной: проверка уникальности первичных ключей, ограничение операций над данными, каскадное обновление и удаление данных. Возможности СУБД
Обеспечение безопасности. Некоторые СУБД предусматривают средства обеспечения безопасности данных. Такие средства обеспечивают выполнение следующих операций: шифрование прикладных программ; шифрование данных; защиту паролем; ограничение уровня доступа (к базе данных, к таблице). Возможности СУБД
Доступ к данным посредством языка SQL. Язык запросов SQL реализован в целом ряде популярных СУБД для различных типов ЭВМ либо как базовый, либо как альтернативный. В силу своего широкого использования является международным стандартом языка запросов. Возможности СУБД