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

Базы данных

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

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

Шустова, Л. И. Базы данных : учебник / Л.И. Шустова, О.В. Тараканов. — Москва : ИНФРА-М, 2021. — 304 с. + Доп. материалы [Электронный ресурс]. — (Среднее профессиональное образование). - ISBN 978-5-16-014161-9. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1189322 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
БАЗЫ
ДАННЫХ

УЧЕБНИК

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

Рекомендовано Учебно-методическим советом СПО 
в качестве учебника для студентов учебных заведений, реализующих 
программу среднего профессионального образования по специальностям 
09.02.01 «Компьютерные системы и комплексы», 09.02.02 «Компьютерные сети», 
09.02.03 «Программирование в компьютерных системах», 
09.02.04 «Информационные системы (по отраслям)», 
09.02.05 «Прикладная информатика (по отраслям)»

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

Ш97

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

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

УДК 002:004(075.32)
ББК 32.81:32.97я723
 
Ш97

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

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

УДК 002:004(075.32)
ББК 32.81:32.97я723

Материалы, отмеченные знаком 
, доступны 
в электронно-библиотечной системе 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-запроса.

ПРЕДИСЛОВИЕ

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

2. Середина 1960-х гг. — сетевые СУБД. В 1965 г. на конференции 
CODASYL (Conference on Data System Languages) создана рабочая 
группа, которая должна была определить спецификации среды, которая допускала бы разработку баз данных и управление данными. 
Отчет этой группы опубликован в 1971 г. Были определены три компонента:
 
– сетевая схема (организация базы данных в целом);
 
– подсхема (часть базы данных, как она видится пользователям 
и приложениям);
 
– язык управления данными; сюда были включены язык описания данных (ЯОД, или DDL — Data definition Language) и 
язык манипулирования данными (ЯМД, или DML — Data 
Manipulation Language).
Системы на основе CODASYL — это СУБД 1-го поколения, использующие сетевые и иерархические модели данных.
3. В 1970 г. Э. Кодд (Edgar Frank «Ted» Codd) опубликовал статью 
о реляционной модели данных, что послужило мощным толчком к 
развитию реляционных СУБД. Коммерческие СУБД, использующие 
реляционную модель данных, появились в конце 1970-х — начале 
1980-х гг. Особо следует упомянуть СУБД System R (IBM, 
1976 г.) — в ней был использован язык SQL. СУБД, использующие 
реляционную модель данных, — это СУБД 2-го поколения.
4. В 1976 г. П. Чен (Peter Pin-Shan Chen) представил модель «сущность–связь», определив тем самым технологию проектирования баз 
данных. Появились расширенная реляционная модель данных и семантические модели данных.
5. С ростом сложности приложений стали использоваться объектно-ориентированные модели данных, в результате чего появились 
объектно-ориентированные и объектно-реляционные СУБД, которые определяются как СУБД 3-го поколения.

1.5. трехУроВнеВая архитектУра ANSI/SPARC

Первая попытка создания стандартной терминологии и общей 
архитектуры представления данных была предпринята в 1971 г. по 
результатам конференции по языкам и системам данных CODASYL. 
При национальном институте стандартов США был создан комитет 
планирования стандартов и норм — ANSI/SPARC (ANSI — American 
National Standard Institute, SPARC — Standards Planning and 
Requirements Committee). Этот комитет в 1975 г. признал необходимость использования трехуровневого подхода при описании представления данных.
В соответствии с этим подходом используются три уровня абстракции описания элементов данных; они формируют трехуровне
К покупке доступен более свежий выпуск Перейти