Лекция № 5 Базы данных и СУБД
Термины и понятия 1. База данных (БД) - набор сведений, хранящихся упорядоченным способом. БД- это хранилище данных. 2. Система управления базами данных (СУБД) - совокупность языковых и программных средств для доступа к данным, добавления, изменения, удаления, обеспечения безопасности. Осуществление доступа - посредством специального языка - SQL. 3. SQL - язык структурированных запросов, для считывания и записи информации в БД.
Простейшая схема работы с БД
Классификация по типу использования
Структурирование данных Цель – упорядочивание Структурирование - это набор соглашений о способах представления данных. Структурировать информацию можно по-разному. Различают иерархическую, сетевую, реляционную, объектноориентированную и гибридную модели БД.
Иерархическая модель данных
Сетевая модель данных
Виды связей «Один-к-одному» - любому экземпляру сущности А соответствует только один экземпляр сущности В, и наоборот. У любого студента может быть только одна характеристика, и она относится к единственному студенту
Виды связей «Один-ко-многим» - любому экземпляру сущности А соответствует 0, 1 или несколько экземпляров сущности В, но любому экземпляру сущности В соответствует только один экземпляр сущности А. Студенту ставят много оценок; поставленная оценка принадлежит только одному студенту
Виды связей «Многие-к-одному» - любому экземпляру сущности А соответствует только один экземпляр сущности В, но любому экземпляру сущности В соответствует 0, 1 или несколько экземпляров сущности А. Преподаватель работает только на одной кафедре, однако на кафедре работает несколько преподавателей.
Виды связей «Многие-ко-многим» - любому экземпляру сущности А соответствует 0, 1 или несколько экземпляров сущности В, и любому экземпляру сущности В соответствует 0, 1 или несколько экземпляров сущности А. Студент Иванов учится у нескольких преподавателей. И каждый преподаватель работает со многими студентами.
Проектирование БД Отношение представляет собой двумерную таблицу. Сущность – объект любой природы, данные о котором хранятся в БД. Атрибуты – свойства сущности (столбцы или поля). Степень отношения – количество столбцов.
Проектирование БД Схема отношения – список имен атрибутов, например, СОТРУДНИК (№, ФИО, Год рождения, Должность, Отдел). Домен – совокупность значений атрибутов отношения (тип данных). Запись или Кортеж – строка таблицы. Кардинальность (мощность) – количество строк в таблице.
Проектирование БД В таблице не может быть двух одинаковых строк. Столбцы располагаются в порядке, определяемом при создании таблицы. У каждого столбца есть уникальное имя (в пределах таблицы), и все значения в одном столбце имеют один тип (число, текст, дата. . . ).
Проектирование БД На пересечении каждого столбца и строки может находиться только атомарное значение (одно значение, не состоящее из группы значений). Таблицы, удовлетворяющие этому условию, называют нормализованными (1 НФ).
Элементы реляционной модели
Ключи ØПервичный ключ – (РК) это атрибут, уникально идентифицирующий строки отношения. РК из нескольких атрибутов - составной. ØРК не может быть пустым (иметь значение null). ØКлючи, которые можно использовать в качестве РК потенциальные или альтернативные
Ключи РК могут быть логическими (естественными) и суррогатными (искусственными). Внешний ключ (FK) – это атрибут (атрибуты) одной таблицы, который может служить первичным ключом другой таблицы. Является ссылкой на первичный ключ другой таблицы.
Универсальное отношение Данные могут группироваться в таблицы (отношения) разными способами. В качестве отправной точки может использоваться универсальное отношение, которое включает все необходимые атрибуты. Оно может содержать все данные, которые предполагается размещать в БД.
универсальное отношение сотрудники Код сотрудника ФИО 7513 Иванов И. И. 9842 Сергеева С. С. 6651 Петров П. П. 9006 Николаев Н. Н. Должность Программист Администрато р БД Программист Системный администратор Номер Наименование Квалификаци отдела я Отдел C, 128 42 128 проектирования Java Финансовый отдел Отдел Oracle VB, проектирования Java Отдел Windows, проектирования Linux
Проблемы универсального отношения - избыточность данных; - потенциальная противоречивость (аномалии) – это проблемы, возникающие в данных из-за дефектов проектирования БД. Существуют три вида аномалий: вставки, удаления и модификации.
Аномалии вставки проявляются при вводе данных в дефектную таблицу, не ясно, какая из строк БД содержит правильную информацию. Аномалии удаления Аномалии модификации - при изменении данных дефектной схемы.
Решение проблем состоит в разделении данных и связей, что обеспечивается процедурой нормализации. Концепции и методы нормализации были разработаны Э. Ф. Коддом.
Эдгар Франк «Тед» Кодд Edgar Frank Codd ( 1923 — 2003) — британский учёный, заложил основы теории реляционных БД. В 1970 издана первая работа Одна из НФ названа в его честь (НФ Бойса — Кодда) Рэймонд Бойс , 1947— 1974 В 2002 журнал Forbes поместил РМ в список важнейших инноваций последних 85 лет.
Функциональная зависимость Базовое понятие Атрибут В функционально зависит от атрибута А, если каждому значению А соответствует в точности одно значение В. А -> В Во всех кортежах с одинаковым знач. атрибута А атрибут В будет иметь одно и то же значение. ( А и В могут состоять из двух и более атрибутов)
Функциональная зависимость Зависимость, при которой каждый неключевой атрибут зависит от всего составного ключа и не зависит от его частей, называется полной функциональной зависимостью. Если атрибут В зависит от атрибута А, а С зависит от В (А -> В -> С), но обратная зависимость отсутствует, то зависимость С от А - транзитивная.
Многозначная зависимость Один атрибут отношения многозначно определяет другой атрибут того же отношения, если для каждого значения первого существует множество соответствующих значений второго атрибута. · один-ко-многим (1: М); · многие-к-одному (М: 1); · многие-ко-многим (М: М).
Нормализация отношений Каждая ступень нормализации приводит схему отношений в последовательные НФ. Для каждой НФ имеются наборы ограничений. Последовательность НФ: первая нормальная форма (1 НФ) --> 2 НФ --> 3 НФ --> усиленная 3 НФ или НФ форма Бойса-Кодда (БКНФ) --> 4 НФ 5 НФ
1 НФ Отношение находится в первой нормальной форме (1 НФ), когда каждая строка содержит только одно значение для каждого атрибута (столбца), то есть все атрибуты отношения имеют единственное значение (являются атомарными)
Отношение СОТРУДНИКИ в 1 НФ Код сотрудника ФИО Должность Номер отдела 7513 Иванов И. И. Программист 128 9842 Сергеева С. С. Админ БД 6651 Петров П. П. Программист 128 9006 Николаев Н. Сис. Админ 128 42 Наименование отдела Отдел проектирования Финансовый отдел Отдел проектирования Квалификаци я C Java Oracle VB Java Windows Linux
2 НФ Отношение находится в 2 НФ, если оно находится в 1 НФ, и каждый неключевой атрибут полностью функционально зависит от всех составляющих первичного ключа. Иначе он внесен ошибочно и должен быть удален. Нормализация - нахождение отношения, к которому относится данный атрибут и создание нового, в который атрибут должен быть помещен.
Пример к таблице 1 НФ Можно определить имя, должность и отдел, используя только код сотрудника. Т. е. указанные атрибуты функционально зависимы только от части РК, а не от всего РК. !!!ОНеобходимо декомпозировать исходное отношение на два, в которых все неключевые атрибуты будут полностью функционально зависеть от ключа
Приведение к 2 НФ Сотрудники Код сотрудника Номер отдела ФИО Должность 7513 Иванов И. И. Программист 128 9842 Сергеева С. С Админ БД 6651 Петров П. П. 9006 Николаев Н. Сис. Админ 42 Программист 128 Наименование отдела Отдел проектирования Финансовый отдел Отдел проектирования
Приведение к 2 НФ Квалификация Код сотрудника Квалификация 7513 C 7513 Java 9842 Oracle 6651 VB 6651 Java 9006 Windows 9006 Linux
3 НФ Отношение в 3 НФ, если оно во 2 НФ и ни один из его неключевых атрибутов не связан функциональной зависимостью с любым другим неключевым атрибутом. Нормализация - исключить все транзитивные зависимости - перемещение зависимого атрибута и атрибута, от которого он зависит, в новое отношение.
Приведение к 3 НФ Сотрудники Код сотрудника Номер отдела ФИО Должность 7513 Иванов И. И. Программист 128 9842 Сергеева С. С. Админ БД 6651 Петров П. П. 9006 Николаев Н. Сис. Админ 42 Программист 128
Приведение к 3 НФ Отделы Номер Наименование отдела 42 Финансовый отдел 128 Отдел проектирования
НФ Бойса-Кодда (БКНФ) является развитием ЗНФ и требует, чтобы в отношении были только такие функциональные зависимости, левая часть которых является потенциальным ключом отношения. Потенциальный ключ представляет собой атрибут (или множество атрибутов), который может быть использован в качестве РК.
НФ Бойса-Кодда (БКНФ) Фактически РК – это один из потенциальных ключей, назначенный в качестве первичного. Детерминантом называется левая часть функциональной зависимости. Отношение находится в БКНФ тогда и только тогда, когда каждый детерминант отношения является потенциальным ключом.
Алгоритм приведения ненормализованных схем в 3 НФ
Итого «Нормализация – это ключ, целый ключ и ничего, кроме ключа» ПОЛУЧИТЬ ИНД. ЗАДАНИЕ КОНЕЦ ЛЕКЦИИ!!!!