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

Тема: Современные системы управления базами данных

Куринов Сергей Борисович

Москва, 1997

1. Введение. 3

2. Краткая характеристика программного обеспечения, используемого при

создании СУБД. 4

3. Принципы организации данных, лежащие в основе современных СУБД. 6

4. Современные технологии, используемые в работе с данными. 8

5. Список литературы 11

Введение.

Современная жизнь немыслима без эффективного управления. Важной категорией

являются системы обработкиинформации, от которых во многом зависит эффективность

работы любого предприятия ли учреждения. Такая система должна:

обеспечивать получение общих и/или детализированных отчетов по итогам работы;

позволять легко определять тенденции изменения важнейших показателей;

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

задержек;

выполнять точный и полный анализ данных.

Современные СУБД в основном являются приложениями Windows, так как данная среда

позволяет более полно использовать возможностиперсональной ЭВМ, нежели среда

DOS. Снижение стоимости высокопроизводительных ПК обусловил не только

широкийпереход к среде Windows, где разработчик программного обеспечения может в

меньше степени заботиться ораспределении ресурсов, но также сделал программное

обеспечение ПК в целом и СУБД в частности менее критичными к аппаратным ресурсам

Среди наиболее ярких представителей систем управления базами данных можно

отметить: Lotus Approach, Microsoft Access, Borland dBase, Borland Paradox,

Microsoft Visual FoxPro, Microsoft Visual Basic, а также баз данных Microsoft

SQL Server и Oracle, используемые в приложениях,построенных по технологии

«клиент-сервер». Фактически, у любой современной СУБД существует аналог,

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

возможности, любое приложение способно работать со многими форматами

представления данных, осуществлять экспорт и импорт данных благодаряналичию

большого числа конвертеров. Общепринятыми, также, являются технологи,

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

текстовыхпроцессоров, пакетов построения графиков и т.п., и встроенные версии

языков высокого уровня (чаще – диалекты SQL и/или VBA)и средства визуального

программирования интерфейсов разрабатываемых приложений. Поэтому уже не имеет

существенного значения на каком языке и на основе какогопакета написано

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

стандартом «де-факто» стала «быстрая разработка приложений» или RAD (от

английского Rapid Application Development), основанная нашироко декларируемом в

литературе «открытом подходе», то есть необходимость и возможность использования

различных прикладных программ и технологий дляразработки более гибких и мощных

систем обработки данных. Поэтому в одном ряду с «классическими» СУБД все чаще

упоминаются языки программирования Visual Basic 4.0 и Visual C++, которые

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

скорости работы, которые трудно, а иногда невозможно разработать средствами

«классических» СУБД.Современный подход к управлению базами данных подразумевает

также широкое использование технологии «клиент-сервер».

Таким образом, на сегодняшний день разработчик не связан рамками какого-либо

конкретного пакета, а взависимости от поставленной задачи может использовать

самые разные приложения. Поэтому, более важным представляется общее направление

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

Краткая характеристика программного обеспечения,

используемого при создании СУБД.

Рассмотрим более подробно программные продукты компании Microsoft, а именно

Visual FoxPro3.0, Visual Basic 4.0, Visual С++, Access 7.0, SQL Server 6.5.

Наиболее интересной чертой этих пакетов являются их большие возможности

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

являются продуктами одного производителя, а также используют сходные технологии

обменаданными.

Visual FoxPro отличается высокой скоростью, имеет встроенный

объектно-ориентированный язык программирования сиспользованием xBase и SQL,

диалекты которых встроены во многие СУБД. Имеет высокий уровень объектной

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

так и раздельный доступ пользователей к данным. Применяется для приложений

масштаба предприятия дляработы на различных платформах: Windows 3.x, Windows 95,

Macintosh... Минимальные ресурсы ПК: дляVisualFoxPro версии 3.0 – процессор

468DX, Windows 3.1, 95, NT, объем оперативной памяти8 (12) Мб, занимаемый объем

на ЖМД 15-80 Мб, а для Visual FoxPro версии 5.0 (выпущена в 1997 году) – Windows

