
- •Уровни представления данных в бд
- •Языки баз данных
- •Логическая структура данных
- •Операции над данными
- •10. Иерархическая модель данных
- •Реляционная модель данных
- •Основные понятия реляционной модели данных
- •Таким образом, отношение - это совокупность кортежей, т.Е. Таблица со всеми своими строками.
- •Ключи отношений
- •Поставщик изделие
- •Первичный ключ никогда не должен принимать нулевого значения, а в составном ключе ни одна из компонент никогда не должна быть нулевой.
- •Контроль ссылочной целостности
- •Нормализация отношений реляционной бд
- •Первая нормальная форма
- •Поставки1 поставки
- •Поставщик1 поставки
- •Операции над отношениями
- •Теоретико-множественные операции
- •Запрос 4
- •Язык sql - общие сведения
- •Язык запросов qbe
- •Запрос 1
- •Запрос 2
Операции над данными
Операции над данными – это третья составляющая концептуальной схемы. Операции над данными выражаются средствами языка данных СУБД и могут изменять текущее состояние БД, но не могут изменить схему БД.
Операция обычно имеет две составляющих: действие, т.е. сам характер операции, и селекцию – принцип отбора данных, над которыми должно производиться действие.
Действие обычно означает выполнение одно из следующих манипуляций с данными или их комбинации:
установку указателя текущей позиции в БД,
выборку,
включение,
удаление,
корректировку.
Действия могут выполняться над экземплярами записей, над свойствами объектов и над связями между объектами. Последнее действие применимо к графовым моделям.
Селекция может осуществляться посредством:
указателя текущей позиции в БД,
значений данных,
связей между данными.
В первом случае доступным для выполнения действия оказывается текущий экземпляр записи. Это та запись, на которую установлен указатель текущей. После переустановки указателя текущей доступным может быть следующий, предыдущий, первый или последний экземпляры записей. Селекция по указателю текущей широко используется в .dbf–совместимых БД.
При селекции по значениям данных действие выполняется над теми экземплярами записей, поля которых имеют заданные значения.
Селекция посредством связи производится только в графовых моделях. При этом действие выполняется над экземплярами записей, находящимися в определенной логической связи с другими записями.
Если результатом выполнения операции является единственный экземпляр записи, то такая операция называется навигационной. Операция может выделять множество записей, объединенных в какую-либо подструктуру. Тогда операция называется спецификационной.
Каждая СУБД располагает средствами для выполнения навигационных и спецификационных операций над данными.
СУБД обычно располагают средствами для выполнения более сложных операций, называемых процедурами. Процедуры обычно выполняются автоматически при выполнении каких-либо определенных условий.
Процедуры могут использоваться для определения виртуальных данных, т.е. для вычисления значений таких свойств объектов, которые не хранятся непосредственно в БД. Так, например, виртуальным данным в БД, содержащей сведения о служащих, может являться возраст служащего. При необходимости возраст может быть рассчитан по дате рождения и текущей дате с помощью соответствующей процедуры. С помощью процедур могут рассчитываться суммы, определяться минимальные и максимальные значения и т.п.
Другой вид процедур – это процедуры, контролирующие целостность БД. Эти процедуры обычно сопровождаются уведомлением об их успешном или неуспешном выполнении.
Существуют процедуры, предназначенные для выполнения функций администрирования БД и обеспечивающие сбор статистики, контроль доступа к данным, безопасность и секретность и т.п.
Три модели данных
Сетевая модель данных
Сетевая модель данных позволяет отображать связи М:М. Обычно она представляет собой ориентированный мультиграф, вершинами которого являются объекты, а ребрами – связи между объектами. Вершины такого графа соединены параллельными ребрами, имеющими определенные направления.
Построенную ранее логическую структуру данных представим в виде сети. Стрелками обозначены связи 1:М. Стрелки, расположенные между объектами ПРЕПОДАВАТЕЛЬ – СТУДЕНТ и ПРЕПОДАВАТЕЛЬ – ПРЕДМЕТ
двунаправленные, так как в логической структуре данных между этими объектами существует связь М:М.
В сетевой модели связям между объектами присваиваются имена, отражающие смысл каждой из связей. Поименованная связь представляет собой связь определенного типа, т.е. в сетевой модели, кроме понятия тип объекта существует понятие тип связи. В рассмотренной модели установлены 5 типов связей: Ученики, Учителя, Лектор, Читаемый предмет, Изучаемый предмет.
В описании схемы БД каждый из типов объектов описывается записью определенного типа, поэтому в дальнейших рассуждениях понятие тип записи будем использовать наряду с понятием тип объекта.
Основной конструктивной единицей сетевой модели является тип набора. При описании типа набора один из типов записи определяется как владелец набора, а запись другого типа определяется как член набора. Между владельцем и членом набора устанавливается связь определенного типа. Имя связи рассматривается как имя набора. В рассмотренной модели представлены 5 типов наборов. Набор Ученики (владелец набора - запись типа ПРЕПОДАВАТЕЛЬ, член набора – запись типа СТУДЕНТ), набор Учителя (владелец набора – запись типа СТУДЕНТ, член набора – запись типа ПРЕПОДАВАТЕЛЬ), набор Читаемый предмет (владелец набора – запись типа ПРЕПОДАВАТЕЛЬ, член набора – запись типа ПРЕДМЕТ), набор Лектор (владелец набора – запись типа ПРЕДМЕТ, член набора – запись типа ПРЕПОДАВАТЕЛЬ) и набор Изучаемый предмет (владелец набора – запись типа СТУДЕНТ, член набора – запись типа ПРЕДМЕТ).
На схеме сети в вершинах графа изображены лишь типы объектов и указаны их имена. Необходимо помнить о том, что каждый из типов объектов описывается совокупностью свойств.
СТУДЕНТ (№ зачетной книжки, ФИО, Группа, Средний балл);
ПРЕПОДАВАТЕЛЬ (ФИО_П, Должность);
ПРЕДМЕТ (Наименование, Часы, Отчетность).
Определив значения свойств, получим экземпляры объектов данного типа и, соответственно, экземпляры записей. Например, (Кошкин И.И., доцент), (Мышкин М.М., ассистент) – это два экземпляра объекта типа ПРЕПОДАВАТЕЛЬ. Для дальнейших рассуждений примем следующие сокращения для идентификации экземпляров записей: Преподаватель 1, Преподаватель 2, …. , Студент 1, Студент 2, ….., Предмет 1, Предмет 2 и т.д.
При определении конкретных значений свойств объектов оперируют терминами экземпляр набора, экземпляр владельца и экземпляр члена набора.
В каждом экземпляре набора определенного типа содержится единственный экземпляр записи - владельца набора и множество экземпляров записей – членов набора, т.е. между владельцем набора и членами набора существует связь 1:М
С учетом принятых сокращений изобразим фрагмент экземпляра схемы БД, в котором отображены связи типа Ученики и Читаемый предмет для нескольких экземпляров записей типа ПРЕПОДАВАТЕЛЬ, ПРЕДМЕТ и СТУДЕНТ. У Преподавателя 1 учениками являются Студент 1, Студент 3 и Студент 4, этот преподаватель читает Предмет 1 и Предмет 3. Преподаватель 2 читает Предмет 2, его учениками являются Студент 2, Студент 3 и Студент 5.
Данный фрагмент содержит 2 экземпляра набора типа Читаемый предмет и 2 экземпляра набора типа Ученики (владельцы – Преподаватель 1 и Преподаватель 2).
Сетевая модель сложна для восприятия, а СУБД, поддерживающие сетевую модель, довольно сложны в эксплуатации. Поэтому сетевую модель обычно приводят к виду иерархической или реляционной модели. Однако у сетевой модели есть очень важное достоинство: эта модель данных не избыточная, так как каждый экземпляр записи хранится в БД единожды, т.е. отсутствует дублирование экземпляров записей.