Какие существуют субд. Система управления базами данных (субд): классификация, определение и функции

04.03.2020 Photoshop

Тема: Современные системы управления базами данных

Куринов Сергей Борисович

Москва, 1997

1. Введение. 3

2. Краткая характеристика программного обеспечения, используемого при

создании СУБД. 4

3. Принципы организации данных, лежащие в основе современных СУБД. 6

4. Современные технологии, используемые в работе с данными. 8

5. Список литературы 11

Введение.

Современная жизнь немыслима без эффективного управления. Важной категорией

являются системы обработкиинформации, от которых во многом зависит эффективность

работы любого предприятия ли учреждения. Такая система должна:

обеспечивать получение общих и/или детализированных отчетов по итогам работы;

позволять легко определять тенденции изменения важнейших показателей;

обеспечивать получение информации, критической по времени, без существенных

задержек;

выполнять точный и полный анализ данных.

Современные СУБД в основном являются приложениями Windows, так как данная среда

позволяет более полно использовать возможностиперсональной ЭВМ, нежели среда

DOS. Снижение стоимости высокопроизводительных ПК обусловил не только

широкийпереход к среде Windows, где разработчик программного обеспечения может в

меньше степени заботиться ораспределении ресурсов, но также сделал программное

обеспечение ПК в целом и СУБД в частности менее критичными к аппаратным ресурсам

Среди наиболее ярких представителей систем управления базами данных можно

отметить: Lotus Approach, Microsoft Access, Borland dBase, Borland Paradox,

Microsoft Visual FoxPro, Microsoft Visual Basic, а также баз данных Microsoft

SQL Server и Oracle, используемые в приложениях,построенных по технологии

«клиент-сервер». Фактически, у любой современной СУБД существует аналог,

выпускаемый другой компанией, имеющий аналогичную областьприменения и

возможности, любое приложение способно работать со многими форматами

представления данных, осуществлять экспорт и импорт данных благодаряналичию

большого числа конвертеров. Общепринятыми, также, являются технологи,

позволяющие использовать возможности других приложений, например,

текстовыхпроцессоров, пакетов построения графиков и т.п., и встроенные версии

языков высокого уровня (чаще – диалекты SQL и/или VBA)и средства визуального

программирования интерфейсов разрабатываемых приложений. Поэтому уже не имеет

существенного значения на каком языке и на основе какогопакета написано

конкретное приложение, и какой формат данных в нем используется. Более того,

стандартом «де-факто» стала «быстрая разработка приложений» или RAD (от

английского Rapid Application Development), основанная нашироко декларируемом в

литературе «открытом подходе», то есть необходимость и возможность использования

различных прикладных программ и технологий дляразработки более гибких и мощных

систем обработки данных. Поэтому в одном ряду с «классическими» СУБД все чаще

упоминаются языки программирования Visual Basic 4.0 и Visual C++, которые

позволяют быстросоздавать необходимые компоненты приложений, критичные по

скорости работы, которые трудно, а иногда невозможно разработать средствами

«классических» СУБД.Современный подход к управлению базами данных подразумевает

также широкое использование технологии «клиент-сервер».

Таким образом, на сегодняшний день разработчик не связан рамками какого-либо

конкретного пакета, а взависимости от поставленной задачи может использовать

самые разные приложения. Поэтому, более важным представляется общее направление

развития СУБД и другихсредств разработки приложений в настоящее время.

Краткая характеристика программного обеспечения,

используемого при создании СУБД.

Рассмотрим более подробно программные продукты компании Microsoft, а именно

Visual FoxPro3.0, Visual Basic 4.0, Visual С++, Access 7.0, SQL Server 6.5.

Наиболее интересной чертой этих пакетов являются их большие возможности

интеграции,совместной работы и использования данных, так как данные пакеты

являются продуктами одного производителя, а также используют сходные технологии

обменаданными.

Visual FoxPro отличается высокой скоростью, имеет встроенный

объектно-ориентированный язык программирования сиспользованием xBase и SQL,

диалекты которых встроены во многие СУБД. Имеет высокий уровень объектной

модели. При использованиив вычислительных сетях обеспечивает как монопольный,

так и раздельный доступ пользователей к данным. Применяется для приложений

масштаба предприятия дляработы на различных платформах: Windows 3.x, Windows 95,

Macintosh... Минимальные ресурсы ПК: дляVisualFoxPro версии 3.0 – процессор

468DX, Windows 3.1, 95, NT, объем оперативной памяти8 (12) Мб, занимаемый объем

на ЖМД 15-80 Мб, а для Visual FoxPro версии 5.0 (выпущена в 1997 году) – Windows

95или NT, 486 с тактовой частотой 50 МГц, 10 Мб ОЗУ, от 15 до 240 Мб на ЖМД.

Access входит в состав самого популярного пакета Microsoft Office. Основные

преимущества: знаком многим конечным пользователям и обладает

высокойустойчивостью данных, прост в освоении, может использоваться

непрофессиональным программистом, позволяет готовить отчеты из баз данных

различных форматов.Предназначен для создания отчетов произвольной формы на

основании различных данных и разработки некоммерческих приложений. Минимальные

ресурсы ПК:процессор 468DX, Windows 3.1, 95, NT, объем оперативной памяти 12

(16) Мб, занимаемый объем на ЖМД 10-40 Мб.

Visual Basic – это универсальный объектно-ориентированный язык программирования,

диалекты которого встроены в Access, Visual FoxPro.

Преимущества:универсальность, возможность создания компонентов OLE, невысокие

требования к аппаратным ресурсам ЭВМ. Применяется для создания приложений

средней мощности, несвязанных с большой интенсивностью обработки данных,

разработки компонентов OLE, интеграция компонентов Microsoft Office. Минимальные

ресурсыПК: процессор 368DX, Windows 3.1, 95, NT, объем оперативной памяти 6 (16)

Мб, занимаемый объем на ЖМД 8-36 Мб.

Visual C++ – наиболее мощный объектно-ориентированный язык программирования,

обладает неограниченнойфункциональностью. Предназначен для создания компонентов

приложений для выполнения операций, критичных по скорости.

SQL Server – сервер баз данных, реализует подход «клиент-сервер» и

взаимодействует с указаннымипакетами. Главные достоинства: высоая степень защиты

данных, мощные средства для обработки данных, высокая производительность.

Область применения: хранениебольших объемов данных, хранение высокоценных данных

или данных, требующих соблюдения режима секретности. Минимальные ресурсы ПК:

процессор 468DX-33МГц, Windows NT, объем оперативной памяти16 (32) Мб,

занимаемый объем на ЖМД 80 Мб.

Указанные программные продукты имеют возможности визуального проектирования

интерфейса пользователя,то есть разработчик из готовых фрагментов создает

элементы интерфейса, программирует только их изменения в ответ на какие-либо

Принципы организации данных,

лежащие в основе современных СУБД.

Современные СУБД являются объектно-ориентированными и реляционными. Основной

единицей является объект,имеющий свойства, и связи между объектами. СУБД

используют несколько моделей данных: иерархическую и сетевую (с 60-х годов) и

реляционную (с 70-х). Основноеразличие данных моделей в представлении

взаимосвязей между объектами.

Иерархическая модель данных строится по принципу иерархии объектов, то есть один

