Представим, что в ваше распоряжение попала какая-либо база данных. Она содержит очень полезные, для вас или кого-то ещё, сведения. Однако вы ничего не сможете с ней сделать!
Можно попытаться открыть её текстовым редактором и извлечь часть данных. Но это будет лишь набор данных в непонятном для вас порядке. Ещё меньше пользы вы получите из БД, если она будет зашифрована. Отсюда возникает вопрос - с помощью чего была создана структура базы данных, и как потом с ней работать?
Оказывается, с одной стороны всё значительно проще, а с другой стороны - гораздо сложнее, чем вы себе представляете. Поясню, что для работы с определенным типом и моделью базы данных используется та или иная программа. В их называют системой управления базами данных.
Дадим определение системы управления базами данных.
Система управления базами данных (СУБД) представляет собой комплекс языковых и программных средств, которые обеспечивают управление созданием и использованием баз данных.
Современная СУБД состоит из:
- ядра - части программ СУБД, отвечающих за управление данными в памяти и журнализацию
- Процессора языка базы данных, обеспечивающего оптимизацию запросов на извлечение и изменение данных, и создание БД
- Подсистемы поддержки времени исполнения, интерпретирующую программы манипуляции данными, которые создают интерфейс пользователя СУБД
- Сервисных программ (внешних утилит), которые обеспечивают прочие возможности по обслуживанию информационных систем.
Так как через СУБД осуществляют все процессы, применимые к базам данных, следовательно, лучше будет выделить только её основные возможности.
Основными функциями СУБД являются
- Управление данными, хранящимися во внешней памяти
- Управление данными, загруженными в оперативную память с использованием дискового кэша
- Журнализация событий и изменений, резервное копирование и восстановление БД после сбоев
- поддержка языков обращения с БД (язык определения данных, язык манипулирования данными).
Кстати, по этой теме вы можете скачать презентацию в PowerPoint.
Классификации СУБД
Существует несколько признаков, по которым можно классифицировать СУБД.
СУБД по модели данных бывают:
- Иерархические СУБД
- Сетевые СУБД
- Реляционные СУБД
- Объектно-ориентированные СУБД
- Объектно-реляционные СУБД
В настоящее время в серьезных проекта используются 2 последних типа.
СУБД по степени распределённости
- Локальные (СУБД размещается только на одном компьютере)
- Распределённые (части СУБД могут размещаться на 2-х и более компьютерах).
По способу доступа к БД
Файл-серверные СУБДВ них файлы с данными расположены централизованно на специальном файл-сервере. СУБД же должны быть расположены на каждом клиенте (рабочей станции). Доступ СУБД к данным производится посредством локальной сети. Поддержка синхронизации чтений и обновлений осуществляется за счет временных блокировок затребованных файлов.
Плюсом этой архитектуры можно назвать низкую нагрузку на файловый сервер.
К минусам же: высокая загрузка трафиком локальной сети; сложность или невозможность централизованного управления; нельзя обеспечить такие важные характеристики как надёжность, доступность и безопасность. Файл-серверные СУБД используют в локальных приложениях; в системах с малой интенсивностью обработки данных и небольшими пиковыми нагрузками на базу данных.
Сейчас её при создании крупной информационной системы не используют.
Примеры файл-серверных СУБД:
- dBase,
- FoxPro,
- Microsoft Access,
- Paradox,
- Visual FoxPro.
Клиент-серверная СУБД расположена на сервере вместе с базой данных и осуществляет доступ к БД исключительно в монопольном режиме. Все запросы на обработку данных клиентских приложений и станций обрабатываются централизованно.
Недостатком такого типа СУБД можно назвать повышенные требования к серверу.
Достоинствами: более низкую загрузку локальной сети; преимущества централизованного управления; поддержку высокой надёжности, доступности и безопасности.
Примеры клиент-серверных СУБД:
- Caché,
- Firebird,
- IBM DB2,
- Informix,
- Interbase,
- MS SQL Server,
- MySQL, Oracle,
- PostgreSQL,
- Sybase Adaptive Server Enterprise,
- ЛИНТЕР.
Это вид СУБД, который может выступать лишь в качестве составной части определенного программного комплекса, без необходимости процедуры отдельной установки. Такой вид СУБД может быть использован для локального хранения данных своего приложения и не рассчитан на коллективное использование в компьютерной сети. Физически же это зачастую реализуется в виде подключаемой библиотеки. Со стороны приложения доступ к данным происходит посредством SQL-запросов либо через специальный программный интерфейс.
Примеры встраиваемых СУБД:
- Firebird Embedded,
- BerkeleyDB,
- Microsoft SQL Server Compact,
- OpenEdge,
- SQLite,
- ЛИНТЕР.
Для рассмотрения лишь части основных возможностей и внутреннего устройства любой СУБД требуется один или несколько отдельных учебных курсов.
Реферат
Тема: Современные системы управления базами данных
Куринов Сергей Борисович
Москва, 1997
Введение.
Современная жизнь немыслима без эффективного управления. Важной категорией являются системы обработки информации, от которых во многом зависит эффективность работы любого предприятия ли учреждения. Такая система должна:
· обеспечивать получение общих и/или детализированных отчетов по итогам работы;
· позволять легко определять тенденции изменения важнейших показателей;
· обеспечивать получение информации, критической по времени, без существенных задержек;
· выполнять точный и полный анализ данных.
Современные СУБД в основном являются приложениями 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 FoxPro 3.0, Visual Basic 4.0, Visual С++, Access 7.0, SQL Server 6.5. Наиболее интересной чертой этих пакетов являются их большие возможности интеграции, совместной работы и использования данных, так как данные пакеты являются продуктами одного производителя, а также используют сходные технологии обмена данными.
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 (выпущена в 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-х). Основное различие данных моделей в представлении взаимосвязей между объектами.
Иерархическая модель данных строится по принципу иерархии объектов, то есть один тип объекта является главным, все нижележащие – подчиненными. Устанавливается связь «один ко многим», то есть для некоторого главного типа существует несколько подчиненных типов объектов. Иначе, главный тип именуется исходным типом, а подчиненные – порожденными. У подчиненных типов могут быть в свою очередь подчиненные типы. Наивысший в иерархии узел (совокупность атрибутов) называют корневым.
Сетевая модель данных строится по принципу «главный и подчиненный тип одновременно», то есть любой тип данных одновременно может одновременно порождать несколько подчиненных типов (быть владельцем набора) и быть подчиненным для нескольких главных (быть членом набора).
Реляционная модель данных объекты и связи между ними представляются в виде таблиц, при этом связи тоже рассматриваются как объекты. Все строки, составляющие таблицу в реляционной базе данных должны иметь первичный ключ . Все современные средства СУБД поддерживают реляционную модель данных.
Атрибут – информационное отображение свойств объекта. Каждый объект характеризуется набором атрибутов.
Таблица – упорядоченная структура, состоящая из конечного набора однотипных записей.
Первичный ключ – атрибут (или группа атрибутов), позволяющий однозначным образом определить каждую строку в таблице.
Напротив, альтернативный ключ – атрибут (или группа атрибутов), не совпадающая с позволяющий первичным ключом и однозначным образом определяющий каждую строку в таблице.
Современные технологии, используемые в работе с данными.
Технология «Клиент-сервер» – технология, разделяющая приложение- СУБД на две части: клиентскую (интерактивный графический интерфейс, расположенный на компьютере пользователя) и сервер, собственно осуществляющий управление данными, разделение информации, администрирование и безопасность, находящийся на выделенном компьютере. Взаимодействие «клиент-сервер» осуществляется следующим образом: клиентская часть приложения формирует запрос к серверу баз данных, на котором выполняются все команды, а результат исполнения запроса отправляется клиенту для просмотра и использования. Данная технология применяется, когда размеры баз данных велики, когда велики размеры вычислительной сети, и производительность при обработке данных, хранящихся не на компьютере пользователя (в крупном учреждении обычно имеет место именно такая ситуация). Если технология «клиент-сервер» на применяется, то для обработки даже нескольких записей весь файл копируется на компьютер пользователя, а только затем обрабатывается. При этом резко возрастает загрузка сети, и снижается производительность труда многих сотрудников.
Microsoft Access, Microsoft Visual FoxPro, Microsoft Visual Basic обеспечивают средства для создания клиентских частей в приложениях «клиент-сервер», которые сочетают в себе средства просмотра, графический интерфейс и средства построения запросов, а Microsoft SQL Server является на сегодняшний день одним из самых мощных серверов баз данных.
OLE 2. 0 (Object Linking and Embedding – связывание и внедрение объектов) – стандарт, описывающий правила интеграции прикладных программ. Применяется для использования возможностей других приложений. OLE 2.0 используется для определения и совместного использования объектов несколькими приложениями, которые поддерживают данную технологию. Например, использование в среде Access таблиц Excel и его мощных средств построения диаграмм или использование данных, подготовленных Access, в отчетах составленных в редакторе текстов Word (связывание или включение объекта).
OLE Automation (Автоматизация OLE) – компонент OLE, позволяющий программным путем устанавливать свойства и задавать команды для объектов другого приложения. Позволяет без необходимости выхода или перехода в другое окно использовать возможности нужного приложения. Приложение, позволяющее другим прикладным программам использовать свои объекты называется OLE сервером . Приложение, которое может управлять объектами OLE серверов называется OLE контроллер или OLE клиент . Из рассмотренных программных средств в качестве OLE серверов могут выступать Microsoft Access, а также Microsoft Excel, Word и Graph... Microsoft Visual FoxPro 3.0 и 5.0 может выступать только в виде OLE клиента.
RAD (Rapid Application Development – Быстрая разработка приложений) – подход к разработке приложений, предусматривающий широкое использование готовых компонентов и/или приложений и пакетов (в том числе от разных производителей).
ODBC (Open Database Connectivity – открытый доступ к базам данных ) – технология, позволяющая использовать базы данных, созданные другим приложением при помощи SQL.
SQL (Structured Query Language – язык структурированных запросов) – универсальный язык, предназначенный для создания и выполнения запросов, обработки данных как в собственной базе данных приложения, так и с базами данных, созданных другими приложениями, поддерживающими SQL. Также SQL применяется для управления реляционными базами данных.
VBA (Visual Basic for Applications – Visual Basic для Приложений) – разновидность (диалект) объектно-ориентированного языка программирования Visual Basic, встраиваемая в программные пакеты.
Список литературы
1. Б. Богумирский
Эффективная работа на IBM PC в среде Windows 95
СПб, «Питер», 1997, 1000с.
2. Д. Вейскас
Эффективная работа с Microsoft Access 7.0
«Microsoft Press», 1997, 864с.
3. Дж. Вудкок, М. Янг
Эффективная работа с Microsoft Office 95
«Microsoft Press», 1000с.
4. А. Горев, С. Макашарипов, Р. Ахаян
Эффективная работа с СУБД
СПб, «Питер», 1997, 704с.
5. А. В. Потапкин
Основы Visual Basic для пакета Microsoft Office
М, «Эком», 1995, 256с.
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.
Контрольные вопросы:
Понятие СУБД.
Возможности СУБД.
Классификация СУБД.
Обеспечивающей сегодня управление информацией, составляют базы данных (БД) и системы управления базами данных (СУБД), история которых насчитывает более 30 лет. Эволюция СУБД происходит на фоне беспрецедентного роста разнообразных ЭВМ, а технология баз данных в свою очередь обеспечивает необходимый фундамент такого роста. Технология управления данными сформировалась на основе опыта разработки и применения десятков СУБД, многих моделей данных, языков определения и манипулирования данными. Одновременно создавалась теория БД, в которой были развиты такие разделы, как теория моделей данных и методы эквивалентности преобразований, теория функциональных зависимостей в БД, методы эквивалентных представлений БД и схем, проблемы полноты и эквивалентности в реляционном исчислении, теория БД с неполной информацией, методы обеспечения целостности БД в условиях потока конкурентных запросов, методы структурирования памяти для хранения разнообразных данных.
Быстрое развитие потребностей применений выдвигает ряд новых требований к СУБД:
· поддержка широкого спектра представлений данных и операций над ними в БД (включая фактографические, документальные и картинно-графические данные);
· управление мультибазами данных (в общем случае их неоднородности);
· управление распределенными БД, интеграция неоднородных БД;
· естественные и эффективные представления о моделях данных разнообразных отношений объектов предметных областей;
· развитие техники баз знаний (БЗ), интеграция концепций баз данных и знаний, реализация дедуктивных БД;
· обеспечение целостности БД в широком диапазоне разнообразных предметных областей и операционных обстановок.
Системой управления базами данных называют программную систему, предназначенную для создания на ЭВМ общей базы данных для множества приложений; поддержания ее в актуальном состоянии и обеспечения эффективного доступа пользователей к содержащимся в ней данным в рамках предоставленных им полномочий. СУБД предназначена, таким образом, для централизованного управления базой данных как социальным ресурсом в интересах всей совокупности пользователей. Доступ к базе данных отдельных пользователей возможен только через посредство СУБД.
Классификация СУБД :
1- по используемому языку общения:
· замкнутые - имеют собственные самостоятельные языки общения пользователей с БД, они обеспечивают непосредственное общение с системой в режиме диалога, позволяют работать без программистов;
· открытые - для общения с БД используется язык программирования, "расширенный" операторами языка манипулирования данными (ЯМД), в этом случае необходимо присутствие квалифицированного программиста;
2- по числу поддерживаемых СУБД уровней моделей данных :
· одно-, двух-, трехуровневые системы. Теоретически обоснован выбор трехуровневой архитектуры данных; однако на практике СУБД для персональных ЭВМ часто объединяют концептуальный и внутренний уровни представления;
3- по выполняемым функциям:
· операционные - иные виды обработки по получению информации, не хранящейся в явном виде в БД;
· информационные - позволяют организовать хранение данных, поиск и выдачу нужных данных из БД и поддерживать их целесообразность и актуальность;
4- по сфере применения :
· универсальные - настраиваются на любую предметную область путем создания соответствующей БД и прикладных программ;
· проблемно-ориентированные - ориентация на определенные процедуры обработки данных, присущих конкретной области применения;
5- по допустимым режимам работы :
· пакетный;
· телеобработка;
6- по числу пользователей :
1. однопользовательские;
2. многопользовательские;
7-по поддерживаемой модели данных:
1. реляционные (сетевые, иерархические);
2. объектные.
Поколения СУБД и их основные характеристики
1 поколение: на основе сетевых и иерархических моделей; впервые была представлена развитая функциональность СУБД в рамках единой системы, с языками манипулирования и определения данными для наборов записей. Примеры CODASYL, IMS.
2 поколение : на основе реляционных моделей данных; в этих системах использовались непроцедурные языки манипулирования данными и предусматривалась значительная независимость данных. Примеры - DB2 (IBM), INGRES (INDRES Corporation), ORACLE (Oracle Corporation), Rdb/VMS (Digital Equipment Corporation). Однако существует ряд недостатков, заставивших разработчиков СУБД, сформулировать предполагаемые функции следующего поколения: в реляционных системах баз данных трудно хранить сегменты текста, графики, пиктограммы и сложных структуры данных.
3 поколение: принципы .
1. Помимо традиционных услуг по управлению данными, СУБД обеспечат поддержку гораздо более богатых структур объектов и правил. Более богатая структура объектов характеризует средства, необходимые для хранения и манипулирования нетрадиционными элементами данных (тексты, пространственные данные, графика). Помимо этого, создателям приложений следует предоставить возможность задавать группу правил, касающихся элементов данных, записей. Ссылочная целостность - элементарный пример реализации правил.
2. СУБД третьего поколения должны включить в себя и СУБД второго поколения, а именно: взять от них непроцедурный доступ и независимость данных (автоматически поддерживается согласованность всех путей доступа к данным, и оптимизатор запросов автоматически выбирает лучший способ выполнения выданной пользователем команды) .
3. СУБД должны быть открыты для других подсистем. Любая СУБД должны быть оснащена языком 4 поколения (4 GL), разнообразными инструментами поддержки принятия решений, интерфейсами с графическими бизнес - пакетами, возможностью запуска приложений из базы данных на другой машине распределенной СУБД. Весь набор инструментов должен хорошо функционировать на разнообразных аппаратных средствах с различными операционными системами.
Предложения, касающиеся управления объектами и правилами .
· Система типов СУБД должна быть богатой и разнообразной (система абстрактных типов данных для создания новых базовых типов, конструкторы типа массив, последовательность, запись, множество и т. д.)
· Наследование - организация типов в иерархию наследования.
· Наличие функций, в т. ч. процедур и методов данных, инкапсуляция.
Основные функции систем управления базами данных
К числу функций СУБД (с пользой для пользователя) принято относить следующее:
1. управление данными во внешней памяти;
2. управление буферами оперативной памяти;
3. управление транзакциями;
4. журнализация и восстановление базы данных после сбоев;
5. поддержание языков баз данных.
Функция управления данными во внешней памяти включает в себя обеспечение необходимых структур внешней памяти как для хранения непосредственных данных, так и для служебных целей; например, для убыстрения доступа к данным в некоторых случаях (обычно используются индексы). В СУБД поддерживается собственная система именования объектов как в предметной области. В некоторых реализациях СУБД активно используются возможности существующих файловых систем. Однако пользователя не должны знать, использует ли СУБД файловую структуру или нет. Существует множество способов организации внешней памяти баз данных. Как и все решения, принимаемые при создании баз данных, конкретные методы организации внешней памяти необходимо выбирать вместе со всеми остальными решениями.
СУБД обычно работают с базами данных значительных размеров; по крайней мере, этот размер превышает доступный объем оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью внешней памяти. Единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти (UNIX ). И даже если операционная система производит общесистемную буферизацию, этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части базы данных. В развитых СУБД поддерживается свой набор буферов оперативной памяти с собственной дисциплиной замены буферов. При управлении буферами необходимо разрабатывать и применять согласованные алгоритмы буферизации, журнализации и синхронизации. Заметим, что существует собственное направление СУБД, которое ориентировано на постоянное присутствие всей базы данных в оперативной памяти. Это направление основывается на предположении, что в предвидимом будущем объем оперативной памяти может быть настолько велик, что позволит не беспокоиться о буферизации.
Транзакция - это последовательность операций над базой данных, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует изменение базы данных, произведенные ею, во внешней памяти, базы данных. Понятие транзакции необходимо для поддержания логической целостности базы данных (например, необходимость объединения элементарных операций над файлами). Поддержание механизма транзакций - необходимое условие даже однопользовательских СУБД. Но понятие транзакции гораздо важнее в многопользовательских СУБД. То свойство, что каждая транзакция начинается при целостном состоянии базы данных и оставляет это состояние целостным после своего завершения, делает очень удобным использование понятия транзакции как единицы активности пользователя по отношению к базе данных. При соответствующем механизме управления транзакциями пользователь может почувствовать себя единственным пользователем СУБД.
Одно из основных требований к СУБД - надежное хранение данных во внешней памяти . Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние базы данных после аппаратного или программного сбоя. Поддержание надежного хранения данных в базе данных требует избыточности хранения данных, причем та их часть, которая используется для восстановления, должна храниться особо надежно. Наиболее распространенный метод поддержания такой избыточности - это ведение журнала изменений базы данных. Во всех случаях придерживаются “упреждающей “ записи в журнал (так называемый протокол Write Ahеad Log). Эта стратегия заключается в том, что запись об изменении любого объекта базы данных должна попасть во внешнюю память журнала раньше, чем она попадет во внешнюю память основной части базы данных. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления базы данных после любого сбоя.
Для работы с базой данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по свои функциям языков. Чаще всего выделяются два: язык определения схемы БД (SDL - Shema Defininatin Language) и язык манипулирования данными (DML - Data Manipulation Language). В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с базой данных, начиная от ее создания обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных реляционных СУБД является язык SQL. Прежде всего он сочетает средства SDL и DML, т. е. позволяет определять схему реляционной базы данных и манипулировать данными. Язык SQL содержит специальные средства определения ограничения целостности; специальные операторы языка позволяют определять так называемые представления БД, фактически являющиеся хранимыми в базе данных запросами. Наконец, авторизация доступа к объектам базы данных производится на основе специального набора операторов SQL.
Типовая организация современной СУБД
Организация типичной СУБД и состав ее компонентов соответствует набору функций. Логически в современной СУБД можно выделить внутреннюю часть - ядро СУБД (Data Base Engine), компилятор языка базы данных (обычно SQL), подсистему поддержки времени выполнения, набор утилит.
Ядро СУБД отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями и журнализацию. Соответственно, можно выделить и такие компоненты ядра (по крайней мере, логически, хотя во многих СУБД они существуют явно), как менеджер данных, менеджер буферов, менеджер транзакций, менеджер журнала.
Все функции взаимосвязаны, поэтому компоненты должны взаимодействовать по продуманным и спланированным протоколам. Ядро СУБД обладает собственным интерфейсом, не доступным пользователю, напрямую и используемым в программах, производимых компилятором SQL, и утилитах базы данных. Ядро СУБД является основной резидентной частью СУБД. При использовании архитектуры “клиент-сервер” ядро является основным составляющим элементом серверной части системы.
Основная функция компилятора языка баз данных - компиляция операторов языка баз данных в некоторую выполняемую программу. Основной проблемой реляционных СУБД является наличие непроцедурного языка, т. е. в операторе такого языка специфицируется некоторое действие над базой данных, но эта спецификация не процедура, она лишь описывает в некоторой форме условия совершения желаемого действия. Поэтому компилятор должен сначала решить, каким образом выполнить оператор языка, прежде чем произвести программу. Результатом компиляции является выполнимая программа, представляемая в некоторых системах в машинных кодах, но более часто в выполняемом внутреннем машинно-независимом коде. В последнем случае реальное выполнение оператора производится с привлечением подсистемы поддержки времени выполнения, представляющей собой, по сути, интерпретатор этого внутреннего кода.
В отдельные утилиты обычно выделяют такие процедуры, которые слишком накладно выполнять с использованием языка баз данных, например, загрузка базы данных, сбор статистики, глобальная проверка целостности. Утилиты программируются с использованием ядра СУБД, а иногда с проникновением внутрь ядра.
Современные системы представляют не просто СУБД, но и набор мощных инструментов разработчика, сильно снижающих трудозатраты на разработку, а также полный спектр средств эксплуатации разработанной системы.
Что представляет собой современная СУБД
Полномасштабная СУБД состоит из трех интегрированных комплексов программных продуктов, которые обеспечивают практически любую потребность заказчика, а также поддерживающих их комплекс услуг.
1. Комплекс базы данных - куда входит ядро СУБД, обеспечивающее любые виды контроля и защиты данных, и продукты, поддерживающие работу с распределенной базой данных в разнородной по типа компьютеров и сетевых средств сети. В ядро входят, как правило, средства параллельной работы и средства, реализующие многие из перспективных функций языка SQL очередного стандарта.
2. Комплекс инструментов - куда входят до 20 программных продуктов при одновременной поддержке нескольких инструментальных средств. В число инструментов входят программы, ориентированные на разные классы пользователей: программистов, аналитиков по стратегическому планированию автоматизации предприятия, аналитиков - постановщиков задач, продвинутых пользователей, обычных работников офиса. К ним добавляются инструменты, отвечающие требованиям современных тенденций в автоматизации.
3. Комплекс приложений - несколько десятков пакетов прикладных программ, разработанных самой фирмой, и еще большее число приложений других разработчиков.
Можно более детально рассмотреть функциональное назначение отдельных элементов, входящих в состав современных СУБД.
1. Поддержка модели данных.
1.1 Класс структур данных
1.2 Класс манипулирования данными
1.3 Класс ограничений целостности
Для создания БД разработчик описывает ее логическую структуру, организацию в среде хранения, а также способы видения БД пользователями. При этом используются предоставляемые СУБД языковые средства (см. Лекцию) и система настраивается на работу с конкретной БД. Такие описания БД называют соответственно схемой (концептуальной схемой), схемой хранения (или внутренней схемой) и внешними схемами.
Обрабатывая схемы БД, СУБД создает пустую БД требуемой структуры, которую можно заполнить сведениями о предметной области.
Принципиально важное свойство СУБД заключается в том, что она позволяет различать и поддерживать два независимых взгляда на базу данных -
1- взгляд пользователя, воплощаемый в "логическом " представлении,
2- взгляд системы - "физическое" представление, характеризующее организацию данных.
Обеспечение логической независимости - предоставление БД определенной свободы вариации "логического " представления БД без соответствующей модификации "физического" представления. В результате достигается возможность адаптации взгляда пользователя на БД к его реальным потребностям, конструирования различных "логических" взглядов на одну и ту же "физическую" БД. При этом пользовательское видение БД может по своей структуре существенно отличаться от структуры хранимых данных и синтезироваться не только непосредственно из хранимых фактически объектов и их связей, но и с помощью различного рода агрегирования таких объектов и их связей, осуществляемого в процессе обработки пользовательских запросов. Логическая независимость обеспечивается средствами многоуровневой архитектуры.
Под "физической" независимостью понимается способность СУБД предоставить некоторую свободу модификации способов организации данных в среде хранения, не вызывая при этом изменений в логической структуре. Благодаря этому можно вносить изменения в организацию хранимых данных, производить настойку системы с целью повышения ее производительности. "Физическая "независимость реализуется на счет тех же механизмов. что и "логическая".
2. Средства администратора данных.
2.1 Ведение словаря-справочника
2.2 Сбор и анализ статистики функционирования БД
2.3 Управление представлением БД в среде хранения
Настройка СУБД на конкретные условия применения может включать модификацию параметров организации среды хранения данных: выбор новых, более эффективных методов доступа. Обычно настройка системы позволяет изменить структуру хранимых данных с целью повышения производительности системы и возвращения используемой памяти для повторного использования.
2.4 Реорганизация (реструктуризация) БД
Логическая реструктуризация - модификация концептуальной схемы с последующим приведением БД в соответствие с вновь сформированной схемой.
2.5 Контроль целостности и восстановления БД
Поддержка логической целостности (непротиворечивости) БД обеспечивается через объявление ограничений целостности модели в схеме БД, проверку при каждом обновлении данных или связей между ними. Для многих СУБД ограничения целостности поддерживаются только на уровне ввода данных в БД и ассоциируются с использованием экранных форм.
Нарушения логической целостности могут быть связаны не только с вводом в нее недостоверных данных или с неправильными операциями обработки данных. Они могут являться следствием несвоевременного прерывания выполнения процедур для обработки запроса выданного другим пользователем. Для изучения и ликвидация подобной ситуации предусмотрен механизм транзакций.
Проблема физической целостности БД возникает в связи с ее возможным разрушением в результате сбоев и отказов оборудования вычислительной системы. Развитые СУБД располагают средствами восстановления разрушенной БД, основанными на использовании ее контрольной копии и журнализации изменений.
2.6 Конвертирование данных и прикладных программ
3. Средства разработки приложений
3.1 Проектирование БД
3.2 Интерфейс с языками программирования
3.3 Средства генерации (генератор программного кода, форм ввода - вывода, пользовательских интерфейсов)
3.4 Генерация отчетов
4. Средства конечного пользователя.
4.1 Тип конечного пользователя (язык запросов конечного пользователя, интерфейс типа меню)
4.2 Средства обучения, подсказки и меню
5. Интерфейсы с другими СУБД.
6. Средства работы в сети ЭВМ и создание распределенных БД.
Организация параллельного доступа пользователей к БД является довольно сложной задачей. Здесь невозможно допустить одновременное чтение одних блоков, одновременное обновление - все это может привести к нарушению целостности БД. Для предотвращения подобной ситуации предусмотрена техника транзакций и блокирования ресурсов данных.
В мультипользовательских СУБД предусматривается механизм разграничения доступа (управление доступом) пользователей к БД, поскольку наряду с данными, доступными каждому пользователю, в ней могут храниться и такие данные, которые в своей работе могут использовать только избранные пользователи. Кроме того, может быть ограничена группа пользователей, которым доступен некоторый набор операций (например, операция обновления).
Ключевые слова :
система управления базами данных (СУБД)
поколения СУБД
функции СУБД
управление внешней памятью
управление транзакциями
буферизация данных во внешней памяти
хранение данных во внешней памяти
языки СУБД
ядро СУБД
компилятор языка СУБД
менеджер транзакций
менеджер журнала
менеджер буферов
менеджер данных
логическое представление данных
физическое представление данных
независимость данных
администрирование данных
логическая (физическая) реструктуризация
1. Ульман Дж., Уидом Дж. Введение в системы баз данных./Пер. с англ. – М.: Издательство «Лори», 200с.
2. Системы управления базами данных. Журнал издательского дома "Открытые системы", 1гг.
3. Кагаловский технологий баз данных. – М.: Финансы и статистика, 2002. – 800с.
4. Дейт К. Дж. Введение в системы баз данных.: Пер. с англ. - 6-е изд. - К.: Диалектика,1999. – 784 с.