Добавлен: 15.05.2023
Просмотров: 266
Скачиваний: 2
3.2 Создание таблиц
Среда разработки pgAdmin удобна своим графическим интерфейсом, благодаря которому можно создавать базу данных и таблицы не используя скрипты. Но для наглядности представим процесс создания базы данных в виде кода на языке SQL:
-- Database: da5a8m1p77diab
-- DROP DATABASE da5a8m1p77diab;
CREATE DATABASE da5a8m1p77diab
WITH OWNER = mpdwpnlqhwsosk
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'en_US.UTF-8'
LC_CTYPE = 'en_US.UTF-8'
CONNECTION LIMIT = -1;
GRANT ALL ON DATABASE da5a8m1p77diab TO mpdwpnlqhwsosk;
GRANT ALL ON DATABASE da5a8m1p77diab TO public;
Выше отображён скрипт создания непосредственно базы данных. На данный момент, база данных пустая. Значение напротив Database – название базы данных; Owner – владелец – администратор. Строки кода также являются командами, задающими определённые настройки (например, последние две строки отвечают за доступ к базе, а строки с LC_COLLATE и LC_CTYPE – порядок сортировки строк и кодировку соответственно[5]).
После создания пустой базы её можно заполнять таблицами. Этот процесс так же можно выполнить при помощи GUI или же скриптов.
Рисунок 3.10 – Скрипт создания общей таблицы
Особое внимание стоит уделить строке “Primary Key”, в переводе – Первичный ключ. Он является важным элементом, поскольку без него последующее редактирование данных в таблице SQL не представляется возможным (по крайней мере, без полного её форматирования). Также стоит отметить, что в дальнейшем можно будет прописывать дополнительные команды для задачи соотношений и оптимизации таблицы.
Заполнение таблиц
После того, как общая таблица была создана, я заполнил её соответствующими значениями. Всего в получившейся таблице было 2400 * 11 = =26400 пустых ячеек, поэтому вручную их, в отличие от таблиц регионов и показателей, вводить было крайне нецелесообразно. Существует несколько способов импорта данных в таблицу SQL в зависимости от вида СУБД и среды разработки. К примеру, pgAdmin имеет встроенную функцию импорта, которая может импортировать данные из txt и csv файлов[7]:
Рисунок 3.11 –Скриншот функции импорта (подробнее в п. 3.3)
Мы не можем просто взять и превратить электронную таблицу xls в формат, приемлемый для SQL. Для этого сначала нужно преобразовать саму таблицу. В первую очередь нужно убедиться, что поля заготовки идентичны соответствующим полям xls таблицы.
Рисунок 3.12 – Пример оформления таблицы, подготавливаемой к переносу
Необходимо также уделять особое внимание типу данных в таблицах, поскольку язык SQL разделяет типы данных схожим образом с другими языками программирования (он имеет больше типов данных, чем остальные языки в связи со своей спецификацией). Например, если вы создаете колонку с названием Дата рождения, то надо выбрать соответствующий тип «date», если же в поле будет цифровое значение, то выбираем «integer», текстовое поле — выбираем тип «text» и т.д.
Импорт данных в таблицу
После всех приготовлений, описанных в п.3.3, таблицу xls (или другого формата) понадобится преобразовать для импорта данных в SQL. Она должна удовлетворять следующим требованиям:
- 1) Не должно быть пустых строк (как пример, в пустую ячейку формата integer нужно вставить 0, в ячейку формата text – «2»).
- 2) Все данные должны соответствовать типу, указанному во время создания таблицы (т.е. данные с датой должны иметь тип ячеек «date»), в противном случае программа во время импорта укажет вам на ошибку.
Эффективным вариантом будет пересохранение таблицы в формате csv. При этом стоит обратить внимание на разделители ячеек (ячейки будут разделены между собой определённым символом). Процесс сохранения в csv выглядит следующим образом для MS: Excel
Рисунок 3.13 Пересохранение таблицы в формат csv
Стоит отметить, что в настройках может понадобиться перевести файл в текстовую кодировку, идентичную кодировке базы данных (в нашем случае – UTF8)
После преобразования таблица будет выглядеть следующим образом:
Рисунок 3.14 – «Общая» таблица в формате csv
После этого таблица была успешно импортирована в PostgreSQL
Рисунок 3.15 – импорт табличных значений
При корректных настройках и соблюдённых требованиях все данные будут импортированы в SQL таблицу.
Рисунок 3.16 – Общая таблица в SQL формате
Построенная база данных по специфике среды разработки уже размещена на определённом сервере. Но мобильное приложение должно иметь к ней постоянный доступ. Поэтому мы решили в нашем проекте воспользоваться концепцией «облачной базы данных».
Облачный сервис для хранения базы данных
«Облачные вычисления» - относительно новая, и одновременно – быстро и стабильно развивающаяся информационно-технологическая концепция. Данная концепция подразумевает собой обеспечение удобного и глобального сетевого доступа к общему пулу (от англ. pool - резервуар) конфигурируемых вычислительных ресурсов, которые могут быть оперативно предоставлены и освобождены с минимальными эксплуатационными затратами или обращениями к провайдеру.[8]
«Облака» уже занимают свою весомую долю рынка информационных технологий. По американскому аналогу ГОСТа, облачным называется сервис, способный по требованию предоставить сетевой доступ к разделяемому пулу вычислительных ресурсов, которые могут быть оперативно выделены и возвращены с минимальными затратами по управлению и взаимодействию с провайдером. «По требованию» - означает, что пользователь без посредников запрашивает у сервиса ресурс и сразу же получая к нему доступ, не ожидая какой-то своей очереди (в отличие от, скажем, кластерных систем).
В основном облачные платформы подразделяют на:
- Infrastructure as a Service (IaaS ) – Инфраструктура как услуга. Модель, когда пользователю предоставляется возможность использования облачной инфраструктуры для самостоятельного управления ресурсами обработки, хранения, сетями и другими фундаментальными вычислительными ресурсами. Например, пользователь может устанавливать и запускать произвольное программное обеспечение, которое может включать в себя операционные системы, платформенное и прикладное программное обеспечение. Иными словами, пользователь отвечает только за управление ОС, а также установку и настройку приложений [9].
- Platformas a Service (PaaS) – Платформа как услуга. Модель, когда пользователю предоставляется возможность использования облачной инфраструктуры для размещения базового программного обеспечения для последующего размещения на нём новых или существующих приложений (собственных, разработанных на заказ или приобретённых). В состав таких платформ входят инструментальные средства создания, тестирования и выполнения прикладного программного обеспечения — системы управления базами данных, связующее программное обеспечение, среды исполнения языков программирования — предоставляемые облачным провайдером. [10]
- Software a Service (SaaS ) – Программное обеспечение как услуга. Модель, в которой пользователю предоставляется возможность использования прикладного программного обеспечения, работающего в облачной инфраструктуре и доступного из различных клиентских устройств или посредством тонкого клиента, например, из браузера (веб-почта) или посредством интерфейса программы. Даже онлайн-игры можно представить, как SaaS систему [11]
Преимущества и недостатки облачных архитектур
Достоинства:
● Доступность. Доступ к информации, записанной на облако, может получить любой владелец устройства, имеющего доступ в Интернет (ПК, мобильные устройства, и т.п.).
● Мобильность. У пользователя нет постоянной привязки к одному физическому рабочему месту. Из любой точки мира менеджеры могут получать отчетность, а руководители — следить за производством.
● Экономичность. Главное преимущество – снижение затрат. Пользователю не требуется покупать нужные для объёмных вычислений компьютеры и ПО, а также ему нет необходимости нанимать специалиста по обслуживанию этих ресурсов.
● Возможность аренды. Пользователь по требованию получит необходимый пакет услуг только по своему запросу, и будет платить только за арендованные функции
● Гибкость. Все необходимые ресурсы предоставляются автоматически.
● Высокая технологичность. Большие вычислительные мощности, которые предоставляются в распоряжение пользователя, которые можно использовать для хранения, анализа и обработки данных.
● Надежность. Некоторые эксперты утверждают, что надежность, которую обеспечивают современные облачные вычисления, гораздо выше, чем надежность локальных ресурсов, аргументируя это тем, что мало предприятий могут себе позволить приобрести и содержать полноценный дата-центр (от англ. data center), или центр (хранения и) обработки данных.
Недостатки:
● Необходимость постоянного соединения. Для получения доступа к услугам «облака» необходимо постоянное соединение с Интернет
● Ограничения ПО. Есть ограничения по ПО, которое можно разворачивать на «облаках» и предоставлять его пользователю. Пользователь имеет ограничения в используемом обеспечении и иногда не имеет возможности настроить его под свои собственные цели
Конфиденциальность. Конфиденциальность данных, хранимых в публичных «облаках», в настоящее время, вызывает много споров, но в большинстве случаев эксперты сходятся в том, что не рекомендуется хранить наиболее ценные для компании документы на публичном “облаке”, так как в настоящее время нет технологии, которая бы гарантировала 100% конфиденциальность данных
● Безопасность. «Облако» само по себе является относительно надежной системой, однако при проникновении в него злоумышленник получает доступ к огромному хранилищу данных. Еще один минус, — это использование систем виртуализации в которых, в качестве гипервизора, используются ядра стандартных ОС, что позволяет уязвимости и вирусы, эффективные против выбранной ОС
● Высокая стоимость оборудования. Для построения собственного облака необходимо выделить значительные материальные ресурсы, что не выгодно только что созданным и малым компаниям
Рисунок 4.1 – Макет «облака»
Облачный сервис Heroku
Для размещения БД в Сети с возможностью подключения к ней с ПК или мобильного устройства в любое время можно выгодно использовать PaaS платформу. Большинство подобных сервисов являются платными (т.е. взымающими арендную плату за пользование ресурсом). В случае проекта с базой данных, я выбрал в качестве сервера для размещения БД облачный сервис Heroku (https://heroku.com). Данный сервис поддерживает пользователей, которым не нужно огромное хранилище для своей работы, бесплатно предоставляя немного виртуального пространства (примерно 8,1 МБ на бесплатное размещение базы данных). В моём случае, при помощи сервиса HerokuDatabases я смог создать свою БД прямо на «облаке», а после этого – подключиться к ней при помощи pgAdmin, чтобы заполнить её информацией. Процесс заполнения таблиц был описан во второй части данной работы.
Чтобы начать работу с Heroku, нужно будет пройти процедуру регистрации. После этого нужно будет провести простую процедуру создания облачной БД:[11]
Рисунок 4.2 - переход в раздел Databases (базы данных)
Рисунок 4.3 - нажатие на кнопку Create Database (создать базу данных)
Рисунок 4.4 - выбор бесплатного плана аренды и добавление БД
После проделанных выше действий, необходимо подождать некоторое время, приблизительно 30-60 секунд для того, что бы СУБД успешно установилась. Созданная база данных будет размещена на облаке в виде программы, с которой в дальнейшем можно будет взаимодействовать:
Рисунок 4.5 – схема подключения к БД на Heroku через утилиту pgAdminIII
Рисунок 4.6 - Результат подключения к Heroku в pgAdmin
Рисунок 4.7 - Интерфейс для взаимодействие с СУБД на Heroku
Рисунок 4.8 – окно настроек. URL базы
Создана полноценная база данных, размещённая на облачной платформе Heroku. Следует обратить внимание, что Heroku дала ей статус “приложения”. Это важно, поскольку она получила свой адрес, по которому к ней можно подключиться по HTTP, что будет использоваться позднее. Также на рисунке 4.8 можно увидеть окно с URL базы. Он может использоваться