-
데이터 모델링의 주요 개념DB/Oracle 2021. 5. 10. 15:59
개인 공부 후 정리 목적인 글입니다.
데이터 모델링(=논리적 데이터베이스 설계)
데이터 모델링의 목적
- 정보 시스템을 구축하는데 필요한 정보(데이터)를 약속된 표기법에 의해 표현함으로써
시스템 구축 대상이 되는 업무 내용을 정확하게 분석하고자 함
- 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 관리에 이용하고자 함
데이터 모델링의 세가지 개념
1. 엔티티
2. 관계
3. 속성
데이터베이스 용어 vs 모델링 용어
데이터베이스 용어 모델링 용어 테이블(table) 엔티티(entity) 컬럼(column), 열 속성(attribute) 튜플(tuple), 행(row) 인스턴스(instance) 기본키(primary key) 주식별자(primary identifier) 외래키(foreign key) 외래 식별자(foreign identifier) 엔티티(entity)
: 업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 알아야하는 유형, 무형의 사물이나 객체
- 유형 엔티티 : 물리적인 형태가 있고 쉽게 엔티티임을 알 수 있다.
- 무형 엔티티 : 물리적인 형태가 없고 개념적으로 존재하는 엔티티
- 문서 엔티티 : 업무 절차상에서 사용되는 문서나 장부, 전표에 대한 엔티티
- 이력 엔티티 : 업무상 반복적으로 이루어지는 행위나 사건의 내용을 일자별, 시간별로 저장하기 위한 엔티티
- 코드 엔티티 : 무형 엔티티의 일종으로 각종 코드를 관리하기 위한 엔티티
엔티티의 특징
- 시스템 구축 대상이 되는 업무에서 필요하고 관리하고자 하는 정보이여야 한다.
- 일반적으로 엔티티는 2개 이상의 인스턴스(instance)가 존재해야 의미가 있다.
- 반드시 하나 이상의 속성을 가져야 한다.
엔티티의 일반적인 명명 기준
- 현업 업무에서 사용하는 용어를 사용한다
- 약어를 가능하면 사용하지 않는다
- 단수명사를 사용한다
- 모든 엔티티명은 유일해야 된다
- 엔티티 생성 의미대로 이름을 부여한다
속성(Attribute)
: 엔티티에서 관리하고자 하는 더 이상 분리되지 않는 최소 단위의 데이터로 엔티티는 '속성들의 집합'으로 정의될 수 있다. 엔티티는 한 개 혹은 한 개 이상의 속성을 가진다.
- 기본 속성 : 업무분석을 통해 현실세계로부터 얻어낸 속성
- 설계 속성 : 원래 현실세계에는 존재하지 않지만 설계 과정에서 만들어진 속성
- 유도 속성 : 다른 속성으로부터 계산이나 변형에 의해 나온 속성
속성의 명명 기준
- 속성의 의미가 분명하게 드러나는 이름을 부여한다.
- 해당 업무에서 사용하는 이름을 부여한다.
- 서술식 속성명은 사용하지 않는다.
- 약어 사용은 가급적 피하도록 한다.
- 엔티티에서 유일하게 식별 가능하도록 지정한다.
관계(Relationship)
: 두 개 혹은 그 이상의 엔티티들 간의 의미있는 연결로 엔티티와 엔티티가 존재의 형태나 행위로 서로에게 영향을 주는 형태이다. 두 엔티티가 관계가 있다는 의미는 상호 공유하는 속성이 있다는 의미이다.
관계의 명명 기준
- 두 엔티티 사이의 관계에 대해 이름을 붙이는 것으로 어느 관점에서 보느냐에 따라 이름이 다르다.
관계의 카디널리티(Cardinality)
- 두 개의 엔티티간의 관계에서 참여자(인스턴스)의 수를 표현한 것(1 : 1 관계, 1 : N 관계, M : N 관계)
- 단일 : |
- 다중 : <
관계의 참여도
- 관계가 있는 두 엔티티의 인스턴스들이 항상 관계에 참여 하는지, 아니면 경우에 따라 관계에 참여하는지의 여부
- 필수 : |
- 선택 : o
부모 엔티티와 자식 엔티티
- 상호 관계가 있는 두 엔티티는 부모 - 자식의 관계에 있는 경우가 많다.
- 무조, 자식 여부는 어느쪽에 정보가 먼저 생성이 되는가에 따라 결정 된다.
(정보가 먼저 생성되는 쪽이 부모, 가져다 쓰는 쪽이 자식)
- 두 엔티티가 부모 - 자식의 관계가 있다면 일반적으로 부모 엔티티와 자식 엔티티의 카디낼러티는 1:N이고
참여도는 부모쪽이 필수, 자식쪽이 선택으로 나타난다.