
Лабораторная работа №1. Идентифицирующая связь.
Идентифицирующая связь - это связь между двумя объектами, где сущность потомка определяется через сущность родителя, таким образом, объект потомка зависит от объекта родителя и не может быть определен без него. Объект родителя может иметь связи со многими объектами потомков.
Склад
Наличие
Материал
Склад (Store)
ID_store (PK): INTEGER |
Название (Name): VARCHAR2(20) |
Площадь (Area): INTEGER |
1 |
Домодедовский |
3000 |
2 |
Северный |
8000 |
3 |
Склад №3 |
4000 |
Материал (Material)
ID_material (PK): INTEGER |
Название (Name) : VARCHAR2(20) |
Размер (Size) : VARCHAR2(20) |
01002 |
Вагонка |
20*200см |
23004 |
Стекловата |
80*4000см |
74387 |
Блок хаус |
14*300см |
Наличие (Availability)
ID_material (FK): INTEGER |
ID_store (FK): INTEGER |
Наличие (Availability) : VARCHAR2(20) |
74387 |
3 |
Нет |
74387 |
1 |
Да |
23004 |
2 |
Да |
01002 |
2 |
Нет |
Полученный в ERWin код.
CREATE TABLE Availability (
ID_store INTEGER NOT NULL,
ID_material INTEGER NOT NULL,
Availability VARCHAR2(20) NULL
);
ALTER TABLE Availability
ADD ( PRIMARY KEY (ID_store, ID_material) ) ;
CREATE TABLE Material (
ID_material INTEGER NOT NULL,
Name VARCHAR2(20) NOT NULL,
Size VARCHAR2(20) NULL
);
ALTER TABLE Material
ADD ( PRIMARY KEY (ID_material) ) ;
CREATE TABLE Store (
ID_store INTEGER NOT NULL,
Name VARCHAR2(20) NOT NULL,
Area INTEGER NOT NULL
);
ALTER TABLE Store
ADD ( PRIMARY KEY (ID_store) ) ;
ALTER TABLE Availability
ADD ( FOREIGN KEY (ID_material)
REFERENCES Material ) ;
ALTER TABLE Availability
ADD ( FOREIGN KEY (ID_store)
REFERENCES Store )
Лабораторная работа №2. Неидентифицирующая связью.
Неидентифицирующая связь связывает родительскую сущность с дочерней. Переданные ключи в неидентифицирующей связи не являются составной частью первичного ключа дочерней сущности.
Местоположение
СкладМатериал
Склад (Store)
ID_store (PK): INTEGER |
Название (Name): VARCHAR2(20) |
Площадь (Area): INTEGER |
1 |
Домодедовский |
3000 |
2 |
Северный |
8000 |
3 |
Склад №3 |
4000 |
Материал (Material)
ID_material (PK): INTEGER |
Название (Name) : VARCHAR2(20) |
Размер (Size) : VARCHAR2(20) |
01002 |
Вагонка |
20*200см |
23004 |
Стекловата |
80*4000см |
74387 |
Блок хаус |
14*300см |
Местоположение (Location)
ID_location (PK): INTEGER |
ID_material (FK) : INTEGER |
ID_store (FK): INTEGER |
Полка (Shelf): INTEGER |
Ряд (Line): INTEGER |
74643 |
01002 |
1 |
10 |
84 |
63748 |
01002 |
3 |
45 |
10 |
00034 |
74387 |
1 |
12 |
84 |
87387 |
74387 |
1 |
1 |
86 |
49847 |
23004 |
2 |
35 |
76 |
Полученный в ERWin код.
CREATE TABLE Location (
ID_location INTEGER NOT NULL,
ID_store INTEGER NULL,
ID_material INTEGER NULL,
Line INTEGER NOT NULL,
Shelf INTEGER NOT NULL
);
ALTER TABLE Location
ADD ( PRIMARY KEY (ID_location) ) ;
CREATE TABLE Material (
ID_material INTEGER NOT NULL,
Name VARCHAR2(20) NOT NULL,
Size VARCHAR2(20) NULL
);
ALTER TABLE Material
ADD ( PRIMARY KEY (ID_material) ) ;
CREATE TABLE Store (
ID_store INTEGER NOT NULL,
Name VARCHAR2(20) NOT NULL,
Area INTEGER NOT NULL
);
ALTER TABLE Store
ADD ( PRIMARY KEY (ID_store) ) ;
ALTER TABLE Location
ADD ( FOREIGN KEY (ID_material)
REFERENCES Material
ON DELETE SET NULL ) ;
ALTER TABLE Location
ADD ( FOREIGN KEY (ID_store)
REFERENCES Store
ON DELETE SET NULL ) ;
Лабораторная работа №3. Связь 1:1.
Местоположение
Адрес
Склад
Склад (Store)
ID_store (PK): INTEGER |
Название (Name): VARCHAR2(20) |
Площадь (Area): INTEGER |
1 |
Домодедовский |
3000 |
2 |
Северный |
8000 |
3 |
Склад №3 |
4000 |
Адрес (Address)
ID_address (PK): INTEGER |
Город (City): VARCHAR2(20) |
Улица (Street): VARCHAR2(20) |
Дом (Building): VARCHAR2(20) |
ID_store (FK): INTEGER |
1 |
Москва |
Киевское ш. |
37 |
3 |
2 |
Чехов |
ул. Профсоюзная |
9 |
1 |
3 |
Истра |
ул. Ленина |
35 |
2 |
Полученный в ERWin код.
CREATE TABLE Address (
ID_address INTEGER NOT NULL,
City VARCHAR2() NULL,
Street VARCHAR2() NOT NULL,
Building VARCHAR2() NOT NULL,
ID_store INTEGER NOT NULL
);
ALTER TABLE Address
ADD ( PRIMARY KEY (ID_address, ID_store) ) ;
CREATE TABLE Store (
ID_store INTEGER NOT NULL,
Name VARCHAR2(20) NOT NULL,
Area INTEGER NOT NULL
);
ALTER TABLE Store
ADD ( PRIMARY KEY (ID_store) ) ;
ALTER TABLE Address
ADD ( FOREIGN KEY (ID_store)
REFERENCES Store ) ;
Лабораторная работа №4. Связь N:N.