
- •Понятия: первичный ключ, внешний ключ, суррогатный ключ, индекс.
- •Ограничения на значения данных.
- •Ограничения на связи между данными.
- •Нормализация отношений. Первая нормальная форма.
- •Нормализация отношений. Вторая нормальная форма.
- •Варианты задания условий отбора при создании sql-запросов.
- •Варианты создания многотабличных sql-запросов. Виды объединений.
- •Использование вычисляемых полей при создании sql-запросов.
- •Использование подчиненных запросов в sql-запросах.
- •Возможности запроса alter table.
- •Обработка транзакций.
- •Распределение функций в архитектуре «клиент-сервер».
- •1. Двухзвенные архитектуры.
- •2. Трёхзвенные архитектуры.
- •Понятие хранимой процедуры.
- •Понятие триггера.
Система обработки БД.
Это совокупность тем или иным способом структурированных данных (баз данных) и комплекса программных средств для осуществления манипуляций с данными.
Понятие БД и её назначение.
База данных – совокупность взаимосвязанных хранящихся вместе данных при наличии такой минимальной избыточности, которая обеспечивает их использование оптимальным образом для всех приложений.
БД нужны для эффективной обработки и анализирования большого числа данных.
Функции СУБД.
Система управления БД (СУБД) – программа, посредством которой реализуется создание БД и управление ею, включая:
добавление новых данных,
модификация существующих данных,
осуществление доступа к данным
Дополнительные функции СУБД:
1. Обеспечение целостности данных – поддержка согласованности и достоверности данных в БД в любой момент времени.
1.1. Обеспечение физической целостности данных – защита данных от разрушений при сбоях оборудования.
Поддержка понятия транзакции.
Использование источников бесперебойного питания UPS.
Резервное копирование и восстановление БД.
1.2. Обеспечение логической целостности данных – защита данных от некорректных обновлений.
Задание ограничений на значения данных (диапазоны, шаблоны и т.д.).
Задание уникальности значений данных.
Запрет редактирования значений данных.
Средства управления транзакциями.
2. Обеспечение безопасности данных – предоставление доступа к данным определённого объёма только тем лицам, которые имеют на это право.
Аутентификация пользователя – проверка подлинности пользователя.
Авторизация пользователя – предоставление прав на выполнение тех или иных действий с БД.
Хранение информации о пользователях, выполняющих изменение данных, т.е. установление автора тех или иных изменений в БД.
3. Обеспечение одновременного доступа к данным множества пользователей:
Управление блокировками.
Параллельная обработка транзакций.
Понятие концептуальной модели данных.
Концептуальная модель данных – концептуальное представление хранимой информации, использующейся в проектируемой ИС; первоначальный проект БД.
Задача разработчика – построить модель данных пользователя, определяющую объекты, информация о которых должна храниться в БД, их структуру и связи между ними.
Концептуальная модель данных должна поддерживать все пользовательские представления о данных, т.к. БД – это единое хранилище информации для всей ИС.
Модель «сущность-связь», ER-диаграмма, ERD (Entity Relationship Diagram)
Это средство моделирования данных.
Ключевые элементы ER-диаграммы:
сущности;
атрибуты;
идентификаторы;
связи.
1). Сущность (Entity) – реальный или абстрактный объект, являющийся узловой точкой сбора информации.
Класс сущностей – совокупность сущностей одного типа.
Экземпляр сущности – конкретная сущность.
2). Атрибут (Attribute) – поименованная характеристика сущности.
Композитный атрибут – атрибут, состоящий из группы атрибутов.
Многозначный атрибут – атрибут, содержащий несколько значений.
3). Идентификатор (Identifier) – атрибут или совокупность атрибутов, однозначно определяющие каждый экземпляр сущности.
Графическое представление ER-диаграмм:
сущности – прямоугольники,
атрибуты – эллипсы,
идентификатор – подчеркнутый атрибут.
4). Связь (Relationship) – моделирует отношение между сущностями.
Свойства связи:
а). Степень связи – число классов сущностей, участвующих в связи.
б). Тип связи – число экземпляров сущностей, участвующих в связи.
Связь «один-к-одному» (1:1) – один экземпляр первой сущности связан с одним экземпляром второй сущности и наоборот.
Связь «один-ко-многим» (1:М) – один экземпляр первой сущности связан со многими экземплярами второй сущности, но один экземпляр второй сущности связан только с одним экземпляром первой сущности.
Связь «многие-ко-многим» (М:N) – один экземпляр первой сущности связан со многими экземплярами второй сущности и наоборот.
в). Максимальная кардинальность связи – максимальное количество экземпляров сущностей, участвующих в связи.
Максимальные кардинальные числа могут иметь значения, отличные от 1:1, 1:М, М:N.
г). Минимальная кардинальность связи – минимальное количество экземпляров сущностей, участвующих в связи.
Минимальная кардинальность связи рассматривается как характеристика обязательности или необязательности участия экземпляра сущности в связи.
Подтипы сущности – сущности, уточняющие варианты типов исходной сущности, являющейся надтипом; наследуют атрибуты от надтипов.
Взаимоисключающие подтипы – экземпляр надтипа может принадлежать только к одному подтипу.
Невзаимоисключающие подтипы – экземпляр надтипа может принадлежать к нескольким подтипам.
Диаграмма классов UML.
Диаграмма классов – отражает взаимосвязи между сущностями предметной области, описывает их внутреннюю структуру и типы отношений; совокупность классов с атрибутами и операциями, а также связывающие их отношения.
Класс (Class)– абстрактное описание множества однородных объектов.
Виды отношений:
1. Отношение ассоциации – произвольное отношение между классами.
Кратность ассоциации – кардинальность, представленная в формате X..Y,
где X – необходимый минимум,
Y – допустимый максимум,
X и Y – целые числа от 0 до * (неограниченное значение).
2. Отношение обобщения – описывает иерархическое строение классов и наследование их свойств и поведения.
3. Отношение композиции – для представления связи «часть – целое».
Понятие логической структуры БД.
Проектирование логической структуры БД – преобразование концептуальной модели данных в модель данных, поддерживаемую определённым типом СУБД.
Логическая структура БД (схема БД) – структура элементов данных и логических связей между ними:
соответствующая концептуальной модели данных,
совместимая с определённым типом модели данных, поддерживаемой СУБД.
Типы моделей данных, поддерживаемые СУБД.
1. Дореляционные модели данных
1.1. Иерархическая модель данных – иерархия типов объектов, между которыми установлена связь 1:М.
Недостаток – неиерархические по своей природе данные трудно представить средствами иерархической модели данных.
1.2. Сетевая модель данных – не имеет ограничений на связи между объектами.
Недостаток – выполнение даже простых запросов является сложным процессом.
2. Реляционные модели данных
Relation (отношение) – подмножество декартова произведения доменов.
Домен – множество допустимых значений атрибута (элемента данных).
Декартово произведение доменов D1, D2, …, Dk
D = D1 * D2 *…* Dk : – множество всех кортежей длины k, состоящих из k элементов по одному из каждого домена,
– позволяет получить все возможные комбинации значений рассматриваемых доменов
Отношение R на множествах D1, D2, …, Dk:
– подмножество декартова произведения доменов D,
– некоторое множество кортежей арности k.
Отношение удобно представлять в виде таблицы, где строки соответствуют кортежам, а столбцы – атрибутам, каждый из которых определён на некотором домене.
Реляционная терминология:
Отношение = Таблица – двумерная таблица
Атрибут = Столбец = Поле = Элемент данных – столбец таблицы
Кортеж = Строка = Запись – строка таблицы
Отношение должно удовлетворять ограничениям:
Значения атрибута должны принадлежать домену, на котором определён атрибут.
Порядок следования кортежей в отношении не имеет значения.
Два кортежа не могут иметь полностью совпадающих наборов значений атрибутов.
Первичный ключ – один или более атрибутов, значения которых однозначно идентифицируют кортеж (строку) отношения.
Замечания:
Каждое отношение должно иметь первичный ключ.
Первичный ключ может состоять из всех атрибутов отношения, т.к. отношение не может иметь одинаковых кортежей.
Схема отношения (структура отношения) – список имён атрибутов отношения.
Индекс – дополнительная структура, которая строится для атрибута или совокупности атрибутов с целью увеличения быстродействия работы БД.
Замечания:
Для первичного ключа индекс строится автоматически.
Дополнительно индекс позволяет обеспечить уникальность значений атрибутов.
Реляционная модель данных – совокупность отношений (таблиц).
Недостаток реляционной модели данных – не приспособлены для хранения объектов, содержащих сложные структуры данных, а также методы, определяющие поведение объектов.
3. Другие типы моделей данных
3.1. Объектно-ориентированная модель данных (ООСУБД) – позволяет хранить объекты.
Недостаток – преобразование существующих реляционных данных в объектно-ориентированный формат коммерчески невыгодно.
3.2. Объектно-реляционная модель данных (ОРСУБД) – позволяет хранить объекты наряду с хранением реляционных данных.
Реляционная модель данных.
Реляционная модель данных – совокупность отношений (таблиц).
Недостаток реляционной модели данных – не приспособлены для хранения объектов, содержащих сложные структуры данных, а также методы, определяющие поведение объектов.
Преобразование концептуальной модели данных в реляционную модель данных.
Соответствие между основными элементами моделей:
Элемент ER-диаграммы |
Элемент диаграммы классов UML |
Элемент реляционной модели |
Сущность |
Класс |
Отношение (таблица) |
Атрибут сущности |
Атрибут класса |
Атрибут (столбец, поле) отношения |
Связь |
Отношение ассоциации |
Дублирование атрибутов (столбцов, полей) связываемых отношений |
1. Представление связи «один-к-одному»:
Каждая сущность (класс) представляется отношением.
Ключ одного из отношений помещается в другое отношение.
«Подозрительные» связи 1:1 имеют место, если:
Связь обязательна в обоих направлениях.
Сущности отражают различные аспекты одного и того же объекта.
Сущности содержат одинаковый идентификатор.
В этом случае сущности следует объединить в одно отношение.
2. Представление связи «один-ко-многим»:
Каждая сущность (класс) представляется отношением.
Ключ отношения, находящегося на стороне 1, помещается в отношение, находящееся на стороне М (внешний ключ).
3. Представление связи «многие-ко-многим»:
Каждая сущность (класс) представляется отношением.
Создаётся третье отношение (отношение пересечения), представляющее связь между сущностями.
Ключ отношения пересечения является комбинацией ключей связываемых отношений.
4. Представление подтипов:
Надтип представляется отношением.
Подтипы представляются отношениями.
К каждому отношению подтипа добавляется ключ отношения надтипа.
Понятия: первичный ключ, внешний ключ, суррогатный ключ, индекс.
Первичный ключ – один или более атрибутов, значения которых однозначно идентифицируют кортеж (строку) отношения.
Внешний ключ – атрибут (или группа атрибутов), являющийся копией первичного ключа другого отношения.
Суррогатный ключ – уникальный идентификатор, используемый в качестве первичного ключа отношения, не имеющий смысла для пользователя.
Основная причина использования суррогатных ключей – индексы, определённые на текстовом домене, слишком велики.
1). Первичный ключ, созданный на основе текстового атрибута, требует построения уникального индекса, который получается большим.
2). Первичный ключ отношения пересечения (связь M:N), созданный на основе текстовых атрибутов, получается большим.
Индекс – дополнительная структура, которая строится для атрибута или совокупности атрибутов с целью увеличения быстродействия работы БД.
Затраты на хранение и обработку индексов могут быть значительно снижены, если в отношениях определить суррогатные ключи.
Достоинства суррогатных ключей:
компактность значений,
снижение занимаемого объёма памяти,
лёгкость индексирования,
постоянная идентификация.
Способы генерации значений суррогатного ключа:
генерация системой (тип Счётчик, AutoNumber),
генерация пользователем или программой (вручную или программно).
Замечания:
Не следует вводить суррогатный ключ в отношение, имеющее в качестве естественного ключа легко индексируемые данные.
С осторожностью относиться к суррогатным ключам, генерируемым системой.
Ограничения на значения данных.
1. Ограничения на данные
1.1. Ограничения доменов
Способы реализации ограничения доменов:
Тип данных (Data Type).
Шаблон для ввода данных (Input Mask).
Условие на значения (Validation Rule).
1.2. Ограничение обязательности значения
Способы реализации ограничения обязательности значения:
Свойство Required = Yes.
Значение по умолчанию (Default Value).
Пустое значение атрибута допускает множество толкований:
Значение атрибута неизвестно.
Атрибут неприменим.
Значение атрибута равно 0.
1.3. Ограничение уникальности значения
Способ реализации ограничения уникальности значения:
Свойство Indexed = Yes (No Duplicates).
Ограничения на связи между данными.
2. Ограничения на связи между данными
2.1. Ограничение ссылочной целостности
Ссылочная целостность – обеспечение соответствия значения внешнего ключа одного отношения значениям первичного ключа другого отношения.
2.2. Ограничение кардинальности связи
Максимальная кардинальность связи реализуется при преобразовании связей 1:1, 1:M, M:N во внешние ключи реляционной модели.
Минимальная кардинальность связи реализуется заданием обязательности (необязательности) значений внешнего ключа в реляционной модели.
2.3. Ограничения на изменения в записях
Изменения в записях:
Удаление строки.
Обновление первичного ключа.
Вставка новой строки.
Каскадное обновление полей – изменение значения первичного ключа одного отношения приводит к автоматическому изменению соответствующих значений внешнего ключа другого отношения.
Каскадное удаление записей – удаление записи одного отношения приводит к автоматическому удалению записей другого отношения, имеющих значения внешнего ключа, равные значению первичного ключа удаляемой записи.