Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции к урокам 2007.doc
Скачиваний:
90
Добавлен:
23.12.2018
Размер:
3.44 Mб
Скачать

Лекция 10 Основные понятия реляционной модели данных

Концепция реляционной модели данных была предложена Ф. Коддом в 1970 г. В связи с решением следующей задачи – обеспечить независимость представления и описания данных от прикладных программ. В основе реляционной модели данных лежит понятие отношения.

Реляционная база данных (РБД) представляет собой совокупность отношений, содержащих всю информацию, которая должна храниться в БД

Отношением называется любая взаимосвязь между объектами и/или их свойствами.

Различают взаимосвязи между объектами, между свойствами одного объекта и между свойствами различных объектов.

Отношение задается своим именем и списком атрибутов – элементов связанных этим отношением.

Отношение удобно представлять в виде двумерной таблицы при соблюдении определенных ограничивающих условий. Таблица понятна, обозрима и привычна для человека. Кодд показал, что набор отношений (таблиц) может быть использован для хранения данных о объектах реального мира и моделирования связей между ними. Например, для хранения сущности «студент» используется отношение СТУДЕНТ, в котором свойства сущности располагаются в столбцах таблицы1:

Типы данных

Целые числа

Строки символов

Дата

Строки символов

Целые числа

Строки

символов

Домены

Номер зачетной книжки

Фамилия

Имя

Отчество

Дата рождения

Факультет

Курс

Группа

Специальность

2001-351

Карева

Алена

Дмитриевна

05.09.1984

Филфак

5

10

Совр.иностран. языки

2002-972

Щеглова

Ольга

Леонидовна

21.11.1983

Матфак

4

5

ПОИТ

2002-222

Горчичко

Сергей

Алексеевич

01.08.1985

Матфак

4

5

ПОИТ

2002-678

Равилович

Анна

Викторовна

23.05.1985

Юрфак

3

1

Правоведение

Атрибуты

Степень

Основными понятиями, с помощью которых определяется реляционная модель, являются:

Отношение (таблица) – совокупность объектов реального мира, которые характеризуются общими свойствами и характеристиками (поля таблицы)

Заголовок отношения (заголовок таблицы) – название полей (столбцов) таблицы

Тело отношения (тело таблицы) – совокупность значений для всех объектов реального мира, которая представима в виде записей таблицы (строки таблицы)

Схема отношения – строка заголовков столбцов таблицы (заголовок таблицы)

Атрибуты отношения – наименование столбца таблицы (поле таблицы)

Кортеж отношения - строка таблицы (запись) – имеет определенную смысловую нагрузку

Домен – множество допустимых значений атрибута

Значение атрибута – значение поля в записи

Первичный ключ – один или несколько атрибутов, который уникальный (единственным) образом определяет значение кортежа (значение строки таблицы)

Внешний ключ – атрибут таблицы, значения которого соответствуют значениям первичного ключа в другой связанной таблице. Внешний ключ может состоять как из одного, так и из нескольких атрибутов (составной внешний ключ). Если число атрибутов внешнего ключа меньше, чем количество атрибутов соответствующего первичного ключа, то он называется усеченным (частичным) внешним ключом.

Степень (арность) отношения – количество столбцов таблицы

Математически отношение определяется следующим образом: Пусть даны N множеств данных D1,D2,D3,…DN, тогда R есть отношение (связь) между этими множествами, если R – множество упорядоченных N-кортежей вида <d1,d2,…dN>, где d1D1, d2D2,…dNDN. Множества D1,D2,D3,…DN являются множествами возможных значений атрибутов A1, A2,…AN отношений R и называются доменами. Таким образом отношение является подмножеством декартова произведения одного или более доменов D1x, D2x,…xDN. Каждый кортеж в отношении уникален.

