Субд - система управления базами данных. Социальный аспект субд. Большие субд и сложный connect

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

К СУБД относятся следующие основные виды программ:

Полнофункциональные СУБД;

Серверы БД;

Клиенты БД;

Средства разработки программ работы с БД.

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

ПФСУБД последнего поколения имеют развитый интерфейс, позволяющий с помощью команд меню выполнять основные действия с БД: создавать и модифицировать структуры таблиц, вводить данные, формировать запросы, разрабатывать отчеты, выводить их на печать и т. п. Во многих из них для создания запросов можно пользоваться языком QBE (Query By Example). Многие ПФСУБД включают средства программирования для профессиональных разработчиков.

Некоторые системы имеют дополнительные средства проектирования схем БД или CASE-подсистемы. Многие из них обладают возможностью доступа к другим БД или к данным SQL-cepвepoв.

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

Примерами серверов БД являются следующие программы: NetWare SQL (Novell), SQL Server (Microsoft), InterBase (Borland) и др.

В роли клиентских программ для серверов БД в общем случае могут использоваться различные программы: ПФСУБД, электронные таблицы, текстовые процессоры, программы электронной почты и т. п. При этом элементы пары «клиент - сервер» могут принадлежать одному или разным производителям программного обеспечения.

В случае, когда клиентская и серверная части выполнены одной фирмой, естественно ожидать, что распределение функций между ними выполнено рационально. В остальных случаях обычно преследуется цель обеспечения доступа к данным «любой ценой». Примером такого соединения является случай, когда одна из полнофункциональных СУБД играет роль сервера, а вторая СУБД (другого производителя) - роль клиента. Так, для сервера БД SQL Server (Microsoft) в роли клиентских программ могут выступать многие СУБД, такие как: dBASE IV, Blyth Software, Рaradox, DataBase, Focus, 1-2-3, MDBS III, Revelation и другие.

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


Клиентских программ;

Серверов БД и их отдельных компонентов;

Пользовательских приложений.

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

К средствам разработки; пользовательских приложений относятся системы программирования, например Clipper, разнообразные библиотеки программ для различных языков программирования, а также пакеты автоматизации разработок (в том числе систем типа клиент-сервер). В числе наиболее распространенных можно назвать следующие инструментальные системы: Delphi и Power Builder (Borland), Visual Basic (Microsoft), SILVERRUN (Computer Advisers Inc.), S-Designor (SDP и Powersoft) и ERwin (LogicWorks).

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

Персональные СУБД обычно обеспечивают возможность создания персональных БД и недорогих приложений, работающих с ними. Персональные СУБД или разработанные с их помощью приложения зачастую могут выступать в роли клиентской части многопользовательской СУБД. К персональным СУБД, например, относятся Visual FoxPro, Paradox, Clipper, dBase, Access и др.

Многопользовательские СУБД включают в себя сервер БД и клиентскую часть и, как правило, могут работать в неоднородной вычислительной среде (с разными типами ЭВМ и операционными системами). К многопользовательским СУБД относятся, например, СУБД Oracle и Informix.

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

Microsoft Access является полнофункциональной системой управления реляционными базами данных и может быть использована как в качестве настольной СУБД, так и в качестве клиента Microsoft SQL Server. Программа Microsoft Access 2000 входит в состав пакета Microsoft Office 2000 и работает в среде Windows 95 / 98 или Windows NT. В этой программе предусмотрены все необходимые средства для определения и обработки данных, управления ими при работе с большими объемами информации, а также для разработки приложений баз данных.

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

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

Существующие СУБД поддерживают следующие технологии (и их комбинации) разработки приложений:

Ручное кодирование (dBaselll Plus и dBase IY (фирма Ashton-Tate), DB2 (IBM), FoxPro ранних версий и FoxBase (Fox Software), Clipper, Paradox);

Создание текстов приложений с помощью генераторов (FoxApp в FoxPro);

