Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DataBase – осень 2022 – 1 занятие

ТиМПИ
September 09, 2022

DataBase – осень 2022 – 1 занятие

ТиМПИ

September 09, 2022
Tweet

More Decks by ТиМПИ

Other Decks in Education

Transcript

  1. Анастасия Олеговна Хлобыстова
    [email protected], [email protected]
    Санкт-Петербургский Государственный университет
    сентябрь 2022
    Вводная

    View full-size slide

  2. 2/19
    Данные
    База данных
    — зарегистрированная информация
    О чём речь?
    — БД хранится и обрабатывается в вычислительной системе
    — * Данные в БД логически структурированы (систематизированы) с целью обеспечения
    возможности их эффективного поиска и обработки в вычислительной системе
    — * БД включает схему, или метаданные, описывающие логическую структуру БД в
    формальном виде (в соответствии с некоторой метамоделью)
    *не являются обязательными и
    допускают различные трактовки и
    различные степени оценки

    View full-size slide

  3. 3/19
    БД и СУБД
    Система управления базами данных
    — это совокупность языковых и программных
    средств, которая осуществляет доступ к данным,
    позволяет их создавать, менять и удалять,
    обеспечивает безопасность данных и т.д.
    СУБД
    БД

    View full-size slide

  4. 4/19
    Типы баз данных

    View full-size slide

  5. 5/19
    Реляционные базы данных
    • Модель данных в реляционных БД
    определена заранее и является строго
    типизированной
    • Данные хранятся в таблицах, состоящих из
    столбцов (атрибуты, поля) и строк (кортеж)
    • На пересечении каждого столбца и строчки
    допускается только одно значение
    • Каждый столбец проименован и все значения
    в этом столбце имеют определенный тип
    • Столбцы располагаются в определённом
    порядке, который определяется при создании
    таблицы
    • В таблице может не быть ни одной строчки,
    но обязательно должен быть хотя бы один
    столбец
    • Запросы к базе данных возвращают результат
    в виде таблиц

    View full-size slide

  6. 6/19
    Первичный ключ
    - Явно и однозначно определяет конкретную запись (строку) в таблице БД
    - В таблице не может быть двух записей с одинаковым первичным ключом
    Виды по типу
    - Логический (естественный) — серия/номер паспорта
    - Суррогатный (искусственный) — если логический выделить не удается
    Виды по составу
    - Простой — 1 атрибут (артикул)
    - Составной — несколько атрибутов (серия + номер паспорта)

    View full-size slide

  7. 7/19
    Первичный ключ
    Номер
    этажа
    Номер
    квартиры
    Номер дома
    в ЖК
    Площадь
    2 1 1 150
    4 32 4 42
    2 512 6 32
    8 122 2 50
    12 89 5 42

    View full-size slide

  8. 8/19
    Внешний ключ
    - Внешние ключи позволяют установить
    связи между таблицами (в реляционной
    БД это единственный способ установить
    связи).
    - Внешний ключ устанавливается для
    столбцов из зависимой, подчиненной
    таблицы, и указывает на один из столбцов
    из главной таблицы.
    - Как правило (почти всегда), внешний
    ключ указывает на первичный ключ из
    связанной главной таблицы.

    View full-size slide

  9. 9/19
    Целостность
    Целостность базы данных — соответствие имеющейся в базе данных информации
    её внутренней логике, структуре и всем явно заданным правилам. Каждое
    правило, налагающее некоторое ограничение на возможное состояние базы
    данных, называется ограничением целостности.
    ID_Товара Товар ID_Категории Остаток
    58 Макароны 1 15
    236 Мороженое 6 20
    74 Помидор 2 25
    ID_Категории Категория Склад
    1 Бакалея 23А
    2 Овощи 55Д
    3 Фрукты 87К
    Какая категория?

    View full-size slide

  10. 10/19
    Нормализация
    - Удаление избыточности данных
    - Избыточность — когда мы храним больше данных, чем это необходимо.
    Избыточность ведет к:
    - Увеличению занимаемого места на диске
    - Аномалиям включения, обновления,
    удаления

    View full-size slide

  11. 11/19
    Нормализация
    Устранение избыточности производится, как правило, за счёт декомпозиции
    отношений таким образом, чтобы в каждом отношении хранились только
    первичные факты (то есть факты, не выводимые из других хранимых фактов).
    • 1 НФ
    • 2 НФ
    • 3 НФ
    • НФ Бойса-Кодда (усиленная 3 НФ)
    • 4 НФ
    • 5 НФ *
    • 6 НФ *
    • Доменно-ключевая НФ *

    View full-size slide

  12. 12/19
    1 НФ
    Переменная отношения находится в первой нормальной форме (1НФ) тогда и только
    тогда, когда в любом допустимом значении отношения каждый его кортеж содержит
    только одно значение для каждого из атрибутов.
    name hobby
    Авдеева Нина теннис, чтение
    Куликов Евгений теннис, бег
    Семёнов Вадим пазлы
    Красавцева Вера чтение, игра на гитаре
    name hobby
    Авдеева Нина теннис
    Авдеева Нина чтение
    Куликов Евгений теннис
    Куликов Евгений бег
    Семёнов Вадим пазлы
    Красавцева Вера чтение
    Красавцева Вера чтение
    • В каждой ячейке таблицы должно быть только одно значение
    • Не должно быть повторяющихся строк

    View full-size slide

  13. 13/19
    2 НФ
    Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она
    находится в первой нормальной форме и каждый неключевой атрибут неприводимо (функционально
    полно) зависит от её потенциального ключа.
    worker project project_client
    Куликов Евгений ИнХата Геннадий П.
    Куликов Евгений УниТрамп Иван С.
    Авдеева Нина Доска почета Аркадий Г.
    Красавцева Вера ИнХата Геннадий П.
    Семёнов Вадим ИнХата Геннадий П.
    Семёнов Вадим УниТрамп Иван С.
    worker_id project_id
    1 11
    1 22
    2 33
    3 11
    4 11
    4 22
    • Таблица в 1НФ
    • Есть первичный ключ
    • Все атрибуты зависят от первичного ключа целиком, а не от какой-то его части

    View full-size slide

  14. 14/19
    2 НФ
    project_id project project_client
    11 ИнХата Геннадий П.
    22 УниТрамп Иван С.
    33 Доска почета Аркадий Г.
    worker_id project_id
    1 11
    1 22
    2 33
    3 11
    4 11
    4 22
    worker_id worker
    1 Куликов Евгений
    2 Авдеева Нина
    3 Красавцева Вера
    4 Семёнов Вадим

    View full-size slide

  15. 15/19
    3 НФ
    Переменная отношения находится в
    третьей нормальной форме тогда и
    только тогда, когда она находится во
    второй нормальной форме, и
    отсутствуют транзитивные
    функциональные зависимости
    неключевых атрибутов от ключевых.
    tyre_id tyre_name supplier supplier_phone
    1 Nokian Hakka ИП Шлепаков Л. +79233213123
    2 Nokian Nordman ООО Русский Север +79242343423
    3 Continental ContiIce ООО Автомакс +79434234234
    4 Matador ИП Кузнецов П. +79989493248
    5 Nordmaster ИП Иванов П. +79646564345
    tyre_id tyre_name supplier_id
    1 Nokian Hakka 1
    2 Nokian Nordman 2
    3 Continental ContiIce 3
    4 Matador 4
    5 Nordmaster 5
    id supplier supplier_phone
    1 ИП Шлепаков Л. +79233213123
    2 ООО Русский Север +79242343423
    3 ООО Автомакс +79434234234
    4 ИП Кузнецов П. +79989493248
    5 ИП Иванов П. +79646564345
    Номер зависит от поставщика, но не
    зависит от идентификатора шины.
    • Таблица в 2НФ
    • Все атрибуты зависят только от первичного ключа, но не от других атрибутов

    View full-size slide

  16. 16/19
    Бойса-Кодда
    Переменная отношения находится в нормальной форме Бойса — Кодда (усиленной 3НФ) тогда и только тогда, когда
    каждая её нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта
    некоторый потенциальный ключ.
    project_id task resposible
    1 Разработка Рома
    2 Маркетинг Максим
    2 Дизайн Илья
    1 Дизайн Илья
    3 Маркетинг Диана
    3 Разработка Миша
    id name skill
    11 Рома Разработка
    22 Максим Маркетинг
    33 Илья Дизайн
    44 Диана Маркетинг
    55 Миша Разработка
    project_id responsible_id
    1 11
    2 22
    2 33
    1 33
    3 44
    3 55
    • Таблица в 3 НФ
    • Ключевые атрибуты не должны зависеть он не-ключевых
    Первичный ключ: проект+задача, но есть
    зависимость между задачей и ответственным
    • Каждый сотрудник может курировать только ту работу для которой он квалифицирован
    • Есть куча проектов над которыми они работают
    • Для каждого из проектов могут быть выполнены и Разработка и дизайн и маркетинг
    • Куратор по каждому из направлений у проекта может быть только один

    View full-size slide

  17. 17/19
    4 НФ
    Переменная отношения находится в четвёртой нормальной форме, если она находится в нормальной
    форме Бойса — Кодда и не содержит нетривиальных многозначных зависимостей.
    worker_id project hobby
    1 Сантехник Радиотехника
    1 ИнХата Гитара
    2 FabioRoss Футбол
    3 ИнХата Хоккей
    3 Доска Почета Гитара
    worker_id project
    1 Сантехник
    1 ИнХата
    2 FabioRoss
    3 ИнХата
    3 Доска Почета
    worker_id hobby
    1 Радиотехника
    1 Гитара
    2 Футбол
    3 Хоккей
    3 Гитара
    • Таблица находится в НФ БК
    • Устраняются многозначные зависимости
    Для одного сотрудника есть
    • МНОЖЕСТВО проектов
    • МНОЖЕСТВО увлечений
    Атрибуты Проект и Увлечение напрямую зависят от
    первого столбца, но друг от друга они независимы

    View full-size slide

  18. 18/19
    1НФ, 2НФ, 3 НФ
    • 1 НФ
    • В каждой клеточке таблицы должно быть только одно значение
    • Не должно быть повторяющихся строк
    • 2 НФ
    • Таблица в 1НФ
    • Есть первичный ключ
    • Все атрибуты зависят от первичного ключа целиком, а не от какой-то его части
    • 3 НФ
    • Таблица в 2НФ
    • Все атрибуты зависят только от первичного ключа, но не от других атрибутов

    View full-size slide

  19. 19/19
    Бойса-Кодда, 4НФ, 5НФ
    • Бойса-Кодда
    • Таблица в 3НФ
    • Ключевые атрибуты не должны зависеть он не-ключевых
    • 4 НФ
    • Таблица в НФ Бойса-Кодда
    • Устраняются многозначные зависимости
    • 5 НФ
    • Таблица в 4НФ
    • Устраняются нетривиальные зависимости
    • (Декомпозиция без потерь)

    View full-size slide