Реляционная алгебра, операции реляционной алгебры. Операции над данными в сетевой модели БД


Связь между записью-владельцем и записью-членом также имеет вид 1:N.

Основное различие этих моделей состоит в том, что в сетевой модели запись может быть членом более чем одного группового отношения. Согласно этой модели каждое групповое отношение именуется и проводится различие между его типом и экземпляром. Тип группового отношения задается его именем и определяет свойства общие для всех экземпляров данного типа. Экземпляр группового отношения представляется записью-владельцем и множеством (возможно пустым) подчиненных записей. При этом имеется следующее ограничение: экземпляр записи не может быть членом двух экземпляров групповых отношений одного типа (т.е. сотрудник из примера в п..1, например, не может работать в двух отделах).

  • деревья (a) и (b), показанные на рис. 4.2 , заменяются одной сетевой структурой, в которой запись СОТРУДНИК входит в два групповых отношения;
  • для отображения типа M:N вводится запись СОТРУДНИК_КОНТРАКТ, которая не имеет полей и служит только для связи записей КОНТРАКТ и СОТРУДНИК, (см. рис. 4.3). Отметим, что в этой записи может храниться и полезная информация, например, доля данного сотрудника в общем вознаграждении по данному контракту.


Рис. 4.3.

Каждый экземпляр группового отношения характеризуется следующими признаками:

Способ упорядочения подчиненных записей:

  • произвольный,
  • хронологический /очередь/,
  • обратный хронологический /стек/,
  • сортированный.

Если запись объявлена подчиненной в нескольких групповых отношениях, то в каждом из них может быть назначен свой способ упорядочивания.

Режим включения подчиненных записей:

  • автоматический - невозможно занести в БД запись без того, чтобы она была сразу же закреплена за неким владельцем;
  • ручной - позволяет запомнить в БД подчиненную запись и не включать ее немедленно в экземпляр группового отношения. Эта операция позже инициируется пользователем.

Режим исключения.

Принято выделять три класса членства подчиненных записей в групповых отношениях:

  • Фиксированное. Подчиненная запись жестко связана с записью владельцем и ее можно исключить из группового отношения только удалив. При удалении записи -владельца все подчиненные записи автоматически тоже удаляются. В рассмотренном выше примере фиксированное членство предполагает групповое отношение "ЗАКЛЮЧАЕТ" между записями "КОНТРАКТ" и "ЗАКАЗЧИК", поскольку контракт не может существовать без заказчика.
  • Обязательное. Допускается переключение подчиненной записи на другого владельца, но невозможно ее существование без владельца. Для удаления записи-владельца необходимо, чтобы она не имела подчиненных записей с обязательным членством. Таким отношением связаны записи "СОТРУДНИК" и "ОТДЕЛ". Если отдел расформировывается, все его сотрудники должны быть либо переведены в другие отделы, либо уволены.
  • Необязательное. Можно исключить запись из группового отношения, но сохранить ее в базе данных не прикрепляя к другому владельцу. При удалении записи -владельца ее подчиненные записи - необязательные члены сохраняются в базе, не участвуя более в групповом отношении такого типа. Примером такого группового отношения может служить "ВЫПОЛНЯЕТ" между "СОТРУДНИКИ" и "КОНТРАКТ", поскольку в организации могут существовать работники, чья деятельность не связана с выполнением каких-либо договорных обязательств перед заказчиками.

Операции над данными в сетевой модели БД

Добавить - внести запись в БД и, в зависимости от режима включения, либо включить ее в групповое отношение, где она объявлена подчиненной, либо не включать ни в какое групповое отношение.
Включить в групповое отношение - связать существующую подчиненную запись с записью-владельцем.
Переключить - связать существующую подчиненную запись с другой записью-владельцем в том же групповом отношении.
Обновить - изменить значение элементов предварительно извлеченной записи.
Извлечь - извлечь записи последовательно по значению ключа, а также используя групповые отношения - от владельца можно перейти к записям - членам, а от подчиненной записи к владельцу набора.
Удалить - убрать из БД запись. Если эта запись является владельцем группового отношения, то анализируется класс членства подчиненных записей. Обязательные члены должны быть предварительно исключены из группового отношения, фиксированные удалены вместе с владельцем, необязательные останутся в БД.
Исключить из группового отношения - разорвать связь между записью-владельцем и записью-членом.

Ограничения целостности

Как и в иерархической модели обеспечивается только поддержание целостности по ссылкам (владелец отношения - член отношения).

Достоинства и недостатки ранних СУБД

Достоинства ранних СУБД:

  • развитые средства управления данными во внешней памяти на низком уровне;
  • возможность построения вручную эффективных прикладных систем;
  • возможность экономии памяти за счет разделения подобъектов (в сетевых системах)

Недостатки ранних СУБД:

  • сложность использования;
  • высокий уровень требований к знаниям о физической организации БД;
  • зависимость прикладных систем от физической организации БД;
  • перегруженность логики прикладных систем деталями организации доступа к БД.

Как иерархическая, так и сетевая модель данных предполагает наличие высококвалифицированных программистов. И даже в таких случаях реализация пользовательских запросов часто затягивается на длительный срок.

Объектно-ориентированные СУБД

Появление объектно-ориентированных СУБД вызвано потребностями программистов на ОО-языках, которым были необходимы средства для хранения объектов, не помещавшихся в оперативной памяти компьютера. Также важна была задача сохранения состояния объектов между повторными запусками прикладной программы. Поэтому, большинство ООСУБД представляют собой библиотеку, процедуры управления данными которой включаются в прикладную программу. Примеры реализации ООСУБД как выделеного сервера базы данных крайне редки.

Сразу же необходимо заметить, что общепринятого определения " объектно-ориентированной модели данных " не существует. Сейчас можно говорить лишь о неком "объектном" подходе к логическому представлению данных и о различных объектно-ориентированных способах его реализации.

Мы знаем, что любая модель данных должна включать три аспекта: структурный, целостный и манипуляционный. Посмотрим, как они реализуются на основе объектно-ориентированная парадигмы программирования .

Структура

Структура объектной модели описывается с помощью трех ключевых понятий:

инкапсуляция - каждый объект обладает некоторым внутренним состоянием (хранит внутри себя запись данных), а также набором методов - процедур, с помощью которых (и только таким образом) можно получить доступ к данным, определяющим внутреннее состояние объекта, или изменить их. Таким образом, объекты можно рассматривать как самостоятельные сущности, отделенные от внешнего мира;
наследование - подразумевает возможность создавать из классов объектов новые классы объекты, которые наследуют структуру и методы своих предков, добавляя к ним черты, отражающие их собственную индивидуальность. Наследование может быть простым (один предок) и множественным (несколько предков);
полиморфизм - различные объекты могут по разному реагировать на одинаковые внешние события в зависимости от того, как реализованы их методы.

Целостность данных

Для поддержания целостности объектно-ориентированный подход предлагает использовать следующие средства:

  • автоматическое поддержание отношений наследования возможность объявить некоторые поля данных и методы объекта как "скрытые", не видимые для других объектов; такие поля и методы используются только методами самого объекта создание процедур контроля целостности внутри объекта

Средства манипулирования данными

К сожалению, в объектно-ориентированном программировании отсутствуют общие средства манипулирования данными, такие как реляционная алгебра или реляционное счисление. Работа с данными ведется с помощью одного из объектно-ориентированных языков программирования общего назначения, обычно это SmallTalk, C++ или Java.

Подведем теперь некоторые итоги

В объектно-ориентированных базах данных, в отличие от реляционных, хранятся не записи, а объекты. ОО-подход представляет более совершенные средства для отображения реального мира, чем реляционная модель, естественное представление данных. В реляционной модели все отношения принадлежат одному уровню, именно это осложняет преобразование иерархических связей модели "сущность-связь" в реляционную модель. ОО - модель можно рассматривать послойно, на разных уровнях абстракции. Имеется возможность определения новых типов данных и операций с ними.