тип объектаявляется главным, все нижележащие – подчиненными. Устанавливается

связь «один ко многим», то есть для некоторого главного типа существует

несколькоподчиненных типов объектов. Иначе, главный тип именуется исходным

типом, а подчиненные – порожденными. У подчиненных типов могут быть в свою

очередьподчиненные типы. Наивысший в иерархии узел (совокупность атрибутов)

называют корневым.

Сетевая модель данных строится по принципу «главный и подчиненный тип

одновременно», то есть любой тип данныходновременно может одновременно порождать

несколько подчиненных типов (быть владельцем набора) и быть подчиненным для

нескольких главных (быть членомнабора).

Реляционная модель данных объекты и связи между ними представляются в виде

таблиц, при этом связи тоже рассматриваютсякак объекты. Все строки, составляющие

таблицу в реляционной базе данных должны иметь первичный ключ. Все современные

средства СУБД поддерживаютреляционную модель данных.

Объект (Сущность) – элемент какой-либо системы, информация о котором

сохраняется. Объект может бытькак реальным (например, человек), так и

абстрактным (например, событие – поступление человека в стационар).

Атрибут – информационное отображение свойств объекта. Каждый объект

характеризуетсянабором атрибутов.

Таблица – упорядоченная структура, состоящая из конечного набора однотипных

Первичный ключ – атрибут (или группа атрибутов), позволяющий однозначным образом

определить каждуюстроку в таблице.

Напротив, альтернативный ключ – атрибут (или группа атрибутов), не совпадающая с

позволяющийпервичным ключом и однозначным образом определяющий каждую строку в

Современные технологии, используемые в работе с данными.

Технология «Клиент-сервер» – технология, разделяющая приложение- СУБД на две

части: клиентскую (интерактивныйграфический интерфейс, расположенный на

компьютере пользователя) и сервер, собственно осуществляющий управление данными,

разделение информации,администрирование и безопасность, находящийся на

выделенном компьютере. Взаимодействие «клиент-сервер» осуществляется следующим

образом: клиентскаячасть приложения формирует запрос к серверу баз данных, на

котором выполняются все команды, а результат исполнения запроса отправляется

Настольные СУБД используются для сравнительно небольших задач (небольшой объем обрабатываемых данных, малое количество пользователей). С учетом этого, указанные СУБД имеют относительно упрощенную архитектуру, в частности, функционируют в режиме файл-сервер, поддерживают не все возможные функции СУБД (например, не ведется журнал транзакций, отсутствует возможность автоматического восстановления базы данных после сбоев и т. п.). Тем не менее, такие системы имеют достаточно обширную область применения. Прежде всего, это государственные (муниципальные) учреждения, сфера образования, сфера обслуживания, малый и средний бизнес. Специфика возникающих там задач заключается в том, что объемы данных не являются катастрофически большими, частота обновлений не бывает слишком высокой, организация территориально обычно расположена в одном небольшом здании, количество пользователей колеблется от одного до 10–15 человек. В подобных условиях использование настольных СУБД для управления информационными системами является вполне оправданным, и они с успехом применяются.

Одними из первых СУБД были так называемые dBase-совместимые программные системы, разработанные разными фирмами. Первой широко распространенной системой такого рода была система dBase III – PLUS (фирма Achton-Tate). Развитый язык программирования, удобный интерфейс, доступный для массового пользователя, способствовали широкому распространению системы. В то же время работа системы в режиме интерпретации обусловливала низкую производительность на стадии выполнения. Это привело к появлению новых систем-компиляторов, близких к системе dBase III – PLUS: Clipper (фирма Nantucket Inc.), FoxPro (фирма Fox Software), FoxBase+ (фирма Fox Software), Visual FoxPro (фирма Microsoft). Одно время достаточно широко использовалась СУБД PARADOX (фирма Borland International).

В последние годы очень широкое распространение получила система управления базами данных Microsoft Access, которая входит в целый ряд версий пакета Microsoft Office(фирма Microsoft).

3.5.2. Серверные СУБД

Для крупных организаций ситуация принципиально меняется. Там использование файл-серверных технологий является неудовлетворительным по описанным выше причинам. Поэтому на передний край борьбы за автоматизацию выходят так называемые серверные СУБД.

Основными производителями таких систем обработки и хранения данных являются 3 корпорации: Oracle, Microsoft и IBM. Диаграмма соотношения объемов продаж соответствующих систем (источник: IDC Report, Май 2006) приводится на рис. 3.4 .


Рис. 3.4.

Наиболее распространенными клиент-серверными системами здесь соответственно являются системы Oracle (разработчик компания Oracle ), MS SQL Server (разработчик компания Microsoft), DB2 , Informix Dynamic Server (компания IBM).

Дадим краткую характеристику этим системам.

MS SQL Server

