Post

SQLD

개념 정리

SQLD

데이터 모델링의 이해

스키마의 3단계 구조

  • 외부 스키마
    • 사용자가 보는 관점, 사용자나 응용 프로그램이 필요한 데이터를 정의
  • 개념 스키마
    • 데이터베이스의 전체 논리적 구조를 정의, 데이터베이스의 개체, 속성, 관계, 데이터 타입 등을 정의
  • 내부 스키마
    • 물리적으로 어떻게 저장되는지를 정의,

엔티티의 분류

  • 유형과 무형에 따른 분류
    • 유형, 개념, 사건
  • 발생 시점에 따른 분류
    • 기본, 중심, 행위

속성의 특징 : 정해진 주식별자에 함수적 종속성을 가져야 한다

완전 함수적 종속 : 특정 컬럼이 기본키에 대해 완전히 종속될 때 부분 함수적 종속 : 기본키 전체가 아니라 기본키 일부에 대해 종속될 때를 말함

속성의 분류

  • 속성의 특성에 따른 분류
    • 기본, 설계, 파생 속성
  • 엔티티 구성 방식에 따른 분류
    • 기본키, 외래키, 일반 속성
  • 분해 여부에 따른 속성
    • 단일, 복합, 다중값

관계의 종류

  • 존재적 관계
  • 한 엔티티의 존재가 다른 엔티티의 존재에 영향을 미치는 관계
  • 행위적 관계
  • 엔티티 간의 어떤 행위가 있는 것을 의미

식별 관계와 비식별 관계

  • 식별 관계
    • 하나의 엔티티의 기본키를 다른 엔티티가 기본키의 하나로 공유하는 관계
  • 비식별 관계
    • 기본키를 다른 엔티티의 기본키가 아닌 일반 속성으로 관계를 가지는 것

제 2 정규화 : 완전 함수적 종속을 만족하도록 분해 제 3 정규화 : A -> B, B -> C 이면 A,B와 B,C로 분리

트랜잭션

  • 하나의 연속적인 업무 단위
  • 트랜잭션에 의한 관계는 필수적인 관계 형태를 가짐
  • 부분 COMMIT 불가

두 엔티티의 관계가 서로 필수적일 때 하나의 트랜잭션을 형성, 독립적 수행이 가능하다면 선택적 관계

식별자 구분

  • 본질 식별자 : 업무에 의해 만들어지는 식별자
  • 인조 식별자 : 관리의 편이성 등의 이유로 만들어지는 식별자

인조 식별자의 단점 : 중복 데이터, 불필요한 인덱스 생성

SQL 기본 및 활용

테이블 : 하나의 테이블은 반드시 하나의 계정 소유, 테이블명은 중복될 수 없지만, 소유자가 다른 경우 같은 이름으로 생성 가능

SQL 종류

구분종류
DDLCREATE, ALTER, DROP, TRUNCATE
DMLINSERT, DELETE, UPDATE, MERGE
DCLGRANT, REVOKE
TCLCOMMIT,ROLLBACK
DQLSELECT

select시 공백문자 혹은 특수문자 포함시 쌍따옴표 전달 필요

함수 정리

  • substr(대상, m, n) : substring, 인덱스 1부터 시작,
  • translate(대상, 찾을 문자열, 바꿀 문자열) : 글자를 1대 1로 치환,
  • replace(대상, 찾을 문자열, 바꿀 문자열) : translate과 차이점은 문자열 전체를 변경
  • instr(대상, 문자열, m, n) : m, n 생략시 1, 1, m 위치에서 시작, n번째 발견된 문자열 위치
  • round(숫자, 자리수) : 반올림, 음수면 정수자리, (-2면 백의 자리로 반올림)
  • trunc(숫자, 자리수) : 버림
  • sign(숫자) : 양수면 1, 음수 -1, 0이면 0
  • next_day : 주어진 날짜 이후 지정된 요일의 첫번째 날짜

USING : 괄호 필수,

서브 쿼리 종류

  • 동작 방식에 따라
    • 비연관 서브 쿼리 : 서브쿼리가 메인 쿼리 컬럼을 가지고 있지 않은 형태
    • 연관 서브 쿼리 : 서브쿼리가 메인 쿼리 컬럼을 가지고 있는 형태
  • 위치에 따라
    • 스칼라 서브 쿼리 : select 절에 사용하는 서브 쿼리
    • 인라인 뷰 : from 절에 사용하는 서브 쿼리
    • where 절 서브 쿼리 : 비교 상수 자리에 값을 전달하기 위한 목적으로 주로 사용
  • GROUPING SETS : A별, B별 그룹 연산 결과 출력, 총계는 출력되지 않지만, NULL 혹은 () 사용하여 출력 가능
  • ROLLUP : A별, (A,B) 별, 전체 그룹 연산 결과 출력, 나열 대상의 순서 중요
  • CUBE : A별, B별, (A,B)별, 전체 그룹 연산 결과 출

WINDOW FUNCTION

1
select 윈도우함수() over partition by 컬럼 order by 컬럼 asc | desc rows | range between a and b
  • LAG, LEAD : lag - 이전 값, lead 이후 값 가져오기, order by 필수
  • NTILE : 행을 특정 컬럼 순서에 따라 정해진 수의 그룹으로 나누는 함수, order by 필수, partition by를 사용하여 특정 그룹을 원하는 수만큼 분리 가능

MERGE

  • 데이터 병합, 참조 테이블과 동일하게 맞추는 작업
1
2
3
4
5
6
7
8
9
merge into 테이블명
using 참조테이블
  on (연결 조건)
when matched then 
  update 
    set 수정내용
  delete (조건)
when not matched then
  insert values()

기출문제 오답 정리

1회차

속성의 특성에 따른 분류

  • 기본, 설계, 파생

2회차

not in 서브 쿼리 결과 중 null이 포함되는 경우 데이터가 출력되지 않는다, null을 비교하는 연산자로 인해 전체 조건이 거짓이 된다

3회차

기본키는 고유키와 NOT NULL 제약 조건을 합쳐 놓은 것과 같다

4회차

엔티티의 발생 시점에 따른 분류

  • 기본, 중심, 행위

5회차

  • 관계 도출시, 관계 연결을 가능하게 하는 동사가 있는지 고려해야함
  • 주식별자의 특징은 유일성, 최소성, 불변성, 존재성
  • 개체 무결성 : 테이블의 기본키를 구성하는 컬럼은 NULL 값이나 중복값을 가질 수 없다
  • 도메인 : 데이터베이스 속성이 가질 수 있는 값들의 범위 또는 집합
This post is licensed under CC BY 4.0 by the author.