Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Базы данных

Покупка
Основная коллекция
Артикул: 322400.07.01
К покупке доступен более свежий выпуск Перейти
Учебник предназначен для изучения основ проектирования и реализации реляционных баз данных. Достаточно подробно рассматриваются фундаментальные понятия и принципы организации моделей данных «сущность — связь» и реляционной модели данных, включающие в себя основные характеристики структурных компонентов, манипуляционную и целостную части с использованием элементов теории множеств, реляционной алгебры и реляционного исчисления. Описаны основные этапы создания и использования системы базы данных: определение семантических зависимостей на разных уровнях абстракции; проектирование с учетом принципов нормализации; реализация и сопровождение с использованием декларативного языка. Детально представлены методы доступа к данным на основе: древовидных, хэш и битовых структур. Описаны основные операции оптимизатора SQL-запросов, а также методика интерпретации плана SQL-запроса. Каждый раздел сопровождается практическими примерами и вопросами для самостоятельной оценки усвоенного материала. Соответствует требованиям Федерального государственного образовательного стандарта высшего образования (ФГОС ВО) последнего поколения. Для студентов высших учебных заведений, обучающихся по направлению подготовки 09.03.01 «Информатика и вычислительная техника», специализация — «Высокопроизводительные компьютерные системы и технологии». Дисциплина включена в базовую часть профессионального цикла дисциплин ФГОС ВО.
119

Только для владельцев печатной версии книги: чтобы получить доступ к дополнительным материалам, пожалуйста, введите последнее слово на странице №77 Вашего печатного экземпляра.

Шустова, Л. И. Базы данных : учебник / Л.И. Шустова, О.В. Тараканов. — Москва : ИНФРА-М, 2021. — 304 с. + Доп. материалы [Электронный ресурс]. — (Высшее образование: Бакалавриат). — DOI 10.12737/11549. - ISBN 978-5-16-010485-0. - Текст : электронный. - URL: https://znanium.com/catalog/product/1362122 (дата обращения: 28.03.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
БАЗЫ
ДАННЫХ

УЧЕБНИК

Л.И. ШУСТОВА
О.В. ТАРАКАНОВ

Допущено
Учебно-методическим объединением
по образованию в области прикладной информатики
в качестве учебника для студентов,
обучающихся по направлению подготовки 09.03.03
«Прикладная информатика»
(квалификация (степень) «бакалавр»)

Москва
ИНФРА-М
2021

Ш97

ISBN 978-5-16-010485-0 (print)
ISBN 978-5-16-102495-9 (online)
© Шустова Л.И., Тараканов О.В., 2016

Р е ц е н з е н т ы:
В.Г. Грибунин — д-р техн. наук, главный научный сотрудник Института инженерной физики;
В.И. Перекатов — д-р техн. наук, проф., зав. кафедрой Московского физикотехнического института

УДК 002:004(075.8)
ББК 32.81:32.97я73
 
Ш97

Шустова Л.И.
Базы данных : учебник / Л.И. Шустова, О.В. Тараканов. — Москва : 
ИНФРА-М, 2021. — 304 с. + Доп. материалы [Электронный ресурс]. — 
(Высшее образование: Бакалавриат). — DOI 10.12737/11549.

ISBN 978-5-16-010485-0 (print)
ISBN 978-5-16-102495-9 (online)
Учебник предназначен для изучения основ проектирования и реализации 
реляционных баз данных. Достаточно подробно рассматриваются фундаментальные понятия и принципы организации моделей данных «сущность – связь» 
и реляционной модели данных, включающие в себя основные характеристики 
структурных компонентов, манипуляционную и целостную части с использованием элементов теории множеств, реляционной алгебры и реляционного 
исчисления. Описаны основные этапы создания и использования системы 
базы данных: определение семантических зависимостей на разных уровнях 
абстракции; проектирование с учетом принципов нормализации; реализация 
и сопровождение с использованием декларативного языка. Детально представлены методы доступа к данным на основе: древовидных, хэш и битовых 
структур. Описаны основные операции оптимизатора SQL-запросов, а также 
методика интерпретации плана SQL-запроса.
Каждый раздел сопровождается практическими примерами и вопросами 
для самостоятельной оценки усвоенного материала. 
Соответствует требованиям Федерального государственного образовательного стандарта высшего образования (ФГОС ВО) последнего поколения.
Для студентов высших учебных заведений, обучающихся по направлению 
подготовки 09.03.01 «Информатика и вычислительная техника», специализация — «Высокопроизводительные компьютерные системы и технологии». 
Дисциплина включена в базовую часть профессионального цикла дисциплин 
ФГОС ВО.

