Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
451949.rtf
Скачиваний:
7
Добавлен:
21.11.2019
Размер:
25.36 Mб
Скачать

7.3 Проверка ограничений целостности

Для проверки триггера выполним запросы, первый будет вставлять и изменять записи в таблице лекций на значение дня недели больше 7.

UPDATE Lecture SET DayOfWeekNumber=8

DB21034E The command was processed as an SQL statement because it was not a

valid Command Line Processor command. During SQL processing it returned:

SQL0438N Application raised error with diagnostic text: "The DayOfWeekNumberis incorrect". SQLSTATE=75001

INSERT INTO LECTURE(GROUPNAME, LECTURERID, TIMEID, WEEKTYPEID, DISCIPLINENUMBER, DAYOFWEEKNUMBER, AUDITORIUM, BUILDINGNAME)

VALUES('КИТ-64', 27, 4, 1, '54354559', 9, '202', 'ГАК');

------------------------------ Command Entered ------------------------------

INSERT INTO LECTURE(GROUPNAME, LECTURERID, TIMEID, WEEKTYPEID, DISCIPLINENUMBER, DAYOFWEEKNUMBER, AUDITORIUM, BUILDINGNAME)

VALUES('КИТ-64', 27, 4, 1, '54354559', 9, '202', 'ГАК') ;

DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned:

SQL0438N Application raised error with diagnostic text: "The DayOfWeekNumber is incorrect". SQLSTATE=75001

Приложения

Приложение А. SQL-скрипты создания таблиц базы данных

