Базы данных.Практическое применение СУБД SQL и NoSOL-типа для применения проектирования информационных систем
Покупка
Основная коллекция
Тематика:
Базы и банки данных. СУБД
Издательство:
Издательский Дом ФОРУМ
Год издания: 2020
Кол-во страниц: 368
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-8199-0718-4
ISBN-онлайн: 978-5-16-104936-5
Артикул: 633184.06.01
К покупке доступен более свежий выпуск
Перейти
Учебное пособие предназначено для изучения практического применения СУБД SQL и NoSQL-типа при проектировании информационных систем. Проведены аналогии между базами данных SQL и NoSQL-типа. Полученные теоретические знания закрепляются при выполнении цикла лабораторных работ. Работа с SQL СУБД изучается на примере СУБД MariaDB, рассмотрен вопрос использования хорошо зарекомендовавших себя в работе с MySQL приложений (например, phpMyAdmin, MySQL Workbench). Работа с NoSQL СУБД изучается на примере СУБД MongoDB с использованием оболочки Robomongo. Показана возможность использования универсального менеджера баз данных DBeaver для одновременной работы с СУБД MariaDB и MongoDB. Приведены примеры информационных систем на базе обоих типов СУБД SQL и NoSQL.
Предназначено для студентов, бакалавров, магистрантов, аспирантов и специалистов в области проектирования информационных систем и баз данных. Пособие также полезно для лиц, занимающихся самообразованием.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.02: Прикладная математика и информатика
- 02.03.02: Фундаментальная информатика и информационные технологии
- 02.03.03: Механика и математическое моделирование
- 03.03.02: Прикладная математика и информатика
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
- 38.03.05: Бизнес-информатика
- ВО - Специалитет
- 09.05.01: Применение и эксплуатация автоматизированных систем специального назначения
ГРНТИ:
Скопировать запись
Базы данных.Практическое применение СУБД SQL и NoSOL-типа для применения проектирования информационных систем, 2024, 633184.10.01
Базы данных.Практическое применение СУБД SQL и NoSOL-типа для применения проектирования информационных систем, 2023, 633184.09.01
Базы данных.Практическое применение СУБД SQL и NoSOL-типа для применения проектирования информационных систем, 2022, 633184.08.01
Базы данных.Практическое применение СУБД SQL и NoSOL-типа для применения проектирования информационных систем, 2021, 633184.07.01
Фрагмент текстового слоя документа размещен для индексирующих роботов
БАЗЫ ДАННЫХ Практическое применение СУБД 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). Также необходимо в настройках
К покупке доступен более свежий выпуск
Перейти