УДК 002:004(075.8)
ББК 32.81:32.97я73

Материалы, отмеченные знаком 
, доступны 
в электронно-библиотечной системе Znanium.com

ВВедение

Прикладные системы, использующие базы данных, находят применение во всех сферах деятельности и обычно эксплуатируются в 
течение длительного промежутка времени.
Подобные системы проектировались для управления большим 
потоком транзакций, каждая из которых сопровождалась внесением 
каких-либо изменений в оперативные данные предприятия; это так 
называемые OLTP-системы (Online Transaction Processing). Размер 
базы данных в таких системах исчисляется: для малых систем — несколькими мегабайтами; для средних — гигабайтами и для очень 
больших — терабайтами.
В процессе эксплуатации прикладных систем приходится решать 
разные задачи — обеспечение текущей работы, включение в систему 
новых возможностей и др. В каких-то случаях возникает необходимость создать новую систему, использующую базу данных, или существенно реорганизовать существующую, с тем чтобы она отвечала 
требованиям предприятия.
Все это требует знания теории и практики баз данных, включающих в себя как общие концептуальные вопросы создания информационной модели предприятия, так и особенности использования в 
конечном итоге конкретного продукта — конкретной СУБД.
В данном издании сделана попытка осветить все эти вопросы для 
OLTP-систем. Рассмотрен обычный жизненный цикл систем с базами данных: проектирование, разработка, реализация и сопровождение. 
На этапе проектирования важно рассматривать фундаментальные 
вопросы разработки информационной модели, не обращая внимания на конкретное физическое представление данных; отсюда рассматриваются инструментальные средства разработки информационной модели — понятие модели данных вообще и модели сущность–связь для описания данных, используемых предприятием, на 
концептуальном уровне, понятном всем заинтересованным лицам.
Разработка базы данных требует знания реляционной модели, поэтому этой модели уделено существенное внимание. 
Реализация базы данных требует рассмотрения вопросов, связанных с организацией доступа к данным на уровне физического хранения; поэтому здесь уделяется определенное внимание и этим вопросам. 
Перевод разработанной базы данных на язык реляционной СУБД 
(РСУБД) требует использования SQL, поэтому в данном издании 
большое внимание уделяется использованию структурированного 

языка запросов как стандартного средства управления объектами и 
данными реляционной СУБД. В то же время реализация и сопровождение базы данных требуют уже знания конкретной РСУБД. Использование возможностей реляционной базы данных (например, написание различных запросов, разработка процедур и триггеров для 
реализации необходимого функционального наполнения) также требует применения определенной версии языка SQL. Все учебные примеры, представленные в данном издании, написаны на диалектах 
языка SQL наиболее распространенных на сегодняшний день поставщиков реляционных СУБД — компаний Microsoft и Oracle, в основе инструментальных средств работы с базами данных которых 
используется стандарт SQL92.
Эффективная эксплуатация разработанной и реализованной базы 
данных определяется в том числе и производительностью выполняемых SQL-запросов. В связи с этим рассматриваются принципы работы оптимизатора SQL-запросов, интерпретация плана выполнения 
SQL-запросов, а также подходы по обеспечению условий для оптимального выполнения SQL-запросов с точки зрения их производительности. 
В соответствии с изложенным в настоящем издании можно выделить следующие основные разделы.
1. Общее понятие модели данных, концептуальное проектирование, модель данных сущность–связь. 
2. Реляционная модель данных, функциональные зависимости, 
теория нормализации. 
3. Внутренние структуры хранения, методы доступа к данным, элементы оптимизации.
4. Языковые средства реляционных СУБД для реализации баз данных и построения SQL-запросов, рассмотрение диалектов языка 
SQL конкретных РСУБД.
5. Принципы работы оптимизатора SQL-запроса, интерпретация 
плана выполнения SQL-запроса, анализ производительности и 
возможные методы повышения эффективности выполнения 
SQL-запроса.

ПредислоВие

