Базы данных. Практическое применение СУБД SQL- и NoSOL-типа для применения проектирования информационных систем
Покупка
Основная коллекция
Тематика:
Базы и банки данных. СУБД
Издательство:
Издательский Дом ФОРУМ
Год издания: 2020
Кол-во страниц: 368
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
Среднее профессиональное образование
ISBN: 978-5-8199-0785-6
ISBN-онлайн: 978-5-16-108869-2
Артикул: 682830.03.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-типа для применения проектирования информационных систем, 2023, 682830.06.01
Базы данных. Практическое применение СУБД SQL- и NoSOL-типа для применения проектирования информационных систем, 2021, 682830.04.01
Фрагмент текстового слоя документа размещен для индексирующих роботов
БАЗЫ ДАННЫХ Практическое применение СУБД SQL- и NoSQL-типа для проектирования информационных систем С.А. Мартишин, В.Л. Симонов, М.В. Храпченко Рекомендовано Учебно-методическим советом СПО в качестве учебного пособия для учебных заведений, реализующих программу среднего профессионального образования по специальностям УГС 09.02.00 «Информатика и вычислительная техника» УЧЕБНОЕ ПОСОБИЕ Москва ИД «ФОРУМ» — ИНФРА-М 2020 УДК 004.6(075.32) ББК 32.973я723 М29 Мартишин С.А. М29 Базы данных. Практическое применение СУБД SQL- и NoSQL типа для проектирования информационных систем : учеб. пособие / С.А. Мартишин, В.Л. Симонов, М.В. Храпченко. — М. : ИД «ФОРУМ» : ИНФРА-М, 2020. — 368 с. — (Среднее профессиональное образование). ISBN 978-5-8199-0785-6 (ИД «ФОРУМ») ISBN 978-5-16-013889-3 (ИНФРА-М) Учебное пособие предназначено для изучения практического приме нения СУБД 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 (ИНФРА-М) © Мартишин С.А., Симонов В.Л., Храпченко М.В., 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. Настройка межсетевого экрана
Часть I. Практическое применение СУБД SQLтипа... Рис. 1.2. Установка MariaDB Рис. 1.3. Окно среды разработки MySQL Workbench
К покупке доступен более свежий выпуск
Перейти