
- •Основы бд
- •1. Основные понятия, термины.
- •2. Модели данных.
- •3. Иерархическая модель.
- •4. Сетевая модель.
- •5. Реляционная модель
- •Операции реляционной алгебры
- •Реляционное исчисление кортежей
- •Проектирование схем реляционной бд
- •1. Основные положения
- •2. Избыточность данных и аномалии обновления
- •3. Функциональная зависимость
- •4. I нормальная форма
- •5. II нормальная форма
- •7. Нормальная форма Бойса-Кодда
- •8. Обзор процесса нормализации
- •9. Многозначные зависимости
- •Методология проектирования бд
- •Основные понятия.
- •Методология концептуального проектирования.
- •Методология логического проектирования.
- •1. Основные понятия.
- •2. Методология концептуального проектирования
- •3. Методология логического проектирования
- •4. Методология физического проектирования бд
- •Пример проектирования бд
- •Пример физического проектирования бд
- •2. Управление транзакций
- •3. Обработка запросов
Реляционное исчисление кортежей
Реляционное исчисление кортежей состоит в отыскании таких кортежей, для которых предикат является истинным.
Например: staff – отношение работник.
Staff (code, FIO, salary)
RANGE OF s IS – определяем область, на которой задается отношение.
Атрибуты s.code, s.FIO | условие s.salary.
Если необходимо указать число кортежей, то используется формула квантор общности () и квантор сущности ().
Например: RANGE OF s IS STAFF
s {s.FIO=”Иванов”s.salary>300 000}
Квант общности используется, когда необходимо применять его ко всем экземплярам отношений.
s – переменная. Переменные делятся на свободные и связные (в данном случае s – связное).
Branch (OTD, NotD, City)
RANGE OF b IS Branch
b {b.OTD, b.NotD | b.City=”Минск”}
Используются переменные, которые берутся из доменов отношения. Если у нас p (d1, d2, ... , dn) – представляют предикат заданный на переменных d1, d2, ... , dn, то множество всех переменных { d1, d2, ... , dn | P(d1, d2, ... , dn)}
Отыщем сотрудников, заработная плата которых превышает заданную:
{FIO | salary (staff(FIO, salary) salary>250 000)}
Реляционное исчисление доменов и кортежей является основоположником непроцедурных языков. На их основе написан язык SQL.
Существуют язык БД – QBE (Query By Example). В его основу положено реляционное исчисление доменов
Проектирование схем реляционной бд
Основные положения
Избыточность данных и аномалии обновления
Функциональная зависимость
I нормальная форма
II нормальная форма
III нормальная форма
Нормальная форма Бойса-Кодда
Обзор процесса нормализации
Многозначные зависимости
IV нормальная форма
V нормальная форма
1. Основные положения
Для определения оптимальная структура кортежа, определения числа отношений и связей между отношениями. В реляционной БД существуют отношения: 1:1 и 1:N.
Если возникает ситуация M:N, необходимо такие отношения разбивать на 2 отношения, путем введения нового отношения, который называется отношением связи. При проектировании схем реляционной БД можно использовать следующие подходы:
- проектирование сверху вниз;
- проектирование снизу вверх.
При первом подходе вначале определяется общее число отношений, затем атрибутный состав и устанавливаются связи между отношениями.
При втором подходе необходимо на основании анализа предметной области определить атрибутный состав – данные, которые описывают данную область. Затем из этого списка выбирают атрибуты, которые являются ключевыми атрибутами. После этого устанавливают связи между ключевыми и не ключевыми атрибутами. На основе этих связей формируется отношение, которое и составляет реляционную схему данных.
С целью упрощения проектирования реляционной БД в 1976г. Была разработана модель «сущность связь» (ER-модель).Основу этой модели составляют типы сущностей, типы связей, атрибуты.
Тип сущности – это объект, который характеризует данное предметной области, которое имеет независимое существование. Тип сущности может быть объектом с физическим существованием, либо с атрибутами существования.
Физ. существование |
Концеп. существования |
Работник |
Осмотр объекта недвижимости |
Отделение |
Продажа объекта недвижимости |
Каждый идентифицируется объектом и списком свойств. Сущности подразделяются на слабые и сильные. Слабый тип – тип сущности, существование которого зависит от какого-то другого типа сущности. Сильный тип – существование независимо от других сущностей.
Пример: Аренда и продажа объектов недвижимости
Сильные сущности (родительские, доменные) |
Слабые сущности (дочерние) |
Работник |
Объект недвижимости |
Отделение |
Осмотр объекта недвижимости |
Владелец |
|
Модель «сущность связи» представляется в виде диаграммы. На этой модели каждая сильная сущность представлена в в идее прямоугольника с двойным контуром.
Свойства сущности (атрибуты):
- простые;
- составные;
- однозначные;
- многозначные.
Простой – состоящий из одного компонента с независимым существованием.
С
оставной
– состоящий из нескольких компонентов,
каждый из которых характеризуется
независимостью существования.
Пример:
Однозначный атрибут – атрибут, который содержит несколько значений для одной сущности.
Производный атрибут – атрибут, который представлен значением производным от связного с ним атрибута. Пример: Возраст сотрудника -> Дата рождения.
Простой атрибут
Атрибут может быть:
- ключевым – обозначается подчеркнутой чертой;
- не ключевым.
Первоначально определить первичный ключ для слабой сущности нельзя, он устанавливается только после установления связи между сущностями.
Пример:
Отделение(NОТД, УЛИЦА, ГОРОД, ИНДЕКС, ТЕЛЕФОН, ФАКС)
Первичный ключ – NОТД.
Альтернативный ключ – ФАКС.
Многопользовательский атрибут – ТЕЛЕФОН.
С
оставной
атрибут –
В
ладелец
– объект недвижимости.
Связь - Количество участников связи – степень этой связи.
Между ВЛАДЕЦ объектом недвижимости можно выделить связь ВЛАДЕЕТ.
Основные ограничения на типы связи:
- кардинальность – 1:1, 1:N, M:N;
- степень участия.- количество возможных связей для каждой из сущностей (2).
Существует два варианта участия сущности в связи
- полная;
- частичная.
Степень участия считается полной, если для ее необходимо существование некоторых других сущностей.
Участия сущности «Сотрудник» в этой связи является частичным, поскольку некоторый работник может не относиться к конкретному отделению.
Участники связи с полным участием - двойная линия.
Участники связи с частичным участием - одинарная линия.
При разработке концептуальной модели БД могут возникать проблемы с неправильной интерпретацией некоторых связей. Эти проблемы – ловушки соединения.
Л
овушки
разветвления возникают в тех случаях,
когда из одной сущности вытекает
несколько связей 1:N.
Ловушки разрыва возникает при наличии связи с частичным участием. Например: отдел имеет, много сотрудников, которые имеются со сдаваемым в аренду объектом, но не все сотрудники занимаются именно этой работой. Кроме того, не все отделы находятся в введении этого отделения. В данном случае возникает проблема определения, какие объекты приписаны к тому или иному отделу. В таких случаях необходимо ввести дополнительную связь.