컴퓨터 공학/Oracle DBMS

[SQLD] 과목1 데이터 모델링의 이해 요점정리

ITISIK 2021. 5. 9. 22:41
반응형


모델링(Modeling)


모델링(Modeling)이란?

현실세계를 표현하는 것

 

데이터 모델링 관점 세 가지

1) 데이터 : 비즈니스 프로세스에서 사용되는 데이터.
2) 프로세스 : 비즈니스 프로세스에서 수행하는 작업.
3) 데이터와 프로세스 : 프로세스와 데이터 간의 관계.

 

데이터 모델링 개념 세 가지

1) 개념적 데이터 모델링 : 높은 추상화. 업무중심적이고 포괄적인 수준의 모델링이 진행된다.(전사적 모델링/EA 수립시 많이 이용)
2) 논리적 데이터 모델링 : 시스템으로 구축하고자하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현한다.(재사용성이 높음)
3) 물리적 데이터 모델링 : 실제 DB에 이식할 수 있도록 성능, 보안, 가용성 등 물리적인 성격을 고려하여 설계한다.

 

데이터 모델링의 특징 네 가지

1) 일정한 형식에 맞추어 표현하는 추상화
2) 업무분석을 통해 시스템을 구현하도록 업무형상화
3) 복잡한 현실을 정해진 언어와 표기법으로 표현하는 단순화
4) 애매모호함을 빼고 쉽게 이해하도록 정확하게 기술하는 정확화(명확화)

 

모델링이 필요한 이유 두 가지

1) 업무를 구성하는 기초정보들을 일정한 표기법으로 표기함으로써, 구축 대상이 되는 업무 내용 및 프로세스를 정확하게 분석하기 위해
2) 분석된 내용을 토대로 실제 DB를 생성하여 개발 및 데이터 관리에 활용하기 위해

 

데이터 모델링시 피해야할 사항 세 가지

1) 중복(Duplication) : DB의 여러 곳에 같은 정보를 저장​​하지 않도록 한다.
2) 비유연성(Inflexibility) : 데이터 혹은 프로세스의 사소한 변화에 반응해 DB가 크게 변화하지 않도록 한다.
3) 비일관성(Inconsistency) : 데이터 간의 상호 연관 관계에 대해 명확하게 정의하여, 모순되지 않도록 한다.

 

데이터 베이스 스키마 구조 3단계(ANSI-SPARC 표준)

1) 외부 스키마 : 사용자 관점. DB의 View를 표시한다. 응용프로그램이 접근하는 DB를 정의한다.
2) 개념 스키마 : 설계자 관점. 모든 사용자 관점을 통합한 조직 전체 관점의 통합적 표현. 통합 DB 구조.
3) 내부 스키마 : 개발자 관점. DB의 물리적 저장구조. 저장구조, 레코드 구조, 필드 정의, 인덱스 등을 의미.

 

 

 


엔터티(Entity)


엔터티(Entity)란?

업무(비즈니스)에서 관리해야하는 데이터 집합을 의미한다.
즉, 엔터티는 저장되고 관리 되어야 하는 데이터이다.


엔터티 명명규칙

1) 가능한한 현업업무에서 사용하는 용어를 사용한다.
2) 가능한한 약어를 사용하지 않는다.
3) 단수명사를 사용한다.
4) 모든 엔터티를 통틀어 유일하게 명명한다.
5) 엔터티 생성 의미대로 명명한다.

 

엔터티의 특징

1) 유일한 식별자를 갖는다. (e.g. 주민등록번호. 주문번호 등)
2) 2개 이상의 인스턴스를 갖는다. (e.g. 두 사람 이상, 두 건 이상의 주문 등)
3) 반드시 속성을 갖는다. (e.g. 이름, 주민등록번호, 제품ID)
4) 다른 엔터티와 최소 한 개 이상의 관계를 갖는다. (e.g. 주문, 혼인 등)

