SQLD 핵심 요약2

Mina Park·2023년 3월 2일

SQLD

목록 보기
2/2

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) 식별자 관계

  • 강한 관계

  • 단점: SQL 구문이 복잡해짐, PK의 속성 수가 증가함

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) ⭐실행순서

  • 들여쓰기가 많을수록 느림, 같은 레벨인 경우 뭉텅이로 처리/위에 있는 것이 빠름

0개의 댓글