[SQLD] 30회 기출문제 틀린&모르는 문제 정리
1. 도메인 : 엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약 조건을 지정하는 것
2. 엔터티의 분류
- 기본 엔티티 : 원래 존재하는 정보로서 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성 가능
자신은 타엔터티의 부모 역할을 한다 ex ) 사원, 부서, 고객, 상품, 자재
- 중심 엔터티 : 기본 엔터티로부터 발생되고 그 업무의 중심 역할.
데이터양이 많이 발생되고 다른 엔터티의 관계를 통해 행위 엔터티 생성. ex ) 계약, 사고, 예금 원창, 청구, 주문, 매출
- 행위 엔터티 : 두 개 이상의 부모 엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가된다.
상세 설계 단계나 프로세스와 상관모델링을 진행하면서 도출. ex ) 주문목록, 사원 변경 이력
3. 논리적 모델링 : 데이터 모델링에서 가장 핵심이 되는 부분.
데이터 모델링이 최종적으로 완료된 상태라고 정의 할 수 있는 물리적 스키마 설계를 하기 전 단계
4. 반정규화 대상
- 범위처리 빈도수 조사 : 자주 사용되는 테이블에 접근하는 프로세스 수가 많고 항상 일정한 범위만을 조회하는 경우
- 대량의 범위 처리 조사 : 테이블에 대량의 데이터가 있고, 대량의 데이터 범위를 자주 처리하는 경우에 처리 범위를 일정하게 줄이지 않으면 성능 보장하지 못할 경우
- 통계성 프로세스 조사 : 통계성 프로세스에 의해 통계 정보를 필요로 할 때 별도의 통계 테이블 생성.
- 테이블 조인 개수 : 테이블에 지나치게 많은 조인이 걸려 데이터를 조회하는 작업이 기술적으로 어려울 경우
5. 식별자의 분류 체계
분류 | 식별자 | 설명 |
대표성 여부 | 주식별자 | 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조 관계를 연결할 수 있는 식별자 |
보조 식별자 | 엔티티 내에서 각 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조 관계 연결을 못함 | |
스스로 생성 여부
|
내부식별자
|
|
외부식별자
|
||
속성의 수
|
단일식별자
|
|
복합식별자
|
||
대체 여부
|
본질식별자
|
|
인조식별자
|
6. Row Chaining : row 길이가 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되어있는 형태.
7. Row Migration : 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 블록에 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장.
8. ROLLUP : Group by의 확장된 형태. 사용 쉬움. 병렬 수행 가능
Grouping Columns 의 수를 n개라고 했을 때 n+1 Level의 subtotal 이 생성
ROLLUP의 인수는 계층구조이므로 인수 순서가 바뀌면 수행 결과도 바뀜
실행 결과 -> Group By 수행 시 생성되는 표준집계.
ex ) ROLLUP(DNAME) 시 DNAME 별 모든 JOB subtotl, grand total 출력
9. CUBE : 결합 가능한 모든 값에 대하여 다차원 집계 생성
인수의 순서가 바뀌는 경우 행간에 정렬 순서는 바뀔 수 있어도 데이터 결과는 같다.
Grouping Columns이 가질 수 있는 모든 경우에 수에 대하여 SubTotal를 생성하므로 Grouping Coumns 이 n 일 경우 2의 n승 Level의 subTotal 생성
10. Grouping Set : 표시된 인수들에 대한 개별 집계를 구할 수 있으며 평등한 관계이므로 인수의 순서가 바뀌더라도 결과는 같다.
UNION ALL을 사용한 일반 그룹 함수를 사용한 SQL과 같은 결과를 얻을 수 있음
11. 연산자 우선 순위
() -> NOT -> 비교 연산자,SQL연산자, AND -> OR
12. in(list) : list 중 하나라도 해당하면, null 제외
13. 단일형 null 함수
- NVL(표현식1, 표현식2) : 표현식1의 결과값이 null이면 표현식2의 값을 출력
표현식1과2의 결과 데이터 타입이 같아야 한다.
-ISNULL(표현식1,표현식2) : 표현식1의 결과값이 null이면 표현식2의 값을 출력.
표현식1과2의 결과 데이터 타입이 같아야 한다.
- NULLIF(표현식1,표현식2) : 표현식1이 표현식2와 같으면 null, 같지 않으면 표현식1을 리턴
-COALESCE(표현식1,표현식2....) : 임의의 개수 표현식에서 null이 아닌 최초의 표현식을 나타냄. 모든 표현식이 null일 경우 null리턴.
14. Trigger : 특정한 테이블에 DML문이 수행되었을 때 DB에서 자동으로 등록하도록 작성
15. DECODE(표현식, 기준값1, 값1, 기준값2, 값2....디폴트값 ) : 표현식의 값이 기준값1이면 값1출력 기준값2이면 값2 출력, 기준값이 없을 경우 디폴트값
16. Unique Index scan : 유일 인덱스를 사용하여 단하나의 데이터를 추출
17. Cross Join : 테이블간 Join 조건이 없는 경우 생길 수 있는 데이터 조합. M*N 건의 데이터 조합
18.Nautral Join : 두 테이블 간의 동일한 이름을 갖는 모든 칼럼들에 대해 Equi(=) join 수행
using 조건, on조건, where 절에서 join 조건 정의하지 않음. SQL server에서 지원X, 오너 테이블명 명시X (ex: emp.deptno)
19. Alter Table
SQL Server : Alter table 테이블명 alter column VARCHAR(30) NOT NULL;
ORACLE : Alter table 테이블명 MODIFY(칼럼명1 데이터유형 NOT NULL);