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

Все объекты активны.

Пользовательское управление группами окон.

Типы окон, ориентированные на задачу.

Мгновенная фиксация изменений.

Динамические иконки, отражающие состояние объекта.

Прямое манипулирование.

Объединение объектов.

Композиция объектов и контейнеры.

Множественный согласованный просмотр объектов.

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

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

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

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

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

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

Наиболее общими типами отношений являются наборы (Collection), объединения (Constraints), и композиции (Composites).

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

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

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

Еще один распространенный тип отношений между объектами – контейнер.

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

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

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

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

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

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

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

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

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

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

Между объектами предметной области могут существовать связи, имеющие различный содержательный смысл. Эти связи могут быть обязательными и факультативными (необязательными). Обязательная связь ЗАМЕЩАЕТ существует, напр., между 2-мя типами объектов СОТРУДНИК и ДОЛЖНОСТЬ в предметной области «Отдел кадров организации». Каждый сотрудник зачисляется на какую-либо должность, и не может быть сотрудника, не замещающего какой- то должности. В то же время связь ЗАМЕЩАЕТСЯ между типами объектов ДОЛЖНОСТЬ и СОТРУДНИК является факультативной, т.к. могут существовать вакантные должности.

Связи между типами объектов могут быть любой размерности (арности). Наиболее часто используются бинарные связи, устанавливающие различные соответствия между объектами 2-х типов – «один к одному» (1:1), «один ко многим» (1: n), многие ко многим» (m: n).

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

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

Кроме того, известно о существовании следующих связей:
ФАКУЛЬТЕТ ®®СПЕЦИАЛЬНОСТИ;
ФАКУЛЬТЕТ ®® Id*;
СПЕЦИАЛЬНОСТЬ ®® Id*;
Id* ®® ПРЕДМЕТ;
Id* ® ФАМИЛИЯ АБИТУРИЕНТА, ИМЯ, ОТЧЕСТВО, ГОД РОЖДЕНИЯ, …;
Id* ® ПРЕДМЕТ, ОЦЕНКА;
ФАКУЛЬТЕТ ® ДЕКАН, НОМЕР ТЕЛЕФОНА;
ШИФР СПЕЦИАЛЬНОСТИ ® НОМЕР, НАЗВАНИЕ СПЕЦИАЛЬНОСТИ.

Здесь ®® - связь типа 1: n; ® - связь типа 1:1.

Теперь рассмотрим информационную модель той части предметной области, которая связана с организацией приема в вуз (рис. 1), предварительно выделив объекты "АБИТУРИЕНТ", "ФАКУЛЬТЕТ", "СПЕЦИАЛЬНОСТЬ" и "ПРЕДМЕТ" и формализовав связи.


Рис.1. Информационная модель согласно объектному анализу

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

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

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

1. Основные понятия и термины к теме
“ИНФОРМАЦИОННАЯ МОДЕЛЬ – ОСНОВА ПОСТРОЕНИЯ
СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ.

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

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

@ Ядром информационной системы являются хранимые в ней данные . На любом предприятии данные различных отделов, как правило, пересекаются, то есть используются в нескольких подразделениях или вообще являются общими. Например, для целей управления часто нужна информация по всему предприятию. Заказ комплектующих невозможен без наличия информации о запасах. Хранящиеся в информационной системе данные должны быть легко доступны в том виде, в каком они нужны для конкретной производственной деятельности предприятия. При этом не имеет существенного значения способ хранения данных. Сегодня на предприятии мы можем встретить систему обработки данных традиционного типа, в которой служащий вручную помещает данные в скоросшиватель, и рядом с ней - современную систему с применением самой быстродействующей ЭВМ, сложнейшего оборудования и программного обеспечения. Несмотря на поразительную несхожесть, обе эти системы обязаны предоставлять достоверную информацию в определенное время, определенному лицу, в определенном месте и с ограниченными затратами.

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

@ Предметной областью называется часть реальной системы, представляющая интерес для данного исследования.

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

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

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

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

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

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

