Реляционная модель данных
Основные элементы реляционных баз данных. Множество скалярных значений одного типа. Рассмотрение значения доменов и скаляров. Первичные и альтернативные ключи к реляционным базам данных. Программная возможность обозначения отсутствия информации.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лекция |
Язык | русский |
Дата добавления | 03.04.2019 |
Размер файла | 29,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http: //www. allbest. ru/
Лекция 8. Реляционная модель данных
В лекции рассматриваются основные элементы реляционных баз данных, а также вопросы целостности данных. Даются определения первичных и внешних ключей.
Цель: рассмотреть основные элементы реляционных баз данных.
Реляционные объекты данных
Реляционная модель включает три составные части:
1. Объекты.
2. Целостность.
3. Операторы.
Рассмотрим объект на рис. 8.1.
Рис. 1 Основные элементы реляционной БД
Отношение соответствует тому, что мы обычно называем таблицей. Кортеж соответствует экземпляру записи, атрибут - полю таблицы, степень - количеству атрибутов, кардинальное число - количеству кортежей.
Домены
Домен - это общее множество значений, из которых берутся конкретные значения определенного атрибута некоторого отношения.
Домены также можно определить как именованное множество скалярных значений одного типа.
Скалярное значение (скаляр) - это наименьшая семантическая единица данных, которая является отдельным значением данных. У скаляров нет внутренней структуры, т.е. они не разложимы в данной реляционной модели. На самом деле, в других контекстах скаляры могут иметь внутреннюю структуру (например, фамилия состоит из букв), но для конкретной таблицы это разложение не имеет смысла, т.к. теряется его значение. Каждый атрибут должен быть определён на единственном домене. Например, атрибут StudentID определён на домене {1, 2, 3, ..., 10}, атрибут GroupID - на домене {1, 2, 3, ..., 10}, но это будут разные домены, хотя и содержат одинаковые элементы.
Не обязательно все элементы домена должны использоваться в конкретном отношении.
Основное значение доменов состоит в том, что они ограничивают операции сравнения.
Пример: рассмотрим запрос
SELECT * FROM Stduents, Groups
WHERE GroupsID.GroupID = Students.StudentID
Такой запрос не имеет смысла, поскольку мы сравниваем числовые значения из разных доменов. Правильно будет так:
WHERE GroupsID.GroupID = Students.GroupID
Отношения
Отношение можно рассматривать с двух сторон:
1) переменная отношения - это обычная переменная (как в любом языке программирования), т.е. именованный объект, значение которого может изменяться;
2) значение отношения - это значение этой переменной в конкретный момент времени.
Уточним определение отношения:
Отношение R, заданное на множестве доменов D1, D2, …, Dn, которые не обязательно различны, содержит две части: заголовок и тело.
Заголовок содержит фиксированное множество пар , где Ai - имя атрибута.
Тело содержит множество кортежей, каждый из которых в свою очередь содержит множество значений Zji, где i - номер атрибута, j - номер кортежа.
Свойства отношений:
1) нет одинаковых кортежей, поскольку тело отношений представляет собой множество;
2) кортежи неупорядочены, т.е. нет таких понятий, как «первый» или «десятый» кортеж, нет понятий «предыдущий» и «следующий»;
3) атрибуты неупорядочены, т.к. заголовок отношения тоже определён как множество;
4) все значения атрибутов неделимы, т.к. домен содержит неделимые элементы.
Такие отношения, которые не содержат делимых атрибутов, называются нормализованными, или представленными в первой нормальной форме.
Целостность реляционных данных
В каждый момент времени любая БД содержит конкретную конфигурацию значений, которая представляет определённое состояние объекта реального мира. Следовательно, БД нуждается в определении правил целостности, чтобы информировать СУБД об ограничениях реального мира. Например, для атрибутов «рост», «вес» необходимо ограничение неотрицательности. Такого рода правила, характерные для конкретной БД, называются специфическими. Кроме специфических правил существуют общие правила целостности для всех БД. Такие правила связаны с потенциальными, первичными и внешними ключами и будут рассмотрены далее в этой лекции.
Потенциальные ключи
Пусть R - некоторое отношение. Тогда потенциальный ключ K для R - это подмножество атрибутов R, обладающих следующими свойствами:
1) уникальность, т.е. нет двух различных кортежей в текущем значении переменной отношения R с одинаковым значением K;
2) неизбыточность, т.е. никакое из подмножеств K не обладает свойством уникальности.
Это свойство применимо только для случая, если потенциальный ключ состоит более чем из одного атрибута. Например, нельзя назначить потенциальным ключом совокупность полей StudentID и Name, иначе этот ключ будет избыточным. Могут существовать отношения, в которых единственным естественным потенциальным ключом будет комбинация всех атрибутов, но это может быть неудобно. Тогда вводят искусственный потенциальный ключ. Например, в таблице Students совокупность атрибутов {Name, GroupID, Birthdate} представляет собой ключ, но удобнее ввести искусственный ключ - StudentID.
StudentID |
Name |
GroupID |
BirthDate |
|
1 |
Казаков Петр |
2 |
23.04.1990 |
|
2 |
Васильев Иван |
1 |
11.05.1991 |
|
4 |
Шишкина Дарья |
2 |
23.09.1991 |
Потенциальные ключи предназначены для обеспечения основного механизма адресации на уровне кортежей, т.е. достаточно указать значение потенциального ключа, по которому можно найти любой кортеж.
Первичные и альтернативные ключи
Отношение может иметь более одного потенциального ключа, но один из них всегда выбирается в качестве первичного, остальные потенциальные ключи будут в этом случае называться альтернативными.
Например, в таблице Groups:
GroupID - первичный ключ, а Name - альтернативный. В каждом отношении всегда должен быть один и только один первичный ключ.
GroupID |
Name |
|
1 |
ПМ-41 |
|
2 |
ПМ-51 |
Внешние ключи
Пусть R2 - отношение. Тогда внешний ключ FK в отношении R2 - это подмножество множества атрибутов R2 такое, что:
1) существует базовое отношение R1 с потенциальным ключом CK;
2) каждое значение FK в текущем значении R2 всегда совпадает со значением CK некоторого кортежа в текущем значении R1.
Из данного определения можно вывести такие следствия:
1) по определению каждое значение внешнего ключа должно являться значением соответствующего потенциального ключа, но обратное не требуется, т.е. потенциальный ключ может содержать значения, которые в данный момент не являются значением внешнего ключа;
2) данный внешний ключ будет составным тогда и только тогда, когда соответствующий потенциальный ключ тоже составной;
3) каждый атрибут, входящий в данный внешний ключ, должен быть определён на том же домене, что и соответствующий атрибут потенциального ключа;
4) R1 и R2 не обязательно различны.
Рассмотрим отношение Students:
StudentID |
Name |
GroupID |
BirthDate |
|
1 |
Казаков Петр |
2 |
23.04.1990 |
|
2 |
Васильев Иван |
1 |
11.05.1991 |
|
4 |
Шишкина Дарья |
2 |
23.09.1991 |
Атрибут GroupID будет являться внешним ключом, т.к. к нему проведена связь от таблицы Groups.
В связи с внешними ключами вводится ещё ряд терминов. Говорят, что значение внешнего ключа представлено ссылкой к кортежу, содержащему соответствующее значение потенциального ключа. Этот кортеж называется ссылочным, или целевым.
Отношение, которое содержит ссылочный ключ, называется ссылающимся отношением, а отношение, которое содержит соответствующий ключ, называется ссылочным, или целевым (target relation).
Существует правило ссылочной целостности: БД не должна содержать несогласованных значений внешних ключей. Несогласованное значение - это такое значение, для которого нет потенциального ключа в ссылочном отношении. Это правило эквивалентно определению внешнего ключа.
Правила внешних ключей
Правило целостности связано с состоянием БД в конкретный момент времени. Следовательно, необходим механизм, позволяющий поддерживать БД целостной. Для этого требуется определить операции, которые могут нарушить целостность, и либо запретить их, либо ввести дополнительные компенсирующие операции, которые будут исправлять временное нарушение целостности БД.
Например, нам необходимо удалить группу ПМ-51 из отношения Groups. Если мы просто удалим соответствующий кортеж из таблицы Groups, мы нарушим целостность, т.к. в таблице Students останутся студенты, принадлежащие уже несуществующей группе. Именно для таких случаев разрабатываются компенсирующие операции.
Таким образом, для БД необходимо предусмотреть компенсирующие операции для двух моментов:
1) удаление объекта ссылки внешнего ключа, т.е. ссылочного кортежа;
2) изменение (обновление) потенциального ключа, на который имеется ссылка.
Для компенсации этих операций существуют как минимум две возможности:
1. Ограничить выполнение операции. Для операции удаления - не удалять кортеж, пока не удалят все ссылающиеся кортежи, т.е. отложить удаление;
2. Каскадировать. Здесь возможно несколько вариантов, например при удалении:
· удалить сам кортеж и все соответствующие ссылающиеся кортежи;
· удалить сам кортеж, а для всех ссылающихся кортежей исправить значение на правильное, например, установить NULL-значение для данного атрибута.
NULL-значение
Иногда требуется возможность обозначить отсутствие информации, которая является необязательной в данном отношении. Например, для отношения Students таким необязательным атрибутом может являться Height (рост студента). Проблему можно решить двумя способами.
1. Использовать специальные значения того же типа данных, что и сам атрибут. Например, атрибут Height имеет тип int, тогда можно использовать -1 для обозначения отсутствия информации о росте студента, а любое другое число будет указывать сам рост.
2. Использовать специальные универсальные маркеры - NULL-значения.
Эдгар Кодд предложил второй вариант, главным преимуществом которого является то, что NULL-значение некоторого атрибута свидетельствует именно о его отсутствии, т.е. это не то же самое, что и число ноль или пустая строка. Однако такие неопределённые значения могут вызвать осложнения при обеспечении целостности БД.
Среди специалистов разделились мнения относительно необходимости этих меток. Э. Кодд считает, что они должны быть неотъемлемой частью БД, а К. Дейт, наоборот, полагает, что они даже вредны.
В общем случае в БД для каждого атрибута можно задать, разрешено или не разрешено содержать NULL-значение. Эдгар Ф. Кодд (Edgar F. Codd) (1923-2003) - американский ученый английского происхождения. Долгое время работал в корпорации IBM. Создал основы теории реляционных баз данных. Сформулировал 12 законов аналитической обработки данных и ввел термин OLAP (On-Line Analytical Processing - оперативная аналитическая обработка). Кристофер Дж. Дейт (Christopher J. Date) (р.1941) - английский ученый, работавший над теорией реляционных баз данных совместно с Э.Коддом. реляционный база данные домен
Рассмотрим влияние NULL-значения на различные ключи. С использованием этого значения вводится правило целостности объектов: ни один элемент первичного ключа базового отношения не может быть NULL_значением. Это правило объясняется следующим: кортежи отношений соответствуют объектам реального мира, следовательно, эти объекты различны, т.е. некоторым образом опознаваемы, а первичные ключи выполняют функцию уникальной идентификации.
Правило обеспечения целостности применимо только:
1) к базовым отношениям, а не вычисляемым (производным);
2) к первичным ключам, а для альтернативных может быть разрешено или запрещено использование NULL-значения.
NULL-значения могут использоваться либо при вставке и изменении записи (для обозначения отсутствия информации) или при каскадном удалении. Например, мы хотим удалить группу, но при этом не удалять студентов этой группы.
В этом случае в поле GroupID отношения Students мы можем указать NULL-значение для всех студентов, которые принадлежат удаляемой группе.
После удаления группы ПМ-51, получим следующее состояние отношения Students:
StudentID |
Name |
GroupID |
BirthDate |
|
1 |
Казаков Петр |
2 |
23.04.1990 |
|
2 |
Васильев Иван |
1 |
11.05.1991 |
|
4 |
Шишкина Дарья |
2 |
23.09.1991 |
GroupID |
Name |
|
1 |
ПМ-41 |
|
2 |
ПМ-51 |
StudentID |
Name |
GroupID |
BirthDate |
|
1 |
Казаков Петр |
NULL |
23.04.1990 |
|
2 |
Васильев Иван |
1 |
11.05.1991 |
|
4 |
Шишкина Дарья |
NULL |
23.09.1991 |
Краткие итоги. Рассмотрены основные элементы реляционных баз данных, а также вопросы целостности данных. Даны определения первичных и внешних ключей.
Размещено на Allbest.ru
...Подобные документы
Основные понятия и типы связей, первичные и внешние ключи, реляционная модель данных. Основные функции СУБД, язык запросов SQL. Краткая характеристика настольных реляционных, объектно-ориентированных и корпоративных (промышленных) систем управления.
курсовая работа [3,4 M], добавлен 25.08.2010Анализ реляционных баз данных и способов манипулирования ими. Основные понятия баз данных, архитектура СУБД, модели данных. Модель сущность-связь, характеристика связей, классификация сущностей, структура первичных и внешних ключей, целостности данных.
курсовая работа [166,6 K], добавлен 18.07.2012Сущность и характеристика типов моделей данных: иерархическая, сетевая и реляционная. Базовые понятия реляционной модели данных. Атрибуты, схема отношения базы данных. Условия целостности данных. Связи между таблицами. Общие представления о модели данных.
курсовая работа [36,1 K], добавлен 29.01.2011Разработка системы "РЭО-ГАИ" и соответствующей ей базы данных, позволяющей документировать в электронном виде автоматизацию учета движений автомобилей. Язык SQL - стандартный язык доступа к реляционным базам данных. Структура программы и описание модулей.
курсовая работа [83,1 K], добавлен 18.08.2009Современные системы управления базами данных (СУБД). Анализ иерархической модели данных. Реляционная модель данных. Постреляционная модель данных как расширенная реляционная модель, снимающая ограничение неделимости данных, хранящихся в записях таблиц.
научная работа [871,7 K], добавлен 08.06.2010Модели информационного процесса обработки данных. Классификация баз данных. Сеть архитектуры и технология клиент-сервер. Создание запросов к реляционным базам данных на SQL. Работа с электронными таблицами MS Excel: форматирование данных, вычисления.
контрольная работа [17,8 K], добавлен 17.01.2010Определенная логическая структура данных, которые хранятся в базе данных. Основные модели данных. Элементы реляционной модели данных. Пример использования внешних ключей. Основные требования, предъявляемые к отношениям реляционной модели данных.
презентация [11,7 K], добавлен 14.10.2013Базы данных с двумерными файлами и реляционные системы управления базами данных (СУБД). Создание базы данных и обработка запросов к ним с помощью СУБД. Основные типы баз данных. Базовые понятия реляционных баз данных. Фундаментальные свойства отношений.
реферат [57,1 K], добавлен 20.12.2010Концептуальная модель данных: глоссарий, сущности, атрибуты. Первичные, внешние, альтернативные ключи. Определение правил ограничения ввода. Данные сущности Stations, Locomotive, Wagon, Train, Group of wagon. SQL-запросы, реализующие сущности базы данных.
курсовая работа [458,1 K], добавлен 25.05.2014Исследование значения информации и информационных услуг в современном мире. Изучение истории хранения и обработки информации. Проектирование инфологической модели базы данных. Реляционная модель баз данных. Домены и отношения. Реляционное исчисление.
курсовая работа [47,9 K], добавлен 13.07.2015Базы данных и их использование в вычислительной технике. Особенности и основная конструктивная единица сетевой модели данных. Иерархическая модель, объекты предметной области. Реляционная модель, ее наглядность, представление данных в табличной форме.
реферат [115,8 K], добавлен 19.12.2011Алгоритмы обработки массивов данных. Система управления базами данных. Реляционная модель данных. Представление информации в виде таблицы. Система управления базами данных реляционного типа. Графический многооконный интерфейс.
контрольная работа [2,8 M], добавлен 07.01.2007Основные понятия реляционных баз данных. Ограничительные условия, поддерживающие целостность. Операции над реляционными данными. Виды операций: традиционные и специальные. Нормализация и разновидности ее форм. Целостность категории (сущности) и ссылок.
реферат [227,6 K], добавлен 22.02.2009Модель данных как совокупность структур данных и операций их обработки. Иерархическая, сетевая и реляционная модели данных, их основные преимущества и недостатки. Операции над данными, определенные для каждой из моделей, ограничения целостности.
реферат [128,4 K], добавлен 16.02.2012Операции в системе управления базами данных (СУБД). MS Access как функционально полная реляционная СУБД. Разработка реляционных моделей баз данных экономического направления. Применение прикладных программ для решения экономико-управленческих задач.
курсовая работа [2,1 M], добавлен 14.01.2015Назначение и основные функции системы управления базами данных СУБД, особенности и признаки их классификации. Архитектура баз данных (БД). Разработка распределенных БД. Язык структурированных запросов (SQL). Правила Кодда: требования к реляционным БД.
курсовая работа [376,2 K], добавлен 21.07.2012Описание движения документов внутри организации. Описание входящих, исходящих, внешних и внутренних документов. Моделирование предметной области, первичные ключи. Описание сущностей, атрибутов, связей и доменов. Хранение, извлечение и обновление данных.
дипломная работа [1,3 M], добавлен 01.05.2015Информационная модель в Access как некоторый упрощенный заменитель реального объекта или системы. Основные структуры, определяющие организацию данных и связей между ними; реляционная разновидность организации данных. Пример базы данных в налогообложении.
реферат [2,5 M], добавлен 25.12.2009Виды и функции системы управления базами данных Microsoft Access. Иерархическая, сетевая, реляционная модель описания баз данных. Основные понятия таблицы базы данных. Особенности создания объектов базы данных, основные формы. Доступ к Internet в Access.
контрольная работа [19,8 K], добавлен 08.01.2011Эволюция концепций баз данных. Требования, которым должна удовлетворять организация базы данных. Модели представления данных. Язык SQL как стандартный язык баз данных. Архитектуры баз данных. Среда Delphi как средство для разработки СУБД.
дипломная работа [278,9 K], добавлен 26.11.2004