Цикритзис Д., Лоховски Ф. Модели данных - файл n1.doc

приобрести
Цикритзис Д., Лоховски Ф. Модели данных
скачать (1070.8 kb.)
Доступные файлы (14):
n1.doc123kb.17.03.2006 13:08скачать
n2.doc152kb.24.02.2006 16:36скачать
n3.doc282kb.24.02.2006 16:39скачать
n4.doc319kb.24.02.2006 16:42скачать
n5.doc516kb.24.02.2006 16:46скачать
n6.doc269kb.17.03.2006 13:12скачать
n7.doc327kb.17.03.2006 13:17скачать
n8.doc328kb.17.03.2006 13:24скачать
n9.doc269kb.17.03.2006 13:26скачать
n10.doc169kb.17.03.2006 13:28скачать
n11.doc170kb.17.03.2006 13:29скачать
n12.doc141kb.17.03.2006 13:31скачать
n13.doc252kb.17.03.2006 13:05скачать
n14.doc300kb.17.03.2006 13:22скачать

n1.doc

Часть I ОСНОВНЫЕ ПОНЯТИЯ

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

Глава 1

ДАННЫЕ И МОДЕЛИ ДАННЫХ

1.1. СЕМАНТИКА ДАННЫХ

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

* Не следует трактовать эту фразу как отождествление организации и струк­туры данных. Авторы имеют в виду, что структура данных во многом опреде­ляет организацию данных в целом. Это в значительной степени справедливо в отношении простых «традиционных» структур. — Примеч. пер,

Информация — это приращение знаний, которое может быть выведено на основе данных [222].

Слово «данные» происходит от латинского «datum», буквально качающего «факт». Тем не менее данные не всегда соответствуют конкретным или действительным фактам. Иногда они неточны или описывают нечто, не имеющее место в реальной действительности (идею). Будем называть данными описание любого явления (или идеи), которое представляется достаточно ценным для того, чтобы его сформулировать и точно зафиксировать. Традиционно фиксация данных осуществляется с помощью конкретного средства общения (например, с помощью языка или изображений) на конкретном (полу-) постоянном носителе (например камне или бумаге). Деятельность по регистрации данных слеживается во времени: пещерная живопись доисторических времен, древнегреческие письмена на камне и египетские на папирусе. Чаще всего данные описываются на естественном языке и фиксируются на бумаге. Обычно данные (факты) и их интерпретация (семантика) фиксируются совместно, так как естественный достаточно гибок для представления того и другого. Примером может служить утверждение «его рост 173 см». Здесь «173»—данное, а его семантика — «рост в сантиметрах». В определенных случаях данные и интерпретация разделены. Рассмотрим, например расписание авиарейсов, которое представляет собой таблицу данных. Как правило, интерпретация приводится отдельно в начале таблицы. Разделение данных и интерпретации может затруднять работу с данными, что, как показывает анализ, проявляется пользовании расписанием авиарейсов.

Применение компьютеров для ведения и обработки данных к еще большему разделению данных и интерпретации. Компьютеры имеют дело главным образом с данными как таковыми. Большая часть интерпретирующей информации вообще не фиксируется в явной форме. Рассмотрим, например, программу иного анализа, предназначенную для решения дифференциальных уравнений в частных производных. Эта программа получает в ­качестве исходных данных некоторые числа и вырабатывает некоторые другие числа. Она не «знает», описывают ли дифференциальные уравнения электромагнитные или гидравлические явления. Ответственность за интерпретацию результатов в контексте их применения лежит на пользователе программы. Существуют по крайней мере две исторические причины, по которым применение компьютеров приводит к отделению данных от интерпретации. Во-первых, компьютеры не обладают достаточными возможностями для обработки текстов на естественном языке, который все еще остается основным средством кодирования и интерпретации семантики данных *.

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

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

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

