<<
>>

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

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

мости от их информационного содержания.

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

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

Для приведенной выше задачи о поставщиках и товарах логическая структура реляционной БД будет содержать три таблицы (отношения): К;, К2) Я3, состоящие соответственно из записей о поставщиках, о товарах и о поставках товаров поставщиками (см.

рисунок 6.3).

Учитывая особенно важное значение реляционных БД для разработки подсистем ПНР в ДОУ, остановимся на их рассмотрении более подробно. Если детализировать записи приведенного на рисунке 6.3 примера, то получим структуру БД, изображенную на рисунке 6.4. Эта база данных состоит из трех таблиц: Таблица представляет по

ставщиков.

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

хождение (город).

Таблица И2 описывает виды товаров. Каждый товар имеет уникальный номер, название, вес и цвет. В таблице И3 отражена поставка товаров. Она служит для того, чтобы связать между собой две другие таблицы. Например, первая строка этой таблицы связывает оп-ределенного поставщика из таблицы (поставщика Пь) с определенным товаром из таблицы Я2 (с товаром Т2). Иными словами, она представляет поставку товаров вида Ть поставщиком по фамилии Пь и объем поставки, равный 300 шт.

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

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

- полное информационное содержание базы данных представляется в виде явных значений данных.

Такой метод представления — единственный, имеющийся в распоря-жении реляционной базы данных. В частности, не существует каких-

либо связей и указателей, соединяющих одну таблицу с другой. Для этой цели служат тоже таблицы. Так, таблица R3 на рисунке 6.4 отражает связь таблиц RI и R2.

Сложилась устоявшаяся терминология. В частности, при рассмотрении реляционных БД для обозначения таблиц используется термин отношение (от английского слова relation). Реляционные системы берут свое начало в математической теории отношений, основы которой были первоначально сформулированы доктором Э.Ф. Коддом из фирмы IBM и опубликованы в 1970 г. Эти идеи оказали влияние не только на технологию баз данных, но также и на другие области информационных технологий (например, искусственный интеллект и обработку текстов на естественных языках).

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

Реляционная БД имеет дело с тремя аспектами данных: со структурой данных, с целостностью данных и с манипулированием данными.

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

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

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

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

Отношение на доменах 01 02,...,0п состоит из заголовка и тела. За-головок состоит из такого фиксированного множества атрибутов А1 А2у...,Ап, что существует взаимно однозначное соответствие между этими атрибутами А,и определяющими их доменами ?>.(/ = 1,п).

Тело состоит из меняющегося во времени множества кортежей, где каждый кортеж, в свою очередь, состоит из множества пар атрибутов-значений (А:-;Уг), (/' = 1,/?), по одной такой паре для каждого атрибута А{ в заголовке. Для любой заданной пары атрибут-значение (А{:У{) У{ является значением из единственного домена О,-, с которым связан атрибут А{.

Изображение отношения в виде таблицы не вполне строго, так как в таблице столбцы (атрибуты) и строки (кортежи) расположены в опреде-ленном порядке. В отличие от этого, отношение — это множество, которое не является упорядоченным.

Число п атрибутов в отношении называется степенью отношения. Отношение степени 1 называется унарным, степени 2 — бинарным, сте-пени 3 — тернарным, степени п — п-арным. Число кортежей в отношении называется кардинальным числом этого отношения.

Важным следствием сделанных выше определений является то, что каждое отношение имеет первичный ключ, идентифицирующий его. Поскольку отношение — это множество, которое по определению не со-держит совпадающих элементов, то два кортежа отношения в любой момент времени не могут быть дубликатами друг друга. Пусть Я — отно-шение с атрибутами А1 А2,...,Ап. Говорят, что множество атрибутов К = (А} А2,...,Ап) отношения К является возможным ключом Я тогда и только тогда, когда удовлетворяются два независимых от времени условия: уникальность и минимальность.

Первое условие указывает на то, что в произвольный заданный момент времени никакие два различных кортежа отношения Я не имеют одного и того же значения {А} А2,...,Ап). Второе условие говорит о том, что ни один из атрибутов (А} А2,...)Ап) не может быть исключен из К без нарушения условий уникальности.

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

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

Внешние ключи в неявном виде связывают отношения. Примером внешнего ключа является атрибут «Номер поставщика» в отношении Я3 на рисунке 6.4, поскольку этот атрибут может быть первичным ключом отношения Я 2.

Целостность реляционной БД определяется двумя общими правилами: целостностью по сущностям и целостностью по ссылкам. Целостность по сущностям означает недопустимость того, чтобы какой-либо атрибут, участвующий в первичном ключе базового отношения, принимал неопре-деленные значения. При этом базовым отношением называется незави-симое именованное отношение (для БД поставщиков и товаров — это отно-шения Я; и Я2). Мотивировка этого правила определяется тем, что базовые отношения соответствуют сущностям в реальном мире, а следовательно, отличимы, то есть имеют уникальную идентификацию. В реальной же модели функцию уникальной идентификации выполняют первичные ключи, и, таким образом, ситуация, когда первичный ключ принимает неопределенное значение, является противоречивой и говорит о том, что некоторая сущность не обладает индивидуальностью, а значит, не существует. Отсюда и название — целостность по сущностям.

Целостность по ссылкам означает, что если базовое отношение Я” включает некоторый внешний ключ ГК, соответствующий некоторому первичному ключу РК какого-либо базового отношения Я', то каждое значение ГК в Я" должно быть либо равным значению РК в некотором кортеже Я", либо полностью неопределенным. Неопределенность внеш-него ключа может возникнуть в ситуации, когда, например, имеется ва-кансия на должность в некоторый отдел. Для такой должности атрибут «Фамилия» служащего, являющийся внешним ключом, имеет неопре-деленное значение в кортеже, представляющем эту штатную должность отдела.

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

в результате некоторое новое отношение.

Э.Ф. Коддом были определены восемь таких операций, объединенных в две группы по четыре операции в каждой.

Первая группа — традиционные теоретике-множественные операции, показанные на рисунке 6.5.

В каждой из этих операций используются два операнда (отношения). Для всех операций, кроме декартова произведения, эти два операнда должны быть совместимы по объединению, то есть они должны быть одной степени и их г'-е атрибуты (/ = 1, п) должны быть связаны с одним и тем же доменом.

Объединением двух отношений Л и В (см. рисунок 5а) называется множество всех кортежей t, принадлежащих либо А, либо В, либо им обоим, то есть: AuB = {t:te А или t € В}, где и — символ объединения; е — знак принадлежности к определенному отношению (множеству).

Пересечением двух отношений А и В называется множество всех кортежей ?, каждый из которых принадлежит как А, так и В (см. рисунок 56), то есть: А п В = {t:t е А и t е В}, где п — символ пересечения.

Разностью между двумя отношениями А и В называется множество всех кортежей, каждый из которых принадлежит А и не принадлежит В (см. рисунок 5г), то есть: А\В = {t:t е A, t g В}, где \ — символ разности.

Декартовым произведением двух отношений Л и В называется мно-жество всех кортежей t, таких, что t является конкатенацией (соедине-нием в цепочки) некоторого кортежа а, принадлежащего А, и какого-либо кортежа 6, принадлежащего В (см. рисунок 5г), то есть: А® В = {ax}ay,bx,by,cx,cy}dx,dy}.

Вторая группа — специальные реляционные операции, показанные на рисунке б.б.

Операция селекция. Пусть theta представляет собой любой достижи-мый оператор сравнения скаляров, например =, >, >, <и т.д. Theta-ce-

лекцией отношения А по атрибутам х и у называется множество всех кортежей t из А, таких, что истинен предикат t.x theta t.у. Атрибуты х и у должны быть определены на одном и том же домене, и для этого доме