К настоящему времени разработано несколько версий систем: MS SQL Server-2000, MS SQL Server -2005, MS SQL Server-2008. Приведем информацию о системе MS SQL Server-2008 с сервера Microsoft (http://www.microsoft.com/rus/SQL/2008/default.mspx)

Microsoft SQL Server 2008 - это законченное предложение в области баз данных и анализа данных для быстрого создания масштабируемых решений электронной коммерции, бизнес-приложений и хранилищ данных. Оно позволяет значительно сократить время выхода этих решений на рынок, одновременно обеспечивая масштабируемость, отвечающую самым высоким требованиям. В SQL Server включена поддержка языка XML и протокола HTTP, средства повышения быстродействия и доступности, позволяющие распределить нагрузку и обеспечить бесперебойную работу, функции для улучшения управления и настройки, снижающие совокупную стоимость владения.

Платформа бизнес-анализа SQL Server 2008, тесно интегрированная с Microsoft Office, предоставляет развитую масштабируемую инфраструктуру для внедрения мощных возможностей бизнес-анализа в рабочий процесс всех бизнес-подразделений вашей компании, открывая доступ к нужной бизнес-информации через знакомый интерфейс MS Excel и MS Word.

MS SQL Server-2008 поддерживает создание и работу с корпоративным хранилищем данных, объединяющим информацию со всех систем и приложений, позволяющим получить единую комплексную картину бизнеса вашей компании.

MS SQL Server-2008 предоставляет масштабируемый и высокопроизводительный "процессор данных" - для самых ответственных и требовательных бизнес-приложений, тем, кому необходим высочайший уровень надежности и защиты, позволяя при этом снизить совокупную стоимость владения за счет расширенных возможностей по управлению серверной инфраструктурой.

MS SQL Server-2008 предлагает разработчикам развитую, удобную и функциональную среду программирования, включая средства работы с веб службами, инновационные технологии доступа к данным – все, что необходимо для эффективной работы с данными любых типов и форматов.

Отдельные аспекты MS SQL Server – 2008 будут описаны в лекциях "Структура современной СУБД на примере Microsoft SQL Server 2008" и "Направления развития баз данных" 14.

Oracle

К настоящему времени разработано несколько версий систем, каждая из которых включает целую линейку продуктов, например Oracle 8, Oracle 9i, Oracle 10g.

Соответствующие линейки продуктов включают как собственно СУБД (например Oracle Database 10g, Oracle Database 11g) , так и средства разработки и анализа данных.

Приведем информацию о системе с сервера Oracle http://www.oracle.com/global/ru/mid/oracle_products/database.html).

Oracle предлагает комплексные, открытые, доступные и удобные в использовании технологические решения. Готовые пакетируемые решения автоматически включают в свою стоимость базу данных, сервер приложений, интеграционную платформу, инструменты аналитики и управления неструктурированными данными. Масштабируемые бизнес-приложения Oracle могут быть легко интегрированы с ИТ-инфраструктурой предприятия без потери уже вложенных в IT инвестиций.

СУБД Oracle Database 11g обеспечивает улучшенные характеристики за счет автоматизации задач администрирования и обеспечения лучших в отрасли возможностей по безопасности и соответствию нормативно-правовым актам в области защиты информации. Появилось больше функций автоматизации, самодиагностики и управления. Среди характеристик системы можно отметить управление большими объемами данных с использованием распределенных таблиц и компрессии, эффективную защиту данных, возможность полного восстановления, возможность интеграции геофизических данных медиа-контента в бизнес-процеcc и т.д.

Серверы баз данных компании IBM

К настоящему времени разработаны линейки продуктов DB2 и Informix , включающие как собственно СУБД так и средства разработки и анализа данных (DB2 Universal Database DB2 Personal Edition, DB2 Enterprise 9 и др., а также Informix Dynamic Server, Informix Dynamic Server Express, Informix Extended Parallel Server и др.

Приведем информацию о части таких систем с сервера (

Microsoft Access – это интерактивная реляционная СУБД (relational database management system – RDBMS) для WINDOWS. Это программа, которую вы можете использовать для хранения и извлечения данных в зависимости от отношений, которые вы установили. Работа с ней упрощена посредством манипулятора мыши. Графические возможности оболочки производят большое впечатление при изготовлении высококачественных отчетов и распечаток. Все это благодаря поддержки True-type шрифтов и встраивания OLE-объектов (Object Linking and Embeding) в рамках среды WINDOWS. OLE – объект представляет собой ссылку на определенную информацию, которая остается в своей первоначальной форме. OLE-объектом может быть EXCEL –таблица, Paintbrush – иллюстрация или Sound –файл.

Новинкой программы Access является Cue Cards – Система суфлирования. Это обучающая система, предоставляющая пользователю рекомендации по выходу из реальных ситуаций при решении прикладных задач. При знании английского языка пользователь всегда сможет получить подсказку о том, что следует делать далее.

Access также предоставляет в распоряжение пользователя механизмы работы с базами данных различных форматов. К примеру, можно прямо обращаться к базам данных dBASE, Paradox или Btrieve без конвертирования их в формат, используемый Access. В состав пакета Access также входит язык Access Basic (встроенный диалект языка Visual Basic), дающий возможность формирования специализированных систем управления базами данных.

Теперь перейдем к более подробному рассмотрению системы Access. Основными понятиями или объектами этой системы являются: таблицы, запросы, формуляры, отчеты, макросы и модули. И, конечно же, главным понятием будет база данных (database).

Для создания базы данных необходимо выполнить следующие шаги:

Активизируйте окно Microsoft Access и выберите в меню File директиву New Database (или щелкните кнопкой New Database в строке пиктограмм). Microsoft Access высвечивает диалоговое окно New Database и автоматически дает имя вашей базе данных, которое вы можете заменить.

В строке File Name, напечатайте ваш вариант имени базы данных. Оно может содержать до 8 символов без пробелов. Microsoft Access автоматически добавляет расширение. MDB к имени вашей базы данных, если Вы этого не сделали.

Если вы хотите хранить базу данных в определенном месте, выберите соответствующую директорию в списке директорий Directories list.

Нажмите на кнопку OK.

Microsoft Access создает пустой файл базы данных и открывает окно базы данных Database window.

Базу данных можно наполнить объектами различного рода и выполнять операции с ними. Но с базой данных можно выполнять операции как с неделимым образованием. Все операции такого рода – операции управления базой данных – сосредоточены в меню File прикладного окна Access или в окне базы данных.

При открытии базы данных можно ограничить возможные операции с базой данных только чтением и ограничить круг пользователей, имеющих доступ к базе данных только собственной персоной. Если необходимо только просмотреть базу данных и содержащиеся в ней объекты, но не изменять их, то при открытии базы данных необходимо активизировать контрольный индикатор Read Only. Если необходимо предотвратить изменения данных и объектов данной базы данных со стороны других пользователей, то при открытии базы данных необходимо установить опцию Exlusive.

Если пользователь закончил работу с базой данных, то ее следует закрыть при помощи директивы Close Database в меню File, с помощью двойного щелчка мышью на кнопке вызова управляющего меню окна базы данных или нажатием клавиш (Ctrl + F4).

Таблицы.

Следующим шагом в построении базы данных будет ее заполнение, т. е. создание объектов и присвоение последним необходимых свойств. Какого бы типа ни были ваши данные, вам придется хранить их в одной или нескольких таблицах.

Таблицы являются основной формой представления информации, содержащейся в базе данных. Без таблицы нельзя спроектировать формуляр, на базе таблиц составляются запросы и отчеты.

Каждому полю, включаемому в запись, приписывается тип данных, определяющий вид информации, которая будет храниться в данном поле. Тип данных вносится в колонку Data Type, причем его можно выбрать из списка доступных типов.

В готовую спецификацию можно вносить изменения. Но при этом следует постараться внести все исправления в спецификацию до начала заполнения базы данных, т. к. попытка изменить параметры полей, заполненной базы может повлечь за собой потерю или искажение данных.

В Access-таблицы можно встроить объекты из других поддерживающих интерфейс OLE прикладных программ и связать эти объекты с их родительскими программами.

При встраивании объекта Access сохраняет объект в таблице. Двойным щелчком мышью на объекте запускается прикладная программа, с помощью которой он был изготовлен – в ней можно произвести изменения в объекте. После завершения работы с родительской программой объект в измененной форме будет сохранен в таблице.

Таблицы, находящиеся в базе данных, созданной другой программой, можно импортировать в Access, также можно и экспортировать Access-таблицы, сохраняя их в форматах, понятных другим прикладным программам управления базами данных. Но прежде чем непосредственно приступить к импорту или экспорту, необходимо совершить соответствующие установки импорта или экспорта.

Запросы.

Запросы служат для селекции и фильтрации набора данных. Они позволяют выбрать из базы только необходимую информацию, т. е. ту, которая соответствует определенному критерию(условию) и нужна для решения конкретной задачи. Например, вам может понадобиться информация о поставщиках и поставляемых ими товарах. Вы можете создать запрос типа "Какие товары поставляют московские поставщики" или "Кто из петербургских поставщиков сигарет продал за последний квартал наибольшую партию". Результат обработки программой Access такого запроса представляет собой таблицу называемую Dynaset. В эту таблицу включены выбранные из основной таблицы(или нескольких таблиц) блоки данных, которые удовлетворяют критериям запроса. Dynaset – динамический, временный набор данных, поэтому при каждом выполнении запроса он строится вновь на основе "свежих" табличных данных.

Выделяют два типа запросов:

QBE-запросы (Query by Example –Запрос по образцу). Пользователь дает им определения, специфицируя отдельные параметры в окне проектирования с использованием подсказок(образцов).

SQL - запросы (Structured Query Language – Структурированный язык запросов). Пользователь формулирует их с использованием инструкций и функций, выстраивая описание. QBE-запрос Access легко транслирует в соответствующий SQL-запрос. Обратная операция тоже не составляет труда. Вообще для Access безразлично, с каким типом запроса работает пользователь.

Запросы можно создавать с помощью Конструктора запросов, а также без помощи Конструктора запросов. Однако первый способ ускоряет проектирование нескольких специальных типов запросов.

Критерии отбора – это инструкции, посредством которых пользователь сообщает Access, какие блоки данных должны отбираться по запросу и индицироваться в Dynaset. Критерии могут задаваться для одного или нескольких полей запроса.

Пользователь может воспользоваться запросом для проведения вычислений с блоками данных. Он может задать в каждом поле некоторую функцию, обрабатывающую содержимое этого поля. Результат обработки выдается в Dynaset. Функция обработки задается в строке Total, которая появляется после нажатия в пиктографическом меню кнопки с греческой литерой "сигма". Саму функцию можно выбрать в этой строке, развернув список возможных значений.

После того как запрос спроектирован, его можно выполнить, щелкнув мышью в строке пиктограмм на кнопке с восклицательным знаком или вызывая в меню Query директиву Run. Access индицирует отобранные по запросу в Dynaset блоки в виде таблицы.

С помощью структурированного языка запросов SQL в рамках Access пользователь может сформулировать сколь угодно сложные по структуре критериев и вычислений запросы. Этот же язык позволяет управлять обработкой запросов. SQL-запрос представляет собой последовательность инструкций, в которую могут включаться выражения и вызовы агрегатных функций.

Если пользователь хочет иметь разработанный проект запроса в своем распоряжении и во время следующих сеансов работы, то он должен его сохранить с помощью директивы Save в меню File. Если проект сохраняется впервые, то после обращения к этой директиве появится диалоговое окно Save As. В нем следует назначить запросу имя, под которым он будет сохранен и включен в список запросов в окне банка данных. Имя запроса не должно совпадать с именем таблицы.

Если данный запрос уже был однажды сохранен и пользователь выбрал директиву Save, то старая версия будет заменена новым, измененным проектом запроса. Если изменения не должны испортить предыдущую версию, а должны быть сохранены в другом запросе, то следует вызвать директиву Save As и назначить сохраняемому проекту новое имя. Для сохранения табличного представления запроса следует выбрать директиву Save Query в меню File. Эта директива сохраняет изменения в проекте имеющегося запроса и заменяет предыдущую версию запроса на активную версию. Для того чтобы сохранить запрос впервые или создать копию активного запроса, Dynaset которого виден на экране, следует выбрать директиву Save Query As.

Наряду с запросами выбора, с помощью Access можно реализовать также запросы действий, параметрические запросы и запросы кросс-таблиц.

Формуляры.

Просмотр базы данных в виде таблицы в режиме заполнения дает пользователю возможность оценить базу как единое целое, сравнить записи и т.п. Часто, однако, возникает необходимость работы с отдельными записями базы. В этом случае присутствие на экране других записей (как это имеет место в режиме заполнения) только мешает и отвлекает. Работа с отдельными записями посредством формуляров позволяет сосредоточиться только на относящейся к делу информации.

Формуляр представляет собой бланк, подлежащий заполнению, или маску, накладываемую на набор данных. Бланк-формуляр позволяет упростить процесс заполнения базы данных, благодаря чему появляется возможность поручить ввод информации персоналу невысокой квалификации. Маска-формуляр позволяет ограничить объем информации, доступной пользователю, обращающемуся к базе.

Внешний вид, структура и режимы работы отдельных управляющих элементов и формуляров определяются значениями характеристик этих объектов. Характеристики объектов доступны пользователю через окно характеристик. Для установки или изменения характеристик элемента его надлежит маркировать и из меню View вызвать директиву Properties.

Для индикации инструментального окна установите в меню View опцию Toolbox. Каждый инструмент, а точнее, создаваемый с его помощью элемент управления/оформления, располагает собственным окном характеристик, и в нем в виде списка представлены стандартные установки для соответствующего управляющего элемента.

Включаемые в формуляр поля можно выбрать из списка полей, который будет виден на экране после обращения к директиве Field List в менюView.

При проектировании формуляра в него можно вставить управляющие элементы. Каждый управляющий элемент может быть связан с некоторым объектом в таблице, на которой базируется форма.

Отчеты.

Отчет – это информация, которую вы оформили в соответствии с Вашими спецификациями. Отчет позволяет извлекать и представлять данные как значимую информацию, которую вы можете использовать и распространять. Примерами отчетов могут служить почтовые адреса, накладные, суммы продаж или списки телефонов. С помощью Microsoft Access вы можете спроектировать отчет который представит информацию в том виде, в котором Вы пожелаете. Вы можете использовать множество различных элементов проектирования, таких как текст, данные, рисунки, линии, поля и графики для создания вашего отчета. От вас зависит, как и какие элементы использовать для построения отчета.

Microsoft Access обеспечивает несколько способов получения информации из вашей базы данных - используя запрос, формуляр или отчет. Вы можете выбрать тот метод, который наиболее подходит к решению вашей задачи.

Отчеты также являются эффективным средством для распечатки информации регулярного использования. Вы можете создать проект отчета и сохранить его для дальнейшего использования. Проект отчета останется неизменным, но каждый раз вы будете получать распечатку текущих данных.

Перед тем как создать отчет, подумайте о том откуда ваш отчет будет извлекать данные. Если все данные из одной таблицы, то ваш отчет будет основываться на этой таблице. Если же вам необходимы данные более чем из одной таблицы, то ваш отчет должен основываться на запросе.

Вы можете создавать отчеты как при помощи, так и без помощи Конструктора Отчетов. Конструктор намного ускорит процесс создания отчета, так как он сделает за Вас основную работу.

В прототип отчета в процессе проектирования можно встроить управляющие элементы. Управляющие элементы, встроенные в прототип отчета, могут использоваться для оформления заголовков, надписей и иллюстраций.

Для встраивания управляющих элементов в отчет на экране должно присутствовать инструментальное меню Toolbox (опция View/Toolbox). В инструментальном меню выбирается кнопка создаваемого управляющего элемента. После этого следует выполнить мышью щелчок в той позиции прототипа отчета, где надлежит разместить данный управляющий элемент. Access размещает выбранный элемент, приписывая ему по умолчанию стандартные значения характеристик (размер, цвет и т.п.).

Для изменения стандартных значений характеристик управляющего элемента можно обратиться к окну характеристик, предварительно маркировав настраиваемый элемент.

Зависимый управляющий элемент в отчете связан с полем в соответствующей таблице. С помощью зависимого управляющего элемента можно ввести данные в поле или индицировать и актуализировать их в отчете.

Связывание управляющего элемента можно выполнить одним из двух способов:

Если пользователь хочет, чтобы Access автоматически создала управляющий элемент, связанный с базовой для данного отчета таблицей, то следует воспользоваться списком полей таблицы. Он виден на экране, если установлена опция View/Field List. Управляющий элемент, изготовленный с помощью списка полей, имеет те же значения характеристик, что и поле таблицы, с которым он связан. Для выполнения связывания следует отбуксировать выбранное поле или поля из списка в отчет. Там надлежит поместить курсор мыши в позицию, где должен находиться левый верхний угол управляющего элемента (но не поля названного данного управляющего элемента), и затем отпустить кнопку мыши. Access создает для каждого поля, выбранного в списке полей, связанный управляющий элемент (текстовое поле).

Если задним числом необходимо связать с полем уже имеющийся, несвязанный управляющий элемент, то это можно выполнить с помощью окна характеристик. В этом окне после маркирования управляющего элемента в прототипе отчета перечислены характеристики этого элемента. При занесении имени связываемого поля в это окно в качестве значения характеристики ControlSource выполняется связывание.

Сохраняя только его проект, структуру отчета, без данных.

В меню File выберите директиву Save.

Если отчет не был назван, напечатайте имя в строке Report Name.

Нажмите OK.

Сохраняя результат, полный отчет - проект вместе с данными – в файле, который вы сможете использовать в других поддерживаемых Windows приложениях, например, Microsoft Excel.

В меню File выберите Output To.

Следуйте инструкциям в диалоговых полях Output To.

К важным признакам классификации современных СУБД относятся:

    среда функционирования – класс компьютеров и операционных систем, на которых работает СУБД, в том числе разрядность операционной системы, на которую ориентирована СУБД (16- или 32-разрядные);

    тип поддерживаемой в СУБД модели данных – сетевая, иерархическая или реляционная;

    возможности встроенного языка СУБД, его переносимость в другие приложения (SQL, Visual Basic, ObjectPASCAL и т.п.);

    наличие развитых диалоговых средств конструирования (таблиц, форм, запросов, отчетов, макросов) и средств работы с БД;

    возможность работы с нетрадиционными данными в корпоративных сетях (страницы HTML, сообщения электронной почты, изображения, звуковые файлы, видеоклипы и т.п.);

    используемая концепция работы с нетрадиционными данными – объектно-реляционные, объектные;

    использование объектной технологии OLE;

    возможности интеграции данных из разных СУБД;

    степень поддержки языка SQL и возможности работы с сервером баз данных (SQL-сервером);

    наличие средств отчуждаемых приложений, позволяющих не проводить полной инсталляции СУБД для тиражируемых приложений пользователя.

Структурирование – это введение соглашений о способах представления данных. Так, в реляционных БД, рассматриваемых далее, используются три структуры данных: таблица, запись, поле.

Таблица имеет имя и состоит из записей.

Запись – это строка таблицы, содержащая набор значений свойств, размещенный в полях БД. Таким образом, запись имеет номер в таблице и состоит из полей.

Поле – это столбец таблицы, содержащий значения определенного свойства. У каждого поля есть имя, тип (текстовый, числовой и т.д.), длина в байтах.

Каждая таблица должна содержать, по крайней мере, одно ключевое поле, содержимое которого уникально для каждой записи в этой таблице. Ключевое поле позволяет однозначно идентифицировать каждую запись в таблице.

Для ключевого поля СУБД строит индекс – вспомогательную таблицу, содержащую для каждого значения ключа адрес записи в основной таблице. Поэтому, если требуется запись с определенным значением ключа, то она легко находится по индексу. Если же в таблицу вставляется новая запись, то сортировке подвергается только индекс, но не записи таблицы.

1.2. Модели данных: реляционная, иерархическая, сетевая

Понятие «данные» в концепции БД – это набор конкретных значений, параметров, характеризующих объект, условие, ситуацию или любые другие факторы.

Модель данных – совокупность взаимосвязанных структур данных и операций над этими структурами. Вид модели и используемые в ней типы структур данных отражают концепцию организации и обработки данных, используемую в СУБД, поддерживающей модель, или в языке системы программирования, на котором создается прикладная программа обработки данных. Выбор модели данных возлагается на пользователя, создающего информационную базу, и зависит от многих факторов, в том числе от имеющегося технического и программного обеспечения, определяется сложностью автоматизируемых задач и объемом информации.

В пособии мы будем останавливаться только на трех моделях данных: иерархической, сетевой и реляционной.

а) Иерархическая модель данных.

Относится к теоретико-графовым моделям данных, которые отражают совокупность объектов реального мира в виде графа взаимосвязанных информационных объектов. Является наиболее простой среди всех даталогических моделей.

Основными информационными единицами в иерархической модели являются: база данных, сегмент и поле.

Сегмент в терминологии Американской Ассоциации по базам данных DBTG (Data Base Task Group) называется записью, при этом в рамках иерархической модели определяются два понятия: тип сегмента, или тип записи, и экземпляр сегмента, или экземпляр записи.

Тип сегмента – это поименованная совокупность типов элементов данных, в него входящих. Экземпляр сегмента образуется из конкретных значений полей или элементов данных, в него входящих. Каждый тип сегмента в рамках иерархической модели образует некоторый набор однородных записей. Для возможности различия отдельных записей в данном наборе каждый тип сегмента должен иметь ключ или набор ключевых атрибутов (полей, элементов данных). Ключом называется набор элементов данных, однозначно идентифицирующих экземпляр сегмента. Например, рассматривая тип сегмента, описывающий сотрудника организации, мы должны выделить те характеристики сотрудника, которые могут однозначно его идентифицировать в рамках БД предприятия.

Поле данных определяется как минимальная, неделимая единица данных, доступная пользователю с помощью СУБД.

Схема иерархической БД представляет собой совокупность отдельных деревьев, каждое дерево в рамках модели называется физической БД.

Каждая физическая БД удовлетворяет следующим иерархическим ограничениям:

    в каждой физической БД существует один корневой сегмент, то есть сегмент, у которого нет логически исходного (родительского) типа сегмента;

    каждый логически исходный сегмент может быть связан с произвольным числом логически подчиненных сегментов;

    каждый логически подчиненный сегмент может быть связан только с одним логически исходным (родительским) сегментом.

В иерархической модели непосредственный доступ по ключу, как правило, возможен только к объекту высшего уровня, который не подчинен другим объектам. К другим объектам доступ осуществляется по связям от объекта на вершине модели.

Структура объекта (поля, сегмента) может быть иерархической (в виде древа) или линейной.

Рассмотрим пример иерархической БД.

Допустим, что наша организация занимается производством и продажей компьютеров, в рамках производства мы комплектуем компьютеры из готовых деталей по индивидуальным заказам. У нас существует несколько базовых моделей, которые мы продаем без предварительных заказов по наличию на складе. В организации существуют несколько филиалов и несколько складов, на которых хранятся комплектующие. Нам необходимо вести учет продаваемой продукции.

Какие задачи нам надо решать в ходе разработки приложения?

    При приеме заказа мы должны выяснить, какую модель заказывает заказчик: типичную или индивидуальную комплектацию.

    Если заказывается типичная модель, то выясняется, какая модель и есть ли она в наличии, если модель есть, то надо уменьшить количество компьютеров данной модели в данном филиале на покупаемое количество. На этом будем считать заказ выполненным, однако при оформлении заказа может потребоваться задание полной спецификации покупаемого изделия.

    Если заказывается индивидуальная модель, то требуется описать весь состав новой модели (рис. 1.3.).


СОСТАВ ЗАКАЗНОЙ МОДЕЛИ

СОСТАВ МОДЕЛИ

Имя блока

Характеристика

Фирма-изготовитель

Стоимость

Имя блока

Характеристика

Фирма-изготовитель

Стоимость

Рис. 1.3. Состав модели

Для того чтобы можно было принимать заказы на индивидуальные модели, нам понадобится информация о наличии конкретных деталей на складе, в этом случае нам необходимо второе дерево – Склады (см. рис. 1.4).

Для доступа к БД у пользователя должна быть сформирована специальная среда окружения, поддерживающая в явном виде имеющиеся навигационные операции. Для этого в ней должны храниться:

    шаблоны всех записей логических БД, доступных пользователю;

    указатели на текущий экземпляр сегмента данного типа – для всех видов сегментов.

Язык манипулирования данными в иерархической модели поддерживает в явном виде навигационные операции. Эти операции связаны с перемещением указателя, который определяет текущий экземпляр конкретного сегмента.


Рис. 1.4. Дерево базы данных Склады

Все операторы в языке манипулирования данными можно разделить на три группы:

    операторы поиска данных;

    операторы поиска данных с возможностью модификации;

    операторы модификации данных.

б) Сетевая модель данных.

Относится к теоретико-графовым моделям данных, которые отражают совокупность объектов реального мира в виде графа взаимосвязанных информационных объектов.

Базовыми объектами модели являются: элемент данных, агрегат данных, запись, набор данных.

Элемент данных – минимальная информационная единица, доступная пользователю с использованием СУБД.

Агрегат данных соответствует следующему уровню обобщения в модели. В модели определены агрегаты двух типов: агрегат типа вектор и агрегат типа повторяющаяся группа.

Агрегат данных имеет имя, и в системе допустимо обращение к агрегату по имени. Агрегат типа вектор соответствует линейному набору элементов данных. Например, агрегат Адрес может быть представлен следующим образом:

Квартира

Записью называется совокупность агрегатов или элементов данных, моделирующая некоторый класс объектов реального мира. Понятие записи соответствует понятию «сегмент» в иерархической модели. Для записи, так же, как и для сегмента, вводятся понятия типа записи и экземпляра записи.

Набором называется двухуровневый граф, связывающий отношением «один-ко-многим» два типа записи.

Набор фактически отражает иерархическую связь между двумя типами записей. Родительский тип записи в данном наборе называется владельцем набора, а дочерний тип записи – членом того же набора.

Для любых двух типов записей может быть задано любое количество наборов, которые их связывают. Фактически наличие подобных возможностей позволяет промоделировать отношение «многие-ко-многим» между двумя объектами реального мира, что выгодно отличает сетевую модель от иерархической.

Между двумя типами записей может быть определено любое количество наборов: например, можно построить два взаимосвязанных набора. Существенным ограничением набора является то, что один и тот же тип записи не может быть одновременно владельцем и членом набора.

В сетевых моделях непосредственный доступ по ключу может обеспечиваться к любому объекту независимо от уровня, на котором он находится в модели. Возможен также доступ по связям от любой точки доступа.

Все операции манипулирования данными в сетевой модели делятся на навигационные операции и операции модификации.

Навигационные операции осуществляют перемещение по БД путем прохождения по связям, которые поддерживаются в схеме БД. В этом случае результатом является новый единичный объект, который получает статус текущего объекта.

Операции модификации осуществляют как добавление новых экземпляров отдельных типов записей, так и экземпляров новых наборов, удаление экземпляров записей и наборов, модификацию отдельных составляющих внутри конкретных экземпляров записей.

в) Реляционная модель данных.

