Здавалка
Главная | Обратная связь

Иерархическая модель

Лекция 10

Систематизация и хранение информации.
Базы данных

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

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

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

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

Элемент информационной системы, информация о котором сохраняется в ней, называется объектом.

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

Например, при продаже автомобилей ИС будет содержать такие объекты: модель автомобиля (например, ВАЗ-2107), клиент (Сидоров), счет.

На товарном складе это будут: поставщик, товар, отгрузка товара и т. д.

Каждый объект обладает набором свойств, которые запоминаются в ИС.

Например, объект «клиент Сидоров» может характеризоваться фамилией, именем, годом рождения, телефоном, адресом, номером счета.

Свойства, характеризующие объект, называются атрибутамиобъекта.

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

Каждый атрибут имеет свое имя — идентификатор.

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

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

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

Информационная система, которая хранится в электронном виде, называется базой данных

Базы данных

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

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

Концептуальная схемапредставляет собой описание логической структуры всей БД. Термин «логическая» означает, что описание структуры выполняется на смысловом уровне (слово концепт означает смысл), без указания способа представления данных в ЭВМ.

Рассмотрим этот подход более подробно. БД есть информационная модель реального мира, в котором выделяются объекты, свойства (характеристики или признаки) объектов и взаимосвязи между объектами. Например, для объекта ТОВАРЫ свойствами являются Код товара, Наименование товара, Описание товара, Цена, Код поставщика. Для объекта ПОСТАВЩИКИ свойствами являются Код поставщика, Название поставщика, Телефон, Факс, Адрес, Фамилия директора. Объекты могут быть связаны свойством Код поставщика.

В БД объекты представляются с помощью записей, свойства — с помощью атрибутов, а взаимосвязи — с помощью связей. Записи, атрибуты и связи являются тремя основными формами представления данных в БД.

Атрибут представляет собой элементарное данное — число, символьную строку, специализированное числовое данное (такое как «деньги») и т. д. Так, для объекта ТОВАРЫ значениями атрибутов являются конкретное число, например 10, соответствующее коду товара, символьная строка, например телевизор, определяющая наименование товара, и т. д. Запись состоит из значений нескольких атрибутов. Связи, как и атрибуты, являются элементарными данными. Однако их функция — непосредственно связывать две записи.

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

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

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

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

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

При проектировании баз данных решаются две основные проблемы:

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

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

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

Иерархическая модель

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

Представление связей в иерархической модели

 

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

В целом дерево представляет собой иерархически организованный набор «записей».

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

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

Данные в иерархической базе

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

К основным операциям манипулирования иерархически организованными данными относятся:

. — поиск указанного экземпляра БД (например, дерева со значением номер 10 в поле Отдел);

—переход от одного дерева к другому;

—переход от одной записи к другой внутри дерева (например, к следующей записи типа Сотрудники);

—вставка новой записи в указанную позицию;

—удаление текущей записи и т. д.

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

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

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

Сетевая модель

Сетевая модель данных позволяет отображать разнообразные взаимосвязи элементов данных в виде произвольного графа (не обязательно дерева), обобщая тем самым иерархическую модель данных. При этом в сетевой модели ребра графа являются ориентированными (т.е. линиями со стрелкой, идущими от предка к потомку). Стандарт сетевой модели впервые был определен в 1975 году организацией CODASYL (Conference of Data System Languages), которая определила базовые понятия модели и формальный язык описания.

Для описания схемы сетевой БД используются термины «запись» и «связь». «Связь» (направленная стрелка) определяется для «записей»: предка и потомка. Разумеется, записи и связи так же, как и в иерархической модели, могут иметь много экземпляров.

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

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

Пример схемы сетевой БД

