Основы проектирования баз данных (лекция 6)

Содержание

Слайд 2

База данных — это упорядоченный набор структурированной информации или данных, которые обычно хранятся

База данных — это упорядоченный набор структурированной информации или данных, которые обычно
в электронном виде в компьютерной системе.
База данных обычно управляется системой управления базами данных (СУБД).
Данные вместе с СУБД, а также приложения, которые с ними связаны, называются системой баз данных, или, для краткости, просто базой данных.

Слайд 3

Типы баз данных:
Реляционные базы данных. Данные в реляционной базе организованы в виде

Типы баз данных: Реляционные базы данных. Данные в реляционной базе организованы в
таблиц, состоящих из столбцов и строк.
Распределенные базы данных. Состоят из двух или более частей, расположенных на разных серверах.
Базы данных NoSQL. Это нереляционная база данных, дает возможность хранить и обрабатывать неструктурированные или слабоструктурированные данные.
Базы данных OLTP. Предназначены для выполнения бизнес-транзакций, выполняемых множеством пользователей.

Слайд 4

Создание базы данных и таблиц
Выделение сущностей и их атрибутов, которые будут храниться

Создание базы данных и таблиц Выделение сущностей и их атрибутов, которые будут
в базе данных, и формирование по ним таблиц. Атомизация сложных атрибутов на более простые.
Определение уникальных идентификаторов (первичных ключей) объектов, которые хранятся в строках таблицы
Определение отношений между таблицами с помощью внешних ключей
Нормализация базы данных

Слайд 5

На первом этапе происходит выделение сущностей. Сущность (entity) представляет тип объектов, которые

На первом этапе происходит выделение сущностей. Сущность (entity) представляет тип объектов, которые
должны храниться в базе данных. Каждая таблица в базе данных должна представлять одну сущность. Как правило, сущности соответствуют объектам из реального мира.
У каждой сущности определяют набор атрибутов. Атрибут представляет свойство, которое описывает некоторую характеристику объекта. Каждый столбец должен хранить один атрибут сущности.
А каждая строка представляет отдельный объект или экземпляр сущности.

Слайд 6

Восходящий и нисходящий подходы к выделению сущностей и атрибутов
Том посещает курс по

Восходящий и нисходящий подходы к выделению сущностей и атрибутов Том посещает курс
математике, который преподает профессор Смит.
Сэм посещает курс по математике, которые преподает профессор Смит.
Том посещает курс по языку JavaScript, который преподает ассистент Адамс.
Боб посещает курс по алгоритмам, который преподает ассистент Адамс.
Сэм имеет следующие электронный адрес sam@gmail.com и телефон +1235768789.

Слайд 8

Атомизация атрибутов
При определении атрибутов происходит разделение сложных комплексных элементов на более простые.

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

Слайд 9

Домен
Каждый атрибут имеет домен (domain). Домен представляет набор допустимых значений для одного

Домен Каждый атрибут имеет домен (domain). Домен представляет набор допустимых значений для
или нескольких атрибутов. По сути домен определяет смысл и источник значений, которые могут иметь атрибуты.
Домены могут отличаться для разных атрибутов, но также несколько атрибутов могут иметь один домен.
Определяя домен, мы сразу видим, какие данные и каких типов будут хранить атрибуты. Какое-то другое значение, которое не соответствует домену, атрибут иметь не может.

Слайд 10

Имя. Домен представляет все возможные имена, которые могут использоваться. Каждое имя представляет

Имя. Домен представляет все возможные имена, которые могут использоваться. Каждое имя представляет
строку длиной максимум 20 символов (маловероятно, что нам могут встретиться имена свыше 20 символов).
Фамилия. Домен представляет все возможные фамилии, которые могут использоваться. Каждая фамилия представляет строку длиной максимум 20 символов.
Год рождения. Домен представляет все года рождения. Каждый год является числовым значением от 1950 до 2017.

Слайд 11

Определитель NULL
При определении атрибутов и их домена необходимо проанализировать, а может ли

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

Слайд 12

Ключи
Ключи представляют способ идентификации строк в таблице. С помощью ключей можно связывать

Ключи Ключи представляют способ идентификации строк в таблице. С помощью ключей можно
строки между различными таблицами в отношения.
Первичный ключ (primary key) непосредственно применяется для идентификации строк в таблице. Он должен соответствовать следующим ограничениям:
должен быть уникальным все время
должен постоянно присутствовать в таблице и иметь значение
не должен часто менять свое значение. В идеале вообще не должен изменять значение.
как правило, первичный ключ представляет один столбец таблицы, но также может быть составным и состоять из нескольких столбцов.

Слайд 13

Базы данных могут содержать таблицы, которые связаны между собой различными связями. Связь

Базы данных могут содержать таблицы, которые связаны между собой различными связями. Связь
(relationship) представляет ассоциацию между сущностями разных типов.
Для организации связи используются внешние ключи. Внешний ключ (foreign key) представляет один или несколько столбцов из одной таблицы, который одновременно является ключом из другой таблицы. Внешний ключ необязательно должен соответствовать первичному ключу из главной таблицы.

