4. Реляционная модель данных.ppt
- Количество слайдов: 36
4. Реляционная модель данных Разработана Е. Ф. Коддом (E. F. Codd) в 1970 г.
4. 1. Достоинства • Небольшой набор абстракций • Мощный математический аппарат • Ненавигационное манипулирование данными 2
4. 2. Недостатки • Ограниченность при использовании в областях применения, требующих предельно сложные структуры данных • Невозможность адекватного отображения семантики предметной области 3
4. 3. Особенности реляционной модели данных • Определена манипуляционная часть • Имеются конкретные языки описания данных, ограничений, накладываемых на данные, и манипулирования данными • Единый язык SQL 4
4. 4. Базовые структурные компоненты • Домены – простые и составные Простые домены: ГОД = {1985, 2003, 2000} ДЕНЬГИ = {500, 1000, 850} Составной домен: ИСТОРИЯ ЗАРПЛАТЫ = {{<1985, 500>, <2000, 1000>}, {<2000, 850>}, {<1985, 850>, <2000, 500>, <2003, 1000>}} 5
4. 4. Базовые структурные компоненты • Отношение D 1, D 2, …, Dn – домены R = { <d 1, d 2, …, dn> | di Di , i = 1, 2, …, n } Пример: D 1 = {a, b, c}, D 2 = {1, 2} R 1 = {<a, 2>, <c, 1>} R 2 = {<a, 2>, <b, 2>, <a, 1>} 6
4. 4. Базовые структурные компоненты • Атрибуты • Схема отношения <имя атрибута : имя домена> Пример: Домены: ЧИСЛО, СТРОКА Схема отношения ОТДЕЛ: ОТДЕЛ ( Номер отдела: ЧИСЛО, Название: СТРОКА ) 7
4. 5. Ненормализованное отношение Составной домен: ИСТОРИЯ ЗАРПЛАТЫ ( ГОД, ДЕНЬГИ ) Схема отношения СОТРУДНИК ( Номер сотрудника: ЧИСЛО, Имя: СТРОКА, Зарплата: ИСТОРИЯ ЗАРПЛАТЫ ) 8
4. 5. Ненормализованное отношение Номер сотрудника 1 2 Имя Зарплата Иванов 1985, 500 2000, 1000 Петров 1985, 850 2000, 500 2003, 1000 9
4. 6. Нормализованное отношение Номер сотрудника Имя Год Выплаты 1 Иванов 1985 500 1 Иванов 2000 1000 2 Петров 1985 850 2 Петров 2000 500 2 Петров 2003 1000 10
4. 7. Представление сущности Ключи отношения • Первичный ключ – PK (Primary Key) – простой – составной • Альтернативный ключ – AK (Alternate Key) Пример: КАФЕДРА (Номер кафедры, Название (АК)) 11
4. 8. Представление связи 1: n Внешний ключ – FK (Foreign Key) 12
4. 8. Представление связи 1: n Отношения: R 1: СОТРУДНИК (Номер сотрудника, Имя, Год рождения) R 2: ОТДЕЛ (Номер отдела, Название (АК)) Связь СОТРУДНИК – ОТДЕЛ R 1: СОТРУДНИК (Номер сотрудника, Имя, Год рождения, Номер отдела (FK)) 13
4. 8. Представление связи 1: n ОТДЕЛ Номер отдела Название Первичный ключ Альтернативный ключ 10 Бухгалтерия 20 Административнохозяйственный 30 Библиотека 14
4. 8. Представление связи 1: n Номер СОТРУДГод Номер сотруд. Имя НИК рождения отдела ника Первич. Внешний ный ключ 1 Иванов 1985 10 2 Петров 1970 30 Нельзя вставить кортеж <3, Сидоров, 1980, 50> 15
4. 8. Представление связи 1: n Отдел / Е 1 Сотрудник / Е 2 Номер отдела Название (АК) Номер сотрудника Имя Год рождения Номер отдела (FК) включает 16
4. 9. Представление связи n: n 17
4. 9. Представление связи n: n Отношения: ПОСТАВЩИК (Номер поставщика, Имя, Адрес) ДЕТАЛЬ (Номер детали, Название, Цена) Связь ПОСТАВЩИК – ДЕТАЛЬ ПОСТАВКА (Номер поставщика (FK 1), Номер детали (FK 2), Количество) 18
4. 9. Представление связи n: n Номер ПОСТАВЩИК поставщика Первичный ключ Имя Адрес S 1 Иванов Орел S 2 Петров Тюмень S 3 Сидоров Пермь 19
4. 9. Представление связи n: n ДЕТАЛЬ Номер детали Название Цена P 1 Болт 18 P 2 Винт 14 P 3 Гайка 10 P 4 Шуруп 15 Первичный ключ 20
4. 9. Представление связи n: n ПОСТАВКА Первичный ключ отношения связи Количество Номер поставщика Номер детали FK для ПОСТАВЩИК FK для ДЕТАЛЬ Собственный атрибут S 1 P 1 100 S 1 P 2 200 S 2 P 3 150 21
4. 9. Представление связи n: n 22
4. 10. Ограничения целостности Целостность сущностей: • ограничение PK • уникальность других атрибутов (АК) • обязательность значений атрибутов • допустимость значений атрибутов Ссылочная целостность ОТДЕЛ ( Номер отдела, Название (АК) ) СОТРУДНИК ( Номер сотрудника, Имя, Год рождения, Номер отдела (FK) ) 23
4. 11. Ссылочная целостность 24
4. 11. Ссылочная целостность Операции с дочерним отношением • Вставка – корректное значение FK • Удаление – без ограничений • Модификация FK – корректное новое значение FK 25
4. 11. Ссылочная целостность Операции с родительским отношением • Вставка – без ограничений • Удаление – реакция на связанные записи: – не удалять – удалить все – установить пустое значение (отсутствие связи) • Модификация PK – реакция аналогична 26
4. 12. Язык определения данных Возможности: • Создание домена • Создание отношения • Определение ограничений целостности 27
4. 13. Соответствие между компонентами РМД и РБД Структурный компонент РМД Домен Отношение Атрибут Элемент РБД Тип данных Таблица Колонка таблицы Кортеж отношения Строка таблицы РМД – реляционная модель данных РБД – реляционная база данных 28
4. 14. Ограничения целостности в РБД Тип ограничения целостности Представление в SQL Первичный ключ Уникальность значения Обязательность значения Допустимость значения Ссылочные ограничения PRIMARY KEY UNIQUE NULL или NOT NULL CHECK FOREIGN KEY 29
4. 15. Предложения SQL для определения данных • CREATE тип_объекта • DROP тип_объекта • ALTER тип_объекта Типы объектов: DATABASE TABLE VIEW и другие INDEX TRIGGER PROCEDURE 30
4. 16. Создание таблицы CREATE TABLE имя_таблицы ( имя_колонки тип_данных ограничения_на_колонку, . . . табличное_ограничение, . . . ) 31
4. 16. Создание таблицы Ссылочное ограничение на колонку: … REFERENCES родительская_таблица (имя_PK в родительской таблице) ON DELETE реакция Реакция: RESTRICT CASCADE SET NULL 32
4. 16. Создание таблицы Табличное ссылочное ограничение: FOREIGN KEY(список_колонок_таблицы) REFERENCES родительская_таблица (PK из родительской таблицы) ON DELETE реакция 33
4. 17. Пример 1 CREATE TABLE P( P_ID INT NOT NULL PRIMARY KEY IDENTITY, PName VARCHAR(20) NOT NULL UNIQUE, Price DECIMAL(6, 0) NOT NULL CHECK(Price > 0) ) 34
4. 18. Пример 2 CREATE TABLE SP( S_ID INT NOT NULL REFERENCES S ON DELETE RESTRICT, P_ID INT NOT NULL, Qty INT NOT NULL CHECK(QTY > 0), PRIMARY KEY(S_ID, P_ID), FOREIGN KEY(P_ID) REFERENCES P ON DELETE RESTRICT ) 35
4. 19. Удаление таблицы DROP TABLE имя_таблицы Нельзя удалить родительскую таблицы, если существует хотя бы одна связанная с ней дочерняя таблица 36
4. Реляционная модель данных.ppt