코딩항해기

[DBMS/Oracle] 데이터 모델링 본문

DBMS/Oracle

[DBMS/Oracle] 데이터 모델링

miniBcake 2024. 7. 8. 20:22

데이터 모델링

현실 세계를 단순화하여 표현하는 기법

 

 

[요약]

모델링 순서 : 요구사항 분석 > 개념 모델링 > 논리 모델링 > 물리 모델링 > 구현

 

 


모델링의 특징

추상화 (Abstraction) 현실 세계를 일정한 형식으로 표현
단순화 (Simplication) 복잡한 현실 세계를 정해진 표기법으로 단순하게 표현
명확화 (Clarity) 불분명함을 제거하고 명확하게 해석할 수 있도록 기술

 

 

모델링의 관점

데이터 관점 어떤 데이터가 업무와 얽혀있는지, 그 데이터 간에는 어떤 관계가 있는지에 대하여 모델링하는 방법
프로세스 관점 이 업무가 실제로 처리하고 있는 일은 무엇인지 또는 앞으로 처리해야 하는 일은 무엇인지를 모델링하는 방법
데이터와 프로세스의 상관관점 프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지를 모델링하는 방법

 

 

모델링의 단계

개념적 모델링 (Conceptual) 추상화 레벨이 가장 높은 모델링으로 이 단계에서는 업무 중심적이고 포괄적인 수준의 모델링이 진행된다.
논리적 모델링 (Logical) 재사용성이 가장 높은 모델링으로 데이터베이스 모델에 대한 key, 속성, 관계 등을 모두 표현하는 단계이다.
물리적 모델링 (Physical) 실제 데이터베이스로 구현할 수 있도록 성능이나 가용성 등의 물리적인 성격을 고려하여 모델을 표현하는 단계이다.

 

 


 

모델링 예시

 

[요구사항]

도서관에서 회원의 정보와 책의 정보가 필요하다.

회원의 정보는 회원번호, 이름, 나이, 폰번호, 주소가 필요하고,

책의 정보는 도서번호, 책이름, 장르가 필요하다.

단, 장르는 인문학, 추리, IT만 있으며, 한 명의 회원의 여러 권의 책을 빌릴 수 있다.

(책은 한 권씩만 존재한다.)

 

 

1. 요구사항 분석

회원 테이블과 책 테이블이 존재하며, 책 테이블은 회원테이블의 주식별자(PK)를 일반 속성으로 참조한다.따라서, 부모 테이블은 회원 테이블이 된다.

 

 

 

2. 개념적 설계

회원  회원번호, 이름, 나이, 폰번호, 주소
  도서번호, 책이름, 장르

 

 

 

3. 논리적 설계

회원
회원번호(PK),
이름,
나이,
폰번호,
주소
도서번호(PK),
책이름,
장르(장르제한:인문학, 추리,IT)
+(FK:회원번호)

 

 

 

4. 물리적 설계

TBL_MEMBER TBL_BOOK
MEMBER_NUMBER NUMBER : PK
----------------------------------------------------

MEMBER_NAME VARCHAR2(1000)
MEMBER_AGE NUMBER
MEMBER_PHONE VARCHAR2 : NOT NULL, UNIQUE
MEMBER_ADRESS VARCHAR2(1000) : NOT NULL
BOOK_NUMBER NUMBER : PK
----------------------------------------------------
BOOK_NAME VARCHAR2(1000)
BOOK_GENRE VARCHAR2(1000) BAN_BOOK CHECK (인문학, 추리,IT) ,NOT NULL
MEMBER_NUMBER NUMBER : FK

 

 

 

5. 구현

CREATE TABLE TBL_MEMBER(
	MEMBER_NUMBER NUMBER,
	MEMBER_NAME VARCHAR2(1000),
	MEMBER_AGE NUMBER,
	MEMBER_PHONE VARCHAR2 NOT NULL,
	MEMBER_ADRESS VARCHAR2(1000) NOT NULL,
	CONSTRAINT PK_MEMBER PRIMARY KEY(MEMBER_NUMBER),
	UNIQUE(MEMBER_PHONE)
);

CREATE TABLE TBL_BOOK(
	BOOK_NUMBER NUMBER,
	BOOK_NAME VARCHAR2(1000),
	BOOK_GENRE VARCHAR2(1000) NOT NULL ,
	MEMBER_NUMBER NUMBER ,
	CONSTRAINT PK_BOOK PRIMARY KEY(BOOK_NUMBER),
	CONSTRAINT FK_BOOK FOREIGN KEY(BOOK_GENRE) REFERENCES TBL_MEMBER(BOOK_GENRE),
	CONSTRAINT CHECK_BOOK CHECK(BOOK_GARGE IN('인문학', '추리','IT')
);

'DBMS > Oracle' 카테고리의 다른 글

[DBMS/Oracle] WHERE절과 연산자  (0) 2024.07.28
[DBMS/Oracle] SELECT문 (+DISTINCT, AS, ORDER BY)  (0) 2024.07.27
[DBMS/Oracle] 식별자  (0) 2024.07.08
[DBMS/Oracle] 시퀀스 SEQUENCE  (0) 2024.07.07
[DBMS/Oracle] 무결성  (0) 2024.06.24