여름의 서재

[SQLD] 1과목_1장. 데이터 모델링의 이해 본문

자격증/SQLD

[SQLD] 1과목_1장. 데이터 모델링의 이해

엉아_ 2021. 8. 24. 20:41
728x90

제 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
Comments