Физическое размещение данных в базах сетевого типа может быть организовано практически теми же методами, что и в иерархических базах данных.(

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

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

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

Системы на основе сетевой модели не получили широкого распространения на практике.

Реляционная модель

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

Рассмотрим основные понятия теории отношений. Пусть имеется п множеств, называемых в реляционной модели доменами: Dl,D2,..., Dn (п > 1). n-арным отношениемна этих множествах называют любую совокупность упорядоченных наборов вида (dlj , d2j, ... , dnJ}), где dlj еcть элемент множества Dl, d2j еcть элемент множества D2, и так далее, dnj ecть элемент множества Dn. Например, если D1 есть совокупность фамилий, имен и отчеств студентов некоторой группы, D2 — совокупность учебных дисциплин, a D3 — совокупность оценок (например, {5, 4, 3, 2} или {отлично, хорошо, удовлетворительно, неудовлетворительно}), то 3-арное отношение (или отношение арности 3, или отношение ранга 3, или отношение степени 3) на множествах Dl, D2, D3 представляет собой результаты экзаменов в группе:

(Иванов Иван Иванович, Информатика, хорошо)

(Иванов Иван Иванович, Экономика, отлично)

……………

(Петров Петр Петрович, Информатика, удовлетворительно)

(Петров Петр Петрович, Экономика, хорошо)

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

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

Экзамен

ФИО студента Учебная дисциплина Оценка
Иванов Иван Иванович Информатика хорошо
Иванов Иван Иванович Экономика отлично
Петров Петр Петрович Информатика удовлетворительно
Петров Петр Петрович Экономика хорошо

Данная таблица обладает рядом специфических свойств:

—в таблице нет двух одинаковых строк;

—все строки таблицы имеют одинаковую структуру;

—таблица имеет столбцы, соответствующие атрибутам отношения;

—каждый атрибут в отношении имеет уникальное имя;

—порядок строк в таблице произвольный.

Строки отношения иногда называют кортежами.Следует отметить, что в отношении не может быть одинаковых кортежей (строк) — это следует из математического определения отношения как подмножества так называемого декартова произведения доменов Dl x D2 х ... х Dn, т. е. совокупности всех упорядоченных наборов из n элементов вида (dli d2i, ... , dni;), где dli;есть элемент множества Dl, d2i; есть элемент множества D2, и так далее, dni есть элемент множества Dn.

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

Любое отношение является моделью некоторого реального объекта внешнего мира (в рассмотренном нами примере — результатов экзаменационной сессии студенческой группы).

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

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

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

Язык SQL

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

История SQL началась в 70-х годах в IBMResearch Laboratory в Сан-Хосе, где Э. Ф. Кодд и другие сотрудники лаборатории разработали реляционную модель баз данных, на основе которой со временем была создана СУБД DB2. По мере широкого распространения в 80-х реляционных баз данных SQL стал применяться в коммерческих информационных технологиях. В 1986 году Американский национальный институт по стандартам и Международная организация по стандартам утвердили первый стандарт на этот язык.

В середине 80-х годов компании Oracle и Sybase выпустили первые коммерческие системы управления базами данных, которые использовали язык SQL в качестве основного механизма формирования запросов. Спустя некоторое время Microsoft быстро лицензировала технологию Sybase в качестве основы для своего Microsoft SQL Server.

В 1989 и 1992 годах в стандарт были добавлены функции базового контроля целостности данных, администрирования данных, а также определения и манипуляций с данными. Примерно в это же время в дополняющей стандарт спецификации Open Database Connectivity (ODBC) был описан прикладной программный интерфейс, с помо-

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

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

SQL не является языком программирования в традиционном представлении. На нем пишутся не программы, а запросы к базе данных. Поэтому SQL — декларативный язык. Это означает, что с его помощью можно сформулировать, что необходимо получить, но нельзя указать, как это следует сделать. В частности, в отличие от процедурных языков программирования (Си, Паскаль, Ада), в языке SQL отсутствуют такие операторы, как if-then-else, for, while и т. д. Мы не будем подробно рассматривать синтаксис языка. Коснемся его лишь в той мере, которая необходима для понимания простых примеров. С их помощью будут проиллюстрированы наиболее интересные механизмы обработки данных.

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

