본문 바로가기

웹 개발/DBMS

[Web_DBMS] 04

실습(조합키(1))

1. 요구사항 분석

- 꽃 테이블과 화분 테이블 2개가 필요합니다.

- 꽃을 구매할 때 화분도 같이 구매합니다.

- 꽃은 이름, 색상, 가격이 있습니다.

- 화분은 제품번호, 색상, 모양이 있습니다.

- 화분은 모든 꽃을 담을 수 없고 맞는 꽃들을 담아야 합니다.

 

 

2. 개념적 설계

 

 

3. 논리적 설계

 

 

4. 물리적 설계

 

 

5. 구현

- 테이블 생성(FLOWER)

CREATE TABLE FLOWER(
   FLOWER_NAME VARCHAR2(1000),
   FLOWER_COLOR VARCHAR2(1000),
   FLOWER_PRICE NUMBER,
   CONSTRAINT PK_FLOWER PRIMARY KEY(FLOWER_NAME, FLOWER_COLOR) /*조합키일 경우 CONSTRAINT 명령어를 통해 PK를 설정한다.*/
);

 

결과(ERD)
 

 

 

※ 테이블명 변경

ALTER TABLE FLOWER RENAME TO TBL_FLOWER;

 

 

- 테이블 생성(POT)

CREATE TABLE TBL_POT(
	POT_NUMBER NUMBER PRIMARY KEY,
	POT_COLOR VARCHAR2(1000),
	POT_SHAPE VARCHAR2(1000),
	FLOWER_NAME VARCHAR2(1000),
	FLOWER_COLOR VARCHAR2(1000),
	CONSTRAINT FK_POT FOREIGN KEY(FLOWER_NAME, FLOWER_COLOR) REFERENCES TBL_FLOWER(FLOWER_NAME, FLOWER_COLOR)
);

 

결과(ERD)

 

 

 

 

실습(조합키(2))

1. 요구사항 분석

- 반려동물

   식별번호, 종류, 이름, 나이, 병명

- 주인

   이름, 나이, 주소, 핸드폰 번호

 

 

2. 개념적 설계

 

 

3. 논리적 설계

 

 

4. 물리적 설계

 

 

5. 구현

- 테이블 생성(TBL_OWNER)

CREATE TABLE TBL_OWNER(
	OWNER_NAME VARCHAR2(1000),
	OWNER_PHONE VARCHAR2(1000),
	OWNER_AGE NUMBER,
	OWNER_ADDRESS VARCHAR2(2000),
	CONSTRAINT PK_OWNER PRIMARY KEY(OWNER_NAME, OWNER_PHONE)
);

 

결과(ERD)

 

 

- 테이블 생성(TBL_PET)

/*ON DELETE CASCADE : 부모의 데이터를 삭제했을 때 자식에서 사용중이던 부모의 데이터도 자동으로 삭제한다.*/
CREATE TABLE TBL_PET(
	PET_NUMBER NUMBER PRIMARY KEY,
	PET_TYPE VARCHAR2(1000),
	PET_NAME VARCHAR2(1000),
	PET_AGE NUMBER,
	PET_DISEASE VARCHAR2(1000),
	OWNER_NAME VARCHAR2(1000),
	OWNER_PHONE VARCHAR2(1000),
	CONSTRAINT FK_PET FOREIGN KEY(OWNER_NAME, OWNER_PHONE) REFERENCES TBL_OWNER(OWNER_NAME, OWNER_PHONE) ON DELETE CASCADE
);

 

결과(ERD)

 

 

 

 

'웹 개발 > DBMS' 카테고리의 다른 글

[Web_DBMS] 06  (0) 2022.04.04
[Web_DBMS] 05  (0) 2022.04.03
[Web_DBMS] 03  (0) 2022.04.01
[Web_DBMS] 02  (0) 2022.03.31
[Web_DBMS] 01  (0) 2022.03.30