Таким образом, для объектов одного класса набор свойств будет одинаков, хотя значения этих свойств дл я каждого объекта, конечно, могут быть разными. Например, класс объектов МОДЕЛЬ свойств дл я каждого объекта, конечно, могут быть разными. Например, класс объектов МОДЕЛЬ АВТОМОБИЛЯ будет иметь одинаковый набор свойств, описывающих характеристики автомобилей, и каждая модель будет иметь различные значения этих характеристик.

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

@ Атрибут - это информационное отображение свойств объекта. Каждый объект характеризуется рядом основных атрибутов.

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

Рис. 1.1. Три области представления данных.

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

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

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

Элемент данных “НАИМЕНОВАНИЕ МОДЕЛИ” может принимать такие значения, как “Voyager"96 3.8 Grand ”, “Continental 4.6” или “Crown Victoria 4.6” . В зависимости от того, как элементы данных описывают объект, их значения могут быть количественными, качественными или описательными. Информацию о некоторой предметной области можно представить с помощью нескольких объектов, каждый из которых описывается несколькими элементами данных. Принимаемые элементами данных значения называются данными .

@ Единичный набор принимаемых элементами данных значений называется экземпляром объекта . Объекты связываются между собой определенным образом.

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

Некоторые элементы данных обладают важным для построения информационной модели свойством. Если известно значение, которое принимает такой элемент данных объекта, мы можем идентифицировать значения, которые принимают другие элементы данных этого же объекта. Например, зная уникальный номер модели автомобиля - 7, мы можем определить, что это “Voyager" 96” и что рабочий объем двигателя у данной модели “ 3778” .

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

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

@ Первичный ключ - это атрибут (или группа атрибутов), которые единственным образом идентифицируют каждую строку в таблице.

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

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

Например, для объекта “СЛУЖАЩИЙ”, который имеет атрибуты “ИДЕНТИФИКАТОР СЛУЖАЩЕГО”, “ФАМИЛИЯ”, “ИМЯ” и “ОТЧЕСТВО”, группа атрибутов “ФАМИЛИЯ”, “ИМЯ”, “ОТЧЕСТВО” может являться альтернативным ключом по отношению к атрибуту “ИДЕНТИФИКАТОР СЛУЖАЩЕГО” (в предположении, что на предприятии не работают полные тезки).

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

Например, атрибут "НОМЕР МОДЕЛИ" объекта АВТОМОБИЛЬ может быть внешним ключом по отношению к объекту "MODEL" (Модель автомобиля).

@ Запись данных - это совокупность значений связанных элементов данных.

На рис. 1.2. такими элементами данных являются уникальный ключ и наименование модели, рабочий объем, количество цилиндров и мощность двигателя. Например, одна из записей –“7 Voyager’96 3.8 Grand 3778 6 164,0” . Эта строка представляет собой значения, которые принимают элементы данных объекта МОДЕЛЬ АВТОМОБИЛЯ (MODEL). Записи хранятся на некотором носителе, в качестве которого может выступать человеческий мозг, лист бумаги, память ЭВМ, внешнее запоминающее устройство и т. д.

MODEL

УНИКАЛЬНЫЙ КЛЮЧ МОДЕЛИ

Наименование модели

Рабочий объем (куб. см.)

Мощность (л.сил)

GMC Jimmy 4.3

7

Voyager’96 3.8 Grand

3778

164,0

Stealth 3.0

348 Spider 3.4

Рис.1.2. Записи данных объекта MODEL.

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

@ Тип данных характеризует вид хранящихся данных.

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

@ Связь - это функциональная зависимость между сущностями.

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

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

Тип связи (идентифицирующая, не идентифицирующая)

Родительская сущность;

Дочерняя (зависимая) сущность;

Мощность связи (cordiality );

Допустимость пустых (null ) значений.

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

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

Мощность связи представляет собой отношение количества экземпляров родительской сущности к соответствующему количеству экземпляров дочерней сущности. Для любой связи, кроме неспецифической, эта связь записывается как 1:n .

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

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

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

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

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

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

@ Нормализация отношений - это процесс построения оптимальной структуры таблиц и связей в реляционной БД.

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

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

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

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

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

