728x90
1. ER 모델?
- 도메인이란?
- 성별이라는 속성(Attribute)에서 값이 가질 수 있는 허용범위를 나타낸다.
- 도메인의 특징?
- 릴레이션의 속성이 가질 수 있는 허용된 값의 범위를 의미한다.
- 속성명과 도메인명은 항상 동일할 필요는 없다.
- 모든 속성들의 도메인은 원자값이어야 한다.
- 외래키(Foreign Key)는 주 릴레이션을 참조하는 키를 의미한다.
- 외래키(Foreign Key)는 참조 무결성을 준수하기 위해서 사용된다.
- 카다닐리티(Cardinality) : 튜플(행)수 = 인스턴스의 수
- 중복도가 낮으면 카다닐리티가 높다고 표현한다.
- 중복도가 높으면 카다닐리티가 낮다고 표현한다.
- 카다닐리티는 전체 행에 대한 특정 컬럼의 중복 수치를 나타내는 지표이다.
- 이름같은 경우는 주민등록번호에 비해 중복되는 값이 많으므로, 이름은 주민등록번호에 비해 카다닐리티가 낮다고 할 수 있다.
- 인스턴스(Instanse) : 값
- 차수(Degree) : 테이블 컬럼의 갯수(속성의 수)이다.
2. 슈퍼 / 서브타입 데이터 모델의 변환타입?
- One To One Type
- 슈퍼타입과 서브타입을 개별 테이블로 도출한다.
- 테이블의 수가 많아서 조인이 많이 발생하고 관리가 어렵다.
- Plus Type
- 슈퍼타입과 서브타입 테이블로 도출한다.
- 조인이 발생하고 관리가 어렵다.
- Single Type
- 슈퍼타입과 서브타입을 하나의 테이블로 도출하는 것이다.
- 조인성능이 좋고 관리가 편리하지만, IO 성능이 나쁘다.
3. 데이터베이스 모델링의 특징
- 추상화(Abstraction) : 현실세계를 간략하게 표현한다.
- 단순화(Simple) : 누구나 쉽게 이해할 수 있도록 표현한다.
- 명확성(Clarity) : 명확하게 의미가 해석되어야 하고 한가지 의미를 가져야 한다.
4. 속성의 종류?
- 기본속성
- 비즈니스 프로세스에서 도출되는 본래의 속성이다.
- 회원ID, 이름, 계좌번호, 주문일자 등이 있다.
- 설계속성
- 데이터모델링 과정에서 발생되는 속성이다.
- 유일한 값을 부여한다.
- 상품코드, 지점코드 등이 있다.
- 파생속성
- 다른 속성에 의해서 만들어지는 속성이다.
- 합계, 평균 등이 있다.
5. 성능을 고려한 모델링 순서?
- 데이터모델링을 할 때 정규화를 정확하게 수행
- 데이터베이스 용량산정 수행
- 데이터베이스에 발생되는 트랜잭션 유형 파악
- 용량과 트랜잭션의 유형에 따라 반정규화 수행
- 이력모델의 조정, PK / FK 조정, 슈퍼타입 / 서브타입 조정 수행
- 성능관점에서 데이터 모델 검증
6. Hash Join?
- Hash Join은 두 개의 테이블 간에 조인을 할 때 범위검색이 아닌 동등조인(EQUI-Join)에 적합한 방식이다.
- 작은 테이블을 먼저 읽어서 Hash Area에 해시 테이블을 생성하는 방법으로 큰 테이블로 Hash Area를 생성하면 과다한 Sort가 유발 되어 성능이 저하될 수 있다.
- Hash Join은 수행 빈도가 낮고 수행시간이 오래 걸리는 대용량 테이블에 대한 조인을 할 때 유용하다.
- 온라인 트랜잭션(OLTP)에는 Hash Join보다는 적은 데이터를 조인할 때 유리한 구조인 Nested Loop 방식이 유용하다.
7. Join 기법?
- 중첩 반복 조인(Nested Loop Join)
- 좁은 범위에 유리하다.
- 유리순차적으로 처리하며, Random Access위주이다.
- 후행(Driven)테이블에는 조인을 위한 인덱스가 생성되어 있어야 한다.
- 실행속도 = 선행 테이블 사이즈 * 후행 테이블 접근횟수
- 색인된 중첩 반복조인, 단일 반복 조인(Single Loop Join)
- 후행(Driven)테이블의 조인 속성에 인덱스가 존재할 경우 사용한다.
- 선행 테이블의 각 레코드들에 대하여 후행 데이블의 인덱스 접근 구조를 사용하여 직접 검색 후 조인하는 방식이다.
- 정렬 합병 조인(Sort Merge Join)
- Sort Merge 조인은 해당 테이블의 인덱스가 없을때 수행이 된다.
- 테이블을 정렬(Sort)한 후에 정렬된 테이블을 병합(Merge)하면서 조인을 실행한다.
- 조인 연결고리의 비교 연산자가 범위 연산(>, <)인 경우 Nested Loop Join보다 유리하다.
- 두 결과집합의 크기가 차이가 많이 나는 경우에는 비효율적이다.
- 해시 조인(Hash Join)
- 해시함수를 사용하여 두 테이블의 자료를 결합하는 조인 방식
- Nested Loop Join, Sort Merge Join의 문제점을 해결한다.
- 대용량 데이터 처리는 상당히 큰 Hash Area를 필요로 함으로, 메모리의 지나친 사용으로 오버헤드 발생 가능성이 있다.
8. SQL 문의 결과?
- 부서별 합계(소계) + 전체합계 = 'ROLLUP(DEPTNO, JOB)'이 적당하다.
9. SQL 문의 TEST1의 결과?
- MERGE INTO문은 특정 키에 대해서 레코드가 있을 때에 수정사항에 대해서 UPDATE를 하고, 레코드가 없으면 새롭게 INSERT를 할 수 있는 구문이다.(DELETE는 실행되지 않는다.)
- 따라서 COL1 COL2 COL3 가 된다.
A X 1
B Y 4
C Z 3
D 나 5
E 가 4
10. 데이터베이스 모델링?
- 제품마스터와 주문이력을 직접 조인하면 조인 Key가 없으므로 카테시안 곱이 발생한다.
11. SQL 문의 결과?
- CONNECT BY 계층형 조회 PRIOR가 없는 쪽에서 PRIOR가 있는 쪽으로 간다.
- 처리순서는 Start With -> Connect By -> Where순으로 간다.
- EMPNO가 3인 행부터 시작한다.
- EMPNO가 3인 행의 MANAGER값 2와 같은 EMPNO를 검색.
(그 다음도 마찬가지로 EMPNO가 2인 행의 MANAGER값 1과 같은 EMPNO 검색) - EMPNO가 3인 행을 제외하면 출력값은 2개이다.
12. 빈칸에 들어갈 말은?
- NVL함수
- NULL이면 다른 값으로 바꾸는 함수이다.
- "NVL(MGR, 0)"은 MGR 컬럼이 NULL이면 0으로 바꾼다.
- NVL2 함수
- NVL함수와 DECODE를 하나로 만든 것이다.
- "NVL2(MGR, 1, 0)"은 MGR 컬럼이 NULL이 아니면 1, NULL이면 0을 반환한다.
- NULLIF 함수
- 두 개의 값이 같으면 NULL을 같이 않으면 첫 번째 값을 반환한다.
- "NULLIF(Ex1, Ex2)"은 Ex1과 Ex2가 같으면 NULL을 반환, 같지 않으면 Ex1을 반환한다.
- COALESCE
- "COALESCE(MGR, 1)"은 MGR이 NULL이 아니면 1을 반환한다.
'WorkHard > 자격증' 카테고리의 다른 글
[SQLD 개발자] 기출문제 공부(38회) (0) | 2023.03.10 |
---|---|
[SQLD 개발자] 기출문제 공부(37회) (0) | 2023.03.09 |
[SQLD 개발자] 기출문제 공부(35회) (0) | 2023.03.07 |
[SQLD 개발자] 기출문제 공부(35회) (0) | 2023.03.06 |
[SQLD 개발자] 기출문제 공부(34회) (0) | 2023.03.03 |