Автоматическая генерация готового приложения методами вызуального программирования (Access и Visual FoxPro (Microsoft), dBASE for Windows (Borland) и др.

При ручном кодировании программисты пишут прикладные программы и вручную набирают их текст, после чего выполняют отладку программ.

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

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

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

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

Независимые приложения позволяют получать, например, СУБД FoxBase, FoxPro и Clipper. Система Clipper первоначально была разработана как «чистый компилятор», а затем дополнилась средствами, необходимыми для СУБД.

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

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

Режим интерпретации реализован во многих современных СУБД, например, FoxBase, FoxPro, Access, Visual FoxPro и Paradox.

Кроме этого, существуют системы, использующие промежуточный вариант между компиляцией и интерпретацией - так называемую псевдокомпиляцию. В таких системах исходная программа путем компиляции преобразуется в промежуточный код (псевдокод) и записывается на диск. Главная цель псевдокомпиляции - преобразовать программу к виду, ускоряющему процесс ее дальнейшей интерпретации. Такой прием широко применялся в СУБД, работающих под управлением DOS, например, FoxВаse+.

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

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

Некоторые СУБД предоставляют пользователю возможность выбора варианта разработки приложения: как интерпретируемого СУБД программного кода или как независимой программы.

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

Основная особенность СУБД – это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Файлы, снабженные описанием хранимых в них данных и находящиеся под управлением СУБД, стали называть "Базы данных" (БД).

Конструктивные черты:

1)Наличие визуального интерфейса, автоматизирующего процесс создания средств манипуляции – экранных форм, шаблонов, отчетов, запросов;

2)Наличие инструментов создания объектов базы данных в режиме диалога;

3)Наличие развитого инструментария создания программных расширений в рамках единой среды;

4)Встроенная поддержка универсальных языков управления данными (SQL или QBE).

Основные функции СУБД

· управление данными во внешней памяти (на дисках);

· управление буферами оперативной памяти;

· управление транзакциями;

· ведение журнала изменений в БД;

· Обеспечение целостности и безопасности БД.

Виды СУБД: По модели данных : 1)иерархические; 2)сетевые; 3)реляционные; объектно-ориентированные

По характеру использования : персональные и промышленные.

По степени распределенности:

· Локальные СУБД (все части локальной СУБД размещаются на одном компьютере)

· Распределённые СУБД (части СУБД могут размещаться на двух и более компьютерах).

По способу доступа к БД:

1)файл-серверные (доступ СУБД к данным осуществляется через локальную сеть);

2)клиент-серверные (все клиентские запросы на обработку данных обрабатываются клиент-серверной СУБД централизованно);

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

26. Основы работы СУБД MS Access: основные технологии работы с таблицами (на примере).

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

Существует несколько способов создания таблиц в Access:

· Создание таблицы в режиме таблицы (или путем ввода данных);

· Создание таблицы в режиме конструктора таблиц;

· Создание таблиц с помощью мастера таблиц.

27. Основы работы СУБД MS Access: основные технологии работы с формами (на примере).

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

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

Также для удобства работы с формой на ней можно разместить Элементы управления (например Кнопки ).

Форма, разделенная форма, конструктор форм и т.д.

28. Основы работы СУБД MS Access: основные технологии организации многотабличных баз данных (на примере).

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

Все запросы делятся на запросы-выборки и запросы-действия.

Основными объектами БД Access являются таблицы, запросы, формы, отчеты, макросы, модули. Таблица является базовым объектом СУБД, все остальные объекты являются производными и создаются только на базе ранее подготовленных таблиц. Таблицы - это набор данных, объединенных одним смыслом, характером, назначением (например, данные о месторождениях). В таблицах эти данные хранятся, располагаясь в полях (столбцах) и однотипных записях (строках). Каждое отдельное поле содержит одно какое-либо сведение об элементе таблицы. Отдельная запись состоит из полей и содержит все сведения об этом элементе. Обычно БД состоит из нескольких таблиц, размеры которых ограничены. Число строк в таблице на единицу больше количества записей (последняя пустая строка предназначена для ввода новой записи), а число столбцов равно количеству полей в записи. Заголовки столбцов таблицы соответствуют именам полей.

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

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

29. Основы работы СУБД MS Access: основные технологии работы с запросами (на примере).

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

