반응형
데이터 모델링의 이해 / 데이터 모델링의 이해
발생시점에 따른 엔터티 분류
- 기본/키엔터티(Fundamental Entity, Key Entity)
- 중심엔터티(Main Entity)
- 행위엔터티(Active Entity)
데이터모델링이란
- 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정
- 데이터베이스를 구축하기 위한 분석/설계의 과정
데이터 모델링 유의점
- 중복(Duplication)
- 비유연성(Inflexibility)
- 비일관성(Inconsistency)
개념적 데이터 모델링
- 추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링 진행.
- 전사적 데이터 모델링.
- EA수립시 많이 이용
논리적 데이터 모델링
- 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재 사용성이 높음
물리적 데이터 모델링
- 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
데이터베이스 스키마 구조 3단계
- 외부스키마(External Schema)
- 개념스키마(Conceptual Schema)
- 내부스키마(Internal Schema)
ERD 작성순서
- 엔터티를 그린다.
- 엔터티를 적절하게 배치한다.
- 엔터티간 관계를 설정한다.
- 관계명을 기술한다.
- 관계의 참여도를 기술한다.
- 관계의 필수여부를 기술한다.
엔터티의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. (예, 환자, 토익의 응시횟수, …)
- 유일한 식별자에 의해 식별이 가능해야 한다.
- 영속성으로 존재하는 인스턴스의 집합이어야 한다. (‘한 개’가 아니라 ‘두 개 ‘이상)
- 엔터티는 업무 프로세스에 의해 이용되어야 한다.
- 엔터티는 반드시 속성이 있어야 한다.
- 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
엔터티, 인스턴스, 속성, 속성값의 관계
- 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다.
- 한 개의 에넡티는 두 개 이상의 속성을 갖는다.
- 한 개의 속성은 한 개의 속성값을 갖는다.
속성의 특성에 따른 분류
- 기본속성
- 설계속성
- 파생속성
각 속성은 가질 수 있는 값의 범위가 있는데 이를 그 속성의 도메인(Domain)이라 하여, 엔터티내에서 속성에 대한 데이터타입과 크기 그리고 제약사항을 지정하는 것이다.
속성의 명칭 부여
- 해덩 업무에서 사용하는 이름을 부여한다.
- 서술식 속성명은 사용하지 않는다.
- 약어 사용은 가급적 제한한다.
- 전체 데이터모델에서 유일성 확보하는 것이 좋다.
ERD에서는 존재적 관계와 행위에 의한 관계를 구분하지 않지만 클래스 다이어그램에서는 이것을 구분하여 연관관계와 의존관계로 표현한다.
관계의 표기법
- 관계명(Membership) : 관계의 이름
- 관계차수(Cardinality) : 1:1, 1:M, M:N
- 관계선택사양(Optionality) : 필수관계, 선택관계
관계읽기
- 기준(Source) 엔터티를 한 개(One) 또는 각(Each)으로 읽는다.
- 대상(Target) 엔터티의 관계참여도 즉 개수(하나, 하나 이상)를 읽는다.
- 관계선택사양과 관계명을 읽는다.
두 개의 엔터티 사이에서 관계를 도출 할 때 체크할 사항
- 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?
- 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
- 업무기술서, 장표에 관계연결을 간으하게 하는 동사(Verb)가 있는가?
식별자의 종류
- 엔터티 내에서 대표성을 가지는가에 따라 주식별자(Primary Identifier)와 보조식별자(Alternate Identifier)로 구분
- 엔터티 내에서 스스로 생성되었는지 여부에 따라 내부식별자와 외부식별자(Foreign Identifier)로 구분
- 단일 속성으로 식별이 되는가에 따라 단일식별자(Single Identifier)와 복합식별자(Composit Identifier)로 구분
- 원래 업무적으로 의미가 있던 식별자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 구분하기 위해 본질식별자와 인조식별자로 구분
주식별자의 특징
- 유일성
- 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분함
- 최소성
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 불변성
- 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
- 존재성
- 주식별자가 지정되면 반드시 데이터 값이 존재(Null 안됨)
주식별자를 지정할 때 고려해야 할 사항
- 주식별자에 의해 엔터티 내의 모든 인스턴스들이 유일하게 구분되어야 한다
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
- 주식별자가 지정이 되면 반드시값이 들어와야 한다.
주식별자를 도출하기 위한 기준
- 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다.
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다.
- 복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 한다.
자주 수정되는 속성이 주식별자가 되면 엔터티에 대한 연쇄수정이 필요하여 시스템 상에 부하의 원인이 될 수 있기 때문에 주식별자로서 적합하지 않다.
식별자관계와 비식별자관계 비교
항목 | 식별자 관계 | 비식별자 관계 |
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 | 자식 주식별자의 구성에 포함됨 | 자식 일반 속성에 포함됨 |
표기법 | 실선 표현 | 점선 표현 |
연결 고려사항 | - 반드시 부모엔터티 종속 - 자식 주식별자구성에 부모 주식별자포함 필요 - 상속받은 주식별자속성을 타엔터티에 이전 필요 |
- 약한 종속관계 - 자식 주식별자구성을 독립적으로 구성 - 자식 주식별자구성에 부모 주식별자 부분 필요 - 상속받은 주식별자속성을 타 엔터티에 차단 필요 - 부모 쪽의 관계참여가 선택관계 |
식별자의 분류체계
분류 | 식별자 | 설명 |
대표성여부 | 주식별자 | 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조관계를 연결할 수 있는 식별자 |
보조식별자 | 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조관계 연결을 못함 | |
스스로 생성여부 |
내부식별자 | 엔터티 내부에서 스스로 만들어지는 식별자 |
외부식별자 | 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자 | |
속성의수 | 단일식별자 | 하나의 속성으로 구성된 식별자 |
복합식별자 | 둘 이상의 속성으로 구성된 식별자 | |
대체 여부 | 본질식별자 | 업무에 의해 만들어지는 식별자 |
인조식별자 | 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자 |
참조:
SQL자격검정실전문제
https://oversky.tistory.com/98
반응형
'🖥Web > 🔥DB & SQL' 카테고리의 다른 글
[DB & SQL] SQL 기본 문법 / SQL 기본 정리 (0) | 2022.05.14 |
---|---|
[DB & SQL] 데이터 모델링의 이해 / 데이터 모델과 성능 (0) | 2022.05.13 |
[Sql] Tablespace(테이블스페이스)란? (0) | 2020.06.07 |
[Sql] SQL Cursor (0) | 2020.03.20 |
[SQL] SQL의 예외처리 (0) | 2020.03.20 |