Базы данных
Покупка
Основная коллекция
Тематика:
Базы и банки данных. СУБД
Издательство:
Издательство ФОРУМ
Год издания: 2020
Кол-во страниц: 400
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
Среднее профессиональное образование
ISBN: 978-5-00091-601-8
ISBN-онлайн: 978-5-16-108870-8
Артикул: 682831.03.01
В пособии рассмотрены основные подходы и направления развития систем баз данных. Анализируются классические машинно ориентированные формы представления информации и данных. Рассматриваются типовые модели физической и логической организации данных, архитектура средств доступа к данным. Достаточно подробно представлены возможности SQL как базового языка для работы с реляционными базами данных. Большое внимание уделено проблемам моделирования и проектирования баз данных.
Для студентов учебных заведений, реализующих программу среднего профессионального образования по укрупненной группе специальностей 09.02.00 «Информатика и вычислительная техника», а также студентов вузов.
Тематика:
ББК:
УДК:
ОКСО:
- Профессиональная подготовка по профессиям рабочих и по должностям служащих
- 09.01.03: Оператор информационных систем и ресурсов
- Среднее профессиональное образование
- 09.02.01: Компьютерные системы и комплексы
- 09.02.02: Компьютерные сети
- 09.02.03: Программирование в компьютерных системах
- 09.02.04: Информационные системы (по отраслям)
- 09.02.05: Прикладная информатика (по отраслям)
- 09.02.06: Сетевое и системное администрирование
- 09.02.07: Информационные системы и программирование
- 09.02.09: Веб-разработка
- 10.02.01: Организация и технология защиты информации
- 10.02.03: Информационная безопасность автоматизированных систем
- 11.02.12: Почтовая связь
- 51.02.03: Библиотечно-информационная деятельность
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
БАЗЫ ДАННЫХ О.Л. Голицына, Н.В. Максимов, И.И. Попов 4-е издание, переработанное и дополненное Рекомендовано Учебно-методическим советом СПО в качестве учебного пособия для студентов учебных заведений, реализующих программу среднего профессионального образования по укрупненной группе специальностей 09.02.00 «Информатика и вычислительная техника» УЧЕБНОЕ ПОСОБИЕ Москва 2020 ИНФРА-М
УДК 004.6(075.32) ББК 32.973я723 Г60 Голицына О.Л. Г60 Базы данных : учебное пособие / О.Л. Голицына, Н.В. Максимов, И.И. Попов. — 4-е изд., перераб. и доп. — Москва : ФОРУМ : ИНФРА-М, 2020. — 400 с. — (Среднее профессиональное образование). ISBN 978-5-00091-601-8 (ФОРУМ) ISBN 978-5-16-014194-7 (ИНФРА-М) В пособии рассмотрены основные подходы и направления развития систем баз данных. Анализируются классические машинно ориентированные формы представления информации и данных. Рассматриваются типовые модели физической и логической организации данных, архитектура средств доступа к данным. Достаточно подробно представлены возможности SQL как базового языка для работы с реляционными базами данных. Большое внимание уделено проблемам моделирования и проектирования баз данных. Для студентов учебных заведений, реализующих программу среднего профессионального образования по укрупненной группе специальностей 09.02.00 «Информатика и вычислительная техника», а также студентов вузов. УДК 004.6(075.32) ББК 32.973я723 Р е ц е н з е н т ы: Косяченко С.Л. — доктор технических наук, профессор Российского государственного гуманитарного университета; Сысоева Л.А. — кандидат технических наук, доцент Российского государственного гуманитарного университета ISBN 978-5-00091-601-8 (ФОРУМ) ISBN 978-5-16-014194-7 (ИНФРА-М) © Голицына О.Л., Максимов Н.В., Попов И.И., 2019 © ФОРУМ, 2019
Предисловие Сегодня трудно себе представить скольконибудь значимую информационную систему, которая бы не имела в качестве основы (или важной составляющей) базу данных. Концепции и технологии баз данных складывались постепенно и всегда были тесно связаны с развитием систем автоматизированной обработки информации. Создание баз данных после появления реляционного подхода превратилось из искусства в науку, но, как показала практика последних лет, все же окончательно его не исключило. Тем не менее сейчас это вполне сложившаяся дисциплина (хотя являющаяся скорее инженерной, чем чисто научной), основанная на достаточно формализованных подходах и включающая широкий спектр приемов и методов создания баз данных. Как отмечается в [4], базам свойственна «перманентность» данных. Соответственно, назначение систем управления базами данных — обеспечение в течение длительного времени их сохранности, а также возможностей выборки и актуализации. Данные существуют всегда, пока есть потребность в их использовании1, хотя характер использования, как и пути извлечения практической пользы, могут быть самыми разными: от оперативной актуализации значений до уничтожения данных, от их использования для совершенствования сложных систем управления до формирования «чемоданов компромата». Базы данных в стремительно, а в какойто степени и сумбурно развивающихся информационных технологиях — это сравнительно консервативное направление, где СУБД и сами базы представляют собой «долговременные сооружения». Элементная база ЭВМ и парадигмы программирования меняются быстрее, чем хранимые данные 1 Правильнее было бы говорить, что данные создаются, но создаются не ради них самих, а для того, чтобы в дальнейшем они были использованы в какомто процессе.
теряют актуальность. В таких условиях, в отличие от прикладных программистов, создатели баз данных (от разработчиков СУБД до администраторов БД) должны постоянно помнить о проблеме «наследственности» — о том, как интегрировать в создаваемую систему наследуемые данные, находящиеся под управлением устаревшей СУБД, и о том, как построить систему, чтобы вновь создаваемые данные могли быть, в свою очередь, наследованы следующим поколением систем и разработчиков. Достаточно консервативны и концепции баз данных. Эта консервативность не только следствие свойства «долговечности», но и того факта, что базы вторичны по отношению к описываемым ими реальным процессам и объектам, достаточно стабильным и типичным. Кроме того, модели данных строились в значительной степени «по аналогии» с организационными и технологическими структурами. Широкое использование баз данных различными категориями пользователей привело, с одной стороны, к созданию интерфейсов, требующих минимум времени на освоение средств управления системой, а с другой — к построению мощных, гибких СУБД, имеющих, в числе прочего, развитые средства защиты данных от случайного или преднамеренного разрушения. Появились и средства автоматизации разработки, позволяющие создать базу данных любому пользователю, даже не владеющему основами теории БД. Но, как было отмечено ранее, база данных — это важная, но не основная функциональная, а обеспечивающая — информационная составляющая некоторой обычно достаточно крупной человекомашинной системы. И здесь интересно обратить внимание на принципиальное отличие в развитии способностей взаимодействующих субъектов (человек—машина). Разделение информации на табличную (числовую), текстовую и графическую отражает последовательность, в которой эти виды информации «осваивались» компьютерами. Первые языки программирования были рассчитаны исключительно на обработку числовой информации (Fortran, Algol). Первыми появляются и табличные базы данных, также преимущественно рассчитанные на обработку числовых таблиц (файлов). Затем — текстовые файлы и текстовые БД (автоматизированные информационнопоисковые системы с библиографическими и полнотекстовыми базами). Наконец, с существенным повышением быстродействия и емкости памяти компьютеров, объектами обработки становятся графика и мультимедиа. Эта последовательность прямо противоположна той, в которой данные виды информации осваивает человек. Действительно, снача4 Предисловие
ла он знакомится с графическими образами (птички, цветочки и бабочки на шкафчиках в детском саду), затем — учится читать и писать, а только потом осваивает таблицу умножения. Создание практически полезной «серьезной» базы данных в равной степени зависит как от «фундаментальности» знаний разработчика в области концепций и технологий СУБД, так и от степени понимания им сегодняшних и будущих прикладных задач пользователя, т. е. не только от адекватности применения тех или иных типовых или оригинальных решений, но и от качества представления (описания) этих решений, с той или иной степенью успешности позволяющих использовать, сопровождать и развивать систему после разработчика. Кроме того, возможности накапливать и оперативно обрабатывать большие объемы информации, характеризующие деятельность предприятий за достаточно длительные периоды и в различных аспектах, дали новый импульс к развитию аналитических систем. Такого рода системы поддержки принятия решений обычно используются для оценки и выбора альтернативных решений, прогнозирования, идентификации объектов и состояний и т. д. Однако, поскольку для получения необходимых данных в этих случаях нужно использовать сложные SQLзапросы или специализированные процедуры и при этом обрабатывать большие объемы записей, это может приводить к сознательному отказу от классических нормализованных схем, так как чем выше степень нормализации, тем больше число операций соединения отношений и, соответственно, больше времени необходимо для получения конечного результата. Базы данных — это уже достаточно хорошо проработанная научная дисциплина. Существует множество, в том числе и фундаментальных, работ и учебников (на материал которых авторы опирались при подготовке этого учебного пособия и убедительно рекомендуют их тем, кто серьезно интересуется проблематикой баз данных), среди которых необходимо выделить такие монографии, как «Организация баз данных в вычислительных системах» Дж. Мартина, «Введение в системы баз данных» К. Дейта, «Алгоритмы и структуры данных» Н. Вирта, «SQL» Дж. Гроффа и П. Вайнберга. В своей работе авторы руководствовались и тем, что материал должен не только в компактной и наглядной форме представлять существо конкретной темы, но и подвести читателя к пониманию обоснованности (или условности) того или иного решения. Авторы сознательно избегали описаний языков и технологий, применяемых в конкретных системах, предполагая, что полноценное освоение материала Предисловие 5
• способность анализировать при решении профессиональных задач социальноэкономические проблемы и процессы с применением методов системного анализа и математического моделирования (Б1); • способность использовать основные законы естественнонаучных дисциплин в профессиональной деятельности и эксплуатировать современное электронное оборудование и информационнокоммуникационные технологии (Б2); • способность применять системный подход и математические методы в формализации решения прикладных задач (Б3); • способность осуществлять и обосновывать выбор проектных решений по видам обеспечения информационных систем (Б4); • способность проводить обследование организаций, выявлять информационные потребности пользователей, формировать требования к информационной системе, участвовать в реинжиниринге прикладных и информационных процессов (Б5); • способность применять методы анализа прикладной области на концептуальном, логическом, математическом и алгоритмическом уровнях (Б6); • способность моделировать и проектировать структуры данных и знаний, прикладные и информационные процессы (Б7); • способность оценивать и выбирать современные операционные среды и информационнокоммуникационные технологии для информатизации и автоматизации решения прикладных задач и создания ИС (Б8); • способность проектировать и администрировать базы данных курса связано с практикой и, соответственно, с неизбежным изучением конкретных подходов, языков и технологий, свойственных выбранной системе, и изложенных в специальных пособиях, учебниках и руководствах. 6 Предисловие 1 Ниже при краткой характеристике содержания глав, будут приведены индексы соответствующих компетенций. Учебное пособие предназначено для студентов учреждений среднего профессионального образования, обучаю щихся по укрупненной группе специальностей 09.02.00 «Информатика и вычислительная техника», а также студентов вузов по направлению подготовки 09.03.03 «Прикладная информатика». Пособие обеспечивает формирование следующих профессиональных компетенций1 бакалавров (Б) и магистров (М): способность проектировать и администрировать базы данных (Б9);
• способность ставить и решать прикладные задачи с использованием современных информационнокоммуникационных технологий (Б10); • способность моделировать процессы управления и познания (М1); • способность проектировать информационные системы с использованием современных инструментальных средств (М2); • способность моделировать, проектировать и реализовывать системы баз данных и знаний (М3); • умение владеть основными методами, способами и средствами получения, хранения, переработки информации, навыками работы с компьютером и информационными сетями как средством управления информацией (М4). В целом пособие ориентировано на развитие и таких общепрофессиональных компетенций, как способность понимать роль и значение информации и информационных технологий в развитии современного общества и научного знания, а также способность использовать, обобщать и анализировать информацию, ставить цели и находить пути их достижения в условиях формирования и развития информационного общества. Организация материала пособия ориентирована на формирование способности самостоятельно приобретать и использовать в практической деятельности новые знания и умения, стремиться к саморазвитию. Материал пособия, представленный в тринадцати главах и приложении, условно можно отнести к следующим разделам: • введение в машинную обработку данных и структуры данных; • введение в модели предметных областей и модели данных; • общесистемные основы и технологии проектирования и реализации баз данных; • язык управления данными; • основы организации и технологии доступа к данным. В первой главе определены основные понятия, относящиеся к базам и банкам данных, приведена классификация компонентов систем управления данными, определены их назначение и основные функции (Б4, Б10). Рассмотрен важнейший вопрос семантики баз данных в контексте информационных систем и определено соотношение понятий «информация» и «данные» (М4). Во второй главе обсуждаются основы фактографических БД, в частности формализованного представления информации. Изложены типовые подходы к идентификации объектов и дана типология запроПредисловие 7
сов атрибутивного поиска описаний объектов. Определены различия между подходами, используемыми в фактографических и документальных базах данных. Вводится понятие модели данных (Б5). Приводятся основы реляционной алгебры и реляционного исчисления (М3). В третьей главе представлены базовые технологии машинной обработки данных и рассмотрены ключевые моменты, определяющие эффективность процессов управления данными. Приведены характеристические черты систем управления данными разных поколений. Примерные схемы управления данными в файловой системе ОС и СУБД дают наглядное представление о принципиальных различиях организации процессов и разделении функций между компонентами (Б2). Главы 4, 5, 6 посвящены проблемам моделирования баз данных. Определяются стадии проектирования и объекты моделирования. Обсуждаются отличия подходов к моделированию предметных областей. Подробно рассматривается содержание этапов проектирования и типы моделей (Б1, Б6, Б7, М3). В пятой главе подробно рассматривается концептуальное моделирование, включая модель «сущность—связь», методологии IDEF и UML (Б3, M1). В шестой главе представлены логические модели баз данных, включая реляционные, постреляционные, объектные и др. (Б3, М3). В главе 7 описывается пример проектирования реляционной базы данных, включая технологию нормализации отношений. Главы 8 и 9 посвящены языковым средствам управления реляционными БД (Б7). Глава 9 содержит функционально полное описание SQL, который является стандартным языком для работы с реляционными базами данных (Б8, М3). Возможности использования операторов языка рассматриваются на серии примеров, иллюстрирующих этапы создания и использования базы данных, описание проектирования которой приведено в предыдущих главах. В главе 10 приведены типовые модели физической организации данных, акцентирующие внимание на различиях в вариантах структур и связей (Б9). Рассматриваются схемы организации данных для линейных, иерархических и сетевых структур. Обсуждаются архитектуры организации данных на уровне файловых компонентов. Материал этой главы является ключевым для понимания существа внутримашинной обработки данных и, соответственно, путей построения высокоэффективных систем БД (М4). В главе 11 представлены модели и технологии распределенной обработки данных. Проведен сравнительный анализ базовых архитек8 Предисловие
тур, отражающих характер распределения данных и процессов между компонентами распределенной системы. Рассмотрены типовые технологии и средства доступа к данным, распределенным в узлах вычислительной сети (Б7, Б8, М2, М4). Глава 12 посвящена понятию «транзакция», рассматриваемому как основа технологии параллельной обработки данных. Обсуждаются модели транзакций и способы управления транзакциями (Б7, Б8, М3, М4). Глава 13 знакомит с основными процессами управления базами данных в СУБД. Здесь затрагиваются вопросы физического планирования БД, организации управления доступом пользователей к объектам БД, программирования процессов управления обработкой данных (представления, хранимые процедуры, триггеры), а также управления репликациями и резервным копированием (Б9, М3). Приложение содержит примерное описание физических структур реальных СУБД (М3). Сравнительный анализ этих примеров позволит прилежному читателю уяснить различия и, что нам кажется важнее, сходство решений, а также практически оценить роль моделей, которым уделялось так много внимания в большинстве глав. Данное пособие написано в предположении, что читатели владеют математическими основами, а также знакомы с современными языками программирования. Книга также может рассматриваться как введение в проблематику теории и практики информационных систем, основанных на базах данных. Для заинтересованного читателя материал книги должен стать отправной точкой для освоения таких дисциплин, как «Информационные системы», «Проектирование информационных систем», «Мировые информационные ресурсы», «Распределенные базы данных». Предисловие 9
Глава 1 ВВЕДЕНИЕ В БАЗЫ И БАНКИ ДАННЫХ 1.1. Понятие базы и банка данных Развитие вычислительной техники и появление емких внешних запоминающих устройств прямого доступа предопределило интенсивное развитие автоматических и автоматизированных систем разного назначения и масштаба, в первую очередь заметное в области бизнесприложений. Такие системы работают с большими объемами информации, которая обычно имеет достаточно сложную структуру, требует оперативности в обработке, часто обновляется и в то же время требует длительного хранения. Примерами таких систем являются автоматизированные системы управления предприятием, банковские системы, системы резервирования и продажи билетов и т. д. (рис. 1.1). Другими направлениями, стимулировавшими развитие, стали, с одной стороны, системы управления физическими экспериментами, Рис. 1.1. Примерная схема автоматизированной информационной системы