Все запросы делятся на запросы-выборки и запросы-действия.

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

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

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

Запросы в MS Access доступны в трех режимах: табличном, в котором запрос выглядит так же, как обычная таблица, режиме конструктора, где запрос предстает в виде схемы связанных объектов, и в виде инструкций SQL (запросы построены на лексическом диалекте, основанном на семантике обычного языка (английского). При создании языка предполагалось, что конструкцию на нем сможет написать любой неподготовленный пользователь, руководствуясь исключительно своими потребностями и исходя из существующей структуры данных).


Похожая информация.


Элементарный участок проводника длиной dl и током I создаёт в точке поля А индукцию dВ i :

где радиус вектор, проведённый от элемента тока dl в току поля А; α угол которой образует радиус вектор с . Соотношение () носит название закона Био-Савара-Лапласа.

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

;

Для примера рассмотрим действие магнитного поля на контур с током. Предположим для простоты, что лежит в плоскости перпендикулярной плоскости контура. Как видно из рисунка (вид сверху) возникает пара сил F 1 = F 2 = F, которая приложена к боковым сторонам контура и создает вращательный момент

М = F∙АС∙sinβ

Т.к. угол α между и равен 90 0 и ток прямолинейный, то сила, действующая на сторону длиной l в магнитном поле

F = I∙B∙l , тогда М = I∙B∙l ∙АС∙sinβ = I∙S∙B∙sinβ = р м ∙В∙ sinβ; М max = р м ∙В

Величина, равная числу линий индукции пересекающих произвольно ориентированный плоский контур площадью S:

Ф = ВScosφ (1)

– называется потоком вектора магнитной индукции. [Ф] = Тл ∙м 2 = Вб(вебер).

На ранних стадиях разработки информационно-поисковых систем разрабатывались специальные языки манипулирования данными (ЯМД) – языки запросов. Они были ориентированы на операции с данными, представленными в виде иерархически связанных файлов, и мели соответствующие алгоритмы поиска информации.

Появление реляционных баз данных создало предпосылки для других, более быстрых алгоритмов поиска информации.

В 1970 г. Э.Ф.Кодд опубликовал свою эпохальную статью «A Relational Model of Data for Large Shared Databanks», в которой применил концепции раздела математики, называемого реляционной алгеброй, к проблеме хранения больших объемов данных. Статья Кодда положила начало движению в сфере проектирования баз данных, которое привело несколько лет спустя к созданию реляционной модели базы данных .

Для обработки информации, структурированной в виде таблиц – двумерных массивов, в конце 70-х годов ХХ в. фирмой IBM был разработан соответствующий язык, который в дальнейшем получил название Structured Query Language (SQL) – язык структурированных запросов. В настоящее время SQL является ядром всех программных продуктов для разработки СУБД.

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


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

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

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

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

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

Среди наиболее ярких представителей систем управления базами данных можно отметить: Lotus Approach, Microsoft Access, Borland dBase, Borland Paradox, Microsoft Visual FoxPro, Microsoft Visual Basic, а также баз данных Microsoft SQL Server и Oracle, используемые в приложениях, построенных по технологии «клиент-сервер». Фактически, у любой современной СУБД существует аналог, выпускаемый другой компанией, имеющий аналогичную область применения и возможности, любое приложение способно работать со многими форматами представления данных, осуществлять экспорт и импорт данных благодаря наличию большого числа конвертеров.

Наибольшее распространение среди пользователей и разработчиков СУБД получили следующие программные продукты:

§ Специализированные языки программирования – Visual FoxPro, SQL, MS SQL-Server;

§ Прикладные программные системы – Microsoft Access, Oracle, Focus, Ingress и др.

Рассмотрим некоторые характеристики данных программных средств.

Visual FoxPro. Этот язык программирования представляет собой дальнейшее развитие одного из популярных языков разработки баз данных - FoxPro. Принципиальным отличием Visual FoxPro от его “прародителя” FoxPro является возможность “визуального” – объектно-ориентированного программирования практически всех компонентов СУБД. Интерфейс Visual FoxPro полностью соответствует графической оболочке операционных систем Windows, что делает работу по созданию СУБД достаточно понятной для тех, кто имеет на своих компьютерах данные операционные системы.