Появление теоретико-множественных моделей в системах БД было предопределено настоятельной потребностью пользователей в переходе от работы с элементами данных, как это делается в графовых моделях, к работе с некоторыми макрообъектами. Основной моделью в этом классе является реляционная модель данных.

Эта модель данных является совокупностью простейших двумерных таблиц – отношений, именно поэтому модель получила название реляционной (от англ. «relation» – отношение). Реляционная модель представляет базу данных в виде множества взаимосвязанных отношений.

Таблица является основным типом структуры данных (объектом) реляционной модели. Структура таблицы определяется совокупностью столбцов. В каждой строке таблицы содержится по одному значению в соответствующем столбце. В таблице не может быть двух одинаковых строк. Общее число строк не ограничено.

Столбец соответствует некоторому элементу данных – атрибуту, который является простейшей структурой данных. В таблице на могут быть определены множественные элементы, группа или повторяющаяся группа, как в рассмотренных выше сетевых и иерархических моделях. Каждый столбец таблицы должен иметь имя соответствующего элемента данных (атрибута). Один или несколько атрибутов, значения которых однозначно идентифицируют строку таблицы, являются ключом таблицы.

В реляционном подходе к построению БД используется терминология теории отношений. Простейшая двумерная таблица определяется как отношение. Столбец таблицы со значениями соответствующего атрибута называется доменом, а строки со значениями разных атрибутов – кортежем.

