Реляционная модель данных


The Presentation inside:

Slide 0

Реляционная модель данных Разработана Е.Ф.Коддом (E.F.Codd) в 1970 г.


Slide 1

Достоинства Небольшой набор абстракций Мощный математический аппарат Ненавигационное манипулирование данными


Slide 2

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


Slide 3

Особенности реляционной модели данных Определена манипуляционная часть Имеются конкретные языки описания данных, ограничений, накладываемых на данные, и манипулирования данными Единый язык SQL


Slide 4

Базовые структурные компоненты (1) Домены – простые и составные Простые домены: ГОД = {1985, 2003, 2000} ДЕНЬГИ = {500, 1000, 850} Составной домен: ИСТОРИЯ ЗАРПЛАТЫ = {{<1985, 500>, <2000, 1000>}, {<2000, 850>}, {<1985, 850>, <2000, 500>, <2003, 1000>}}


Slide 5

Базовые структурные компоненты (2) Отношение Даны D1, D2, …, Dn – домены Отношение R = { <d1, d2, …, dn> таких, что di ? Di , i = 1, 2, …, n } Пример: D1 = {a, b, c}, D2 = {1, 2}. R1 = {<a, 2>, <c, 1>} R2 = {<a, 2>, <b, 2>, <a, 1>}


Slide 6

Базовые структурные компоненты (3) Атрибуты Способ использования домена в отношении Схема отношения Именованная совокупность пар <имя атрибута : имя домена>


Slide 7

Базовые структурные компоненты (4) Пример: Домены: ЧИСЛО, СТРОКА Схема отношения ОТДЕЛ: ОТДЕЛ ( Номер отдела: ЧИСЛО, Название: СТРОКА )


Slide 8

Ненормализованное отношение (1) Составной домен: ИСТОРИЯ ЗАРПЛАТЫ ( ГОД, ДЕНЬГИ ) Схема отношения СОТРУДНИК СОТРУДНИК ( Номер сотрудника: ЧИСЛО, Имя: СТРОКА, Зарплата: ИСТОРИЯ ЗАРПЛАТЫ )


Slide 9

Ненормализованное отношение (2)


Slide 10

Нормализованное отношение


Slide 11

Представление сущности Ключи отношения Первичный ключ – PK (Primary Key) простой составной Альтернативный ключ – AK (Alternate Key) Пример: КАФЕДРА (Номер кафедры, Название (АК))


Slide 12

Представление связи 1:n (1) Внешний ключ – FK (Foreign Key) Отношения: СОТРУДНИК (Номер сотрудника, Имя, Год рождения) ОТДЕЛ (Номер отдела, Название (АК)) Связь СОТРУДНИК – ОТДЕЛ СОТРУДНИК (Номер сотрудника, Имя, Год рождения, Номер отдела (FK))


Slide 13

Представление связи 1:n (2)


Slide 14

Представление связи 1:n (3)


Slide 15

Представление связи n:n (1) Отношения: ПОСТАВЩИК (Номер поставщика, Имя, Адрес) ДЕТАЛЬ (Номер детали, Название, Цена) Связь ПОСТАВЩИК – ДЕТАЛЬ ПОСТАВКА (Номер поставщика (FK1), Номер детали (FK2), Количество)


Slide 16

Представление связи n:n (2)


Slide 17

Представление связи n:n (3)


Slide 18

Представление связи n:n (4)


Slide 19

Ограничения целостности Целостность сущностей: ограничение PK уникальность других атрибутов (АК) обязательность значений атрибутов допустимость значений атрибутов Ссылочная целостность ОТДЕЛ ( Номер отдела, Название (АК) ) СОТРУДНИК ( Номер сотрудника, Имя, Год рождения, Номер отдела (FK) )


Slide 20

Ссылочная целостность (1)


Slide 21

Ссылочная целостность (2) Операции с дочерним отношением Вставка – корректное значение FK Удаление – без ограничений Модификация FK – корректное новое значение FK


Slide 22

Ссылочная целостность (3) Операции с родительским отношением Вставка – без ограничений Удаление – реакция на связанные записи: не удалять удалить все установить пустое значение (отсутствие связи) Модификация PK – реакция аналогична


Slide 23

Язык определения данных Возможности: Создание домена Создание отношения Определение ограничений целостности


Slide 24

Соответствие между компонентами РМД и РБД РМД – реляционная модель данных РБД – реляционная база данных


Slide 25

Ограничения целостности в РБД


Slide 26

Предложения SQL для определения данных CREATE тип_объекта DROP тип_объекта ALTER тип_объекта Типы объектов: и другие


Slide 27

Создание таблицы (1) CREATE TABLE имя_таблицы ( имя_колонки тип_данных ограничения_на_колонку, . . . табличное_ограничение, . . . )


Slide 28

Создание таблицы (2) Ссылочное ограничение на колонку: … REFERENCES родительская_таблица (имя_PK в родительской таблице) ON DELETE реакция Реакция: RESTRICT CASCADE SET NULL


Slide 29

Создание таблицы (3) Табличное ссылочное ограничение: FOREIGN KEY(список_колонок_таблицы) REFERENCES родительская_таблица (PK из родительской таблицы) ON DELETE реакция


Slide 30

Пример 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) )


Slide 31

Пример 2 CREATE TABLE SP( S_ID INT NOT NULL REFERENCES S ON DELETE RESTRICT, P_ID SMALLINT NOT NULL, Qty INT NOT NULL CHECK(QTY > 0), PRIMARY KEY(S_ID, P_ID), FOREIGN KEY(P_ID) REFERENCES P ON DELETE RESTRICT )


Slide 32

Удаление таблицы DROP TABLE имя_таблицы Нельзя удалить родительскую таблицы, если существует хотя бы одна связанная с ней дочерняя таблица


×

HTML:





Ссылка: