
- •Лабораторная работа 2 Ограничения целостности в sql Oracle Содержание
- •1.Цели лабораторной работы
- •2.Теоретические основы
- •2.1.Синтаксис
- •2.2.Назначение
- •2.3.Предварительные требования
- •2.4.Ключевые фразы и параметры
- •3.Задание
- •4.Контрольные вопросы
- •5.Приложения
- •5.1.Приложение а. Условия в sql Oracle
3.Задание
Создайте следующие таблицы с указанными ограничениями целостности:
Имя таблицы |
Имя столбца |
Тип данных столбца |
Длина (точность) |
Масштаб |
Ограничение целостности |
FACULTY |
FacNo |
integer |
|
|
PRIMARY KEY |
Name |
varchar2 |
50 |
|
UNIQUE, не может быть NULL |
|
Dean |
varchar2 |
50 |
|
UNIQUE |
|
Building |
char |
5 |
|
|
|
Fund |
number |
7 |
2 |
не может быть отрицательным |
|
table constraint |
|
||||
DEPARTMENT |
DepNo |
integer |
|
|
PRIMARY KEY |
FacNo |
integer |
|
|
FOREIGN KEY, ссылающийся на FacNo в FACULTY. Если факультет, на который делается ссылка, удаляется, то кафедра тоже удаляется. |
|
Name |
varchar2 |
50 |
|
Не может быть NULL |
|
Head |
varchar2 |
50 |
|
|
|
Building |
char |
5 |
|
|
|
Fund |
number |
7 |
2 |
не может быть отрицательным |
|
table constraints |
пара столбцов (name, head) уникальна - UNIQUE |
||||
TEACHER |
TchNo |
integer |
|
|
PRIMARY KEY |
DepNo |
integer |
|
|
FOREIGN KEY, ссылающийся на DepNo в DEPARTMENT. Если удаляется кафедра, то все ссылки не нее становятся NULL. |
|
Name |
varchar2 |
50 |
|
Не может быть NULL |
|
Post |
varchar2 |
20 |
|
Принимает значения из списка: assistant, counselor, assistant professor, professor |
|
Tel |
char |
7 |
|
|
|
Hiredate |
date |
|
|
Должен быть более 01.01.1950; не может быть NULL |
|
Salary |
number |
6 |
2 |
Не может быть отрицательным, не может быть NULL |
|
Commission |
number |
6 |
2 |
Не может быть отрицательным. DEFAULT значение равно 0 |
|
table constraint |
a) Commission должно быть по крайне мере в два раза меньше, чем Salary b) Salary + Commission не может превышать 2000 |
||||
SGROUP |
GrpNo |
integer |
|
|
PRIMARY KEY |
DepNo |
integer |
|
|
FOREIGN KEY , ссылающийся на DepNo в DEPARTMENT. При удалении кафедры все ссылки не нее становятся NULL. |
|
Course |
number |
1 |
|
Принимает значения из списка: 1, 2, 3, 4, 5 |
|
Num |
number |
3 |
|
|
|
Quantity |
number |
2 |
|
Принимает значения в интервале 1 - 50 |
|
Curator |
integer |
|
|
FOREIGN KEY, ссылающийся на TchNo в TEACHER. При удалении преподавателя все ссылки на него как на куратора становятся NULL. |
|
Rating |
number |
3 |
|
Принимает значения в диапазоне 0–100. DEFAULT значение равно 0. |
|
table constraints |
Пара значений (DepNo, Num) является UNIQUE |
||||
SUBJECT |
SbjNo |
integer |
|
|
PRIMARY KEY |
Name |
varchar2 |
50 |
|
Не может быть NULL |
|
table constraint |
|
||||
ROOM |
RomNo |
integer |
|
|
PRIMARY KEY |
Num |
number |
4 |
|
Не может быть NULL |
|
Seats |
number |
3 |
|
Принимает значения в интервале 1 - 300 |
|
Floor |
number |
2 |
|
Принимает значения в интервале 1 - 16 |
|
Building |
char |
5 |
|
Не может быть NULL |
|
table constraint |
Пара значений (Num, Building) является UNIQUE |
||||
LECTURE |
TchNo |
integer |
|
|
FOREIGN KEY, ссылающийся на TchNo в TEACHER. При удалении учителя все ссылки на него становятся NULL. |
GrpNo |
integer |
|
|
FOREIGN KEY, ссылающийся на GrpNo в SGROUP. При удалении группы удаляются все лекции, читаемые этой группе. |
|
SbjNo |
integer |
|
|
FOREIGN KEY, ссылающийся на SbjNo в SUBJECT. Предмет не может быть удален до тех пор, пока не удалены все лекции, читаемые по этому предмету. |
|
RomNo |
integer |
|
|
FOREIGN KEY, ссылающийся на RomNo в ROOM. При удалении помещения ссылка на него становится NULL. |
|
Type |
varchar2 |
25 |
|
Принимает значения из списка: lecture, lab, seminar, practice. Не может быть NULL |
|
Day |
char |
3 |
|
Принимает значения из списка: sun, mon, tue, wed, thu, fri, sat. Не может быть NULL |
|
Week |
number |
1 |
|
Принимает значения 1 или 2. Не может быть NULL |
|
Lesson |
number |
1 |
|
Принимает значения в интервале 1 – 8. Не может быть NULL |
|
table constraint |
Столбцы (GrpNo, Day, Week, Lesson) в совокупности являются UNIQUE |