Реляционная модель данных
Концепции реляционной модели впервые были сформулированы в работах американского ученого Э.Ф. Кодда. Откуда происходит ее второе название – модель Кодда.
Реляционная модель баз данных (РМД)реализует табличный способ (рис. 3.3). В РМД таблица называется отношением, строка – кортежем, а столбцы – атрибутами. Область, в которой находится подмножество возможных значений атрибута, является областью определения атрибута – доменом. Характер таблицы (отношения) определяется не только количеством кортежей m, но и числом атрибутов n, которое определяет арность отношения. При наличии одного атрибута (n = 1) отношение называется унарным, двух атрибутов (n = 2) – бинарным, трех атрибутов (n = 3) – тернарным и т.д. Основное требование к отношению РМД состоит в том, что значения атрибутов быть элементарной, неделимой информационной единицей.
Рис. 3.3. Схема реляционной модели данных
Важным преимуществом реляционной модели является то, что в ее рамках действия над данными могут быть сведены к операциям реляционной алгебры, которые выполняются над отношениями. Это такие операции, как объединение, пересечение, вычитание, декартово произведение, выборка, проекция, соединение, деление.
Важнейшей проблемой, решаемой при проектировании баз данных, является создание такой их структуры, которая бы обеспечивала минимальное дублирование информации и упрощала процедуры обработки и обновления данных. Коддом был предложен некоторый набор формальных требований универсального характера к организации данных, которые позволяют эффективно решать перечисленные задачи. Эти требования к состоянию таблиц данных получили название нормальных форм.
Принципиальным моментом является то, что для приведения таблиц к состоянию, удовлетворяющему требованиям нормальных форм, или, как еще говорят, для нормализации данных над ними, должны быть осуществлены перечисленные выше операции реляционной алгебры.
Основным достоинством реляционной модели является ее простота. Именно благодаря ей она положена в основу подавляющего большинства реально работающих СУБД.
Язык SQL
В разработанной Коддом реляционной модели были определены как требования к организации таблиц, содержащих данные, так и язык, позволяющий работать с ними. Впоследствии этот язык получил название SQL (Structured Query Language – структурированный язык запросов). SQL был впервые реализован в начале 70-х годов двадцатого века под названием Structures English Query Language (SEQUEL). Он был ориентирован на управление прототипом реляционной базы данных IBM-System R. В дальнейшем SQL стал стандартом de facto языка работы с реляционными базами данных. Другими достаточно известными стандартами SQL стали стандарты ANSI SQL-92, ISO SQL-92, X/Open. В составе SQL могут быть выделены следующие группы инструкций:
- язык описания данных – DDL (Data Definition Language);
- язык манипулирования данными – DML (Data Manipulation Language);
- язык управления транзакциями.
Инструкции DDL предназначены для создания, изменения и удаления объектов базы данных. Их описание приведено в табл. 3.1.
Таблица 3.1. Инструкции языка определения данных (DDL)
Инструкция | Назначение |
CREATE | Создание новых объектов (таблиц, полей, индексов и т. д.) |
DROP | Удаление объектов |
ALTER | Изменение объектов |
Инструкции DML (табл. 3.2) позволяют выбирать данные из таблиц, а также добавлять, удалять и изменять их.
Таблица 3.2. Инструкции языка манипулирования данными (DML)
Инструкция | Назначение |
SELECT | Выполнение запроса к базе данных с целью отбора записей, удовлетворяющих заданным критериям |
INSERT | Добавление записей в таблицы базы данных |
UPDATE | Изменение значений отдельных записей и полей |
DELETE | Удаление записей из базы данных |
Перечень основных предложений языка SQL приведен в табл. 3.3.
Третьей составной частью SQL является язык управления транзакциями. Транзакция – это логически завершенная единица работы, содержащая одну или более элементарных операций обработки данных. Все действия, составляющие транзакцию, должны либо выполниться полностью, либо полностью не выполниться. Инструкции языка управления транзакциями приведены в табл. 3.4.
Таблица 3.3. Основные предложения языка SQL
Инструкция | Назначение |
FROM | Указывает имя таблицы, из которой должны быть отобраны данные |
WHERE | Специфицирует условия, которым должны удовлетворять выбираемые данные |
GROUP BY | Определяет, что выбираемые записи должны быть сгруппированы |
HAVING | Задает условие, которому должна удовлетворять каждая группа отобранных записей |
ORDER BY | Специфицирует порядок сортировки записей |
Таблица 3.4. Инструкции языка управления транзакциями
Инструкция | Назначение |
COMMIT | Фиксация в базе данных всех изменений, сделанных текущей транзакцией |
SAVEPOINT | Установка точки сохранения (начала транзакции) |
ROLLBACK | Откат изменений, сделанных с момента начала транзакции |
В большинстве СУБД элементарные команды, составляющие тело транзакции, выполняются над некоторой буферной копией данных, и только если их удается успешно довести до конца, происходит окончательное обновление основной базы. Транзакция начинается от точки сохранения, задаваемой инструкцией SAVEPOINT, и может быть завершена по команде COMMIT или прервана по команде ROLLBACK (откат). Также в современных системах управления данными предусмотрены средства автоматического отката транзакций при возникновении системных сбоев. Таким образом, механизм управления транзакциями является важнейшим инструментом поддержания целостности данных.
Дата добавления: 2020-12-11; просмотров: 361;