Операторы определения данных — Data Definition Language (DDL)

Оператор Смысл Действие
CREATE TABLE Создать таблицу Создает новую таблицу в БД
DROP TABLE Удалить таблицу Удаляет таблицу из БД
ALTER TABLE Изменить таблицу Изменяет структуру существующей таблицы или ограничения целостности, задаваемые для данной таблицы
CREATE VIEW Создать представление Создаст виртуальную таблицу, соответствующую некоторому SQL-запросу
ALTER VIEW Изменить представление Изменяет ранее созданное представление
DROP VIEW Удалить представление Удаляет ранее созданное представление
CREATE INDEX Создать индекс Создает индекс для некоторой таблицы для обеспечения быстрого доступа по атрибутам, входящим в индекс
DROP INDEX Удалить индекс Удаляет ранее созданный индекс

Операторы манипулирования данными — Data Manipulation Language ( DMP)

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

Язык запросов — Data Query Language (DQL)

Оператор Смысл Действие
SELECT Выбрать строки Оператор, заменяющий все операторы реляционной алгебры и позволяющий сформировать результирующее отношение, соответствующее запросу

Средства управления транзакциями

Оператор Смысл Действие
COMMIT Завершить транзакцию Завершить комплексную взаимосвязанную обработку информации, объединенную в транзакцию
ROLLBACK Откатить транзакцию Отменить изменения, проведенные в ходе 1 выполнения транзакции
SAVEPOINT Сохранить про-межуточную точ-ку выполнения транзакции Сохранить промежуточное состояние БД, пометить его для того, чтобы можно было в дальнейшем к нему вернуться

Средства администрирования данных

Оператор Смысл Действие
ALTER DATABASE Изменить БД Изменить набор основных объектов в базе данных, ограничений, касающихся всей базы данных
ALTER DBAREA Изменить область хранения БД Изменить ранее созданную область хранения
ALTER PASSWORD Изменить пароль Изменить пароль для всей базы данных
CREATE DATABASE Создать БД Создать новую базу данных, определив основные параметры для нее
CREATE DBAREA Создать область хранения Создать новую область хранения и сделать ее доступной для размещения данных
DROP DATABASE Удалить БД Удалить существующую базу данных (только в том случае, когда вы имеете право выполнить это действие)
DROP DBAREA Удалить область хранения БД Удалить существующую область хранения(если в ней на настоящий момент не располагаются активные данные)
GRANT Предоставить права Предоставить права доступа на ряд действий над некоторым объектом БД
REVOKE Лишить прав Лишить прав доступа к некоторому объекту или некоторым действиям над объектом

 

Программный SQL — хранимые процедуры, триггеры

Оператор Смысл Действие
DECLARE Определяет курсор для запроса Задает некоторое имя и определяет связанный с ним запрос к БД, который соответствует виртуальному набору данных
OPEN Открыть курсор Формирует виртуальный набор данных, соответствующий описанию указанного курсора и текущему состоянию БД
FETCH Считать строку из множества строк, определенных кур сором Считывает очередную строку, заданную параметром команды из виртуального набора данных, соответствующего открытому курсору
CLOSE Закрыть курсор Прекращает доступ к виртуальному набору данных, соответствующему указанному курсору
PREPARE Подготовить оператор SQL к динамическому выполнению Сгенерировать план выполнения запроса, соответствующего заданному оператору SQL
EXECUTE Выполнить оператор SQL, ранее подготовленный к динамическому выполнению Выполняет ранее подготовленный план запроса

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

1. Что представляет база данных?

2. Раскройте понятие концептуальной схемы

3. Что представляет атрибут?

4. Чем идентифицируется запись в БД?

5. Дайте понятие внешней схемы БД.

6. Что представляет внутренняя схема БД?

7. Достоинства и недостатки иерархической модели данных.

8. Достоинства и недостатки сетевой модели данных.

9. Достоинства и недостатки реляционной модели данных.

10. Как осуществляется доступ к данным в реляционной БД?





©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.