В то же время, ОО - модели присущ и ряд недостатков :

  • отсутствуют мощные непроцедурные средства извлечения объектов из базы. Все запросы приходится писать на процедурных языках, проблема их оптимизации возлагается на программиста;
  • вместо чисто декларативных ограничений целостности (типа явного объявления первичных и внешних ключей реляционных таблиц с помощью ключевых слов PRIMARY KEY и REFERENCES ) или полудекларативных триггеров для обеспечения внутренней целостности приходится писать процедурный код.

Очевидно, что оба эти недостатка связаны с отсутствием развитых средств манипулирования данными. Эта задача решается двумя способами - расширение ОО-языков в сторону управления данными (стандарт ODMG), либо добавление объектных свойств в реляционные СУБД (SQL-3, а также так называемые объектно-реляционных СУБД).

Реляционная алгебра - это язык операций, выполняемых над отношениями - таблицами реляционной базы данных. Операции реляционной алгебры позволяют на основе одного или нескольких отношений создавать другое отношение без изменения самих исходных отношений. Полученное другое отношение обычно не записывается в базу данных, а существует в результате выполнения SQL-запроса - массиве, создаваемом функциями для работы с базами данных в языках программирования. Для каждой операции реляционной алгебры будет дана её реализация в виде запросов на языке SQL.

Рассмотрим операции реляционной алгебры. Чтобы Вам не отвлекаться на содержание таблиц не Ваших баз данных, таких как "Продукты", "Водители", "сливы", "груши", "чай", "кофе", Владимиры, Сергеи и т.п. будем выполнять операции над отношениями (таблицами) с абстрактными данными, такими как R1, R2 (названия таблиц - отношений) и т.д. и А1, А2, А3 (названия атрибутов - столбцов) и h15, w11 и т.п. (содержание записей таблиц базы данных).

Приоритеты выполнения операций реляционной алгебры (в порядке убывания пунктов списка, а в одном пункте - операции с равными приоритетами):

  • селекция, проекция
  • декартово произведение, соединение, пересечение, деление
  • объединение, разность.

Операция выборки

Операция выборки работает с одним отношением и определяет результирующее отношение R , которое содержит только те кортежи (или строки, или записи), отношения , которые удовлетворяют заданному условию (предикату P ).

Таким образом, операция выборки - унарная операция - и записывается следующим образом:

где P - предикат (логическое условие).

Запрос SQL

Теперь посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. В таблице ниже дано одно отношение, с которым работает эта операция.

R3
A1 A2 A3 A4
3 hh yl ms
4 pp a1 sr
1 rr yl ms

Просматриваем столбец А3 и устанавливаем, что предикату A3>"d0" удовлетворяют записи в первой и третьей строках исходного отношения (так как номер буквы y в алфавите больше номера буквы d). В результате получаем следующее новое отношение, в котором две строки:

R
A1 A2 A3 A4
3 hh yl ms
1 rr yl ms

Комбинировать всевозможные логические условия для выборок Вам поможет материал "Булева алгебра (алгебра логики)" .

Запрос SQL

SELECT A1, A2, A3 from R1 UNION SELECT A1, A2, A3 from R2

Теперь посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Теперь даны два отношения, так как операция объединения - бинарная операция:

R1 R2
A1 A2 A3 A1 A2 A3
Z7 aa w11 X8 pp k21
B7 hh h15 Q2 ee h15
X8 pp w11 X8 pp w11

Объединяем строки первого и второго отношения и видим, что третья строка, которая является третьей и в первом, и во втором отношении - идентичны, поэтому её включаем в новое отношение только один раз. Получаем следующее отношение:

R
A1 A2 A3
Z7 aa w11
B7 hh h15
X8 pp w11
X8 pp k21
Q2 ee h15

Важно следующее: операция объединения может быть выполнена только тогда, когда два отношения обладают одинаковым числом и названиями атрибутов (столбцов), или, говоря формально, совместимы по объединению.

Операция пересечения

Результатом пересечения двух множеств (отношений) А и В () будет такое множество (отношение) С, которое включает в себя те и только те элементы, которые есть и во множестве А, и во множестве В. Операция пересечения реляционной алгебры идентична операции .

Запрос SQL

SELECT A1, A2, A3 from R1 INTERSECT SELECT A1, A2, A3 from R2

В некоторых диалектах SQL отсутствует ключевое слово INTERSECT. Его заменой, например, в MySQL и других, является INNER JOIN. О том, как работает оператор SQL JOIN вообще и его разновидности INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN и FULL OUTER JOIN - на уроке SQL JOIN - соединение таблиц базы данных .

Запрос MySQL

Теперь посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Вновь даны два отношения R1 и R2:

R1 R2
A1 A2 A3 A1 A2 A3
Z7 aa w11 X8 pp k21
B7 hh h15 Q2 ee h15
X8 pp w11 X8 pp w11

Просматриваем все записи в двух отношениях, и обнаруживаем, что и в первом, и во втором отношении есть одна строка - та, которая является третьей и в первом, и во втором отношении. Получаем новое отношение:

R
A1 A2 A3
X8 pp w11

Операция разности

Разность двух отношений R1 и R2 () состоит из кортежей (или записей, или строк), которые имеются в отношении R1, но отсутствуют в отношении R2. Отношения R1 и R2 должны быть совместимы по объединению. Операция разности реляционной алгебры идентична операции .

Запрос SQL

SELECT A1, A2, A3 from R2 EXCEPT
SELECT A1, A2, A3 from R1

Установим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Вновь даны два отношения R1 и R2:

R1 R2
A1 A2 A3 A1 A2 A3
Z7 aa w11 X8 pp k21
B7 hh h15 Q2 ee h15
X8 pp w11 X8 pp w11

Из отношения R2 исключаем строку, которая есть также в отношении R2 - третью - и получаем новое отношение:

R
A1 A2 A3
X8 pp w11
Q2 ee h15

Операция декартова произведения

Операция декартова произведения () определяет новое отношение R, которое является результатом конкатенации каждого кортежа отношения R1 с каждым кортежем отношения R2.

Запрос SQL

SELECT * from R3, R4

Установим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Даны два отношения R3 и R4:

R3 R4
A1 A2 A3 A4 A5 A6
3 hh yl ms 3 hh
4 pp a1 sr 4 pp
1 rr yl ms

В новом отношении должны присутствовать все атрибуты (столбцы) двух отношений. Сначала первая строка отношения R3 сцепляется с каждой из двух строк отношения R4, затем вторая строка отношения R3, затем третья. В результате должно получиться 3 Х 2 = 6 кортежей (строк). Получаем такое новое отношение:

R
A1 A2 A3 A4 A5 A6
3 hh yl ms 3 hh
3 hh yl ms 4 pp
4 pp a1 sr 3 hh
4 pp a1 sr 4 pp
1 rr yl ms 3 hh
1 rr yl ms 4 pp

Как правило, системы баз данных оснащены языком запросов, которые могут помочь его пользователям запрашивать экземпляры. Существует два таких типа - реляционная алгебра и реляционное исчисление. Первый является процедурным который принимает экземпляры отношений как входные данные и выводит примеры отношений как выходные. Использует для этого унарные или двоичные исчисления. Реляционная алгебра выполняется рекурсивно, а рассматриваются как отношения.

Декартово произведение (Χ)

Объединяет информацию двух разных отношений в одну.

Обозначения - r Χ s,

где r и s - отношения, а их выход будет определяться как

r Χ s = {qt | q ∈ r и t ∈ s}.

Вывод. Устанавливает отношение, которое показывает все книги и статьи, написанные с помощью учебника.

Переименовать операцию (ρ).