Visual FoxPro отличается высокой скоростью, имеет встроенный объектно-ориентированный язык программирования с использованием xBase и SQL, диалекты которых встроены во многие СУБД. Имеет высокий уровень объектной модели. При использовании в вычислительных сетях обеспечивает как монопольный, так и раздельный доступ пользователей к данным. Применяется для приложений масштаба предприятия для работы на различных платформах: Windows 3.x, Windows 95, Macintosh... Минимальные ресурсы ПК: для Visual FoxPro версии 3.0 – процессор 468DX, Windows 3.1, 95, NT, объем оперативной памяти 8 (12) Мб, занимаемый объем на ЖМД 15-80 Мб, а для Visual FoxPro версии 5.0 – Windows 95 или NT, 486 с тактовой частотой 50 МГц, 10 Мб ОЗУ, от 15 до 240 Мб на ЖМД.

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

Visual Basic – это универсальный объектно-ориентированный язык программирования, диалекты которого встроены в Access, Visual FoxPro. Преимущества: универсальность, возможность создания компонентов OLE, невысокие требования к аппаратным ресурсам ЭВМ. Применяется для создания приложений средней мощности, не связанных с большой интенсивностью обработки данных, разработки компонентов OLE, интеграция компонентов Microsoft Office. Минимальные ресурсы ПК: процессор 368DX, Windows 3.1, 95, NT, объем оперативной памяти 6 (16) Мб, занимаемый объем на ЖМД 8-36 Мб.

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

MS SQL-Server – сервер баз данных, реализует подход «клиент-сервер» и взаимодействует с указанными пакетами. Данная программная система в основном предназначена не для разработки пользовательских приложений, а для управления многопользовательскими базами данных, разработанными по архитектуре клиент-сервер. Эта система позволяет управлять базами данных (тиражировать данные, вести их параллельную обработку, получать и передавать данные как в локальной вычислительной сети предприятия, так и через сеть Интернет и др.) взаимодействуя с клиентскими компьютерами, имеющими различные по техническим характеристикам аппаратные средства. SQL-Server предназначен для обработки значительных объемов информации, но, как правило, не более терабайт, что вполне достаточно для отдельных предприятий.

Главные достоинства: высокая степень защиты данных, мощные средства для обработки данных, высокая производительность. Область применения: хранение больших объемов данных, хранение высокоценных данных или данных, требующих соблюдения режима секретности. Минимальные ресурсы ПК: процессор 468DX-33МГц, Windows NT, объем оперативной памяти 16 (32) Мб, занимаемый объем на ЖМД 80 Мб.

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

Microsoft Access. Это одна из самых популярных прикладных программных систем для разработки баз данных.

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

Основным достоинством данной системы является её ориентированность не на программиста, а на конечного пользователя.

Последние версии Microsoft Access позволяют применять её для создания многопользовательских баз данных. В этом случае таблицы баз данных могут быть переданы на сервер, а пользовательский интерфейс сохранен на компьютере клиента. В этом случае предоставляется возможным сочетать простоту разработки всех компонентов СУБД с применением Microsoft Access, а задачи управления многопользовательскими базами данных возложить на MS SQL-Server.

Другим достоинством Microsoft Access является её неоспоримое преимущество перед всеми другими программными продуктами в качестве средства для обучения разработке баз данных.

Минимальные ресурсы ПК: процессор 468DX, Windows 3.1, 95, NT, объем оперативной памяти 12 (16) Мб, занимаемый объем на ЖМД 10-40 Мб.

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

