
- •Задание №1 Простые sql-запросы
- •Теоретическая часть
- •Практическая часть
- •Задание № 2 Создание баз данных посредством sql
- •Теоретическая часть
- •Практическая часть
- •Задание № 3 Процедуры и функции pl/sql
- •Теоретическая часть
- •Практическая часть
- •Задание № 4 Триггеры баз данных
- •Теоретическая часть
- •Практическая часть
- •Задание № 5 Динамический sql
- •Теоретическая часть
- •Практическая часть
Задание № 2 Создание баз данных посредством sql
Цель работы – изучить возможности создания баз данных посредством инструкций SQL, правила задания ограничений различных типов, а также запросов на добавление, обновление, удаление информации из базы данных
Теоретическая часть
Инструкция create table позволяет создавать таблицы БД и ограничения на значения столбцов, а также создавать связи типа первичный ключ - внешний ключ между таблицами.
Синтаксическая диаграмма данной инструкции представлена на рис.
Создание таблицы
Определение столбца
Определение ограничений
Определение первичного ключа
Определение внешнего ключа
Определение уникальности
Условие на назначение
Создание таблицы ORDERS посредством create table можно продемонстрировать следующим примером. На рис. приведены таблицы и предполагаемые связи, создаваемые между ними.
Практическая часть
Задание: Создать базу данных произвольного сборочного производства. Предварительно зарисовать иерархическую структуру используемых деталей. Уровни иерархии выдерживать по этапам сборки. Перенести иерархию на таблицы реляционной базы данных с организацией связей между таблицами, отражающими реальные связи между этапами сборки.
CREATE TABLE notebook
(notebookid NUMBER(6) PRIMARY KEY,
series VARCHAR2(10) NOT NULL,
resolution CHAR(4),
motheboard_id NUMBER(6),
CPU_id NUMBER(6) NOT NULL,
HDD_id NUMBER(6) NOT NULL,
RAM_id NUMBER(6) NOT NULL,
serial_number VARCHAR2(7) UNIQUE,
CONSTRAINT motheboard_fk FOREIGN KEY(motheboard_id) REFERENCES motheboard(motheboard_id) ON DELETE CASCADE,
CONSTRAINT cpu_fk FOREIGN KEY(CPU_id)
REFERENCES CPU(CPU_ID),
CONSTRAINT hdd_fk FOREIGN KEY(HDD_id)
REFERENCES HDD(HDD_id), CONSTRAINT ram_fk FOREIGN KEY(RAM_id)
REFERENCES RAM(RAM_id)
);
INSERT INTO notebook VALUES(1,'5740G','15,6',1,1,1,1,'n000001');
INSERT INTO notebook VALUES(2,'5742G','15,6',2,2,2,2,'n000002');
INSERT INTO notebook VALUES(3,'5745ZG','17,3',3,3,3,3,'n000003');
INSERT INTO notebook VALUES(4,'ONE','10,1',4,4,4,4,'n000004');
INSERT INTO notebook VALUES(5,'3690','15,4',5,5,5,5,'n000005');
CREATE TABLE motheboard
(motheboard_id NUMBER(6) PRIMARY KEY,
platform VARCHAR2(15) NOT NULL,
memory CHAR(4) NOT NULL,
USB_2 NUMBER(1),
LAN VARCHAR2(5),
WiFi CHAR(2),
serial_number VARCHAR2(7) UNIQUE
);
INSERT INTO motheboard VALUES(1,'Intel Cappela','DDR3',3,'OK','OK','m000001');
INSERT INTO motheboard VALUES(2,'AMD Tigris','DDR3',3,'OK','NO','m000002');
INSERT INTO motheboard VALUES(3,'AMD Puma','DDR3',4,'OK','OK','m000003');
INSERT INTO motheboard VALUES(4,'Intel Atom','DDR2',2,'OK','OK','m000004');
INSERT INTO motheboard VALUES(5,'AMD V','DDR2',2,'NO', 'OK','m000005');
CREATE TABLE CPU
(CPU_id NUMBER(6) PRIMARY KEY,
producer VARCHAR2(10) NOT NULL,
number_core NUMBER(2),
frequency NUMBER(5),
cache VARCHAR2(7),
serial_number VARCHAR2(7) UNIQUE,
CONSTRAINT fre_max CHECK(frequency< 10000));
INSERT INTO CPU VALUES(1,'Intel',2,2130,'3 MB', 'c000001');
INSERT INTO CPU VALUES(2,'AMD',4,3000,'6 MB','c000002');
INSERT INTO CPU VALUES(3,'AMD',2,2000,'l MB','c000003');
INSERT INTO CPU VALUES(4,'Intel', 1,1700,'1 MB','c000004');
INSERT INTO CPU VALUES(5,'AMD',2,1860,'3 MB','c000005');
CREATE TABLE HDD
(HDD_id NUMBER(6) PRIMARY KEY,
producer VARCHAR2(10) NOT NULL,
interface VARCHAR2(4),
volume NUMBER(4),
speed NUMBER(5),
serial_number VARCHAR2(7) UNIQUE,
CONSTRAINT vol_max CHECK(volume<10000));
INSERT INTO HDD VALUES(1,'Samsung','SATA',320,5400,'h000001');
INSERT INTO HDD VALUES(2,'Samsung','SATA',500,7200,'h000002');
INSERT INTO HDD VALUES(3,'Seagate','TDE',120,5400,'h000003');
INSERT INTO HDD VALUES(4,'Toshiba','IDE',250,5400,'h000004');
INSERT INTO HDD VALUES(5,'Samsung','SATA',320,7200,'h000005');
CREATE TABLE RAM
(RAM_id NUMBER(6) PRIMARY KEY,
producer VARCHAR2(10) NOT NULL,
type VARCHAR2(4),
volume NUMBER(4),
serial_number VARCHAR2(7) UNIQUE);
INSERT INTO RAM VALUES(1,'Hynix','DDR3',4096,'r000001');
INSERT INTO RAM VALUES(2,'Digma','DDR3',8192,'r000002');
INSERT INTO RAM VALUES(3,'Kingston','DDR3',2048, 'r000003');
INSERT INTO RAM VALUES(4,'Kingston','DDR2',1024,'r000004');
INSERT INTO RAM VALUES(5,'Samsung','DDR2',1024,'r000005');
Экранная форма:
Вывод: Были изучены принципы построения и объявления таблиц и из заполнение. Так же ознакомились с уникальностью используемой при создании БД.