- •Основная литература
- •Дополнительная литература
- •2.Типы и структуры данных
- •2.1.Основные типы данных.
- •2.1.Методы доступа к данным.
- •2.2.2.Хеширование.
- •3. Представление данных с помощью модели "сущность-связь".
- •3.1.Элементы модели.
- •3.2.Диаграмма "сущность-связь".
- •Выделим интересующие нас сущности и связи:
- •Обобщая все проведенные выше рассуждения, получим диаграмму "сущность-связь", показанную на следующем рисунке.
- •4.1.Иерархическая модель данных.
- •4.1.2.Операции над данными, определенные в иерархической модели:
- •4.2.1.Структура данных.
- •4.2.2.Операции над данными.
- •4.3. Реляционная модель данных
- •1. Основные понятия
- •4.3.1. Структура данных.
- •Фундаментальные свойства отношений
- •4.3.3.Свойства отношений.
- •4.3.4. Реляционная модель и модель сущность - связь
- •4.3.4.1. Преобразование er-модели в реляционную модель
- •Преобразование слабой сущности
- •П реобразование подтипов сущностей.
- •Связь 1:м
- •С вязь 1:1
- •5. Языки запросов к реляционным базам данных
- •5.1. Реляционная алгебра
5. Языки запросов к реляционным базам данных
В реляционных СУБД для выполнения операций над отношениями используются две группы языков, имеющие в качестве своей математической основы теоретические языки запросов, предложенные Э.Коддом:
алгебраические языки (реляционная алгебра), позволяющие выражать запросы посредством специализированных операторов, применяемых к отношениям;
реляционное исчисление: Языки исчисления предикатов, где запросы описывают требуемое множество кортежей путем спецификации предиката, которому должны удовлетворять эти кортежи. Эти языки, в свою очередь, также делятся на два класса, в зависимости от того, являются ли примитивные объекты кортежами (реляционное исчисление с переменными кортежами) или элементами домена некоторого атрибута (реляционное исчисление с переменными на доменах).
Конкретный язык манипулирования реляционными БД называется реляционно-полным, если любой запрос, выражаемый с помощью одного выражения реляционной алгебры или одной формулы реляционного исчисления, может быть выражен с помощью одного оператора этого языка. Большинство реляционных языков являются реляционно-полными.
В реляционной алгебре операнды и результаты всех действий являются отношениями. Языки реляционной алгебры являются процедурными, так как отношение, являющееся результатом запроса к реляционной БД, вычисляется при выполнении последовательности реляционных операторов, применяемым к отношениям. Операторы состоят из операндов, в роли которых выступают отношения, и реляционных операций.
Языки исчислений, в отличие от реляционной алгебры, являются непроцедурными (описательными, или декларативными) и позволяют выражать запросы с помощью предиката первого порядка (высказывания в виде функции), которому должны удовлетворять кортежи или домены отношений. Запрос к БД, выполненный с использованием подобного языка, содержит лишь информацию о желаемом результате. Для этих языков характерно наличие наборов правил для записи запросов. В частности, к языкам этой группы относится SQL.
В качестве примера рассматривается следующая база данных
База данных содержит файлы - ПОСТАВЩИКИ, ДЕТАЛИ, ДОГОВОРА, ПОСТАВКИ.
Файл ПОСТАВЩИКИ (PSTS) имеет поля - код поставщика (KPST - уникальный ключ), наименование поставщика (IMPST), адрес поставщика (ADRPST).
Файл ДЕТАЛИ (DET) имеет поля - код детали (KDET - уникальный ключ), наименование детали (IMDET), цвет детали (CVET).
Файл ДОГОВОРА (DOG) содержит сведения о том «кто» - «что» - «в каком количестве» обязался поставить, и имеет поля - код поставщика (KPST), код детали (KDET), количество (KOL), дата начала договора (DTN), дата завершения договора (DTK). (KPST, KDET) – уникальный (составной) ключ этого файла.
В период действия договора поставщик поставляет детали не обязательно «все за раз», а обычно партиями. Файл ПОСТАВКИ (PST) содержит сведения о партиях поставленных деталей: «кто» - «что» - «в каком количестве» - «когда» поставил, и имеет поля - код поставщика (KPST), код детали (KDET), количество (KOL), дата поставки (DTP)
