Основные понятия СУБД
База данных является совокупностью сведений (о реальных объектах, процессах и событиях), которые относятся к некоторой теме или задаче. База организована с целью обеспечения удобного представления этой совокупности сведений.
Реляционная база данных – это множество таблиц, взаимосвязанных между собой, причем в каждой из них содержится информация об объектах определенного типа. В каждой строке таблицы содержатся данные об одном объекте (например, человеке, средстве передвижения), а в столбцах таблицы содержатся разные характеристики этих объектов, которые называются атрибутами (например, имена и адреса людей).
Строку таблицы называют записью. Все записи одинаковы по структуре — они состоят из полей, хранящих атрибуты определенного объекта. В каждом поле записи содержится одна характеристика объекта, имеющая строго определенный тип данных (например, текстовая строка или число). Все записи состоят из одних и тех же полей, различаются только значения атрибутов, хранящихся в них.
При работе с данными используют специальные системы, которые называются системами управления базами данных (СУБД).
Система управления базами данных (СУБД) является совокупностью программных и лингвистических средств общего или специального назначения, которые обеспечивают управление созданием и использованием баз данных
К основным функциям СУБД относятся определение данных (описание структуры БД), их обработка и управление.
Перед тем, как занести данные в таблицу, необходимо определить ее структуру. Под этим подразумевается не только описания наименований и типов полей, но и ряд других характеристик (например, форматы, критерии проверки вводимых данных). Помимо описаний структур таблиц еще задают и связи между таблицами. Связи в реляционных БД определяют по совпадениям значений полей в разных таблицах. К примеру, клиенты и заказы, как правило, связаны отношением один-ко-многим, поскольку 1 записи таблицы со сведениями о клиентах могут соответствовать несколько записей таблицы заказов клиентов.
Рассмотрим отношение между преподавателями и их курсами лекций, отношение типа многие-ко-многим, поскольку 1 преподаватель может вести несколько курсов, в тоже время 1 курс могут вести несколько преподавателей.
И последний тип межтабличных связей — отношение один-к-одному. Этот тип отношений встречается намного реже. Может встречаться лишь в 2 случаях:
- Когда в записи присутствует большое количество полей, в этом случае данные об одном типе объектов делятся на 2 связанные таблицы;
- Когда необходимо установить дополнительные атрибуты для определенного количества записей в таблице, в этом случае создают отдельную таблицу для этих дополнительных атрибутов, связанную отношением один-к-одному с основной таблицей.
Например, если каждый студент должен сдать по одному реферату по предмету, то связь между студентом и темой реферата будет именно типа «один-к-одному».
Любая СУБД может выполнять 4 наиболее простые операции с данными:
- Добавление в таблицу одну или несколько записей;
- Удаление из таблицы одной или нескольких записей;
- Обновление значений некоторых полей в одной или нескольких записях;
- Нахождение одной или нескольких записей, соответствующих определенному условию.
Для выполнения указанных операций используют механизм запросов. Результат выполнения запросов бывает представлен отобранным по определенным критериям множеством записей или изменениями в таблицах. Запрос к базе формируется на специально созданном для этих целей языке, называемом языком структурированных запросов (SQL — Structured Query Language).
И еще одна функция СУБД — это управление данными, под которым, как правило, понимается защита данных от несанкционированного доступа, поддержка многопользовательского режима работы с данными и обеспечение целостности и согласованности данных.
При действующей защите от несанкционированного доступа каждый пользователь может видеть и изменять лишь те данные, которые ему позволено видеть или менять. Средства, которые обеспечивают многопользовательскую работу, не разрешают нескольким пользователям в одно время проводить изменения над одними и теми же данными. Средства, обеспечивающие целостность и согласованность данных, не позволяют проводить изменения, которые могут привести к несогласованности данных. К примеру, когда 2 таблицы между собой связаны отношением один-ко-многим, невозможно внести запись в таблицу на стороне многих (подчиненная таблица), если при этом в таблице на стороне главной таблицы отсутствует соответствующая запись.
Состав СУБД
Современная СУБД состоит из следующих компонентов:
- Ядра, отвечающего за управление данными во внешней и оперативной памяти и журнализацию;
- Процессора языка БД, обеспечивающего оптимизацию запросов по извлечению и изменению данных и создание машинно-независимого исполняемого внутреннего кода;
- Подсистемы поддержки времени исполнения, интерпретирующей программы манипуляции данными пользовательского интерфейса СУБД;
- Сервисных программ (внешних утилитов), предназначенных для обеспечения ряда дополнительных возможностей обслуживания информационной системы.
Классификации СУБД
Различают классификации СУБД по:
Модели данных:
- Иерархические;
- Сетевые;
- Реляционные;
- Объектно-ориентированные;
- Объектно-реляционные.
Степени распределенности:
- Локальные (все части СУБД размещены на 1 компьютере);
- Распределенные (возможно размещение частей СУБД на 2-х и более компьютерах).
По способу доступа к БД выделяют СУБД:
Файл-серверные. В данного типа СУБД файлы данных расположены централизованно на файл-сервере. СУБД находится на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным выполняется с помощью локальной сети. Чтения и обновления синхронизируются файловыми блокировками. Преимущество данной архитектуры заключается в низкой нагрузке на процессор файлового сервера. Недостатками являются:
- Высокая загрузка локальной сети;
- Затрудненное либо невозможное централизованное управление;
- Затрудненное либо невозможное обеспечение высокой степени надежности, доступности и безопасности.
Используются, как правило, в локальных приложениях, применяющих функции управления БД, а также в системах с низкой интенсивностью обработки данных и низкими пиковыми нагрузками на БД. В настоящее время файл-серверную технологию считают устаревшей, а ее применение в крупных информационных системах — недостатком. Примерами систем данного типа являются Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro.
Клиент-серверные. Клиент-серверные СУБД располагаются на сервере вместе с базами данных и осуществляют доступ к ним непосредственно и монопольно. Все клиентские запросы обработки данных обрабатывает клиент-серверная СУБД централизованно. Недостатком клиент-серверных СУБД являются повышенные требования к серверу. К достоинствам относятся:
- Потенциально более низкая загрузка локальной сети;
- Удобное централизованное управление;
- Удобное обеспечение высокой степени надежности, доступности и безопасности.
Примерами таких систем являются Oracle, Firebird, Interbase, IBM DB2, Informix, MS SQL Server, Sybase Adaptive Server Enterprise, PostgreSQL, MySQL, Caché, ЛИНТЕР.
Встраиваемые. Встраиваемой СУБД является система, поставляемая в качестве составной части некоторого программного продукта и не требующая самостоятельной установки. Встраиваемые СУБД предназначены для локального хранения данных своего приложения и нерассчитанные на коллективное использование в сети. На физическом уровне встраиваемая СУБД, как правило, реализуется в виде подключаемой библиотеки. Доступ приложения к данным осуществляется с помощью SQL либо специальных программных интерфейсов. Примерами таких систем являются OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Microsoft SQL Server Compact, ЛИНТЕР.
Стратегии работы с внешней памятью
СУБД с непосредственной записью — это системы, в которых все измененные блоки данных сразу же записываются во внешнюю память, как только поступит сигнал подтверждения любой транзакции. Такую стратегию используют лишь при высокой эффективности внешней памяти.
СУБД с отложенной записью — это система, в которой изменения аккумулируются в буфере внешней памяти до наступления любого из нижеприведенных событий:
- Контрольной точки;
- Конца пространства во внешней памяти, отведенного под журнал. Система выполняет контрольную точку и пишет журнал сначала, стирая прежнюю информацию;
- Останова - СУБД ожидает, чтобы все содержимое буферов внешней памяти было перенесено во внешнюю память, после этого делает отметки, что останов базы данных выполнен корректно;
- Нехватки оперативной памяти для буферов внешней памяти.
Используя данную стратегию можно избежать частого обмена с внешней памятью и значительно повысить эффективность работы СУБД.