개발/SQLD

[SQLD] 30회 기출문제 틀린&모르는 문제 정리

D_Da 2023. 5. 31. 21:35

 

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);