SQLD 시험 요약

oong·2022년 9월 7일
0

PART 1, 데이터 모델링의 이해

CHAPTER 1, 데이터 모델링의 이해

  • 데이터베이스의 모델링은 '현실 세계를 단순화하여 표현하는 기법'이다.
  • 모델링의 특징
    1. 추상화 2. 단순화 3. 명확화
  • 모델링의 세 가지 관점
    1. 데이터 관점 2. 프로세스 관점 3. 데이터와 프로세스의 상관 관점
  • 모델링의 세 가지 단계
    1. 개념적 데이터 모델링 2. 논리적 데이터 모델링 3. 물리적 데이터 모델링
  • 3단계 스키마 구조
    1. 외부 스키마 : 사용자의 관점
    1. 개념 스키마 : 통합된 관점
    2. 내부 스키마 : 물리적인 관점
  • 엔티티 특성에 따른 분류
    1. 기본 속성 (상품 이름, 주민번호)
    1. 설계 속성 (학번, 사번)
    2. 파생 속성 (이벤트 응모 건수)
  • 관계의 표기법에는 관계명, 관계차수, 관계선택사양이 포함된다.
  • 주식별자 : 유일성, 최소성, 불변성, 존재성

CHAPTER 2, 데이터 모델과 SQL

  • 정규화
    1. 제1정규형 : 모든 속성은 반드시 하나의 값만 가져야 한다.
    1. 제2정규형 : 엔티티의 모든 일반속성은 반드시 모든 주식별자에 종속되어야 한다.
    2. 제3정규형 : 주식별자가 아닌 모든 속성 간에는 서로 종속될 수 없다.
  • 반정규화 : 데이터의 조회 성능을 향상시키기 위해 데이터의 중복을 허용하거나 데이터를 그룹핑하는 과정
    1. 테이블 반정규화
    • 테이블 병합
    • 테이블 분할
    • 테이블 추가

PART 2, SQL 기본 및 활용

CHAPTER 1, SQL 기본

  • 문자 함수
    1. CHR
    1. LTRIM
    2. RTRIM
    3. TRIM
    4. SUBSTR
    5. LENGTH
    6. REPLACE
  • 숫자 함수
    1. ABS
    1. SIGN
    2. ROUND - 지정된 소수점 자릿수까지 반올림
    3. TRUNC - 지정된 소수점 자릿수까지 버림
    4. CEIL - 소수점 이하의 수를 올림
    5. FLOOR - 소수점 이하의 수를 버림
    6. MOD
      • 두 번째 인자값이 0이면 첫 번째 인자값 반환
      • 두 인자값 모두 음수이면 나머지도 그대로 음수
  • 날짜 함수
    1. SYSDATE - 현재 연, 월, 일, 시, 분, 초 반환
    1. EXTRACT - 날짜 데이터에서 특정 단위만을 출력하여 반환
    2. ADD_MONTHS - 날짜 데이터에서 특정 개월 수를 더한 날짜 반환
  • 명시적 형변환 함수
    1. TO_NUMBER
    1. TO_CHAR
    2. TO_DATE
  • NULL 관련 함수
    1. NVL - 인수1의 값이 NULL일 경우 인수2 반환
    1. NULLIF - 인수1과 인수2가 같으면 NULL 반환
    2. COALESCE - NULL이 아닌 최초의 인수 반환
  • JOIN
    1. EQUI JOIN
    1. Non EQUI JOIN
    2. OUTER JOIN
  • STANDARD JOIN
    1. INNER JOIN - JOIN 조건에 충족하는 데이터만 출력 (ON절 필수)
    1. OUTER JOIN
      • LEFT OUTER JOIN - 왼쪽에 표기된 테이블의 데이터는 무조건 출력되는 JOIN
    2. FULL OUTER JOIN - 왼쪽, 오른쪽 테이블의 데이터가 모두 출력 (중복값 제거)
  • NATURAL JOIN - A 테이블과 B 테이블에서 같은 이름을 가진 컬럼들이 모두 동일한 데이터를 가지고 있을 경우 JOIN
  • CROSS JOIN

CHAPTER 2, SQL 활용

  • 서브 쿼리
    1. SELECT 절 - 스칼라 서브쿼리
    1. FROM 절 - 인라인 뷰
    2. WHERE 절, HAVING 절 - 중첩 서브쿼리
  • 집합 연산자
    1. UNION ALL - 합집합, 중복 출력
    1. UNION - 합집합, 중복 미출력
    2. INTERSECT - 교집합, 중복 미출력
    3. MINUS/EXCEPT - 차집합, 중복 미출력
  • 그룹 함수
    1. ROLLUP - 소그룹 간의 소계 및 총계를 계산하는 함수
    1. CUBE - 소그룹 간의 소계 및 총계를 다차원적으로 계산할 수 있는 함수 (조합할 수 있는 모든 조합)
    2. GROUPING SETS - 특정 항목에 대한 소계를 계산하는 함수
    3. GROUPING - 소계를 나타내는 Row를 구분할 수 있게 해준다. (TOTAL)
  • 순위 함수
    1. RANK - 같은 순위가 존재하면 존재하는 수만큼 다음 순위를 건너뛴다.
    1. DENSE_RANK - 같은 순위가 존재하더라도 다음 순위를 건너뛰지 않고 이어서 매긴다.
    2. ROW_NUMBER - 동일한 값이라도 각기 다른 순위를 부여 (계차수열 같이)
  • 집계 함수
    1. SUM
    1. MAX
    2. MIN
    3. AVG
    4. COUNT
  • 행 순서 함수
    1. FIRST_VALUE - 파티션 별 가장 선두에 위치한 데이터를 구하는 함수
    1. LAST_VALUE - 파티션 별 가장 끝에 위치한 데이터를 구하는 함수
    2. LAG - 파티션 별로 특정 수만큼 앞선 데이터를 구하는 함수
    3. LEAD - 파티션 별로 특정 수만큼 뒤에 있는 데이터를 구하는 함수
  • 비율 함수
    1. RATIO_TO_REPORT - 파티션 별 합계에서 차지하는 비율을 구하는 함수
    1. PERCENT_RANK - 해당 파티션의 맨 위 끝 행을 0, 맨 아래 끝 행을 1로 놓고 현재 행이 위치하는 백분위 순위 값을 구하는 함수
    2. CUME_DIST - 해당 파티션에서의 누적 백분율을 구하는 함수
    3. NTILE - 주어진 수만큼 행들을 n등분한 후 현재 행에 해당하는 등급을 구하는 함수
  • TOP-N 쿼리
    1. ROWNUM - 가짜 컬럼을 하나 만들어서 숫자 표기

CHAPTER 3, 관리 구문

  • DML (Data Manipulation Language)
    1. INSERT
    1. UPDATE
    2. DELETE
    3. MERGE
  • TCL (Transaction Control Language)
    1. COMMIT
    1. ROLLBACK
    2. SAVEPOINT
  • DDL (Data Definition Language)
    1. CREATE
    1. ALTER
  • DCL (Data Control Language)
    1. 유저 관련 명령어 (CREATE USER, ALTER USER, DROP USER)
    1. 권한 관련 명령어
      • GRANT
        • REVOKE
    2. ROLE 관련 명령어

0개의 댓글