ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
Основные принципы разработки
E. F. Codd
12 принципов Кодда
12 принципов Кодда
12 принципов Кодда
Элементы реляционной БД
Логическое проектирование
Подходы при проектировании структур данных
Зависимости между атрибутами
Функциональные зависимости
Транзитивная зависимость
Многозначная зависимость
Выявление зависимости между атрибутами
Метод сущность связь
Уникальный идентификатор - Первичный ключ
Первичный ключ обеспечивает:
СВЯЗИ
Связывание таблиц
Разрешение связи М:М
Методология логического проектирования данных
Проектирование физической базы данных
Аксиомы вывода функциональных зависимостей (1)
Аксиомы вывода функциональных зависимостей (2)
Аксиомы вывода функциональных зависимостей (3)
Нормальная форма
Метод нормальных форм
Аномалией
Аномалии
Проектирование баз данных методом нормальных форм
Проектирование баз данных методом нормальных форм
4НФ
Теорема Фейджинга
4НФ
5НФ
5НФ
5НФ
5НФ
Доменно-ключевая НФ
Шестая нормальная форма
Шестая нормальная форма
Шестая нормальная форма
Целостность -
Ограничения целостности:
Метод «сущность – связь»
Этапы проектирования
Правила формирования отношений:
Правила формирования отношений:
Вторичный индекс
Методы доступа
Способы доступа
Хеш код.
Основные особенности технологии хеширования:
В СУБД хеширование
Зачем хеширование
Методы поиска (поиск по ключу)
Схемы организации индексирования таблиц:
1.65M
Категория: Базы данныхБазы данных

Проектирование баз данных

1. ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ

1
ПРОЕКТИРОВАНИЕ
БАЗ ДАННЫХ

2.

2
Модель представления данных – логическая
структура хранимых в базе данных.

3. Основные принципы разработки

3
1. Независимость данных.
2. Формирование и поддержка связей между
данными.
3. Неизбыточность данных.
4. Защита и сохранность данных.
5. Прямой доступ к данным.

4. E. F. Codd

4
«Relational Model of Data for Large
Shared Data Banks»
опубликована в журнале
Communications of the ACM (Association
for Computing Machinery)
июнь 1970 года

5. 12 принципов Кодда

5
1.
2.
3.
4.
Информация логически представлена в виде
таблиц.
Логический доступ к данным должен
осуществляться по таблице, первичному ключу
и столбцу.
Пустые значения нужно всегда рассматривать
как «отсутствие информации», а не как пустые
строки, пробелы или нули.
Метаданные (данные о базе данных) должны
храниться в базе данных, как и все прочие
данные.

6. 12 принципов Кодда

6
5.
6.
7.
8.
Для определения данных, представлений, ограничений
по целостности, авторизации, транзакций и манипуляций
должен использоваться один язык.
В представлениях должны отображаться обновления,
вносимые в таблицы базы и наоборот.
Каждое из приведенных действий должно
осуществляться при помощи одной отдельной операции:
извлечение данных, вставка данных, обновление данных
и удаление данных.
Пакетные операции и операции конечных пользователей
логически отделены от физических методов хранения и
доступа.

7. 12 принципов Кодда

7
9.
10.
11.
12.
Пакетные операции и операции конечных пользователей
могут изменять схему базы данных без необходимости
повторного создания базы и приложений построенных на
ее основе.
Ограничения, обеспечивающие целостность данных,
должны храниться в метаданных, а не в прикладной
программе.
Язык манипулирования данными реляционной системы
не должен учитывать, где и как распределены данные
физически, и не должен требовать внесения изменений в
зависимости от того, являются данные
централизованными или распределенными.
Любой процесс обработки строк в системе должен
подчиняться правилам обеспечения целостности данных
и ограничениям, которым подчиняются процессы
обработки наборов данных.

8. Элементы реляционной БД

Элемент реляционной
модели
Отношение
Таблица
Схема отношения
Строка заголовков таблицы
Кортеж
Строка таблицы
Сущность
Заголовок таблицы
Атрибут
Заголовок столбца таблицы
Первичный ключ
Один или несколько
атрибутов
Тип значений элементов
таблицы
Тип данных
Форма представления
8

9. Логическое проектирование

9
Определение числа и структуры таблицы
Формирование запросов к БД
Определение типов отчетных документов
Разработка алгоритмов обработки информации
Создание форм для ввода и редактирования
данных
И т.п.

10. Подходы при проектировании структур данных

10
Сбор информации в рамках одной таблицы и
последующая ее декомпозиция на основе
процедуры нормализации отношений
Формулирование знаний о системе и
требований к обработке данных в ней,
полученные с помощью Case-систем
Структурирование информации для проведения
системного анализа на основе совокупности
правил и рекомендаций

