SQL

SQLD 정리강의 정리 -2

monawa 2023. 6. 6.
728x90

1.윈도우 함수 

rows -> "차이점"
ranncte -> 같은 값 유무

 

rank: 중복 건너 뛰기 (1, 1, 3, 4)
dense_rank : 건너뛰기x (1, 1, 2, 3)

 

partition by
order by

 

여긴 무조건 문제 많이풀기!

 

2. 계층형 질의

Prior 자식데이터 = 부모데이터  프.자.부

=> 부모에서 자식으로 가는 경우 순방향  부.자.순

 

3. 절차형 PL/SQL

EXCEPTION = 예외처리 생략가능

PROCEDURE, TRIGGER, USER DEFINED FUNCTION 차이점

  • TRIGGER는 COMMIT, ROLLBACK 안됨
  • PROCEDURE는 반드시 값이 안나옴
  • USER DEFIND FUNCTION은 반드시 값이 나옴

4. 데이터 모델링

업무 -> 데이터 모델화

 

엔터티 : 업무상 관리하고자 하는 대상

특징

  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다
  • 유일한 식별자에 의해 식별이 가능해야 한다
  • 연속적으로 존재하는 인스턴스의 집합이어야 한다 -> 한 개가 아니라 두 개 이상
  • 엔터티는 업무 프로세스에 의해 이용(관리)되어야 한다
  • 엔터티는 반드시 속성(컬럼)이 있어야 한다
  • 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다

분류

유개사 / 기중행

  • 유형 엔터티 : 업무에서 도출되며 지속적으로 사용
  • 개념 엔터티 : 물리적 형태가 없고 개념적으로 사용
  • 사건 엔터티 : 비즈니스 프로세스를 실행하면서 생성되는 엔터티
  • 기본 엔터티 : 키 엔터티, 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성
  • 중심 엔터티
    • 기본 엔터티와 행위 엔터티 간의 중간에 있음
    • 기본 엔터티로부터 발생되고 행위 엔터티를 생성
  • 행위 엔터티 : 2개 이상의 엔터티로부터 발생

속성

  1. 고유한 성질 , 인스턴스의 집합
  2. 분류 (정의 확인하기)

기설파

  • 기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 속성
  • 설계 속성 : 데이터 모델링 과정에서 발생되는 속성, 유일한 값을 부여
  • 파생 속성 : 다른 속성에 의해서 만들어지는 속성

5. 도메인

데이터 유형, 크기, 제약조건

물리적 데이터 모델링 : CHECK, PRIMARY KEY

값의 범위

 

6.관계

  • IE : 각진 네모, PK는 가장 맨위에 줄긋고
    • 관계 선은 실선 및 까치발
    • 필수 관계 : 선으로 그음
    • 선택 관계 : 동그라미에 선
  • BARKER : 둥근 네모, PK는 아래로 작성
    • 실선 및 점선으로 표현
    • 실선은 필수 관계
    • 점선은 선택 관계(OPTIONAL)

7. 주식별자

식별자는 실선, 비식별자는 점선

 

특징 유최불존  -> 다 만족시 후보키 가능 (기본키 + 대체키 = 후보키)

  • 유일성 : 인스턴스를 유일하게 구분할 수 있는 속성
  • 최소성 : 여러가지 속성을 묶어서 식별하는 경우 그 수가 최소여야 함
  • 불변성 : 한 번 만든 것은 바뀌지 않음
  • 존재성 : NOT NULL 조건

8. 식별자와 비식별자 관계

  식별 비식별
정의  강한 연결 관계 약한 연결관계
단점  SQL 구문 복잡 해진다
PK 속성수 증가
조인이 많아져서 느려짐
표기법 실선
부모자식 관꼐에서 자식이 부모의 식별자 참조해 자신의 주식별자로 설정 
점선
부모자식 관꼐에서 자식이 부모의 주식별자를 외래 식별자로 참조해서 일반속성으로 사용 
연결 고려사항 반드시 부모 엔터티 종속
자식 주식별자 구성에 부모 주식별자 포함 필
상속받은 주식별자 속성을 타엔터티에 이전필
약한 종속관계로서
자식 주식별자구성을 독립적 구성
자식 주식별자 구성에 부모 주식별자 부분 필요
상속받은 주식별자 속성을 타엔터이ㅔ 차단필요
부모쪽의 관계 참여가 선택관계

 

 

