БД. Docker. Знакомство, использование. Контейнеры
Скачать 55.39 Kb.
|
ООП Методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования. Класс Класс — универсальный, комплексный тип данных, состоящий из тематически единого набора «полей» и «методов». Объект Сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса. Active record Схема Active Record — это подход к доступу к данным в базе данных. Таблица базы данных или представление обёрнуты в классы. Представляет собой реализацию технологии ORM: «ORM (англ. Object-relational mapping) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных» Принципы AR • каждый экземпляр данного класса соответствует одной записи таблицы; • при создании нового экземпляра класса в таблицу добавляется новая запись; • при чтении полей объекта считываются соответствующие значения записи таблицы баз данных; • при изменении какого-либо объекта изменяется (удаляется) соответствующая ему запись CLOS CLOS (англ. Common Lisp Object System — «объектная система Common Lisp’а») — система объектно-ориентированного программирования, являющаяся частью Common Lisp. Data Access Object data access object (DAO) — это объект, который предоставляет абстрактный интерфейс к какому-либо типу базы данных или механизму хранения. Data Transfer Object Data Transfer Object (DTO) — один из шаблонов проектирования, используется для передачи данных между подсистемами приложения. PDO PHP Data Objects — расширение для PHP, предоставляющее разработчику простой и универсальный интерфейс для доступа к различным базам данных. Doctrine Doctrine — объектно-реляционный проектор (ORM) для PHP 7.1+, который базируется на слое абстракции доступа к БД (DBAL). Одной из ключевых возможностей Doctrine является запись запросов к БД на собственном объектно-ориентированном диалекте SQL, называемом DQL (Doctrine Query Language) и базирующемся на идеях HQL (Hibernate Query Language). Сетевые, распределённые и параллельные базы данных Режимы работы баз данных При размещении БД на персональном компьютере, который не находится в сети, БД всегда используется в монопольном режиме. Однако работа на изолированном компьютере с небольшой базой данных в настоящий момент становится уже нехарактерной для большинства приложений. БД отражает информационную модель реальной предметной области. Параллельный доступ к одной БД нескольких пользователей соответствует режиму распределенного доступа к централизованной БД. (Такие системы называются системами распределенной обработки данных.) Ключевые термины Пользователь БД — программа или человек, обращающийся к БД на ЯМД. Запрос — процесс обращения пользователя к БД с целью ввода, получения или изменения информации в БД. Транзакция — последовательность операций модификации данных в БД. Логическая структура БД — определение БД на физически независимом уровне, ближе всего соответствует концептуальной модели БД. Топология БД = Структура распределенной БД - схема распределения физической БД по сети. Локальная автономность — означает, что информация локальной БД принадлежит локальному владельцу и им управляются. Удаленный запрос — запрос, который выполняется с использованием модемной связи. Возможность реализации удаленной транзакции - обработка одной транзакции, состоящей из множества SQL-запросов на одном удаленном узле. Поддержка распределенной транзакции допускает обработку транзакции, состоящей из нескольких запросов SQL, которые выполняются на нескольких узлах сети (удаленных или локальных), но каждый запрос в этом случае обрабатывается только на одном узле, то есть запросы не являются распределенными. Распределенный запрос — запрос, при обработке которого используются данные из БД, расположенные в разных узлах сети. Модель с использованием файл-сервер Функции работы с базами данных: • функции ввода и отображения данных (Presentation Logic) • прикладные функции, определяющие основные алгоритмы решения задач приложения (Business Logic) • функции обработки данных (Database manipulation Logic) • функции управления информационными ресурсами (Database Manager System) В зависимости от распределения указанных выше функций между двумя процессами, которые выполняются на двух платформах - на клиенте и на сервере – выделяют следующие модели: • Модель файлового сервера, • Модель удаленного доступа к данным, • Модель сервера баз данных, • Модель сервера приложений. Файл-серверные приложения — приложения, схожие по своей структуре с локальными приложениями и использующие сетевой ресурс для хранения данных. Функции сервера: хранения данных и кода программы. Функции клиента: обработка данных происходит исключительно на стороне клиента. Количество клиентов ограничено десятками. Плюсы: - низкая стоимость разработки; - высокая скорость разработки; - невысокая стоимость обновления и изменения ПО Недостатки архитектуры: - высокая загрузка сети и машин-клиентов - низкий уровень защиты данных - бизнес-правила могут быть противоречивыми Модель удаленного доступа В модели удаленного доступа (Remote Data Access, RDA) база данных хранится на сервере. На сервере же находится ядро СУБД. На клиенте располагается презентационная логика и бизнес-логика приложения. Клиент обращается к серверу с запросами на языке SQL. Преимущества: - разгрузка сервера БД; - сервер БД освобождается от несвойственных ему функций; - процессор или процессоры сервера целиком загружаются операциями обработки; - резко уменьшается загрузка сети. Основное достоинство RDA-модели — унификация интерфейса "клиент-сервер", стандартом при общении приложения-клиента и сервера становится язык SQL. Недостатки: - запросы на языке SQL при интенсивной работе клиентских приложений могут существенно загрузить сеть; - излишнее дублирование кода приложений; - сервер играет пассивную роль; Модель сервера баз данных Преимущества: • Бизнес-логика разделена между клиентом и сервером; • Бизнес-логика реализована в виде хранимых процедур; • Трафик обмена информацией между клиентом и сервером резко уменьшается; • Сервер является активным; • Хранимые процедуры, и триггеры хранятся в словаре БД; • Для написания хранимых процедур и триггеров используется расширение стандартного языка SQL, так называемый встроенный SQL; • Централизованный контроль выполняется с использованием механизма триггеров. Недостатки: очень большая загрузка сервера. Функции сервера: • мониторинг событий, связанных с описанными триггерами; • автоматическое срабатывание триггеров • исполнение внутренней программы каждого триггера; • запускает хранимые процедуры по запросам пользователей; • запускает хранимые процедуры из триггеров; • возвращает требуемые данные клиенту; • обеспечивает все функции СУБД. Модель сервера приложений Является расширением двухуровневой модели и в ней вводится дополнительный промежуточный уровень между клиентом и сервером. Компоненты приложения делятся между тремя исполнителями: 1. Клиент обеспечивает логику представления, 2. исполняет коммуникационные функции front-end части приложения, 3. может запускать локальный код приложения клиента. Дополнительно: Управление распределенными транзакциями. Серверы приложений составляют новый промежуточный уровень архитектуры. Они спроектированы как исполнения общих незагружаемых функций для клиентов. Серверы баз данных в этой модели занимаются исключительно функциями СУБД, возлагаются функции создания резервных копий БД и восстановления БД. Модели серверов баз данных Модель "один-к-одному" на архитектуре "систем с выделенным сервером" - способен обрабатывать запросы от многих клиентов. Сервер единственный обладает монополией на управление данными и взаимодействует одновременно со многими клиентами. Архитектура получила название многопотоковой односерверной ("multi-threaded"). Преимущества: • Позволяет значительно уменьшить нагрузку на операционную систему, возникающую при работе большого числа пользователей. • Позволяет в полной мере использовать разделяемые объекты - значительно уменьшает потребности в памяти и общее число процессов операционной системы. Недостатки: естественное ограничение на применение СУБД для мультипроцессорных платформ. Введение промежуточного диспетчера - архитектура виртуального сервера ("virtual server"). Клиенты подключаются не к реальному серверу, а к промежуточному звену, называемому диспетчером, который выполняет только функции диспетчеризации запросов к актуальным серверам - нет ограничений на использование многопроцессорных платформ. (-) В систему добавляется новый слой, что увеличивает трату ресурсов на поддержку баланса загрузки актуальных серверов ("load balancing") и ограничивает возможности управления взаимодействием "клиент—сервер". • невозможным направить запрос от конкретного клиента конкретному серверу, • серверы становятся равноправными. Типы параллелизма Горизонтальный параллелизм - хранимая в БД информация распределяется по нескольким физическим устройствам хранения — нескольким дискам. Информация из одного отношения разбивается на части по горизонтали. Вертикальный параллелизм - достигается конвейерным выполнением операций, составляющих запрос пользователя. Гибридный параллелизм Модели клиент-сервер В основе: взаимодействие начинает клиент, сервер лишь отвечает клиенту и сообщает о том может ли он предоставить услугу клиенту и если может, то на каких условиях. Цель: разделить нагрузку между участниками процесса обмена информацией, разделить программный код поставщика и заказчика. «Тонкий» клиент Плюсы: • меньше обслуживания аппаратного оборудования и программного обеспечения пользователей; • снижение риска неисправностей; • меньше требования к аппаратному оборудованию по сравнению с толстыми клиентами. Недостатки: • общая точка отказа; • невозможность работать без подключения к сети; • при большом объеме работы может сильно снизить производительность центрального сервера. «Толстый» клиент Плюсы: • широкая функциональность; • многопользовательский режим; • работа в режиме оффлайн; • высокое быстродействие; • минимизация зависимости от дорогих и сложных серверов. Недостатки: • каждая рабочая машина нуждается в постоянном обслуживании; • индивидуальное обновление аппаратного обеспечения каждого клиента до уровня приложений, которые будут использоваться; • возможность возникновения проблем с удаленным доступом к данным; • большие размеры дистрибутивов; • зависимость от платформы, для которой клиент был разработан. Особенности доступа с использованием Web – интерфейса. Включает несколько других серверов, реализующих необходимые протоколы. Протоколы: • HTTP (Hypertext Transfer Protocol) – протокол передачи гипертекста • FTP (File Transfer Protocol) – протокол передачи файлов • NNTP (Network News Transfer Protocol) – сетевой протокол передачи новостей • SMTP (Simple Mail Transfer Protocol) – простой протокол передачи почты. Механизм доступа к БД на стороне сервера реализуется за счет наличия стандартизованных средств: • Поддержки диалоговых форм на уровне гипертекстового документа (язык HTML – Hypertext markup Language). • Возможности запуска серверных программ, взаимодействие которых происходит через стандартный интерфейс CGI или прикладные интерфейсы Web-сервера. Имеется HTTP-сервер. HTTP-клиент/серверное взаимодействие состоит из одного обмена запрос/ответ. Data Mining. Интеллектуальный анализ данных Добыча данных - Data Mining Data Mining – это процесс обнаружения "машиной" в сырых данных ранее неизвестных знаний: • 3нания должны быть новые, ранее неизвестные. • Знания должны быть нетривиальны. • Знания должны быть практически полезны. • Знания должны быть доступны для понимания человеку. Это технология предназначена для поиска в больших объемах данных неочевидных, объективных й полезных на практике закономерностей. Причины и факторы возникновения • совершенствование аппаратного и программного обеспечения; • совершенствование технологий хранения й записи данных; • накопление большого количества ретроспективных данных; • совершенствование алгоритмов обработки информации. Задачи Data Mining • Классификация • Кластеризация • Прогнозирование • Ассоциация • Визуализация анализ и обнаружение отклонений • Оценивание • Анализ связей • Подведение итогов Задача классификации - определение класса объекта по его характеристикам; Задача регрессии - определить по известным характеристикам объекта значение некоторого параметра. Задача поиска ассоциативных правил - нахождение частых зависимостей (или ассоциаций) Задача кластеризации - поиск независимых групп (кластеров) и их характеристик Описательные и предсказательные задачи Описательные (descriptive) задачи уделяют внимание улучшению понимания анализируемых данных. Решение предсказательных (predictive) задач: 1. на основании набора данных с известными результатами строится модель 2. она используется для предсказания результатов на основании новых наборов данных Supervised и unsupervised learnig В случае supervised learning задача анализа данных решается в несколько этапов: 1. строится модель анализируемых данных - классификатор. 2. классификатор подвергается обучению. Unsupervised learning объединяет задачи, выявляющие описательные модели. Задача классификации и регрессии На основании обучающей выборки строится модель определения значения зависимой переменной (функция классификации или регрессии). требования: • количество объектов, входящих в выборку, должно быть достаточно большим. • в выборку должны входить объекты, представляющие все возможные классы (при классификации) или всю область значений (при регрессии); • для каждого класса или для каждого интервала выборка должна содержать достаточное количество объектов. Задача поиска ассоциативных правил Суть задачи определении часто встречающихся наборов объектов. Сиквенциальный анализ учитывает последовательность происходящих событий. Задача кластеризации Разделение исследуемого множества объектов на группы "похожих" объектов, называемых кластерами (cluster). Модели Data Mining Предсказательные модели • Модели классификаций • модели последовательностей Описательные модели • регрессионные модели • модели кластеров • модели исключений • итоговые модели • ассоциативные модели Предсказательные модели Модели классификации описывают набор правил, в соответствии с которыми можно отнести описание любого нового объекта к одному из классов. Модели последовательностей описывают функций, позволяющие прогнозировать изменение непрерывных числовых параметров. Описательные модели Реrрессионные модели описывают функциональные зависимости между зависимыми й независимыми показателями и переменными в понятной человеку форме. Модели кластеров описывают группы (кластеры), на которые можно разделить объекты, данные о которых подвергаются анализу. Модели исключений описывают исключительные ситуации в записях, которые резко отличаются чем-либо от основного множества записей Итоговые модели - выявление ограничений на данные анализируемого массива. Ассоциативные модели - выявление закономерностей между связанными событиями. Методы Data Mining. Статические • Дескриптивный анализ й описание исходных данных. • Анализ связей • Многомерный статистический анализ • Анализ временных рядов Методы Data Mining. Динамические Искусственные нейронные сети; Эволюционное программирование; Генетические алгоритмы (оптимизация); Ассоциативная память; Нечеткая логика; Деревья решений; Системы обработки экспертных знаний. Нечеткая логика Неопределенность по объему отсутствующей информации: 1. Неизвестность. 2. Неполнота. 3. Недостоверность (физическая и лингвистическая). Неопределенность Два вида физической неопределённости: 1. Неточность. 2. Случайность. Два вида лингвистической неопределённости: 1. Неопределенность значений слов (многозначность, расплывчатость, неясность, нечеткость). 2. Неоднозначность смысла фраз (выделяют синтаксическую и семантическую). Для работы с лингвистической неопределённости используют нечеткую логику (теория нечетких множеств - автор Лотки Заде). Основные особенности нечеткой логики: 1. Правила принятия решений являются условными высказываниями и реализуются с помощью механизма логического вывода. 2. Нечеткая логика оперирует со множеством частных правил. 3. Правила позволяют решать задачи классификаций в режиме диалога с оператором - повышение качества классификатора. Генетические алгоритмы Генетический алгоритм (англ. genetic algorithm) — это эвристический алгоритм поиска, используемый для решения задач оптимизаций й моделирования путём случайного подбора. Нейронные сети Искусственные нейронные сети (ИНС) — математические модели, а также их программные или аппаратные реализации, построенные по принципу организаций и функционирования биологических нейронных сетей. ИНС представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Подготовка исходных данных • выработать чёткий набор числовых или нечисловых параметров, характеризующих задачу, • представить данные в виде таблицы, • очистить данные по столбцам, • очистить данные по строкам. Средства Data Mining • входящие в системы управления базами данных; • библиотеки алгоритмов Data Mining с сопутствующей инфраструктурой; • коробочные или настольные решения ("черные ящики"). Визуализация инструментов • Для деревьев решений- визуализатор дерева решений, список правил, таблица сопряжённости. • Для нейронных сетей- в зависимости от инструмента - топология сети, график изменения величины ошибки. • Для карт Кохонена: карты входов, выходов, другие специфические карты. • Для линейной регрессии - линия регрессии. • Для кластеризации: дендрограммы, диаграммы рассеивания. Проблемы и вопросы Data Mining не может заменить аналитика! Сложность разработки и эксплуатации приложения Data Mining. Основные аспекты: • Квалификация пользователя • Сложность подготовки данных • Большой процент ложных, недостоверных или бессмысленных результатов • Высокая стоимость • Наличие достаточного количества репрезентативных данных |