Similar presentations:
Проектирование баз данных
1. ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
1ПРОЕКТИРОВАНИЕ
БАЗ ДАННЫХ
2.
2Модель представления данных – логическая
структура хранимых в базе данных.
3. Основные принципы разработки
31. Независимость данных.
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 принципов Кодда
51.
2.
3.
4.
Информация логически представлена в виде
таблиц.
Логический доступ к данным должен
осуществляться по таблице, первичному ключу
и столбцу.
Пустые значения нужно всегда рассматривать
как «отсутствие информации», а не как пустые
строки, пробелы или нули.
Метаданные (данные о базе данных) должны
храниться в базе данных, как и все прочие
данные.
6. 12 принципов Кодда
65.
6.
7.
8.
Для определения данных, представлений, ограничений
по целостности, авторизации, транзакций и манипуляций
должен использоваться один язык.
В представлениях должны отображаться обновления,
вносимые в таблицы базы и наоборот.
Каждое из приведенных действий должно
осуществляться при помощи одной отдельной операции:
извлечение данных, вставка данных, обновление данных
и удаление данных.
Пакетные операции и операции конечных пользователей
логически отделены от физических методов хранения и
доступа.
7. 12 принципов Кодда
79.
10.
11.
12.
Пакетные операции и операции конечных пользователей
могут изменять схему базы данных без необходимости
повторного создания базы и приложений построенных на
ее основе.
Ограничения, обеспечивающие целостность данных,
должны храниться в метаданных, а не в прикладной
программе.
Язык манипулирования данными реляционной системы
не должен учитывать, где и как распределены данные
физически, и не должен требовать внесения изменений в
зависимости от того, являются данные
централизованными или распределенными.
Любой процесс обработки строк в системе должен
подчиняться правилам обеспечения целостности данных
и ограничениям, которым подчиняются процессы
обработки наборов данных.
8. Элементы реляционной БД
Элемент реляционноймодели
Отношение
Таблица
Схема отношения
Строка заголовков таблицы
Кортеж
Строка таблицы
Сущность
Заголовок таблицы
Атрибут
Заголовок столбца таблицы
Первичный ключ
Один или несколько
атрибутов
Тип значений элементов
таблицы
Тип данных
Форма представления
8
9. Логическое проектирование
9Определение числа и структуры таблицы
Формирование запросов к БД
Определение типов отчетных документов
Разработка алгоритмов обработки информации
Создание форм для ввода и редактирования
данных
И т.п.
10. Подходы при проектировании структур данных
10Сбор информации в рамках одной таблицы и
последующая ее декомпозиция на основе
процедуры нормализации отношений
Формулирование знаний о системе и
требований к обработке данных в ней,
полученные с помощью Case-систем
Структурирование информации для проведения
системного анализа на основе совокупности
правил и рекомендаций
11. Зависимости между атрибутами
11Функциональные
Транзитивные
Многозначные
Говорят, что атрибут X функционально
определяет Y или Y функционально
зависит от X (записывается как X -> Y),
если в любом экземпляре схемы R
каждому значению атрибута X
(левая часть зависимости) в каждый момент
времени соответствует точно
одно значение Y (правая часть зависимости).
12. Функциональные зависимости
12В функционально зависит от А, если каждому А
в точности соответствует одно В) А->В
Функциональная взаимозависимость
А<->В
Частичная зависимость – зависимость атрибута
от части составного ключа
Полная зависимость – неключевого атрибута от
всего составного ключа
13. Транзитивная зависимость
13A->B->C
(Фио->Должность->Оклад)
Проблемы:
Избыточное (явное и неявное) и неизбыточное
дублирование
Аномалии (ситуация в таблицах БД, которая
приводит к противоречиям): модификации,
удаления и добавления
14. Многозначная зависимость
14A=>B
A<=B
A<=>B
15. Выявление зависимости между атрибутами
15Основной способ – анализ семантики атрибутов
Если в некотором отношении существует одна
или несколько функциональных зависимостей,
то можно вывести другие функциональные
зависимости в этом отношении
16. Метод сущность связь
16Метод «ER-диаграмм»
Essence – сущность
Relation – связь
Основные понятия метода:
Сущность
Атрибут сущности
Ключ сущности
Связь между сущностями
Степень связи
Класс принадлежности экземпляров сущности
Диаграммы ER-экземпляров
Диаграммы ER-типа
17. Уникальный идентификатор - Первичный ключ
Уникальный идентификатор Первичный ключ17
Это поле для однозначной идентификации
записи.
Ключ должен быть уникальным
Ключ должен иметь значение отличное от нуля
В течение всего времени существования
экземпляра его ключ не меняется
18. Первичный ключ обеспечивает:
18Однозначную идентификацию полей таблицы
Предотвращение повторений значений ключей
Ускорение выполнения запросов к БД
Установление связи между таблицами БД
Использование ограничений ссылочной
целостности
19. СВЯЗИ
19Связь описывает бинарное состояние между
двумя сущностями
Связь бывает рекурсивной (внутри одной
сущности)
У каждой стороны связи есть имя
20. Связывание таблиц
201: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)
25F – полное множество функциональных зависимостей
26. Аксиомы вывода функциональных зависимостей (3)
2627. Нормальная форма
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НФ
3738. 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Схемы организации индексирования
таблиц:
Одноуровневая
Двухуровневая