본문 바로가기
  • Be curious
일상 기록

2024 SQLD 시험 준비 - 개념 정리 5편 <관계와 조인, 트랜잭션, Null>

by Minbook 2024. 3. 8.

 

SQLD 시험준비 (벼락치기) 개념정리 5번째 글

아직도 갈 길이 좀 남은 것 같아 걱정.. 시험 하루 전 오늘, 마저 벼락치기를 해보려 한다.

개념정리 1 ~ 4편은 아래 글을 참조

 

2024 SQLD 시험 준비 - 개념 정리 1편 <데이터 모델의 이해>

1월 말일에 SQLD 시험을 등록하고 한 달이 지났는데 아직 공부 시작을 하지 않았다. 물론 개인적으로 진짜 바쁘긴 했지만, 이렇게 코앞에 다가올 때까지 하지 않을 줄 몰랐다. 사실 사이트에 가서

minbook.tistory.com

 

2024 SQLD 시험 준비 - 개념 정리 2편 <엔터티, 속성, 관계>

SQLD 시험준비 (벼락치기) 개념정리 2번째 글 첫 번째 글인 정리는 아래를 참고. 2024.03.03 - [일상 기록] - 2024 SQLD 시험 준비 - 개념 정리 1편 엔터티 (Entity) 엔터티 (Entity) 정의 및 개념 데이터의 집합

minbook.tistory.com

 

2024 SQLD 시험 준비 - 개념 정리 3편 <식별자>

SQLD 시험준비 (벼락치기) 개념정리 3번째 글 개념정리 1, 2편은 아래 글을 참조 2024 SQLD 시험 준비 - 개념 정리 1편 1월 말일에 SQLD 시험을 등록하고 한 달이 지났는데 아직 공부 시작을 하지 않았다.

minbook.tistory.com

 

2024 SQLD 시험 준비 - 개념 정리 4편 <성능 데이터 모델링, 정규화, 반정규화>

SQLD 시험준비 (벼락치기) 개념정리 4번째 글 개념정리 1 ~ 3편은 아래 글을 참조 2024 SQLD 시험 준비 - 개념 정리 1편 1월 말일에 SQLD 시험을 등록하고 한 달이 지났는데 아직 공부 시작을 하지 않았다

minbook.tistory.com

 

관계 (Relationship)

관계 개념

  • 엔터티의 인스턴스 사이의 논리적 연관성
  • 관계를 맺는다 = 부모의 식별자를 자식에 상속하고, 상속된 속성을 매핑키 (조인키)로 활용하여 부모 → 자식 연결함
  • 예) 학생 테이블 (학생 번호, 학생 이름, 학생 전공 번호) 전공 테이블 (전공 번호, 전공명, 전공 대학명)에서 전공 번호 조인키로 연결하면 전공명 - 학생 이름 확인 가능

 

관계 분류

  • 존재 관계: 엔티티 간의 상태를 의미, A라는 엔터티가 B라는 엔터티에 존재에 영향을 줌
  • 행위 관계: 엔터티의 행위가 있는 것을 의미 (예: 주문 등 행위에 의해)

 

조인

  • 데이터의 경우 중복을 피하기 위해 정규화를 통해 테이블이 분리됨
  • 분리된 테이블은 서로 관계를 맺음
  • 두 테이블의 데이터를 동시 출력하거나 관계가 있는 테이블 참조가 필요하여 데이터를 연결함 → 조인

 

계층형 데이터 모델

  • 자기 자신끼리 관계가 발생
  • 하나의 엔터티 내의 인스턴스끼리 계층 구조를 가짐
  • 계층 구조를 갖는 인스턴스끼리 연결 = 셀프조인

 

트랜잭션

  • 하나의 연속적인 업무 단위
  • 트랜잭션에 의한 관계는 필수적인 관계 형태를 가짐
  • 하나의 트랜잭션에는 여러 SELECT, INSERT, DELETE, UPDATE 등이 포함될 수 있음
  • 모두 성공하거나 모두 취소되어야 하는 특성을 갖는 연속적인 업무 단위
  • 즉, 서로 독립적으로 발생되면 안되며 부분 COMMIT 불가

 

필수적, 선택적 관계 & ERD

  IE 표기법 바커 표기법
필수적 / 선택적 관계 구분 원 (O) 사용 실선 / 점선
필수적 관계 원을 그리지 않음 실선 표기
선택적 관계 원을 그림 (관계선 끝) 점선 표기
예시

 

Null

  • 아직 정해지지 않은 값
  • 0 또는 빈문자 ('') 와는 다른 개념
  • 모델 설계 시 각 컬럼별로 Null을 허용할지 여부를 결정 (Nullable column)

 

Null 특징

  • Null 을 포함한 연산 결과는 항상 Null (예: +, - 등 연산식) → Null을 사전 치환 후 연산해야 함
  • 집계함수는 Null을 제외하여 연산됨 (예: SUM, AVG, MIN, MAX 등)

 

Null 표기법

  IE 표기법 바커 표기법
Null 허용여부 알 수 없음 속성 앞에 동그라미 표시
예시   주문
ㅁ # 주문번호
주문금액
주문취소금액

 

 

대체 여부에 따른 식별자 구분

본질 식별자 - 업무에 의해 만들어지는 식별자
- 반드시 필요한 식별자
인조 식별자 - 업무에 필요하진 않지만 인위적으로 만들어지는 식별자
- 중복 데이터 발생 가능성 있음 (데이터 품질 저하)
- 불필요한 인덱스 생성 가능 (저장공간 낭비 및 DML 성능 저하)

 

반응형

댓글