В этой модели, так же, как и в остальных, поддерживаются иерархические связи между отношениями. В каждой связи одно отношение может выступать как основное, а другое отношение выступает в роли подчиненного. Это означает, что один кортеж основного отношения может быть связан с несколькими кортежами подчиненного отношения. Для поддержки этих связей оба отношения должны содержать наборы атрибутов, по которым они связаны. В основном отношении это первичный ключ отношения (Primary key), который однозначно определяет кортеж основного отношения. В подчиненном отношении для моделирования связи должен присутствовать набор атрибутов, соответствующий первичному ключу основного отношения. Однако здесь этот набор атрибутов уже является вторичным ключом, то есть он определяет множество кортежей подчиненного отношения, которые связаны с единственным кортежем основного отношения. Данный набор атрибутов в подчиненном отношении принято называть внешним ключом (Foreign key).

Операции обработки данных включают операции над строками (кортежами) таблиц (отношений) и операции над отношениями, осуществляющие обработку данных нескольких отношений.

Операциями, выполняемыми на уровне строк отношений, являются:

    включение – добавляет в таблицу новую строку;

    удаление – удаляет из таблицы строку;

    обновление – осуществляет изменение значений атрибутов в строках.

Основными операциями над отношениями реляционной модели данных являются традиционные операции над множествами:

    Объединение – выполняется над двумя совместимыми отношениями R1 и R2. В результате операции объединения строится новое отношение R=R1 U R2. Отношение R имеет тот же состав атрибутов и совокупность кортежей исходных отношений. Причем в эту совокупность не включаются дубликаты.

