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

Базы данных.Практическое применение СУБД SQL и NoSOL-типа для применения проектирования информационных систем

Покупка
Основная коллекция
Артикул: 633184.06.01
К покупке доступен более свежий выпуск Перейти
Учебное пособие предназначено для изучения практического применения СУБД SQL и NoSQL-типа при проектировании информационных систем. Проведены аналогии между базами данных SQL и NoSQL-типа. Полученные теоретические знания закрепляются при выполнении цикла лабораторных работ. Работа с SQL СУБД изучается на примере СУБД MariaDB, рассмотрен вопрос использования хорошо зарекомендовавших себя в работе с MySQL приложений (например, phpMyAdmin, MySQL Workbench). Работа с NoSQL СУБД изучается на примере СУБД MongoDB с использованием оболочки Robomongo. Показана возможность использования универсального менеджера баз данных DBeaver для одновременной работы с СУБД MariaDB и MongoDB. Приведены примеры информационных систем на базе обоих типов СУБД SQL и NoSQL. Предназначено для студентов, бакалавров, магистрантов, аспирантов и специалистов в области проектирования информационных систем и баз данных. Пособие также полезно для лиц, занимающихся самообразованием.
Мартишин, С. А. Базы данных. Практическое применение СУБД SQL и NoSQL-типа для проектирования информационных систем : учебное пособие / С. А. Мартишин, В. Л. Симонов, М. В. Храпченко. — Москва : ФОРУМ : ИНФРА-М, 2020. — 368 с. — (Высшее образование: Бакалавриат). - ISBN 978-5-8199-0718-4. - Текст : электронный. - URL: https://znanium.com/catalog/product/1066784 (дата обращения: 18.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
БАЗЫ ДАННЫХ

Практическое применение 
СУБД SQL и NoSQL-типа
для проектирования
информационных систем

С.А. Мартишин, В.Л. Симонов,
М.В. Храпченко

Рекомендовано научно-методическим советом
Национального исследовательского университета «МИЭТ»
в качестве учебного пособия для бакалавров
и магистрантов направлений подготовки
01.03.02 «Прикладная математика и информатика»,
09.03.01 «Информатика и вычислительная техника»,
09.03.02 «Информационные системы и технологии»,
09.03.03 «Прикладная информатика»,
09.03.04 «Программная инженерия», 27.03.04 «Управление
в технических системах», 38.03.05 «Бизнес-информатика»,
44.03.01 «Педагогическое образование (профиль “Информатика”)»

УЧЕБНОЕ ПОСОБИЕ

Москва 
ИД «ФОРУМ» — ИНФРА-М
2020

УДК 004.6(075.8)
ББК 32.973я73
 
М29

Мартишин С.А.
М29  
Базы данных. Практическое применение СУБД SQL и NoSQLтипа для проектирования информационных систем : учебное пособие / С.А. Мартишин, В.Л. Симонов, М.В. Храпченко. — Москва : 
ИД «ФОРУМ» : ИНФРА-М, 2020. — 368 с. — (Высшее образование: 
Бакалавриат).

ISBN 978-5-8199-0718-4 (ИД «ФОРУМ»)
ISBN 978-5-16-013445-1 (ИНФРА-М, print)
ISBN 978-5-16-104936-5 (ИНФРА-М, online)

Учебное пособие предназначено для изучения практического применения СУБД SQL и NoSQL-типа при проектировании информационных 
систем. Проведены аналогии между базами данных SQL и NoSQL-типа. 
Полученные теоретические знания закрепляются при выполнении цикла 
лабораторных работ. Работа с SQL СУБД изучается на примере СУБД 
MariaDB, рассмотрен вопрос использования хорошо зарекомендовавших 
себя в работе с MySQL приложений (например, phpMyAdmin, MySQL 
Workbench). Работа с NoSQL СУБД изучается на примере СУБД MongoDB 
с использованием оболочки Robomongo. Показана возможность использования универсального менеджера баз данных DBeaver для одновременной 
работы с СУБД MariaDB и MongoDB. Приведены примеры информационных систем на базе обоих типов СУБД SQL и NoSQL.
Предназначено для студентов, бакалавров, магистрантов, аспирантов 
и специалистов в области проектирования информационных систем и баз 
данных. Пособие также полезно для лиц, занимающихся самообразованием.

УДК 004.6(075.8)
ББК 32.973я73

Р е ц е н з е н т ы:
доктор технических наук, профессор кафедры информационных 
систем, сетей и безопасности ФГБОУ ВО г. Москвы «Российский государственный социальный университет» В.А. Сизов;
доктор технических наук, доцент, директор военного института 
при ФГБОУ ВО г. Москвы «Московский авиационный институт (национальный исследовательский университет)» В.И. Гончаренко;
доктор педагогических наук, доктор социологических наук, профессор кафедры прикладной информатики ГАОУ ВО г. Москвы «Московский городской педагогический университет» А.И. Каптерев

ISBN 978-5-8199-0718-4 (ИД «ФОРУМ»)
ISBN 978-5-16-013445-1 (ИНФРА-М, print)
ISBN 978-5-16-104936-5 (ИНФРА-М, 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). Также необходимо в настройках

конфигурации выбрать опцию «Постоянные», поскольку динамические конфигурации работают только до перезагрузки.
Введем пароль root для управления MariaDB:

# mysqladmin u root password пароль_администратора_MariaDB

Затем войдем в терминал под root:

# mysql u root p

Введем пароль администратора MariaDB и войдем в терминал
MariaDB (рис. 1.2):

MariaDB [(none)]>

Для выхода из терминала MariaDB ввести \q и нажать клавишу
«Enter».
Далее для удобства работы будем использовать графический интерфейс. Как было сказано выше, для работы MariaDB можно использовать значительную часть приложений, хорошо зарекомендовавших себя с MySQL, например phpMyAdmin или MySQL Workbench.

Лабораторная работа 1. Установка СУБД MariaDB...
11

Рис. 1.1. Настройка межсетевого экрана

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