Базы данных Лекция №05 Основные понятия реляционных баз данных 1. Термины и определения 1. База данных (database) – поименованная совокупность структурированных данных, относящихся к определенной предметной области 2. Предметная область – часть реально существующей системы, функционирующая как самостоятельная единица 3. Реляционная БД –тип современных баз данных 4. Таблица (table) – регулярная структура, состоящая из однотипных строк (records) , разбитых на столбцы (fields) 5. Таблица реляционной БД – отношение (relation). 2 Строка – кортеж. Столбец – атрибут 1. Термины и определения 6. Таблица в концептуальной модели БД – сущность (entity). Набор свойств – атрибуты. Набор допустимых значений – домен 7. Ключевой элемент (regular key) – поле/поля, определяющее значения других полей 8. Первичный ключ (primary key) – элемент, однозначно идентифицирующий строку 9. Связь (relation) – функциональная зависимость между объектами 10.Внешний ключ (foreign key) – ключевой элемент подчиненной (внешней, дочерней) таблицы 11.Ссылочная целостность данных (referential 3 integrity) – набор правил 1. Термины и определения 12.Хранимые процедуры (stored procedures) – программные модули, сохраняемые в БД 13.Триггеры (triggers) – хранимые процедуры, запускаемые при изменениях в таблице 14.Объект (object) – элемент информационной системы, имеющий свойства (properties) и реагирующий на события (events) 15.Система – совокупность взаимодействующих между собой и с внешним окружением объектов 16.Репликация БД – создание копий БД (replica) 17.Транзакция – изменение информации в БД 18.Язык SQL (Structured Query Language) – 4 универсальный язык работы с БД 2. Структура данных 1. Декартово произведение: D1*D2*…*Dn = d1*d2*…*dn, где d1D1, d2D2, dnDn Пример: Пусть A (a1, a2, a3) и B (b1, b2), тогда С=A*B (a1*b1, a2*b1, a3*b1, a1*b2, a2*b2, a3*b2) 2. Отношение R на множествах D1, D2, … Dn – это подмножество декартова произведения D1* D2*…* Dn • Множества D1, D2, … Dn – домены • Элементы декартова произведения d1*d2*…*dn – кортежи • Число n – степень отношения (n=1 - унарное, n=2 – бинарное, ..., n-арное) 5 • Количество кортежей – мощность отношения 2. Структура данных Основные компоненты реляционного отношения 6 2. Структура данных БД о подразделениях и сотрудниках предприятия Внешний ключ – атрибут, представляющий собой 7 копию ключей других отношений 2. Структура данных Свойства отношений: 1.Отсутствие кортежей-дубликатов 2.Отсутствие упорядоченности кортежей 3.Отсутствие упорядоченности атрибутов 4.Атомарность значений атрибутов Проблемы проектирования: •Отобразить объекты предметной области в абстрактные объекты модели данных •Обеспечить эффективность выполнения 8 запросов к БД 3. Теория нормальных форм Последовательность НФ: • Первая нормальная форма (1NF) • Вторая нормальная форма (2NF) • Третья нормальная форма (3NF) • Нормальная форма Бойса-Кодда (BCNF) • Четвертая нормальная форма (4NF) • Пятая нормальная форма (5NF) Основные свойства нормальных форм: • Каждая следующая НФ в некотором смысле лучше предыдущей • При переходе к следующей НФ свойства предыдущих НФ сохраняются 9 3. Теория нормальных форм Функциональные зависимости (ФЗ) • Атрибут Y некоторого отношения функционально зависит от X, если в любой момент времени каждому значению X соответствует ровно одно значение Y • Избыточная функциональная зависимость – зависимость, которая может быть получена на основе других зависимостей, имеющихся в БД • Нормализация – обратимый пошаговый процесс замены совокупности отношений другой схемой с устранением избыточных функциональностей • Условие обратимости требует: – Не должны появляться ранее отсутствовавшие кортежи – Должны выполняться исходные множества ФЗ 10 3.1. Первая нормальная форма (1NF) • Простой атрибут – атрибут, значения которого атомарны (неделимы) • Сложный атрибут – получается соединением нескольких атомарных атрибутов • Отношение находится в 1NF, если значения всех его атрибутов атомарны 11 СЛУЖАЩИЙ (номер_служащего, имя, дата_рождения, история_работы, дети) 3.1. • • • Первая нормальная форма (1NF) ИСТОРИЯ_РАБОТЫ (дата_приема, название, история_зарплаты), ИСТОРИЯ_ЗАРПЛАТЫ (дата_назначения, зарплата), ДЕТИ (имя_ребенка, год_рождения) 12 3.2. Вторая нормальная форма (2NF) Отношение находится во 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от ключа Сотрудник Гришин Васильев Иванов Должность Кладовщик Программист Кладовщик Зарплата 10000,00 р. 20000,00 р. 12000,00 р. Компьютер Нет Есть Нет СОТРУДНИКИ (Сотрудник, Должность, Зарплата, Компьютер) Сотрудник Гришин Васильев Иванов Должность Кладовщик Программист Кладовщик Должность Кладовщик Программист • СОТРУДНИКИ (Сотрудник, Должность) • ДОЛЖНОСТИ (Должность, Компьютер) Компьютер Нет Есть 13 3.3. Третья нормальная форма (3NF) Отношение находится в 3НФ, если оно находится во 2НФ и каждый неключевой атрибут нетранзитивно зависит от Первичного Ключа Если существует такое множество атрибутов Y, что X → Y и Y → Z, то Z транзитивно зависит от X (X → Z) Сотрудник Гришин Васильев Иванов Отдел Бухгалтерия Снабжение Отдел Бухгалтерия Бухгалтерия Снабжение Телефон 11-22-33 44-55-66 Телефон 11-22-33 11-22-33 44-55-66 Сотрудник Гришин Васильев Петров Отдел Бухгалтерия Бухгалтерия Снабжение 14 3.4. Бойса-Кодда нормальная форма (BCNF) Отношение находится в BCNF, если оно находится во 3НФ и в ней отсутствуют зависимости атрибутов Первичного Ключа от неключевых атрибутов Номер корта Время начала К-171 К-05 К-171 К-05 К-НН 8:00 8:00 8:00 12:00 0:00 Тариф Premium General Family VIP Время начала 8:00 8:00 12:00 0:00 Время окончания 24:00 20:00 20:00 18:00 24:00 Время окончания 24:00 20:00 18:00 24:00 Тариф Premium General Family General VIP Тариф Член клуба Premium General General Family VIP Да Нет Нет Да Да Номер корта Член клуба К-171 Да К-171 Нет К-05 Да К-05 Нет К-НН Да 15 3.5. Четвёртая нормальная форма (4NF) Отношение находится в 4NF, если оно находится в BCNF и в нём отсутствуют многозначные зависимости, не являющиеся функциональными зависимостями ИМЯ Петров Петров Петров Петров Иванов Иванов КУРС Теория упругости Теория колебаний Теория упругости Теория колебаний Теория удара Теория удара УЧЕБНОЕ_ПОСОБИЕ Теория упругости Теория упругости Теория колебаний Теория колебаний Теория удара Теоретическая механика Иванов Иванов Теория упругости Теория упругости Теория удара Теоретическая механика ИМЯ Петров Петров Иванов Иванов КУРС Теория колебаний Теория упругости Теория удара Теория упругости ИМЯ Петров Петров Иванов Иванов УЧЕБНОЕ_ПОСОБИЕ Теория колебаний Теория упругости Теоретическая механика Теория удара 16 3.6. Пятая нормальная форма (5NF) Отношение находится в 5НФ тогда и только тогда, когда любая зависимость по соединению в нём определяется только его возможными ключами Основные варианты декомпозиции отношения R с атрибутами {a, b, c}: {a}, {b}, {c} {a, b}, {b, c} {a}, {b, c} {a, b}, {a, c} {a, b}, {c} {b, c}, {a, c} {b}, {a, c} {a, b}, {b, c}, {a, c} Отношение R‘ – результат операции естественного соединения (NATURAL JOIN), тогда: Декомпозиция называется декомпозицией без потерь, если 17 R' в точности совпадает с R 3.5. Пятая нормальная форма (5NF) Не всякая декомпозиция является декомпозицией без потерь Пример: Результат операции Отношение R с атрибутами {a, b, c} A Москва Томск Берлин R B Россия Россия Германия c Столица Не столица Столица Декомпозиция R1 = {a}, R2 = {b, c} имеет вид: R1 a Москва Томск Берлин R2 b Россия Россия Германия c Столица Не столица Столица соединения этих отношений: R' = R1 NATURAL JOIN R2 a b c Москва Россия Столица Москва Россия Не столица Москва Германия Столица Томск Россия Столица Томск Россия Не столица Томск Германия Столица Берлин Россия Столица Берлин Россия Не столица Берлин Германия Столица 18 3.5. Пятая нормальная форма (5NF) Пример: Отношение R с атрибутами {a, b, c} R B Россия Россия Германия A Москва Томск Берлин c Столица Не столица Столица Декомпозиция R1 = {a, b}, R2 = {a, c}: b Россия Россия Германия A Москва Томск Берлин R B Россия Россия Германия c Столица Не столица Столица R2 R1 a Москва Томск Берлин Результат операции соединения этих отношений: a Москва Томск Берлин c Столица Не столица Столица 19 3.5. Пятая нормальная форма (5NF) Пример: Ассортимент (продавцы, фирмы, товары) Продавец Фирма Товар Иванов Рога и Копыта Пылесос Иванов Рога и Копыта Хлебница Петров Безенчук&Ко Сучкорез Петров Безенчук&Ко Пылесос Петров Безенчук&Ко Хлебница Петров Безенчук&Ко Зонт Сидоров Безенчук&Ко Пылесос Сидоров Безенчук&Ко Телескоп Сидоров Рога и Копыта Пылесос Сидоров Рога и Копыта Лампа Сидоров Геркулес Вешалка Товары продавцов Продавец Товар Иванов Пылесос Иванов Хлебница Петров Сучкорез Петров Пылесос Петров Хлебница Петров Зонт Сидоров Телескоп Сидоров Пылесос Сидоров Лампа Сидоров Вешалка Товары фирм Фирма Товар Рога и Копыта Пылесос Рога и Копыта Хлебница Рога и Копыта Лампа Безенчук&Ко Сучкорез Безенчук&Ко Пылесос Безенчук&Ко Хлебница Безенчук&Ко Зонт Безенчук&Ко Телескоп Геркулес Вешалка Фирмы продавцов Продавец Фирма Иванов Рога и Копыта Петров Безенчук&Ко Сидоров Безенчук&Ко Сидоров Рога и Копыта Сидоров Геркулес 20 4. Заключение Нормализация схемы БД: • Способствует более эффективному выполнению СУБД операций обновления • При проектировании данных почти всегда добиваются 2NF • В часто обновляемых БД стараются обеспечить 3NF • На BCNF внимание обращают гораздо реже 21 1. 2. 3. 4. 5. 6. 4. Заключение 1NF – значения всех его атрибутов атомарны 2NF – каждый неключевой атрибут функционально полно зависит от ключа 3NF – каждый неключевой атрибут нетранзитивно зависит от Первичного Ключа BCNF – отсутствуют зависимости атрибутов Первичного Ключа от неключевых атрибутов 4NF – отсутствуют многозначные зависимости 5NF – любая зависимость по соединению определяется только его возможными ключами. Каждая проекция такого отношения содержит не менее одного возможного ключа и не менее 22 одного неключевого атрибута. Спасибо за внимание 23