Таблица R1:

Таблица R2:

Таблица R:

В новое отношение R не вошел кортеж К22, так как он дублирует кортеж К11.

    Пересечение – операция выполняется над двумя совместимыми отношениями R1 и R2. Результирующее отношение RP=R1R2 содержит одинаковые кортежи, которые есть в каждом из двух исходных.

Для таблиц из примера:

    Вычитание – операция выполняется над двумя совместимыми отношениями R1, R2 с идентичным набором атрибутов. В результате операции вычитания строится новое отношение RV = R1 - R2 с идентичным набором атрибутов, содержащее только те кортежи первого отношения R1, которые не повторяются во втором отношении R2.

Для таблиц из примера:

    Декартово произведение – операция выполняется над двумя отношениями R1 и R2, имеющими в общем случае разный состав атрибутов. В результате операции образуется новое соотношение RD=R1*R2, которое включает все атрибуты исходных отношений. Число кортежей декартова произведения равно произведению количеств кортежей в исходных отношениях.

    Выбор – операция выполняется над одним отношением R. Для отношения R по заданному условию (предикату) осуществляется выборка подмножества кортежей. Результирующее отношение имеет ту же структуру, но число его кортежей будет меньше (или равно) исходному.

    Проекция – операция выполняется над одним отношением R. Операция проекции формирует новое отношение (RPR) с заданным подмножеством атрибутов и последовательностью исходного отношения R. Оно может содержать меньше кортежей, так как после отбрасывания в исходном отношении R части атрибутов могут образоваться кортежи, дублирующие друг друга. Дублирующие кортежи из результирующего отношения исключаются.

    Соединение – выполняется для заданного условия соединения над двумя логически связанными отношениями. Исходные отношения R1 и R2 имеют разные структуры, в которых есть одинаковые атрибуты – внешние ключи. Операция соединения формирует новое отношение, структура которого является совокупностью всех атрибутов исходных отношений. Результирующие кортежи формируются объединением каждого кортежа из R1 с теми кортежами R2, для которых выполняется условие.

    Деление – операция выполняется над двумя отношениями R1 и R2, имеющими в общем случае разные структуры и некоторые одинаковые атрибуты. В результате операции образуется новое отношение, структура которого получается исключением из множества атрибутов отношения R1 множества атрибутов отношения R2. Результирующие строки не должны содержать дубликаты.