95или NT, 486 с тактовой частотой 50 МГц, 10 Мб ОЗУ, от 15 до 240 Мб на ЖМД.

Access входит в состав самого популярного пакета Microsoft Office. Основные

преимущества: знаком многим конечным пользователям и обладает

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

непрофессиональным программистом, позволяет готовить отчеты из баз данных

различных форматов.Предназначен для создания отчетов произвольной формы на

основании различных данных и разработки некоммерческих приложений. Минимальные

ресурсы ПК:процессор 468DX, Windows 3.1, 95, NT, объем оперативной памяти 12

(16) Мб, занимаемый объем на ЖМД 10-40 Мб.

Visual Basic – это универсальный объектно-ориентированный язык программирования,

диалекты которого встроены в Access, Visual FoxPro.

Преимущества:универсальность, возможность создания компонентов OLE, невысокие

требования к аппаратным ресурсам ЭВМ. Применяется для создания приложений

средней мощности, несвязанных с большой интенсивностью обработки данных,

разработки компонентов OLE, интеграция компонентов Microsoft Office. Минимальные

ресурсыПК: процессор 368DX, Windows 3.1, 95, NT, объем оперативной памяти 6 (16)

Мб, занимаемый объем на ЖМД 8-36 Мб.

Visual C++ – наиболее мощный объектно-ориентированный язык программирования,

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

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

SQL Server – сервер баз данных, реализует подход «клиент-сервер» и

взаимодействует с указаннымипакетами. Главные достоинства: высоая степень защиты

данных, мощные средства для обработки данных, высокая производительность.

Область применения: хранениебольших объемов данных, хранение высокоценных данных

или данных, требующих соблюдения режима секретности. Минимальные ресурсы ПК:

процессор 468DX-33МГц, Windows NT, объем оперативной памяти16 (32) Мб,

занимаемый объем на ЖМД 80 Мб.

Указанные программные продукты имеют возможности визуального проектирования

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

элементы интерфейса, программирует только их изменения в ответ на какие-либо

Принципы организации данных,

лежащие в основе современных СУБД.

Современные СУБД являются объектно-ориентированными и реляционными. Основной

единицей является объект,имеющий свойства, и связи между объектами. СУБД

используют несколько моделей данных: иерархическую и сетевую (с 60-х годов) и

реляционную (с 70-х). Основноеразличие данных моделей в представлении

взаимосвязей между объектами.

Иерархическая модель данных строится по принципу иерархии объектов, то есть один

тип объектаявляется главным, все нижележащие – подчиненными. Устанавливается

связь «один ко многим», то есть для некоторого главного типа существует

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

типом, а подчиненные – порожденными. У подчиненных типов могут быть в свою

очередьподчиненные типы. Наивысший в иерархии узел (совокупность атрибутов)

называют корневым.

Сетевая модель данных строится по принципу «главный и подчиненный тип

одновременно», то есть любой тип данныходновременно может одновременно порождать

несколько подчиненных типов (быть владельцем набора) и быть подчиненным для

нескольких главных (быть членомнабора).

Реляционная модель данных объекты и связи между ними представляются в виде

таблиц, при этом связи тоже рассматриваютсякак объекты. Все строки, составляющие

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

средства СУБД поддерживаютреляционную модель данных.

Объект (Сущность) – элемент какой-либо системы, информация о котором

сохраняется. Объект может бытькак реальным (например, человек), так и

абстрактным (например, событие – поступление человека в стационар).

Атрибут – информационное отображение свойств объекта. Каждый объект

характеризуетсянабором атрибутов.

Таблица – упорядоченная структура, состоящая из конечного набора однотипных

Первичный ключ – атрибут (или группа атрибутов), позволяющий однозначным образом

определить каждуюстроку в таблице.

Напротив, альтернативный ключ – атрибут (или группа атрибутов), не совпадающая с

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

Современные технологии, используемые в работе с данными.

Технология «Клиент-сервер» – технология, разделяющая приложение- СУБД на две

