뷰
1. 기본 테이블이 삭제되면 그 테이블 참조해 만든 뷰 역시 삭제
2. 뷰 참조해 또 다른 뷰 생성 가능
3. 원본 테이블 노출되지 않으므로 데이터 안전하게 보호 가능
4. 가상의 테이블이므로 물리적으로 구현되지 않아 저장공간 차지 X
속성
1. 파생속성은 가급적 적게 정의하는 것이 좋음
2. 파생속성은 다른 속성에 영향 받아 발생하는 속성
3. 설계속성은 업무상 필요한 데이터 외 업무를 규칙화하기 위해 기본 속성 변형하는 속성
데이터베이스 트랜잭션
1. 원자성 (atomicity) : 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행 or 전혀 실행되지 않은 상태로 남아야 함
2. 일관성 (consistency) : 트랜잭션의 작업 처리 결과는 항상 일관성 있어야 함
43. 고립성, 독립성 (isolation) : 트랜잭션이 실행되는 도중 른 트랜잭션의 영향 받아 잘못된 결과 만들어서는 안됨
4. 지속성 (durability) : 트랜잭션이 성공적으로 완료되었으면, 결과는 영구적으로 반영되어야 함
성능 데이터 모델링
1. 성능 비용 감소시킬 수 있음
2. 성능 향상 위해 튜닝 수행하면 데이터베이스 모델링 변경될 수 있음
3. 배치 통해 입력되는 데이터 용량이 크면 클수록 성능 튜닝 위한 비용 증가
4. 애플리케이션 트랜잭션 유형 파악함
비식별자 관계
: 부모 엔터티로부터 속성을 받았지만 자식 엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 것
대체 여부에 따른 식별자
본질 식별자 : 업무에 의해 만들어지는 식별자
인조 식별자 : 인위적으로 만들어지는 식별자
ERD IE표기법, Barker표기법
윈도우 함수
1. 서브쿼리는 사용 가능하지만, 중첩쿼리는 사용 불가능
3. GROUP BY와 Window Function 병행 사용 X
3. 집계 Window Function 사용할 때 Window 절과 함께 사용하면 집계의 대상이 되는 레코드 범위 지정 가능
4. 결과 건수 줄이지 X (집계되지만 원본 레코드는 그대로 유지)
5. 사용자가 명시적으로 튜닝해줘야 하는 경우 있음
윈도우 함수 종류
1. 순위함수
RANK : 공동 순위 개수 만큼 건너뛰고 다음 순위 반환
DENSE_RANK : 건너뛰는 것 없이 순위 구함
ROW_NUMBER : 행 출력되는 위치 순위 제공 함수
2. 행순서 함수
FIRST_VALUE : 윈도우 별 처음 나온 값 반환
LAST_VALUE : 윈도우 별 가장 마지막에 나오는 값 반환
LAG : 파티션 별 지정한 수 만큼 앞에 있는 행 가져옴 (출력할 행, 앞 행 개수, null일 경우 반환값)
LEAD : 파티션 별 지정한 수 만큼 뒤에 있는 행 가져옴
3. 비율함수
PERCENT_RANK : 파티션 별 윈도우에서 제일 먼저 나오는 것을 0, 제일 늦게 나오는 것을 1로 해서 행의 순서를 기준으로 백분율 구함
CUME_DIST : 현재 행보다 작거나 같은 데이터에 대해 누적 백분율 구함
NTILE : 인자로 전달된 개수 만큼 그룹으로 나눔
단일행 함수
sign(숫자) : 숫자가 양수인지, 음수인지, 0인지 부호 판정 (양수 -> 1, 0 -> 0, 음수 -> -1)
mod(숫자1, 숫자2) : 숫자1을 숫자2로 나눠 나머지 값 리턴
ceil / ceiling(숫자) : 숫자보다 크거나 같은 최소 정수 리턴 (-12.345 -> -12)
floor(숫자) : 숫자보다 작거나 같은 최대 정수 리턴 (-12.345 -> -13)
DECODE
SELECT DECODE(테이블명, 조건, 참일 때 출력될 값, 거짓일 때 출력될 값) FROM 테이블명;
CASE
SELECT CASE WHEN 조건1 THEN 결과1
WHEN 조건2 THEN 결과2
...
ELSE 결과
END
FROM 테이블명;
조건1이면 결과1 출력, 조건2면 결과2출력, 만족하는 조건 없으면 결과 출력
SEARCHED_CASE_EXPRESSION
SELECT 컬럼명,
CASE WHEN 컬럼명 = '데이터값' THEN '결과'
ELSE '결과'
END [AS 별칭명]
FROM 테이블명;
SIMPLE-CASE_EXPRESSION
SELECT 컬럼명,
CASE 컬럼명 WHEN '데이터값' THEN '결과'
ELSE '결과2'
END [AS 별칭명]
FROM 테이블명;
'Study > SQLD' 카테고리의 다른 글
[SQLD] SQLD 2과목 SQL기본 및 활용 (2) (1) | 2025.05.27 |
---|---|
[SQLD] SQLD 2과목 SQL 기본 및 활용(1) (0) | 2025.05.16 |
[SQLD] SQLD 1과목 데이터 모델링의 이해 (2) (3) | 2025.05.15 |
[SQLD] SQLD 1과목 데이터 모델링의 이해 (1) (2) | 2025.05.14 |
[SQLD] 핵심요약 (3) (0) | 2025.05.12 |