Система автоматизированной обработки данных основывается на использовании определенной модели данных или информационной модели. Модель данных отражает взаимосвязи между объектами.

2. Последовательность создания информационной модели

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

@ Концептуальная модель представляет объекты и их взаимосвязи без указания способов их физического хранения.

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

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

@ Логическая модель отражает логические связи между элементами данных вне зависимости от их содержания и среде хранения.

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

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

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

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

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

3. Взаимосвязи в модели

Взаимосвязь выражает отображение или связь между двумя множествами данных. Различают взаимосвязи типа «один к одному », «один ко многим » и «многие ко многим ». В рассматриваемой задаче по автоматизации управления работой дилерапопродаже легковых автомобилей, если клиент производит заказ на покупку автомобиля впервые, осуществляется первичная регистрация его данных и сведений о сделанном заказе. Если же клиент производит заказ повторно, осуществляется регистрация только данного заказа. Вне зависимости от того, сколько раз данный клиент производил заказы, он имеет уникальный иденти­фикационный номер (уникальный ключ клиента). Информация о каждом клиенте включает наименование клиента, адрес, телефон, факс, фамилию, имя, отчество, признак юридического лица и примечание. Таким образом, атрибутами объекта КЛИЕНТ являются «УНИКАЛЬНЫЙ КЛЮЧ КЛИЕНТА», «НАИМЕНОВАНИЕ КЛИЕНТА», «АДРЕС КЛИЕНТА» и т. д. Следующий представляющий для нас интерес объект - МОДЕЛЬ АВТОМОБИЛЯ. Этот объект имеет атрибуты «УНИКАЛЬНЫЙ КЛЮЧ МОДЕЛИ», «НАИМЕНОВАНИЕ МОДЕЛИ» и т.д. Третий рассматриваемый объект - ЗАКАЗ. Его атрибутами являются «НОМЕР ЗАКАЗА», «КЛЮЧ КЛИЕНТА» и «КЛЮЧ МОДЕЛИ». И четвертый рассматриваемый объект - ПРОДАВЕЦ. Его атрибутами являются «УНИКАЛЬНЫЙ КЛЮЧ ПРОДАВЦА», «ИМЯ ПРОДАВЦА», «ФАМИЛИЯ» и «ОТЧЕСТВО».

Взаимосвязь «один к одному» (между двумя типами объектов)

Мысленно вернемся к временам планово-распределительной экономики. Допустим, в определенный момент времени один клиент может сделать только один заказ. В этом случае между объектами КЛИЕНТ и ЗАКАЗ устанавливается взаимосвязь «один к одному », обозначаемая одинарными стрелками, как это показано на рис. 2.2,а.

Рис. 2.2. Взаимосвязи между двумя объектами: а) «один к одному»; б) «один ко многим»; в) «многие ко многим»

Рис. 2.3. Взаимосвязь между данными при отношении «один к одному».

Взаимосвязь «один ко многим» (между двумя типами объектов).

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

В этом случае одной записи данных первого объекта (его часто называют родительским или основным) будет соответствовать несколько записей второго объекта (дочернего или подчиненного). Взаимосвязь «один ко многим» очень распространена при разработке реляционных баз данных. В качестве родительского объекта часто выступает справочник, а в дочернем хранятся уникальные ключи для доступа к записям справочника. В нашем примере в качестве такого справочника можно представить объект КЛИЕНТ, в котором хранятся сведения о всех клиентах. При обращении к записи для определенного клиента нам доступен список всех покупок, которые он сделал и сведения о которых хранятся в объекте МОДЕЛЬ АВТОМОБИЛЯ, как это показано на рис. 2.4. В случае, если в дочернем объекте будут какие-то записи, для которых нет соответствующих записей в объекте КЛИЕНТ, то мы их не увидим. В этом случае говорят, что объект содержит потерянные (одинокие) записи. Это не допустимо, и в дальнейшем вы узнаете, как избегать подобных ситуаций.

Рис. 2.4. Взаимосвязь между данными при отношении «один ко многими».

