Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzamen_po_informatike_2.docx
Скачиваний:
7
Добавлен:
24.09.2019
Размер:
1.9 Mб
Скачать

Манипулирование реляционными данными

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

SQL (StructuredQueryLanguage – структурированный язык запросов)

QBE (Query-By-Example – запросы по образцу)

Рис. 21. Некоторые операции реляционной алгебры

Естественное соединение

Определение 10. Пусть даны отношения и , имеющие одинаковые атрибуты (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах).

Тогда естественным соединением отношений и называется отношение с заголовком и телом, содержащим множество кортежей , таких, что и .

Естественное соединение настолько важно, что для него используют специальный синтаксис:

Замечание. В синтаксисе естественного соединения не указываются, по каким атрибутам производится соединение. Естественное соединение производится по всем одинаковым атрибутам.

Замечание. Естественное соединение эквивалентно следующей последовательности реляционных операций:

  1. Переименовать одинаковые атрибуты в отношениях

  2. Выполнить декартово произведение отношений

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

  4. Выполнить проекцию, удалив повторяющиеся атрибуты

  5. Переименовать атрибуты, вернув им первоначальные имена.

  1. Цели проектирования бд и универсальное отношение. Нормализация, функциональные и многозначные зависимости.

Все БД подразделяют на 2 вида:

  1. прикладные – объединяют все данные, необходимые для решения одной или нескольких задач;

  2. предметные – объединяют все данные, относящиеся к одной предметной области.

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

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

Блюдо

Вид

Порций

Дата Р

Продукт

Калорийность

Вес (г)

Поставщик

Город

Вес (кг)

Цена ($)

Дата П

Лобио

Закуска

158

1/9/94

Фасоль

3070

200

"Хуанхэ"

Пекин

250

0.37

24/8/94

Лобио

Закуска

158

1/9/94

Лук

450

40

"Наталка"

Киев

100

0.52

27/8/94

Лобио

Закуска

158

1/9/94

Масло

7420

30

"Лайма"

Рига

70

1.55

30/8/94

Лобио

Закуска

158

1/9/94

Зелень

180

10

"Даугава"

Рига

15

0.99

30/8/94

Харчо

Суп

144

1/9/94

Мясо

1660

80

"Наталка"

Киев

100

2.18

27/8/94

Харчо

Суп

144

1/9/94

Лук

450

30

"Наталка"

Киев

100

0.52

27/8/94

Харчо

Суп

144

1/9/94

Томаты

240

40

"Полесье"

Киев

120

0.45

27/8/94

Харчо

Суп

144

1/9/94

Рис

3340

50

"Хуанхэ"

Пекин

75

0.44

24/8/94

Харчо

Суп

144

1/9/94

Масло

7420

15

"Полесье"

Киев

50

1.62

27/8/94

Харчо

Суп

144

1/9/94

Зелень

180

15

"Наталка"

Киев

10

0.88

27/8/94

Шашлык

Горячее

207

1/9/94

Мясо

1660

180

"Юрмала"

Рига

200

2.05

30/8/94

Шашлык

Горячее

207

1/9/94

Лук

450

40

"Полесье"

Киев

50

0.61

27/8/94

Шашлык

Горячее

207

1/9/94

Томаты

240

100

"Полесье"

Киев

120

0.45

27/8/94

Шашлык

Горячее

207

1/9/94

Зелень

180

20

"Даугава"

Рига

15

0.99

30/8/94

Кофе

Десерт

235

1/9/94

Кофе

2750

8

"Хуанхэ"

Пекин

40

2.87

24/8/94

Рис. 22. Универсальное отношение "Питание"

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

При использовании универсального отношения возникает несколько проблем:

1. Избыточность. Данные практически всех столбцов многократно повторяются.

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

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

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

Нормализация, функциональные и многозначные зависимости.

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

Теория нормализации основывается на наличии функциональной и многозначной зависимости между полями таблицы.

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

Поле В находится в полной функциональной зависимости от составного поля А, если оно функционально зависит от А и не зависит функционально от любого подмножества поля А.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]