Отношением реляционной алгебры являются результаты, но без какого-либо имени. Операция переименования позволяет изменить выходное значение, обозначается маленькой греческой буквой ρ .

Обозначение - ρ x (E),

где результат выражения E сохраняется с именем x.

Дополнительные операции:

  • установить пересечение;
  • присваивание;
  • естественное соединение.

Реляционное исчисление

Является непроцедурным язык запросов, то есть он говорит, что делать, но не объясняет, как это реализовать. Реляционное исчисление существует в двух формах:

  • корреляционное исчисление кортежа;
  • фильтрация переменных диапазонов.

Обозначения - T/Состояние: возвращает все кортежи T, удовлетворяющие условию. Результат. Возвращает кортежи с именем. TRC можно количественно определить. Можно использовать экзистенциальные (∃) и универсальные кванторы (∀). Вывод. Вышеприведенный запрос даст тот же результат, что и предыдущий.

Доменное реляционное исчисление DRC

Переменная фильтрации использует домен атрибутов вместо целых значений кортежа (как это сделано в TRC, упомянутом выше).

Обозначения - {a 1 , a 2 , a 3 , ..., a n | P (a 1 , a 2 , a 3 , ..., a n)},

где a1, a2 - атрибуты, а P обозначает формулы, построенные внутренними значениями.

Вывод. Устанавливает статью, страницу и тему из отношения TutorialsPoint, где subject является базой данных.

Подобно TRC, DRC также может быть записана с использованием экзистенциальных и универсальных кванторов. ДРК также включает операторов реляционной алгебры. Сила выражения вычисления, исчисления и корреляции отношений между точками эквивалентна.

Вариации и схемы реляционного исчисления и алгебры

Модель ER, когда она концептуализирована на диаграммах, дает хороший обзор сущностных отношений, которые легче понять. Схематические изображения могут быть сопоставлены с реляционной схемой, т. е. их можно создать совместно друг с другом. Невозможно импортировать все ограничения ER в реляционную модель, но может быть сгенерирована приблизительная структура. Существует несколько процессов и алгоритмов, доступных для преобразования диаграмм в эту систему. Некоторые из них автоматизированы, а другие создаются вручную. Диаграммы ER в основном состоят из следующих критериев:

  • сущности и ее атрибутов;
  • связи, которая является ассоциацией между вышеупомянутыми значениями.

Сопоставление объектов и отношений происходят разными путями и схемами. К примеру, сущность - это объект реального мира с некоторыми атрибутами. Процесс сопоставления, алгоритм следующий:

  • создать таблицу для каждого объекта;
  • атрибуты должны стать полями таблиц с соответствующими типами данных;
  • объявить первичный ключ.

Отношение - это ассоциация между сущностями. Процесс составления следующий:

  • создать таблицу для отношений;
  • добавить первичные ключи всех участвующих сущностей в качестве полей таблицы с соответствующими типами данных;
  • если отношение имеет какой-либо атрибут, установить каждый атрибут в качестве поля таблицы;
  • объединить первичный ключ, составляющий все остальные для участвующих объектов;
  • указать все ограничения внешнего ключа.

Отображение слабых наборов и иерархических объектов происходит по определенной системе. Прежде всего, необходимо понимать сущностные основы и значений. Слабый набор объектов - это тот, который не имеет никакого первичного ключа, связанного с ним. Процесс отображения следующий:

  • создать таблицу для слабого набора объектов;
  • добавить все атрибуты в схему как поле;
  • указать первичный ключ для идентификации;
  • установить все ограничения внешнего ключа.

Отображение иерархических объектов основано на специализации или обобщении языка реляционной алгебры происходит в виде последовательных сущностей. Алгоритм следующий:

  • создать таблицы для всех объектов более высокого нижнего уровня;
  • добавить первичные ключи;
  • на низком уровне реализовать все другие атрибуты объектов нижнего уровня;
  • объявить первичные ключи таблицы;
  • установить ограничения внешнего ключа.

Существующие варианты для описания, хранения, изменения информации

SQL - это язык программирования для реляционных баз данных. Он разработан над алгеброй и корреляционным исчислением кортежей. SQL поставляется в виде пакета со всеми основными дистрибутивами СУБД. Содержит как данные, так и языки манипулирования ими. Используя свойства определения данных SQL реляционной алгебры, можно спроектировать и изменить схему базы, тогда как свойства управления и корректировки, а также изменения данных позволяют хранить и извлекать установленную в систему информацию. Использует следующий набор команд для определения структуры и системы:

  • создает новые таблицы и представления из СУБД.
  • выбрасывает команды.
  • изменяет схему базы данных.
  • эта команда добавляет атрибут в объект типа string.

SQL оснащен языком манипулирования данными (DML). Он изменяет экземпляр базы, вставляя, обновляя и удаляя информацию. DML отвечает за изменение всех данных. SQL содержит следующий набор команд в разделе DML:

  1. SELECT - это одна из основных команд запроса. Он аналогичен проекционной операции реляционной алгебры. Он выбирает атрибуты на основе условия, описанного в приложении WHERE.
  2. FROM - этот раздел принимает имя в качестве аргумента, из которого атрибуты должны быть выбраны/спроецированы. В случае если дано более одного названия, этот пункт соответствует декартовому произведению.
  3. WHERE - этот раздел определяет предикат или условия, которые должны соответствовать, чтобы квалифицировать проецирующийся атрибут.

Существуют также команды:

  • вставка;
  • изменение значений;
  • удаление.

Создание запросов реляционной алгебры

При построении поиска задача состоит в том, чтобы найти структуру операций, которая приведет к правильному выводу. Основными операциями реляционной алгебры являются простые операции с одним или двумя отношениями в качестве операндов. Комбинированные эффекты последовательности определяют конечный результат. Поскольку система реляционной алгебры в базах данных довольно проста, многие промежуточные результаты могут быть получены до достижения конечного вывода, они также используются в качестве операндов, которые производят новые получаемые данные.

Для большинства операторов порядок запросов и их выполнения не имеет значения, а это означает, что один и тот же вывод может быть достигнут путем формирования и комбинирования промежуточных данных по-разному. На практике поиски в базе довольно легки. Система выполнения операций и промежуточных результатов определяется оптимизатором запросов. При формировании вопросов, требований нужно
сначала выбрать, какие отношения необходимы для достижения ответа, а затем указать операции и промежуточные результаты. Структура запроса реляционной алгебры в базе данных с результатами может быть представлена ​​в виде диаграммы. Оптимизаторы требований пытаются организовать максимально эффективное выполнение. На практике это обычно означает, что они стараются как можно быстрее минимизировать промежуточные результаты. В этом помогут распространенные примеры реляционной алгебры.

Информация об автомобилях модели 1996 года, где в ходе инспекции на 1999 год обнаружены недостатки.

Сначала выводится информация о машинах, чтобы понимать значения всех атрибутов отношения. Информация об инспекциях хранится в таблице «Проверка», и, если обнаружены неисправности, они регистрируются в таблице «Проблема». Таким образом, нужны эти три таблицы, чтобы получить нужную информацию.

Интересны только автомобили 1996 года. Модельный ряд автомобиля представлен как значение установленного атрибута в строке таблицы информации о машине. Первый промежуточный результат состоит из кортежей, представляющих варианты 1996 года.

Таким образом, нужны только строки, которые охватывают этот период. Необходимо использовать выделение для их извлечения. Теперь есть автомобили и инспекции, которые требовались. Затем строки соединяются с помощью операции объединения. К ним должен быть подключен общий номер регистра, поскольку он является единственным общим столбцом, используется естественное соединение.

Чтобы выяснить, были ли обнаружены неисправности в ходе проверок, необходимо связать строки проблем с проверкой. После подключения контрольных рядов к автомобилям, можно подключить этот результат к таблице неисправностей. Присоединение должно основываться на общем регистрационном номере и проверенной дате. Это единственные общие столбцы в таблицах, поэтому используется естественное соединение.