CREATE TABLE DB2ADMIN.DISCIPLINE (

DISCIPLINENUMBER VARCHAR (20) NOT NULL,

NAME VARCHAR (250) NOT NULL ,

HOURS SMALLINT NOT NULL ,

PRIMARY KEY (DISCIPLINENUMBER)

CREATE TABLE DB2ADMIN.WEEKTYPE (

WEEKTYPEID SMALLINT GENERATED ALWAYS AS IDENTITY

(START WITH 1, INCREMENT BY 1, NO CACHE ) ,

NAME VARCHAR (100) NOT NULL ,

PRIMARY KEY (WEEKTYPEID)

CREATE TABLE DB2ADMIN.TIME (

TIMEID SMALLINT GENERATED ALWAYS AS IDENTITY

(START WITH 1, INCREMENT BY 1, NO CACHE ) ,

HOUR SMALLINT NOT NULL,

MINUTE SMALLINT NOT NULL,

PRIMARY KEY (TIMEID)

CREATE TABLE DB2ADMIN.CHAIRTYPE (

CHAIRTYPEID SMALLINT GENERATED ALWAYS AS IDENTITY

(START WITH 1, INCREMENT BY 1, NO CACHE ) ,

NAME VARCHAR (250) NOT NULL,

PRIMARY KEY (CHAIRTYPEID)

CREATE TABLE DB2ADMIN.UNIVERSITY (

UNIVERSITYID INTEGER GENERATED ALWAYS AS IDENTITY

(START WITH 1, INCREMENT BY 1, NO CACHE ) ,

NAME VARCHAR (100) NOT NULL,

ACCREDITATIONLEVEL SMALLINT NOT NULL,

CREATIONDATE DATE NOT NULL ,

ADDRESS VARCHAR (250),

PHONE VARCHAR (40),

PRIMARY KEY (UNIVERSITYID)

CREATE TABLE DB2ADMIN.DEPARTMENT (

DEPARTMENTID INTEGER GENERATED ALWAYS AS IDENTITY

(START WITH 1, INCREMENT BY 1, NO CACHE ) ,

UNIVERSITYID INTEGER NOT NULL ,

NAME VARCHAR (250) NOT NULL ,

CREATIONDATE DATE NOT NULL ,

PRIMARY KEY (DEPARTMENTID) ,

FOREIGN KEY (UNIVERSITYID) REFERENCES DB2ADMIN.UNIVERSITY (UNIVERSITYID)

CREATE TABLE DB2ADMIN.CHAIR (

CHAIRID INTEGER GENERATED ALWAYS AS IDENTITY

(START WITH 1, INCREMENT BY 1, NO CACHE ) ,

CHAIRTYPEID SMALLINT NOT NULL ,

DEPARTMENTID INTEGER ,

NAME VARCHAR (250) NOT NULL ,

CREATIONDATE DATE NOT NULL ,

PRIMARY KEY (CHAIRID) ,

FOREIGN KEY (CHAIRTYPEID) REFERENCES DB2ADMIN.CHAIRTYPE (CHAIRTYPEID) ,

FOREIGN KEY (DEPARTMENTID) REFERENCES DB2ADMIN.DEPARTMENT (DEPARTMENTID)

CREATE TABLE DB2ADMIN.LECTURER (

LECTURERID INTEGER GENERATED ALWAYS AS IDENTITY

(START WITH 1, INCREMENT BY 1, NO CACHE ) ,

CHAIRID INTEGER NOT NULL ,

LASTNAME VARCHAR (70) NOT NULL ,

FIRSTNAME VARCHAR (70) NOT NULL ,

MIDDLENAME VARCHAR (70) NOT NULL ,

ACADEMICDEGREENAME VARCHAR (120) NOT NULL ,

POST VARCHAR (250) NOT NULL ,

PRIMARY KEY (LECTURERID) ,

FOREIGN KEY (CHAIRID) REFERENCES DB2ADMIN.CHAIR (CHAIRID)

CREATE TABLE DB2ADMIN.LECTURE (

GROUPNAME VARCHAR (20) NOT NULL ,

LECTURERID INTEGER NOT NULL ,

DISCIPLINENUMBER VARCHAR (20) NOT NULL ,

TIMEID SMALLINT NOT NULL ,

WEEKTYPEID SMALLINT NOT NULL ,

DAYOFWEEKNUMBER SMALLINT NOT NULL ,

AUDITORIUM VARCHAR (20) NOT NULL ,

BUILDINGNAME VARCHAR (20) NOT NULL ,

PRIMARY KEY (GROUPNAME, LECTURERID, TIMEID, WEEKTYPEID, DAYOFWEEKNUMBER) ,

FOREIGN KEY (LECTURERID) REFERENCES DB2ADMIN.LECTURER (LECTURERID) ,

FOREIGN KEY (DISCIPLINENUMBER) REFERENCES DB2ADMIN.DISCIPLINE (DISCIPLINENUMBER) ,

FOREIGN KEY (TIMEID) REFERENCES DB2ADMIN.TIME (TIMEID) ,

FOREIGN KEY (WEEKTYPEID) REFERENCES DB2ADMIN.WEEKTYPE (WEEKTYPEID)

инфологический процедурный база целостность

Приложение Б. SQL-скрипты создания триггеров

CREATE TRIGGER TWeekValid

NO CASCADE BEFORE INSERT ON Lecture

REFERENCING NEW AS new

FOR EACH ROW MODE DB2SQL

WHEN

new. DAYOFWEEKNUMBER is not null

AND (new. DAYOFWEEKNUMBER < 0 OR new. DAYOFWEEKNUMBER > 7)

SIGNAL SQLSTATE '75001' ('The DayOfWeekNumber is incorrect');

CREATE TRIGGER TWeekValidU

NO CASCADE BEFORE UPDATE ON Lecture

REFERENCING NEW AS new

FOR EACH ROW MODE DB2SQL

WHEN

new.DAYOFWEEKNUMBER is not null

AND (new.DAYOFWEEKNUMBER < 0 OR new.DAYOFWEEKNUMBER > 7)

SIGNAL SQLSTATE '75001' ('The DayOfWeekNumber is incorrect');

Приложение В. Полные выборки таблиц

SELECT * FROM WeekType

WEEKTYPEID NAME

1 Первая

2 Вторая

3 Модульная

4 Зачетная

4 record(s) selected.

SELECT * FROM ChairType

CHAIRTYPEID NAME

1 Общая

2 Факультетская

3 Выпускающая

4 Базовая

4 record(s) selected.

SELECT * FROM University

UNIVERSITYID NAME ACCREDITATIONLEVEL CREATIONDATE ADDRESS PHONE

1 Харьковский Национальный университет 4 29/01/1805 Харьковский Национальный Университет имени В.Н. Каразина 61077, Харьков, площадь Свободы, 4. 707-53-75

2 Национальный Технический Университет - "Харьковский политехнический институт" 4 03/09/1885 Украина 61002, г. Харьков, ул. Фрунзе, 21 706-27-49

3 Государственный Автомобильно-Дорожный Технический Университет 3 05/08/1925 61002, Украина, г. Харьков, ул.Петровского, 25 700-38-65

4 Государственный аэрокосмический университет им. Н.Е.Жуковского "ХАИ" 4 06/10/1922 61070, Украина, Харьков, ул.Чкалова д.17 44-11-31

5 Харьковский Государственный Технический университет Радиоэлектроники 4 02/07/1966 г. Харьков, пр. Ленина 14 702-15-15

5 record(s) selected.

SELECT * FROM Department

DEPARTMENTID UNIVERSITYID NAME CREATIONDATE

1 1 Биологический 01/09/1900

2 1 Геолого-географический 01/09/1910

3 1 Экономический 01/09/1950

4 1 Иностранных языков 01/09/1920

5 2 Компьютерных и информационных технологий 01/09/2003

6 2 Автоматики и приборостроения 01/09/1995

7 2 Инженерно-физический 01/09/1985

8 2 Электроэнергетический 01/09/1965

9 3 Автомобильный 01/09/1965

10 3 Дорожно-строительный 01/09/1975

11 3 Механический 01/09/1960

12 3 Управления и бизнеса 01/09/1990

13 4 Самолетостроения 01/09/1960

14 4 Авиационных двигателей 01/09/1958

15 4 Систем управления ЛА 01/09/1970

16 4 Ракетно-космической техники 01/09/1975

17 4 Радиотехнических систем ЛА 01/09/1976

18 5 Компьютерных наук 01/09/1992

19 5 Компьютерной инженерии и управления 01/09/1982

20 5 Прикладная математика и менеджмент 01/09/1981

21 5 Радиотехнический 01/09/1975

22 5 Телекоммуникации и измерительной техники 01/09/1976

22 record(s) selected.

SELECT * FROM Chair

CHAIRID CHAIRTYPEID DEPARTMENTID NAME CREATIONDATE

1 2 1 Биохимии 01/09/1901

2 2 1 Ботаники 01/09/1903

3 2 1 Зоологии и экологии животных 01/09/1905

4 2 1 Микологии и фитоиммунологии 01/09/1910

5 2 1 Физиологии и биологии растений 01/09/1902

6 2 1 Генетики и цитологии 01/09/1915

7 2 2 Минералогии 01/09/1915

8 2 2 Геологии 01/09/1918

9 2 2 Гидрогеологии 01/09/1925

10 2 2 Физической географии и картографии 01/09/1932

11 2 2 Социально-экономической географии 01/09/1948

12 2 3 Финансов и кредита 01/09/1990

13 2 3 Экономической кибернетики 01/09/1983

14 2 3 Статистики и учета 01/09/1960

15 2 3 Экономики и менеджмента 01/09/1995

16 2 3 Маркетинга 01/09/1996

17 2 4 Английской филологии 01/09/1930

18 2 4 Английского языка 01/09/1925

19 2 4 Немецкого и французского языков 01/09/1923

20 2 5 Информатики и интеллектуальной собственности 01/09/2003

21 2 5 Видео-, аудио- и кинотехника 01/09/2003

22 2 5 Вычислительная техника и программирование 01/09/1993

23 2 5 Системы информации 01/09/1995

24 2 6 Автоматика и управление в технических системах 01/09/1995

25 2 6 Вычислительно-информационная техника 01/09/1996

26 2 6 Радиоэлектроника 01/09/1995

27 2 7 Динамика и прочность машин 01/09/1985

28 2 7 Система и процессы управления 01/09/1986

29 2 7 Газогидромеханика и тепломассообмен 01/09/1988

30 2 8 Электрических станций 01/09/1965

31 2 8 Автоматизация энергосистем 01/09/1977

32 2 8 Электроизоляционной, кабельной и конденсаторной техники 01/09/1969

33 2 9 Автомобилей 01/09/1967

34 2 9 Двигателей внутреннего сгорания 01/09/1969

35 2 9 Деталей машин и теории механизмов и машин 01/09/1972

36 2 9 Теоретической механики и гидравлики 01/09/1975

37 2 9 Технической эксплуатации и сервиса автомобилей 01/09/1979

38 2 10 Строительства и эксплуатации автомобильных дорог 01/09/1976

39 2 10 Изыскания и проектирования автомобильных дорог 01/09/1978

40 2 10 Экологии и химии 01/09/1979

41 2 10 Мостов, конструкций и строительной механики 01/09/1979

42 2 11 Автоматизации и компьютерно-интегрированных технологий 01/09/1979

43 2 11 Инженерной и компьютерной графики 01/09/1982

44 2 11 Безопасности жизнедеятельности 01/09/1962

45 2 11 Технологии металлов и материаловедения 01/09/1975

46 2 12 Международной экономики 01/09/1998

47 2 12 Экономики предприятий 01/09/1992

48 2 12 Экономической теории и права 01/09/1991

49 2 12 Менеджмента 01/09/1999

50 2 12 Учета и аудита 01/09/1999

51 2 13 Самолетостроения 01/09/1962

52 2 14 Авиационных двигателей 01/09/1959

53 2 15 Систем управления ЛА 01/09/1971

54 2 16 Ракетно-космической техники 01/09/1976

55 2 17 Радиотехнических систем ЛА 01/09/1976

56 2 18 Информационно управляющие системы (ИУС) 01/09/1992

57 2 18 Системотехники (СТ) 01/09/1992

58 2 18 Программное обеспечение ЭВМ (ПО ЭВМ) 01/09/1993

59 2 18 Искусственного интеллекта (ИИ) 01/09/1995

60 2 19 Электронно-вычислительных машин (ЭВМ) 01/09/1982

61 2 19 Автоматизация проектирования вычислительной техники (АПВТ) 01/09/1985

62 2 19 Безопасность информационных технологий (БИТ) 01/09/1986

63 2 19 Философии 01/09/1995

64 2 20 Прикладной математики (ПМ) 01/09/1982

65 2 20 Информатики (ИНФ) 01/09/1981

66 2 20 Экономической кибернетики (ЭК) 01/09/1986

67 2 20 Высшей математики (ВМ) 01/09/1981

68 2 20 Социальная информатика (СИ) 01/09/2005

69 2 21 Радиоэлектронных систем (РЭС) 01/09/1976

70 2 21 Основ радиотехники (ОРТ) 01/09/1975

71 2 21 Радиоэлектронных устройств 01/09/1979

72 2 21 Иностранного языка 01/09/1981

73 2 22 Телекоммуникационных систем и сетей (ТКСС) 01/09/1976

74 2 22 Cетей связи (СС) 01/09/1977

75 2 22 Метрология и измерительная техника (МИТ) 01/09/1978

75 record(s) selected.

SELECT * FROM Lecturer

LECTURERID CHAIRID LASTNAME FIRSTNAME MIDDLENAME ACADEMICDEGREENAME POST

1 Перский Евгений Ефроимович Профессор Заведующий кафедрой

2 Догадина Татьяна Васильевна Профессор Заведующий кафедрой

3 Бартенев Александр Федорович Профессор Заведующий кафедрой

4 Глущенко Василий Иванович Профессор Заведующий кафедрой

5 Жмурко Василий Васильевич Профессор Заведующий кафедрой

6 Воробьева Людмила Ивановна Профессор Заведующий кафедрой

7 Петров Илья Михайлович Профессор Заведующий кафедрой

8 Тхоржевский Эдуард Станиславович Профессор Заведующий кафедрой

9 Немець Константин Аркадьевич Профессор Заведующий кафедрой

10 Левицкий Иван Юрьевич Профессор Заведующий кафедрой

11 Черванев Игорь Григорьевич Профессор Заведующий кафедрой

12 Глущенко Виктор Владимирович Профессор Заведующий кафедрой

13 Михайленко Виталий Григорьевич Профессор Заведующий кафедрой

14 Селиванов Владимир Михайлович Профессор Заведующий кафедрой

15 Бабич Владимир Петрович Профессор Заведующий кафедрой

16 Семеняк Инна Влодимировна Профессор Заведующий кафедрой

17 Солощук Людмила Васильевна Профессор Заведующий кафедрой

18 Ужик Валентина Алексеевна Профессор Заведующий кафедрой

19 Пасинок Валентина Григорьевна Профессор Заведующий кафедрой

20 Солощук Михаил Николаевич Профессор Заведующий кафедрой

21 Гладких Татьяна Валентиновна Профессор Лектор

22 Леонов Сергей Юрьевич Доцент Лектор

23 Деревянко Александр Сергеевич Доцент Лектор

24 Фастовский Эдуард Георгиевич Профессор Лектор

25 Сомхиева Ольга Сергеевна Доцент Лектор

26 Старусев Олег Геннадиевич Доцент Лектор

27 Гуридина Ирина Валерьевна Старший преподаватель Лектор

28 Бреславец Виталий Сергеевич Старший преподаватель Лектор

29 Пустовойтов Павел Евгеньевич Ассистент Лектор

30 Панченко Владимир Иванович Профессор Лектор

31 Порошин Сергей Михайлович Профессор Лектор

32 Домнин Феликс Аркадьевич Профессор Заведующий кафедрой

33 Кравец Валерий Алексеевич Профессор Заведующий кафедрой

34 Качанов Петр Алексеевич Профессор Заведующий кафедрой

35 Кондрашов Сергей Иванович Профессор Заведующий кафедрой

36 Таран Виталий Иванович Профессор Заведующий кафедрой

37 Львов Геннадий Иванович Профессор Заведующий кафедрой

38 Бреславский Дмитрий Васильевич Профессор Заведующий кафедрой

39 Мацевытый Юрий Михайлович Профессор Заведующий кафедрой

40 Вороновский Геннадий Кириллович Профессор Заведующий кафедрой

SELECT * FROM Discipline

DISCIPLINENUMBER NAME HOURS

54354551 Высшая математика 120

54354552 Высшая физика 100

54354553 История Украины 90

54354554 Основы экономической теории 150

54354555 Социология 128

54354556 Философия 132

54354557 Культурология 70

54354558 Религиеведение 73

54354559 Финансы 115

54354560 История науки и техники 80

54354561 Основы безопасности жизнедеятельности 80

54354562 Охрана труда 80

54354563 Лингвистика 110

54354564 Структуры организации данных 120

54354565 Методы и средства компьютерных и информационных технологий 135

54354566 Основы программирования и алгоритмические языки 108

54354567 Дискретная математика 100

54354568 Теория вероятности 130

54354569 Компьютерная графика 120

54354570 Организация баз данных и знаний 120

54354571 Объектно-ориентированное программирование 125

54354572 Электротехника 118

54354573 Схемотехника 110

54354574 Микропроцессорные системы 112

54354575 Системное программирование 111

54354576 Теория алгоритмов 90

54354577 Основы искусственного интеллекта 95

54354578 Сети 80

28 record(s) selected.

Размещено на Allbest.ru

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]