- •1. Индивидуальное задание
- •2. Построение инфологической модели
- •3. Построение концептуальной модели базы данных
- •4. Построение физической модели и создание базы данных
- •5. Создание процедурных ограничений целостности
- •6. Создание типичных запросов к базе данных
- •6.1 Примеры операторов, которые записывают данные в таблицы
- •7.2 Примеры операторов на выборку данных из базы данных
- •7.3 Проверка ограничений целостности
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