Данный учебник предназначен для студентов, обучающихся по 
направлению 230100.62 «Информатика и вычислительная техника», 
специализация –высокопроизводительные компьютерные системы 
и технологии. Дисциплина включена в базовую часть профессионального цикла дисциплин ФГОС ВПО (квалификация бакалавр). 
Для освоения дисциплины необходимы компетенции, сформированные у обучающихся в результате изучения дисциплин математического цикла (в частности, дисциплины раздела «Информатика») и дисциплин профессионального цикла раздела «Программирование». Сформированные при изучении данной дисциплины 
компетенции необходимы для освоения дисциплины общенаучного 
цикла «Архитектура информационных систем». Книга может быть 
использована и по направлению 230401.62 «Прикладная математика».
Жизненный цикл современных информационных систем в большинстве случаев предполагает использование, в том числе, и баз 
данных. В настоящее время (на момент написания данного издания) 
существует достаточно большое количество СУБД, в основе которых 
используются различные модели данных, такие как реляционные, 
объектные, объектно-реляционные, сетевые, иерархические и т.п. 
Однако, несмотря на многообразие существующих методологий (разработки) баз данных, подавляющее большинство информационных 
систем, в том числе и масштаба предприятия, в своей основе используют реляционные базы данных. В настоящем издании рассматриваются как концептуальные, так и практические аспекты всех этапов 
жизненного цикла разработки и использования реляционных баз 
данных.
Первые семь глав посвящены фундаментальным принципам построения и использования моделей данных, являющихся основой 
систем баз данных. Рассмотрение моделей данных начинается с понятия информация и заканчивается подробным описанием этапов 
проектирования реляционной модели данных с учетом возможных 
семантических зависимостей и принципов нормализации. 
Процесс реализации модели данных предполагает использование 
языка SQL как средства описания и манипулирования данными, 
поэтому далее рассматривается язык SQL в рамках стандарта SQL92, 
а также его интерпретация в условиях использования конкретных 
СУБД: Microsoft SQL Server и Oracle Database. Описание языка SQL 
сопровождается большим количеством примеров. 

Эффективность использования существующей базы данных определяется в том числе и тем, насколько рационально используются 
ресурсы системы. Поэтому в главах 10, 11 рассматриваются основные 
методы доступа к данным современных структур индексирования, 
а также принципы работы SQL-оптимизатора и интерпретация плана 
выполнения SQL-запросов. 

ГлаВа 1 
осноВные Понятия

1.1. Понятие данных

Информационные системы предназначены для хранения, выборки и модификации постоянно существующей информации.
Восприятие реального мира можно соотнести с последовательностью разных (часто взаимосвязанных) явлений. Эти явления 
всегда стремились описать (даже если не всегда понятна причина 
явления).
Такие описания внешних явлений образуют данные — они хранятся и обрабатываются. 
Описание внешних явлений (данных) включает два элемента:
 
• разрозненные факты, хранящиеся в ЭВМ (значения);
 
• смысл данных (интерпретация данных, их семантика).
Часто используется как синоним термина данные термин информация. 
Описание данных требует использование некоторого языка. Описание данных на естественном языке позволяет значения данных 
(факты) и их семантику фиксировать вместе, так как естественный 
язык достаточно гибок для этих целей. Например, можно сказать: 
«Его рост 185 см». Здесь 185 — значение данных, фраза «Его рост … 
см» — семантика данных. В данной фразе значение связано с семантикой, и становится понятен и смысл данных, и что с ними можно 
делать.
Нередко данные и их семантика разделены, и такое разделение 
можно встретить и в нашей обычной жизни. Например, расписание 
движения пассажирских поездов может быть представлено в виде 
таблицы, заголовок которой определяет семантику данных, а расположенные далее строки — значения данных (табл. 1.1).
Та б л и ц а  1 . 1

Расписание движения пассажирских поездов

Номер 
поезда

Станция 
назначения

Категория 
поезда

Дни 
отправления

Время 
отправления

Время 
в пути

Время 
прибытия

121
Вологда
Пассажирский
По четным
19.40
12
07.40

…
…
…
…
…
…
…

Если такая таблица большая, строки в ее нижней части уже тяжело читать — забывается смысл колонок, т.е. семантика данных. 
Если же семантика отсутствует (включена где-то в другом, недоступном в настоящий момент месте), такие данные трудно или вообще 
невозможно понять.
Применение ЭВМ для хранения и обработки данных приводит к 
еще большему разделению значений данных и их семантики. Компьютеры чаще всего имеют дело со значениями данных; большая 
часть их семантики как таковая вообще не фиксируется в ЭВМ. Например, если решается некоторая математическая задача моделирования (дифференциальное уравнение, описывающее некоторый 
реальный процесс), интерпретация полученных в результате решения значений возлагается на пользователя. 
На разных этапах развития информационных систем механизмы 
интерпретации данных определяются подходами в реализации компонентов хранения и обработки данных. 