В условиях совместного использования данных при множестве различных приложений указанный подход можно применять только до определенного предела. За этим пределом написание про­грамм, в каждую из которых встроены близкие, хотя и не идентич­ные механизмы интерпретации, становится весьма неэффективным. В такой ситуации целесообразнее ассоциировать данные и меха­низмы интерпретации и обеспечить однократность представления интерпретирующей информации. В результате изменяется роль данных. Их уже нельзя рассматривать как совокупность битов, они приобретают определенную интеллектуальную окраску. В та­ком качестве их можно расценивать как семантически значимое представление (части) реального мира, как взгляд на мир. Подоб­ное видение мира обычно носит абстрактный характер [342, 236]. Поскольку мир изменяется, изменяются и представляющие его данные. Гибкость средств интерпретации данных должна позво­лять наряду со стабильным базисом представлять и аспекты эво­люции. Такая гибкость достигается двумя способами. Во-первых, обеспечиваются разносторонние взгляды на одни и те же данные. Например, различные приложения могут накладывать на данные свои ограничения и конкретную интерпретацию. Так, человек мо­жет рассматриваться в приложениях, связанных с кадровыми во­просами, как служащий, в производственных приложениях — как исполнитель работ, в медицинских приложениях — как пациент. Вместе с тем та часть интерпретации данных, которая осуществ­ляется системой ведения данных, должна оставаться достаточно абстрактной для того, чтобы обеспечить множественность взглядов. С другой стороны, должна существовать возможность единообраз­ного представления различных данных. Например, администра­торы, клерки, торговые агенты, секретари могут рассматриваться служащие независимо от рода их деятельности. Это также требует значительной абстрактности интерпретации. В последующих главах мы обсудим абстракции данных более детально.

1.2. МОДЕЛИРОВАНИЕ ДАННЫХ

Очевидно, что наряду с абстрактностью интерпретации должны обеспечиваться развитые возможности представления соотношения данных [300]. Интеллектуальное средство, позволяющее реализовать интерпретацию данных в соответствии с указанными требованиями, будем называть моделью данных. Модель данных — это средство абстракции, которое дает возможность увидеть «лес» (информационное содержание данных), а не «отдельные деревья» (конкретные значения данных).

Модели данных широко используются в различных дисциплинах, они помогают понять проблемы и абстрагироваться от деталей [125]. Например, в математической модели числа 3 и 5 могут представлять 3 яблока и 5 яблок. Сложение двух абстрактных объектов 3 и 5 может моделировать ситуацию, когда к 3 яблокам дадут еще 5 или к 3 апельсинам добавляют еще 5. Однако в той же степени это моделирует ситуацию, когда к 5 яблокам добавляется 3 апельсина. Этот пример показывает, с какой тщательностью следует подходить к применению любой модели. Уровень абстрактности модели может меняться в зависимости от того, как ia будет использоваться.

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

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

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

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

Прежде чем продолжить изложение, необходимо хотя бы приблизительно определить элементарные объекты моделирования. Примем в качестве рабочего определения атомарной единицы данных кортеж <имя объекта, свойство объекта, значение свойства, время> [222]. Явление (или идея) обычно соотносится с объектом (имя объекта) и некоторой характеристикой объекта (свой­ство объекта), принимающей некоторое значение (значение свойства) в определенное время (время).

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

Опуская временную характеристику, мы приходим к следую­щему представлению элементарной единицы данных: <имя объекта, свойства объекта, значение свойства>. Оно может быть реа­лизовано множеством способов, что, в частности, привело к созданию множества моделей данных. Простым, но очень мощным представлением элементарных данных и связей между ними является сетевая структура, в которой вершины соответствуют элементам, а дуги —связям между ними [1, 302]. Другой мощный, способ установления связей между данными состоит в распределении их по категориям [1, 171]. Данные одной категории полагаются подобными. Иногда характеристики подобия являются как свойства категории. В соответствии с уровнем требований к категоризации данных модели данных разделяются на два класса: сильно типизированные и слабо типизированные.

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

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

В сильно типизированных моделях «мир» пытаются поместить «смирительную рубашку». Такие модели весьма негибки, и их изменение затрудняет передачу тонких семантических различий [198, 199, 200]. Рассмотрим, например категорию СЛУЖАЩИЙ. В строго типизированной модели данных эта категория должна быть гомогенной, т. е. все объекты, принадлежащие этой категории, должны иметь однотипные свойства, структуру и т. д. между тем женатые и неженатые, временные и постоянные, находящиеся на сдельной и повременной оплате служащие характеризуются по-разному.

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

