- •Основы бд
- •1. Основные понятия, термины.
- •2. Модели данных.
- •3. Иерархическая модель.
- •4. Сетевая модель.
- •5. Реляционная модель
- •Операции реляционной алгебры
- •Реляционное исчисление кортежей
- •Проектирование схем реляционной бд
- •1. Основные положения
- •2. Избыточность данных и аномалии обновления
- •3. Функциональная зависимость
- •4. I нормальная форма
- •5. II нормальная форма
- •7. Нормальная форма Бойса-Кодда
- •8. Обзор процесса нормализации
- •9. Многозначные зависимости
- •Методология проектирования бд
- •Основные понятия.
- •Методология концептуального проектирования.
- •Методология логического проектирования.
- •1. Основные понятия.
- •2. Методология концептуального проектирования
- •3. Методология логического проектирования
- •4. Методология физического проектирования бд
- •Пример проектирования бд
- •Пример физического проектирования бд
- •2. Управление транзакций
- •3. Обработка запросов
5. Реляционная модель
Реляционная БД основывается на понятии отношения. Физическим представлением этого отношения является таблица. Т.е. плоская таблица, которая состоит из строк и столбцов. БД – это набор таблиц.
Домен – поименованный столбец отношения.
Кортеж – поименованная строка отношения.
Т.о. каждый атрибут определяется на некотором домене. Отношения характеризуется рядом следующих свойств:
1. Степень – количество атрибутов, которое содержит это отношение.
2. Кардинальность отношения – количество содержащих в отношении кортежей. Может меняться.
Реляционная модель представляет из себя набор нормализованных отношений.
-
Официальный термин
Альтернативный термин
Альтернативный термин2
Отношение
Таблица
Файл
Кортеж
Строка
Запись
Атрибут
Столбец
Поле
Реляционная схема – имя отношения, за которым записывается множество пар имен столбцов и доменов.
Отношение R(А1,А2,А3,…,Аn) – n-арное отношения, которое определены на доменах D1,D2,…Dn реляционная схема будет иметь следующий вид:
R(A1 : D1, A2 : D2, … , An : Dn)
Отношение обладает следующими характеристиками:
имеет уникальное имя;
Каждая ячейка представляет из себя атомарное неделимое значение;
Каждый атрибут отношения имеет уникальное имя;
Значения атрибутов берутся из одного и того же домена;
каждый картеж отношения является уникальным;
Порядок следования отношений является неизменным.
Отношения удовлетворяющие выше указанным характеристикам называются нормализованными отношениями, т.е. отношениями отвечающие первой нормальной форме. Всякое отношение должно приводиться к этой форме для построения реляционной БД.
Для уникальной идентификации картежей вводится понятие реляционных ключей. Существуют следующие типы реляционных ключей:
Супер-ключ – единственным образом идентифицирует картеж данного отношения.
Потенциальный ключ – супер-ключ, который не содержит подмножества так же являющийся супер-ключом данного домена.
Потенциальный ключ имеет следующие свойства:
- уникальность;
- неприводимость.
Одно отношение может иметь несколько уникальных ключей. Выбор потенциальных ключей для идентификации картежей осуществляется исходя из смысла использования атрибутов в реальной задаче.
Первичный ключ – тот же потенциальный ключ, который выбран для идентификации кортежа внутри отношения.
Вторичный ключ – столбец отношения (группа столбцов), которые выбраны для организации связи между таблицами их первичным ключом. Значение вторичных ключей, как правила, повторяются. Они используются для организации связи 1:N.
Составной ключ – ключ состоящий из нескольких атрибутов.
Для всех допустимых БД задаются правила целостности. В реляционной модели существует два основных правила целостности:
Целостность сущностей;
Ссылочная целостность.
Первое правило относится к первичным ключам : в базовом отношении первичный ключ не может иметь отсутствующих значений, определенных как NULL. Определитель NULL указывает , что значение атрибута в банный момент не определено или не приемлемо для данного кортежа.
Второе правило касается внешних (вторичных) ключей: если в отношении существует внешний ключ, то его значение должно соответствовать значению потенциального ключа в базовом отношении. Допускается определить внешний ключ как NULL-значение.