Добавил:
Меня зовут Катунин Виктор, на данный момент являюсь абитуриентом в СГЭУ, пытаюсь рассортировать все файлы СГЭУ, преобразовать, улучшить и добавить что-то от себя Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция БД.doc
Скачиваний:
14
Добавлен:
02.08.2023
Размер:
556.54 Кб
Скачать

Лекция 9 логическое проектирование баз данных (продолжение)

План лекции

1. РЕЛЯЦИОННАЯ MОДЕЛЬ ДАННЫХ

1. РЕЛЯЦИОННАЯ MОДЕЛЬ ДАННЫХ

Концепция реляционной модели данных (РМД) была предложена Е.Ф.Коддом в 1970 г. В основе РМД лежит понятие "отношение" Отношение удобно представляется в виде двумерной таблицы. Столбцы отношения называются атрибутами и им присваиваются имена. Список имен атрибутов называется схемой отношения. Реляционная база данных (РБД) - это набор взаимосвязанных отношений (таблиц). Каждое отношение в ЭВМ представляется в виде файла. Имеем следующее соответствие ранее введенных понятий:

Файл

Таблица

Отношение

Объект (сущность)

Запись

Строка

Кортеж

Экземпляр

Поле

Столбец

Атрибут

Атрибут

Таблицы обозримы, понятны, привычны для человека, но не учитывает необходимости согласования трех способов манипулирования данными: упорядочение, группировку по значению индексов доступ по дереву параметров. В таблице упорядоченные по одному параметру данные не упорядочены по другому, что усложняет поиск. Кодд предложил применять к отношениям стройную систему операций, позволяющую получать (выводить, вычислять) одни отношения из других. Это дает возможность делить информацию на хранимую и не хранимую (вычисляемую) части, экономить память, при необходимости вычисляя нехранимую часть информации из хранимой. Основными операциями над отношениями в РБД являются следующие: объединение, пересечение, разность, декартово произведение, деление, проекция, соединение, выбор (селекция, ограничение). Эффективность конкретной СУБД определяется наличием и удобством использования средств выполнения этих операций.

Языки для выполнения операций над отношениями в реляционной СУБД делятся на два класса: языки реляционной алгебры (ЯРА); языки реляционного исчисления (ЯРИ).

ЯРА основаны на реляционной алгебре (алгебра Кодда, альфа-алгебра). Записывая последовательности операций над отношениями в соответствующем порядке, можно получить желаемый результат. Поэтому ЯРА называются процедурными. Большинство языков СУБД являются таковыми процедурными языками программирования.

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

Первый ЯРИ ALFА был разработан Коддом. В настоящее время в реляционных СУБД широкое распространение получил язык запросов SQL ( Structured Query Language ), разработанный фирмой IBM. В частности, СУБД dBase IУ фирмы Ashton -Tate построена на основе языка SQL. Почти все СУБД персональных компьютеров поддерживают реляционную модель данных.

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

В объектном отношении один из атрибутов однозначно идентифицирует отдельный объект и называется ключом отношения или первичным (ключевым) атрибутом. Остальные атрибуты функционально зависят от этого ключа. Ключ может быть составным (включать несколько атрибутов) или частичным (быть частью значения атрибута).

По ключам связного отношения устанавливаются связи между объектами отношений.

Например, пусть БД имеет объектные отношения СТУДЕНТ (Ф.И.О, КУРС, СПЕЦИАЛЬНОСТЬ) и ПРЕДМЕТ (НАЗВАНИЕ, ЧИСЛО ЧАСОВ) со следующими данными

СТУДЕНТ

ПРЕДМЕТ

Название

Число часов

Тогда связное отношение ИЗУЧАЕТ может содержать такие данные:

ИЗУЧАЕТ

Связное отношение, кроме связываемых ключей, может иметь и другие атрибуты, которые функционально зависят от этой связи. На пример, можно иметь отношение ИЗУЧАЕТ (СТУДЕНТ,ПРЕДМЕТ, ОЦЕНКА, СЕМЕСТР).

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

В РБД каждое отношение должно быть нормализовано, т.е. каждый атрибут должен быть простым (содержать атомарные, надежные значения). Для этого сложные атрибуты, например: ДЕТАЛЬ (ШИФР, ЦЕНА), надо превратить в простые введением самостоятельных столбцов (ШИФР, ДЕТАЛИ, ЦЕНА).

На отношения РМД накладываются следующие условия и ограничения, которые позволяют таблицы считать отношениями.

1. Не может быть одинаковых первичных ключей, т.е. все строки (записи) таблицы должны быть уникальны.

2. Все строки таблицы должны иметь одну и ту же структуру, т.е. одно и то же количество атрибутов с соответственно совпадающими именами.

3. Имена столбцов должны быть, различны, а значения столбцов должны быть однородными (однотипными).

4. Значения атрибутов должны быть атомарными, следовательно отношения не могут иметь в качестве компонент другие отношения.

5. Должна соблюдаться ссылочная целостность внешних ключей, т.е. каждому внешнему ключу должна соответствовать строка какого-либо объектного отношения.

6. Порядок следования строк в таблице несуществен, т.к. влияет лишь на скорость доступа к строке.

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

Рассмотрим на примерах восемь операций алгебры отношений. Объединение выполняется над двумя совместимыми отношениями. Результат объединения включает все кортежи первого отношения и все кортежи из второго отношения (список 3, рис. 7.1). Результат пересечения содержит только те кортежи первого отношения, которые есть во втором (описок 4, рис.7.1). Результат вычитания включает только те кортежи первого отношения, которых нет во втором (список 6, рис. 7. 1).

Рис. 7.1. Табличное представление результатов объединения, пересечения и вычитания над исходными отношениями СПИСОК 1 и СПИСОК 2

В декартовом произведении отношения (операнды) могут иметь разные схемы. Степень результирующего отношения равна сумме степеней отношений операндов, а мощность - произведению их мощностей (рис. 7.2).

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

Рис.7.2. Декартово произведение над отношениями СТУДЕНТЫ и ЭКЗАМЕНЫ

Рис. 7.3 Пример операции деления

Операция проекции выполняется над одним отношением на некоторые атрибуты. Результирующее отношение включает часть атрибутов исходного, на которые выполняется проекция (например, НОМЕР ОТДЕЛА и ДОЛЖНОСТЬ). Кортежи-дубликаты отсутствуют (рис. 7.4)

Рис. 7.4. Пример операции проекции

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

Рис. 7.5. Пример операции соединения

Операция выбора выполняется над одним отношением. Результирующее отношение содержит подмножества кортежей, выбранных по некоторому условию, например, ВОЗРАСТ > 22 лет (рис. 7.6).

Рис. 7.6. Пример операции выбора

Рассмотренные выше операции позволяют выделить из отношений их подмножества, при необходимости снова объединять эти подмножества в более "крупные" отношения, обновлять содержимое отношений и представлять их в требуемом виде. Однако при выполнении операций обновления над отношениями БД могут возникать побочные эффекты, если между атрибутами отношений существуют нежелательные функциональные зависимости. Устранение побочных эффектов достигается нормализацией отношений БД, т.е. рациональной группировкой атрибутов в отношениях.