Основные сведения о базах данных
Эта статья содержит краткие сведения о базах данных: что это, чем они могут быть полезны, каковы функции их отдельных элементов. Здесь используется терминология, свойственная Microsoft Access, однако описываемые понятия применимы по отношению к любым базам данных.
В этой статье:
- Что такое база данных?
- Элементы базы данных Access
Что представляет собой база данных?
База данных — это инструмент для сбора и упорядочения информации. В базах данных могут храниться сведения о людях, продуктах, заказах или что-либо еще. Многие базы данных начинаются как список в текстовой программе или электронной таблице. По мере увеличения списка в данных начинают появляться избыточность и несогласованность. Данные трудно понять в виде списка, и существуют ограниченные способы поиска или извлечения подмножества данных для проверки. После появления этих проблем рекомендуется перенести данные в базу данных, созданную системой управления базами данных (СУБД), например Access.
Компьютерная база данных — это хранилище объектов. В одной базе данных может быть больше одной таблицы. Например, система отслеживания складских запасов, в которой используются три таблицы, — это не три базы данных, а одна. В базе данных Access (если ее специально не настраивали для работы с данными или кодом, принадлежащими другому источнику) все таблицы хранятся в одном файле вместе с другими объектами, такими как формы, отчеты, макросы и модули. Базы данных, созданные в формате Access 2007–2016 (который также используется в Access для Microsoft 365, Access 2021 и Access 2019), имеют расширение ACCDB, а базы данных, созданные в более ранних форматах Access, имеют расширение файла .mdb.
Использование Access позволяет:
- добавлять новую информацию в базу данных, например новый артикул складских запасов;
- изменять информацию, уже находящуюся в базе, например перемещать артикул;
- удалять информацию, например если артикул был продан или утилизирован;
- упорядочивать и просматривать данные различными способами;
- обмениваться данными с другими людьми с помощью отчетов, сообщений электронной почты, внутренней сети или Интернета.
Элементы базы данных Access
Ниже приведены краткие описания элементов стандартной базы данных Access.
Таблицы

Таблица базы данных похожа на электронную таблицу — и там, и там информация расположена в строках и столбцах. Поэтому импортировать электронную таблицу в таблицу базы данных обычно довольно легко. Основное различие заключается в том, как данные структурированы.
Чтобы база данных была как можно более гибкой и чтобы в ней не появлялось излишней информации, данные должны быть структурированы в виде таблиц. Например, если речь идет о таблице с информацией о сотрудниках компании, больше одного раза вводить данные об одном и том же сотруднике не нужно. Данные о товарах должны храниться в отдельной таблице, как и данные о филиалах компании. Этот процесс называется нормализацией.
Строки в таблице называются записями. В записи содержатся блоки информации. Каждая запись состоит по крайней мере из одного поля. Поля соответствуют столбцам в таблице. Например, в таблице под названием «Сотрудники» в каждой записи находится информация об одном сотруднике, а в каждом поле — отдельная категория информации, например имя, фамилия, адрес и т. д. Поля выделяются под определенные типы данных, например текстовые, цифровые или иные данные.
Еще один способ описать записи и поля — визуализировать библиотеку в старом стиле карта каталоге. Каждое карта в шкафу соответствует записи в базе данных. Каждая информация об отдельном карта (автор, заголовок и т. д.) соответствует полю в базе данных.
Дополнительные сведения о таблицах см. в статье Общие сведения о таблицах.
Формы

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

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

Запросы могут выполнять множество функций в базе данных. Одна из их основных функций — находить информацию в таблицах. Нужная информация обычно содержится в нескольких таблицах, но, если использовать запросы, ее можно просматривать в одной. Кроме того, запросы дают возможность фильтровать данные (для этого задаются критерии поиска), чтобы отображались только нужные записи.
Используются и так называемые «обновляемые» запросы, которые дают возможность редактировать данные, найденные в основных таблицах. При работе с обновляемым запросом помните, что правки вносятся в основные таблицы, а не только в таблицу запроса.
Запросы бывают двух основных типов: запросы на выборку и запросы действий. Запрос на выборку просто извлекает данные и делает их доступными для использования. Результаты запроса можно просмотреть на экране, распечатать или скопировать в буфер обмена. Кроме того, можно использовать выходные данные запроса в качестве источника записей для формы или отчета.
Запрос на действие, как следует из названия, выполняет задачу с данными. Запросы действий можно использовать для создания новых таблиц, добавления данных в существующие таблицы, обновления данных или удаления данных.
Дополнительные сведения о запросах см. в статье Знакомство с запросами.
Макросы

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

