Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_1 / Лекции / Лекция 5 СУБД_Общ_св.doc
Скачиваний:
38
Добавлен:
11.06.2015
Размер:
699.39 Кб
Скачать

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

  • один к одному (1:1);

  • один ко многим (1:М);

  • многие ко многим (М:М).

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

СТУДЕНТЫ (Номер, Фамилия, Имя, Отчество, Пол, Дата рождения. Группа)

СЕССИЯ (Номер, Оценка_1, Оценка_2, Оценка_З, Оценка_4, Результат)

СТИПЕНДИЯ (Результат, Процент)

ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия, Имя, Отчество)

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

А1  В1

А2  В2

А3  В3

Примером связи 1:1 может служить связь между информационными объектами СТУДЕНТ (ФИО, группа, курс, др.) и СЕССИЯ (ФИО, Номер семестра, Предмет_1, Предмет_2, …). Каждый студент имеет определенный набор экзаменационных оценок в сессию.

При связи один ко многим (1:М) одному экземпляру информационного объекта А соответствует 0, 1 или более экземпляров объекта В, но каждый экземпляр объекта В связан не более чем с 1 экземпляром объекта А.

А1  В1, B2

А2  В3

А3  В4, B5

Примером связи 1:М служит связь между информационными объектами «СТИПЕНДИЯ» (ФИО, Размер) и «СЕССИЯ» (ФИО, Номер семестра, Предмет_1, Предмет_2, …, Сумма баллов). Установленный размер стипендий по результатам сдачи сессии может повторяться многократно для различных студентов.

Связь многие ко многим (М:М) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует 0, 1 или более экземпляров объекта В и наоборот.

А1 < В1

А2< В2

А3<  В3

Примером данного отношения служит связь между информационными объектами «СТУДЕНТ» и «ПРЕПОДАВАТЕЛЬ». Один студент обучается у многих преподавателей, один преподаватель обучает многих студентов.

Все связи должны быть описаны. Если число связанных таблиц превышает три, то следует внимательно посмотреть на схему БД и по возможности постараться уменьшить число связанных таблиц до трех.

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

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

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

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

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

Эта модель используются в СУБД Oracle, Informix, PostgreSQL.

Многомерная модель, рис.8. Моделью данных является многомерный куб, где на измерениях определены некоторые иерархии, а в клетках этого куба находятся числовые значения. Операции извлечения данных из такого куба описываются в терминах поворотов, срезов, и иерархического "схлопывания" измерений с агрегированием значений (суммирование, взятие среднего и др.). Эта схема хорошо ложится на табличную организацию данных. Наиболее известный программный продукт этого класса - это Oracle Express Server.

Рисунок 8 – Схема перехода от реляционной модели к многомерной

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

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

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

Изменение порядка представления измерений, применяемое при двухмерном представлении данных, называется вращением (Rotate, Pivot, пивотинг). Эта операция обеспечивает возможность визуализации данных в форме, наиболее комфортной для их восприятия. Операция вращения может заключаться в перестановке местами строк и столбцов таблицы или перемещении интересующих измерений в столбцы или строки создаваемого отчета, что позволяет придавать ему желаемый вид. Кроме того, вращением куба данных является перемещение вне табличных измерений на место измерений, представленных на отображаемой странице, и, наоборот (при этом вне табличное измерение становится новым измерением строки или измерением столбца). Вращением можно изменить отчета с расположенным по горизонтали измерением "Время" и измерением "Компьютеры", расположенным по вертикали, в отчет, у которого по горизонтали представлено измерение "Время", а по вертикали - измерение "География".

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

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

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

Достоинствами многомерной модели данных является возможность сведения близких сущностей в одну таблицу, например, сведения о комплектующих компьютера, БД классификаторов и др. Примеры многомерных структур для хранения кодификаторов даны в табл.16 (исходные таблицы – табл.14-15), табл.16 – многомерная структура, временных рядов – табл.17-18, сеточных данных – табл.19-21.

Таблица 13 - Страны Таблица 14 - Ведомства Таблица 15 - Организации

Код

Значение

Код

Значение

Код

Значение

RU

Россия

1

МИД

НЦУКС

Нац. центр управл.

BU

Болгария

2

МЧС

ВНИИГОЧС

Ин-т ГО и ЧС

….

….

….

….

….

……………

Таблица 16 - Многомерная структура хранения классификаторов

Идентификатор классификатора

Код

Значение

1

RU

Россия

1

BU

Болгария

2

1

МИД

2

2

МЧС

3

НЦУКС

Национальный центр управления в кризисных ситуациях

3

ВНИИГОЧС

Ин-т ГО и ЧС

Таблица 17 - Сведения о временном ряде

ID_временного ряда

Широта

Долгота

Дата начала ряда

Дата окончания ряда

Модель

Параметр

Автор

Таблица 18 - Временной ряд (матрица)

ID_временного ряда

Дата

Значение

Таблица 19 - Сведения о сетке

ID_сетки

Широта

Долгота

Широта

Долгота

Дата начала

Дата окончания

Автор

Модель

Таблица 20 - Сведения о поле

ID_сетки

ID_поля

Дата

Время

Параметр

Таблица 21 - Поле

ID_сетки

ID_поля

Широта

Долгота

Значение

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

Язык описания данных

Во всех СУБД имеются средства описания данных. В настоящее время в большинстве СУБД эти средства включаются в язык SQL. В некоторых СУБД язык описания данных существует отдельно. Например, в ГУ «ВНИИГМИ-МЦД» на основе концепций и предложений КОДАСИЛ (Ассоциация по языкам систем обработки данных) [3] разработан и применяется уже почти 35 лет Язык описания гидрометеорологических данных (ЯОД).

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