Отдельные свойства категорий наследуются принадлежащими к ним данными. Кроме того, устраняется дублирование имен: имена подобных объектов и их свойств могут быть абстрагированы соответственно в имя категории и имя свойства категории. На­пример, путем присвоения категории имени СЛУЖАЩИЙ, а свой­ству категории — имени Возраст устраняется повторение имен в каждой тройке < СЛУЖАЩИЙ, Возраст, значение>.

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

В отличие от сильно типизированных моделей слабо типизи­рованные модели данных обеспечивают интеграцию данных и категорий. Предельные возможности в этом плане обеспечи­ваются исчислением предикатов [211, 212, 115]. Во многих моде­лях данных исчисление предикатов используется для представ­ления знаний, не реализуемого базовыми средствами модели.

Возникает естественный вопрос: если исчисление предикатов представляет собой столь совершенное средство моделирования, то почему нас интересуют другие модели данных? По мнению многих, дело тут в том, что эти модели обеспечивают наглядное визуальное представление данных, в то время как исчисление предикатов предполагает работу с линейными текстами. Тем не менее и здесь возможно использование графических представле­ний, что подтверждается исследованиями семантических се­тей [54]. Выражения исчисления предикатов могут быть запи­саны не только в обычной математической нотации, но и сред­ствами специального языка программирования, например PRO­LOG (см. [212]). Таким образом, исчислению предикатов не свой­ственны чрезмерная сложность и плохая структурированность, как было принято считать вследствие недостаточного понимания и неправомерного обобщения негативного опыта.

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

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

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

1.3 ОПРЕДЕЛЕНИЕ МОДЕЛИ ДАННЫХ

Большинство моделей данных, используемых в автоматизированных системах, относится к сильно типизированным. Мы сконцентрируем внимание в основном на этих моделях. В конкретном применении модели данных совокупность именованных категорий (например, ЛИЧНОСТЬ, АВТОМОБИЛЬ), их свойств (Имя личности, Марка автомобиля) и связей между ними (ВЛАДЕЕТ, ВОДИТ) называется схемой. Рассмотрим простую модель данных «плотский файл», в которой категории называются типами сущностей, а свойства категории — атрибутами. Пусть эта модель применяется для представления данных о служащих. Тогда в схеме будет специфицирован тип сущности СЛУЖАЩИЙ (Имя, Возраст, Адрес), где СЛУЖАЩИЙ — имя типа сущности,""Имя, Возраст, Адрес — имена атрибутов, а конкретные данные будут иметь форму: (Джордж Смит, 29, Сент-Джордж,190).

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

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

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

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

Разнообразие моделей данных соответствует разнообразию об­ластей применения и контингента пользователей. Тем не менее су­ществует ряд общих понятий и определений, относящихся ко всем моделям [140, 300]. С этих понятий мы и начнем изложение.

Рассмотрим модель реального мира и свойства, которые она отображает. Эти свойства в основном делятся на два класса: стати­ческие и динамические. К статическим относятся свойства, (отно­сительно) инвариантные во времени. Они всегда справедливы и неизменны. Динамические свойства соответствуют эволюционной природе мира. Любая модель данных должна некоторым образом представлять эти два класса свойств **. Исходя из этого определим модель данных М как множество правил порождения G и множе­ств операций О.

Множество правил порождения выражает статические свойства модели данных и соотносится с языком описания данных (ЯОД). Средствами ЯОД определяются допустимые структуры дан­ных — объектов и связей, а также допустимые реализации данных. Определение структур данных реализуется посредством спецификации. соответствующих категорий** , которые должны удовлетво­рять правилам порождения. Например, спецификация типа сущ­ности СЛУЖАЩИЙ производится в терминах атрибутов и типов значений каждого атрибута. Селекция допустимых реализаций объектов или связей задается путем указания для каждой катего­рии ограничений целостности, и им должна удовлетворять каждая реализация. Так, можно указать, что каждый номер по регистру социального страхования может быть присвоен не более чем од-

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