Слайд 14

Связи между таблицами бывают следующих типов:
Один к одному (объекту одной сущности можно

Связи между таблицами бывают следующих типов: Один к одному (объекту одной сущности
сопоставить только один объект другой сущности)
Один к многим (несколько строк из дочерний таблицы зависят от одной строки в родительской таблице)
Многие ко многим (одна строка из таблицы А может быть связана с множеством строк из таблицы В. В свою очередь одна строка из таблицы В может быть связана с множеством строк из таблицы А)

Слайд 15

Нормализация
Нормализация представляет процесс разделения данных по отдельным связанным таблицам. Нормализация устраняет избыточность

Нормализация Нормализация представляет процесс разделения данных по отдельным связанным таблицам. Нормализация устраняет
данных (data redundancy) и тем самым избежать нарушения целостности данных при их изменении, то есть избежать аномалий изменения (update anomaly).
В ненормализованной форме таблица может хранить информацию о двух и более сущностях. Также она может содержать повторяющиеся столбцы. Также столбцы могут хранить повторяющиеся значения. В нормализованной же форме каждая таблица хранит информацию только об одной сущности.

Слайд 16

Нормализация предполагает применение нормальных форм к структуре данных.
Каждая нормальная форма (за

Нормализация предполагает применение нормальных форм к структуре данных. Каждая нормальная форма (за
исключением первой) подразумевает, что к данным уже была применена предыдущая нормальная форма.
База данных считается нормализованной, если к ней применяется третья нормальная форма и выше.
Существуют 7 нормальных форм:
Первая нормальная форма (1NF) предполагает, что сохраняемые данные на пересечении строк и столбцов должны представлять скалярное значение, а таблицы не должны содержать повторяющихся строк.

Слайд 17

Вторая нормальная форма (2NF) предполагает, что каждый столбец, не являющийся ключом, должен

Вторая нормальная форма (2NF) предполагает, что каждый столбец, не являющийся ключом, должен
зависеть от первичного ключа.
Третья нормальная форма (3NF) предполагает, что каждый столбец, не являющийся ключом, должен зависеть только от первичного ключа.
Нормальная форма Бойса-Кодда (BCNF) является немного более строгой версией третьей нормальной формы.
Четвертая нормальная форма (4NF) применяется для устранения многозначных зависимостей где столбец с первичным ключом имеет связь один-ко-многим со столбцом, который не является ключом. Эта нормальная форма устраняет некорректные отношения многие-ко-многим.

Слайд 18

Пятая нормальная форма (5NF) разделяет таблицы на более малые таблицы для устранения

Пятая нормальная форма (5NF) разделяет таблицы на более малые таблицы для устранения
избыточности данных. Разбиение идет до тех пор, пока нельзя будет воссоздать оригинальную таблицу путем объединения малых таблиц.
Шестая нормальная форма (domain key normal form / 6NF). Каждое ограничение в связях между таблицами должно зависеть только от ограничений ключа и ограничений домена, где домен представляет набор допустимых значений для столбца. Эта форма предотвращает добавление недопустимых данных путем установки ограничения на уровне отношений между таблицами, но не на уровне таблиц или столбцов.

Слайд 19

Первая нормальная форма
Первая нормальная форма предполагает, что таблица не должна содержать повторяющихся

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

Слайд 20

Том посещает курс по математике, который преподает профессор Смит.
Сэм посещает курс по

Том посещает курс по математике, который преподает профессор Смит. Сэм посещает курс
математике, которые преподает профессор Смит.
Том посещает курс по языку JavaScript, который преподает ассистент Адамс.
Боб посещает курс по алгоритмам, который преподает ассистент Адамс.
Сэм имеет следующие электронный адрес sam@gmail.com и телефон +1235768789.

Слайд 21

Таблица StudentCourses

Таблица StudentCourses

Слайд 22

Таблица Emails

Таблица StudentCourses

Таблица Emails Таблица StudentCourses

Слайд 23

Вторая нормальная форма
Во второй нормальной форме каждый столбец в таблице, который не

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

Слайд 24

Таблица Students

Таблица Courses

Таблица StudentCourses

Таблица Students Таблица Courses Таблица StudentCourses

Слайд 25

Третья нормальная форма
Третья нормальная форма предполагает, что каждый столбец, не являющийся ключом,

Третья нормальная форма Третья нормальная форма предполагает, что каждый столбец, не являющийся
должен зависеть только от столбца, который является ключом.
Если столбец зависит не только от первичного ключа, то данный столбец находится не в той таблице, в которой он должен находиться, либо же является производным от других столбцов.
При применении третьей нормальной формы таблица должна находиться во второй нормальной форме. 3NF позволяет значительно снизить избыточность данных.
Имя файла: Основы-проектирования-баз-данных-(лекция-6).pptx
Количество просмотров: 30
Количество скачиваний: 0