Виды СУБД по способу доступа
База данных хранится на так называемом сервере — это не обязательно отдельный компьютер, некоторые системы позволяют «поднять» сервер на конечном устройстве. Если база и все части системы находятся на одном компьютере, и ими пользуются с того же устройства, СУБД называется локальной. Если части системы находятся на разных устройствах — это распределенная СУБД.
Системы по-разному обеспечивают хранение и доступ к данным. Существуют три вида архитектуры.
Клиент-серверная. База данных находится на сервере, СУБД располагается там же. К базе могут обращаться различные клиенты — конечные устройства. Например, пользователи запрашивают информацию на конкретном сайте.
Клиент-серверная архитектура подразумевает, что прямой доступ к базе есть только у сервера — он обрабатывает обращения клиентов. Сами клиенты не обязаны иметь специальное ПО для взаимодействия с базами данных. Так для доступа к сайту не нужно устанавливать программы, которые будут обрабатывать запросы, — все сделает сервер, жестко отделенный от клиентской части.
Такие базы надежны и обычно имеют высокую доступность. Ими пользуются чаще всего.
Файл-серверная. Тут все иначе: база хранится на файл-сервере, вот СУБД — на каждом клиентском компьютере. Доступ к базе данных могут получить только устройства, на которых установлена и настроена система.
Сейчас такие системы используются очень редко, в основном во внутренних приложениях, которые работают в локальных сетях. В крупных проектах файл-серверные СУБД не применяют.
Встраиваемая. Это маленькая локальная СУБД, которая используется для хранения данных отдельной программы. Такие системы не функционируют как самостоятельные единицы, а встраиваются в программный продукт как модуль. Они нужны при разработке локальных приложений, целиком размещаются на одном устройстве и обычно очень мало весят.
Что такое СУБД
Чтобы понять, что такое СУБД, нужно сначала узнать, что такое база данных (БД).
База данных — это набор упорядоченных и структурированных данных, которые хранятся на определённом компьютере. Проще всего представить её как большую Excel-таблицу, где у каждого элемента (строки) есть определённые свойства (столбцы).
Если создать базу данных для магазина продуктов, то у каждого товара — например, жвачки, шоколадки и бутылки воды, — будут свойства: цена, количество штук в наличии и срок годности.
Базу данных можно представить как таблицуИллюстрация: Оля Ежак для Skillbox Media
Базы данных — это просто файлы на диске компьютера, куда можно записывать новые элементы. Но сами БД ничего не умеют и для них нужно писать свои методы для управления — например, для добавления нового элемента или поиска нужной записи. Чтобы облегчить работу программистам, придумали СУБД.
Система управления базами данных (СУБД) — это набор инструментов, которые позволяют удобно управлять базами данных: удалять, добавлять, фильтровать и находить элементы, менять их структуру и создавать резервные копии.
СУБД можно представить как прослойку между базой данных и пользовательскими запросами к ней.
СУБД — это прослойка между базой данных и пользователемИллюстрация: Оля Ежак для Skillbox Media
Когда пользователь нажимает на кнопку на сайте — например, чтобы скачать картинку, — сайт составляет специальный запрос к базе данных и отправляет его в СУБД. Она разбирает его и ищет в базе данных запрашиваемую информацию, а затем возвращает обратно сайту. Он уже конвертирует их в читаемый для пользователя вид и отдаёт ему.
Без СУБД разработчикам пришлось бы самостоятельно искать в файлах баз данных информацию, которая им нужна. Можно сказать, что база данных без СУБД — это как машина без кузова. В теории это машина: можно её заправлять, менять масло и детали. Но нормально поездить на ней не получится. Придётся сначала всё прикрутить, сделать кузов и только потом уже ехать.
Базы данных без СУБД — примерно то же, что эта машинаИзображение: Big Pants Production / Shutterstock / Skillbox Media
Из чего состоят системы управления базами данных
Если база — это хранилище, то СУБД — комплекс средств для обслуживания хранилища. СУБД имеет сложное устройство.
Ядро СУБД отвечает за главные операции: хранение базы, ее обслуживание, документирование изменений. Это основная часть системы.
Процессор языка или компилятор обрабатывает запросы. Обычно СУБД реляционного, объектно-ориентированного и объектно-реляционного типа поддерживают язык SQL и внутренние языки запросов.
Набор утилит предназначен для различных сервисных функций: их может быть очень много, а некоторые СУБД могут расширяться с помощью пользовательских модулей.
Устройство СУБД
Основные функции СУБД
Создание базы данных, ее хранение, обеспечение доступа пользователей к данным осуществляются с помощью специальных программных инструментов – систем управления базами данных.
Определение 1
Система управления базами данных (СУБД) – это комплекс языковых и программных средств, обеспечивающих создание, хранение и совместное использование баз данных.
Основными функциями СУБД являются:
- Ведение словаря данных. Словарем данных называется информация, позволяющая описывать данные, хранящиеся в базах. В словарь данных входят названия, типы и размеры элементов данных, названия связей, ограничения целостности данных.
- Поддержка многопользовательского режима. В случае, когда с базой данных работает несколько пользователей, СУБД должна гарантировать корректность обновления данных разными пользователями.
- Восстановление баз данных после сбоев. СУБД ведет журнал, куда поступает информация обо всех изменениях в базах данных. Восстановление после сбоев происходит на основании данных, зафиксированных в журнале.
- Управление доступом к данным. СУБД позволяет создавать пользователей и давать им различные права доступа к данным. На основании прав доступа производится контроль.
- Поддержка целостности данных.
Определение 2
Целостностью данных называется соответствие данных логике той модели данных, на которой основана СУБД и всем накладываемым на данные ограничениям.
СУБД должна постоянно контролировать выполнение этих ограничений.
Поддержка транзакций.
Определение 3
Транзакцией называется последовательность операций, которая должна быть либо выполнена целиком, либо отменена.
Пример 1
Допустим, необходимо выполнить следующую последовательность действий:
- Определить сумму на счете №1.
- Вычислить 10% от этой суммы.
- Уменьшить сумму на счете №1 на полученное значение.
- Увеличить сумму на счете №2 на это же значение.
Если на любом из этих шагов произойдет сбой в системе, то в лучшем случае не произойдет перевод денег со счета №1, на счет №2. А в худшем деньги будут сняты со счета №1, но на счет №2 не попадут. Поэтому эти четыре операции должны быть оформлены транзакцией. В случае сбоя, система должна вернуться в то состояние, в котором она была до выполнения шага 1.
Кроме перечисленных функций различные СУБД могут обладать рядом дополнительных.
Примеры современных СУБД
- Oracle Database — объектно-реляционная клиент-серверная СУБД, одна из первых и самых популярных в мире. Платная, сложная, подходит для больших проектов.
- PostgreSQL — объектно-реляционная СУБД клиент-серверного типа, которую иногда называют бесплатным аналогом Oracle. Масштабная, рассчитана на высоконагруженные проекты, содержит огромное количество функций и распространяется бесплатно.
- MySQL — реляционная клиент-серверная СУБД. Популярный выбор для проектов небольшого и среднего размера. Легкая, гибкая и довольно простая в использовании. Она бесплатная, хорошо подходит для обучения и веб-проектов.
- MongoDB — документно-ориентированная NoSQL-СУБД, где данные хранятся в JSON-подобных файлах. Тоже бесплатная, а внутренний язык запросов основан на JavaScript.
- SQLite — маленькая и легкая встраиваемая СУБД, которая активно применяется в локальных проектах.
Особенности построения баз данных, тонкости работы с запросами, поддержку целостности и другие важные темы можно изучить самостоятельно с помощью учебников и мануалов, а также на курсах SkillFactory.
Современная СУБД состоит из:
- ядра — части программ СУБД, отвечающих за управление данными в памяти и журнализацию
- Процессора языка базы данных, обеспечивающего оптимизацию запросов на извлечение и изменение данных, и создание БД
- Подсистемы поддержки времени исполнения, интерпретирующую программы манипуляции данными, которые создают интерфейс пользователя СУБД
- Сервисных программ (внешних утилит), которые обеспечивают прочие возможности по обслуживанию информационных систем.
Так как через СУБД осуществляют все процессы, применимые к базам данных, следовательно, лучше будет выделить только её основные возможности.
Список литературы по теме:
- Когаловский М.Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 2002. — 800 с.
- Кузнецов С. Д. Основы баз данных. — 2-е изд. — М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2007. — 484 с. Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: Вильямс, 2005. — 1328 с. Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика = Database Systems: A Practical Approach to Design, Implementation, and Management. — 3-е изд. — М.: Вильямс, 2003. — 1436 с.
- Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс = Database Systems: The Complete Book. — Вильямс, 2003. — 1088 с. C. J. Date Date on Database: Writings 2000–2006. — Apress, 2006. — 566 с.
Файловая система NTFS Что такое информация?
Классификация СУБД
Самым важным признаком, по которому классифицируются СУБД, является модель данных.
Как и модели данных СУБД бывают следующих видов:
- Иерархические. Самыми известными иерархическими СУБД является IMS и Cache . Модель удобна для хранения структур, которые являются иерархическими по своей природе. Иерархической является, например, структура предприятия с подчиненными подразделениями. Однако, большинство предметных областей не соответствуют иерархической структуре. Потому иерерхические СУБД не популярны и используются в основном в устаревших ИС.
- Сетевые. Известными представителями этого класса являются IDMS и CronosPRO. Данная модель является усовершенствованием иерархической. Высокая сложность и жесткость структуры базы данных также снижают популярность этого класса СУБД;
- Реляционные. На сегодняшний день реляционные базы данных и СУБД являются стандартом де-факто. Чаще всего, когда речь идет о базе данных, то подразумевается именно реляционная. На рынке ПО существует много представителей этого класса СУБД: MS SQL SERVER,IBM DB2, MySQL, PostgreSQL и т.д. ;
- Постреляционные. Постреляционная модель основана на тех же принципах, что и реляционная, но без учета требования неделимости данных. Их достоинством является более высокая скорость работы, а недостатком – сложности в обеспечении целостности данных. Типичным представителем являются СУБД uniVerse и UniData;
- No sql (нереляционные). Модель no sql отличается простотой и гибкостью. Она позволяет добавлять элементы данных в таблицы без предварительного объявления об изменении структуры. Наиболее известные представители MongoDB и CouchDB.
- Объектные. Этот класс СУБД хранит данные в виде объектов. Такой подход очень удобен для предметных областей со сложной структурой. Недостатком является необходимость использовать процедурные языки для доступа к данным. К современным объектным СУБД относятся POET, Jasmine, Versant, O2, ODB-Jupiter.
- Объектно-реляционные. Некоторые производители СУБД совмещают в своих продуктах реляционную и объектную модели. К таким «гибридам» относятся Informix Universal Server и Oracle8 Universal Data Server
- Многомерные. Если реляционная модель хранит данные в двумерных таблицах, то многомерная позволяет добавлять дополнительные измерения. В результате данных хранятся не в таблицах, а в гиперкубах. Многомерные СУБД используются в задачах анализа данных. На многомерной технологии основаны СУБД jBASE, EssBase.
Классификации СУБД
Существует несколько признаков, по которым можно классифицировать СУБД.
СУБД по модели данных бывают:
- Иерархические СУБД
- Сетевые СУБД
- Реляционные СУБД
- Объектно-ориентированные СУБД
- Объектно-реляционные СУБД
В настоящее время в серьезных проекта используются 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,
- ЛИНТЕР.
Для рассмотрения лишь части основных возможностей и внутреннего устройства любой СУБД требуется один или несколько отдельных учебных курсов.
Для чего нужны СУБД
- Создание и хранение базы данных нужного типа — он зависит от того, к какому виду относится система.
- Управление базой — сюда относится создание новых записей, модификация существующих или удаление данных, которые уже не нужны.
- Получение нужных сведений из базы в удобной форме с помощью запросов, обычно на специальном языке SQL. Запросы фильтруют данные и выдают только нужную информациЮ, так как в базе могут быть миллионы записей. СУБД обязана поддерживать хотя бы один язык запросов.
- Администрирование и контроль доступа к базе данных, выдача разным пользователям различных прав и поддержка конфиденциальности сведений.
- Обеспечение безопасности и целостности данных, чтобы какая-либо проблема не привела к потере информации из базы.
- Защита от возможных атак и сбоев.
- Отслеживание изменений, резервное копирование и восстановление базы в случае падения.
Как работает СУБД