11. Зависимости между атрибутами

11
Функциональные
Транзитивные
Многозначные
Говорят, что атрибут X функционально
определяет Y или Y функционально
зависит от X (записывается как X -> Y),
если в любом экземпляре схемы R
каждому значению атрибута X
(левая часть зависимости) в каждый момент
времени соответствует точно
одно значение Y (правая часть зависимости).

12. Функциональные зависимости

12
В функционально зависит от А, если каждому А
в точности соответствует одно В) А->В
Функциональная взаимозависимость
А<->В
Частичная зависимость – зависимость атрибута
от части составного ключа
Полная зависимость – неключевого атрибута от
всего составного ключа

13. Транзитивная зависимость

13
A->B->C
(Фио->Должность->Оклад)
Проблемы:
Избыточное (явное и неявное) и неизбыточное
дублирование
Аномалии (ситуация в таблицах БД, которая
приводит к противоречиям): модификации,
удаления и добавления

14. Многозначная зависимость

14
A=>B
A<=B
A<=>B

15. Выявление зависимости между атрибутами

15
Основной способ – анализ семантики атрибутов
Если в некотором отношении существует одна
или несколько функциональных зависимостей,
то можно вывести другие функциональные
зависимости в этом отношении

16. Метод сущность связь

16
Метод «ER-диаграмм»
Essence – сущность
Relation – связь
Основные понятия метода:
Сущность
Атрибут сущности
Ключ сущности
Связь между сущностями
Степень связи
Класс принадлежности экземпляров сущности
Диаграммы ER-экземпляров
Диаграммы ER-типа

17. Уникальный идентификатор - Первичный ключ

Уникальный идентификатор Первичный ключ
17
Это поле для однозначной идентификации
записи.
Ключ должен быть уникальным
Ключ должен иметь значение отличное от нуля
В течение всего времени существования
экземпляра его ключ не меняется

18. Первичный ключ обеспечивает:

18
Однозначную идентификацию полей таблицы
Предотвращение повторений значений ключей
Ускорение выполнения запросов к БД
Установление связи между таблицами БД
Использование ограничений ссылочной
целостности

19. СВЯЗИ

19
Связь описывает бинарное состояние между
двумя сущностями
Связь бывает рекурсивной (внутри одной
сущности)
У каждой стороны связи есть имя

20. Связывание таблиц

20
1:1
1: М
М:1
М:М

21. Разрешение связи М:М

21
Сделать новую сущность (Сущность-связку)
Связать сущность с двумя исходными
Ввести уникальный идентификатор (можно
объединив пару)

22. Методология логического проектирования данных

22
Методология логического
проектирования данных
1. Выявить и смоделировать сущности
2. Выявить с смоделировать связи между
сущностями
3. Выявить и смоделировать атрибуты
4. Указать уникальный идентификатор для
каждой сущности
5. Провести нормализацию

23. Проектирование физической базы данных

23
Проектирование физической базы
данных
Объекты становятся таблицами
Атрибуты становятся колонками, для них
подбирается тип данных
Уникальные идентификаторы становятся
первичными ключами
Отношения моделируются в виде внешних
ключей

24. Аксиомы вывода функциональных зависимостей (1)

24
Говорят, что атрибут X функционально
определяет Y или Y функционально
зависит от X (записывается как X -> Y),
если в любом экземпляре схемы R
каждому значению атрибута X
(левая часть зависимости) в каждый момент
времени соответствует точно
одно значение Y (правая часть зависимости).
Рефлексивности
Пополнения
Транзитивности
Расширения
Продолжения
Псевдотранзитивност
и
Объединения
Декомпозиции

25. Аксиомы вывода функциональных зависимостей (2)

25
F – полное множество функциональных зависимостей

26. Аксиомы вывода функциональных зависимостей (3)

26

27. Нормальная форма

27
требование, предъявляемое к структуре
таблиц в теории реляционных баз данных для
устранения из базы избыточных
функциональных зависимостей между
атрибутами (полями таблиц).

28. Метод нормальных форм

28
сбор информации о объектах решения задачи в
рамках одного отношения и последующей
декомпозиции этого отношения на несколько
взаимосвязанных отношений на основе
процедур нормализации отношений.
Цель нормализации: исключить избыточное
дублирование данных, которое является
причиной аномалий, возникших при
добавлении, редактировании и удалении
кортежей(строк таблицы).

29. Аномалией

29
называется такая ситуация в таблице БД,
которая приводит к противоречию в БД либо
существенно усложняет обработку БД.
Причиной является излишнее дублирование
данных в таблице, которое вызывается
наличием функциональных зависимостей от не
ключевых атрибутов.

30. Аномалии