- Элементы - наименьшие неделимые единицы данных;

- Группы - совокупность нескольких элементов или других (внутренних) групп.

Имеются следующие типы групп:

GRE - простая неповторяющаяся группа элементов;

GRP - повторяющаяся группа с индексами и с фиксированным числом экземпляров;

GRV - повторяющаяся группа с одним индексом и с переменным числом экземпляров;

GRK - повторяющаяся группа с ключами и с переменным числом экземпляров;

GRR - неповторяющаяся группа, состоящая из переменного числа элементов из некоторого полного списка элементов, причем имя элемента идентифицируются ссылками на этот список.

Элементы бывают следующих типов:

KEY - ключ записи или группы;

IND - индекс записи или группы;

MRC - вид записи;

MIT - основной элемент;

CHA - характеристика основного элемента;

CNT - счетчик экземпляров группы GRK, GRV;

LNG - длина экземпляра записи, группы GRK, GRR;

REF - ссылка на список элементов группы GRR.

Язык выполняет три основных функции:

  • служит стандартом хранения данных на сменных носителях в Государственном фонде данных по гидрометеорологии. Использование ЯОД как средства конструирования и описания форматов данных позволяет достичь единства в собрании разнообразных данных весьма большого объема, что очень важно как при обслуживании пользователей, так и долговременном (бессрочном) хранении. При появлении новых технических носителей данные в форматах ЯОД переписываются на новые носители с меньшими затратами труда;

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

  • является входным языком системы управления данными АИСОРИ, которая имеет разнообразные средства работы с данными в форматах ЯОД для различных пользователей - разработчиков БД, прикладных программистов и конечных пользователей.

  1. Язык манипулирования данными для реляционной модели – SQL

Для манипулирования данными созданы специальные языки, позволяющие реализовать все операции реляционной алгебры. Среди них наиболее распространенным является язык SQL (Structured Query Language – структурированный язык запросов) [2]. Язык SQL ориентирован на реляционные БД. Это язык высокого уровня, позволяющий с помощью единственного запроса соединять несколько таблиц в одну временную таблицу, вырезать требуемые строки и столбцы, т.е. выполнять операции селекции и проекции данных. Язык запросов SQL в стандарте ANSI 92 имеет множество расширений к этому стандарту. Не все СУБД поддерживают этот стандарт в полном объеме.

Команды SQL бывают интерактивными и вложенными. Интерактивный SQL используется для функционирования непосредственно в БД. Вложенный SQL состоит из команд SQL, помещённых внутри программ, которые обычно написаны на алгоритмических языках (типа Си, ПАСКАЛЬ, Java, др.). Это делает такие программы более мощными и эффективными.

Интерактивный и вложенный SQL имеют разделы:

DDL (Язык Определения Данных) - так называемый Язык Описания Схемы в ANSI - состоит из команд, которые создают объекты (таблицы, индексы, просмотры и так далее) в БД.

DML (Язык Манипулирования Данными) это набор команд, которые определяют, какие значения представлены в таблицах в любой момент времени.

DCD (Язык Управления Данными) состоит из средств, которые определяют, разрешить ли пользователю выполнять определённые действия или нет.

Определение типов данных является основной областью, в которой большинство коммерческих программ БД и официальный стандарт SQL не всегда совпадают. ANSI SQL-стандарт распознаёт только форматы типа text и number, в то время как большинство коммерческих программ используют и специальные типы, такие как DATA и TIME.

Поле типа CHAR имеет длину, определяемую максимальным числом символов, которые могут быть введены в это поле. Большая часть СУБД также имеют нестандартный тип, называемый VARCHAR, который является текстовой строкой и может иметь любую длину до определённого реализацией максимума (обычно 254 символа). Значения CHARACTER и VARCHAR включаются в одиночные кавычки как 'текст'. Различие между CHAR и VARCHAR в том, что CHAR должен резервировать достаточное количество памяти для максимальной длины строки, а VARCHAR распределяет память по мере необходимости. Символьные типы состоят из всех печатных символов, включая числа. Символьные значения сохраняются в компьютере как двоичные значения, но показываются пользователю как печатный текст. Преобразование выполняется по формату, определяемому СУБД.

Некоторые СУБД поддерживают такие типы как, например, MONEY и BINARY. В табл. 22 представлены типы данных, поддерживаемые сервером MS SQL.

Таблица 22 - Типы данных MS SQL Server

Типы данных

Описание

Bigint (int 8)

Целый

Binary (n)

Двоичный

Bit

Битовый

Character (синоним char)

Текстовой

Character varying (синоним varchar)

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

Datetime

Дата время

Decimal (numeric, dec)

Числовой

Double precision

С двойной точностью

Float

С плавающей точкой

Image

Изображение

Integer (int 4) (синоним:int)

Целый

Money

Денежный

National character (синоним: nchar)

Национальные символы

national character varying (синоним: nvarchar)

национальные символы

Smalldatetime

Дата, время

Smallint (int 2)

Целый

Smallmoney

Денежный

Uniqueidentifier

Уникальный идентификатор

Varbinary (n)

Для хранения двоичных файлов

Команды состоят из одной или более логических частей, называемых предложениями. Предложения состоят из ключевых слов и аргументов. Например, предложения, "FROM Salespeope" и "WHERE city = ‘London’ ". Аргументы завершают или изменяют значение предложения. В примерах выше, Salespeople - аргумент, а FROM - ключевое слово. Аналогично " city = ‘London’ " - аргумент предложения WHERE.

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

Квадратные скобки ( [ ] ) указывают части, которые могут не использоваться, а многоточия (...) указывают, что всё предшествующее может повторяться любое число раз.