실습(조합키(1))
1. 요구사항 분석
- 꽃 테이블과 화분 테이블 2개가 필요합니다.
- 꽃을 구매할 때 화분도 같이 구매합니다.
- 꽃은 이름, 색상, 가격이 있습니다.
- 화분은 제품번호, 색상, 모양이 있습니다.
- 화분은 모든 꽃을 담을 수 없고 맞는 꽃들을 담아야 합니다.
2. 개념적 설계
![](https://blog.kakaocdn.net/dn/eFFg9y/btrx307rh4z/PZGuyGBg2j3Mbgzqg3pRtK/img.png)
3. 논리적 설계
![](https://blog.kakaocdn.net/dn/blgvFz/btrx1I0JY4J/pDkJzpxeNNQV2j0FxCiMu1/img.png)
4. 물리적 설계
![](https://blog.kakaocdn.net/dn/n4ZEk/btrxXMvVfBD/nlNZtWFOx3Ov93vLQCuyzK/img.png)
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를 설정한다.*/
);
![](https://blog.kakaocdn.net/dn/d9E2PY/btrx4TmGW0s/Y6OmliRB5mksLAwlQbXJbk/img.png)
※ 테이블명 변경
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)
);
![](https://blog.kakaocdn.net/dn/ISIuv/btrx1HAMWMj/Ru1udGkIX35AKAxO5qkWKK/img.png)
실습(조합키(2))
1. 요구사항 분석
- 반려동물
식별번호, 종류, 이름, 나이, 병명
- 주인
이름, 나이, 주소, 핸드폰 번호
2. 개념적 설계
![](https://blog.kakaocdn.net/dn/cHfQM9/btrxZCAv6bl/kyUpLnG1TJmckxjhwPUIK0/img.png)
3. 논리적 설계
![](https://blog.kakaocdn.net/dn/b1BQji/btrx18kECIw/ObZXu7Or7bynybCK94RTI1/img.png)
4. 물리적 설계
![](https://blog.kakaocdn.net/dn/nOcK8/btrx0tXzZGk/KqdqCNg7Wak5egqqDn76gk/img.png)
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)
);
![](https://blog.kakaocdn.net/dn/lGpkb/btrx07T1eUF/bkDs3qtskrQ7ZAJdJk3MI1/img.png)
- 테이블 생성(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
);
![](https://blog.kakaocdn.net/dn/8cPOg/btrx1HOkLFr/FWsDY5gn1Cr5igrscMML4K/img.png)
'웹 개발 > 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 |