Рассмотренные выше операции в той или иной мере реализуются в средствах СУБД, обеспечивающих обработку реляционных таблиц. К таким средствам относятся средства запросов и другие языковые конструкции.

Развитие реляционного подхода привело к созданию реляционных языков. Например, язык SQL, реализованный в большинстве СУБД, является более чем реляционно-полным, так как, кроме операций реляционной алгебры, он содержит полный набор операторов над строками – «включить», «удалить» и «обновить», а также реализует арифметические операции и операции сравнения.

Рассматриваемая в последующих главах СУБД Microsoft Access является примером системы управления реляционными базами данных.

1. Какие тренды в развитии серверных СУБД вы бы могли отметить в 2015–2016 годах?

Виталий Чесноков , QSOFT
Самые главные тренды в развитии современных СУБД: использование виртуализации и GRID-технологии, самодиагностика и автоматическое исправление, использование NoSQL-СУБД в Big Data, использование NewSQL-СУБД, выполнение C/C++ кода в адресном пространстве СУБД.

За последние несколько лет многократно выросли объемы данных, подходящих для обработки и хранения в БД. Был принято изменение закона «О персональных данных», гласящее, что персональные данные граждан РФ необходимо хранить на территории РФ. В некоторых западных странах так же действуют подобные законы. Все это приводит нас к необходимости кластеризации и разбиения данных на части.

Повсеместно растет процент использования NoSQL-СУБД, где это возможно, ввиду высокой скорости работы с данными и возможности сравнительно простой кластеризации. Получает распространение новый тип СУБД - NewSQL. В основные беспрецедентные функции NewSQL входят: возможность асинхронной мастер-мастер репликации, заменяющей классическую master-slave схему и обеспечивающей большую гибкость для высоконагруженных проектов; упрощение администрирования и обеспечение динамического управления базой; поддержка хранимых процедур на C/C++ и возможность выполнения C/C++ кода в адресном пространстве СУБД (обеспечивают практически неограниченную расширяемость и невероятный прирост в производительности); улучшение средств диагностики и отладки.

К тому же использование виртуализации в СУБД дает необходимую отказоустойчивость и возможность масштабирования.

Николай Фетюхин , MST
Переход к NoSQL и специализация баз данных. Например, можно обратить внимание на Redis и Tarantool. Последний содержит даже свой сервер приложений. Интересный тренд - совмещенные СУБД и backend, как Parse от Facebook. Также плавная миграция баз данных в облака.

Петр Урваев , SimbirSoft
Функции, успешно себя зарекомендовавшие в одних СУБД, через некоторое время реализуются и в других продуктах. Например, материализованные представления, вначале появившиеся в Oracle DBMS, через некоторое время были реализованы в MS SQL Server, а затем появились и в PostgreSQL. Преимущества, которые предоставляют NoSQL-решения постепенно также реализуются в реляционных СУБД. Например, в последних версиях PostgreSQL реализована поддержка работы с данными в формате JSON.

Евгений Гусев , ITECH
Изменения последних лет в сегменте СУБД носили как частный - применительно к отдельным лидирующим продуктам, так и структурный характер, так что трендов множество. Во-первых, гетерогенность. Переход к модели микросервисов дал возможность гибко подбирать средства решения задачи хранения данных, не ограничиваясь одним. Во-вторых, развитие NoSQL, in-memory storages. В-третьих, Big Data - революция, потребовавшая переосмыслить как методику хранения данных, так и само понятие «данные». В-четвертых, колоночные (column-oriented) БД.

2. По-вашему мнению, существует ли тенденция перехода СУБД в «облака»? Какие существуют плюсы и минусы данного подхода?

Виталий Чесноков , QSOFT
Да, безусловно такая тенденция существует. Для начала нужно разделять два принципиальных подхода в работе СУБД в облаке.

Первый - разворачивание в облаке виртуальной машины с СУБД. Можно загрузить на нее собственный образ или воспользоваться заранее заготовленным, с уже оптимизированной СУБД. По сути такая виртуальная машина принципиально не отличается от обычного физического сервера. Основным преимуществом по сравнению с физическим сервером является легкость масштабирования, как вертикального (можно в любой момент выделить для данной «виртулки» больше ресурсов), так и горизонтального (создание новой «виртуалки» занимает всего несколько минут). Еще один существенный плюс - высокая доступность облачных виртуальных машин (99,9%–99,99%). Также облачные хостеры предоставляют множество дополнительных услуг, таких как мониторинг, резервное копирование, панель управления сервером и т.д.

Принципиально иным подходом является облачная СУБД. В данном случае клиент покупает не сервер, а просто услугу использования СУБД. Текущий рынок публичных облачных СУБД, составляющий $400 млн, к 2017 году увеличится до $1,2 млрд. Основные плюсы данного подхода: оплата не предоставленных ресурсов (которые могут и «простаивать»), а лишь реально использованных: объем хранимых данных, количество обрабатываемых СУБД операций; нет необходимости настраивать и администрировать СУБД - эти задачи полностью лежат на хостере; нет необходимости задумываться о масштабировании; хостер предоставляет множество удобных и интуитивно понятных инструментов для управления СУБД; высокая доступность. Основным минусом является отсутствие возможности тонкой настройки СУБД.

Также можно отдельно выделить такой подвид облачной СУБД как DbaaS (Database as a Service). Практически всегда конкретный DbaaS - это одна определенная СУБД, предоставляемая в облаке непосредственными разработчиками. Отсюда очевидно выводится и разница в бизнес-моделях: облачные СУБД подходят для масштабных типовых задач, а DbaaS - для специализированных, под конкретную марку движка БД, с возможностью прямого общения с его разработчиками. Кроме того, DbaaS позволяет значительно точнее подобрать систему под нужную нагрузку, в частности за счет регулирования количества клиентских подключений.

Николай Апурин , Artwell
Тенденция существует. Большинство крупных (общероссийских) систем уже используют облачные БД.

