$30 off During Our Annual Pro Sale. View Details »

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

ТиМПИ
September 09, 2022

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

ТиМПИ

September 09, 2022
Tweet

More Decks by ТиМПИ

Other Decks in Education

Transcript

  1. Анастасия Олеговна Хлобыстова aok@dscs.pro, a.khlobystova@spbu.ru Санкт-Петербургский Государственный университет сентябрь 2022

    Вводная
  2. 2/19 Данные База данных — зарегистрированная информация О чём речь?

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

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

  5. 5/19 Реляционные базы данных • Модель данных в реляционных БД

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

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

    ЖК Площадь 2 1 1 150 4 32 4 42 2 512 6 32 8 122 2 50 12 89 5 42
  8. 8/19 Внешний ключ - Внешние ключи позволяют установить связи между

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

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

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

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

    (1НФ) тогда и только тогда, когда в любом допустимом значении отношения каждый его кортеж содержит только одно значение для каждого из атрибутов. name hobby Авдеева Нина теннис, чтение Куликов Евгений теннис, бег Семёнов Вадим пазлы Красавцева Вера чтение, игра на гитаре name hobby Авдеева Нина теннис Авдеева Нина чтение Куликов Евгений теннис Куликов Евгений бег Семёнов Вадим пазлы Красавцева Вера чтение Красавцева Вера чтение • В каждой ячейке таблицы должно быть только одно значение • Не должно быть повторяющихся строк
  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НФ • Есть первичный ключ • Все атрибуты зависят от первичного ключа целиком, а не от какой-то его части
  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 Семёнов Вадим
  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НФ • Все атрибуты зависят только от первичного ключа, но не от других атрибутов
  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 НФ • Ключевые атрибуты не должны зависеть он не-ключевых Первичный ключ: проект+задача, но есть зависимость между задачей и ответственным • Каждый сотрудник может курировать только ту работу для которой он квалифицирован • Есть куча проектов над которыми они работают • Для каждого из проектов могут быть выполнены и Разработка и дизайн и маркетинг • Куратор по каждому из направлений у проекта может быть только один
  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 Гитара • Таблица находится в НФ БК • Устраняются многозначные зависимости Для одного сотрудника есть • МНОЖЕСТВО проектов • МНОЖЕСТВО увлечений Атрибуты Проект и Увлечение напрямую зависят от первого столбца, но друг от друга они независимы
  18. 18/19 1НФ, 2НФ, 3 НФ • 1 НФ • В

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

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