Группа реляционных СУБД представлена на рынке программных продуктов очень широко. Это, например, такие системы, как Paradox, Clarion, dBASE, FoxBASE, Clipper и др. Важнейшей характеристикой любой СУБД является используемый в ней тип транслятора (интерпретатор или компилятор). Программы, написанные для системы-интерпретатора, исполняются лишь в присутствии самой системы. В настоящее время скорость работы таких программ не уступает скорости программ, сгенерированных компилятором. Бесспорным преимуществом интерпретатором для программистов является удобство в разработке и отладке программных продуктов, а так же при освоении языка. Из вышеперечисленных СУБД dBASE, FoxBASE, FoxPro, Access являются интерпретаторами, а Clipper-компилятором. В пакетах dBASE и FoxPro имеется компилятор, позволяющий при желании сформировать EXE-файлы готовых программ. Недостатком систем-компиляторов являются большие суммарные затраты времени на многократную компиляцию и сборку исходных модулей при её отладке, что очень замедляет труд разработчика.

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
Платные лицензии СУБД предпочтительнее бесплатных, когда проект полагается на возможности конкретной БД, и для него важно, чтобы используемые возможности работали так, как заявлено, а проблемы в их работе оперативно устранялись. Сейчас коммерческие и свободные БД используются одинаково часто, а большинство новых проектов выбирают свободные БД, поскольку возможности по работе с данными и стабильность примерно находятся на одном уровне у платных и бесплатных СУБД.

Классификация СУБД в соответствии с используемой моделью данных:

Иерархическая.

Реляционная.

Объектная.

Гибридная (элементы объектной с реляционной).

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

Классификация РСУБД в зависимости от объема поддерживаемых БД и количества пользователей.

Высший уровень. Эти продукты поддерживают крупные БД (сотни и тысячи Гбайт и более), тысячи пользователей. В крупных корпорациях. Представители: ORACLE7, ADABAS 5.3.2, SQL SERVER11.

Средний уровень. Эти продукты поддерживают БД до нескольких сот Гбайт, сотни пользователей. В небольших корпорациях и подразделениях крупных фирм. Представители: InterBase 3.3, Informix-OnLine7.0, Microsoft SQL Server6.0.

Нижний уровень. Эти продукты поддерживают БД до 1 Гбайт, менее 100 пользователей. В небольших подразделениях. Представители: NetWare SQL 3.0, Gupta SQL-Base Server.

Настольные СУБД. Для одного пользователя, используется для ведения настольной БД или как клиент для подключения к серверу БД.

Оценка СУБД

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

Высший уровень:

Oracle7, corp. Oracle

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

SQL Server 10, comp. Sybase

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

Средний уровень :

Informix-OnLine 7.0, comp. Software

Данный продукт поддерживает такие современные технологии, как тиражирование данных, синхронизирующее распределенные БД, и большие двоичные объекты. Он может применятся для запуска OLTP-приложений (высокоскоростной обработки транзакций), но скорость обработки оказывается меньше, чем у продуктов верхней части рынка. Установка возможна на ограниченных количеств платформ. Имеет большие возможности для расширения.

Microsoft SQL Server 6.0, corp. Microsoft

Очень хорошая СУБД. Корпорация Microsoft разработала хороший продукт, который вписывается в общую концепцию компании, выпуская только интегрированные продукты. Эта СУБД интегрирована с Windows NT, дополняя ее. Недостатки: недостаточная масштабируемость, малое количество поддерживаемых программных платформ.

Низкий уровень:

Так как каждая из них предоставляет похожий набор инструментов, то рассматривать каждое в отдельности не будем. В эту группу входят Cupta SQL-Base Server, Watcom SQL Network Server и другие. Они обладают ограниченными возможностями по сравнению с СУБД более высокого класса, но в небольших компаниях, где БД небольшие и количество пользователей ограничено несколько десятками людей, они прекрасно выполняют свои обязанности по управлению БД.

Настольные СУБД:

FoxPro 2.6, corp. Microsoft

Очень ограниченные возможности по обработке данных. Отсутствие возможности установки в сети. Предназначена личных дел. Не рекомендуется для использования в крупных системах. Отсутствует возможность защиты данных, управление доступом и многое другое.

Paradox 5.0, comp. Borland

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

Оценка современных СУБД:

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

Среди представленных продуктов только Oracle7 наиболее полно поддерживает нужные требования. Ниже будут даны основные понятия о сервере Oracle7.

Контрольные вопросы:

Понятие СУБД.

Возможности СУБД.

Классификация СУБД.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то