** Определение классов свойств здесь не совсем удачно. В соответствии с ним устойчивые закономерности динамики данных пришлось бы отнести к статическим свойствам. — Примеч. пер.

*** Термин «категория» здесь употребляется авторами как синоним терми­на «тип». — Примеч. пер.

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

В некоторых моделях данных правила порождения G разделяет на две части: правила порождения структур Gs и правила порождения ограничений Gc. Соответственно этому схема S будет состоять из двух частей: спецификации структуры SS и спецификации явных ограничений SС. Примером явного ограничения целостности служит указание на то, что атрибут Номер служащего типа сущности СЛУЖАЩИЙ есть идентификатор (ключ), означает, что в каждый момент времени множество реализаций типа сущности СЛУЖАЩИЙ не может содержать две или двух реализаций с одинаковым значением атрибута Номер служащего.

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

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

Правила порождения G применяются к спецификациям статических свойств данных и (частично) отражают статические свойства реального мира. Его динамические свойства выражаются множеством операций О, которые соотносятся с языком манипулирования данными (ЯМД). Множество операций определяет допустимые действия над реализацией базы данных Di для преобразования ее в другую реализациюDi.

Не все операции приводят к изменению в реализации базы иных. Тем не менее динамику базы данных можно связать и с такими операциями, введя некоторые дополнительные объекты — индикаторы текущих и некоторые другие управляющие элементы. объекты в строгом смысле не относятся к объектам базы данных, но они связаны с реализацией БД и могут изменяться в результате выполнения операций. Совместно с конкретной реализацией базы данных D они определяют состояние базы данных DBS *. Динамические аспекты данных отражаются изменением стояния базы данных. Рассмотрим, например, последовательную cборку из плоского файла с использованием команды «дать следующую (запись)». Текущее состояние базы данных определяется совокупностью значений данных, хранящихся в файле (реализация D), а также значением индикатора текущей. Выполнение опе-

* Авторы дают расширенную трактовку понятия «состояние БД». Обычно ^понятие относится только к D. Примеч. пер.

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

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

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

В последующих главах структурная часть Gs и ограничения Gc обсуждаются отдельно, хотя во многих моделях данных столь четкого разделения не проводится. Кроме того, мы рассмотрим типы операций в применении к различным типам данных.Управление БД осуществляется системой управления базами данных (СУБД), которая поддерживает средства определения схем БД и обеспечивает выполнение операций над данными базы данных. Естественно, СУБД поддерживает модель данных. Иногда СУБД вообще создавались под определенную модель данных (на­пример, System R [11]). В других СУБД (например, IMS [255]) модель данных постепенно эволюционировала, впитывая различ­ные идеи, многие из которых получили независимую реализацию в отдельных версиях.

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

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

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

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

УПРАЖНЕНИЯ

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

1.2. Некоторые эпические поэмы, например поэмы Гомера, являются сильно типизированными в смысле употребляемых слов и слогов. Приведите примеры структурных ограничений в поэзии в отличие от прозы. Воздействуют ли эти ограничения на выразительность поэзии? Затрудняют ли они восприятие поэм? Сложно ли поэтам придерживаться ограничений?;

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

1.4. Внедрение ЭВМ в организации предполагает шести—восьмилетний период исследований и подготовки. Подчиняется ли этому правилу внедрение технологии баз данных? Приносят ли пользу «перевороты», продолжающиеся столь долго ? Неизбежна ли такая длительность?

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

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

  3. Каким образом СУБД помогает или мешает ревизии базы данных? Охарактеризуйте средства ревизии базы данных.

1.8. Внедрение пакетов программ (например, новых компиляторов и операционных систем) требует определенных затрат, связанных с конвертированием и, может быть, перепрограммированием. Тем не менее это не влияет на функционирование организации в целом. В чем здесь отличие от ситуации, которая " кет возникнуть при внедрении СУБД?

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

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





Часть I ОСНОВНЫЕ ПОНЯТИЯ
Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации