- •Введение в базы данных
- •Отношения между прикладными программами и субд
- •Системы обработки баз данных
- •История баз данных
- •Организационный контекст
- •Реляционная модель
- •Коммерческие субд для микрокомпьютеров
- •Клиент-серверные приложения баз данных
- •Базы данных с использованием Интернет-технологий
- •Распределенные базы данных
- •Объектно-ориентированные субд
- •Банк данных
- •Основные понятия и определения
- •Пользователи банков данных
- •База данных
- •Архитектура базы данных. Физическая и логическая независимость
- •Схемы и отображения
- •Независимость от данных
- •Система управления базами данных – субд
- •Процесс прохождения пользовательского запроса
- •Введение в разработку баз данных
- •Метаданные
- •Индексы
- •Метаданные приложений
- •Подсистема средств проектирования
- •Подсистема обработки
- •Ядро субд
- •Создание базы данных
- •Процесс разработки базы данных
- •Моделирование данных
- •Функции субд
- •Модели данных
- •Объектные или инфологические модели данных
- •Модели данных на основе записей или даталогические
- •Реляционная модель данных
- •Преподаватели
- •Сетевая модель данных
- •. Физические модели данных
- •Концептуальное моделирование
- •Реляционная модель
- •Структура реляционных данных
- •Кортежи
- •Внешний ключ
- •Альтернативная терминология
- •Математические отношения
- •Отношения в базе данных
- •Реляционные ключи
- •Реляционная целостность
- •Целостность сущностей
- •Ссылочная целостность
- •Реляционные языки
- •Реляционная алгебра
- •Учебный проект DreamHome
- •Реляционная алгебра (продолжение)
- •Выборка (или ограничение)
- •Проекция
- •Декартово произведение
- •Объединение
- •Разность
- •Операции соединения
- •Tema-соединение (θ-join)
- •Естественное соединение
- •Внешнее соединение
- •Полусоединение
- •Пересечение
- •Деление
- •Другие языки
- •Примеры применения реляционной алгебры
- •Обзор жизненного цикла информационных систем
- •Жизненный цикл приложения баз данных
- •Проектирование базы данных
- •Проектирование баз данных на основе восходящего подхода (Метод нормализации или декомпозиции)
- •Цель нормализации
- •Проблемы, вызываемые использованием единственного отношения (аномалии обновления)
- •Проблема вставки
- •Проблема обновления
- •Проблемы удаления
- •Функциональные зависимости
- •Процесс нормализации
- •Декомпозиция без потерь и функциональные зависимости
- •Первая нормальная форма (1 нф) (из Коннолли)
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (знф)
- •Нормальная форма Бойса-Кодда (нфбк)
- •4 И 5 нормальные формы (4нф и 5нф)
- •Пример нормализации
- •. Другая декомпозиция отношения консультант
- •Некоторые комментарии к декомпозиционному алгоритму проектирования
- •Некоторые модификации алгоритма проектирования Избыточные функциональные зависимости
- •Транзитивные зависимости
- •Добавление атрибутов в фз
- •Правила вывода
- •Алгоритм проектирования бд методом декомпозиции (восходящий метод)
- •Проверка отношений на завершающей фазе их проектирования
- •Задачи к текущему материалу
- •Пример аномалий для 2нф
- •Нормальная форма Бойса—Кодда (нфбк) с примером аномалий для 3 формы
- •Язык sql
- •Запрос одиночной таблицы
- •Проектирование в sql
- •Выборка в sql
- •Сортировка
- •Встроенные функции sql
- •Встроенные функции и группировка
- •Запрос нескольких таблиц
- •Вложенные запросы
- •Соединение с помощью sql
- •Сравнение вложенного запроса и соединения
- •Внешнее соединение
- •Операторы exists и not exists
- •Изменение данных
- •Insert into запись
- •Insert into запись
- •Insert into третьекурсник
- •Удаление данных
- •Модификация данных
- •Запрос на sql с exist и not exist (реализация реляционной операции Деления)
- •Операция внешнего соединения таблиц в access (Мои замечания)
- •Псевдонимы столбцов и таблиц
- •Уточнения запроса
- •Теоретико-множественные операции
- •Декартово произведение наборов записей
- •Объединение наборов записей (union)
- •Пересечение наборов записей (intersect)
- •Intersect corresponding (id_компонента, Тип_компонента)
- •Вычитание наборов записей (except)
- •Операции соединения
- •Естественное соединение (natural join)
- •Условное соединение (join... On)
- •Соединение по именам столбцов (join... Using)
- •Внешние соединения
- •Левое соединение {left outer join)
- •Правое соединение {right outer join)
- •Внешнее соединение Преподаватель-Изучение-Предмет. Создание в access. Пример
- •Операторы exists и not exists
- •Низходящее проектирование бд на основе er-модели Модель «сущность—связь» и ее варианты
- •Реализация низходящего проектирования бд на основе er-модели
- •Типы сущностей
- •Способы представления сущностей на диаграмме
- •Атрибуты
- •Типы связей
- •Представление связей на диаграммах
- •Атрибуты связей
- •. Структурные ограничения
- •Показатель кардинальности
- •Степень участия
- •Примеры er-проектирования
- •Модель «сущность—связь» в другом рассмотрении
- •Элементы модели «сущность—связь»
- •Сущности
- •Атрибуты
- •Идентификаторы
- •Три типа бинарных связей
- •Диаграммы «сущность—связь»
- •Изображение атрибутов в диаграммах «сущность—связь»
- •Слабые сущности
- •Представление многозначных атрибутов при помощи слабых сущностей
- •Подтипы сущностей
- •Пример er-диаграммы
- •Документирование делового регламента
- •Модель «сущность—связь» и case-средства
- •Диаграммы «сущность—связь» в стиле uml
- •Сущности и связи в uml
- •Представление слабых сущностей
- •Представление подтипов
- •Конструкции ооп, введенные языком uml
- •Роль uml в базах данных на сегодняшний день
- •Примеры
- •Вопросы группы I
- •Вопросы группы II
- •Литература по курсу «базы и банки данных»
Отношения в базе данных
Используя указанные концепции в контексте базы данных, мы получим следующее определение реляционной схемы.
Реляционная схема-имя отношения, за которым следует множество пар имен атрибутов и доменов.
Например, для атрибутов A1, А2, ..., Аn с доменами D1, D2, ..., Dn реляционной схемой будет множество {A1:D1,A2:D2,... ,An:Dn}. Отношение R, заданное реляционной схемой S, является множеством отображений имен атрибутов на соответствующие им домены. Таким образом, отношение R является множеством таких n-арных кортежей
Каждый элемент n-арного кортежа состоит из атрибута и значения этого атрибута. Обычно при записи отношения в виде таблицы имена атрибутов перечисляются в заголовках столбцов, а кортежи образуют строки формата (d1,d2,... ,dn), где каждое значение берется из соответствующего домена. Таким образом, в реляционной модели отношение можно представить как произвольное подмножество декартового произведения доменов атрибутов, тогда как таблица — это всего лишь физическое представление такого отношения.
В примере, показанном на рис. 10, отношение КАФЕДРА имеет атрибуты Код, Название, Тел, ФИО зав.каф., Фотография заведующего и соответствующие им домены. Отношение КАФЕДРА – это произвольное подмножество декартового произведения доменов или произвольное множество 5-арных кортежей, в которых первым идет элемент из домена Код, вторым – элемент из домена Название и т.д. Например, один из 5-арных кортежей может иметь такой вид
{(01, Информатики, 310-47-74, Игнатьев В.В., Точечный рисунок1)}
Этот же кортеж можно записать в более корректной форме
{(Код:’01’, Название:’Информатики’, Телефон:’310-47-74’, ФИО:’Игнатьев В.В.’, Фотографии:’Точечный рисунок1’)}
Таблица КАФЕДРА – удобный способ записи всех 5-арных кортежей, образующих отношение в некоторый заданный момент времени.
Свойства отношений
Отношение обладает следующими характеристиками.
• Отношение имеет имя, которое отличается от имен всех других отношений.
• Каждая ячейка отношения содержит только атомарное (неделимое) значение.
• Каждый атрибут имеет уникальное имя.
• Значения атрибута берутся из одного и того же домена.
• Порядок следования атрибутов не имеет никакого значения.
• Каждый кортеж является уникальным, т.е. дубликатов кортежей быть не может.
• Теоретически порядок следования кортежей в отношении не имеет никако- • го значения. (Однако, практически этот порядок может существенно повлиять на эффективность доступа к ним.)
Для иллюстрации смысла этих ограничений давайте снова рассмотрим отношение КАФЕДРА, показанное на рис. 10. Поскольку каждая ячейка должна содержать только одно значение, то не допускается хранение в одной и той же ячейке двух номеров телефона одной и той же кафедры. Иначе говоря, отношения не могут содержать повторяющихся групп. Об отношении, которое обладает таким свойством, говорят, что оно нормализовано, или находится в первой нормальной форме.
Имена столбцов, указанные в их верхней строке, соответствуют именам атрибутов отношения. Значения атрибута Код берутся из домена Код — не допускается размещение в этом столбце иных значений, например, номера телефона. Столбцы можно менять местами при условии, что имя атрибута перемещается вместе с его значениями. Таблица все еще будет представлять то же отношение, если атрибут Тел расположить в ней перед атрибутом Название, хотя для лучшей читабельности разумнее было бы располагать код и название кафедры поблизости.
Отношение не может содержать кортежей-дубликатов. Любая строка может быть представлена в отношении только один раз. Это следует из того факта, что тело отношения – это математическое множество (кортежей), а множества в математике по определению не содержат одинаковых элементов. При необходимости строки можно менять местами произвольным образом (например, переместить строку кафедры 01 на место строки кафедры 03), само отношение при этом останется прежним. Это свойство хорошая иллюстрация того, что отношение и таблица – это не одно и то же, т.к. таблица в общем случае может содержать одинаковые строки.
Большая часть свойств отношений происходит от свойств математических отношений.
• Поскольку отношение является множеством, то порядок элементов не имеет значения. Следовательно, порядок кортежей в отношении несущественен. В отличие от этого, в таблице в общем случае порядок строк имеет значение. Это тоже подчеркивает разницу между понятиями «отношение» и «таблица».
• В множестве нет повторяющихся элементов. Аналогично, отношение не может содержать кортежей-дубликатов. Мы это уже разобрали подробно и показали, что это яркая иллюстрация того, что отношение и таблица – это не одно и то же.
• При вычислении декартового произведения множеств с простыми однозначными элементами (например, целочисленными значениями), каждый элемент в каждом кортеже имеет единственное значение. Аналогично, каждая ячейка отношения содержит только одно значение. Однако математическое отношение не нуждается в нормализации. Кодд предложил запретить наличие повторяющихся групп с целью упрощения реляционной модели данных.
• Набор возможных значений для данной позиции отношения определяется множеством, или доменом, на котором определяется эта позиция. В отношении все значения в каждом столбце должны происходить от одного и того же домена, определенного для данного атрибута.
Однако в математическом отношении порядок следования элементов в кортеже имеет значение. Например, допустимая пара значений (1, 2) совершенно отлична от допустимой пары (2, 1). Это утверждение неверно для отношений в реляционной модели, где специально оговаривается, что порядок атрибутов несущественен. Дело в том, что заголовки столбцов однозначно определяют, к какому именно атрибуту относится данное значение. Следствием этого факта является положение о том, что порядок следования заголовков столбцов в заголовке отношения несущественен. Однако, если структура отношения уже определена, то порядок элементов в кортежах тела отношения должен соответствовать порядку имен атрибутов.
