46902 (607983), страница 2
Текст из файла (страница 2)
);
create table Personal (KOD NUMBER(5) PRIMARY KEY,
FIO VARCHAR2(50),
TELEFON VARCHAR2(15),
BIRTHSDAY DATE,
ADRES VARCHAR2(30),
POL NUMBER(1),
KOD_PROFESSII NUMBER(5),
UNIQUE (FIO,BIRTHSDAY),
FOREIGN KEY KOD_PROFESSII REFERENCES PROFESSII KOD
);
create table Svoistva (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30),
EDINIZI IZMERENIA VARCHAR2(10)
);
create table Texnicheskie_xarakteristiki (
KOD_TOVARA NUMBER(5),
KOD_SVOISTVA NUMBER(5),
ZNACHENIE NUMBER(5),
FOREIGN KEY KOD_TOVARA REFERENCES TOVARI KOD,
FOREIGN KEY KOD_SVOISTVA REFERENCES SVOISTVA KOD
);
create table Tipi_firm (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30) UNIQUE
);
create table Tipi_operazii (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30) UNIQUE
);
create table Firmi (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30) UNIQUE,
ADRES VARCHAR2(30),
TELEFON VARCHAR2(15),
KOD_TIPA_FIRMI NUMBER(5),
FOREIGN KEY KOD_TIPA_FIRMI REFERENCES TIPI_FIRM KOD
);
create table Tipi_tovarov (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30) UNIQUE,
KOD_FIRMI NUMBER(5),
KOD_TIPA_TOVARA NUMBER(5),
FOREIGN KEY KOD_FIRMI REFERENCES FIRMI KOD,
FOREIGN KEY KOD_TIPA_TOVARA REFERENCES TIPI_TOVAROV KOD
);
create table Tovari (KOD NUMBER(5) PRIMARY KEY,
KOD_TIPA_TOVARA NUMBER(5),
NAZVANIE VARCHAR2(30),
UNIQUE (KOD_TIPA_TOVARA,NAZVANIE),
FOREIGN KEY KOD_TIPA_TOVARA REFERENCES TIPI_TOVAROV KOD
);
create table Sklad (
KOD_TOVARA NUMBER(5),
KOD_FIRMI NUMBER(5),
KOD_PERSON NUMBER(5),
KOD_TIPA_OPERAZII NUMBER(5),
ZENA NUMBER(5),
DATA DATE,
KOLICHESTVO NUMBER(3),
FOREIGN KEY KOD_TOVARA REFERENCES TOVARI KOD,
FOREIGN KEY KOD_FIRMI REFERENCES FIRMI KOD,
FOREIGN KEY KOD_PERSON REFERENCES PERSONAL KOD,
FOREIGN KEY KOD_TIPA_OPERAZII REFERENCES TIPI_OPERAZII KOD
);
-
Примеры создания последовательностей
CREATE SEQUENCE "SEQPERSONAL" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE;
CREATE SEQUENCE "SEQFIRMI" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE;
CREATE SEQUENCE "SEQTIPI_TOVAROV" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE;
CREATE SEQUENCE "SEQTOVARI" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE;
-
Примеры создания триггеров
CREATE OR REPLACE TRIGGER INSERT_IN_PERSONAL
BEFORE INSERT ON PERSONAL
FOR EACH ROW
BEGIN
SELECT SEQPERSONAL.NEXTVAL INTO :new.KOD FROM DUAL;
END;
/
CREATE OR REPLACE TRIGGER INSERT_IN_FIRMI
BEFORE INSERT ON FIRMI
FOR EACH ROW
BEGIN
SELECT SEQFIRMI.NEXTVAL INTO :new.KOD FROM DUAL;
END;
/
CREATE OR REPLACE TRIGGER INSERT_IN_TIPI_TOVAROV
BEFORE INSERT ON TIPI_TOVAROV
FOR EACH ROW
BEGIN
SELECT SEQTIPI_TOVAROV.NEXTVAL INTO :new.KOD FROM DUAL;
END;
/
CREATE OR REPLACE TRIGGER INSERT_IN_TOVARI
BEFORE INSERT ON TOVARI
FOR EACH ROW
BEGIN
SELECT SEQTOVARI.NEXTVAL INTO :new.KOD FROM DUAL;
END;
/
-
Создание процедуры
CREATE OR REPLACE FUNCTION
Updater
(NUMTOVARA Number)
IS
Result Number
BEGIN
RETURN
(SELECT SUM (KOLICHESTVO) FROM SKLAD WHERE KOD_TOVARA=
NUMTOVARA AND KODTIPAOPERAZII=1)- (SELECT SUM (KOLICHESTVO) FROM SKLAD WHERE KOD_TOVARA=
NUMTOVARA AND KODTIPAOPERAZII =2)
END
-
Вставка данных
INSERT INTO PROFESSII (KOD,NAZVANIE) VALUES (1,'ПРОДАВЕЦ');
INSERT INTO PROFESSII (KOD,NAZVANIE) VALUES (2,'КАССИР');
INSERT INTO PROFESSII (KOD,NAZVANIE) VALUES (3,'МЕНЕДЖЕР');
INSERT INTO PROFESSII (KOD,NAZVANIE) VALUES (4,'ДИРЕКТОР');
INSERT INTO PERSONAL (FIO,TELEFON,ADRES,BIRTHDAY,POL,KOD_PROFESSII) VALUES ('КУПРИЯНОВ АНДРЕЙ МИХАЙЛОВИЧ','88127567432','СПб КИРОВА 37 16',SYSDATE,1,1);
INSERT INTO PERSONAL (FIO,TELEFON,ADRES,BIRTHDAY,POL,KOD_PROFESSII) VALUES ('КОВАЛЕВ ИЛЬЯ СЕРГЕЕВИЧ','88128567432','СПб МАРАТА 38 14',SYSDATE,1,2);
INSERT INTO PERSONAL (FIO,TELEFON,ADRES,BIRTHDAY,POL,KOD_PROFESSII) VALUES ('ПОЛЫВЯННЫЙ АРТЕМ ВИКТОРОВИЧ','88128967432','СПб МИРА 5 12',SYSDATE,1,3);
INSERT INTO PERSONAL (FIO,TELEFON,ADRES,BIRTHDAY,POL,KOD_PROFESSII) VALUES ('ПОЛЫВЯННАЯ ДАРЬЯ ВИКТОРОВНА','88127417432','СПб МИРА 5 12',SYSDATE,2,4);
INSERT INTO SVOISTVA (KOD,NAZVANIE,EDINIZI_IZMERENIA) VALUES (1,'РАЗМЕР ОБУВИ','РАЗМЕР');
INSERT INTO SVOISTVA (KOD,NAZVANIE,EDINIZI_IZMERENIA) VALUES (2,'РАЗМЕР РАМЫ','ДЮЙМЫ');
INSERT INTO SVOISTVA (KOD,NAZVANIE,EDINIZI_IZMERENIA) VALUES (3,'КОЛ-ВО ЗВЕНЬЕВ','ЗВЕНЬЯ');
INSERT INTO TIPI_FIRM (KOD,NAZVANIE) VALUES (1,'ПОСТАВЩИК');
INSERT INTO TIPI_FIRM (KOD,NAZVANIE) VALUES (2,'ПРОИЗВОДИТЕЛЬ');
INSERT INTO TIPI_OPERAZII (KOD,NAZVANIE) VALUES (1,'ПРИХОД');
INSERT INTO TIPI_OPERAZII (KOD,NAZVANIE) VALUES (2,'РАСХОД');
INSERT INTO FIRMI (NAZVANIE,ADRES,TELEFON,KOD_TIPA_FIRMI) VALUES ('SRAM','МОСКВА ТУШИНСКИЙ 40','84956543211',2);
INSERT INTO FIRMI (NAZVANIE,ADRES,TELEFON,KOD_TIPA_FIRMI) VALUES ('ВЕЛОМИР','МОСКВА ТВЕРСКОЙ ПРОСПЕКТ 14','84954567213',1);
INSERT INTO FIRMI (NAZVANIE,ADRES,TELEFON,KOD_TIPA_FIRMI) VALUES ('СПОРТАКАДЕМИЯ','МОСКВА ЛЕНИНА 65','84952345764',1);
INSERT INTO TIPI_TOVAROV (NAZVANIE,KOD_FIRMI,KOD_TIPA_TOVARA) VALUES ('КАССЕТА',00001,1);
INSERT INTO TIPI_TOVAROV (NAZVANIE,KOD_FIRMI,KOD_TIPA_TOVARA) VALUES ('МАНЕТКА',00001,2);
INSERT INTO TIPI_TOVAROV (NAZVANIE,KOD_FIRMI,KOD_TIPA_TOVARA) VALUES ('ЦЕПЬ',00001,3);
INSERT INTO TOVARI (NAZVANIE,KOD_TIPA_TOVARA) VALUES ('970DH',1);
INSERT INTO TOVARI (NAZVANIE,KOD_TIPA_TOVARA) VALUES ('X9',2);
INSERT INTO TOVARI (NAZVANIE,KOD_TIPA_TOVARA) VALUES ('990 HOLLOWPOINT',3);
INSERT INTO SKLAD (KOD_TOVARA,KOD_FIRMI,KOD_PERSON,KOD_TIPA_OPERAZII,ZENA,DATA,KOLICHESTVO) VALUES (00001,00002,3,1,1800,SYSDATE,8);
INSERT INTO SKLAD (KOD_TOVARA,KOD_FIRMI,KOD_PERSON,KOD_TIPA_OPERAZII,ZENA,DATA,KOLICHESTVO) VALUES (00002, ,1,2,1100,SYSDATE,1);
INSERT INTO SKLAD (KOD_TOVARA,KOD_FIRMI,KOD_PERSON,KOD_TIPA_OPERAZII,ZENA,DATA,KOLICHESTVO) VALUES (00003,00001,3,1,800,SYSDATE,3);
INSERT INTO TEXNICHESKIE_XARAKTERISTIKI (KOD_TOVARA,KOD_SVOISTVA,ZNACHENIE) VALUES (00001,3,112);
INSERT INTO TEXNICHESKIE_XARAKTERISTIKI (KOD_TOVARA,KOD_SVOISTVA,ZNACHENIE) VALUES (00002,2,9);
INSERT INTO TEXNICHESKIE_XARAKTERISTIKI (KOD_TOVARA,KOD_SVOISTVA,ZNACHENIE) VALUES (00003,1,11-32);
Описание приложения
В приложении созданы три группы пользователей: «Покупатель», «Продавец» и «Менеджер по персоналу».
Пользователь «Покупатель» может просматривать товары, имеющиеся на складе. Изменения записей базы данных, данному пользователю запрещены.
При выборе пользователя «продавец» появляется окно:
Пользователь должен выбрать себя из предложенного списка и нажать «Ок». Если он себя не нашел, то необходимо нажать «Back» и обратиться к менеджеру по персоналу.
После выбора своего имени из списка пользователю открывается его рабочее окно с двумя вкладками: продажа и приход товара. На вкладке «Продажа» продавец может продать товар двойным кликом мыши по наименованию товара.
На вкладке «Приход товаров» продавец может добавить товар, выбрав его из списка и введя закупочную цену и количество. Если необходимый товар отсутствует в списке, его можно добавить, путем нажатия кнопки «Добавить Новый Товар».
В появившемся окне необходимо ввести ВСЕ поля, иначе добавления товара не представляется возможным. Заполнив все поля и нажав кнопку «OK», пользователь внесет товар в базу данных. Для отмены действия добавления товара, пользователю необходимо нажать клавишу «Back», при этом он, пользователь, вернется в свое основное окно.
Пользователь «Менеджер по персоналу» может просматривать информацию о работниках фирмы в своем основном окне. Также он может Нанимать новых работников, нажав кнопку «Нанять человека». В этом случае, ему, менеджеру, откроется окно добавления нового работника
Только после заполнения ВСЕХ полей менеджер сможет добавить запись в базу данных. Если необходимой профессии не окажется в списке предлагаемых, ему необходимо будет добавить новую профессию в список уже существующих, путем нажатия кнопки «Новая профессия», затем ввода названии профессии и подтверждением ввода – нажатием клавиши «Ок».Если в результате ввода новой профессии, необходимость в ней, профессии отпадет, пользователю необходимо нажать кнопку «ВАСК».
-
Инфологическая модель
| Склад |
| К К Код персон Код типа операции Цена Дата К |
| Т |
| Код товара Код свойства Значение |
| Т |
| К Название Код фирмы Код типа товара |
| Свойства |
| Код Название Единицы изм. |
| Товары |
| Код Код типа товара Название |
| Фирмы |
| Код Название Адрес Телефон К |
од товара
од фирмы
ол-во
ехнические характеристики
ипы товаров
од
од типа фирмы