части: клиентскую (интерактивныйграфический интерфейс, расположенный на

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

разделение информации,администрирование и безопасность, находящийся на

выделенном компьютере. Взаимодействие «клиент-сервер» осуществляется следующим

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

котором выполняются все команды, а результат исполнения запроса отправляется

Классификация СУБД в соответствии с используемой моделью данных:

Иерархическая.

Реляционная.

Объектная.

Гибридная (элементы объектной с реляционной).

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

Классификация РСУБД в зависимости от объема поддерживаемых БД и количества пользователей.

Высший уровень. Эти продукты поддерживают крупные БД (сотни и тысячи Гбайт и более), тысячи пользователей. В крупных корпорациях. Представители: ORACLE7, ADABAS 5.3.2, SQL SERVER11.

Средний уровень. Эти продукты поддерживают БД до нескольких сот Гбайт, сотни пользователей. В небольших корпорациях и подразделениях крупных фирм. Представители: InterBase 3.3, Informix-OnLine7.0, Microsoft SQL Server6.0.

Нижний уровень. Эти продукты поддерживают БД до 1 Гбайт, менее 100 пользователей. В небольших подразделениях. Представители: NetWare SQL 3.0, Gupta SQL-Base Server.

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

Оценка СУБД

Рассмотрим стандартные современные реляционные СУБД по каждому классу продуктов, основные возможности, которые они предоставляют. Произведем оценку их, в соответствии с требованиями предъявляемым системам автоматизации кадастрового учета.

Высший уровень:

Oracle7, corp. Oracle

Продукт этого класса обладает широким диапазоном функциональных возможностей, включая поддержку двухфазной фиксации, тиражирования данных, хранимых процедур, триггеров, оперативно резервного копирования. Он предназначен для организации оптимального использования системных ресурсов, что гарантирует максимальную расширяемость. Поддерживает БД, занимающие несколько физических дисков, хранение новых типов данных. Поддерживает почти все аппаратные и программные платформы существующие на сегодняшний день, а также протоколы передачи данных. Широко применяется во многих отраслях промышленности. Зарекомендовал себя с самой лучшей стороны. Хорошая поддержка со стороны производителя, corp. Oracle.

SQL Server 10, comp. Sybase

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

Средний уровень :

Informix-OnLine 7.0, comp. Software

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

Microsoft SQL Server 6.0, corp. Microsoft

Очень хорошая СУБД. Корпорация Microsoft разработала хороший продукт, который вписывается в общую концепцию компании, выпуская только интегрированные продукты. Эта СУБД интегрирована с Windows NT, дополняя ее. Недостатки: недостаточная масштабируемость, малое количество поддерживаемых программных платформ.

Низкий уровень:

Так как каждая из них предоставляет похожий набор инструментов, то рассматривать каждое в отдельности не будем. В эту группу входят Cupta SQL-Base Server, Watcom SQL Network Server и другие. Они обладают ограниченными возможностями по сравнению с СУБД более высокого класса, но в небольших компаниях, где БД небольшие и количество пользователей ограничено несколько десятками людей, они прекрасно выполняют свои обязанности по управлению БД.

Настольные СУБД:

FoxPro 2.6, corp. Microsoft

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

Paradox 5.0, comp. Borland

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

Оценка современных СУБД:

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

Среди представленных продуктов только Oracle7 наиболее полно поддерживает нужные требования. Ниже будут даны основные понятия о сервере Oracle7.

Контрольные вопросы:

Понятие СУБД.

Возможности СУБД.

Классификация СУБД.

К важным признакам классификации современных СУБД относятся:

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

    тип поддерживаемой в СУБД модели данных – сетевая, иерархическая или реляционная;

    возможности встроенного языка СУБД, его переносимость в другие приложения (SQL, Visual Basic, ObjectPASCAL и т.п.);

    наличие развитых диалоговых средств конструирования (таблиц, форм, запросов, отчетов, макросов) и средств работы с БД;

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

    используемая концепция работы с нетрадиционными данными – объектно-реляционные, объектные;

    использование объектной технологии OLE;

    возможности интеграции данных из разных СУБД;

    степень поддержки языка SQL и возможности работы с сервером баз данных (SQL-сервером);

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

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

Таблица имеет имя и состоит из записей.

Запись – это строка таблицы, содержащая набор значений свойств, размещенный в полях БД. Таким образом, запись имеет номер в таблице и состоит из полей.

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

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

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

1.2. Модели данных: реляционная, иерархическая, сетевая

Понятие «данные» в концепции БД – это набор конкретных значений, параметров, характеризующих объект, условие, ситуацию или любые другие факторы.

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

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

а) Иерархическая модель данных.

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

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

