SQLD: 오답노트(1)

SeongGyun Hong·2024년 11월 10일

SQL

목록 보기
10/51

1. 관계 유형 (Relationship Types)

  • 식별관계: PK → 자식 PK (실선)
  • 비식별관계: PK → 자식 일반컬럼 (점선)
    ✍️ TIP: "식별은 실선, 비식별은 점선"

2. 관계속성 체크포인트

  • FK 있으면 → 관계속성 가능성
  • FK 없으면 → 중복속성/반정규화 체크

3. 정규화 (Normalization)

1정규화: 원자값
2정규화: 부분종속제거
3정규화: 이행종속제거

4. ERD 표기법

바커(Barker)     |     IE
- 까마귀발       |   - 실선+점선
- #식별자        |   - PK
- *필수값        |   - FK

5. SQL 와일드카드

%  : 0개 이상 문자
_  : 정확히 1개 문자
[] : 문자 한개 선택

6. 스키마 구조

ANSI/SPARC 3단계   |   데이터 모델링 3단계
-------------------+----------------------
외부 스키마        |   개념적 모델링
개념 스키마        |   논리적 모델링
내부 스키마        |   물리적 모델링

7. 엔터티 체크리스트

  1. 업무상 필요한 정보인가?
  2. 유일 식별자 존재?
  3. 2개 이상 인스턴스?
  4. 업무 프로세스 활용?
  5. 속성 보유?
  6. 최소 1개 이상 관계?

8. RTRIM, LEAD, LAG

RTRIM: 오른쪽 공백제거
예) RTRIM('SQL  ')'SQL'

GROUPING_ID: 소계/합계 레벨 표시
예) GROUPING_ID(부서,직급)

LEAD: 다음 행 값
LAG: 이전 행 값
예) 
LEAD(급여) OVER(ORDER BY 입사일)
LAG(급여) OVER(ORDER BY 입사일)

9. 페이징 & 행 제한

-- ROWNUM 주의사항
-- ORDER BY보다 먼저 계산됨!
SELECT * FROM (
    SELECT ROWNUM rn, a.* 
    FROM table a
) WHERE rn BETWEEN 1 AND 10;

-- OFFSET-FETCH
SELECT * FROM table
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;

10. PIVOT

-- PIVOT: 행→열 변환
PIVOT (
    집계함수(대상컬럼)
    FOR 피벗컬럼 IN (1,2...)
)

-- REGEXP 함수
REGEXP_SUBSTR: 정규식 패턴 추출
REGEXP_INSTR: 정규식 패턴 위치

11. JOIN 핵심사항

  • 조인 컬럼 유일성 필수
  • 데이터 정합성 보장
  • 성능 고려 필수

12. 트랜잭션 (ACID)

A: 원자성 (Atomicity)
    - 전체처리 or 전체취소
    
C: 일관성 (Consistency)
    - 무결성 유지

I: 독립성 (Isolation)
    - 트랜잭션 간 격리
    - Lock 메커니즘

D: 영속성 (Durability)
    - 완료된 트랜잭션 영구 반영
profile
헤매는 만큼 자기 땅이다.

0개의 댓글