Слайд 1Реляционная модель данных
Разработана Е.Ф.Коддом (E.F.Codd) в 1970 г.
Слайд 2Достоинства
Небольшой набор абстракций
Мощный математический аппарат
Ненавигационное манипулирование данными
Слайд 3Недостатки
Ограниченность при использовании в областях применения, требующих предельно сложные структуры
данных
Невозможность адекватного отображения семантики предметной области
Слайд 4Особенности реляционной модели данных
Определена манипуляционная часть
Имеются конкретные языки описания данных, ограничений,
накладываемых на данные, и манипулирования данными
Единый язык SQL
Слайд 5Базовые структурные компоненты (1)
Домены – простые и составные
Простые домены:
ГОД =
{1985, 2003, 2000}
ДЕНЬГИ = {500, 1000, 850}
Составной домен:
ИСТОРИЯ ЗАРПЛАТЫ = {{<1985, 500>, <2000, 1000>}, {<2000, 850>}, {<1985, 850>, <2000, 500>, <2003, 1000>}}
Слайд 6Базовые структурные компоненты (2)
Отношение
Даны D1, D2, …, Dn – домены
Отношение R = {
таких, что di ∈ Di , i = 1, 2, …, n }
Пример: D1 = {a, b, c}, D2 = {1, 2}.
R1 = {, }
R2 = {, , }
Слайд 7Базовые структурные компоненты (3)
Атрибуты
Способ использования домена в отношении
Схема отношения
Именованная совокупность
пар
<имя атрибута : имя домена>
Слайд 8Базовые структурные компоненты (4)
Пример:
Домены: ЧИСЛО, СТРОКА
Схема отношения ОТДЕЛ:
ОТДЕЛ ( Номер
отдела: ЧИСЛО, Название: СТРОКА )
Слайд 9Ненормализованное
отношение (1)
Составной домен:
ИСТОРИЯ ЗАРПЛАТЫ ( ГОД, ДЕНЬГИ )
Схема
отношения СОТРУДНИК
СОТРУДНИК ( Номер сотрудника: ЧИСЛО, Имя: СТРОКА, Зарплата: ИСТОРИЯ ЗАРПЛАТЫ )
Слайд 12Представление сущности
Ключи отношения
Первичный ключ – PK (Primary Key)
простой
составной
Альтернативный ключ – AK
(Alternate Key)
Пример:
КАФЕДРА (Номер кафедры, Название (АК))
Слайд 13Представление связи 1:n (1)
Внешний ключ – FK (Foreign Key)
Отношения:
СОТРУДНИК (Номер сотрудника,
Имя, Год рождения)
ОТДЕЛ (Номер отдела, Название (АК))
Связь СОТРУДНИК – ОТДЕЛ
СОТРУДНИК (Номер сотрудника, Имя, Год рождения, Номер отдела (FK))
Слайд 16Представление связи n:n (1)
Отношения:
ПОСТАВЩИК (Номер поставщика, Имя, Адрес)
ДЕТАЛЬ (Номер детали, Название,
Цена)
Связь ПОСТАВЩИК – ДЕТАЛЬ
ПОСТАВКА (Номер поставщика (FK1), Номер детали (FK2), Количество)
Слайд 20Ограничения целостности
Целостность сущностей:
ограничение PK
уникальность других атрибутов (АК)
обязательность значений атрибутов
допустимость значений атрибутов
Ссылочная
целостность
ОТДЕЛ ( Номер отдела, Название (АК) )
СОТРУДНИК ( Номер сотрудника, Имя, Год рождения, Номер отдела (FK) )
Слайд 22Ссылочная целостность (2)
Операции с дочерним отношением
Вставка – корректное значение FK
Удаление –
без ограничений
Модификация FK – корректное новое значение FK
Слайд 23Ссылочная целостность (3)
Операции с родительским отношением
Вставка – без ограничений
Удаление – реакция
на связанные записи:
не удалять
удалить все
установить пустое значение (отсутствие связи)
Модификация PK – реакция аналогична
Слайд 24Язык определения данных
Возможности:
Создание домена
Создание отношения
Определение ограничений целостности
Слайд 25Соответствие между компонентами РМД и РБД
РМД – реляционная модель данных
РБД –
реляционная база данных
Слайд 27Предложения SQL для определения данных
CREATE тип_объекта
DROP тип_объекта
ALTER тип_объекта
Типы объектов:
и другие
Слайд 28Создание таблицы (1)
CREATE TABLE имя_таблицы (
имя_колонки тип_данных ограничения_на_колонку,
.
. .
табличное_ограничение,
. . .
)
Слайд 29Создание таблицы (2)
Ссылочное ограничение на колонку:
… REFERENCES родительская_таблица (имя_PK в родительской
таблице)
ON DELETE реакция
Реакция:
RESTRICT
CASCADE
SET NULL
Слайд 30Создание таблицы (3)
Табличное ссылочное ограничение:
FOREIGN KEY(список_колонок_таблицы) REFERENCES родительская_таблица (PK из родительской
таблицы)
ON DELETE реакция
Слайд 31Пример 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)
)
Слайд 32Пример 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
)
Слайд 33Удаление таблицы
DROP TABLE имя_таблицы
Нельзя удалить родительскую таблицы, если существует хотя бы
одна связанная с ней дочерняя таблица