SQLD

[SQLD 자격증] 1과목 - 데이터 모델링의 이해의 오답노트 (1)

요다다 2023. 2. 12. 03:46

<<<SQLD 노랭이 1과목-1 오답노트>>>

개인적인 정리입니다. 

공부법 찾아보니깐, 일단 문제 풀고 해설을 보면서 공부한대요....(제가 잘못 찾은 걸수도..)

이런 공부법 개인적으로 안 좋아하지만 어쩌겠어 해야지...

 

1. 모델링의 특징

추상화, 단순화, 애매모호함을 배제한 명확화의 의미를 가짐

시스템 구현만을 위함이 아닌, 시스템 구현을 포함한 업무 분석 및 업무 형상화의 목적을 지님

 

2. 데이터 모델링이 필요한 이유

일정한 표기법을 이용함으로써 업무 내용을 정확하게 분석하는 것이 첫 번째 목표 (별도의 표기법이 아닌 약속된 표기법 사용)

데이터 모델링을 가지고 실제 DB를 생성해 개발 및 데이터 관리에 사용하는 것

데이터 모델링은 단지 데이터베이스만을 구축하기 위한 용도가 아닌 분석 측에서도 중요한 의미를 지님

 

3.데이터 모델링 유의 사항 

중복, 비유연성, 비일관성

중복 : 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 주의하자

비유연성 : 사소한 업무 변화에도 수시로 변경되지 않도록 프로세스와 분리하자

비일관성 : 같은 시점에 같은 데이터를 갖도록 하자

 

(틀) 4. 사소한 업무 변화에 데이터 모델이 수시로 변경되지 않도록 주의하자

: 비유연성

 

5. 데이터 모델링

개념적 모델링 : 추상화 수준이 높음

논리적 모델링 : 관계를 정확하게 표현

물리적 모델링 : 실제로 데이테비ㅔ이스를 이식할 수 있도록 물리적 성격을 고려

 

6. 3단계 구조 

외부스키마 사용자마다 다름

개념스키마 : 사용자 통합 관점

내부스키마 : 개념 스키마를 물리적으로 구현

 

7. ERD 틀린 점 찾기(책 10p 그림보기)

고객 데이터는 부모 엔터티이므로 자식 엔터티에 해당 값이 존재하는지의 여부와 상관없이 입력 가능함

 

8. ERD 설명 틀린 것 찾기

- ERD는 피터첸이 만듦.

- 순서는

1. 엔터티 도출

2. 엔터티 배치

3. 엔터티간 관계 설정

4. 관계명 기술

5. 관계의 참여도 기술

6.관계의 필수여부 기술

- 가장 중요한 엔터티는 왼쪽 상단에서 조금 아래쪽 중앙

 

9. 시나리오에서 엔터티 찾기

엔터티의 조건 : 2개 이상의 인스턴스와 2개 이상의 속성

병원이 엔터티로 적절하지 않은 이유는 인스턴스 즉, S병원 하나이기 때문. 이름, 주소는 속성임

 

(틀) 10. 엔터티의 특징으로 틀린 것 찾기

속성이 없는 엔터티는 없음. 반드시 있어야 함.

반드시 필요하고 관리하고자 하는 정보여야 한다.

유일한 식별자에 의해 식별 가능해야 한다.

영속적으로 존재하는 (2개 이상의) 인스턴스 집합이어야 한다.

업무 프로세스에 의해 이용되어야 한다

다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다. (BUT 통계성 엔터티나 코드성 엔터티의 경우 생략 가능)

 

==> 1개의 인스턴스는 안된다 !!!!!!!!!!!!

 

11. 엔터티의 특징으로 틀린 것 찾기

반드시 속성이 있어야 하며,

식별 가능해야하며,

업무 프로세스에 이용되어야 하며,

다른 엔터티와의 관계를 가져야 한다. (마찬가지로 통계성 엔터티나 코드성 엔터티는 생략 ㅇㅋ)

 

(맞았지만 별표) 12. 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가지는 엔터티는 ? (ex. 사원, 부서, 상품 ...)

 

1. 발생 시점에 따른 분류

- 기본 엔터티 : 원래 존재하는 정보로, 다른 엔터티에 의해 생성되지 않고 독립적으로 생성되며, 다른 엔터티의 부모 역할을 한다 (ex. 고객)

- 중심 엔터티 : 기본 엔터티로부터 발생하고 업무에서 중심적인 역할을 한다.(ex. 주문, 계좌)

- 행위 엔터티 : 2개 이상의 엔터티로부터 발생 (ex. 주문 이력)

 

2. 유무형에 따른 분류

- 유형 엔터티 : 물리적인 형태가 있고, 안정적이며 지속적으로 활용되는 엔터티 (ex. 사원, 물품, 강사)

- 개념 엔터티 : 물리적인 형태는 존재하지 않고, 개념적 정보로 구분되는 엔터티 (ex. 조직, 보험상품)

- 사건 엔터티 : 업무를 수행함에 따라 발생되는 엔터티로 발생량이 많고 각종 통계에 이용 (ex. 주문, 청구)

 

다음과 같이 개념에 대한 문제가 나올수도 있지만,

발생 시점에 따라 구분할 수 있는 엔터티의 유형이 아닌 것은?

1. 행위 엔터티

2. 개념 엔터티

3. 중심 엔터티

4. 기본 엔터티

이렇게 나올수도 있다!! 주의하자!!

 

(틀)13. 엔터티의 이름을 부여하는 틀린 방법 찾기

현업업무에서 사용하는 용어 사용하고,

가능하면 약어는 사용하지 않음

단수명사를 사용하고, 

모든 엔터티를 통틀어 유일해야 하며,

생성의미대로 이름을 부여한다

 

오답 ==> 약어를 사용하지 않고, 생성의미대로 이름을 부여하는군

 

14. 의미상 더 이상 분리되지 않는 최소 데이터 단위 : 속성

 

(틀)15. 속성에 대한 설명으로 틀린 것 찾기

엔터티에 대한 자세하며 구체적인 정보를 나타내며,

하나의 엔터티에는 두 개 이상의 속성을 갖는다.

하나의 인스턴스에서 각각 속성은 한 개의 속성값을 갖는다. ('하나 이상의' 라는 표현 조심하기)

속성도 집합이다

 

오답 ==> 각각 속성은 하나 이상의 속성값이 아닌 한!!개!!의 속성값을 가짐!!

 

(틀)16. 다음과 같은 사례에서 속성에 대한 설명으로 틀린 것 찾기

 

속성의 특성에 따른 분류로는 (기본 속성 / 설계 속성 /  파생 속성) 이 존재한다.

기본 속성 : 업무로부터 추출한 모든 속성, 가장 일반적임

설계 속성 : 업무상 필요한 데이터 이외에 (데이터 모델링을 위해, 혹은 업무를 규칙화하기 위해) 속성을 새로 만들거나 변형한 속성이다.

파생 속성 : 다른 속성에 영향을 받아 발생하는 속성으로 보통 계산된 값들이 이에 해당함. 데이터 정합성을 유지하기 위해 가급적 파생속성은 적은게 좋다!

 

이제 본문을 따져보자.

원금, 예치기간, 이자율은 원래 있던 속성으로 기본 속성이다. 이때, 이자율에 의해 이자가 계산되므로 

이자는 파생 속성이다. 

 

(틀)17. 원래 속성의 값을 계산하여 저장할 수 있도록 만든 속성?

=> 파생 속성

 

(틀)18. 아래 설명에 대한 개념은 ?

설명 : 속성의 값 범위는 100에서 1000 사이~~ => 도메인

각 속성의 범위가 정의된 개념은 도메인이다.

 

(틀)19. 속성의 명칭을 부여하는 방법은 ?

약어 사용 x.

서술식 용어 사용 x.

동일한 속성명 사용 x. 유일성을 지키자!

가급적 해당 업무에서 자주 사용되는 이름을 사용하자

 

(틀)20. 데이터 모델링에 관한 설명으로 틀린 것 2개 고르기

ERD에서는 존재에 의한 관계와 행위에 의한 관계를 구분하지 않음

반대로, UML은 연관관계와 의존관계가 있고, 실선과 점선 표기법으로 다르게 표현된다. (이는 ,존재와 행위에 의한 관계를 구분함)

 

(틀)21. 관계에 대한 틀린 것 찾기

관계는 존재적 관계와 행위에 의한 관계로 나뉜다

관계의 표기법은 관계명, 관계차수, 관계선택사양 으로 나뉜다 (식별성 아니다 !! 주의하기!!)

 

22. 1:1, 1:N 이런 건 무엇?

=> 관계차수

 

23. 두 개의 엔터티사이를 정의한 관계를 체크하는 사항으로 틀린 것은?

연관규칙이 존재하는지 체크해야하며,

두 엔터티 사이에 정보의 조합이 발생되는지,

업무기술서, 장표에 관계 연결을 가능하게 하는 동사가 있는지 (명사가 아니다 !! 주의하기 ),

업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는지 체크해야한다.

 

24번은 23번과 같음

 

25. 주식별자를 지정할 때 고려해야하는 사항 ?

주식별자에 의해 모든 인스턴스가 유일하게 구분되어야 한다.

주식별자를 구성하는 속성의 수는 유일성을 만족하는 수준에서 최소여야 함

주식별자는 자주 변하지 않는 값이어야 한다

반드시 값이 존재해야 함

 

(틀)26. 식별자의 특성

 

1. 대표성 여부

- 주식별자 : 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자. 타 엔터티와 참조 관계를 연결할 수 있는 식별자.

 ex) 부서번호, 사번, 주문번호

- 보조식별자 : 엔터티 내에서 각 어커런스를 구분할 수 있으나, 대표성을 가지지 못해 참조관계를 연결하지 못한다.

 ex) 주민등록번호, (사원 엔터티에서의 주식별자는 주민번호보다 사번이 더 알맞다.)

 

2. 스스로 생성 여부

- 내부식별자 : 엔터티 내부에서 스스로 만들어지는 식별자

 ex) 부서번호, 사번, 주문번호 (각각은 부서에서, 사원, 구매신청 엔터티에서 스스로 만들어진다.)

- 외부식별자 : 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자

 ex) 사원 엔터티의 부서번호 (사원 엔터티와 부서 엔터티는 부서번호로 관계되어 있다.)

 

3. 속성의 수

- 단일식별자 : 하나의 속성으로 구성된 식별자

 ex) 부서번호, 사번, 주문번호

- 복합식별자 : 둘 이상의 속성으로 구성된 식별자

 ex) 교육이력 엔터티에서 사번과 수강일자 두 속성을 이용해 식별자 역할을 한다.

 

4. 대체 여부

 - 본질식별자 : 업무에 의해 만들어지는 식별자

 ex) 부서번호, 사번, 

 - 인조식별자 : 업무적으로 만들어지지는 않았지만, 원조식별자가 복잡한 구성을 가지고 있어 인위적으로 만들어짐.

 ex) 주문번호 (기존에는 사번 + 주문일자 + 순번으로 불러와서 처리해야 해서, 인위적으로 주문번호만 처리하게 함)

 

위 내용은 다른 사람의 글을 참고하였다.

 

내용을 토대로 본문을 판단해보자.

우선 사원 엔터티에서의 식별자는 사번이다.

사번은 대표성을 가지고 있으니 주식별자이고, 엔터티 내에서 스스로 생성되었으니 내부 식별자이다

단일 속성이므로 단일 식별자이며, 원래 업무에 의해 만들어진 식별자이므로 본질 식별자이다.

인위적으로 만들어 지지 않았다.

 

27, 28은 패스

주식별자의 특징으로 유일성(모든 인스턴스 구별), 최소성(속성 수는 유일성 만족하는 최소),
불변성(값은 변하지 않아야함), 존재성(NULL이 안된다)이 존재한다.

 

 

29. 비식별자를 선택하는 기준 ?

부모엔터티의 주식별자를 자식에 이어 손자까지 계속 전해주기 위해서는 끈끈한 연관관계를 유지하기 위해
식별자관계를 사용해야 한다. (비식별자관계는 부모쪽의 관계 참여가 선택)
식별자관계는 실선, 비식별자관계는 점선