на оператор theta должен иметь смысл. Вместо атрибута у может быть задана константа (например, выбрать из платежной ведомости записи о сотрудниках, имеющих зарплату 5000 руб.). Таким образом, оператор theta-селекции позволит получать «горизонтальные» подмножества за-данного отношения, то есть подмножества таких кортежей заданного от-ношения, для которых выполняется поставленное условие (рисунок 6а).

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

Операция соединение (рисунок 6в). Пусть theta имеет тот же смысл, что и в операции селекции. Тогда t/ieta-соединением отношения А по ат-рибуту х с отношением В по атрибуту у называется множество всех кортежей t, таких, что t является конкатенацией какого-либо кортежа

а, принадлежащего Л, и какого-либо кортежа Ь, принадлежащего В, и предикат a.x. theta Ь.у. принимает значение «истина». При этом атрибуты А.х и В.у должны быть определены на одном и том же домене, а оператор theta должен иметь смысл для этого домена. Если оператор theta — равенство, то соединение называется эквисоединением. Из этого определения следует, что результат эквисоединения должен включать в себя два идентичных атрибута. Если один из этих атрибутов исключается, что можно осуществить с помощью проекции, результат называ

ется естественным соединением. Под неуточненным термином «соеди-нение» понимают естественное соединение.

Операция соединение похожа на декартово произведение. Отличие состоит в том, что декартово произведение предполагает сцепление каждого кортежа из отношения А с каждым кортежем из Б, а в операции соединения кортеж из отношения А сцепляется только с теми кортежами из В, для которых выполнено условие а.х. = Ь.у.

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

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

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

- множество объектов реляционной модели БД однородно — структура БД определяется только в терминах отношений;

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

В последние годы все большее признание и развитие получают объ-ектные базы данных ЮБД). толчок к появлению которых дали объектно-ориентированное программирование и использование компьютера

для обработки и представления практически всех форм информации, воспринимаемых человеком.

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

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

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

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

Свойство — это характеристика, с помощью которой описываются внешний вид и работа объекта.

Событие — это действие, которое связано с объектом. Событие может быть вызвано пользователем (щелчок «мышью»), инициировано прикладной программой или операционной системой.

Метод — это функция или процедура, управляющая работой объекта при его реакции на событие.

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

Если набор объектов имеет описание (концептуальная модель), ука-заны свойства и логические связи между объектами (логическая модель)

и известно их местонахождение в памяти ЭВМ (физическая модель), то это позволяет извлекать объекты и применять их в соответствии с на-значением многими пользователями. Следовательно, организуется объ-ектная база данных.

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

В настоящее время многие известные фирмы, занимающиеся разра-боткой программных продуктов, предлагают системы ООП. Например, широко известны такие продукты фирмы Microsoft, как Visual Basic, Visual FoxPro, Access, SQL Server. Такие системы не только упрощают создание объектов, но и позволяют организовать ОВД и предоставляют средства работы с нею. Помимо поддержки ООП и ОВД перечисленные системы дают возможность создания и манипулирования реляционной БД, что, впрочем, является их основным назначением.

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

<< | >>
Источник: В.А. Деева. Управление равновесными случайными процессами на финансовых рынках. 2007

Еще по теме Реляционные базы данных:

  1. Реляционная модель данных
  2. Сетевые базы данных
  3. Иерархические базы данных
  4. Нормализация файлов базы данных
  5. Базы данных
  6. Принципы построения и этапы проектирования базы данных
  7. Операции реляционной алгебры
  8. Хранилища данных
  9. Состояние ресурсной базы российских банков
  10. Четыре группы налоговой базы
  11. Концептуальные модели данных
  12. Укрепление финансовой базы развития регионов
  13. Сопровождение клиентской базы
  14. б. Особенности определения налоговой базы у профессиональных участников фондового рынка
  15. Определение налоговой базы и суммы налога рассмотрим на примерах.