Э. Кодд: любое представление данных можно свести к совокупности отношений.
Э. Codd:任何数据表示都可以简化为一组关系。
Реляционная алгебра — язык для определения новых отношений на основе существующих.
关系代数是一种基于现有关系定义新关系的语言。
В реляционной алгебре определен ряд операций над отношениями.
在关系代数中,定义了一系列关系运算。
Результат операции — новое отношение.
运算结果 - 新的关系。
В операциях будут использоваться обозначения:
运算中将使用指定名称:
SELECT * FROM STUDENTS WHERE
STUDENTS.GROUP = '3100' AND
STUDENTS.ID >= 150000;
$σ_(STUDENTS.GROUP=’3100’)Λ(STUDENTS.ID>=150000)(STUDENTS)$
$R ⋈_θ S$ — соединение (тета-соединение)
$R ⋈_θ S$ - 连接(θ 连接)
$R ⋈_θ S$ = $σ_θ$ (R X S)
Вопросы к полученной модели:
对由此产生的模型提出问题:
Нормализация - формальный метод для проверки/доработки модели на основе ключей и функциональных зависимостей в отношениях.
规范化是一种正式的方法,根据关系中的键和功能依赖关系来验证/完善模型。
INSERT INTO STUDENTS
VALUES(57, 'Nina Simonova', 'P3100', 'E. Kirov');
INSERT INTO STUDENTS
VALUES(58, 'Petr Uvarov', 'P3100', 'Egor Lomov');
UPDATE STUDENTS
SET GrMentor = 'Eugene Lomov'
WHERE StudName = 'Ivan Petrov';
DELETE FROM STUDENTS
WHERE StudName = 'Vasily Ivanov';
Функциональная зависимость — средство для описания связей между атрибутами отношения.
功能依赖性 - 一种描述关系中属性之间关系的方法。
Если в R атрибут $A_2$ функционально зависит от атрибута $A_1$, то каждое значение $A_1$ связано с одним значением $A_2$ и определяет его.
如果在 R 中,属性 $A_2$ 在功能上依赖于属性 $A_1$,那么 $A_1$ 的每个值都与 $A_2$ 有关,并决定 $A_2$ 的一个值。
$А_1$ → $A_2$
$А_1$ — детерминант функциональной зависимости.
$A_1$ 是函数依赖性的决定因素。
$А_1$ и $A_2$ могут представлять несколько атрибутов.
$A_1$ 和 $A_2$ 可以代表多个属性。
For example:
Множество функциональных зависимостей минимально, если:
在下列情况下,功能依赖性集合是最小的:
Рефлексивность: 自反性:
если $A_2$ — подмножество $А_1$, то $A_1$→ $A_2$
如果 $A_2$ 是 $A_1$ 的子集,则 $A_1$→ $A_2$
Дополнение: 增编
если $A_1$ → $A_2$, то $A_1$, $A_3$ → $A_2$, $A_3$
如果 $A_1$ → $A_2$,则 $A_1$,$A_3$ → $A_2$,$A_3$
Транзитивность: 传递性
если ($A_1$ → $A_2$) Λ ($A_2$ → $A_3$), то $A_1$ → $A_3$
如果 ($A_1$ → $A_2$) Λ ($A_2$ → $A_3$),则 $A_1$ → $A_3$
Если на пересечении строки и столбца встречается несколько значений:
如果某一行和某一列的交叉点上出现多个值:
Отношение, на пересечении каждой строки и столбца — одно значение.
关系,在每一行和每一列的交叉点上都有一个值。
Вариант 1: сделать из групп значений отдельные строки.
方案 1:将数值分组单独成行。
Вариант 2: разбить на таблицы, чтобы исключить группы
方案 2:分成表格以排除组别
2НФ — 1) отношение в 1НФ и 2) атрибуты, не входящие в первичный ключ, в полной функциональной зависимости от первичного ключа отношения.
2NF - 1) 1NF 关系,2) 不存在部分依赖关系,这意味着每个非主属性(非键属性)都必须依赖于整个主键,而不仅仅是其中的一部分。
$А_1$, $A_2$ — атрибуты R (所有非主键列必须完全依赖于主键,而不是部分依赖)
Полная функциональная зависимость: $A_2$ в полной функциональной зависимости от $А_1$, если $A_1$ → $A_2$, но нет зависимостей вида $A_3$ → $A_2$, где $A_3$ — подмножество $A_1$.
完全函数依赖:$A_2$ 与 $A_1$ 完全函数依赖 如果 $A_1$ → $A_2$,但不存在 $A_3$ → $A_2$(其中 $A_3$ 是 $A_1$ 的子集)形式的依赖关系,那么 $A_1$ 与 $A_1$ 存在函数依赖关系。
3НФ — отношение в 1) 1НФ и 2НФ и 2) все атрибуты, которые не входят в первичный ключ, не находятся в транзитивной функциональной зависимости от первичного ключа.
3NF - 符合以下条件的关系:1)1NF 和 2NF;2)不在主键中的所有属性都与主键不存在传递功能依赖关系。(非主键列之间不存在传递依赖。)
$А_1$, $A_2$, $A_3$ — атрибуты R
$A_1$、$A_2$、$A_3$ 是 R 的属性
Транзитивная функциональная зависимость — если для $А_1$, $A_2$, $A_3$ из R:
传递函数依赖性 - 如果 R 的 $A_1$、$A_2$、$A_3$:
$A_1 → A_2 Λ A_2 → A_3$
НФБК — отношение в НФБК, когда для всех функциональных зависимостей отношения выполняется условие: детерминант — потенциальный ключ.
NFBC 是 NFBC 中的一个关系,当关系的所有功能依赖关系都满足 “行列式是潜在键” 这一条件时。
$А_1$ → $A_2$
А1 — детерминант функциональной зависимости.
A1 是功能依赖性的决定因素。