Сегмент в терминологии Американской Ассоциации по базам данных DBTG (Data Base Task Group) называется записью, при этом в рамках иерархической модели определяются два понятия: тип сегмента, или тип записи, и экземпляр сегмента, или экземпляр записи.

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

Поле данных определяется как минимальная, неделимая единица данных, доступная пользователю с помощью СУБД.

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

Каждая физическая БД удовлетворяет следующим иерархическим ограничениям:

    в каждой физической БД существует один корневой сегмент, то есть сегмент, у которого нет логически исходного (родительского) типа сегмента;

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

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

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

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

Рассмотрим пример иерархической БД.

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

Какие задачи нам надо решать в ходе разработки приложения?

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

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

    Если заказывается индивидуальная модель, то требуется описать весь состав новой модели (рис. 1.3.).


СОСТАВ ЗАКАЗНОЙ МОДЕЛИ

СОСТАВ МОДЕЛИ

Имя блока

Характеристика

Фирма-изготовитель

Стоимость

Имя блока

Характеристика

Фирма-изготовитель

Стоимость

Рис. 1.3. Состав модели

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

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

    шаблоны всех записей логических БД, доступных пользователю;

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

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


Рис. 1.4. Дерево базы данных Склады

Все операторы в языке манипулирования данными можно разделить на три группы:

    операторы поиска данных;

    операторы поиска данных с возможностью модификации;

    операторы модификации данных.

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

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

Базовыми объектами модели являются: элемент данных, агрегат данных, запись, набор данных.

Элемент данных – минимальная информационная единица, доступная пользователю с использованием СУБД.

Агрегат данных соответствует следующему уровню обобщения в модели. В модели определены агрегаты двух типов: агрегат типа вектор и агрегат типа повторяющаяся группа.

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

Квартира

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

Набором называется двухуровневый граф, связывающий отношением «один-ко-многим» два типа записи.

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

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

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

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

Все операции манипулирования данными в сетевой модели делятся на навигационные операции и операции модификации.

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

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

в) Реляционная модель данных.

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

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

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

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

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

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

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

Операциями, выполняемыми на уровне строк отношений, являются:

    включение – добавляет в таблицу новую строку;

    удаление – удаляет из таблицы строку;

    обновление – осуществляет изменение значений атрибутов в строках.

Основными операциями над отношениями реляционной модели данных являются традиционные операции над множествами:

    Объединение – выполняется над двумя совместимыми отношениями R1 и R2. В результате операции объединения строится новое отношение R=R1 U R2. Отношение R имеет тот же состав атрибутов и совокупность кортежей исходных отношений. Причем в эту совокупность не включаются дубликаты.

Таблица R1:

Таблица R2:

Таблица R:

В новое отношение R не вошел кортеж К22, так как он дублирует кортеж К11.

    Пересечение – операция выполняется над двумя совместимыми отношениями R1 и R2. Результирующее отношение RP=R1R2 содержит одинаковые кортежи, которые есть в каждом из двух исходных.

Для таблиц из примера:

    Вычитание – операция выполняется над двумя совместимыми отношениями R1, R2 с идентичным набором атрибутов. В результате операции вычитания строится новое отношение RV = R1 - R2 с идентичным набором атрибутов, содержащее только те кортежи первого отношения R1, которые не повторяются во втором отношении R2.

Для таблиц из примера:

    Декартово произведение – операция выполняется над двумя отношениями R1 и R2, имеющими в общем случае разный состав атрибутов. В результате операции образуется новое соотношение RD=R1*R2, которое включает все атрибуты исходных отношений. Число кортежей декартова произведения равно произведению количеств кортежей в исходных отношениях.

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

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

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

    Деление – операция выполняется над двумя отношениями R1 и R2, имеющими в общем случае разные структуры и некоторые одинаковые атрибуты. В результате операции образуется новое отношение, структура которого получается исключением из множества атрибутов отношения R1 множества атрибутов отношения R2. Результирующие строки не должны содержать дубликаты.

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

