Базы данных. Практическое применение СУБД SQL- и NoSOL-типа для применения проектирования информационных систем
Покупка
Основная коллекция
Тематика:
Базы и банки данных. СУБД
Издательство:
Издательский Дом ФОРУМ
Год издания: 2023
Кол-во страниц: 368
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
Среднее профессиональное образование
ISBN: 978-5-8199-0785-6
ISBN-онлайн: 978-5-16-108869-2
Артикул: 682830.06.01
Учебное пособие предназначено для изучения практического применения СУБД SQL- и NoSQL-типа при проектировании информационных систем. Проведены аналогии между базами данных SQL- и NoSQL-типа. Полученные теоретические знания закрепляются при выполнении цикла лабораторных работ. Работа с SQL СУБД изучается на примере СУБД MariaDB. Рассмотрен вопрос использования хорошо зарекомендовавших себя в работе с MySQL приложений (например, phpMyAdmin, MySQL Workbench). Работа с NoSQL СУБД изучается на примере СУБД MongoDB с использованием оболочки Robomongo. Показана возможность использования универсального менеджера баз данных DBeaver для одновременной работы с СУБД MariaDB и MongoDB. Приведены примеры информационных систем на базе обоих типов СУБД — SQL и NoSQL.
Предназначено для студентов учреждений среднего профессионального образования, обучающихся по укрупненной группе специальностей 09.02.00 «Информатика и вычислительная техника», а также бакалавров, магистрантов, аспирантов и специалистов в области проектирования информационных систем и баз данных, а также для всех, кто интересуется проектированием информационных систем.
Тематика:
ББК:
УДК:
ОКСО:
- Профессиональная подготовка по профессиям рабочих и по должностям служащих
- 09.01.03: Оператор информационных систем и ресурсов
- 09.01.04: Наладчик аппаратных и программных средств инфокоммуникационных систем
- 09.01.05: Оператор технической поддержки
- Среднее профессиональное образование
- 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.02: Информационная безопасность телекоммуникационных систем
- 10.02.03: Информационная безопасность автоматизированных систем
- 10.02.04: Обеспечение информационной безопасности телекоммуникационных систем
- 11.02.12: Почтовая связь
- 51.02.03: Библиотечно-информационная деятельность
ГРНТИ:
Скопировать запись
Базы данных. Практическое применение СУБД SQL- и NoSOL-типа для применения проектирования информационных систем, 2021, 682830.04.01
Базы данных. Практическое применение СУБД SQL- и NoSOL-типа для применения проектирования информационных систем, 2020, 682830.03.01
Фрагмент текстового слоя документа размещен для индексирующих роботов
БАЗЫ ДАННЫХ Практическое применение СУБД SQL- и NoSQL-типа для проектирования информационных систем С.А. Мартишин, В.Л. Симонов, М.В. Храпченко Рекомендовано Учебно-методическим советом СПО в качестве учебного пособия для учебных заведений, реализующих программу среднего профессионального образования по специальностям УГС 09.02.00 «Информатика и вычислительная техника» УЧЕБНОЕ ПОСОБИЕ Москва ИД «ФОРУМ» — ИНФРА-М 202
УДК 004.6(075.32) ББК 32.973я723 М29 Мартишин С.А. М29 Базы данных. Практическое применение СУБД SQL- и NoSQL- типа для проектирования информационных систем : учебное пособие / С.А. Мартишин, В.Л. Симонов, М.В. Храпченко. — Москва : ИД «ФОРУМ» : ИНФРА-М, 2023. — 368 с. — (Среднее профессиональное образование). ISBN 978-5-8199-0785-6 (ИД «ФОРУМ») ISBN 978-5-16-013889-3 (ИНФРА-М, print) ISBN 978-5-16-108869-2 (ИНФРА-М, online) Учебное пособие предназначено для изучения практического применения СУБД SQL- и NoSQL-типа при проектировании информационных систем. Проведены аналогии между базами данных SQL- и NoSQL-типа. Полученные теоретические знания закрепляются при выполнении цикла лабораторных работ. Работа с SQL СУБД изучается на примере СУБД MariaDB. Рассмотрен вопрос использования хорошо зарекомендовавших себя в работе с MySQL приложений (например, phpMyAdmin, MySQL Workbench). Работа с NoSQL СУБД изучается на примере СУБД MongoDB с использованием оболочки Robomongo. Показана возможность использования универсального менеджера баз данных DBeaver для одновременной работы с СУБД MariaDB и MongoDB. Приведены примеры информационных систем на базе обоих типов СУБД — SQL и NoSQL. Предназначено для студентов учреждений среднего профессионального образования, обучающихся по укрупненной группе специальностей 09.02.00 «Информатика и вычислительная техника», а также бакалавров, магистрантов, аспирантов и специалистов в области проектирования информационных систем и баз данных, а также для всех, кто интересуется проектированием информационных систем. УДК 004.6(075.32) ББК 32.973я723 Р е ц е н з е н т ы: доктор технических наук, профессор кафедры информационных систем, сетей и безопасности ФГБОУ ВО «Российский государственный социальный университет» В.А. Сизов; доктор технических наук, доцент, директор военного института при ФГБОУ ВО «Московский авиационный институт (национальный исследовательский университет)» В.И. Гончаренко; доктор педагогических наук, доктор социологических наук, профессор кафедры прикладной информатики ГАОУ ВО «Московский городской педагогический университет» А.И. Каптерев ISBN 978-5-8199-0785-6 (ИД «ФОРУМ») ISBN 978-5-16-013889-3 (ИНФРА-М, print) ISBN 978-5-16-108869-2 (ИНФРА-М, online) © Мартишин С.А., Симонов В.Л., Храпченко М.В., 2016 © ИД «ФОРУМ», 2016
Предисловие Для современного этапа развития информационных систем и технологий характерно несколько тенденций. Первая из них — быстрое уменьшение материальной ресурсоемкости современной продукции и такое же стремительное замещение материальных ресурсов информационными. Вторая тенденция — быстрая изменчивость всех составляющих информационных систем и технологий, включая аппаратное и программное обеспечения. Рассмотрим данную тенденцию более подробно. В зависимости от достигнутых технологических успехов на каждом из этапов развития человечества ставится соответствующая общественная проблема/задача. При этом главенствующим здесь является развитие технологий — изобретение полупроводников, памяти, элементов и систем телекоммуникаций и пр. Кроме того, технологическое развитие ненадолго остается достоянием какойто научной группы, института или даже страны. Конкуренция вынуждает всех участников быть на одинаковом уровне, активно добывая сведения друг у друга. Еще одной важной тенденцией современного этапа является все более возрастающий объем данных, и эти данные не только научного плана (биологические, геофизические, медицинские, генетические и другие исследования), но и значительный объем данных, генерируемых широким кругом пользователей — информация о сделанных покупках, приобретениях, денежных перечислениях, а также смс, звонки, размещение сообщений и фото в социальных сетях и пр. Указанные данные зачастую имеют различную структурированность, и они должны храниться, обрабатываться и использоваться для генерации отчетов, в том числе в онлайнрежиме (например, для оптимизации продаж крупными торговыми компаниями или для выявления террористических угроз из обмена сообщениями в социальных сетях). Следовательно, именно громадный объем и необходимость онлайнобра
ботки информации различной структурированности — вот проблема современного этапа. Нельзя не отметить следующее. В природе давно имеются и решены подобные задачи, и ученым и исследователям достаточно внимательно изучать жизнь и поведение живых существ и переносить свои наблюдения в лаборатории и разработки. Не случайно активно развивается наука «бионика» — от наблюдений за полетом птиц для совершенствования авиационных конструкций до организации жизни «общественных» насекомых, например муравьев, пчел и т. п., где так же, как у человека, имеются задачи организации многоуровневого уклада жизнедеятельности при соответствующем обмене большими объемами информации. Однако в природе такие сообщества характеризуются определенной статичностью в развитии, т. е. медленное движение по эволюционной лестнице сообществ живых существ не идет ни в какое сравнение с высокоскоростным развитием современной цивилизации, поэтому ученым остается внимательно наблюдать за жизнью таких сообществ, пытаться понять их, заимствовать алгоритмы и переносить (по возможности) на человеческую жизнь. В этом случае будет значительно быстрее достигнут желаемый успех в развитии человечества. Проводя анализ прошедших этапов развития техники и технологий, можно отметить проблематичность прогнозов для отдаленной перспективы изза некоей случайности в появлении технологических открытий. Тем не менее в краткосрочной перспективе очевидна необходимость обработки огромных объемов неодинаково структурированной информации, для чего разрабатываются новые и/или модернизируются существующие алгоритмы и системы обработки данных. 4 Предисловие
Введение Проблема обработки больших объемов данных («big data») достаточно острая. Множество областей — научные исследования, бизнесаналитика, социальные сети, крупные распределенные webприложения и др. — требуют возможности работы с разнородной и зачастую с различно структурированной информацией. При этом должна обеспечиваться одновременная работа серверов под большой нагрузкой, поскольку обработка данных во многих областях не допускает задержки. В ряде распределенных проектов пользователи одновременно и генерируют, и потребляют информацию, поэтому требуется обеспечение масштабируемости, надежности и согласованности данных. При этом данные сами по себе могут и не иметь сложной структуры (например, данные социальных сетей — фото, подписи, комментарии, лайки, ссылки и некоторые другие), однако их объем и скорость обработки очень высоки. Таким образом, имеют место следующие тенденции — значительное увеличение объема данных, подлежащих хранению и обработке; существенное возрастание количества пользователей информационных систем с одновременным ростом числа транзакций (включая мультмедийную информацию на мобильных устройствах); сложность структурирования (используя технологию систем управления реляционными базами данных) значительного объема хранимой информации. Следовательно, требования, которым должны отвечать современные информационные системы, состоят в необходимости быстрой обработки информации в условиях работы в многопользовательском режиме. Традиционные СУБД на основе реляционных таблиц (SQLориентированные СУБД), несмотря на большую популярность, не справляются с возрастающими требованиями. Поэтому в последние несколько лет были разработаны системы с иными подходами к обработке информации, лучше справляющиеся с поставленными задачами. Таким подходом является NoSQL («не только SQL»). NoSQLсистемы
не используют реляционную модель данных, в них отсутствует жесткая структура, поэтому значительно лучше обеспечивается горизонтальная масштабируемость и требуемая производительность. Однако наряду с достоинствами NoSQLсистемам присущи недостатки, например, для них не гарантировано выполнения требований ACID (Atomicity (Атомарности), Consistency (Согласованности), Isolation (Изолированности), Durability (Долговечности)). Также не имеется аналогов команд BEGIN TRANSACTION, COMMIT и ROLLBACK, следовательно, проблематично их использование для финансовых систем. NoSQLсистемы (СУБД NoSQL) значительно проще с точки зрения модели данных (по сравнению с классической реляционной моделью). При этом NoSQLсистемы могут основываться на различных моделях хранения данных. Наиболее распространенными в настоящее время являются: системы «ключ—значение» (Key—Value Stores), документноориентированные СУБД (Document Stores), Bigtableподобные базы данных (Extensible Record Stores / Wide Column Stores / Column Families) и базы данных на основе графов. Существует значительное количество разнообразных NoSQLсистем — порядка 150 единиц, что вызвано ориентированностью на различные области применения и использованием различных моделей данных. Однако здесь имеет место существенный недостаток — отсутствие единого стандарта требований к таким системам. Указанный стандарт позволил бы облегчить синхронизацию данных и дал бы возможность разработчикам использовать в одном проекте различные СУБД. Отметим, что в направлении разработки стандартов ведется определенная деятельность. Так, в 2011 году компания Couchbase объявила о выпуске нового языка запросов — UnQL (Unstructured Data Query Language), предназначенного для работы с неструктурированными данными. Синтаксис языка UnQL аналогичен синтаксису языка SQL, например, поддерживаются такие команды, как SELECT, DELETE, INSERT и UPDATE. Также имеет место тенденция сближения SQLи NoSQLподходов. При этом совершенствование реляционных СУБД ведется, в частности, в направлении поддержки нетрадиционных для них типов данных (XMLдокументов и XPathзапросов). Одновременно развиваются и СУБД NoSQL. Таким образом, для разработчика представляется логичным использование инструментария, более соответст6 Введение
вующего поставленной задаче, будь то реляционная СУБД, СУБД NoSQLтипа или их совместное использование в одной информационной системе для хранения разных типов информации. Отметим, что указанное совместное использование стало возможным благодаря появлению универсального средства для работы с SQL и NoSQL базами данных — DBeaver (относится к категории свободного программного обеспечения — СПО). Практически во всех курсах дисциплин, формирующих профессиональные компетенции выпускника и связанных с изучением информационных систем и баз данных (такие дисциплины, как «Базы данных», «Распределенные базы данных», «Проектирование информационных систем», «Управление данными», «Проектирование программного обеспечения АСОИиУ», «Сетевые операционные системы» и т. д.), необходимо получить представление об обоих подходах в построении информационных систем с использованием СУБД SQL и NoSQLтипа. Таким образом, целью настоящего учебного пособия является обучение приемам работы как с СУБД SQL, так и NoSQLтипа, проведение аналогии между указанными двумя типами СУБД, изучение как теоретических положений, так и практических навыков путем выполнения конкретных лабораторных работ. Насколько известно авторам, такое учебное пособие на сегодняшний день отсутствует, и представленное учебное пособие в определенной мере восполняет данный пробел. Задачи настоящего учебного пособия следующие: • изучение широко распространенной СУБД SQLтипа MariaDB (в качестве примера работы с SQLсистемами), являющейся ответвлением СУБД MySQL со свободным статусом. Для работы с MariaDB в пособии используются приложения, хорошо зарекомендовавшие себя в работе с MySQL, например phpMyAdmin, MySQL Workbench; • освоение (в качестве примера работы с NoSQLсистемами) приемов работы в СУБД MongoDB при помощи командной строки и оболочки Robomongo; • изучение приемов работы с мультплатформенным универсальным менеджером баз данных DBeaver (работает с большим числом СУБД как SQL, так и NoSQLтипа). DBeaver является инструментом, в значительной степени облегчающим проектирование, реализацию, модификацию и работу с различными СУБД. Введение 7
Учебное пособие построено в виде цикла лабораторных работ, последовательно проводящих учащихся через тонкости проектирования баз данных для обоих подходов — SQL и NoSQL. Каждая глава снабжена заданиями для самостоятельной работы и списком контрольных вопросов. В приложениях учебного пособия помещены сведения о целостности данных, описание семейства стандартов IDEF, спецификации BSON, селекторов запросов (Query Selectors). Формируемые профессиональные компетенции (ожидаемые результаты обучения) студентов следующие. Студент должен: знать: • основные этапы построения баз данных различных типов — SQL и NoSQL — при проектировании информационных систем; • компоненты программных комплексов и баз данных; • технологию проектирования, производства и сопровождения баз данных в информационных системах; • основы безопасной работы с СУБД (аутентификация, назначение прав доступа для пользователей, резервное копирование, восстановление системы после сбоев и пр.); уметь: • участвовать во всех фазах проектирования, разработки, изготовления и сопровождения баз данных для ИС; • разрабатывать модели компонентов информационных систем, включая модели баз данных; • осуществлять прямой и обратный инжиниринг; • составлять структурированные запросы к информационным ресурсам локализованных и распределенных баз данных (создавать, обновлять и удалять документы в коллекции СУБД MongoDB; осуществлять выборку данных из коллекций и т. д.); • создавать на базе выбранной СУБД ядро информационной системы и целостный программный продукт; владеть: • навыками по созданию программного средства с использованием базы данных; • основами администрирования сервера MariaDB; • навыками создания ERмоделей и работой с EERдиаграммами; • основами администрирования СУБД MongoDB; • навыками репликации и шардинга в СУБД MongoDB. 8 Введение
Часть I ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ СУБД SQLТИПА НА ПРИМЕРЕ MARIADB Введение. Общие сведения о СУБД MariaDB В январе 2009 года вышел первый релиз системы управления базами данных (СУБД) MariaDB, получившей название в честь младшей дочери ведущего разработчика Ульфа Майкла Видениуса (Ulf Michael Widenius). Именно Видениус был одним из авторов первой версии СУБД MySQL и основателем компании MySQL AB. Позже в связи с политикой лицензирования компании Oracle, которая в настоящее время является владельцем MySQL, занялся разработкой совместимой с MySQL СУБД MariaDB — СУБД (под лицензией GPL), права на которую принадлежат компании Майкла Видениуса Monty Program Ab. Команды, интерфейсы взаимодействия и API MariaDB совместимы с теми, которые используются в MySQL, т. е. библиотеки и приложения, которые работают с MySQL, также должны работать на MariaDB. Исходя из этого и из опасений, что Oracle сделает СУБД MySQL несвободным программным обеспечением, разработчики Fedora, начиная с 19 версии, заменили MySQL на MariaDB. Кратко характеризуя MariaDB, отметим, что данная СУБД поддерживает работу с таким популярным клиентским приложением для удаленного администрирования баз данных, как phpMyAdmin, наиболее популярными фреймворками, такими как Yii и Zend, системами управления содержимым (CMS), например WordPress и Plone, и даже Moodle — системой управления электронным обучением. Также заметим, что многие популярные версии ОС Linux Fedora (начиная с 19 версии), а также Gentoo, openSUSE, Red Hat Enterprise Linux поддерживают работу с MariaDB.
Лабораторная работа 1 УСТАНОВКА СУБД MARIADB И ОСВОЕНИЕ РАБОЧЕГО ПРОСТРАНСТВА MYSQL WORKBENCH ДЛЯ РАБОТЫ С СУБД MARIADB Цель: изучение принципов установки и работы с СУБД MariaDB. Установка MariaDB Дистрибутивы MariaDB для операционных систем (ОС) Linux, Solaris и Windows доступны на downloads.mariadb.org. Кроме того, MariaDB входит в состав дистрибутива FreeBSD, некоторых дистрибутивов на базе MAC OC и наиболее распространенных ОС Linux: Ubuntu, openSUSE, ALTLinux, Fedora, Red Hat Enterprise Linux, Debian, Gentoo и др. В настоящем учебном пособии в качестве операционной системы используется ОС Fedora (не ниже версии 20), как одна из наиболее простых в установке и подходящих для учебных целей операционных систем семейства Linux. В данный дистрибутив входит MariaDB, поэтому производим установку, набрав в командной строке следующее: # yum install mariadb mariadbserver Далее в терминале набираем команды (первая из которых запускает сервер, вторая дает возможность автоматического запуска при загрузке ОС): # systemctl start mariadb.service # systemctl enable mariadb.service Изменяем установки межсетевого экрана (для стандартной графической оболочки Gnome Обзор → Разное → Межсетевой экран) — создать порт «3306 tcp» (рис. 1.1). Также необходимо в настройках