Проделанная работа
Создание виртуальных машин, установка ОС Linux, создание стенда из 3х виртуальных машин 2 server, 1 client.
Установка MySQL, PostgreSQL на виртуальные машины и их настройка.
Изученный материал
Во время прохождения практики я пользовался ОC Linux. Пользовался такими программами как Virtual Box, работал с СУБД MySQL, PostgreSQL.
Linux
Linux — общее название Unix-подобных операционных систем, основанных на одноимённом ядре. Ядро Linux создаётся и распространяется в соответствии с моделью разработки свободного и открытого программного обеспечения. Поэтому общее название не подразумевает какой-либо единой «официальной» комплектации Linux; они распространяются в основном бесплатно в виде различных готовых дистрибутивов, имеющих свой набор прикладных программ и уже настроенных под конкретные нужды пользователя. На начальном этапе Linux бесплатно разрабатывался только энтузиастами-добровольцами, но с успехом Linux и его массовым коммерческим использованием дорабатывать ОС и вносить свой вклад стали и компании, со временем став значительной силой. Подавляющее большинство ПО в современных дистрибутивах по-прежнему доступно по свободным лицензиям, как правило, за исключением небольшого количества проприетарных компонентов. В 2008 году расчёты показывали, что для того, чтобы «с нуля» разработать систему, аналогичную Fedora 9, потребовалось бы затратить 10,8 млрд долл. В настоящее время системы Linux лидируют на рынках смартфонов (Android занимает 64,1 % рынка), интернет-серверов (60 %), самых мощных суперкомпьютеров (97 %), а также, согласно Linux Foundation, в дата-центрах и на предприятиях, занимают половину рынка встраиваемых систем, имеют значительную долю рынка нетбуков (32 % на 2009 год). На рынке домашних компьютеров Linux прочно занимает 3 место (по разным данным, от 1 до 5 %). Согласно исследованию Goldman Sachs, в целом, рыночная доля Linux среди электронных устройств составляет около 42 %. С тех пор, как ядро Linux было создано для x86-ПК, оно было портировано на множество платформ, включая x86-64, PowerPC и ARM. Linux работает в роутерах, телевизорах и игровых приставках. ОС на ядре продолжают быстро совершенствоваться (например, новая версия ядра выпускается каждые 2-3 месяца, с 2005 года в разработке ядра принимают участие более 7800 разработчиков из более чем 800 различных компаний) и набирает популярность (за 9 месяцев с мая 2011 по январь 2012 доля Linux выросла на 64 %). Наиболее популярными дистрибутивами являются (расположены в алфавитном порядке названия их пакетных форматов): deb-based (Debian, Mint, Ubuntu), pacman-based (Arch Linux, Chakra, Manjaro), RPM-based (RedHat, Fedora, Mageia, OpenSUSE), source-based (Slackware, Gentoo)
VirtualBox
VirtualBox (Oracle VM VirtualBox) — программный продукт виртуализации для операционных систем Microsoft Windows, Linux, FreeBSD, Mac OS X, Solaris/OpenSolaris, ReactOS, DOS и других.
Ключевые возможности
Кроссплатформенность
Модульность
Поддержка USB 2.0, когда устройства хост-машины становятся доступными для гостевых операционных систем (только в проприетарной версии)
Поддержка 64-битных гостевых систем (начиная с версии 2.0), даже на 32-битных хост-системах.
Поддержка SMP на стороне гостевой системы (начиная с версии 3.0, для этого обязательна поддержка технологии виртуализации процессором)
Встроенный RDP-сервер, а также поддержка клиентских USB-устройств поверх протокола RDP (только в проприетарной версии)
Экспериментальная поддержка аппаратного 3D-ускорения (OpenGL, DirectX 8/9 (с использованием кода wine) (только в 32-битных Windows XP, Vista, 7 и 8), для гостевых DOS / Windows 3.x / 95 / 98 / ME поддержка аппаратного 3D-ускорения не предусмотрена)
Поддержка образов жёстких дисков VMDK (VMware) и VHD (Microsoft Virtual PC), включая snapshots (начиная с версии 2.1)
Поддержка iSCSI (только в проприетарной версии)
Поддержка виртуализации аудиоустройств (эмуляция AC97 или SoundBlaster 16 или Intel HD Audio на выбор)
Поддержка различных видов сетевого взаимодействия (NAT, Host Networking via Bridged, Internal)
Поддержка цепочки сохраненных состояний виртуальной машины (snapshots), к которым может быть произведён откат из любого состояния гостевой системы
Поддержка Shared Folders для простого обмена файлами между хостовой и гостевой системами (для гостевых систем Windows 2000 и новее, Linux и Solaris).
Поддержка интеграции рабочих столов (seamless mode) хостовой и гостевой операционной системой
Поддержка формата OVF/OVA
СУБД MySQL
MySQL — это система управления базами данных.
База данных представляет собой структурированный набор данных. Она может содержать различную информацию - от простого списка покупок до огромного объема данных, используемого в корпоративной сети.
MySQL - это система управления реляционными базами данных.
Реляционная база данных хранит информацию в отдельных таблицах, а не в одном большом хранилище, благодаря чему достигается высокая производительность и гибкость. Часть "SQL" слова "MySQL" обозначает "Structured Query Language" ("Язык структурированных запросов").
SQL - наиболее общий стандартизованный язык доступа к базам данных; он соответствует стандарту ANSI/ISO SQL. Стандарт SQL впервые был принят в 1986 году и на настоящее время существует несколько его версий. В настоящем руководстве "SQL-92" ссылается на стандарт, принятый в 1992 году, "SQL:1999" - на стандарт, принятый в 1999 году, и "SQL:2003" - на текущую версию стандарта. В дальнейшем под "стандартом SQL" имеется в виду текущая версия данного стандарта.
MySQL - это система с открытым исходным кодом.
Открытость исходного кода означает, что любой желающий имеет возможность использовать и модифицировать это программное обеспечение по своему усмотрению. Получить и развернуть программное обеспечение MySQL можно из Internet, причем совершенно бесплатно. Каждый пользователь, при желании, может изучить исходные тексты и изменить их в соответствии со своими потребностями. Программное обеспечение MySQL распространяется по лицензии GPL (GNU General Public License), которая регламентирует, что разрешено, а что нет в отношении программного обеспечения. Если по тем или иным причинам лицензия GPL не устраивает либо код MySQL требуется встраивать в коммерческие приложения, следует приобрести коммерческую лицензированную версию у компании MySQL AB.
Сервер баз данных MySQL - очень быстрый, надежный и простой в эксплуатации сервер.
Если это как раз то, что вы ищете, стоит с ним поработать. Сервер MySQL включает в себя практичный набор средств, разработанных в тесной кооперации с сообществом пользователей. Изначально сервер MySQL был разработан для более быстрого управления большими базами данных, чем существующие решения в этой области, и на протяжении ряда лет успешно эксплуатировался в средах, к которым предъявлялись весьма высокие требования. Несмотря на то что MySQL пребывает в непрекращающемся процессе разработки, на сегодняшний день он предоставляет богатый набор удобных в эксплуатации средств и функций. Присущие серверу MySQL возможности сетевого взаимодействия, производительность и безопасность делают его удачным вариантом для работы с базами данных в Internet.
Сервер MySQL работает в клиент-серверных и встроенных системах.
СУБД MySQL является клиент-серверной системой, включающей многопоточный SQL-сервер, поддерживающий различные платформы, несколько клиентских программ и библиотек, инструменты администрирования и широкий диапазон программных интерфейсов приложений (API-интерфейсов).
Сервер MySQL существует также и в форме встраиваемое многопоточной библиотеки, которую можно связывать с разрабатываемыми приложениями, чтобы получить более компактные, быстрые и легкоуправляемые продукты.
СУБД PostgreSQL
PostgreSQL это мощная объектно-реляционная система управления базами данных с открытыми исходными текстами. Она разрабатывается на протяжении более 15 лет и улучшает архитектуру, чем завоевала репутацию надежной, ингерированной и масштабируемой СУБД. Она запускается на всех основных платформах, включая Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), и Windows. Она полностью соответствует ACID, имеет полную поддержку ключей, объединений, представлений, триггеров, и хранимых процедур (на разных языках). Она включает большинство типов данных SQL92 и SQL99, включая INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, и TIMESTAMP. Она также поддерживает хранение больших двоичных объектов (BLOB's), включая картинки, звук, или видео. Она имеет API для C/C++, Java, Perl, Python, Ruby, Tcl, ODBC, и многие другие.
Являясь СУБД класса предприятия, PostgreSQL предоставляет такие особенности как Multi-Version Concurrency Control (MVCC), восстановление по точке во времени, табличное пространство, асинхронная репликация, вложенные транзакции (точки сохранения), горячее резервирование, планировщик/оптимизатор запросов, и упреждающее журналирование на случай поломки. Он поддерживает международные кодировки, в том числе и многобайтовые, при использование различных кодировок можно использовать сортировку и полнотекстовый поиск, различать регистр. Большое количество подконтрольных данных и большое число одновременно работающих пользователей, тем не менее, не сильно влияет на масштабируемость системы. Есть действующие PostgreSQL системы, которые управляют более чем 4 терабайтами данных.
Особенности и Соответствие стандартам
Команда разработчиков PostgreSQL ориентируется на соответствие стандартам. Его реализация SQL полностью соответствует ANSI-SQL 92/99 стандартам. Он имеет полную поддержку вложенных запросов (включая выбор из FROM), уровень чтения только зафиксированных данных и сериализуемые транзакции. И так как PostgreSQL имеет полностью реляционный системный каталог, поддерживающий множество схем баз данных, его каталог также доступен посредством информационной схемы в соответствии со стандартом SQL.
Средства обеспечения целостности данных включают составные первичные ключи, внешние ключи с поддержкой запрета и каскадирования изменений/удалений, проверку ограничений (constraints), ограничения уникальности и ограничения на непустые значения.
PostgreSQL также включает набор расширений и улучшений. Среди удобств присутствуют автоинкрементные поля на основе последовательностей, и конструкции LIMIT/OFFSET, позволяющие возвращать результирующий набор только частично. PostgreSQL поддерживает составные, уникальные и функциональные индексы, для построения (хранения) которых могут использоваться методы B-дерева, R-дерева, перемешивания, или GiST.
Индексирование GiST (Generalized Search Tree) представляет собой систему, объединяющую большой набор различных алгоритмов сортировки и поиска, включая B-деревья, B+-деревья, R-деревья, деревья частичных сумм, ранжированные B+-деревья, и другие. Она также обеспечивает интерфейс, обеспечивающий как создание пользовательских типов данных, так и расширенные методы запросов, позволяющие выполнять поиск по ним. Т.е. GiST дает возможность определить, что вы храните, как вы это храните, и каким образом вы будете выполнять поиск. Эти возможности существенно превышают средства, даваемые стандартными алгоритмами типа B-дерева или R-дерева.
GiST служит основанием для многих открытых проектов, которые используют PostgreSQL, таких как OpenFTS и PostGIS. OpenFTS (Open Source Full Text Search engine) обеспечивает онлайновое индексирование данных и ранжирование по важности в поиске по базе данных. PostGIS это проект, добавляющий к PostgreSQL поддержку географических объектов, и позволяющий использовать его в географических информационных системах (GIS), аналогичных ESRI SDE или Oracle's Spatial extension.
Другие улучшения включают в себя табличное наследование, систему правил, и события базы данных. Табличное наследование придает созданию таблиц объектно-ориентированный уклон, позволяющий при создании базы данных наследовать новые таблицы от старых, рассматривая из как базовые классы. Более того, PostgeSQL поддерживает как одиночное, так и множественное наследование.
Система правил, также называемая системой перезаписи запросов, позволяет при разработке базы данных создавать правила, которые задают определенные операции над заданными таблицами или представлениями, и динамически преобразовывать их в другие операции в процессе выполнения.
События базы данных - это система взаимодействия между процессами, в которой сообщения и события могут передаваться между клиентами посредством использования команд LISTEN и NOTIFY. Это позволяет строить как простые схемы взаимодействия типа "точка-точка", так и более сложные схемы обработки событий. Извещения могут быть инициированы триггерами или хранимыми процедурами, и клиенты PostgreSQL могут отслеживать события базы данных, такие как изменения, удаления и внесения данных в таблицы, по мере их наступления.
Высокая гибкость
PostgreSQL может выполнять хранимые процедуры, написанные на различных языках программирования, включая Java, Perl, Python, Ruby, Tcl, C/C++, и собственном PL/pgSQL, аналогичном Oracle's PL/SQL. В стандартную библиотеку функций включены сотни встроенных функций - от базовых математических и строковых операций до криптографических функций и функций, обеспечивающих совместимость с Oracle. Триггеры и хранимые процедуры могут быть написаны на Cи и загружены в базу данных в качестве библиотеки, позволяя тем самым расширять ее возможности. Также PostgreSQL включает средства разработки, позволяющие создавать пользовательские типы данных вместе с функциями и операторами, описывающими их поведение. Как результат, созданы и могут быть добавлены к системе различные типы данных - от геометрических и пространственных примитивов до типов данных, определенных в ISBN/ISSN (International Standard Book Number/International Standard Serial Number).
Наряду со множеством языков, которые могут использоваться для написания хранимых процедур, существует и множество интерфейсных библиотек, позволяющих как интерпретируемым, так и компилируемым языкам взаимодействовать с PostgreSQL. Это интерфейсы для Java (JDBC), ODBC, Perl, Python, Ruby, C, C++, PHP, Lisp, Scheme, Qt и др.
Кроме того, исходный код PostgreSQL доступен под наиболее либеральной из открытых лицензий - лицензией BSD. Эта лицензия дает вам право свободно использовать, модифицировать и распространять PostgreSQL в любой форме, которая вам нравится, с открытым или закрытым исходным кодом. Вы можете поступать со сделанными вами модификациями так, как вам будет угодно. Таким образом, PostgreSQL это не только мощная система управления базами данных, позволяющая обеспечить деятельность организации, но и платформа разработки для построения приложений, требующих использования реляционной СУБД.