Развитие реляционного подхода привело к созданию реляционных языков. Например, язык SQL, реализованный в большинстве СУБД, является более чем реляционно-полным, так как, кроме операций реляционной алгебры, он содержит полный набор операторов над строками – «включить», «удалить» и «обновить», а также реализует арифметические операции и операции сравнения.

Рассматриваемая в последующих главах СУБД Microsoft Access является примером системы управления реляционными базами данных.

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

  • MySQL;
  • SQLite;
  • PostgreSQL.

MySQL – самая популярная СУБД в мире

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

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

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

SQLite – СУБД для приложений

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

У SQLite отсутствует система пользователей, поэтому ее невозможно использовать в многопользовательских приложениях. Кроме того, она сравнительно медленно работает на запись. В виду этого ее практически невозможно нормально использовать в веб-проектах. Однако, например, для хранения данных однопользовательских игр она подходит очень хорошо. Эта СУБД сейчас активно применяется, например, в играх для Android.

PostgreSQL – профессиональное решение

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

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

Microsoft Access – это интерактивная реляционная СУБД (relational database management system – RDBMS) для WINDOWS. Это программа, которую вы можете использовать для хранения и извлечения данных в зависимости от отношений, которые вы установили. Работа с ней упрощена посредством манипулятора мыши. Графические возможности оболочки производят большое впечатление при изготовлении высококачественных отчетов и распечаток. Все это благодаря поддержки True-type шрифтов и встраивания OLE-объектов (Object Linking and Embeding) в рамках среды WINDOWS. OLE – объект представляет собой ссылку на определенную информацию, которая остается в своей первоначальной форме. OLE-объектом может быть EXCEL –таблица, Paintbrush – иллюстрация или Sound –файл.

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

Access также предоставляет в распоряжение пользователя механизмы работы с базами данных различных форматов. К примеру, можно прямо обращаться к базам данных dBASE, Paradox или Btrieve без конвертирования их в формат, используемый Access. В состав пакета Access также входит язык Access Basic (встроенный диалект языка Visual Basic), дающий возможность формирования специализированных систем управления базами данных.

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

Для создания базы данных необходимо выполнить следующие шаги:

Активизируйте окно Microsoft Access и выберите в меню File директиву New Database (или щелкните кнопкой New Database в строке пиктограмм). Microsoft Access высвечивает диалоговое окно New Database и автоматически дает имя вашей базе данных, которое вы можете заменить.

В строке File Name, напечатайте ваш вариант имени базы данных. Оно может содержать до 8 символов без пробелов. Microsoft Access автоматически добавляет расширение. MDB к имени вашей базы данных, если Вы этого не сделали.

Если вы хотите хранить базу данных в определенном месте, выберите соответствующую директорию в списке директорий Directories list.

Нажмите на кнопку OK.

Microsoft Access создает пустой файл базы данных и открывает окно базы данных Database window.

Базу данных можно наполнить объектами различного рода и выполнять операции с ними. Но с базой данных можно выполнять операции как с неделимым образованием. Все операции такого рода – операции управления базой данных – сосредоточены в меню File прикладного окна Access или в окне базы данных.

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

Если пользователь закончил работу с базой данных, то ее следует закрыть при помощи директивы Close Database в меню File, с помощью двойного щелчка мышью на кнопке вызова управляющего меню окна базы данных или нажатием клавиш (Ctrl + F4).

Таблицы.

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

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

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

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

В Access-таблицы можно встроить объекты из других поддерживающих интерфейс OLE прикладных программ и связать эти объекты с их родительскими программами.

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

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

Запросы.

