거인의 코딩일지
[SQLD] 오답정리(데이터 모델과 SQL) 본문
728x90
다음 중 성능 데이터 모델링을 위한 유의사항으로 가장 바람직 한것은 무엇인가???
- 하나의 속성이 여러개의 속성값을 갖는 데이터 모델은 2차 정규화 대상이 된다.
- 중복 테이블을 추가함 으로써 성능을 향상 시킬 수 있다.
- 테이블 병합은 정규화 기법중 하나이다.
- 조회 성능의 저하를 막기위해 정규화 보다는 반정규화를 우선시 해야한다.
- 2번
- 1 : 하나의 속성이 여러개의 속성 값을 갖는 데이터 모델은 제 1 정규화 대상이 된다.
- 3 : 테이블 병합은 반정규화 기법 중 하나이다.
- 4 : 정규화가 항상 조회 성능을 저하시키는 것은 아니며 반정규화를 함으로써 조회 성능이 확실히 좋아지는 상황에서만 반정규화를 하는 것이 바람직 하다.
데이터 모델링의 순서대로 바르게 나열한 것은 무엇인가??
- 데이터 모델에 맞게 정규화를 수행한다.
- 데이터베이스의 용량 및 트랜잭션 유형을 파악하여 성능 저하를 일으키는 부분이 없는지 검토 한다.
- 용량과 트랜잭션 유형에 맞게 반정규화를 수행한다.
- 성능향샹을 위한 이력모델의 조정, PK/FK 조정, 슈퍼/서브타입 조정 등을 수행한다.
- 데이터 모델의 성능을 검증한다.
한 테이블의 속성 개수가 과도하게 많을 때 발생 할 수 있는 현상으로 가장 적절한 것은?
- 별도의 조인은 필요 없으며, 하나의 테이블로 많은 데이터 조회가 가능하므로 성능에 항상 유리하다.
- 테이블 용량을 줄이기 위해 수평분할을 하면 유리하다
- 정규화 기법인 테이블 수직 분할을 수행한다.
- 자주 쓰는 컬럼만 분리하여 데이터 조회 성능을 향상 시킬 수 있다.
- 4번
- 한 테이블에 속성의 개수가 과도하게 많을 경우 조회 성능을 향상시키기 위해 자주 쓰이는 속성과 그렇지 않은 속성을 나누어 수직 분할할 수 있다. 수직 분할은 반정규화 기법 중 하나이며 분할된 테이블은 1:1 관계를 이루게 된다.
- 수직분할 : 테이블의 일부 속성을 별동의 테이블로 분리
- 수평분할 : 테이블의 특정 인스턴스를 별도의 테이블로 분할
다음 중 트랜잭션에 대한 설명으로 가장 적절한 것은 무엇인가?
- 트랜잭션은 하나의 커밋 단위로 묶여야 한다.
- 데이터 모델만으로는 파악하기 어렵다
- 트랜잭션은 물리적인 업무단위이다.
- 데이터는 트랜잭션 범위와는 무관하다.
- 1번
- 트랜잭션은 데이터를 조작하기 위한 논리적 작업 단위로 데이터 모델로 표현할 수 있으며 데이터는 트랜잭션 번위로 묶일 수 있다.
다음 중 NULL 연산에 대한 설명으로 옳지 않은 것은?
- NULL 이 포함된 사칙연산의 결과는 항상 NULL 이다.
- 데이터를 집계할 때 NULL은 집계 대상에서 제외된다.
- WHERE COL IS NULL 조건은 WHERE COL = NULL 조건과 같다.
- WHERE COL IS NOT NULL 조건은 COL이 NULL 이 아닌 행만 출력하는 조건이다.
- 3번
- WHERE COL IS NULL 조건은 NULL 인 행을 반환 하지만 COL = NULL 의 결과는 항상 False 이므로 WHERE COL = NULL 조건은 아무 행도 반환 하지 않는다.
괄호 안에 알맞은 말은 무엇인가??
테이블 반정규화는 성능 향상을 목적으로 수행되지만 일반적으로 데이터의 무결성을 깨트릴 위험성을 가지고 있다. 하지만 ( ) 는 데이터의 무결성을 깨뜨릴 위험성 없이 데이터 처리의 성능을 향상시킬 수 있는 반정규화 기법이다.
- 중복 관계 추가
- 중복 관계 추가는 관계의 반정규화 기법 중 하나로 데이터 무결성을 깨뜨릴 위험성 없이 데이터 처리 성능을 향상 시킬 수 있는 기법이다.
728x90
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 오답정리(관리구문) (0) | 2024.05.27 |
---|---|
[SQLD] 오답정리(SQL 활용) (0) | 2024.05.26 |
[SQLD] 오답정리(데이터 모델링의 이해) (0) | 2024.05.15 |
[SQLD] 정규화 이론??? (0) | 2024.05.05 |
[SQLD] 성능 데이터 모델링과 정규화 (0) | 2024.05.03 |