Подобно макросам, модули — это объекты, с помощью которых базу данных можно сделать более функциональной. Но если макросы в Access составляются путем выбора из списка макрокоманд, модули создаются на языке Visual Basic для приложений (VBA). Модули представляют собой наборы описаний, инструкций и процедур. Существуют модули класса и стандартные модули. Модули класса связаны с конкретными формами или отчетами и обычно включают в себя процедуры, которые работают только с этими формами или отчетами. В стандартных модулях содержатся общие процедуры, не связанные ни с каким объектом. Стандартные модули, в отличие от модулей класса, перечисляются в списке Модули в области навигации.
Дополнительные сведения о модулях см. в статье Общие сведения о программировании в Access.
Ошибка «Не удается сгруппировать по полям, выбранным с «*», при выполнении запроса в Access
Эта статья применима к файлам баз данных Microsoft Access (.mdb) или (.accdb). Требуются базовые навыки работы с кодом, макросами и взаимодействия.
Симптомы
При выполнении запроса в базе данных Microsoft Access, которая использует одну из следующих агрегатных функций, может появиться сообщение об ошибке:
Вы получите следующее сообщение об ошибке:
Не удается сгруппировать по полям, выбранным с помощью «*».
Причина
Эта проблема возникает при использовании агрегатных функций в запросе и не задается для свойства « Вывод всех полей» запроса значение «Нет».
Если для свойства « Вывод всех полей» запроса задано значение «Да», в предложение select запроса Access добавляется подстановочный знак звездочки (*), представляющий все столбцы таблицы базы данных. Однако нельзя использовать подстановочный знак звездочки (*) вместе с агрегатной функцией в предложении select запроса Access. Поэтому при выполнении запроса Access может появиться сообщение об ошибке, упомянутое в разделе «Симптомы».
Решение
Чтобы устранить эту проблему, задайте для свойства «Вывод всех полей» запроса значение «Нет«, а затем выполните запрос Access, использующий агрегатную функцию. Для этого выполните следующие действия:
- Запустите Access.
- Откройте базу данных Access, содержащую проблемный запрос.
- В окне базы данных щелкните «Запросы » в разделе «Объекты «.
Примечание. В Access 2007 щелкните группу «Запросы » в левой области навигации.
Примечание. В Access 2007 откройте вкладку « Конструктор» и выберите » Лист свойств » в группе «Сервис «.
Примечание. В Access 2007 откройте вкладку «Хранимая процедура » в диалоговом окне «Свойство». Убедитесь, что параметр «Вывод всех столбцов» не выбран.
Примечание. В Access 2007 откройте вкладку « Конструктор» и выберите команду « Выполнить» в группе «Сервис «.
Дополнительная информация
Вы можете использовать параметр «Вывод всех полей», чтобы автоматически включить все поля из базовых таблиц в результаты окончательного запроса. Вы также можете использовать параметр «Вывод всех полей», чтобы автоматически включить все поля из запросов в результаты последнего запроса. При этом не нужно добавлять все поля из базовых таблиц или все поля из запросов в бланк.
Чтобы сделать это в Access 2003 и более ранних версиях Access, выполните следующие действия.
- Запустите Access.
- В окне «База данных» выберите пункт «Параметры » в меню «Сервис «.
- В диалоговом окне «Параметры» установите флажок «Вывод всех полей» на вкладке «Таблицы и запросы «.
- Чтобы выполнить поиск абонентской группы для пользователя в поле Абонентская группа (телефонный контекст), нажмите кнопку Обзор.
В Access 2007 выполните следующие действия:
- Запустите Access.
- Нажмите кнопку Microsoft Office и выберите пункт » Параметры доступа».
- Щелкните «Конструкторы объектов».
- Установите флажок «Вывод всех полей» в разделе «Конструктор запросов» и нажмите кнопку «ОК».
При изменении параметра «Вывод всех полей » это влияет только на параметр свойства для новых запросов, которые вы создаете. При изменении параметра «Вывод всех полей » это не влияет на существующие запросы.
Действия по воспроизведению проблемы в Access 2003
- Запустите Access.
- Откройте пример базы данных Northwind.mdb.
- Выполните запрос «Промежуточные итоги заказа» в образце базы данных Northwind.mdb, чтобы убедиться, что запрос «Промежуточные итоги заказа» выполняется успешно. Для этого выполните следующие действия:
- В окне базы данных щелкните «Запросы » в разделе «Объекты «.
- В области справа щелкните правой кнопкой мыши запрос «Заказать промежуточные итоги» и выберите команду «Открыть».
- В меню «Файл » нажмите кнопку » Закрыть».
Обратите внимание, что в запросе «Промежуточные итоги заказа» используется агрегатная функция Sum().
- В окне базы данных щелкните «Запросы » в разделе «Объекты «.
- В области справа щелкните правой кнопкой мыши запрос «Заказать промежуточные итоги» и выберите пункт «Конструктор «.
Обратная связь
Были ли сведения на этой странице полезными?
Какая из приведенных операций не выполняется в базе данных
11.1. Основные понятия баз данных
11.1.1. Базы данных и системы управления базами данных
База данных — это организованная структура, предназначенная для хранения информации. Поскольку данные и информация — понятия взаимосвязанные, но не тождественные, то следует заметить некоторое несоответствие в этом определении. Его причины чисто исторические. В те годы, когда формировалось понятие баз данных, в них действительно хранились только данные. Однако сегодня большинство систем управления базами данных (СУБД) позволяют размещать в своих структурах не только данные, но и методы (то есть программный код), с помощью которых происходит взаимодействие с потребителем или с другими программно-аппаратными комплексами. Таким образом, мы можем говорить, что в современных базах данных хранятся отнюдь не только данные, но и информация.
Это утверждение легко пояснить, если, например, рассмотреть базу данных крупного банка. В ней есть все необходимые сведения о клиентах, об их адресах, кредитной истории, состоянии расчетных счетов, финансовых операциях и т. д. Доступ к этой базе имеется у достаточно большого количества сотрудников банка, но среди них вряд ли найдется такое лицо, которое имеет доступ ко всей базе полностью и при этом способно единолично вносить в нее произвольные изменения. Кроме данных, база содержит методы, и средства, позволяющие каждому из сотрудников оперировать только с теми данными, которые входят в его компетенцию. В результате взаимодействия данных, содержащихся в базе, с методами, доступными конкретным сотрудникам, образуется информация, которую они потребляют и на основании которой в пределах собственной компетенции производят ввод и редактирование данных.
С понятием базы данных тесно связано понятие системы управления базой данных. Это комплекс программных средств, предназначенных для создания структуры новой базы, наполнения ее содержимым, редактирования содержимого и визуализации информации. Под визуализацией информации базы понимается отбор отображаемых данных в соответствии с заданным критерием, их упорядочение, оформление и последующая выдача на устройство вывода или передача по каналам связи.
В мире существует множество систем управления базами данных. Несмотря на то что они могут по-разному работать с разными объектами и предоставляют пользователю различные функции и средства, большинство СУБД опираются на единый устоявшийся комплекс основных понятий. Это дает нам возможность рассмотреть одну систему и обобщить ее понятия, приемы и методы на весь класс СУБД. В качестве такого учебного объекта мы выберем СУБД Microsoft Access, входящую в пакет Microsoft Office наряду с пакетами Microsoft Word и Microsoft Excel. В тех случаях, когда конкретные приемы операций зависят от используемой версии программы, мы будем опираться на последнюю версию Microsoft Access 2000, хотя в основном речь будет идти о таких обобщенных понятиях и методах, для которых различия между конкретными версиями программ второстепенны.
11.1.2. Структура простейшей базы данных
Сразу поясним, что если в базе нет никаких данных (пустая база), то это все равно полноценная база данных. Этот факт имеет методическое значение. Хотя данных в базе и нет, но информация в ней все-таки есть — это структура базы. Она определяет методы занесения данных и хранения их в базе. Простейший “некомпьютерный” вариант базы данных — деловой ежедневник, в котором каждому календарному дню выделено по странице. Даже если в нем не записано ни строки, он не перестает быть ежедневником, поскольку имеет структуру, четко отличающую его от записных книжек, рабочих тетрадей и прочей писчебумажной продукции.
Базы данных могут содержать различные объекты, но, забегая вперед, скажем, что основными объектами любой базы данных являются ее таблицы. Простейшая база данных имеет хотя бы одну таблицу. Соответственно, структура простейшей базы данных тождественно равна структуре ее таблицы, рис. 11.1.
Мы знаем, что структуру двумерной таблицы образуют столбцы и строки. Их аналогами в структуре простейшей базы данных являются поля и записи. Если записей в таблице пока нет, значит, ее структура образована только набором полей. Изменив состав полей базовой таблицы (или их свойства), мы изменяем структуру базы данных и, соответственно, получаем новую базу данных.