30
Аномалии-модификации проявляются в том, что
изменение одних данных может повлечь просмотр всей
таблицы и соответствующее изменение некоторых
записей таблицы.
Аномалии-удаления — при удалении какого либо
кортежа из таблицы может пропасть информация,
которая не связана на прямую с удаляемой записью.
Аномалии-добавления возникают, когда информацию в
таблицу нельзя поместить, пока она не полная, либо
вставка записи требует дополнительного просмотра
таблицы.

31. Проектирование баз данных методом нормальных форм

31
Отношение находится в 1НФ, если все его
атрибуты являются простыми (имеют
единственное значение)
Отношение находится в 2НФ, если оно находится
в 1НФ и каждый неключевой атрибут
функционально полно зависит от первичного
ключа
Отношение находится в 3НФ, если оно находится
в 2НФ и ни один неидентифицирующий атрибут
не зависит от каких-либо других
неидентифицирующих атрибутов

32. Проектирование баз данных методом нормальных форм

32
Отношение находится в БКНФ (3-ей усиленной НФ), если
оно находится в 3НФ и в нем отсутствуют зависимости
ключей от неключевых атрибутов
Отношение находится в 4НФ в том и только том случае,
когда существует многозначная зависимость А=> В, а все
остальные атрибуты отношения функционально зависят
от А
Отношение находится в 5НФ (или нормальной форме
проекции соединения) в том и только том случае, когда
любая зависимость соединения в R следует из
существования некоторого возможного ключа в R

33. 4НФ

33
Проекты
Номер_проекта
Код_сотрудника
Задание_сотрудника
001
05
1
001
05
2
001
05
3
004
02
1
004
02
2
004
03
1
004
03
2
004
05
1
004
05
2
007
06
1
Предполагается, что каждый сотрудник, участвующий в проекте,
выполняет все задания по этому проекту

34. Теорема Фейджинга

34
Отношение R (A,B,C) можно спроецировать без
потерь в отношении R1 (A,B) и R2 (A,C) в том и
только том случае, когда существует
зависимость A =>B|C.

35. 4НФ

35
Проекты-сотрудники
Номер_проекта
001
004
004
004
007
Код_сотрудника
05
02
03
05
06
Проекты-задания
Номер_проекта
001
001
001
004
004
007
Задание_сотрудник
а
1
2
3
1
2
1

36. 5НФ

36
Пусть в этом отношении один сотрудник может работать в нескольких отделах
и он может принимать участие в нескольких проектах. Но каждый проект
выполняет только один сотрудник.

37. 5НФ

37

38. 5НФ

38
Попарные соединения трех отношений

39. 5НФ

39
Пересечение всех трех отношений даст
исходное отношение
СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ

40. Доменно-ключевая НФ

40
Переменная отношения находится в ДКНФ тогда и только тогда, когда каждое
наложенное на неё ограничение является логическим следствием
ограничений доменов и ограничений ключей, наложенных на данную
переменную отношения.
Ограничение домена – ограничение, предписывающее использовать для
определённого атрибута значения только из некоторого заданного домена.
Ограничение по своей сути является заданием перечня (или логического
эквивалента перечня) допустимых значений типа и объявлением о том, что
указанный атрибут имеет данный тип.
Ограничение ключа – ограничение, утверждающее, что некоторый атрибут
или комбинация атрибутов является потенциальным ключом.
Любая переменная отношения, находящаяся в ДКНФ, обязательно находится
в 5НФ. Однако не любую переменную отношения можно привести к ДКНФ.

41. Шестая нормальная форма

41
Переменная отношения находится в шестой
нормальной форме тогда и только тогда, когда
она удовлетворяет всем нетривиальным
зависимостям соединения. Из определения
следует, что переменная находится в 6НФ тогда и
только тогда, когда она неприводима, то есть не
может быть подвергнута дальнейшей
декомпозиции без потерь. Каждая переменная
отношения, которая находится в 6НФ, также
находится и в 5НФ.

42. Шестая нормальная форма

42
Работники
Таб.№
Время
Должность
Домашний адрес
6575
01-01-2000:10-02-2003
слесарь
ул.Ленина,10
6575
11-02-2003:15-06-2006
слесарь
ул.Советская,22
6575
16-06-2006:05-03-2009
бригадир
ул.Советская,22

43. Шестая нормальная форма

43
Должности работников
Таб.№
Время
Должность
6575
01-01-2000:10-02-2003
слесарь
6575
16-06-2006:05-03-2009
бригадир
Домашние адреса работников
Таб.№
Время
Домашний адрес
6575
01-01-2000:10-02-2003
ул.Ленина,10
6575
11-02-2003:15-06-2006
ул.Советская,22

44. Целостность -

Целостность 44
свойство БД, означающее, что в ней содержится
полная, непротиворечивая и полностью
отражающая предметную область
информация.
Логическая и физическая целостность

