여름의 서재
[SQLD] 1과목_1장. 데이터 모델링의 이해 본문
제 1절. 데이터 모델의 이해
1) 모델링의 정의
- 복잡한 ‘현실세계’를 단순화시켜 표현하는 것
- 사물 또는 사건에 관한 양상이나 관점을 사람이나 그룹을 위하여 명확하게 하는 것
- 현실 세계의 추상화된 반영
2) 모델링의 특징
- 추상화 : 다양한 현상을 일정한 양식인 표기법에 의해 표현하는 것
- 단순화: 복잡한 현실 세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할수 있도록 하는 것
- 명확화: 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것
3) 모델링의 관점
- 데이터 관점: 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서 모 델링하는 방법
- 프로세스관점: 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법
- 상관 관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법
4) 데이터 모델링의 정의
- 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실 세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정
- 데이터베이스를 구축하기 위한 분석/설계의 과정
5) 데이터 모델링을 할때 유의점
- 중복: 여러 장소에 같은 정보를 저장하는 잘못을 하면 안됨
- 비유연성: 사소한 업무 변화에 데이터 모델이 수시로 변경되면 안됨
- 비일관성: 개발자가 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할수 있음.
6) 데이터 모델링의 3단계
- 개념적 데이터 모델링: 추상화 수준이 높고, 업무중심적이고 포괄적인 수준의 모델링 진행, 전사적 데이터 모델링.
- 논리적 데이터 모델링: 시스셈으로 구축하고자 하는 업무에 대해 key, 속성, 관계 들을 정확하게 표현, 재사용성 높음.
- 물리적 데이터 모델링: 실제로 데이터베이스에 이식할 수 있도록 선능, 저장 등 물리적인 성격을 고려하여 설계
7) 데이터 독립성 요소
- 외부스키마: view 단계 여러개의 사용자 관점으로 구성, 즉 개개 사용자 단계로서 개개 사용자가 보는 개인적 DB 스키마
- 개념스키마: 모든 응용 시스켐들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB 와 그들간의 관계를 표현
- 내부스키마: 물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현하는 스키마.
8) 데이터 독립성
- 논리적 독립성 : 개념 스키마가 변경되어도 외부스키마에 영향 x
- 물리적 독립성 : 내부스키마가 변경되어도 외부/개념 스키마는 영향 x
9) 데이터 모델링의 3가지 요소
- 업무가 관여하는 어떤 것(Things)
- 어떤 것이 가지는 성격(Attributes)
- 업무가 관여하는 어떤 것 간의 관계(Relationships)
10) 데이터 모델의 표기법
11) ERD 작성 순서
① 엔터티를 그린다.
② 엔터티를 적절하게 배치한다.
③ 엔터티간 관계를 설정한다.
④ 관계명을 기술한다.
⑤ 관계의 참여도를 기술한다. ⑥ 관계의 필수여부를 기술한다.
12) 좋은 데이터 모델의 요소
- 완전성: 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의되어 있어야 한다.
- 중복배제: 하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록하여야 한다.
- 업무규칙: 가 데이터 모델링 과정에서 도출되고 규명되는 수많은 업무규칙을 데이터 모델에 표현하고 이를 해당 데이터 모델을 활용하는 모든 사 용자가 공유할 수 있도록 제공해야 한다
- 데이터 재사용: 데이터의 통합성과 독립성에 대해서 충분히 고려해야 한다
- 의사소통: 데이터는 의사소통의 용도로 사용할 수 있다.
- 통합성: 공유 데이터에 대한 구조를 여러 업무 영역에서 공동으로 사용하기 용이하게 정의할 수 있어야 한 다.
제 2절. 엔터티
1) 엔터티의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
- 유일한 식별자에 의해 식별이 가능해야 한다.
- 영속적으로 존재하는 인스턴스의 집합이어야 한다.(‘한 개’가 아니라 ‘두 개 이상’)
- 엔터티는 업무 프로세스에 의해 이용되어야 한다.
- 엔터티는 반드시 속성이 있어야 한다.
- 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
2) 엔터티의 분류
- 유무형에 따른 분류
- 유형: 물리적 형태 ex)사원, 물품, 강사
- 개념: 개념적 정보 ex)조직, 보험상품
- 사건: 업무 수행시 발생 ex)주문, 청구, 미납
- 발생시점에 따른 분류
- 기본: 그 업무에 원래 존재하는 정보, 타 엔터티의 부모 역할, 자신의 고유한 주식별자 가짐 ex)사원,부서
- 중심: 기본 엔터티로부터 발생, 다른 엔터티와의 관계로 많은 행위 엔터티 생성 ex)계약, 사고, 주문
- 행위: 2개 이상의 부모엔터티로부터 발생, 자주 바뀌거나 양이 증가 ex)주문목록, 사원변경이력
3) 엔터티의 명명
- 가능하면 현업업무에서 사용하는 용어를 사용한다.
- 가능하면 약어를 사용하지 않는다.
- 단수명사를 사용한다.
- 모든 엔터티에서 유일하게 이름이 부여되어야 한다.
- 엔터티 생성의미대로 이름을 부여한다.
제 3절. 속성
1) 속성의 정의
- 업무에서 필요로 한다.
- 의미상 더 이상 분리되지 않는다.
- 엔터티를 설명하고 인스턴스의 구성요소가 된다.
- 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 한다.
2) 엔터티, 인스턴스, 속성, 속성값에 대한 관계
- 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다.
- 한 개의 엔터티는 두 개 이상의 속성을 갖는다.
- 한 개의 속성은 한 개의 속성값을 갖는다.
3) 속성의 분류
- 기본: 업무로부터 추출한 모든 일반적인 속성
- 설계: 업무를 규칙화하기 위해 새로 만들거나 변형, 정의하는 속성 ex)일련번호
- 파생: 다른 속성에 영향을 받아 발생하는 속성, 빠른 성능을 낼 수 있도록 원래 속성의 값을 계산 ex)합
4) 속성의 명명
- 해당업무에서 사용하는 이름 부여
- 서술식 속성명은 사용 금지
- 약어 사용 금지
- 전체 데이터모델에서 유일성 확보
제 4절. 관계
1) 관계의 페어링
:각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태
ex) 정설철은 이춘식과 황종하에게 강의를 해주고, 조시형은 황종하에게 강의를 해줌
2) 관계의 분류
- 존재에 의한 관계 (연관 관계) -> 실선
- 행위에 의한 관계 (의존 관계) -> 점선
3) 관계의 표기법
- 관계명 : 관계의 이름
- 관계차수 : 1:1, 1:M, M:N
- 관계선택성(관계선택사양) : 필수관계, 선택관계
4) 관계 체크사항
- 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?
- 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
- 업무 기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가?
제 5절. 식별자
1) 식별자의 특징
- 주식별자 & 대체 식별자
- 유일성: 주식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분되어야 한다.
- 최소성: 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- 불변성: 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
- 존재성: 주식별자가 지정이 되면 반드시 값이 들어와야 한다.
- 외부식별자
- 참조무결성 제약조건에 따른 특징을 가짐
2) 식별자의 분류
- 대표성여부
- 주식별자 : 엔터티 내에서 각 어커런스를 구분할 수 있는 구 분자, 타 엔터티와 참조관계를 연결할 수 있음
- 보조식별자 : 어커런스를 구분할 수 있는 구분자이나 대표성 을 가지지 못해 참조관계 연결 불가
- 스스로생성여부
- 내부실별자 : 스스로 생성되는 식별자
- 외부식별자 : 타 엔터티로부터 받아오는 식별자
- 속성의 수
- 단일식별자 : 하나의 속성으로 구성
- 복합식별자 : 2개 이상의 속성으로 구성
- 대체 여부
- 본질식별자 : 업무에 의해 만들어지는 식별자
- 인조식별자 : 인위적으로 만든 식별자
3) 주식별자 도출기준
- 해당 업무에서 자주 이용되는 속성임
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 x
- 복합으로 주식별자가 구성될 경우 너무 많은 속성x
4) 식별자 관계와 비식별자 관계의 결정
- 식별자 관계: 부모로부터 받은 식별자를 자식엔터티의 주식별자로 이용하는 경우
ex) 사원과 발령의 관계는 1:M관계, 사원과 임시직사원의 관계는 1:1관계
- 비식별자 관계: 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우
- 자식엔터티에서 받은 속성이 반드시 필수가 아니어도 무방하기 때문에 부모 없는 자식이 생성될 수 있는 경우
- 엔터티별로 데이터의 생명주기(Life Cycle)를 다르게 관리할 경우. 예를 들어 부모엔터티에 인스턴스가 자식의 엔터티와 관계를 가지고 있었지만 자식만 남겨두고 먼저 소멸될 수 있는 경우가 이에 해당된다. 이에 대한 방안으로 물리데이터베이스 생성 시 Foreign Key 를 연결하지 않는 임시적인 방법을 사용하기도 하지만 데이터 모델상에서 관계를 비식별자관계로 조정하는 것이 가장 좋 은 방법이다.
- 여러 개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가 질 때이며 이에 해당된다.
ex) 계약번호만 주식별자로 하고 계약사원번호는 일반속성 외부식별자로서 사용하게 된 경우
5) 식별자와 비식별자관계 비교
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 대망의 SQLD 결과 발표 (합격!!!) (3) | 2021.10.01 |
---|---|
[SQLD] 2과목_2장. SQL 활용 (0) | 2021.08.30 |
[SQLD] 2과목_1장. SQL 기본 (0) | 2021.08.29 |
[SQLD] 1과목_2장. 데이터 모델과 성능 (0) | 2021.08.27 |
SQLD 시험 접수 (0) | 2021.08.11 |