-
반응형
DB이자 SCHEMA 작성
SYSTEM 으로 접속 -> User에 들어가서 우클릭 -> Create -> USER 선택
HR의 권한을 가지고 온다.
ERD Model에서 Tools -> Forward Engineer
-- F5 누르면 query대로 TABLE 설계CREATE TABLE CUSTOMER(PHONE VARCHAR2(13) NOT NULL ,NAME VARCHAR2(100) NOT NULL ,ADDRESS VARCHAR2(2000) NOT NULL);CREATE UNIQUE INDEX XPK고객 ON CUSTOMER(PHONE ASC);ALTER TABLE CUSTOMERADD CONSTRAINT XPK고객 PRIMARY KEY (PHONE);CREATE TABLE DELIVERY(DELIVERY_NUMBER VARCHAR2(100) NOT NULL ,BOX_SIZE INTEGER NOT NULL ,WEIGHT NUMBER NOT NULL ,PRICE NUMBER NOT NULL ,NAME VARCHAR2(2000) NOT NULL ,TYPE VARCHAR2(100) NOT NULL ,FRAGIL CHAR(1) NOT NULL ,DISTANCE NUMBER NOT NULL ,QUICK CHAR(1) NOT NULL ,PAY_TYPE CHAR(1) NOT NULL ,SHIPPING_FEE INTEGER NOT NULL ,RETURN_YN CHAR(1) NOT NULL ,MESSAGE VARCHAR2(3000) NOT NULL ,RECEIPT_DATE TIMESTAMP NOT NULL ,FROM_PHONE VARCHAR2(13) NOT NULL ,TO_PHONE VARCHAR2(13) NOT NULL ,DELIVERY_MAN_PHONE VARCHAR2(13) NOT NULL);CREATE UNIQUE INDEX XPK배송 ON DELIVERY(DELIVERY_NUMBER ASC);ALTER TABLE DELIVERYADD CONSTRAINT XPK배송 PRIMARY KEY (DELIVERY_NUMBER);CREATE TABLE DELIVERY_MAN(PHONE VARCHAR2(13) NOT NULL ,NAME VARCHAR2(100) NOT NULL);CREATE UNIQUE INDEX XPK배송기사 ON DELIVERY_MAN(PHONE ASC);-- TABLE 간의 관계 설정ALTER TABLE DELIVERY_MANADD CONSTRAINT XPK배송기사 PRIMARY KEY (PHONE);ALTER TABLE DELIVERYADD (CONSTRAINT R_1 FOREIGN KEY (FROM_PHONE) REFERENCES CUSTOMER (PHONE));ALTER TABLE DELIVERYADD (CONSTRAINT R_4 FOREIGN KEY (TO_PHONE) REFERENCES CUSTOMER (PHONE));ALTER TABLE DELIVERYADD (CONSTRAINT R_5 FOREIGN KEY (DELIVERY_MAN_PHONE) REFERENCES DELIVERY_MAN (PHONE));1:N 관계에서 1쪽부터 먼저 데이터를 넣어야 한다.
물리적인 DB에는 관계를 만들지 않는다.
참조하고 있는 ROW부터 지우고 N관계부터 지워야 한다.
그런 이유때문에 논리적인 관계만 만들고 물리적인 관계는 만들지 않는다.
예시를 든 Query문이
ALTER TABLE DELIVERYADD (CONSTRAINT R_1 FOREIGN KEY (FROM_PHONE) REFERENCES CUSTOMER (PHONE));ALTER TABLE DELIVERYADD (CONSTRAINT R_4 FOREIGN KEY (TO_PHONE) REFERENCES CUSTOMER (PHONE));ALTER TABLE DELIVERYADD (CONSTRAINT R_5 FOREIGN KEY (DELIVERY_MAN_PHONE) REFERENCES DELIVERY_MAN (PHONE));이 부분이다.
Query를 만들기 위해서 ERD를 이용 한다. * 물리적인 관계는 만들지 않는다. * 원래대로라면 관계를 설정하는 Query문은 작성하지 않는다. *
반응형'DB > Oracle' 카테고리의 다른 글
Caused by: java.sql.SQLException: ORA-12899: value too large for column (0) 2018.10.04 Oracle - SQL Developer ERD (0) 2018.08.27 Eclipse에서 Oracle 접속 (0) 2018.08.10 ERD STUDY (0) 2018.08.08 Oracle 11g 설치 (0) 2018.07.31 댓글