45. Ограничения целостности:

45
Ограничения значений атрибутов отношений
(недопустимость пустых или повторяющихся
отношений)
Структурные ограничения на кортежи
отношений (любой кортеж отношений должен
быть отличим от другого кортежа этого
отношения)
Внешний ключ -> первичный ключ

46. Метод «сущность – связь»

46
Сущность
Атрибут сущности
Ключ сущности
Связь между сущностями (глагол)
Степень связи
Класс принадлежности экземпляра сущности
(обязательный / необязательный)
Диаграмма ER-экземпляра
Диаграмма ER-типа

47. Этапы проектирования

47
Выделение сущностей и связей между ними
Построение диаграмм ER-типа
Формирование набора предварительных
отношений
Добавление неключевых атрибутов в отношения
Приведение предварительных отношений к
нормальной форме
Пересмотр ER-диаграмм

48. Правила формирования отношений:

48
Связь 1:1
Правило 1. Если класс принадлежности
сущностей О:О, то формируется одно отношение
Правило 2. Если класс принадлежности
сущностей О:Н, то под каждую из сущностей
формируется отношение. Далее к отношению с
обязательным КП добавляется ключ сущности с
необязательным КП
Правило 3. Если класс принадлежности
сущностей Н:Н, то необходимо использовать 3
отношения

49. Правила формирования отношений:

49
Связь 1:М
Правило 4. Если класс принадлежности М-связной
сущности О, то формируются два отношения. Ключ
односвязной сущности добавляется как атрибут в
отношение
Правило 5. Если класс принадлежности М-связной
сущности Н, то необходимо формирование трех
сущностей
Связь М:М
Правило 6. Независимо от класса принадлежности
необходимо использовать 3 отношения

50. Вторичный индекс

50
Строится по полям таблицы
Не уникален
Не обязателен
Повышает производительность при поиске и
сортировке данных
Замедляет модификацию и увеличивает размер
таблицы

51. Методы доступа

51
Методы доступа
Последовательный
Прямой
Индексно-последовательный

52. Способы доступа

52
Способы доступа
Навигационный – обработка каждой записи
таблицы (Применяется для локальных БД или для
удаленных БД небольшого размера. При использовании
навигационного способа доступа каждый набор данных
имеет невидимый указатель текущей записи)
Table, Query
Реляционный – обработка группы записей,
основан на SQL-запросах
Query

53. Хеш код.

53
Хеширование (англ. [| Collision-Resistant Hash Functions]) —
преобразование входного массива данных в короткое
число фиксированной длины (которое называется хешем
или хеш-кодом) таким образом, чтобы с одной стороны,
это число было значительно короче исходных данных, а с
другой стороны, с большой вероятностью однозначно им
соответствовало. Преобразование выполняется при
помощи хеш-функции. Ясно, что в общем случае
однозначного соответствия между исходными данными и
хеш-кодом быть не может. Обязательно будут возможны
массивы данных, дающих одинаковые хеш-коды, но
вероятность таких совпадений в каждой конкретной
задаче должна быть сведена к минимуму выбором хешфункции.

54. Основные особенности технологии хеширования:

54
Основные особенности
технологии хеширования:
каждая хранимая запись БД размещается по
адресу, который вычисляется с помощью
специальной хеш-функции на основе значения
некоторого поля данной записи, т.е. хеш-поля, а
вычисленный адрес называется хеш-адресом;
для сохранения записи в СУБД сначала
вычисляется хеш-адрес новой записи, после
чего Диспетчер файлов помещает эту запись по
вычисленному адресу.

55. В СУБД хеширование

55
— это метод прямого поиска
местоположения нужных данных на диске
без использования структуры индекса.
Данные хранятся в форме блоков данных,
адрес которых генерируется путем
применения хеш-функции в ячейке памяти,
где хранятся эти записи, известной как
блок данных.

56. Зачем хеширование

56
Для огромной структуры базы данных сложно выполнить поиск всех
значений индекса по всему его уровню, а затем вам нужно добраться
до целевого блока данных, чтобы получить нужные данные.
Метод хеширования используется для индексации и извлечения
элементов в базе данных, поскольку более быстрый поиск этого
конкретного элемента выполняется с использованием более
короткого хешированного ключа вместо использования его исходного
значения.
Хеширование является идеальным методом для вычисления прямого
расположения записи данных на диске без использования структуры
индекса.
Это также полезный метод для реализации словарей.

57. Методы поиска (поиск по ключу)

57
Последовательный
Блочный
Бинарный
Индексный
Хешированный

58. Схемы организации индексирования таблиц:

58
Схемы организации индексирования
таблиц:
Одноуровневая
Двухуровневая
English     Русский Правила