Варианты исчислений без промежуточных результатов

Необходимая информация: Имя водителя для модельного года 1995 года или более старые автомобили, которые не были проверены на 2000 год. Имя находится в таблице "Водитель". Правоохранительные органы описаны в таблице «Инспекция и автомобили в столовой машине». Таким образом, нужны эти три таблицы. Во-первых, необходимо узнать автомобили, которые не были осмотрены на 2000 год. Невозможно решить эту проблему, используя только инспекцию, указанную в таблице, поскольку она содержит данные об этих проверках, которые были сделаны, а не о тех, что не были реализованы. Эта проблема решается путем поиска дополняющих автомобилей, которые проверяются до 2000 года. На самом деле нужны только их регистрационные номера.

Существуют и другие примеры помимо указанных выше, которые показывают, каким образом можно изменить или найти какую-либо информацию. Варианты запросов могут быть оптимизированными при помощи специальных операций. По сути, чтобы поиск и нахождение данных были наиболее легкими и простыми, существует реляционная модель исчисления.

Где закреплена и защищена информация

Алгебры хранится в форматах файлов, содержащих записи. На физическом уровне фактическая информация закреплена в электромагнитном формате на каком-либо устройстве. Эти устройства хранения могут быть разделены на три категории:

  1. Первичное. К этой категории относится память, которая напрямую доступна для ЦП. Регистры, быстрая память (кэш) и основная (ОЗУ) напрямую доступны для центральной, так как все они размещены на материнской плате или чипсете. Это хранилище, как правило, очень маленькое, сверхбыстрое и неустойчивое. Для поддержания состояния требуется постоянный источник питания. В случае сбоя все его данные теряются.
  2. Вторичное. Используется для хранения информации для будущего использования или резервного копирования. Включает в себя устройства памяти, которые не являются частью чипсета или материнской платы процессора, например магнитные диски, оптические диски (DVD, CD и т. д.), жесткие диски, флэш-накопители и магнитные ленты.
  3. Третичное. Используется для хранения огромных объемов данных. Поскольку такие запоминающие устройства являются внешними по отношению к компьютерной системе, они являются самыми медленными по скорости. Эти гаджеты хранения в основном используются для резервного копирования всей системы. Оптические диски и магнитные ленты широко используются в качестве третичного хранилища.

Для эффективности запроса важны специальные операции реляционной алгебры.

Структура хранения

Компьютерная система имеет четко определенную иерархию памяти. ЦП имеет прямой доступ к основной системе, а также к встроенным регистрам. Время доступа к основной памяти, очевидно, меньше, чем скорость процессора. Чтобы минимизировать это несоответствие, вводится кэш. Кэш-память обеспечивает самое быстрое время доступа и содержит данные, которые наиболее часто обращаются к ЦП.

Память с самым быстрым доступом является самой дорогостоящей. Большие устройства хранения данных обеспечивают небольшую скорость, и они дешевле, однако они могут хранить огромные объемы данных по сравнению с регистром процессора или кэш-памятью.

Магнитные и жесткие диски являются наиболее распространенными вторичными устройствами хранения в современных компьютерных системах. Они называются магнитными, состоят из металлической основы. Эти диски размещаются вертикально на шпинделе. Головка чтения/записи перемещается между ними и используется для намагничивания или снятия такого пятна под ним. Его можно распознать как 0 (ноль) или 1 (один).

Жесткие диски отформатированы в четко определенном порядке для эффективного хранения данных. На нем много концентрических кругов, называемых дорожками. Каждый трек далее разделяется на сектора, где обычно хранится 512 байт данных.

Файловые операции

Операции над системой языка реляционной алгебры и ее базы данных можно в целом классифицировать по двум категориям:

  • обновление;
  • поиск.

Первая категория изменяет значения данных путем вставки, удаления или обновления. С другой стороны, операции поиска не редактируют информацию, а извлекают ее после необязательной условной фильтрации. В обоих типах операций отбор играет значительную роль. Помимо создания и удаления файла может быть несколько операций, которые могут в них выполняться:

  1. Открыть - существует в одном из двух режимов чтения или записи. В первом случае операционная система не позволяет никому изменять данные. Другими словами, данные только считываются. Файлы, открытые в режиме чтения, могут совместно использоваться несколькими объектами. Режим записи позволяет изменять данные. Файлы могут быть прочитаны, но не могут использоваться совместно.
  2. Закрыть - это самая важная операция с точки зрения операционной системы, так как она удаляет все блокировки (если в режиме общего доступа), сохраняет данные (если они изменены) на вторичный носитель и освобождает все буферы и обработчики, связанные с файлом.
  3. Индексирование - это метод структуры информации для эффективного извлечения записей из файлов системы на основе некоторых атрибутов, где была выполнена эта система. Определяется на основе атрибутов.

Индексирование может быть следующего типа:

  1. Первичный определяется в файле упорядоченных данных. Файл информации упорядочен в ключевом поле.
  2. Вторичный индекс сгенерирован из поля, которое является ключом-кандидатом, и имеет уникальное значение в каждой записи или не ключ с повторяющимися значениями.
  3. Кластеризация определяется в упорядоченном файле данных, в не ключевом поле.

Система управления базами данных или СУБД относится к технологии хранения и извлечения информации пользователей с максимальной эффективностью наряду с соответствующими мерами безопасности. Детальное рассмотрение этого вопроса приводит к выводу, что реляционная алгебра является языком операторов, которые применяют отношения в качестве аргументов и возвращают их в результате.

Каждая операции включает выделение данных (селекцию) и те действия, которые будут выполняться над выделенными данными. Основными операциями в реляционной базе являются операции обновления базы данных и операции обработки отношений.

К операциям обновления базы данных относятся те операции, которые выполняют вставку новых кортежей, удаление ненужных, корректировку значений атрибутов существующих кортежей, а именно: это операции Включить , Удалить, Обновить.

Операция Включить требует задания имени отношения и предварительного формирования значений атрибутов нового кортежа. Обязательно должен быть задан ключ кортежа.

Операция Удалить требует наименования отношения, а также идентификации кортежа или группы кортежей, подлежащих удалению.

Операция Обновить выполняется для названного отношения и может корректировать как один, так и несколько кортежей. Например, если руководство фирмы приняло решение увеличить на одинаковую сумму все оклады сотрудников, то одной операцией Обновить будет откорректировано сразу несколько кортежей.

Что касается операций обработки, то они позаимствованы из реляционной алгебры. По подходу Э. Кодда реляционная алгебра включает восемь операций, пять из которых являются базовыми: Выборка , Проекция, Умножение, Объединение, Вычитание.

Выборка - выбрать из отношения только те кортежи, которые удовлетворяют заданному условию.

При Проекции отношения на заданный набор его атрибутов получается новое отношение, создаваемое извлечением из исходного отношения кортежей, содержащих указанные атрибуты.

При Умножении (декартовом произведении) двух отношений получается новое отношение, кортежи которого являются сцеплением кортежей первого и второго отношений.

В результате Объединения двух отношений получается третье, включающее кортежи, входящие хотя бы в одно отношение, то есть содержащее все элементы исходных отношений.

При Вычитании выдаются лишь те кортежи первого отношения, которые остались от вычитания второго отношения, то есть из первого отношения выбрасываются все кортежи второго.

Остальные три операции являются производными, они могут быть получены из основных операций, их называют дополнительными: Соединение, Пересечение , Деление.

Операция Соединение применяется к двум отношениям, имеющим общий атрибут. Результат этой операции для двух отношений по некоторому условию -отношениеиз кортежей, которые являются сочетанием первого и второго отношений, удовлетворяющих указанному условию.

Пересечение двух отношений является отношение, включающее все кортежи, входящие в оба отношения.