Запросы служат для селекции и фильтрации набора данных. Они позволяют выбрать из базы только необходимую информацию, т. е. ту, которая соответствует определенному критерию(условию) и нужна для решения конкретной задачи. Например, вам может понадобиться информация о поставщиках и поставляемых ими товарах. Вы можете создать запрос типа "Какие товары поставляют московские поставщики" или "Кто из петербургских поставщиков сигарет продал за последний квартал наибольшую партию". Результат обработки программой Access такого запроса представляет собой таблицу называемую Dynaset. В эту таблицу включены выбранные из основной таблицы(или нескольких таблиц) блоки данных, которые удовлетворяют критериям запроса. Dynaset – динамический, временный набор данных, поэтому при каждом выполнении запроса он строится вновь на основе "свежих" табличных данных.

Выделяют два типа запросов:

QBE-запросы (Query by Example –Запрос по образцу). Пользователь дает им определения, специфицируя отдельные параметры в окне проектирования с использованием подсказок(образцов).

SQL - запросы (Structured Query Language – Структурированный язык запросов). Пользователь формулирует их с использованием инструкций и функций, выстраивая описание. QBE-запрос Access легко транслирует в соответствующий SQL-запрос. Обратная операция тоже не составляет труда. Вообще для Access безразлично, с каким типом запроса работает пользователь.

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

Критерии отбора – это инструкции, посредством которых пользователь сообщает Access, какие блоки данных должны отбираться по запросу и индицироваться в Dynaset. Критерии могут задаваться для одного или нескольких полей запроса.

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

После того как запрос спроектирован, его можно выполнить, щелкнув мышью в строке пиктограмм на кнопке с восклицательным знаком или вызывая в меню Query директиву Run. Access индицирует отобранные по запросу в Dynaset блоки в виде таблицы.

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

Если пользователь хочет иметь разработанный проект запроса в своем распоряжении и во время следующих сеансов работы, то он должен его сохранить с помощью директивы Save в меню File. Если проект сохраняется впервые, то после обращения к этой директиве появится диалоговое окно Save As. В нем следует назначить запросу имя, под которым он будет сохранен и включен в список запросов в окне банка данных. Имя запроса не должно совпадать с именем таблицы.

Если данный запрос уже был однажды сохранен и пользователь выбрал директиву Save, то старая версия будет заменена новым, измененным проектом запроса. Если изменения не должны испортить предыдущую версию, а должны быть сохранены в другом запросе, то следует вызвать директиву Save As и назначить сохраняемому проекту новое имя. Для сохранения табличного представления запроса следует выбрать директиву Save Query в меню File. Эта директива сохраняет изменения в проекте имеющегося запроса и заменяет предыдущую версию запроса на активную версию. Для того чтобы сохранить запрос впервые или создать копию активного запроса, Dynaset которого виден на экране, следует выбрать директиву Save Query As.

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

Формуляры.

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

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

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

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

Включаемые в формуляр поля можно выбрать из списка полей, который будет виден на экране после обращения к директиве Field List в менюView.

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

Отчеты.

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

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

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

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

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

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

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

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

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

Связывание управляющего элемента можно выполнить одним из двух способов:

Если пользователь хочет, чтобы Access автоматически создала управляющий элемент, связанный с базовой для данного отчета таблицей, то следует воспользоваться списком полей таблицы. Он виден на экране, если установлена опция View/Field List. Управляющий элемент, изготовленный с помощью списка полей, имеет те же значения характеристик, что и поле таблицы, с которым он связан. Для выполнения связывания следует отбуксировать выбранное поле или поля из списка в отчет. Там надлежит поместить курсор мыши в позицию, где должен находиться левый верхний угол управляющего элемента (но не поля названного данного управляющего элемента), и затем отпустить кнопку мыши. Access создает для каждого поля, выбранного в списке полей, связанный управляющий элемент (текстовое поле).

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

Сохраняя только его проект, структуру отчета, без данных.

В меню File выберите директиву Save.

Если отчет не был назван, напечатайте имя в строке Report Name.

Нажмите OK.

Сохраняя результат, полный отчет - проект вместе с данными – в файле, который вы сможете использовать в других поддерживаемых Windows приложениях, например, Microsoft Excel.

В меню File выберите Output To.

Следуйте инструкциям в диалоговых полях Output To.