Если мы будем просматривать записи объекта МОДЕЛЬ АВТОМОБИЛЯ, то в объекте КЛИЕНТ мы сможем получить данные о клиенте, купившем данный автомобиль (см. рис. 2.4). Обратите внимание, что для потерянных записей сведений о клиенте мы не получим.

Взаимосвязь «многие ко многими (между двумя типами объектов).

В рассматриваемом примере каждый продавец может обслуживать нескольких клиентов. С другой стороны, приобретая автомобили в различное время, каждый клиент вполне может быть обслужен различными продавцами. Между объектами КЛИЕНТ и ПРОДАВЕЦ существует взаимосвязь «многие ко многим». Такая взаимосвязь обозначается двойными стрелками, как это показано на рис. 2.2, в.

На рис. 2.5 приведена схема, по которой в этом случае будут взаимосвязаны данные. При просмотре данных в объекте КЛИЕНТ мы сможем узнать, какие продавцы обслуживали определенного клиента. Однако в объекте ПРОДАВЕЦ в этом случае нам придется завести несколько записей для каждого продавца. Каждая строчка будет соответствовать каждому обслуживанию продавцом кли­ента. При таком подходе мы столкнемся с серьезными проблемами. Например, не сможем ввести в объект ПРОДАВЕЦ уникальный ключ для каждого продав­ца, так как неизбежно один продавец будет обслуживать нескольких клиентов, и в этом случае у нас появится несколько записей для одного и того же продавца.

Рис. 2.5. Взаимосвязь между данными при отношении «многие ко многими

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

Рис. 2.6. Отображение взаимосвязи между данными при отношении «многие ко многим» с помощью промежуточного объекта

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

Взаимосвязь «один к одному» (между двумя атрибутами)

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

Взаимосвязь «один ко многим» (между двумя атрибутами)

Имя клиента и его номер существуют совместно. Клиентов с одинаковыми именами может быть много, но все они имеют различные номера. Каждому клиенту присваивается уникальный номер. Это означает, что данному номеру клиента соответствует только одно имя. Взаимосвязь «один ко многим» обозначается одинарной стрелкой в направлении к «одному» и двойной стрелкой в направлении ко «многим» (рис.2.7, б ).

Взаимосвязь «многие ко многим» (между двумя атрибутами)

Несколько клиентов с одинаковыми именами могли быть обслужены несколькими продавцами. Несколько продавцов с одинаковыми именами могли получить заказы от нескольких клиентов. Между атрибутами «имя клиента» и «имя продавца» существует взаимосвязь «многие ко многим». Мы обозначаем эту взаимосвязь двойными стрелками (рис. 2.7,в ).

а)

б)

в)

Рис. 2.7. Взаимосвязи между двумя атрибутами:
а) взаимосвязь «один к одному»; б) взаимосвязь «один ко многим
» в) взаимосвязь «многие ко многим »

Типы моделей данных

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

Иерархическая модель данных строится по принципу иерархии типов объектов, то есть один тип объекта является главным, а остальные, находящиеся на низших уровнях иерархии, - подчиненными (рис. 2.8). Между главным и подчиненными объектами устанавливается взаимосвязь «один ко многим». Иными словами, для данного главного типа объекта существует несколько подчиненных типов объекта. В то же время для каждого экземпляра главного объекта может быть несколько экземпляров подчиненных типов объектов. Таким образом, взаимосвязи между объектами напоминают взаимосвязи в генеалогическом дереве за единственным исключением: для каждого порожденного (подчиненног o ) типа объекта может быть только один исходный (главный) тип объекта. На рис. 2.8 узлы и ветви образуют иерархическую древовидную структуру. Узел является совокупностью атрибутов, описывающих объект. Наивысший в иерархии узел называется корневым (это главный тип объекта). Корневой узел находится на первом уровне. Зависимые узлы (подчиненные типы объектов) находятся на втором, третьем и т. д. уровнях.

Рис. 2.8. Схема иерархической модели данных.

В сетевой модели данных понятия главного и подчиненных объектов несколько расширены. Любой объект может быть и главным и подчиненным (в сетевой модели главный объект обозначается термином “владелец набора”, а подчиненный – термином “член набора”). Один и тот же объект может одновременно выступать и в роли владельца, и в роли члена набора. Это означает, что каждый объект может участвовать в любом числе взаимосвязей. Схема сетевой модели приведена на рис.2.9.

Рис.2.9. Схема сетевой модели данных.

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

Рис. 2.10. Схема реляционной модели данных.

Структурные элементы БД

В описании объекта данных нужно выделить 2 составляющие: структуру и экземпляр.

Структура – перечень атрибутов объекта и характеристики атрибутов.

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

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

При хранении в ЭВМ базе данных соответствует группа файлов и папок, набору объектов соответствует файл. Каждому объекту соответствует запись в файле. Каждому атрибуту соответствует поле записи.

Для описания атрибута используются следующие характеристики:

1. имя, например, nContract, cStudent;

2. тип, например, символьный, числовой;

3. длина, например, 15 байт;

4. точность, для числовых данных.

5. описание, комментарий;

6. формат изображения на экране и бумаге;

7. подсказка;

8. формат ввода;

9. начальное значение;

10. диапазон значений.

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

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

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

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

По аксиоме отличия у каждого набора существует первичный ключ. В крайнем случае в его выражение включает все атрибуты объекта в наборе.

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

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

Пусть имеется n наборов объектов Е 1 , Е 2, … , Е n .

Связью называется множество последовательностей объектов (е i 1 , е i 2, …, е i n), где е i 1 Î Е 1, е i 2 Î Е 2, …, е i n Î Е n.

С помощью связей наборы объектов объединяются в единую информационную структуру.

Между двумя наборами объектов (n=2) различают три типа связей:

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



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

3. много ко многим (М:N).

«один к одному», если для каждого объекта из первого набора можно указать 0 или 1 объект из второго набора и для каждого объекта из второго набора можно указать 0 или 1 объект из первого набора.

Примерами связей типа 1:1 служат связи между:

· студентами и зачетными книжками,

· между государствами и валютами,

· между офицерами и табельным оружием,

· между гражданами и заграничными паспортами. У каждого студента или нет зачетной книжки, или есть только одна.

Для каждой зачетки или студент не указан, или имеется только один.

Связь между двумя наборами Е 1 и Е 2 относится к типу «один ко многим» 0 или более 0 или 1 объект из первого набора.

Примерами связей 1:М служат связи между

· банками и вкладами,

· вкладами и взносами,

· между группами и студентами,

· между отделами и сотрудниками,

· между ведомостями и строками ведомостей,

· между клиентами и заявками.

В каждом банке или нет вкладов (банк еще не открылся) или может быть много вкладов. Для каждого вклада или банк не указан, или есть только один.

Связь между двумя наборами Е 1 и Е 2 относится к типу «многие ко многим» , если для каждого объекта из первого набора можно указать 0 или более объектов из второго набора и для каждого объекта из второго набора можно указать 0 или более объектов из первого набора.

Примерами связей M:N служат связи между

· продуктами и странами,

· между студентами и дисциплинами,

· между сотрудниками и проектами,

· между заявками и товарами,

· между магазинами и покупателями.

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

Графически связи изображаются стрелками (рис.4.5).

В реальных СУБД реализуется только один тип связи – один ко многим.

Связь 1:1 получается из связи 1:М путем ее ограничения.

Для реализации связи М:N вводится новый набор объектов и используются две связи 1:М.

Например, связь между странами и продуктами типа M:N получается с помощью набора данных «поставки» (рис.4.6).

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

Связи по признаку множественности могут быть четырех типов – «один-к-одному», «один-ко-многим», «много-ко-многим», «много-к-одному».

Связь один-к-одному (1:1) существует, когда один экземпляр одного объекта связан с единственным экземпляром другого. Связь уникальна слева направо, так и справа налево.

руководит

Предприятие Директор

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

Состоит из

Город Район

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

Студент (фамилия, № зачетной книжки. Факультет) Предмет (название, кол-во часов)

Отношение «много-к-одному» (М:1) схоже с отношение «один-ко-многим». Связь является уникальной лишь слева направо.

Фамилия студента (М:1) Номер группы

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

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

Рис. 48 Пример оформления концептуальной модели

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



 

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