- 단, 통계성/코드성 엔터티의 경우 관계를 생략할 수도 있다.
5) 업무 프로세스에 의해 이용/관리되어야 한다.


유형/무형에 따른 엔터티의 종류

1) 유형 엔터티 : 물리적 형태가 있으며, 업무에 지속적으로 사용되는 엔터티 (e.g. 고객 등)
2) 개념 엔터티 : 물리적 형태가 없으며, 개념적으로 사용되는 엔터티 (e.g. 보험상품, 비트코인 등)
3) 사건 엔터티 : 비즈니스 프로세스를 실행하면서 생성된 엔터티 (e.g. 주문, 매수, 매도 등)


발생 시점에 따른 엔터티의 종류

1) 기본 엔터티 : Key 엔터티라고도 불린다. 다른 엔터티의 영향을 받지 않고 독립적으로 생성되는 엔터티 (e.g. 고객 등)
2) 중심 엔터티 : 기본 엔터티와 행위 엔터티의 중간 개념으로, 기본 엔터티로 부터 파생되어 행위 엔터티를 생성하는 엔터티 (e.g. 주문, 체결 등)

3) 행위 엔터티 : 2개 인상의 엔터티로부터 발생되는 엔터티 (e.g. 주문내역, 체결이력 등)

 


도메인(Domain)이란?

각 엔터티(테이블)의 속성에 대해 어떤 유형의 값이 들어가는지를 정의하는 것.

 

 

 


ERD(Entity Relationship Diagram)


ERD(Entity Relationship Diagram)란?

1) 1976년 피터 첸에 의해 만들어 졌으며, 사실상 표준으로 사용되고 있다.
2) 엔터티(Entity)와 엔터티 간의 관계(Relationship)를 정의하는 모델링 방법이다.


ERD 작성 순서

1) 엔터티를 그린다.
2) 엔터티를 적절하게 배치한다.
3) 엔터티간의 관계를 설정한다.
4) 관계명을 기술한다.
5) 관계의 참여도를 기술한다.
6) 관계의 필수여부를 기술한다.


-ERD 요점 중 그림은 우선 생략-


ERD 작성시 고려사항

1) 중요한 엔터티는 가급적 좌측 상단에 배치한다.
2) ERD는 이해가 쉬워야 하기 때문에 너무 복잡하지 않아야 한다.

 

 

 


속성(Attribute)


속성(Attribute)이란?

1) 업무에서 필요한 정보인 엔터티가 가지는 항목이다.
2) 더 이상 분리되지 않는 최소의 데이터 단위로, 업무에 필요한 데이터를 저장할 수 있다.
3) 인스턴스의 구성요소이고, 의미적으로 더 이상 분해되지 않는다.


속성의 명명규칙

1) 지나친 약어 사용은 가급적 지양한다.
2) 서술식 용어는 사용하지 않도록 한다.
3) 복합명사를 사용하여 구체적으로 명명한다.
4) 전체 데이터 모델에서 ​​유일성을 확보하는 것이 향후 있을 반정규화, 통합 작업에 있어 유리하다.


속성의 특징

1) 엔터티에 대한 자세하고 구체적인 정보를 나타낸다.
2) 하나의 엔터티는 두 개 이상의 속성을 갖는다.
3) 하나의 인스턴스에서 각각의 속성은 하나의 속성값만을 갖는다.
4) 속성도 집합이다.


분해여부에 따른 속성의 종류

1) 단일 속성 : 하나의 의미로 구성된 것. (e.g. 주민등록번호, 이름 등)
2) 복합 속성 : 여러개의 의미로 구성된 것. (e.g. 주소(시/군/구/읍/면/동/리))
3) 다중값 속성 : 속성에 여러개의 값을 가질 수 있는 것으로, 엔터티로 분해된다. (e.g. 상품목록)


특성에 따른 속성의 종류

