수업을 들으면서 모델링 단계에 대해 배운 것을 기록해두려고 한다.
❌ 이론적인 내용은 없다❌
모델링 (기획)
1. 요구사항 분석
👩🦰 : 요구사항은 다음과 같습니다.
- 도서관에서 회원의 정보와 책의 정보가 필요합니다.
- 회원의 정보는 회원번호, 이름, 나이, 휴대폰번호, 주소가 필요합니다.
- 책의 정보는 도서번호, 책 이름, 장르가 필요합니다.
- 단, 장르는 인문학, 추리, IT, 로맨스로만 구성되어 있습니다.
- 한 명의 회원은 여러 권의 책을 빌릴 수 있습니다.
- 테이블 명은 MEMBER, BOOK 으로 해주세요.
2. 개념적 설계(개념 모델링)
회원 | 도서 |
회원번호 | 도서번호 |
이름 | 책 이름 |
나이 | 장르 |
휴대폰번호 | |
주소 |
3. 논리적 설계(논리 모델링)
회원 | 도서 |
회원번호 (PK) | 도서번호 (PK) |
이름 NOT NULL | 책 이름 NOT NULL |
나이 NOT NULL | 장르 (CHECK) |
휴대폰번호 NOT NULL | 회원번호 (FK) |
주소 NOT NULL |
4. 물리적 설계(물리 모델링)
TBL_MEMBER
MEMBER_ID NUMBER : PRIMARY KEY
-----------------------------------
MEMBER_NAME VARCHAR2(500) : NOT NULL
MEMBER_AGE NUMBER : NOT NULL
MEMBER_PHONE VARCHAR2(500) : NOT NULL
MEMBER_ADDRESS VARCHAR2(500) : NOT NULL
TBL_BOOK
BOOK_ID NUMBER : PRIMARY KEY
-----------------------------------
BOOK_NAME VARCHAR2(500) NOT NULL
BOOK_GENRE VARCHAR2(500) : CHECK('인문학', '추리', 'IT', '로맨스')
MEMBER_ID NUMBER : FORIEGN KEY
5. 구현
CREATE TABLE TBL_MEMBER(
MEMBER_ID NUMBER,
MEMBER_NAME VARCHAR2(500) NOT NULL,
MEMBER_AGE NUMBER NOT NULL,
MEMBER_PHONE VARCHAR2(500) NOT NULL,
MEMBER_ADDRESS VARCHAR2(500) NOT NULL,
CONSTRAINT PK_MEMBER PRIMARY KEY(MEMBER_ID),
CONSTRAINT UK_MEMBER UNIQUE(MEMBER_PHONE)
);
-- 항상 부모 테이블을 먼저 만들어야함
-- 자식 테이블은 부모 테이블을 참조하여 FK를 만드는데 이 때 참조할 부모 테이블이 없을 경우 만들어지지 않음
CREATE TABLE TBL_BOOK(
BOOK_ID NUMBER,
BOOK_NAME VARCHAR2(500) NOT NULL,
BOOK_GENRE VARCHAR2(500),
MEMBER_ID NUMBER,
CONSTRAINT PK_BOOK PRIMARY KEY(BOOK_ID),
CONSTRAINT FK_BOOK FOREIGN KEY(MEMBER_ID)
REFERENCES TBL_MEMBER(MEMBER_ID),
CHECK(BOOK_GENRE IN ('인문학', '추리', 'IT', '로맨스'))
);
'📁 Language > 🛢️ SQL' 카테고리의 다른 글
[SQL] 시퀀스(Sequence) (0) | 2024.03.22 |
---|---|
[SQL] 관계를 맺은 테이블의 DML (0) | 2024.03.21 |
[SQL] 무결성 (0) | 2024.03.21 |
[SQL] 조합키(복합키) (0) | 2024.03.21 |
[SQL] 제약 조건 (PK, FK, UK, NOT NULL, CHECK) (0) | 2024.03.21 |