Операция Деления предполагает, что имеется два отношения: одно – бинарное (содержащее два атрибута), другое – унарное (содержащее один атрибут). В результате получается отношение, состоящее из кортежей, включающих значения первого атрибута кортежей первого отношения, но только таких, для которых множество значений второго атрибута первого отношения совпадает с множеством значений атрибутов второго отношения.

Отличительная особенность операций обработки отношений заключается в том, что единицей обработки в них являются не кортежи, а отношения: на входе каждой операции используется одно или два отношения, а результат выполнения операций – новое отношение.

Рассмотрим некоторые, наиболее часто используемые операции реляционной алгебры, подробнее.

Операция Объединение - на входе задано два совместимых отношения, одинаковой размерности: А и В. Результат – отношение той же структуры, содержащее все кортежи А и все кортежи В

Пересечение предполагает наличие на входе двух отношений одинаковой размерности: А и В. На выходе создается отношение той же структуры, содержащее только те кортежи А, которые есть в В.

Деление. На входе операции используется два отношения: А и В. Пусть отношение А, называемое делимым, содержит атрибуты (А 1, А 2 , А 3 ,…, А n). Отношение В – делитель и содержит подмножество атрибутов А: (А 1, А 2 , …, А к), где k

В целом, операции реляционной модели данных предоставляют возможность манипулировать отношениями, позволяя обновлять базу данных, а также выбирать подмножества хранимых данных и представлять их в нужном виде.

При проектировании баз данных и работе с ними этих восьми операций обычно не достаточно. Поэтому добавляются такие операции как: переименование атрибутов, образование новых вычисляемых атрибутов, операции присваивания, сравнения и др.

Аномалии модификации

Аномалии модификации проявляются в том, что изменение значения одного данного может повлечь за собой просмотри всей таблицы и соответствующее изменение некоторых других записей таблицы.

Аномалии удаления состоят в том, что при удалении какого-либо данного из таблицы может пропасть и другая информация, которая не связана напрямую с удаляемым данным.

Аномалии добавления возникают в случаях, когда информацию в таблицу нельзя поместить до тех пор, пока она неполная, либо вставка новой записи требует дополнительного просмотра таблицы

Пусть есть отношение, в котором хранится информация о студентах, курсах которые они посещают и стоимости этих курсов. Из этого отношения производится удаление кортежа, который содержит (помимо инфы о студенте) информацию о названии и стоимости курса, посещаемого этим студентом. Если информация о названии и стоимости курса хранилась в единственном экземпляре только в этом кортеже, она безвозвратно исчезнет из отношения. Такая ситуация называется аномалия удаления . Выполнение операции удаления приводит к потере информации о двух сущностях.

На примере этого же отношения можно проиллюстрировать аномалию вставки . Допустим, надо добавить информацию о названии и стоимости определенного курса, но мы не сможем добавить эту информацию до тех пор, пока на курс не записан ни один студент. Избавиться от обоих аномалий можно путем разбиения имеющегося отношения на два, каждое из которых будет содержать данные только одной сущности. Тогда удаление информации о студенте не затронет данные о курсах.

При разбиении отношения на два так же возникают проблемы. Например, можно ли записать студента на несуществующий пока курс? Эти проблемы должны решаться путем обсуждения бизнес-правил. Если бизнес-правилами будет предусмотрено требование наличия информации о курсе и стоимости при записи на этот курс студента, то при записи студента на курс будет производиться проверка на существование требуемого курса. Подобного рода проверки называются ограничениями ссылочной целостности или ограничениями целостности по внешнему ключу.

Целостность сущностей - ни одно значение первичного ключа не должно содержать null.

Этапы проектрирования:

Концептуальное проектирование -процесс разработки БД начинается с анализа требований. Проектировщик на этом этапе разработки должен найти ответы на следующие вопросы: какие элементы данных должны храниться, кто и как будет к ним обращаться. Создается модель исп. Информации, не завис от физ аспектов, целевой субд и языков программирования

Логическое - создается логическая структура БД. Для этого определяют, как данные будут сгруппированы логически. Структура БД на этом этапе выражается в терминах прикладных объектов и отношений между ними. Зависит от целевой СУБД, проверки на избыточность, нормализация.

Физическое - логическая структура БД преобразуется в физическую с учетом аспектов производительности. Элементы данных на этом этапе получают атрибуты и определяются как столбцы в таблицах выбранной для реализации БД СУБД. Основные отношения организации файлов и индексов, ограничения целостности и средства защиты.

На всякий - транзакции - неделимая послед операций, переводят бд из одного устойчивого состояние в другое. Свойства - атомарность (неделимость), согласованность (из одного согл сост в другое), изоляция (транзакции юзеров не мешают друг другу), долговечность (результат должен быть зафиксирован в бд после вып, даже если она крашнулась в след момент).

Метод сущность-связь.

Метод моделирования "сущность-связь" дает абстрактную модель предметной области, используя следующие основные понятия: сущности (entities), взаимосвязи (relationships) между сущностями и атрибуты (attributes) для представления свойств сущностей и взаимосвязей.

Любой фрагмент предметной области может быть представлен как множество сущностей , между которыми существует некоторое множество связей . Дадим определения:

Сущность - это объект, который может быть идентифицирован неким способом, отличающим его от других объектов. Примеры: конкретный человек, предприятие, событие и т.д.

Набор сущностей - множество сущностей одного типа (обладающих одинаковыми свойствами). Примеры: все люди, предприятия, праздники и т.д. Наборы сущностей не обязательно должны быть непересекающимися. Например, сущность, принадлежащая к набору МУЖЧИНЫ, также принадлежит набору ЛЮДИ.

Сущность фактически представляет из себя множество атрибутов , которые описывают свойства всех членов данного набора сущностей. Домен уже был выше.

Ключ сущности - это один или более атрибутов уникально определяющих данную сущность.

Связь - это ассоциация, установленная между несколькими сущностями. Примеры:

  • поскольку каждый сотрудник работает в каком-либо отделе, между сущностями СОТРУДНИК и ОТДЕЛ существует связь "работает в" или ОТДЕЛ-РАБОТНИК;

К сожалению, не существует общих правил определения, что считать сущностью, а что связью. В рассмотренном выше примере мы положили, что "руководит" - это связь. Однако, можно рассматривать сущность "руководитель", которая имеет связи "руководит" с сущностью "отдел" и "является" с сущностью "сотрудник".

Связь также может иметь атрибуты. Например, для связи ОТДЕЛ-РАБОТНИК можно задать атрибут СТАЖ_РАБОТЫ_В_ОТДЕЛЕ.

Роль сущности в связи - функция, которую выполняет сущность в данной связи. Например, в связи РОДИТЕЛЬ-ПОТОМОК сущности ЧЕЛОВЕК могут иметь роли "родитель" и "потомок". Указание ролей в модели "сущность-связь" не является обязательным и служит для уточнения семантики связи.

Набор связей - это отношение между n (причем n не меньше 2) сущностями, каждая из которых относится к некоторому набору сущностей.

Хотя, сторого говоря, понятия "связь" и "набор связей" различны (первая является элементом второго), их, тем не менее, очень часто смешивают.

В случае n=2 , т.е. когда связь объединяет две сущности, она называется бинарной. Доказано, что n -арный набор связей (n>2 ) всегда можно заменить множеством бинарных, однако первые лучше отображают семантику предметной области.

То число сущностей, которое может быть ассоциировано через набор связей с другой сущностью, называют степенью связи . Рассмотрение степеней особенно полезно для бинарных связей. Могут существовать следующие степени бинарных связей:

  • один к одному (обозначается 1: 1 ). Это означает, что в такой связи сущности с одной ролью всегда соответствует не более одной сущности с другой ролью.

Другой важной характеристикой связи помимо ее степени является класс принадлежности входящих в нее сущностей или кардинальность связи.

