SQLD 1과목 - 1

2한나·2025년 12월 29일

SQLD

목록 보기
1/3

1장 데이터 모델링의 이해


데이터 모델링

특징

  • 추상화: 현실 세계를 일정한 형식에 맞추어 표현
  • 단순화: 복잡한 현실을 제한된 언어나 표기법으로 이해하기 쉽도록 표현
  • 명확화(정확화): 애매모호함을 배제하고 누구나 이해 가능하도록 표현

목적

  • 업무 내용 분석
  • 분석된 모델로 데이터베이스를 생성하여 개발 및 관리에 사용

유의점

  • 중복성: 여러 장소의 데이터베이스에 같은 정보를 저장하지 않도록
  • 비유연성: 데이터의 정의를 데이터 사용 프로세스와 분리
  • 비일관성: 데이터와 데이터간의 상호 연관관계에 대해 명확하게 정의
    → 프로그램과 테이블의 연계성을 높이는 것은 데이터 모델의 업무 변경에 대해 취약하게 만드는 단점

데이터베이스 스키마

구조

  • 외부 스키마: 사용자 관점
  • 개념 스키마: 통합된 모든 사용자의 관점
  • 내부스키마: 물리적 저장 구조

데이터 독립성

  • 논리적 데이터 독립성: 외부 단계 + 개념적 단계
    • 개념 스키마가 변경되어도 외부 스키마에 영향 X
    • 논리적 구조가 변경되어도 응용 프로그램에 영행 X
  • 물리적 데이터 독립성: 개념 단계 + 내부 단계
    • 내부 스키마가 변경되어도 외부/개념 스키마에 영향 X
    • 저장장치의 구조가 변경되어도 응용 프로그램/개념 스키마에 영향 X

엔티티

id이름태어난 해
1이한나2003
2이시형2006
  • 속성: id, 이름, 태어난 해
  • 속성값: 1, 이한나, 2003, 2, 이시형,2006
  • 인스턴스: (1,이한나,2003), (2,이시형,2006)

특징

  • 최소 두 개 이상의 속성이 있어야 한다.
  • 최소 두 개 이상의 인스턴스가 있어야 한다.
  • 다른 엔티티와 최소 한 개 이상의 관계가 있어야 한다. (단, 통계성 엔티티나, 코드성 엔티티의 경우 관계 생략 가능)

발생 시점에 따른 엔티티

  • 기본, 키 엔티티
  • 중심 엔티티
  • 행위 엔티티

속성

: 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위

특징

  • 한 개의 속성은 한 개의 속성값을 가진다.

특성에 따른 분류

  • 기본 속성: 업무 프로세스 분석을 통해 바로 정의가 가능한 속성
  • 설계 속성: 업무에 존재X, 필요하다고 판단되어 도출해낸 속성
  • 파생 속성: 다른 속성의 속상값들을 계산 or 특정한 규칙으로 변경하여 생성한 속성

관계

UML(점선/실선 구분) : ERD(단일화된 표기법)

  • 연관 관계 (실선 표현): 존재적 관계 → 소스코드에서 멤버변수로 선언하여 사용 가능
  • 의존 관계 (점선 표현): 행위적 관계 → 오퍼레이션에서 파라미터 등으로 이용 가능

표기법

  • 관계 명: 관계 이름
  • 관계 차수: 1:1, 1:N 등
  • 선택성: 필수관계/선택관계

관계 도출 시 확인 사항

  • 두 개의 엔티티 사이에 관심 있는 연관규칙이 존재하는가?
  • 두 개의 엔티티 사이에 정보의 조합이 발생되는가?
  • 업무 기술서, 장표에 관계 연결에 대한 규칙이 서술되어 있는가?
  • 업무 기술서, 장표에 관계 연결을 가능하게 하는 동사가 있는가?

도메인

: 각 속성이 가질 수 있는 값의 범위

식별자

종류

  • 대표성을 가지는가
    • 주식별자 / 보조식별자
  • 스스로 생성되었는가
    • 내부식별자 / 외부식별자
  • 단일 속성으로 식별이 되는가
    • 단일식별자 / 복합식별자
  • 새롭게 만들어졌는가
    • 본질식별자 / 인조식별자

주식별자 특징

  • 유일성, 최소성, 불변성, 존재성(NULL X)

식별자와 비식별자

  • 식별자
    • 강한 연결관계
    • 자식의 주식별자에 포함됨
    • 실선 표현
    • 상속받은 주식별자 속서을 타 엔티티에 이전 필요
  • 비식별자
    • 약한 연결관계
    • 자신의 일반 속성에 포함됨
    • 점선 표현
    • 상속받은 주식별자 속성을 타 엔티티에 차단 필요
    • 부모쪽의 관계 참여가 선택관계

조인과 관계

  • 조인이란 식별자를 상속하고, 상속된 속성을 매핑키로 활용하여 데이터를 결합하는 것을 의미한다.
  • 관계를 맺는다는 것은 식별자를 상속시키고 해당 식별자를 매핑키로 활용해 데이터를 결합하는 것을 의미한다.

2장 데이터 모델과 SQL


정규형

종류

  • 제 1정규형: 모든 속성은 반드시 하나의 값을 가져야 한다. → 모든 값이 원자값
    : 칼럼 단위로 중복이 되는 경우도 대상이 됨
  • 제 2정규형: 엔티티의 일반속성은 주식별자 전체에 종속이어야 한다. → 부분함수 종속 제거
  • 제 3정규형: 엔티티의 일반속상 간에는 서로 종속적이지 않아야 한다. → 이행함수 종속 제거

성능

  • 일반적으로 정규화 수행시 처리능력 향상. But 보장은 X, 조회성능이 저하될 수 도 있음
  • 반정규화는 성능을 위해 데이터 중복을 허용하는 것이지만 성능의 향상을 항상 보장하는 것은 아니다.

특징

  • 정규화는 논리 데이터 모델의 일관성을 확보하고 중복을 제거하여 속성들이 가장 적절한 엔티티에 배치되도록 한다.

NULL

특성

  • 0 또는 공백과 다르다.
  • 모르는 값 / 값의 부재를 의미한다.
  • NULL 값을 포함하는 연산의 결과값은 NULL
  • NULL 값과의 모든 비교는 UNKNOWN or FALSE
  • 집계함수 계산 시 NULL값은 계산에서 제외

0개의 댓글