Николай Фетюхин , MST
Тенденция слабая. Использование облаков хоть и снижает некоторые издержки, но приводит к новым расходам. Использование облака может быть выгодно лишь для проектов со слабой посещаемостью.

Плюсы облаков: легкая масштабируемость, высокая отказоустойчивость, доступность серверов во всем мире, легкое клонирование и разворачивание данных. Минусы: пока облака, как продукт, «сырые» - невозможно физически контролировать данные, так как они находятся под управлением поставщика облака.

Петр Урваев , SimbirSoft
Тенденция перехода СУБД в облака существует как часть общего тренда по переносу в облака всей IT-инфраструктуры организаций. Основным плюсом такого подхода является возможность передать сопровождение БД. К минусам можно отнести хранение важных данных на неподконтрольной площадке. Пользователь облачного хранилища при необходимости уничтожения хранящихся данных не может быть уверен, что данные действительно стерты.

Евгений Гусев , ITECH
Существует и является одной из первичных. Плюсов у размещения БД в облаке масса: простота шардинга и репликации, возможность эффективно в контексте производительности отделить данные от бизнес-логики, легкое и понятное управление вычислительными мощностями и целый ряд других. Критичных минусов, основываясь на опыте, мы не видим. Чем большими объемами данных приходится оперировать, чем больше требуется горизонтального масштабирования, тем более оправданным становится использование облаков.

3. Какие факторы влияют на выбор СУБД? Для каких проектов больше подходят SQL базы данных, а для каких - NoSQL?

Виталий Чесноков , QSOFT
Основным фактором при выборе между SQL и NoSQL-СУБД являются нужды приложения. Для одних задач лучше подходит SQL, для других - NoSQL.

Можно выделить несколько ключевых различий между этими типами СУБД. Формат данных в SQL очень строгий, есть четкие схемы таблиц с указанием, где используется какой тип данных. В NoSQL нет заранее заданных схем документов - любая информация может быть добавлена в любой документ.
В SQL существуют сложные связи между различными таблицами. Данные в одной таблице часто являются ссылкой на данные в другой (принцип нормализации данных). В NoSQL, как правило, каждый документ является изолированной информационной единицей и хранит в себе все имеющиеся данные (принцип денормализации).
В SQL есть встроенные механизмы поддержки целостности данных (например, нельзя удалить запись из таблицы, если на нее ссылаются в других таблицах). В NoSQL таких механизмов нет, поэтому важна денормализация данных (в идеале - каждый документ хранит абсолютно всю информацию о каком-либо объекте).
В SQL есть механизм транзакций, который позволяет выполнить несколько SQL-запросов по принципу «все или ничего». В NoSQL подобный механизм существует только в пределах одного документа.
В идеальном случае NoSQL работает быстрее, чем SQL, за счет более простого метода хранения данных, который позволяет получить всю информацию об объекте простым запросом одного документа. Однако есть проблема, связанная с тем, что наиболее популярные NoSQL-СУБД появились достаточно недавно. Следствием этого является меньшее количество информации по этим СУБД и большее количество пока нерешенных проблем.
NoSQL гораздо проще масштабировать за счет отсутствия сложных логических связей между документами. К тому же большая часть NoSQL-СУБД изначально создавалась с упором на механизмы масштабирования.

В итоге NoSQL лучше подходит для проектов с большим объемом данных, который можно легко разделить на отдельные самостоятельные объекты. Дает высокую скорость и масштабируемость. SQL подходит для проектов, где различные данные имеют сложные логические связи друг с другом и крайне важна их целостность.

Николай Апурин , Artwell
NoSQL - для нестандартных вычислений с огромным объемом данных. Но как показала практика, объемы до 20 миллионов записей отлично перерабатываются SQL-базами.

Николай Фетюхин , MST
Технологии NoSQL активно используются известными компаниями, в том числе в высоконагруженных проектах. Сохранение данных и простые выборки при использовании NoSQL будут действительно быстрыми. В случае более сложных запросов задачу придется решать на стороне продукта, что усложняет сам продукт. В чистом виде мы не выбираем NoSQL. Усложнение логики продукта и эмуляции базовых вещей SQL приводит к удорожанию проекта. И не каждое NoSQL-решение обеспечивает безопасность данных в критических ситуациях.

Петр Урваев , SimbirSoft
Выбор БД зачастую зависит от предпочтений архитектора, возможной нагрузки, необходимого функционала. SQL-БД позволяют четко определять схемы хранения данных и извлекать данные с использованием сложных запросов, NoSQL-БД позволяют хранить данные в менее упорядоченном формате и поддерживают горизонтальное масштабирование. Зачастую в распределенных системах используются одновременно SQL и NoSQL базы данных, каждая из которых решает свои задачи.

Евгений Гусев , ITECH
В современном состоянии SQL / NoSQL - скорее не конкурирующие, а дополняющие друг друга сущности. Использование в одном приложении SQL-решений, когда требуется работать со сложными данными в их взаимосвязи, и NoSQL, когда на передний план выходит скорость работы с неструктурированной информацией, - совершенно естественная практика.

4. Как вы оцениваете степень распространения платных лицензий СУБД среди пользователей? В каких случаях имеет смысл покупать лицензию?

Виталий Чесноков , QSOFT
Есть два различных варианта разделения СУБД па платные и бесплатные.

Первый - бесплатные версии коммерческих СУБД (есть у MS SQL, Oracle и т.д.) По сути это урезанная версия СУБД, в которой отсутствует часть функционала. Здесь основной фактор выбора очень прост - нужен ли данному проекту данный функционал. Реже бывает бесплатная версия, которая не отличается от коммерческой по функционалу, но реже обновляется (Couchbase Server).

Второй - бесплатные СУБД, для которых есть аналогичные коммерческие продукты (MySQL от Oracle, Percona Server или MariaDB). В данном случае преимущество коммерческого продукта обычно заключается в наличии более серьезной технической поддержки. С точки зрения функционала платные и бесплатные СУБД мало отличаются друг от друга, хотя и у тех, и у других могут быть свои инструменты, отсутствующие в других версиях.

В итоге есть две основные причины выбрать платную СУБД: наличие функционала, которого нет в бесплатных аналогах, и возможность обратиться за помощью в техническую поддержку производителя.

Николай Апурин , Artwell
Зачем платить, если есть бесплатные? Тем не менее, много решений, которые могут работать только с платными БД. В основном, это иностранные практики.

Николай Фетюхин , MST
Вопрос неоднозначный. Часто и платные СУБД имеют бесплатные версии, и бесплатные имеют компоненты, которые можно приобрести за деньги. Разница чаще всего во встроенных инструментах аналитики и мониторинга БД. Поэтому платные СУБД больше подходят для крупных проектов с большими распределенными системами.

Петр Урваев , SimbirSoft
Платные лицензии СУБД предпочтительнее бесплатных, когда проект полагается на возможности конкретной БД, и для него важно, чтобы используемые возможности работали так, как заявлено, а проблемы в их работе оперативно устранялись. Сейчас коммерческие и свободные БД используются одинаково часто, а большинство новых проектов выбирают свободные БД, поскольку возможности по работе с данными и стабильность примерно находятся на одном уровне у платных и бесплатных СУБД.