Рис. 11.1. Простая таблица базы данных
11.1.3. Свойства полей базы данных
Поля базы данных не просто определяют структуру базы — они еще определяют групповые свойства данных, записываемых в ячейки, принадлежащие каждому из полей. Ниже перечислены основные свойства полей таблиц баз данных на примере СУБД Microsoft Access.
- Имя поля — определяет, как следует обращаться к данным этого поля при автоматических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц).
- Тип поля — определяет тип данных, которые могут содержаться в данном поле.
- Размер поля — определяет предельную длину (в символах) данных, которые могут размещаться в данном поле.
- Формат поля — определяет способ форматирования данных в ячейках, принадлежащих полю.
- Маска ввода — определяет форму, в которой вводятся данные в поле (средство автоматизации ввода данных).
- Подпись — определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется свойство Имя поля).
- Значение по умолчанию — то значение, которое вводится в ячейки поля автоматически (средство автоматизации ввода данных).
- Условие на значение — ограничение, используемое для проверки правильности ввода данных (средство автоматизации ввода, которое используется, как правило, для данных, имеющих числовой тип, денежный тип или тип даты).
- Сообщение об ошибке — текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных (проверка ошибочности выполняется автоматически, если задано свойство Условие на значение).
- Обязательное поле — свойство, определяющее обязательность заполнения данного поля при наполнении базы;
- Пустые строки — свойство, разрешающее ввод пустых строковых данных (от свойства Обязательное поле отличается тем, что относится не ко всем типам данных, а лишь к некоторым, например к текстовым).
- Индексированное поле — если поле обладает этим свойством, все операции, связанные с поиском или сортировкой записей по значению, хранящемуся в данном поле, существенно ускоряются. Кроме того, для индексированных полей можно сделать так, что значения в записях будут проверяться по этому полю на наличие повторов, что позволяет автоматически исключить дублирование данных.
Здесь мы должны обратить особое внимание читателя на то, что поскольку в разных полях могут содержаться данные разного типа, то и свойства у полей могут различаться в зависимости от типа данных. Так, например, список вышеуказанные свойств полей относится в основном к полям текстового типа. Поля других типов могут иметь или не иметь эти свойства, но могут добавлять к ним и свои. Например для данных, представляющих действительные числа, важным свойством является количество знаков после десятичной запятой. С другой стороны, для полей, используемых для хранения рисунков, звукозаписей, видеоклипов и других объектов OLE, большинство вышеуказанных свойств не имеют смысла.
11.1.4. Типы данных
- Таблицы баз данных, как правило, допускают работу с большим количеством разных типов данных. Так, например, базы данных Microsoft Access работают со следующими типами данных.
- Текстовый — тип данных, используемый для хранения обычного неформатированного текста ограниченного размера (до 255 символов).
- Мемо — специальный тип данных для хранения больших объемов текста (до 65 535 символов). Физически текст не хранится в поле. Он хранится в другом месте базы данных, а в поле хранится указатель на него, но для пользователя такое разделение заметно не всегда.
- Числовой — тип данных для хранения действительных чисел.
- Дата/время — тип данных для хранения календарных дат и текущего времени.
- Денежный — тип данных для хранения денежных сумм. Теоретически, для их записи можно было бы пользоваться и полями числового типа, но для денежных сумм есть некоторые особенности (например, связанные с правилами округления), которые делают более удобным использование специального типа данных, а не настройку числового типа.
- Счетчик — специальный тип данных для уникальных (не повторяющихся в поле) натуральных чисел с автоматическим наращиванием. Естественное использование — для порядковой нумерации записей
- Логический — тип для хранения логических данных (могут принимать только два значения, например Да или Нет).
- Поле объекта OLE — специальный тип данных, предназначенный для хранения объектов OLE, например мультимедийных. Реально, конечно, такие объекты в таблице не хранятся. Как и в случае полей МЕМО, они хранятся в другом месте внутренней структуры файла базы данных, а в таблице хранятся только указатели на них (иначе работа с таблицами была бы чрезвычайно замедленной).
- Гиперссылка — специальное поле для хранения адресов URL Web-объектов Интернета. При щелчке на ссылке автоматически происходит запуск браузера и воспроизведение объекта в его окне.
- Мастер подстановок — это не специальный тип данных. Это объект, настройкой которого можно автоматизировать ввод в данных поле так, чтобы не вводить их вручную, а выбирать из раскрывающегося списка.
11.1.5. Безопасность баз данных
Базы данных — это тоже файлы, но работа с ними отличается от работы с файлами других типов, создаваемых прочими приложениями. Выше мы видели, что всю работу по обслуживанию файловой структуры берет на себя операционная система. Для баз данных предъявляются особые требования с точки зрения безопасности, поэтому в них реализован другой подход к сохранению данных.
При работе с обычными приложениями для сохранения данных мы выдаем соответствующую команду, задаем имя файла и доверяемся операционной системе. Если мы закроем файл, не сохранив его, то вся работа по созданию или редактированию файла пропадет безвозвратно.
Базы данных — это особые структуры. Информация, которая в них содержится, очень часто имеет общественную ценность. Нередко с одной и той же базой (например, с базой регистрации автомобилей в ГИБДД) работают тысячи людей по всей стране. От информации, которая содержится в некоторых базах, может зависеть благополучие множества людей. Поэтому целостность содержимого базы не может и не должна зависеть ни от конкретных действий некоего пользователя, забывшего сохранить файл перед выключением компьютера, ни от перебоев в электросети.
Проблема безопасности баз данных решается тем, что в СУБД для сохранения информации используется двойной подход. В части операций, как обычно, участвует операционная система компьютера, но некоторые операции сохранения происходят в обход операционной системы.
Операции изменения структуры базы данных, создания новых таблиц или иных объектов происходят при сохранении файла базы данных. Об этих операциях СУБД предупреждает пользователя. Это, так сказать, глобальные операции. Их никогда не проводят с базой данных, находящейся в коммерческой эксплуатации, — только с ее копией. В этом случае любые сбои в работе вычислительных систем не страшны.
С другой стороны, операции по изменению содержания данных, не затрагивающие структуру базы, максимально автоматизированы и выполняются без предупреждения. Если работая с таблицей данных мы что-то в ней меняем в составе данных, то изменения сохраняются немедленно и автоматически.
Обычно, решив отказаться от изменений в документе, его просто закрывают без сохранения и вновь открывают предыдущую копию. Этот прием работает почти во всех приложениях, но только не в СУБД. Все изменения, вносимые в таблицы базы, сохраняются на диске без нашего ведома, поэтому попытка закрыть базу “без сохранения” ничего не даст, так как все уже сохранено. Таким образом, редактируя таблицы баз данных, создавая новые записи и удаляя старые, мы как бы работаем с жестким диском напрямую, минуя операционную систему.
Предупреждение. По указанным выше причинам нельзя заниматься учебными экспериментами на базах данных, находящихся в эксплуатации. Для этого следует создавать специальные учебные базы или выполнять копии структуры реальных баз (без фактического наполнения данными).
Что такое реляционная база данных?
Реляционная база данных – это набор данных с заданными взаимосвязями.
Реляционная модель объединяет данные в таблицы, где каждая строка представляет собой отдельную запись, а каждый столбец состоит из атрибутов, содержащих значения. Табличный формат позволяет легко устанавливать связи между точками данных и получать доступ к информации любым необходимым способом, не реорганизовывая данные.
Для того чтобы провести глубокий анализ взаимосвязей между точками данных, таблицы можно объединить в реляционной базе данных. Предположим, таблица «Клиент» содержит столбцы с названиями и адресами со значениями строк «Джон» и «Калифорния». Таблица «Товары» также содержит столбцы с названиями и стоимостью со значениями строк «Обувь» и «12 $». Для того чтобы определить товары, которые пользуются наибольшим спросом, необходимо объединить таблицу «Клиент» с таблицей «Товары».
Иными словами, реляционная база данных – это средство для хранения данных и обеспечения доступа к ним с заданными отношениями.
Что такое «система управления реляционными базами данных»?
Система управления реляционными базами данных (реляционная СУБД) – это инструменты и сервисы программного слоя для управления реляционными таблицами. В действительности термины реляционная СУБД и реляционная база данных взаимозаменяемы. Реляционная база данных предусматривает согласованный интерфейс для приложений, пользователей и реляционной базы данных. Организации используют реляционную СУБД в целях управления большими объемами критически важной для бизнеса информации из различных отделов.
Несколько пользователей могут параллельно использовать одну базу данных разными способами, например выполнять операции, связанные с базами данных и агрегировать ключевые точки данных, исключая избыточность данных. Системы управления реляционными базами данных также предоставляют администратору базы данных расширенные возможности управления пользовательскими данными.
Почему реляционные базы данных важны?
С момента изобретения компьютеров управление данными на машинах и их хранение непрерывно исследуются. До появления реляционных баз данных организации использовали иерархические базы данных. Наиболее ранняя модель, подобная папкам на компьютере, позволяла организовывать большие объемы данных, но без возможности выявить взаимосвязи между ними. Кроме того, иерархические базы данных отличались сложной структурой, предназначались исключительно для определенных приложений и требовали экспертных технических знаний.
Решением стала модель реляционного типа, благодаря которой физическое хранилище данных удалось отделить от управления базами данных и их использования. Пользователи современных реляционных баз данных могут хранить и извлекать данные без необходимости управлять физическим хранилищем данных. Кроме того, появилась возможность управления логическими структурами путем программирования.
Каковы преимущества реляционной базы данных?
Основное преимущество реляционной модели данных заключается в возможности извлекать из данных значимую информацию, например подсчитывать, сортировать и группировать данные в таблице, а также выполнять математические операции и создавать сложные отчеты. Реляционные базы данных остаются наиболее популярной моделью хранения данных и сегодня. Дополнительные преимущества приведены ниже.
Целостность данных
Целостными называют данные, которые являются полными, точными и единообразными. Для поддержания целостности данных в реляционных базах данных используются такие инструменты, как первичный ключ, внешний ключ, ограничения Not NULL, Unique, Default.
Указанные ограничения целостности позволяют применять практические правила к данным в таблицах, а также гарантировать их точность и надежность. Большинство реляционных баз данных также поддерживает интеграцию пользовательского кода, который выполняется в ответ на определенные операции в точке данных, связанной с базой данных. Кроме того, пользовательский код можно интегрировать в сохраненные процедуры. В этом случае выполнение запускает вызов клиентом или приложением.
Безопасность
Большинство систем управления реляционными базами данных оснащены сложными средствами управления доступом. Разрешения на доступ к данными предоставляют администраторы, выбирая определенные данные для конкретных пользователей. Права на чтение, изменение и удаление данных можно назначать даже для отдельных ячеек. Такое детальное управление доступом гарантирует высокий уровень безопасности реляционных баз данных.
Резервное копирование и аварийное восстановление
Большинство реляционных баз данных предусматривают функции импорта и экспорта, что ускоряет процесс резервного копирования. Современные реляционные базы данных в облаке обеспечивают непрерывное зеркальное отображение, которое позволяет восстанавливать утерянные данные за считанные секунды.
Поддержка сообщества
Некоторые технологии реляционных баз данных имеют открытый исходный код и могут использоваться бесплатно. Базы данных с открытым исходным кодом активно используют сообщества, которые непрерывно совершенствуют и адаптируют функции. Реляционные базы данных оснащены инструментами и программным обеспечением для разработчиков и специалистов по обработке данных, которые были разработаны в соответствии с потребностями и целями пользователей.
Как работают реляционные базы данных?
Реляционные базы данных формируют среду, из которой приложения получают доступ к данным и собирают их различными способами, не реорганизуя таблицы данных в коде приложения. Ниже описаны ключевые функции реляционной базы данных.
Модель данных
Реляционная база данных состоит из таблиц реальных объектов или концепций, часто называемых сущностями. В каждом столбце таблицы хранится определенный тип данных, так называемый атрибут, а в каждой ячейке – фактическое значение атрибута. Все строки и столбцы представляют собой набор связанных значений, относящихся к одному объекту или сущности.
Каждой строке таблицы можно присвоить уникальный идентификатор, так называемый первичный ключ. Ссылаясь на первичный ключ другой существующей таблицы, внешний ключ создает логическое соединение. Иными словами, строки нескольких таблиц объединяются посредством пары первичного и внешнего ключа. Например, каждая строка таблицы «Заказы» может содержать внешний ключ с идентификатором клиента, который определяет строку в таблице «Клиент», которая, в свою очередь, содержит полную информацию о клиенте.
SQL
Structured Query Language (SQL) – это основной интерфейс связи с реляционными базами данных. В 1986 г. Американский национальный институт стандартов (ANSI) признал язык SQL стандартом. Стандарт ANSI SQL поддерживают все широко используемые движки реляционных баз данных. Язык SQL можно использовать для обновления, удаления или хранения данных, извлечения подмножеств данных и управления всеми аспектами реляционной базы данных.
Кроме того, язык SQL можно довольно легко освоить, поскольку его операторы используют общепринятые ключевые слова на английском языке, и интегрировать с различными языками программирования. Таким образом, пользователи могут внедрять SQL-запросы на языке программирования Java для создания высокопроизводительных приложений обработки данных с основными системами баз данных SQL, такими как Oracle или MS SQL Server.
Транзакции
Транзакция реляционной базы данных – это один или несколько операторов SQL, выполненных в виде последовательности операций, представляющих собой единую логическую задачу. Транзакции представляют собой предложение типа «все или ничего», то есть вся транзакция подлежит выполнению как единая операция. Если системе управления реляционными базами данных не удается выполнить какую-либо часть транзакции, ни один из отдельных компонентов не будет обработан. Согласно терминологии реляционной модели транзакция завершается либо действием COMMIT, либо ROLLBACK. Система управления базами данных обрабатывает каждую транзакцию согласованно и безопасно, независимо и изолированно от других транзакций.
Соответствие требованиям ACID
В целях сохранения целостности данных все транзакции в реляционных базах данных должны соответствовать требованиям ACID, то есть быть атомарными, согласованными, изолированными и устойчивыми.
Атомарность
Атомарность гарантирует целостное выполнение транзакции. Если выполнить какую-либо часть транзакции не удается, все изменения транзакции, будут отменены.Согласованность
Согласованность – это условие, при котором данные, записываемые в реляционную базу данных во время транзакции, должны соответствовать всем правилам и ограничениям, включая ограничения целостности, каскады и триггеры.Изоляция
Изоляция гарантирует независимое выполнение транзакции. Если несколько пользователей одновременно пытаются изменить данные в реляционной базе данных, механизмы управления параллелизмом блокируют перезапись изменений, вносимых такими пользователями.Устойчивость
Устойчивость гарантирует постоянство всех внесенных в реляционную базу данных изменений на момент выполнения транзакции.Какие типы баз данных существуют?
Существует множество различных типов баз данных, предназначенных для оптимизации гибкости и масштабируемости определенных моделей данных. К этим типам баз данных относятся:
- Реляционные базы данных: данные хранятся в формате таблиц со строками, содержащими отдельные записи, и столбцами, содержащими атрибуты или точки данных, связанные с записями.
- База данных «ключ-значение»: данные хранятся в формате словаря, где каждый элемент имеет ключ и значение.
- База данных документов: данные хранятся в документах в формате JSON, XML или в другом формате, предназначенном для хранения частично структурированных данных.
- Графовая база данных: данные хранятся в формате графа знаний, содержащего узлы, края для определения взаимосвязи между этими узлами и свойства, в которых хранятся отдельные точки данных.
Чем реляционные базы данных отличаются от нереляционных?
Реляционные базы данных отличаются от нереляционных, так называемых NoSQL, структурой содержащихся в них данных. В реляционной базе данных данные организованы в таблицы, индексы и представления. В таблицах можно легко создавать, читать, изменять и удалять соответствующие данные с помощью языка запросов, например SQL. Все строки имеют одинаковую структуру, как в электронной таблице.
В нереляционной базе данных вместо таблиц используются пары «ключ-значение», формат JSON, графы и другие структуры данных. Многие нереляционные базы данных также называют базами данных NoSQL, поскольку данные хранятся и запрашиваются без использования языка SQL.
Нереляционные базы данных, так называемые NoSQL, созданы специально для нереляционных моделей данных и содержат гибкие схемы для разработки современных приложений. Такие базы данных широко распространены в связи с простотой разработки, функциональностью и производительностью, независимо от масштаба. Некоторые отличия включают:
Механизм хранения данных
В реляционных базах данных структурированные данные хранятся в строках и столбцах на базе правил. В базах данных NoSQL хранятся отдельные элементы данных в отдельных файлах.
Гибкая структура
В реляционных базах данных данные хранятся в таблицах согласно строгим правилам о вариациях данных и связях между таблицами. Нереляционные базы данных характеризуются большей гибкостью, поскольку содержат неструктурированные данные. Такие базы данных можно использовать для хранения файлов, видео и другого неструктурированного контента.
Механизм целостности данных
Реляционные базы данных соответствуют строгим требованиям ACID. Стандартные нереляционные базы данных имеют более гибкую модель – BASE (базовая доступность, неустойчивое состояние, согласованность в конечном счете), что гарантирует доступность, но не высокий уровень согласованности. Состояние базы данных со временем может меняться и в итоге становится постоянным. Современные нереляционные базы данных также соответствуют требованиям ACID, характеризуются высоким уровнем согласованности и доступности и т. д.
Каковы критерии выбора реляционной базы данных?
Способы использования реляционных баз данных зависят от типа и объема хранимых данных, а также от уровня производительности, необходимого для доступа к ним. Именно поэтому разработано множество движков реляционных баз данных – от Amazon Aurora, Oracle и Microsoft SQL Server до MySQL и PostgreSQL, – каждый из которых имеет преимущества и недостатки.
При выборе реляционной базы данных стоит учитывать необходимость в поиске поставщика управляемых облачных сервисов, которые буду поддерживать базу данных. Служба реляционных баз данных Amazon (Amazon RDS) – это полностью управляемый сервис баз данных, который обеспечивает выделение ресурсов, исправление, резервное копирование и другие важные задачи для самых популярных реляционных баз данных. Таким образом, пользователи могут выбрать движок базы данных в соответствии со способом использования, не беспокоясь о требованиях к его обслуживанию.
Как AWS обеспечивает соответствие требованиям к системе управления реляционными базами данных?
Служба реляционных баз данных Amazon (Amazon RDS) – это набор управляемых сервисов, который упрощает настройку, использование и масштабирование реляционной базы данных в облаке. Облачные базы данных имеют множество преимуществ, среди которых производительность, масштабируемость и экономичность. Ниже приведены примеры движков реляционных баз данных, доступных в Amazon RDS.
Amazon Aurora
Amazon Aurora – это движок реляционных баз данных, совместимый с MySQL и PostgreSQL. Такой движок отличается высокой скоростью и доступностью высокопроизводительных коммерческих баз данных, а также обеспечивает простоту в использовании и экономичность баз данных с открытым исходным кодом. Движок Amazon Aurora обеспечивает в 5 раз большую пропускную способность MySQL и в 3 раза большую пропускную способность PostgreSQL, тогда как его стоимость равна одной десятой стоимости коммерческих баз данных.Oracle
С помощью Amazon RDS для Oracle можно за считанные минуты выполнить экономичное развертывание различных версий баз данных Oracle с настраиваемой мощностью аппаратных ресурсов. Поддерживается использование уже приобретенных лицензий Oracle с почасовой оплатой. RDS управляет трудоемкими задачами, связанными с администрированием базы данных, включая выделение ресурсов, создание резервных копий, исправления, мониторинг и масштабирование аппаратных ресурсов, что позволяет пользователям сосредоточиться на разработке приложений.Microsoft SQL Server
Amazon RDS для SQL Server упрощает настройку, эксплуатацию и масштабирование SQL Server в облаке. Поддерживается развертывание различных версий SQL Server, включая Express, Web, Standard и Enterprise. Поскольку Amazon RDS для SQL Server обеспечивает прямой доступ к встроенным возможностям SQL Server, существующие приложения и инструменты продолжат работу без изменений.MySQL
MySQL – это система управления реляционными базами данных с открытым исходным кодом, применимая ко многим веб-приложениям. Amazon RDS для MySQL предлагает возможности движка MySQL. Иными словами, код, приложения и инструменты, применяемые к существующими базами данных, можно использовать с сервисом Amazon RDS без изменений.PostgreSQL
PostgreSQL – это объектно-реляционная система управления базами данных с отрытым исходным кодом, ориентированная на соответствие стандартам и возможность расширения. Amazon RDS для PostgreSQL управляет трудоемкими недифференцированными задачами, связанными с администрированием баз данных, включая установку программного обеспечения PostgreSQL, управление хранилищем и обновление. Развертывание и начало работы занимает всего несколько минут.MariaDB
MariaDB – это совместимый с MySQL движок баз данных, который представляет собой ветку MySQL. Он был создан оригинальными разработчиками MySQL. Amazon RDS для MariaDB упрощает настройку, эксплуатацию и масштабирование развертываний MariaDB в облаке. С помощью Amazon RDS можно всего за несколько минут выполнить экономичное развертывание масштабируемых баз данных MariaDB с возможностью настройки объема аппаратных ресурсов.Начните работу с выбранной реляционной базой данных на AWS, создав бесплатный аккаунт уже сегодня!