ERD서술 규칙시선

  1. 좌상 -> 우하관계명
  2. 반드시 표기 안해도 됨
  3. UML은 객체지향 모델링에서만 쓰임

9. 성능 데이터 모델링

아키텍쳐 모델링 (성능이 더 좋음) - 주방구조 바꾸기  SQL 명령문 - 요리빨리나오게하기
  • 테이블
  • 파티션 나누기
  • 정규화, 반정규화
  • 데이터베이스의 구조를 바꾸는 방식
  • 조인 수행 원리
  • OPTIMIZER
  • 실행계획  

 

10. .정규화

  • 1차 : 원자성 확보
  • 2차 : 부분함수 종속 제거 
  • 3차 : 이행함수 종속 제거

이상현상 

  • 삭제
  • 삽입

성능 

  • SELECT는  느려질 수 있고(JOIN 때문에)
  • INSERT, UPDATE는 빨라질 수 있음

 

11. 반정규화 

데이터 무결성 해친다

  • 대량범위
  • 범위처리
  • 통게처리

=> 응용 어플리케이션 시스템 점검, 클러스터링/인덱스, 뷰터이블 처리 해보고 안되면 반정규화

테이블 병합 : 1대1, 1대N, 슈퍼서브타입 병합
분할 : 부분테이블, 통계테이블, 중복테이블
속성 파생 컬럼
오류 발생하지 않도록 임시 컬럼 생성
이력 컬럼 추가
PK -> 속성
중복속성
관계 중복 관계 추가

=> 정의 및 무엇이 있는지 암기

 

대량 데이터에 따른 성능 

  • ROW MIGRATION
  • CHAINING
    • LIST
    • RANGE : 관리가 쉬움, 가장 많이 쓰임
    • HASH : 관리가 어려움

12. 슈퍼/서브타입

  • 용량
    • 적은 경우 - ONE TO ONE, 개별로 들어가는 경우
    • 많은 경우
      • 공통 / 차이 - PLUS TYPE
      • 전체 통합 - SINGLE TYPE
  • 트랜잭션

13. 분산데이터베이스

=> 데이터 무결성을 해친다

 

14.조인 수행 원리 

  • NL 
    • RANDOM 액세스
    • 대용량 SORT 작업 시 유리
  • SORT MERGE
    • 조인키를 기준으로 정렬
    • 등가/비등가 조인가능
  • HASH
    • 등가조인만 사용
    • 선행테이블 작음
    • 별도의 HASH 처리를 위한 공간이 필요

 

14. 옵티마이져

  • CBO : 경로를 따졌을 때 제일 싼 것
  • RBO : 규칙에 따라서 이루어짐

 

15. 인덱스

실행 예외 

  • 부정형
  • LIKE
  • 묵시적 형변환

인덱스 사용시 성능 감소되는 경우

  • INSERT, UPDATE, DELETE 의 DML 사용하는 경우(수정될때마다 INDEX를 계속 변경해야 하므로 성능 저하)

 

16. 실행계획

순서 

  • 들여쓰기 : 제일 느린애부터 오른쪽에 씀
  • 같은 레벨은 뭉텅이로

 

출처 : https://www.youtube.com/watch?v=PjCSvexo3Ow
728x90

'SQL' 카테고리의 다른 글

sqld 시험전 확인할 스피드 퀴즈  (0) 2023.06.08
SQLD 정리강의 정리 -1  (0) 2023.06.06
sqld 1장 데이터 모델링의 이해  (0) 2023.05.31
sqld rollup,cube ~윈도우함수 (108~127)  (1) 2023.05.30
sql 의 쿼리 실행 순서  (0) 2023.02.21

댓글