- •Министерство образования и науки рф
- •(Новочеркасский политехнический институт)
- •1. Введение в базы данных
- •1.1. Базы данных и информационные системы
- •1.2. Архитектура информационной системы
- •1.3. Системы управления базами данных
- •1.4. Локальные информационные системы
- •1.5. Способы разработки и выполнения приложений
- •1.6. Схема обмена данными при работе с бд
- •2. Модели и типы данных
- •2.1. Иерархическая модель
- •2.2. Сетевая модель
- •2.3. Реляционная модель
- •2.4. Постреляционная модель
- •2.5. Многомерная модель
- •2.6. Объектно-ориентированная модель
- •2.7. Типы данных
- •3. Реляционная модель данных
- •3.1. Определение реляционной модели
- •3.2. Индексирование
- •3.3. Связывание таблиц
- •Основные виды связи таблиц
- •Связь вида 1:1
- •Связь вида 1:м
- •Связь вида м:1
- •Связь вида м:м
- •3.4. Контроль целостности связей
- •3.5. Теоретические языки запросов
- •3.6. Реляционная алгебра
- •3.7. Структурированный язык запросов sql
- •Общая характеристика языка
- •Основные операторы языка
- •4. Информационные системы в сетях
- •4.1. Основные понятия
- •Виды и состав сетей
- •Программное обеспечение лвс
- •Аппаратные средства лвс
- •Принципы управления
- •4.2. Модели архитектуры клиент-сервер
- •Двухзвенные модели распределения функций
- •Трехзвенная модель распределения функций
- •Сложные схемы взаимодействия
- •4.3. Управление распределенными данными
- •Поддержка соответствия бд вносимым изменениям
- •Доступ к общим данным
- •4.4. Информационные системы в локальных сетях
- •4.5. Информационные системы в Internet и Intranet
- •Характеристика Internet
- •Базы данных в Internet и Intranet
- •5. Проектирование баз данных
- •5.1. Проблемы проектирования Избыточное дублирование данных и аномалии
- •Формирование исходного отношения
- •5.2. Метод нормальных форм
- •Зависимости между атрибутами
- •Выявление зависимостей между атрибутами
- •Нормальные формы
- •6. Перспективыразвития бд и субд
3.5. Теоретические языки запросов
Операций, выполняемые над отношениями, можно разделить на две группы. Первую группу составляют операции над множествами, к которым относятся операции:
объединения пересеченияразностиделениядекартова произведения.
Вторую группу составляют специальные операции над отношениями, к которым, в частности, относятся операции: проекции, соединения, выбора. В различных СУБД реализована некоторая часть операций над отношениями, определяющая в какой-то мере возможности данной СУБД и сложность реализации запросов к БД. В реляционных СУБД для выполнения операций над отношениями используются две группы языков, имеющие в качестве своей математической основы теоретические языки запросов, предложенные Э.Коддом:
реляционная алгебра;
реляционное исчисление.
Эти языки представляют минимальные возможности реальных языков манипулирования данными в соответствии с реляционной моделью и эквивалентны друг другу по своим выразительным возможностям. Существуют не очень сложные правила преобразования запросов между ними. В реляционной алгебре операнды и результаты всех действий являются отношениями. Языки реляционной алгебры являются процедурными, так как отношение, являющееся результатом запроса к реляционной БД, вычисляется при выполнении последовательности реляционных операторов, применяемым к отношениям. Операторы состоят из операндов, в роли которых выступают отношения, и реляционных операций. Результатом реляционной операции является отношение.
Языки исчислений, в отличие от реляционной алгебры, являются непроцедурными (описательными, или декларативными) и позволяют выражать запросы с помощью предиката первого порядка (высказывания в виде функции), которому должны удовлетворять кортежи или домены отношений. Запрос к БД, выполненный с использованием подобного языка, содержит лишь информацию о желаемом результате. Для этих языков характерно наличие наборов правил для записи запросов. В частности, к языкам этой группы относится SQL.
При рассмотрении языков реляционной алгебры и исчислений будем использовать базу данных, включающую в себя следующие таблицы:
S (поставщики);
Р (детали);
SP (поставки).
Первичными ключами этих таблиц являются соответственно: П# (код поставщика), Д# (код детали) и составной ключ (П#, Д#). Содержимое таблиц приведено в таблице 3.7. Для удобства изложения предположим, что в рассматриваемых языках запросов нет ограничений на употребление символов русского алфавита в именах атрибутов. Каждое из полей П# и Д# таблицы SP в отдельности является внешним ключом по отношению к таблице S и Р соответственно.
Таблица 3.7. Таблицы поставщиков, деталей и поставок
S |
|
Р |
|
SP | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
Предположим, что имена доменов (множеств допустимых значений) совпадают с именами атрибутов. Исключение составляют атрибуты Город_П (город, в котором находится поставщик) и Город_Д (город, в котором выпускается деталь), которые имеют общий домен: множество названий городов. Имя этого домена может быть, например, просто Город. Характеристики доменов как типов данных следующие: Д# - строка символов длиной 5, Имя - строка символов длиной 20, Статус - цифровое длиной 5, Город - строка символов длиной 15, Д# - строка символов длиной 6, Тип - строка символов длиной 6, Вес - цифровое длиной 5, Количество - цифровое длиной 5.