Разработка языка запросов в бинарной модели знаний и транслятора этого языка в язык SQL (бакалаврская работа) (544460), страница 8
Текст из файла (страница 8)
EsurrC(A=/=B) = {X
EsurrC | X.A
X.B},
EsurrC(A=а) = {X
EsurrC | X.A = а},
EsurrC(A=/=а) = {X
EsurrC | X.A
а}.
Вообще, к элементарным атрибутным условиям мы относим все выражения вида A θ B и A θ b , где θ – какое-либо бинарное отношение между доменами атрибутов A и B. Точнее, пусть А и В – атрибуты понятия С, причем T1 и T2 – спецификации типов данных – значений атрибутов А и В (соответственно). Пусть b
“T2” и θ
“Т1”
“Т2” . Тогда для понятий С(А θ В) и С(А θ b) имеем
EsurrС(А θ В) = {X
EsurrC | X.A θ X.B },
EsurrС(А θ b) = {X
EsurrC | X.A θ b }.
Наконец, элементарными атрибутными условиями мы также будем считать все выражения вида S1 θ S2 и S1 θ s , где S1 и S2 – селекторы, а s – какое-либо значение атрибута S2 .
Базовым атрибутным условием назовем конъюнкцию элементарных атрибутных условий. Записывая такую конъюнкцию, мы будем использовать точку с запятой вместо обозначения AND.
Пример 2.7. Рассмотрим следующие структурные предложения:
C[A:D,K:Integer], D[B:E,L:String,M:Integer], E[R:C].
Для класса С селекторами являются, например, A.B.R.K , A.D.M , A.D.L .Тогда A.B.R.K > A.D.M ; A.D.L = aba является базовым атрибутным условием.
Бинарную связь L между классами C и D можно представлять (экстенсионально) в виде двудольным графа GraphL, левыми вершинами которого служат суррогаты вида с#j
EsurrC, а правыми – вершины вида d#j
EsurrD. Ребра графа GraphL определяются суррогатами l#j
EsurrL: если l#j.С = с#r и l#j.D = с#s, то вершина с#r соединяется ребром с вершиной с#s.
Пример 2.8. Пусть для бинарной связи L между классами C и D имеем:
EsurrC = {c#1, c#2, c#3, c#4, c#5},
EsurrD = {d#1, d#2, d#3, d#4, d#5, d#6, d#7},
EsurrL = {l#1, l#2, l#3, l#4, l#5, l#6, l#7, l#8, l#9, l#10} и
l#1.С = c#1 , l#1.D = d#1 ; l#2.С = c#2 , l#2.D = d#1 ;
l#3.С = c#2 , l#3.D = d#2 ; l#4.С = c#2 , l#4.D = d#4 ;
l#5.С = c#2 , l#1.D = d#7 ; l#6.С = c#3 , l#3.D = d#4 ;
l#7.С = c#3 , l#7.D = d#7 ; l#8.С = c#4 , l#8.D = d#3 ;
l#9.С = c#4 , l#1.D = d#5 ; l#10.С = c#5 , l#5.D = d#7 .
Тогда имеем граф GraphL этой бинарной связи, изображенный на Рис.2.8.
d#1
c#1 d#2
c#2 • d#3
c#3 d#4
c#4 d#5
c#5 • d#6
d#7
Как видим, степени левых вершин этого графа находятся в интервале
I = {1,2,3,4} = { x
Nat | 1
x
4 }, а степени правых вершин находятся в интервале J = {0,1,2,3} = { x
Nat | 0
x
3 }. (Степенью вершины в графе называют число ребер, инцидентных этой вершине.) Принадлежность степеней вершин к заданному интервалу можно рассматривать как ограничение, налагаемое на бинарную связь.
Введем следующие обозначения:
= p для вырожденного («одноточечного») интервала {x | p
x
p};
=<p для интервала {x | 0
x
p};
>p для интервала {x | x>p};
p:q для интервала {x | p
x
q}. Здесь предполагается p<q.
* для максимального интервала Nat.
Замечание. Можно использовать сокращения:
▪ L вместо L(*,*);
▪ L(=p) вместо L(=p,=p);
▪ L(=<p) вместо L(=<p,=<p);
▪ L(<p) вместо L(<p,<p) и т.д.
Если в структурное предложение для бинарной связи входит выражение L(I,J) (где I, J – интервалы), то в графе GraphL этой бинарной связи степень любой левой вершины должна принадлежать интервалу I, а степень любой правой вершины – интервалу J. Ясно, что свойство функциональности бинарной связи L является интервальным ограничением L(=1,*). Таким образом, предложение(С L(=1,*)D) интерпретируется как утверждение, что отношение L на самом деле является функцией, отображающей множество EsurrC в множество EsurrD. Поэтому вместо (С L(=1,*)D) можно писать L:C -> D. В этом случае L(x) обозначает значение функции L для суррогата х
EsurrC. Интервальное ограничение L(=1,=<1) означает, что бинарная связь L функциональна и обладает свойством, что отнощение L есть инъективная функция. Таким образом, предложение (С L(=1,=<)D) утверждает, что L есть инъекция EsurrC в EsurrD . Предположим, что имеет место кореферентность x ~ L(x) для всех суррогатов x
EsurrC. Тогда, отождествляя каждый суррогат x с суррогатом L( x), мы можем считать, что класс C является подклассом класса D.
Особую роль в представлении знаний играет бинарная связь, обозначаемая ISA, с помощью которой определяется иерархия понятия. Эта связь имеет стандартную интерпретацию. Предложение C ISA D означает, что для любого суррогата c#j
SurrC, если c#j
EsurrC, то d#j
EsurrD .
2.2.7. Структурные схемы
Введенные в пп. 2.2.4 – 2.2.6 предложения составляют формализм, который можно понимать как некоторый язык описания данных (ЯОД) для Бинарной Модели Данных (БМД).
Структурная схема состоит из (конечного числа) предложений ЯОД. В стандартной терминологии, принятой в теории баз данных, такие описания схемами баз данных. База данных в БМД состоит из экстенсионалов понятий (классов и бинарных связей). Рассматриваются только конечные экстенсионалы, которые представляются (конечными) таблицами. При этом предполагается, что имеется полное представление каждого экстенсионала. (Это предположение называется предположением замкнутого мира [Reiter 1980]) В частности, это означает, что если данный суррогат c#j
UC не представлен в таблице для понятия С, то c#j
EsurrC.
В БМД в качестве точек соотнесения естественно выступают моменты времени, когда изменяются (или могут изменяться) экстенсионалы понятий концептуальной схемы. Полные экстенсионалы понятий схемы базы сотавляют то, что в стандартной терминологии теории баз данных называют историческими базами данных. Но в этом разделе мы будем игнорировать точки соотнесения.
Пример 2.9. Рассмотрим моделирование данных для ПО, касающиихся сведений об учебном процессе в вузе. Здесь используются понятия Студент, Препод (преподаватель), Предмет, Экзамен и т.д. Эти понятия связаны с помощью следующей структурной схемы.
SCHEME’Учебный процесс’:
1. Студент[ФИО:String, ГодРожд:Integer, Группа].
2. Группа[Номер:String, Староста:Студент].
3. Препод[ФИО:String, Должность:String, Стаж:Integer].
4. Предмет[Назв:String, КоличЧасов:Integer,
ВидЗанятия:{лекция,семинар,лаб_занятие},
Отчет:{экзамен,зачет,зач_и_экз}].
5. Кафедра[Назв:String, ПрепСостав:Препод(*)].
6.(Студент СдалЭкзамен Предмет)[Дата:String,
Оценка:String, Кому:Препод].
7. (Студент СдалЗачет Предмет)[Дата:String, Оценка:String,
Кому:Препод].
8. (Препод(Должность=профессор)Читает(=<3,=<1)
Предмет(ВидЗанятия=лекция)) Группа(*)).
9. (Препод(Должность=ассистент) ВедетЗанятие(1:3,=<1)
Предмет(ВидЗанятия=семинар|лаб-занятие)) Группа(*)).
10. (Препод: Работает_на -> Кафедра)[ДатаПоступ:Integer].
11. (1-ый:Предмет Предшест 2-ой:Предмет)
12. (Студент Изучал Предметы:Предмет(*))
END
Замечания. 1) Имя Группа в предложении 1 обозначает атрибут класса Студент, но в предложении 2 это имя обозначает класс. 2) В предложении 7 интервальное ограничение (=<3,=<1) означает, что каждый профессор не должен читать лекции более, чем по трем предметам, причем лекции по каждому предмету должны читаться только одним профессором.
2.2.8. Представление данных в БМД
Стандартным представлением данных в БМД является табличное представление. Если при моделировании ПО сделано предположение замкнутого мира, то экстенсионалы понятий (классов и бинарных связей) представляются таблицами. Способ представления ясен из примера базы данных для схемы ’Учебный процесс’.
Пример 2.10. Состояние схемы ’Учебный процесс’ (база данных) имеет таблицы, «шапки» которых отвечают предложениям 1 - 11.
Студент
| Surr | ФИО ГодРожд Группа |
| студент#1 студент#2 ……..…… cтудент#47 | А.Д.Алексеев 1988 А05-01 В.М.Андреев 1987 А13-01 ……………………………..…………. Б.М.Яковлев 1989 А05-01 |
Препод
| Surr | ФИО Должность Стаж |
| препод#1 препод#2 ………… препод#15 | В.Н. Д.А. Абрамов профессор 40 C.C.Борисов ассистент 12 .. ……………………………………… В.Е.Устинов ассистент 6 |
Предмет
| Surr | Назв КоличЧасов ВидЗанятия Отчет |
| предмет#1 предмет#2 ……………… предмет#12 | дискрет-мат 48 лекция экз дискрет-мат 16 семинар зачет ……………………………………………………………… теор-графов 36 лекция экз |
Группа
| Surr | Номер Староста |
| группа#1 группа#2 | А13-01 студент2 А05-01 студент47 |
Кафедра
| Surr | Назв ПрепСоcтав |
| кафедра#1 кафедра#2 | прикл-мат {препод#1, препод#2,…,препод#9} мат-модел {препод#10, препод#11,…,препод#22} |
СдалЭкзамен
| Surr | Студент Предмет Дата Оценка |
| сдалЭкзамен#1 сдалЭкзамен#2 ………………… сдалЭкзамен#165 | студент#1 предмет#1 05.01.07 5 студент#1 предмет#2 10.01.07 4 ……………………………………………………… студент#40 предмет#10 22.01.07 3. |
Предшест
| 1-ый 2-ой | |
| предшест#1 предшест#2 ……………. предшест#9 | предмет#1 предмет#12 предмет#2 предмет#12 ……………………………….. предмет#4 предмет#7 |
Читает
| Surr | Препод Предмет Группа(*) |
| читает#1 читает#2 ………… читает#32 | препод#1 предмет#1 {группа#1, группа2#} препод#1 предмет#2 {группа#1} ………………………………………………………. препод#22 предмет#2 {группа#1,группа2#} |
ВедетЗанятия
| Surr | Препод Предмет Группа(*) |
| ведетЗанятия#1 ведетЗанятия#2 ……………….. ведетЗанятия#32 | препод#15 предмет#1 {группа#1, группа2#} препод#15 предмет#2 {группа#1} ………………………………………………………. препод#17 предмет#8 {группа2#} |
2.2.9. Логические предложения.
В БМЗ имеются логические предложения многих типов. Приведем примеры логических предложений, являющихся простыми ограничениями.















