- •1. Понятие и принципы построения баз данных.
- •2. Реляционная модель. Три аспекта модели. Основные понятия, лежащие в основе реляционной модели
- •4) Виды моделей данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •3) Основные понятия реляционных баз данных
- •3.2.1. Тип данных
- •3.2.2. Домен
- •3.2.3. Заголовок отношения, кортеж, тело отношения, значение отношения, переменная отношения
- •3.2.4. Первичный ключ и интуитивная интерпретация реляционных понятий
- •3) Отношения. Переменные-отношения. Смысл отношений, свойства отношений. Домены.
- •4) Ключи переменных-отношений. Виды ключей.
- •5) Трехуровневая архитектура базы данных. Внешний, концептуальный и внутренний уровни.
- •6) Независимость данных.
- •7) Назначение и функции субд.
- •8) Реляционная алгебра – реляционный язык обработки данных.
- •9) Традиционные и специальные операции реляционной алгебры: объединение, пересечение, вычитание, декартово произведение, проекция, выборка. О соединение, естественное соединение, деление.
- •1.3.2 Пересечение
- •1.3.3 Вычитание
- •1.3.4 Произведение
- •10) Понятие функциональной зависимости для отношения. Основные определения. Способ определения ф.З. Тривиальные и нетривиальные зависимости.
- •11) Замыкание множества зависимостей. Аксиомы Армстронга.
- •12) Нормализация. Первая, вторая и третья нормальные формы отношения
- •1Нф (Первая Нормальная Форма)
- •Аномалии обновления
- •Аномалии вставки (insert)
- •Аномалии обновления (update)
- •Аномалии удаления (delete)
- •Функциональные зависимости
- •Вторая нормальная форма
- •Анализ декомпозированных отношений
- •Оставшиеся аномалии вставки (insert)
- •Оставшиеся аномалии обновления (update)
- •Оставшиеся аномалии удаления (delete)
- •Третья нормальная форма
- •12) Концептуальные модели данных. Модель «сущность-связь». Сущности, атрибуты, связи. Сущности-связи и мощности связей. Примеры.
- •Основные понятия er-модели
- •Инструкция select
- •Синтаксис
- •Замечания
- •Предложение from
- •Синтаксис
- •Замечания
- •Предложение where
- •Синтаксис
- •Замечания
- •Предикат like
- •2.3.4.2.1 Предикат сравнения
- •2.3.4.2.2 Предикат between
- •2.3.4.2.3 Предикат in
- •Предикат exists
- •Предложение having
- •Синтаксис
- •Замечания
- •Предикаты all, distinct, distinctrow, top
- •Синтаксис
- •14) Определение базы данных на sql (операторы определения и манипулирования данными).
- •15) Понятие целостности. Классификация ограниченной целостности базы данных.
- •16) Представления. Создание и использование представлений. Создание запросов к представлению.
- •17. Хранимые процедуры
- •18. Триггеры
- •19. Транзакция. Acid – свойства транзакций. Уровни изоляции транзакций.
- •Serializable (упорядочиваемость)
- •Repeatable read (повторяемость чтения)
- •Read committed (чтение фиксированных данных)
- •Read uncommitted (чтение незафиксированных данных)
- •Проблемы параллельного доступа с использованием транзакций
- •20. Защита данных. Средства защиты данных языка sql.
- •21. Понятие предметной области. Определение сущностей, связей и их свойств.
- •22. Проектирование реляционной базы данных. Определение состава таблиц
Сетевая модель данных
В сетевой структуре при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом.
Реляционная модель данных
Понятие реляционный (англ. relation — отношение) связано с разработками известного американского специалиста в области систем баз данных Е. Кодда.
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
· каждый элемент таблицы — один элемент данных;
· все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;
· каждый столбец имеет уникальное имя;
· одинаковые строки в таблице отсутствуют;
· порядок следования строк и столбцов может быть произвольным.
Отношения представлены в виде таблиц, строки которых соответствуют кортежам или записям, а столбцы — атрибутам отношений, доменам, полям.
Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем). Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеет составной ключ.
Чтобы связать две реляционные таблицы, необходимо ключ первой таблицы ввести в состав ключа второй таблицы (возможно совпадение ключей); в противном случае нужно ввести в структуру первой таблицы внешний ключ — ключ второй таблицы.
3) Основные понятия реляционных баз данных
Выделим следующие основные понятия реляционных баз данных: тип данных, домен, атрибут, кортеж, отношение, первичный ключ.
Для начала покажем смысл этих понятий на примере отношения СЛУЖАЩИЕ, содержащего информацию о служащих некоторого предприятия (рис. 3.1).
Рис. 3.1. Соотношение основных понятий реляционного подхода
3.2.1. Тип данных
Значения данных, хранимые в реляционной базе данных, являются типизированными, т. е. известен тип каждого хранимого значения. Понятие типа данных в реляционной модели данных полностью соответствует понятию типа данных в языках программирования. Напомним, что традиционное (нестрогое) определение типа данныхсостоит из трех основных компонентов: определение множества значений данного типа; определение набора операций, применимых к значениям типа; определение способа внешнего представления значений типа (литералов).
Обычно в современных реляционных базах данных допускается хранение символьных, числовых данных (точных и приблизительных), специализированных числовых данных (таких, как «деньги»), а также специальных «темпоральных» данных (дата, время, временной интервал). Кроме того, в реляционных системах поддерживается возможность определения пользователями собственных типов данных (более подробно мы обсудим это в лекции 23).
В примере на рис. 3.1 мы имеем дело с данными трех типов: строки символов, целые числа и «деньги».
3.2.2. Домен
Понятие домена более специфично для баз данных, хотя и имеются аналогии с подтипами в некоторых языках программирования (более того, в своем «Третьем манифесте» [1.5], [2.8], [3.3] Кристофер Дейт и Хью Дарвен вообще ликвидируют различие между доменом и типом данных). В общем виде домен определяется путем задания некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементу этого типа данных (ограничения домена). Элемент данных является элементом домена в том и только в том случае, если вычисление этого логического выражения дает результатистина (для логических значений мы будем попеременно использовать обозначения истина и ложь или true иfalse). С каждым доменом связывается имя, уникальное среди имен всех доменов соответствующей базы данных.
Наиболее правильной интуитивной трактовкой понятия домена является его восприятие как допустимого потенциального, ограниченного подмножества значений данного типа. Например, домен ИМЕНА в нашем примере определен на базовом типе символьных строк, но в число его значений могут входить только те строки, которые могут представлять имена (в частности, для возможности представления русских имен такие строки не могут начинаться с мягкого или твердого знака и не могут быть длиннее, например, 20 символов). Если некоторый атрибут отношения определяется на некотором домене (как, например, на рис. 3.1 атрибут СЛУ_ИМЯ определяется на домене ИМЕНА), то в дальнейшем ограничение домена играет роль ограничения целостности, накладываемого на значения этого атрибута.
Следует отметить также семантическую нагрузку понятия домена: данные считаются сравнимыми только в том случае, когда они относятся к одному домену. В нашем примере значения доменов НОМЕРА ПРОПУСКОВ и НОМЕРА ОТДЕЛОВ относятся к типу целых чисел, но не являются сравнимыми (допускать их сравнение было бы бессмысленно).