-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path4.8.html
93 lines (76 loc) · 10.2 KB
/
4.8.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Проектирование реляционной базы данных: функциональные зависимости, декомпозиция и нормализация</title>
<link rel="stylesheet" href="./css/index.css">
</head>
<body>
<div class="container">
<h1>Проектирование реляционной базы данных: функциональные зависимости, декомпозиция, нормализация и нормальные формы</h1>
<div class="navigation-buttons">
<a href="4.7.html" class="button">⬅ Назад</a>
<a href="4.9.html" class="button">Вперёд ➡</a>
</div>
<h2>Проектирование реляционной базы данных</h2>
<p><strong>Проектирование реляционной базы данных</strong> — это процесс создания логической структуры базы данных для хранения, обработки и управления данными. Цель проектирования базы данных заключается в организации данных таким образом, чтобы обеспечить их целостность, минимизировать избыточность и повысить производительность при доступе и обработке данных. Основные этапы проектирования включают анализ требований, создание ER-диаграмм, определение функциональных зависимостей и нормализацию отношений.</p>
<h2>Функциональные зависимости</h2>
<p><strong>Функциональная зависимость</strong> — это взаимосвязь между атрибутами в таблице, при которой значение одного атрибута (или группы атрибутов) однозначно определяет значение другого атрибута. Функциональные зависимости помогают выявить связи между данными и служат основой для нормализации.</p>
<p>Пример функциональной зависимости:</p>
<p>В таблице «Сотрудники» значение атрибута «ID сотрудника» определяет значение атрибута «Имя». Это можно выразить как:</p>
<pre>
ID сотрудника → Имя
</pre>
<h3>Типы функциональных зависимостей</h3>
<ul>
<li><strong>Полная зависимость:</strong> Атрибут полностью зависит от всего ключа, а не от его части. Например, «Имя» полностью зависит от «ID сотрудника».</li>
<li><strong>Частичная зависимость:</strong> Атрибут зависит только от части составного ключа, что указывает на потенциальную избыточность данных.</li>
<li><strong>Транзитивная зависимость:</strong> Атрибут зависит от неключевого атрибута, что может привести к аномалиям при обновлении данных.</li>
</ul>
<h2>Декомпозиция отношений</h2>
<p><strong>Декомпозиция отношений</strong> — это процесс разбиения таблицы на две или более связанных таблиц для устранения избыточности и улучшения согласованности данных. Декомпозиция основывается на функциональных зависимостях и нормализации и позволяет избавиться от аномалий обновления, удаления и вставки.</p>
<p>Пример декомпозиции:</p>
<p>Изначальная таблица «Заказы»:</p>
<pre>
Заказ_ID | Клиент | Адрес | Продукт | Количество
------------------------------------------------
1 | Иванов | Москва | Товар А | 10
1 | Иванов | Москва | Товар Б | 5
</pre>
<p>Можно разделить на две таблицы: «Клиенты» и «Детали заказа», чтобы устранить избыточность в столбце «Адрес».</p>
<h2>Понятие нормализации отношений</h2>
<p><strong>Нормализация</strong> — это процесс организации данных в таблицах для минимизации избыточности и предотвращения аномалий в данных. Нормализация осуществляется путём преобразования исходных таблиц в более структурированные формы, которые отвечают определённым требованиям целостности. Нормализация основана на функциональных зависимостях и выполняется в несколько этапов (нормальных форм).</p>
<h3>Преимущества нормализации</h3>
<ul>
<li><strong>Минимизация избыточности:</strong> Нормализация снижает дублирование данных, уменьшая объём хранимой информации.</li>
<li><strong>Устранение аномалий:</strong> Нормализованные таблицы защищены от аномалий вставки, обновления и удаления.</li>
<li><strong>Обеспечение целостности данных:</strong> Нормализованные структуры упрощают управление данными и поддержание их согласованности.</li>
</ul>
<h2>Нормальные формы</h2>
<p><strong>Нормальные формы</strong> — это правила, определяющие уровень нормализации таблиц. Каждая нормальная форма накладывает определённые ограничения, которые позволяют устранить избыточность и повысить согласованность данных. Основные нормальные формы включают:</p>
<h3>Первая нормальная форма (1НФ)</h3>
<p>Отношение находится в <strong>первой нормальной форме</strong>, если оно не содержит повторяющихся групп и все значения атрибутов атомарны (неразделимы). Это означает, что каждый столбец содержит одно значение, и все строки уникальны.</p>
<pre>
Таблица «Заказы»:
Заказ_ID | Клиент | Товар | Количество
---------------------------------------
1 | Иванов | Товар А | 10
2 | Петров | Товар Б | 5
</pre>
<h3>Вторая нормальная форма (2НФ)</h3>
<p>Отношение находится во <strong>второй нормальной форме</strong>, если оно находится в 1НФ и каждый неключевой атрибут полностью зависит от первичного ключа. Это устраняет частичные зависимости.</p>
<p>Пример: таблицу, содержащую данные о клиентах и заказах, можно разделить на две таблицы: «Клиенты» и «Заказы».</p>
<h3>Третья нормальная форма (3НФ)</h3>
<p>Отношение находится в <strong>третьей нормальной форме</strong>, если оно находится во 2НФ и не содержит транзитивных зависимостей (неключевые атрибуты не зависят друг от друга). Это устраняет избыточность, связанную с транзитивными зависимостями.</p>
<p>Например, таблицу с клиентами и адресами можно разделить на две таблицы: «Клиенты» и «Адреса».</p>
<h3>Нормальная форма Бойса-Кодда (BCNF)</h3>
<p>Отношение находится в <strong>нормальной форме Бойса-Кодда</strong>, если оно находится в 3НФ и каждый детерминант является кандидатом в ключи. Это более строгое требование, которое устраняет некоторые редкие виды избыточности.</p>
<h2>Заключение</h2>
<p>Проектирование реляционной базы данных требует анализа функциональных зависимостей, декомпозиции отношений и нормализации данных. Эти процессы помогают устранить избыточность, обеспечить целостность и согласованность данных. Нормализация выполняется в несколько этапов, каждый из которых определяется своей нормальной формой, позволяя построить эффективную и управляемую структуру данных в базе данных.</p>
</div>
<div class="navigation-buttons">
<a href="4.7.html" class="button">⬅ Назад</a>
<a href="4.9.html" class="button">Вперёд ➡</a>
</div>
</body>
</html>