1. 윈도우 함수 🚩🚩🚩
⭐관련 기출 필독
1) Rows vs Range
- 결과값의 차이점
- 같은값의 유무로 파악: Range의 경우 범위로 판단하므로 같은값이 있을 확률이 있음
2) RANK vs DENSE RANK
- RANK: 중복 건너뛰기(ex. 1, 1, 3, 4등)
- DENSE RANK: 중복 포함(ex. 1, 1, 2, 3등)
3) Partition by
4) Order by
2. 계층형 질의
1) Prior 자식데이터 = 부모데이터
2) 부모에서 자식으로 가면 순방향
3. 절차형 PL/SQL
- Exception: 생략가능
- Procedure(반드시 값이 안 나옴) vs trigger(보통 dml 많이 씀) vs user defined function(반드시 값이 나옴)
4. 데이터 모델링
- 데이터 모델화
1) 데이터 구조화론: 가장 전통적인 소프트웨어 개발론, 업무에만 집중, 절차도에 따라 프로그래밍
2) 관계형 데이터베이스: 데이터 자체/관계에 집중 => 여기에 한정해서 공부
3) 객체지향
5. 엔티티
1) 개념: 관리하고자하는 대상
📌다음 중 엔티티가 되는 것은(예시에서 도출)?
2) 특징
- 속성을 두개 이상 가져야 한다, 관계는 하나 이상 가져야 한다, 업무에 사용되야한다...
3) 분류
- 유형, 개념, 사건, 기본, 중심, 행위 엔티티
📌다음 중 DML이 아닌 것은?
6. 속성
1) 개념: 관리하고자하는 대상(인스턴스)의 특징, 인스턴스의 집합
2) 분류
7. 도메인
1) 개념: 데이터 유형, 크기, 제약조건
- ex) check, primary key...
8. 관계
1) IE 표기법: PK만 위에 놓고 나머지는 아래에 표기
2) Barker 표기법: 식별자에는 #를 붙임, 실선과 점섬으로 관계 표기
3) 식별자(실선), 비식별자(점선) 관계 표기법
9. 엔티티
1) 주식별자의 특징
- 유일성: 유일하게 인스턴스를 유일하게 구분할 수 있는 방법
- 최소성: 여러가지 속성을 묶어서 식별자를 구분 가능한데 최소여야함
- 불변성: 한 번 만들어놓으면 바뀌지 않아야함
- 존재성: not null 조건
2) 4가지를 다 만족하면 후보키, 그 중에 대표로 선정된 것이 기본키, 나머지는 대체키
10. 식별자 관계, 비식별자 관계
1) 식별자 관계
2) 비식별 관계
- 약한 관계
- 단점: 불필요한 조인이 많아짐(속도 느려짐)
3) ERD에서 어떻게 그려지는가
4) ERD 서술 규칙
- 시선: 좌상단에서 우하단으로 이동
- 관계명은 반드시 표기하지 않아도 됨
- UML은 객체지향 모델에서만 쓰임
11. 성능 데이터 모델링
1) 아키텍처 모델링
2) ⭐SQL 명령문
12. 정규화🚩🚩🚩
1) 수행방법
- 1차: 원자성 확보
- 2차: 부분함수 종속 제거
- 3차: 이행함수 종속 제거
- BCNF
2) 이상현상
- 삭제, 삽입, 갱신이상
3) 성능
- select절에서는 join 때문에 속도가 저하될 수 있지만 insert,update 등에서는 테이블이 작아지므로 속도가 빨라짐
13. 반정규화🚩🚩🚩
1) 특징
- ⭐데이터 무결성을 해칠 수 있음
- 대량범위, 범위처리 빈도수, 통계처리 여부 등을 조사 => 응용시스템 변경, 클러스터링/인덱스, 뷰테이블처리를 시도 => 최종적으로 반정규화 수행
2) 반정규화 방법
- 테이블 반정규화: 병합(1:1, 1:N, 슈퍼/서브타입), 분할(부분테이블, 통계테이블, 중복테이블)
- 속성 반정규화: 파생, 오류, 이력컬럼, PK를 일반으로 편입, 중복속성...
- 관계 반정규화: 중복관계 추가
14. 데이터에 따른 성능
1) 개념과 언제 발생하는가
- row mining
- chaining
2) 해결방법으로서의 partioning의 특징
- list
- range: 관리가 쉬움, 가장 많이 쓰임(관리용이성)
- hash: 관리가 어려움
=> 관리를 얼마나 쉽게 할 수 있는가
15. 슈퍼/서브타입
1) 용량
- 작은 경우: one to one(트랜잭션이 개별로 들어감)
- 큰 경우: 바로 트랜잭션 유형으로 분류됨
2) 트랜잭션
- 공통/차이에 따라 별개로 트랜잭션이 들어옴: plus type
- 전체 테이블 통합으로 트랜잭션이 들어옴: single type
16. 분산 데이터베이스
1) 특징
- 데이터 무결성을 해칠 수 있음: 여러개 서버로 나누는 것으로, 반정규화와 유사
- 투명성
17. 조인 수행 원리🚩🚩🚩(4문제)
1) NL: 랜덤액세스, 대용량 sort 작업시 유리
2) Sort merge: 조인키를 기준으로 정렬, 등가조인 가능
3) Hash join: 등가조인만 사용, 선행테이블이 작음, hash 처리를 하므로 별도 저장공간이 필요
18. 옵티마이저
1) 정의
- CBO: 경로(비용) 기반
- RBO: 규칙 기반
19. 인덱스
1) 언제 사용 되는가
- 예외: 부정형, LIKE 함수, 묵시 형변환에서는 사용 x
2) 사용시 성능이 감소되는 경우
- insert, update, delete 문
20. 실행계획
1) ⭐실행순서
- 들여쓰기가 많을수록 느림, 같은 레벨인 경우 뭉텅이로 처리/위에 있는 것이 빠름