"СОТРУДНИК" имеет обязательный класс принадлежности (этот факт обозначается также указанием интервала числа возможных вхождений сущности в связь, в данном случае это 1,1), а сущность "ОТДЕЛ" имеет необязательный класс принадлежности (0,1). Теперь данную связь мы можем описать как 0,1:1,1 .

  • один ко многим (1: n ). В данном случае сущности с одной ролью может соответствовать любое число сущностей с другой ролью.

Данный рисунок дополнительно иллюстрирует тот факт, что между двумя сущностями может быть определено несколько наборов связей

  • много к одному (n: 1 ). Эта связь аналогична отображению 1: n .

В данном случае, по совершенно очевидным соображениям (каждый контракт заключен с конкретным заказчиком, а каждый заказчик имеет хотя бы один контракт, иначе он не был бы таковым), каждая сущность имеет обязательный класс принадлежности.

  • многие ко многим (n: n ). В этом случае каждая из ассоциированных сущностей может быть представлена любым количеством экземпляров.

Если существование сущности x зависит от существования сущности y, то x называется зависимой сущностью (иногда сущность x называют "слабой", а "сущность" y - сильной). В качестве примера рассмотрим связь между ранее описанными сущностями РАБОЧАЯ_ГРУППА и КОНТРАКТ. Рабочая группа создается только после того, как будет подписан контракт с заказчиком, и прекращает свое существование по выполнению контракта. Тогда РАБОЧАЯ_ГРУППА является зависимой от сущности КОНТРАКТ. Зависимую сущность будем обозначать двойным прямоугольником, а ее связь с сильной сущностью линией со стрелкой (у нас был овал для зависимой)

Кардинальность связи для сильной сущности всегда будет (1,1). Класс принадлежности и степень связи для зависимой сущности могут быть любыми.

12. Иерархическая и сетевая модели данных.

Иерархическая модель представляет собой совокупность элементов, расположенных в порядке их подчинения от общего к частному и образующих перевернутое по структуре дерево (граф).

К основным понятиям иерархической структуры относятся уровень, узел и связь. Узел - это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне. Иерархическое дерево имеет только одну вершину, не подчиненную никакой другой вершине и находящуюся на самом верхнем - первом уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и т. д. уровнях. Количество деревьев в базе данных определяется числом корневых записей. К каждой записи базы данных существует только один иерархический путь от корневой записи.

Организация данных в СУБД иерархического типа определяется в терминах: элемент, агрегат, запись (группа), групповое отношение, база данных.

  • Атрибут (элемент данных) - наименьшая единица структуры данных. Обычно каждому элементу при описании базы данных присваивается уникальное имя. По этому имени к нему обращаются при обработке. Элемент данных также часто называют полем.
  • Запись - именованная совокупность атрибутов. Использование записей позволяет за одно обращение к базе получить некоторую логически связанную совокупность данных. Именно записи изменяются, добавляются и удаляются. Тип записи определяется составом ее атрибутов. Экземпляр записи - конкретная запись с конкретным значением элементов
  • Групповое отношение - иерархическое отношение между записями двух типов. Родительская запись (владелец группового отношения) называется исходной записью, а дочерние записи (члены группового отношения) - подчиненными. Иерархическая база данных может хранить только такие древовидные структуры.

Корневая запись каждого дерева обязательно должна содержать ключ с уникальным значением. Ключи некорневых записей должны иметь уникальное значение только в рамках группового отношения. Каждая запись идентифицируется полным сцепленным ключом, под которым понимается совокупность ключей всех записей от корневой по иерархическому пути.

При графическом изображении групповые отношения изображают дугами ориентированного графа, а типы записей – вершинами.

Для групповых отношений в иерархической модели обеспечивается автоматический режим включения и фиксированное членство. Это означает, что для запоминания любой некорневой записи в БД должна существовать ее родительская запись При удалении родительской записи автоматически удаляются все подчиненные.

Пример: предприятие состоит из отделов, в которых работают сотрудники. В каждом отделе может работать несколько сотрудников, но сотрудник не может работать более чем в одном отделе.

Поэтому, для информационной системы управления персоналом необходимо создать групповое отношение, состоящее из родительской записи ОТДЕЛ (НАИМЕНОВАНИЕ_ОТДЕЛА, ЧИСЛО_РАБОТНИКОВ) и дочерней записи СОТРУДНИК (ФАМИЛИЯ, ДОЛЖНОСТЬ, ОКЛАД). (Для простоты полагается, что имеются только две дочерние записи). - рис а(дальше)

Для автоматизации учета контрактов с заказчиками необходимо создание еще одной иерархической структуры: заказчик - контракты с ним - сотрудники, задействованные в работе над контрактом. Это дерево будет включать записи ЗАКАЗЧИК(НАИМЕНОВАНИЕ_ЗАКАЗЧИКА, АДРЕС), КОНТРАКТ(НОМЕР, ДАТА,СУММА), ИСПОЛНИТЕЛЬ (ФАМИЛИЯ, ДОЛЖНОСТЬ, НАИМЕНОВАНИЕ_ОТДЕЛА) - рис. б.

Недостатки иерархических БД:

  • Частично дублируется информация между записями (такие записи называют парными), причем в иерархической модели данных не предусмотрена поддержка соответствия между парными записями.
  • Иерархическая модель реализует отношение между исходной и дочерней записью по схеме 1:N, то есть одной родительской записи может соответствовать любое число дочерних. Допустим теперь, что исполнитель может принимать участие более чем в одном контракте (т.е. возникает связь типа M:N). В этом случае в базу данных необходимо ввести еще одно групповое отношение, в котором ИСПОЛНИТЕЛЬ будет являться исходной записью, а КОНТРАКТ дочерней.Таким образом, мы опять вынуждены дублировать инфу.(рис С)
  • достаточно сложные логические связи и соответствующая громоздкость в обработке данных

Достоинства:

Является наиболее простой достаточно эффективное использование памяти и неплохие временные показатели выполнения операций над данными. Однако, удобна эта модель в основном для работы с иерархически организованной информацией.

Операции над данными, определенные в иерархической модели:

  • ДОБАВИТЬ в базу данных новую запись. Для корневой записи обязательно формирование значения ключа.
  • ИЗМЕНИТЬ значение данных предварительно извлеченной записи. Ключевые данные не должны подвергаться изменениям.
  • УДАЛИТЬ некоторую запись и все подчиненные ей записи.
  • ИЗВЛЕЧЬ :
    • извлечь корневую запись по ключевому значению, допускается также последовательный просмотр корневых записей
    • извлечь следующую запись (следующая запись извлекается в порядке левостороннего обхода дерева)

В операции ИЗВЛЕЧЬ допускается задание условий выборки.

Все операции изменения применяются только к одной "текущей" записи (которая предварительно извлечена из бд). Такой подход к манипулированию данных получил название "навигационного".

Ограничения целостности.

Поддерживается только целостность связей между владельцами и членами группового отношения (никакой потомок не может существовать без предка). Не обеспечивается автоматическое поддержание соответствия парных записей, входящих в разные иерархии.

Первые системы управления базами данных, появившиеся в середине 60-х годов, позволяли работать с иерархической базой данных. Наиболее известной была иерархическая система IMS фирмы IBM. Известны также другие системы: PC/Focus, Team-Up, Data Edge и наши: Ока, ИНЭС, МИРИС.

Сетевая модель данных.

Сетевая модель – структура, у которой любой элемент может быть связан с любым другим элементом.Сетевая база данных состоит из наборов записей, которые связаны между собой так, что записи могут содержать явные ссылки на другие наборы записей. Тем самым наборы записей образуют сеть. Связи между записями могут быть произвольными, и эти связи явно присутствуют и хранятся в базе данных.