1.2. ФайлоВые системы

В ранних системах (файловых) данные и семантика разделены:
 
• семантика отражается в приложениях, обрабатывающих данные;
 
• никаких способов осмысленного доступа к данным, кроме как 
через приложение, нет.
Файловые системы можно определить как набор программ, которые выполняют для пользователя некоторые операции, связанные 
с обработкой данных. При этом каждая программа определяет свои 
собственные данные и управляет ими.
Ограничения, присущие таким системам:
 
• разделение и изоляция данных;
 
• дублирование данных;
 
• зависимость от файлов;
 
• несовместимость данных.
Причины:
1. Определение данных содержится внутри приложений, а не хранится отдельно и независимо от них.
2. Помимо приложений, не предусмотрено никаких других инструментов доступа к данным и их обработки.
Глобальная причина кроется в разрыве между значениями данных 
и их семантикой.

1.3. системы баз данных

Информационные системы, использующие базы данных, относятся к многопользовательским системам и построены в соответствии с архитектурой клиент—сервер. В соответствии с этой архитектурой сервер управляет некоторым ресурсом (в нашем случае 
базой данных, т.е. некоторым набором занесенных во внешнюю память компьютера данных), а клиент обращается к серверу за предоставлением некоторых услуг, связанных с организацией доступа к 
этим данным. В соответствии с этой архитектурой на сервере размещаются сама база данных и некоторая система, управляющая доступом к данным, — система управления базами данных (СУБД). На 
клиенте реализуется интерфейс, с помощью которого формируются 
запросы к серверу и отображаются полученные результаты. Прикладная логика может быть реализована как на сервере, так и на клиенте. 
Кроме того, часто используются так называемые трехзвенные системы, в соответствии с которыми прикладная логика реализуется в 
виде отдельного компонента, выполняющего функции сервера (сервера приложения) по отношению к клиенту и клиента по отношению 
к серверу базы данных.
Нас будет интересовать в первую очередь организация баз данных 
и доступа к данным, т.е. то, что реализуется сервером базы данных.
Введем некоторые определения.
Определение. База данных — это совместно используемый набор логически связанных данных и их описаний, предназначенный для 
удовлетворения информационных потребностей организации.

Определение. Система управления базами данных (СУБД) — это программное обеспечение, осуществляющее управление базами данных.

Определение. Система баз данных — это компьютеризованная система 
хранения записей, т.е. это базы данных, СУБД, аппаратура и 
люди.
Упрощенная схема системы баз данных приведена на рис. 1.1.
В общем случае с системами баз данных работают пользователи 
разных категорий, каждая из которых обладает своими возможностями. К таким категориям обычно относят администратора данных 
и базы данных, разработчиков базы данных, прикладных программистов и конечных пользователей.
В системах с базами данных обязанности между пользователями 
разных категорий обычно распределяются следующим образом.

1. Администраторы данных и баз данных
Администратор данных (АД) отвечает за управление данными, 
включая планирование базы данных, разработку и сопровождение 
стандартов, бизнес-правил и деловых процедур, за концептуальное 
и логическое проектирование базы данных.
Администратор базы данных (АБД) отвечает за физическую реализацию базы данных, сопровождение, обеспечение безопасности и 
целостности данных; требуется знание СУБД и ОС.
2. Разработчики базы данных
Разработчики базы данных осуществляют разработку логической 
структуры данных, имеющихся ограничений; должны четко понимать структуру организации и ее бизнес-правила (бизнес-правила 
описывают основные характеристики данных с точки зрения организации).
3. Прикладные программисты
Прикладные программисты занимаются разработкой приложений, предоставляющих конечным пользователям необходимые 
функциональные возможности.
4. Конечные пользователи
Выполняют действия, определенные их должностными обязанностями.

1.4. история разВития сУбд

Ниже приводится краткое описание истории развития баз данных 
и СУБД.
1. Начало 1960-х гг. — файловые системы.

рис. 1.1. Упрощенная схема баз данных

К покупке доступен более свежий выпуск Перейти