josolha
데이터 모델링 본문
데이터 모델링이란??
'문제'를 현실로부터 뜯어내어 고도의 '추상화과정'을 거쳐서 '컴퓨터라는 새로운 현실'로
옮겨 담는 것이라 할 수 있다. 이에 현실의 '모델'이 컴퓨터의 '표'에 잘 담기는지 끊임 없이 확인 해야한다.
순서도 : 1.업무파악 → 2.개념적 데이터 모델링 → 3.논리적 데이터 모델링 → 4.물리적 데이터 모델링
1.업무파악
- 현재 하려는 일이 무엇인지, 어떤것을 만들고 싶은지에 대한 요건 정의서, 기획서를 이용하여 업무파악을 할 수 있다.
2.개념적 데이터 모델링
- 개념들이 어떻게 상호작용하는지 파악하는 단계
- E-R다이어그램 작성
뜻: Entity Relationship Diagram 개체(entitiy)- 관계(relationship) 다이어그램 그림으로
그려 나타내 이를 다른 사람도 알아볼 수 있게 표현하는 것.
E-R 다이어그램 표기법에는 피터 첸 표기법, 정보 공학 표기법(IE), 바커 표기법등이 있는데,
이 중 E-R모델을 제안한 피터 첸의 표기법이 가장 기본적이다.
(실무에서는 피터첸 사용 X, 보통 IE 표기법이 쓰임)
2-1. 피터 첸 표기법
- 다음은 피터 첸 표기법(Peter Chen Notation)으로 ERD 다이어그램을 구성한 그림이다.
그리는 방법은 어렵지 않다. 도형이 의미하는 바를 알고 화살표를 통해 관계를 표현하기만 하면 된다.
- Entity (개체) 현실에 존재하는 개별적으로 식별할 수 있는 물리적 또는 추상적인 개체 이며
각 Entity 는 특징을 나타낼 수 있는 Attribute (속성)들을 가지고 있다.- 예를 들어 ‘학생’ 이라는 Entity 는 ‘학번’, ‘학생 이름’ 등의 Attribute 를 가질 수 있고,
- ‘수업’ 이라는 Entity 는 ‘수업번호’, ‘수업 이름’ 등의 Attribute 를 가질 수 있다.
- ER(개체-관계) 모델은 위에서 설명한 Entity(개체) 사이의 Relation (관계)을 통해 현실 세계를 표현하기 위한 설계 방식이다.
- 예를 들어 ‘학생’ 과 ‘수업’ Entity 끼리는 ‘수강하다’ 라는 관계를 맺을 수 있다.
추가적으로 논리적 데이터 모델링에서는 구현시에 이렇게 변경된다.
Entity(개체) -> table
Attribute(속성) -> column
Relation(관계) -> pk.fk
2-2. IE 표기법
- Entity(개체)
- Attribute(속성)
- Relation(관계)
엔티티 또는 속성간의 연관성, 관계- 관계명 : 엔터티가 관계에 참여하는 형태를 지칭한다.
각각의 관계는 두 개의 관계명을 가지고 있다. 또한 각각의 관계명에 의해 두 가지의 관점으로 표현될 수 있다.
아래의 사진을 확인하자
- 관계명 : 엔터티가 관계에 참여하는 형태를 지칭한다.
-
- 관계차수(Cardinality) : 특정 관계에서 참여하는 수를 나타낸다.
- 1:1, 1:M, M:N
1:1 관계 : 한 학생은 한 개의 사물함을 갖는다. / 한 사물함은 한명의 학생이 갖는다.
1:n 관계 : 한 학생은 여러 개의 교과서를 갖는다. / 하나의 교과서는 한 명의 학생이 갖는다.
n:n 관계 : 한 학생은 여러 과목을 수강한다. / 한 과목은 여러명의 학생이 수강한다.
- 1:1, 1:M, M:N
- 관계차수(Cardinality) : 특정 관계에서 참여하는 수를 나타낸다.
- 관계선택사양(Optionality)
- 엔터티가 항상 관계에 참여하는지, 아니면 선택적으로 관계에 참여할 수 있는 것인지를 의미한다.
이때 항상 관계에 참여하는 것을 필수 참여(Mandatory Membership)이고 선택적으로 관계에 참여하는 것을
선택 참여(Optional Membership)이라고 한다.
- 엔터티가 항상 관계에 참여하는지, 아니면 선택적으로 관계에 참여할 수 있는 것인지를 의미한다.
-
- 위와 같이 학생 엔터티와 수업 엔터티가 있을 때, 학생 엔터티는 수업 엔터티와 관계가 있을수도 있고 없을수도 있기 때문에
학생 엔터티를 기준으로 학생-수업 관계는 선택참여가 된다. 따라서 위와 같이 동그라미표시를 한다. - 반대로 수업 엔터티는 학생 엔터티가 관계가 필수적이기 때문에 수업 엔터티를 기준으로 수업-학생 관계는 필수 참여가 되고
이때에는 아무런 표시를 하지 않는다. (학생이 듣지 않는 수업에 대해서는 고려하지 않았다.)
- 위와 같이 학생 엔터티와 수업 엔터티가 있을 때, 학생 엔터티는 수업 엔터티와 관계가 있을수도 있고 없을수도 있기 때문에
- 식별관계
- 실선 : 식별관계 - 부모테이블의 PK가 자식테이블의 FK/PK가 되는 경우
- 점선 : 비식별관계 - 부모테이블의 PK가 자식테이블의 일반속성이 되는 경우
3.논리적 데이터 모델링
- 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환한다.
- 필드로 기술된 데이터 타입과 데이터 타입들 간의 관계를 이용하여 현실세계를 표현한다.
- 단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미한다.
- 특정 DBMS는 특정 논리적 데이터 모델 하나만 선정하여 사용하고
데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분한다.
4.물리적 데이터 모델링
- 물리적 데이터 모델링은 최종적으로 데이터를 관리할 데이터 베이스를 선택하고,
선택한 데이터 베이스에 실제 테이블을 만드는 작업 을 말한다.
시각적인 구조를 만들었으면 그것을 실제로 SQL 코딩을 통해 완성하는 단계라고 보면 된다.