Сетевая модель данных определяется в тех же терминах, что и иерархическая. Она состоит из множества записей, которые могут быть владельцами или членами групповых отношений. Связь между между записью-владельцем и записью-членом также имеет вид 1:N .

Основное различие этих моделей состоит в том, что в сетевой модели запись может быть членом более чем одного группового отношения. Согласно этой модели каждое групповое отношение именуется и проводится различие между его типом и экземпляром. Тип группового отношения задается его именем и определяет свойства общие для всех экземпляров данного типа. Экземпляр группового отношения представляется записью-владельцем и множеством (возможно пустым) подчиненных записей. При этом имеется следующее ограничение: экземпляр записи не может быть членом двух экземпляров групповых отношений одного типа (сотрудник не может работать в двух отделах)

Иерархическая структура с картинки выше. преобразовывается в сетевую следующим образом

Деревья (a) и (b), заменяются одной сетевой структурой, в которой запись СОТРУДНИК входит в два групповых отношения; для отображения типа M:N вводится запись СОТРУДНИК_КОНТРАКТ, которая не имеет полей и служит только для связи записей КОНТРАКТ и СОТРУДНИК

Каждый экземпляр группового отношения характеризуется следующими признаками:

  • способ упорядочения подчиненных записей :

произвольный,

хронологический /очередь/,

обратный хронологический /стек/,

сортированный.

Если запись объявлена подчиненной в нескольких групповых отношениях, то в каждом из них может быть назначен свой способ упорядочивания.

  • режим включения подчиненных записей :

автоматический - невозможно занести в БД запись без того, чтобы она была сразу же закреплена за неким владельцем;

ручной - позволяет запомнить в БД подчиненную запись и не включать ее немедленно в экземпляр группового отношения. Эта операция позже инициируется пользователем).

  • режим исключения Принято выделять три класса членства подчиненных записей в групповых отношениях:

Фиксированное. Подчиненная запись жестко связана с записью владельцем и ее можно исключить из группового отношения только удалив. При удалении записи-владельца все подчиненные записи автоматически тоже удаляются. В примере фиксированное членство предполагает групповое отношение "ЗАКЛЮЧАЕТ" между записями "КОНТРАКТ" и "ЗАКАЗЧИК", поскольку контракт не может существовать без заказчика.

Обязательное. Допускается переключение подчиненной записи на другого владельца, но невозможно ее существование без владельца. Для удаления записи-владельца необходимо, чтобы она не имела подчиненных записей с обязательным членством. Таким отношением связаны записи "СОТРУДНИК" и "ОТДЕЛ". Если отдел расформировывается, все его сорудники должны быть либо переведены в другие отделы, либо уволены.

Необязательное. Можно исключить запись из группового отношения, но сохранить ее в базе данных не прикрепляя к другому владельцу. При удалении записи-владельца ее подчиненные записи - необязательные члены сохраняются в базе, не участвуя более в групповом отношении такого типа. Примером такого группового отношения может служить "ВЫПОЛНЯЕТ" между "СОТРУДНИКИ" и "КОНТРАКТ", поскольку в организации могут существовать работники, чья деятельность не связана с выполненинем каких-либо договорных обязательств перед заказчиками.

Операции над данными.

ДОБАВИТЬ - внести запись в БД и, в зависимости от режима включения, либо включить ее в групповое отношение, где она объявлена подчиненной, либо не включать ни в какое групповое отношение.

ВКЛЮЧИТЬ В ГРУППОВОЕ ОТНОШЕНИЕ - связать существующую подчиненную запись с записью-владельцем.

ПЕРЕКЛЮЧИТЬ - связать существующую подчиненную запись с другой записью-владельцем в том же групповом отношении.

ОБНОВИТЬ - изменить значение элементов предварительно извлеченной записи.

ИЗВЛЕЧЬ - извлечь записи последовательно по значению ключа, а также используя групповые отношения - от владельца можно перейти к записям - членам, а от подчиненной записи к владельцу набора.

УДАЛИТЬ - убрать из БД запись. Если эта запись является владельцем группового отношения, то анализируется класс членства подчиненных записей. Обязательные члены должны быть предварительно исключены из группового отношения, фиксированные удалены вместе с владельцем, необязательные останутся в БД.
ИСКЛЮЧИТЬ ИЗ ГРУППОВОГО ОТНОШЕНИЯ - разорвать связь между записью-владельцем и записью-членом.

Ограничения целостности.

Как и в иерархической модели обеспечивается только поддержание целостности по ссылкам (владелец отношения - член отношения).

Основное достоинство сетевой модели – это высокая эффективность затрат памяти и оперативность. Недостаток – сложность и жесткость схемы базы, а также сложность понимания. Кроме того, в этой модели ослаблен контроль целостности, так как в ней допускается устанавливать произвольные связи между записями. Сложность реализации СУБД, сложность механизма доступа к данным., также необходимость на физическом уровне четко определять связи данных

К известным сетевым системам управления базами данных относятся: DBMS, IDMS, TOTAL, VISTA, СЕТЬ, СЕТОР, КОМПАС и др.

Сравнивая иерархические и сетевые базы данных, можно сказать следующее. В целом иерархические и сетевые модели обеспечивают достаточно быстрый доступ к данным. Но поскольку в сетевых базах основная структура представления информации имеет форму сети, в которой каждая вершина (узел) может иметь связь с любой другой, то данные в сетевой базе более равноправны, чем в иерархической, так как доступ к информации может быть осуществлен, начиная с любого узла.

Графовые (иерархические и сетевые) модели реализованы в качестве моделей данных в системах управления базами данных, работающих на больших ЭВМ. Для персональных компьютеров больше распространены реляционные базы данных, хотя имеются и системы управления базами данных, поддерживающих сетевую модель.


Введение. 4

1. Базы данных и СУБД 6

2. Реляционные базы данных 20

3. Операции над таблицами реляционных баз данных 29

4. Разработка инфологических моделей 49

5. Организация доступа к данным 64

6. Принципы построения систем, ориентированных на анализ данных 96

Заключение. 106

Список наиболее часто встречающихся сокращений. 107

Введение.

Литературы на русском языке, посвященной тематике СУБД, очень мало. Невозможно порекомендовать одну или несколько книг, содержание которых покрывало бы материал курса «Базы данных». К числу лучших относятся книги К. Дейта "Введение в системы баз данных" (Наука, 1980) и "Руководство по реляционной СУБД DB2" (Финансы и статистика, 1988), а также книга Дж. Ульмана "Основы систем баз данных" (Финансы и статистика, 1983). Хотя эти книги несколько устарели (на английском языке вышло уже несколько дополненных изданий), их стоит читать.

Данное учебное пособие на наш взгляд призвано систематизировать и представить методически в доступной для первоначального изучения и освоения форме материал в объеме и по содержанию, отвечающем требованиям программы курса «Базы данных». Оно состоит из шести взаимосвязанных разделов, в которых последовательно шаг за шагом рассмотрены следующие вопросы:


    1. концепция баз данных, архитектура СУБД (инфологическая модель данных, даталогическая модель данных, физическая модель данных, типы даталогических моделей данных, иерархическая даталогическая модель, сетевая даталогическая модель, даталогическая модель на основе инвертированных списков, реляционная даталогическая модель, объектно-реляционная даталогическая модель);

    2. реляционные базы данных (основные понятия реляционных баз данных, тип данных, домен, схема отношения, схема базы данных, кортеж, отношение, целостность реляционных баз данных, основные свойства отношений реляционных баз данных);

    3. операции над таблицами реляционных баз данных (операции теории множеств, нормализация отношений реляционных баз данных);

    4. использование языка ER-диаграмм для построения инфологических моделей (диаграммы "сущность-связь", информационное моделирование, методология IDEF1X, этапы разработки инфологической модели данных);

    5. организация доступа к данным (средства ускоренного доступа к данным, язык запросов, обработка транзакций, средства восстановления после сбоев);

    6. принципы построения систем, ориентированных на анализ данных (хранилища данных; модели данных, используемые при построении хранилищ данных).
