Программирование >>  Хронологические базы данных 

1 ... 102 103 104 [ 105 ] 106 107 108 ... 348


TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE

COURSEI

TITLE

OFFI

OFFDATE

CITY

EMPI

NAME

GRADE

POSSREP (

POSSREP (

POSSREP (

POSSREP (

POSSREP {

POSSREP (

POSSREP {

POSSREP {

POSSREP (

CHAR ) CHAR ) CHAR ) DATE ) CHAR ) CHAR ) NAME ) CHAR ) CHAR )

VAR COURSE BASE RELATION { COURSEI COURSEI, TITLE TITLE } PRIMARY KEY { COURSEI } ; VAR PREREQ BASE RELATION

{ SUP COURSEI COURSEI,

SUB cOURSE COURSEI } PRIMARY KEY { SUP COURSE, SUB C0URSE } FOREIGN KEY { RENAME SUP COURSE AS COURSEI }

REFERENCES COURSE ON DELETE CASCADE ON UPDATE CASCADE FOREIGN KEY { RENAME SUB COURSE AS COURSEI }

REFERENCES COURSE ON DELETE CASCADE ON UPDATE CASCADE

VAR OFFERING BASE RELATION { COURSEI COURSEI, OFFI OFFI, OFFDATE OFFDATE, LOCATION CITY } PRIMARY KEY { COURSEI, OFFi } FOREIGN KEY { COURSEI } REFERENCES COURSE

ON DELETE CASCADE ON UPDATE CASCADE ;

VAR EMPLOYEE BASE RELATION { EMPI EMPI,

ENAME ENAME,

JOB JOB } PRIMARY KEY { EMPi } ;

VAR TEACHER BASE RELATION { COURSEI COURSEI, OFFI OFFI, EMPI EMPI } PRIMARY KEY { COURSEI, OFFi, EMPi }



FOREIGN KEY { COURSE*, OFFi } REFERENCES OFFERING

ON DELETE CASCADE ON UPDATE CASCADE ; FOREIGN KEY { EMPi } REFERENCES EMPLOYEE ON DELETE CASCADE ON UPDATE CASCADE ;

VAR ENROLLMENT BASE RELATION { COURSEI COURSEI, OFFI OFF*, EMPI EMPI GRADE GRADE } PRIMARY KEY { COURSEI, OFFi, EMPi } FOREIGN KEY { COURSE*, OFF* } REFERENCES OFFERING

ON DELETE CASCADE ON UPDATE CASCADE FOREIGN KEY { EMP* } REFERENCES EMPLOYEE ON DELETE CASCADE ON UPDATE CASCADE :

PREREQ

SUP COURSE*

SUB COURSE*

COURSE

COURSE#,OFF#

OFFERING

COURSE*

COURSE#,OFF#

TEACHER

ENROLLMENT

EMP#

EMPLOYEE

EMP#

Puc. 8. J. Ссылочная диаграмма для учебной базы данных

Пояснения

1. Множества атрибутов (единичные) {COURSE*} в переменной-отношении TEACHER и {COURSE*} в переменной-отношении ENROLLMENT можно также рассматривать как внешние ключи, ссылаюшиеся на переменную-отношение COURSE. Если ссылочные ограничения от переменной-отношения TEACHER к переменной-отношению OFFERING, от переменной-отношения ENROLLMENT к переменной-отношению OFFERING и от переменной-отношения OFFERING к переменной-отношению COURSE организованы должным образом, то ссылочные ограничения от переменной-отношения TEACHER к переменной-отношению COURSE будут поддерживаться автоматически. Более детальное обсуждение этого вопроса приведено в [8.10].



2. Переменная-отношение OFFERING в этом примере является одновременно ссылающейся и ссылочной: существует ссылочное ограничение к переменной-отношению OFFERING от переменной-отношения ENROLLMENT (на самом деле от переменной-отношения TEACHER) и от переменной-отношения OFFERING к переменной-отношению COURSE.

ENROLLMENT

OFFERING

-> COURSE

Обратите внимание, что существует два различных ссылочных пути от переменной-отношения ENROLLMENT к переменной-отношению COURSE: один непосредственный (внешний ключ {COURSE!} в переменной-отношении ENROLLMENT) и другой - непрямой, через переменную-отношение OFFERING (внешние ключи {COURSEI,OFFI} в переменной-отношении ENROLLMENT и {COURSEI} в переменной-отношении OFFERING).

ENROLLMENT -> OFFERING COURSE

Однако в действительности эти пути не являются независимыми (верхний путь представляет собой комбинацию двух нижних). Более подробное обсуждение этого вопроса можно найти в [8.10]. 4. Также существует два различных ссылочных пути от переменной-отношения PREREQ к переменной-отношению COURSE, но на этот раз они действительно независимы (и имеют совсем разный смысл). И вновь за подробным обсуждением обратитесь к [8.10].

DEPT

MGR ЕМР#

DEPT#

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

8.12. Ниже приведены только определения переменных-отношений (и лишь схематически).

VAR ЕМР BASE RELATION { EMPI ... ,

Рис. 8.2. Ссылочная диаграмма с циклом

JOB ... } PRIMARY KEY { EMPI }

VAR PGMR BASE RELATION { EMPI ... ,

LANG ... } PRIMARY KEY { EMPi }



1 ... 102 103 104 [ 105 ] 106 107 108 ... 348

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика