Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИСТЕМОТЕХНИЧЕСКОЕ ПРОЕКТИРОВАНИЕ.doc
Скачиваний:
73
Добавлен:
01.05.2014
Размер:
1.47 Mб
Скачать

Агрегирование объектов в предметные базы данных.

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

Ob funct Ob = Ob own Atr Atr type ObOb own AtrAtr type Ob)t

- наличие атрибутов общих типов.

Ob external Ob = ((Ob own Atr)) Atr type Ob

 (Ob primary_key Atr) Atr type Ob)t

Карта объектов- это графическое изображение значимых функциональных

взаимосвязей объектов.

Структурированная карта объектов- это карта объектов с выделением групп и супергрупп объектов и структурированным расположением объектов в них.

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

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

Объект глубины 2- это объект, у которого есть связь 1:1 хотя бы с одним объектом глубины 1.

Объект глубины 3- это объект, у которого есть хотя бы одна связь 1:1 с объектом глубины 2, но нет таких связей с объектами глубины 1.

Объект глубины Nопределяется как объект, имеющий связь 1:1 с объектами глубины N - 1, но не имеющий связей 1:1 с объектами глубиной меньше N - 1.

Ранжирование связей

Предлагается использовать 5 категорий для оценки степени функциональной взаимосвязи:

  • очень слабая;

  • довольно слабая;

  • средняя;

  • довольно сильная;

  • сильная.

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

Объекты, связанные цепочками связей 1:1 с категориями 4 или 5 объединяются в группы объектов. Каждая группа именуется.

Группы объектов, связанные между собой связями категории 4 или 5 объединяются в супергруппы объектов (предметные базы).

Концептуальные модели предметной области на основе логики предикатов

Предикат можно представить в виде следующего выражения:

<предикат>::=<имя_предиката>[(<список объектов>)], где

<список объектов > ::= <объект>[,<объект>],

<объект> ::= <переменная>| <терм>|<предикат>,

<продукция> ::= <предикат> <if> < логическое выражение>

Идентификатор переменной начинается с прописной буквы.

Идентивикатор терма начинается со строчной буквы.

Фактпредставляется как предикат, где все объекты - термы.

Пример спецификации модели предметной области с использованием логики предикатов

domains

предмет =

предмет_быта;

книга(автор1, автор2, автор3, наименование_предмета, издательство, издание);

автомобиль(гос_номер, марка, наименование предмета, год_выпуска)

предмет_быта =

мебель(наименование_предмета, материал, количество_экз);

посуда(наименование_предмета, материал, изготовитель, количество_посуды)

автор1, автор2, автор3 = человек(фио)

марка = марка_авто(обозначение_марки)

год_издания, год_выпуска = год

материал = материал_предмета(наименование_материала)

фио, наименование_предмета, год, наименование_материала, изготовитель,

издание = symbol

количество_посуды, количество_экз = integer

predicates

владелец(человек(фио), предмет)

clauses

владелец(человек(“Петров А.А.”), мебель(“стол кухонный”,

материал_предмета(“дуб”), 2).

владелец(человек(“Петров А.А.”), мебель(“шкаф книжный”,

материал_предмета(“ДСП”), 4).

владелец(человек(“Петров А.А.”),

книга(человек(“Ц. Ин”,

человек(“Д. Соломон”),

человек(“”),

“Использование ТУРБО-ПРОЛОГА”,

“Издательство МИР”,

“1993”).

Запрос на поиск необходимых данных формулируется как соответствующая цель:

владелец(Кто_владелец, книга(человек(“Ц. Ин”), _, _, Наименование_книги,

Из_во, Год, Кол_во).

/* Поиск всех владельцев книг и их наименований, в которых первым указан автором Ц.Ин*/

владелец(человек(“Петров А.А.”), предмет).

/* Поиск всех предметов, владельцем которых является Петров А.А. */

владелец(человек(“Петров А.А.”) , мебель).

/* Поиск всей мебели, владельцем которой является Петров А.А. */

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

таблица ПРЕДМЕТ(Код_предмета : Код_предмета,

Наименоавние_предмета : строка,

Вариант_предмета: имя_объекта);

таблица Предмет_быта ( Код_предмета: Код_предмета,

Материал : Код_материала,

Вариант_предмета_быта : имя_объекта,

Количество_предметов : integer);

таблица Посуда( Код_предмета: Код_предмета,

Изготовитель : Код_организации);

таблица Автомобиль ( Код_предмета: Код_предмета,

Гос_номер: строка,

Марка : строка,

Год_выпуска : Год);

таблица Книги( Код_предмета: Код_предмета,

Издательство: Код_организации,

Издание: Год);

таблица Авторы( Код_предмета: Код_предмета,

Автор: ФИО);

таблица Организации(Код_организации: Код_организации,

Наименование_организации: строка);

таблица Владелец ( Ид_владельца: ФИО,

Код_предмета: Код_предмета);

select P1.Ид_владельца, Р2.Наименование_предмета, Р2.Вариант_предмета,

Р3.Вариант_предмета_быта, Р4.Наименование_организации, Р5.Издание

from Владелец Р1, Предмет Р2, Предмет_быта Р3, Организация Р4, Книги Р5

where Р1.Код_предмета шт (

select Р6.Код_предмета

from Авторы Р6

where Р6.Автор = “Ц. Ин”)

and Р2.Код_предмета = Р1.Код_предмета

and Р3.Код_предмета = Р1.Код_предмета

and Р5.Код_предмета = Р1.Код_предмета

and Р5.Издание = Р4.Код_организации