Домен представляет собой семантическое понятие, которое можно рассматривать как подмножество значений некоторого типа данных, имеющих определенный смысл. Домен характеризуется следующими свойствами:

  • имеет уникальное имя (в пределах базы данных);

  • определен на некотором простом типе данных или на другом домене;

  • может иметь некоторое логическое условие, позволяющее описать подмножество данных, допустимых для этого домена;

  • имеет определенную смысловую нагрузку.

В целом концепция РМД определяется следующими двенадцатью правилами Кодда:

1. Правило информации. Вся информация в БД должна быть представлена исключительно на логическом уровне и только одним способом – в виде значений, содержащихся в таблицах.

2. Правило гарантированного доступа. Логический доступ ко всем и каждому элементу данных (атомарному значению) в РБД должен обеспечиваться путем использования комбинации имени таблицы, первичного ключа и имени столбца.

3. Правило поддержки недействительных значений. В РБД должна быть реализована поддержка недействительных значений, которые отличаются от строки символов нулевой длины, строки пробельных символов, от нуля или любого другого числа и используются для представления отсутствующих данных независимо от типа этих данных.

4. Правило динамического каталога, основанного на реляционной модели. Описание БД на логическом уровне должно быть представлено в том же виде, что и основные данные, чтобы пользователи, обладающие соответствующими правами, могли работать с ним с помощью того же реляционного языка, который они применяют для работы с основными данными.

5. Правило исчерпывающего подъязыка данных. Реляционная система может поддерживать различные языки и режимы взаимодействия с пользователем. Однако должен существовать по крайней мере один язык, операторы которого можно представить в виде строк символов в соответствии с некоторым четко определенным синтаксисом и который в полной мере поддерживает следующие элементы:

  • определение данных;

  • определение представлений;

  • обработку данных (интерактивную и программную);

  • условия целостности;

  • идентификацию прав доступа;

  • границы транзакций (начало, завершение и отмена);

  1. Правило обновления представлений. Все представления, которые теоретически можно обновить, должны быть доступны для обновления.

  2. Правило добавления, обновления и удаления. Возможность работать с отношением как с одним операндом должна существовать не только при чтении данных, но и при добавлении, обновлении и удалении данных.

  3. Правило независимости физических данных. Прикладные программы и утилиты для работы с данными должны на логическом уровне оставаться нетронутыми при любых изменениях способов хранения данных или методов доступа к ним.

  4. Правило независимости логических данных. Прикладные программы и утилиты для работы с данными должны на логическом уровне оставаться нетронутыми при внесении в базовые таблицы любых изменений, которые теоретически позволяют сохранить нетронутыми содержащиеся в этой таблицы данные.

  5. Правило независимости условий целостности. Должна существовать возможность определять условия целостности, специфические для конкретной РБД, на подъязыке РБД и хранить их в каталоге, а не в прикладной программе.

  6. Правило независимости распространения. Реляционная СУБД не должна зависеть от потребностей конкретного клиента.

  7. Правило единственности. Если в реляционной системе есть низкоуровневый язык (обрабатывающий одну запись за один раз), то должна отсутствовать возможность использования его для того, чтобы обойти правила и условия целостности, выраженные на реляционном языке высокого уровня (обрабатывающем несколько записей за одни раз).

Эффективность конкретной СУБД определяются наличием и удобством использования средств выполнения этих операций. Языки для выполнения операций над отношениями в реляционной СУБД можно разделить на два главных класса:

  • языки реляционной алгебры (алгебра Кодда);

  • языки реляционного исчисления.

ЯРА основаны на принципе: записывая последовательность операций над отношениями в соответствующем порядке, можно получить желаемый результат. Поэтому ЯРА является процедурным языком.

ЯРИ основаны на классическом исчислении предикатов. Они определяют пользователю набор правил для записи «запросов» к БД.В таком запросе содержится лишь информация о желаемом результате. На основании запроса СУБД автоматически, путем формирования новых отношений, выдает желаемый результат. ЯРИ является непроцедурным языком.