Учебное пособие предназначено для студентов всех специальностей и форм обучения.

1. Базы данных и СУБД

1.1. Данные и ЭВМ

Восприятие реального мира можно соотнести с последовательностью разных, хотя иногда и взаимосвязанных, явлений. С давних времен люди пытались описать эти явления (даже тогда, когда не могли их понять). Такое описание называют данными .

Традиционно фиксация данных осуществляется с помощью конкретного средства общения (например, с помощью естественного языка или изображений) на конкретном носителе (например, камне или бумаге). Обычно данные (факты, явления, события, идеи или предметы) и их интерпретация (семантика) фиксируются совместно, так как естественный язык достаточно гибок для представления того и другого. Примером может служить утверждение "Стоимость авиабилета 128". Здесь "128" – данное, а "Стоимость авиабилета" – его семантика.

Нередко данные и интерпретация разделены. Например, "Расписание движения самолетов" может быть представлено в виде таблицы (рис. 1.1.1), в верхней части которой (отдельно от данных) приводится их интерпретация. Такое разделение затрудняет работу с данными (попробуйте быстро получить сведения из нижней части таблицы).


Интерпретация

Номер рейса

Дни недели

Пункт отправления

Время вылета

Пункт назначения

Время прибытия

Тип самолета

Стоимость билета

Данные

138

2_4_7

Баку

21.12

Москва

0.52

ИЛ-86

115.00

57

3_6

Ереван

7.20

Киев

9.25

ТУ-154

92.00

1234

2_6

Казань

22.40

Баку

23.50

ТУ-134

73.50

242

1 по 7

Киев

14.10

Москва

16.15

ТУ-154

57.00

86

2_3_5

Минск

10.50

Сочи

13.06

ИЛ-86

78.50

137

1_3_6

Москва

15.17

Баку

18.44

ИЛ-86

115.00

241

1 по 7

Москва

9.05

Киев

11.05

ТУ-154

57.00

577

1_3_5

Рига

21.53

Таллин

22.57

АН-24

21.50

78

3_6

Сочи

18.25

Баку

20.12

ТУ-134

44.00

578

2_4_6

Таллин

6.30

Рига

7.37

АН-24

21.50

Рис. 1.1.1. Данные и их интерпретация.

Применение ЭВМ для ведения (сопровождения, поддержки) и обработки данных обычно приводит к еще большему разделению данных и интерпретации. ЭВМ имеет дело главным образом с данными как таковыми. Большая часть интерпретирующей информации вообще не фиксируется в явной форме (ЭВМ не "знает", является ли "21.50" стоимостью авиабилета или временем вылета). Почему же это произошло?

Существует по крайней мере две исторические причины, по которым применение ЭВМ привело к отделению данных от интерпретации. Во-первых, ЭВМ не обладали достаточными возможностями для обработки текстов на естественном языке – основном языке интерпретации данных. Во-вторых, стоимость памяти ЭВМ была первоначально весьма велика. Память использовалась для хранения самих данных, а интерпретация традиционно возлагалась на пользователя. Пользователь закладывал интерпретацию данных в свою программу, которая "знала", например, что шестое вводимое значение связано со временем прибытия самолета, а четвертое – со временем его вылета. Это существенно повышало роль программы, так как вне интерпретации данные представляют собой не более чем совокупность битов на запоминающем устройстве. Жесткая зависимость между данными и использующими их программами создает серьезные проблемы в ведении данных и делает использования их менее гибкими.1.2. Концепция баз данных. Архитектура СУБД

Активная деятельность по отысканию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых "Системы управления базами данных " (СУБД). СУБД программное обеспечение, осуществляющее создание баз данных, поддержание ее в рабочем состоянии и обеспечение эффективного доступа к данным базы для пользователей и для приложений. Основная особенность СУБД – это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Файлы, снабженные описанием хранимых в них данных и находящиеся под управлением СУБД, стали называть банки данных, а затем "Базы данных " (БД). Таким образом, База данных (БД)– отражение предметной области в форме структурированной совокупности данных. Хранящиеся в ней данные характеризуют состав объектов предметной области, их свойства и взаимосвязи.

СУБД должна предоставлять доступ к данным любым пользователям, включая и тех, которые практически не имеют и (или) не хотят иметь представления о:


  • физическом размещении в памяти данных и их описаний;

  • механизмах поиска запрашиваемых данных;

  • проблемах, возникающих при одновременном запросе одних и тех же данных многими пользователями (прикладными программами);

  • способах обеспечения защиты данных от некорректных обновлений и (или) несанкционированного доступа;

  • поддержании баз данных в актуальном состоянии
и множестве других функций СУБД.

При выполнении основных из этих функций СУБД должна использовать различные описания данных. А как создавать эти описания?

Естественно, что проект базы данных надо начинать с анализа предметной области и выявления требований к ней отдельных пользователей (сотрудников организации, для которых создается база данных). Проектирование обычно поручается человеку (группе лиц) – администратору базы данных (АБД). Им может быть как специально выделенный сотрудник организации, так и будущий пользователь базы данных, достаточно хорошо знакомый с машинной обработкой данных.

1.2.1. Инфологическая модель данных

Объединяя частные представления о содержимом базы данных, полученные в результате опроса пользователей, и свои представления о данных, которые могут потребоваться в будущих приложениях, АБД сначала создает обобщенное неформальное описание создаваемой базы данных. Это описание, выполненное с использованием естественного языка, математических формул, таблиц, графиков и других средств, понятных всем людям, работающих над проектированием базы данных, называют инфологической моделью данных (рис. 1.2.1).

Рис. 1.2.1. Уровни моделей данных

Такая человеко-ориентированная модель полностью независима от физических параметров среды хранения данных. В конце концов этой средой может быть память человека, а не ЭВМ. Поэтому, инфологическая модель не должна изменяться до тех пор, пока какие-то изменения в реальном мире не потребуют изменения в ней некоторого определения, чтобы эта модель продолжала отражать предметную область.

Остальные модели, показанные на рис. 1.2.1, являются компьютеро-ориентированными. С их помощью СУБД дает возможность программам и пользователям осуществлять доступ к хранимым данным лишь по их именам, не заботясь о физическом расположении этих данных. Нужные данные отыскиваются СУБД на внешних запоминающих устройствах по физической модели данных .

1.2.2. Даталогическая модель данных

Так как указанный доступ осуществляется с помощью конкретной СУБД, то модели должны быть описаны на языке описания данных этой СУБД. Такое описание, создаваемое АБД по инфологической модели данных, называют даталогической моделью данных .

Указанные изменения физической и даталогической моделей не будут замечены существующими пользователями системы (окажутся "прозрачными" для них), так же как не будут замечены и новые пользователи. Следовательно, независимость данных обеспечивает возможность развития системы баз данных без разрушения существующих приложений.

1.2.3. Физическая модель данных

В отличие от инфологической модели данных, физическая модель полностью зависит от конкретной СУБД. В ней должны быть учтены

  • ограничения на длину имен объектов базы данных (таблиц, столбцов, индексов),

  • использование специальных символов в именах,

  • допустимые типы данных и их внутреннее представление на устройствах хранения данных в ЭВМ.
Одной и той же инфологической модели данных могут соответствовать несколько разных физических моделей.

Трехуровневая архитектура (инфологический, даталогический и физический уровни) позволяет обеспечить независимость хранимых данных от использующих их программ. АБД может при необходимости переписать хранимые данные на другие носители информации и (или) реорганизовать их физическую структуру, изменив лишь физическую модель данных. АБД может подключить к системе любое число новых пользователей (новых приложений), дополнив, если надо, даталогическую модель.







2024 © gtavrl.ru.