|
Программирование >> Хронологические базы данных
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 }
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |