Теория и практика построения баз данных (1088289), страница 27
Текст из файла (страница 27)
Этн объектные атрибуты называются иногда парны.ми атрибутами (ра1гес) аиг Ьвтез), так как онн всегда появляются по два. Почему объектные атрибуты должны быть парными? Ответ заключается в том способе, каким человеческие сушества представляют себе связи между объектами. 124 Глава 4. Семантическая объектная модель Семантические объекты 125 Если объект А имеет связь с обьектом Б, то объект Б будет иметь связь с объек- том А. По крайней мере, Б связан с А как «вещь, которая связана с Б». Если этот аргумент кажется неочевидным, попробуйте вообразить однонаправленную связь между объектами. Это сделать невозможно. Объектные идентификаторы Объектный идентификатор (оь)ест ьдепььтьег) — это один или несколько объектных атрибутов, с помощью которых пользователи идентифицируют экземпляры объектов. Такие идентификаторы представляют собой потенциальные имена семантического объекта. Для объекта КЛИЕНТ возможными идентификаторами являются НомерКлиента и ИмяКлиента.
Каждый из этих идентификаторов является атрибутом, рассматриваемым пользователями в качестве допустимого имени для экземпляров объектного класса КЛИЕНТ. Сравните зти идентификаторы с атрибутами ДатаПервогоЗаказа, КурсАкций или ЧкслоСотрудников. Такие атрибуты не являются идентификаторами, потому что пользователи не думают о них как об именах экземпляров объектов класса КЛИЕНТ. Групповой идентификатор (ягопр сепг!Вег) — это идентификатор, содержащий более одного атрибута.
Примерами могут служить идентификаторы (Имя, Фамилия), (Имя, НомерТелефона) и (Штат, НомерЛицензии). Объектные идентификаторы могут быть уникальными илп неуникальпыми, в зависимости от того, как пользователи представляют себе свои данные. Например, НомерСчета является уникальным идентификатором обьекта ЗАКАЗ, но ИмяСтудента не является уникальным идеьпификатором объекта ПУДЕНТ.
Может быть два студента по имени, к примеру, Мэри Смит. В таком случае пользователи будут идентифицировать с помощью атрибута ИмяСтудента группу из одно~о или более студентов и затем, если необходимо, использовать значения других атрибутов для указания конкретного члена этого множества.
В семантических объектных диаграммах объектные идентификаторы обозначаются с помощью букв ГР перел атрибутом. Если идентификатор является уникальным, эти буквы подчеркнуты. На рис. 4.2, б, например, атрибут НазваниеКафедры является уникальным идентификатором объекта КАФЕДРА. Обычно, если атрибут должен использоваться в качестве идентификатора, он обязан иметь значение. Кроме того, как правило, для данного объекта имеется не более одного идентифицирующего атрибута. Поэтому в большинстве случаев кардинальность атрибута-идентификатора равна 1.1, и это значение мы используем по умолчанию.
Есть, однако, относительно небольшое число случаев, когда кардинальиость идентификатора отличается от 1.1. Рассмотрим, например, атрибут Псевдоним семантического объекта ЧЕЛОВЕК. Человек не обязан ильеть псевдоним, однако может иметь и несколько. Следовательно, кардинальность этого атрибута равна О.М. Указание нижних индексов всех атрибутов загромождает семантическую объектную диаграмму. Для упрощения мы предположим, что кардинальность простых идентифицирующих атрибутов равна 1.1, а прочих идентифицирующих атрибутов — О.1. Если кардинальность простого атрибута имеет другое значение, мы укажем ее на диаграмме. В противном случае нижние индексы простых атри- бутов будут опускаться, Домены атрибутов Домен (ь(оьпа!и) атрибута — зто описание множества его значений.
Характерььстььки домена зависят от типа атрибута. Домен простого атрибута состоит из физического и семантического описания. Физическое оььисаььие (рЬугйса! г(езспрььоп) показывает тип данных (например, число или строка), длину данных и другие ограничения (например, требование, чтобы первый символ был буквой или чтобы значение не превышало 9999.99). Семантическое описание (зешапйс дезспргьоп) указывает функцию, или назначение данного атрибута; оно отличает этот атрибут от других атрибутов с тем же физическим описанием. Например, домен атрибута НазваниеКафедры может быль опрелелен как «набор строк длиной до 7 символов, представляющих наименования кафедр университета Нья!ь1ьпе». Фраза «набор строк длиной до 7 символов» представляет собой физическое описание домена, а «...представляющих имена кафедр университета Н!В1ь1!пе» вЂ” семантическое описание.
Семаьстььческое описание отличает строки пз семи символов, представляюьцие названия кафедр, от строк такой же длины, которые представляют, скажем, названия учебных дисциплин, корпусов или какие-то еще атрибуты. В некоторых случаях физическое описание домена просто~о атрибута представляет собой нумерованньш список — набор отдельных значений атрибутов. Доменом атрибута ЦветДетали может быль, например, нумерованный список («Синийьп «Желтый», «Красный»!. Домен группового атрибута также имеет физическое и семантическое описание. Физическое описание — зто список всех атрибутов в группе в порядке их следования.
Семантическое описание — зто описание функции, или назначения, данной группы. Так, физическим описанием домена ИестныйАдрес (см. рис. 4.2) является список (Корпус, НомерОфиса); семантическим описанием является фраза «местоположение офиса в университете Н!д1ь!ьпе». Домен объектного атрибута — это набор экземпляров объектов данного типа. На рис. 4.2, например, доменом объектного атрибута ПРЕПОДАВАТЕЛЬ является совокупность всех экземпляров объектов класса ПРЕПОДАВАТЕЛЬ, представленных в базе данных.
Доменом объекта КОЛЛЕДЖ являешься совокупность всех объектов класса КОЛЛЕДЖ, представленных в базе данных. В определенном смысле, домен атрибута — это динамически нумерованный список, который содержит все экземпляры объектов данного типа. Представления семантических объектов 1(ользователи имеют доступ к значениям объектных атрибутов через приложения базы данных, которые предоставляют формы для ввода данных, отчеты и запросы.
В большинстве случаев такие формы, отчеты и запросы не требуют доступа ко всем атрибутам объекта. Например, на рис. 4.4. показаны представления 126 Глава 4. Семантическая объектная модель Создание семантических объектных моделей данных 127 Представление СписокС<удентоз Нззззниекзфедры КАФЕДРА ю НезеениеКзфедры <1 ' СТУДЕНТ <ч М ес> ныйддрес Корпус,, НсмерОфисе<л ол НомерТелефоне, н НомерФексе оч Предстезпение Персонал Незеениекефадрь, .,ПВтЕПСДАВАТЕПЬ <н ксй)ТВДЖ Рис. 4.4.
Деа представления семантического объекте КАФЕДРА — СписокС<удентое и Персонал объекта КАФЕДРА для двух различных приложений. Некоторые атрибуты объекта КАФЕДРА (например, НазеаниеКэфедры) являются видимыми в обоих представлениях. Другие атрибуты видимы только в одном из представлений. Например, атрибут СТУДЕНТ является видимым только в представлении СпксокСтудентое, а атрибут ПРЕПОДАВАТЕЛЬ виден только в представлении Персонал. Часть объекта, видимая для конкретного приложения, называется представлением семантического обьвюла (зешапг(с оЬ)есг н(ен>), нлн просто лре<)ставлением (н(енн). Представление состоит из имен» объекта и списка всех атрибутов, видимых в этом представлении.
Прелставления используются двояким образом. Когда вы разрабатываете базу данных, вы можете использовать их для разработки модели данных. Взгляните снова на рис. 4.1. Как можно видеть, при разработке модели данных разработчики базы данных и пр>глажений двигаются в обратном направлении. То есть они лачина<от с форм, отчетов и запросов, которые пользователи объявляют необходимыми, и двигаются назад, к структуре базы данных. Для этого команда выбирает требуемую форму, отчет нли запрос и опрелеляет, какое представление должно существовать, чтобы можно было создать таку>о форму, отчет или запрос.
Затем команда переходит к следующей форме, отчету или запросу и делает то же самое. Далее получившиеся два представления объединяются. Описанный процесс повторяется до тех пор, пока структура базы данных пе будет полностью сформирована. Второй аспект использования представлений возникает, когда структура базы данных уже создана. В этом случае представления создаются для поддержки новых форм, отчетов и запросов на основе существующей структуры базы данных.
Примеры этого второго подхода приведены в части 1Ъ', где обсуждаются ВО(. Зегнег и Огас1е. Создание семантических объектных моделей данных В этом разделе иллюстрируется процесс разработки семантических объектов, в ходе которого разработчики анализируют интерфейс приложения (формы, отчеты, запросы) и двигаются в обратном направлении, получая из этой информации структуру объектов. Например, чтобы смоделировать структуру объекта КАФЕДРА, мы сначала собираем все отчеты, формы и запросы, связанные с кафедрой. Исходя из них, мы определяем объект КАФЕДРА, который позволяет конструировать эти отчеты, формы и запросы Однако для абсолютно нового приложения в распоряжении разработчиков нет компьютерных отчетов, форм и запросов, которые можно было бы изучать.