1) 기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 속성이다.
2) 설계 속성 : 데이터 모델링 과정에서 발생되는 속성이며, 유일한 값을 부여한다. (e.g. 상품분류, 공통코드 등)3) 파생 속성 : 다른 속성에 의해 만들어지는 속성이다. (e.g. 성능을 위해 원래 속성의 값을 계산하여 저장할 수 있도록 만든 속성)

 

 

 


관계(Relationship)


관계(Relationship)란?

1) 엔터티 간의 관련성을 의미하며, 존재에 의한 관계와 행위에 의한 관계로 나눌 수 있다.
2) 존재 관계는 두 개의 엔터티가 존재 여부에 관계가 있는 것이고, 행위 관계는 두 개의 엔터티가 어떤 행위에 의한 관련성이 있는 것이다.

 

관계의 특징

1) 존재적 관계와 행위에 의한 관계로 나눌 수 있다.
2) 관계 표기법은 관계명, 관계차수, 선택성(선택사양)의 3가지 개념을 사용한다.
3) ERD에 표기할 때에는 존재 관계/행위 관계를 따지지 않고 획일화 되어 표현한다.
4) UML(Unified Modeling Language)에 표기할 때에는 클래스 다이어그램의 관계 중 연관관계와 의존관계가 있고, 이것은 실선과 점선 표기법으로 구분되어 표현한다.


관계의 표기법

1) 관계명 : 관계의 이름
2) 관계차수 : 1:1, 1:M, M:N
3) 관계선택사양 : 필수관계, 선택관계


엔터티 간의 관계 도출(체크)시 체크리스트

1) 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?
2) 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
3) 업무기술서, 장표에 관계 연결을 가능하게 하는 동사(Verb)가 존재하는가?
4) 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?


식별관계란?

어떤 강한 개체의 기본키를 다른 강한 개체의 기본키의 하나로 공유하는 것.
※ 강한개체란, 독립적으로 존재할 수 있는 엔터티를 의미한다.


비식별관계란?

강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 컬럼으로 관계를 가지는 것.

 

 

 


식별자(Identity)


식별자(Identity)란?

엔터티를 대표할 수 있는 유일성을 만족하는 속성이다.(e.g. 주민등록번호, 계좌번호 등)


주식별자(Primary Key)란?

1) 엔터티의 인스턴스를 유일하게 식별해야 한다.
2) 유일성과 최소성을 만족하는 키이다.
3) 엔터티를 대표할 수 있어야 한다.
4) 자주 변경되지 않아야 한다.


키의 종류

1) 후보키(Candidate Key) : 유일성과 최소성을 만족하는 키이다.
2) 기본키(Primary Key) : 후보키 중에서 엔터티를 대표할 수 있는 키이다.
3) 대체키(Alternate Key) : 여러개의 후보키 중에서 기본키를 제외한 나머지 키이다.
4) 슈퍼키(Super Key) : 유일성(Unique)은 만족하지만 최소성(Not Null)은 만족하지 않는 키이다.


대표성에 따른 식별자의 종류

1) 주 식별자 : 유일성과 최소성을 만족하면서 엔터티를 대표하는 식별자이며, 다른 엔터티와 참조 관계로 연결될 수 있다.
2) 보조 식별자 : 유일성과 최소성은 만족하지만, 대표성을 만족하지 못하는 식별자이다.


생성 여부에 따른 식별자의 종류

1) 내부 식별자 : 엔터티 내부에서 스스로 생성되는 식별자이다.
2) 외부 식별자 : 다른 엔터티의 관계로 인하여 만들어지는 식별자이다.


속성의 수에 따른 식별자의 종류

1) 단일 식별자 : 하나의 속성으로 구성된 식별자이다.
2) 복합 식별자 : 두 개 이상의 속성으로 구성된 식별자이다.


대체 여부에 따른 식별자의 종류

1) 본질 식별자 : 비즈니스 프로세스에 의해 만들어지는 식별자이다.
2) 인조 식별자 : 인위적으로 만들어지는 식별자이다.

반응형