[!info]

1과목 - 데이터 모델링의 이해에 대한 내용을 정리한 페이지입니다.

1장 데이터 모델링의 이해

데이터 모델링

모델링

현실의 정보를 약속된 표기법을 활용하여 DB 구조로 표현하는 과정

  1. 특징 : 단추명순화, 상화, 확화
  2. 유의사항
    • 중복 : 같은 데이터 제공 X
    • 비유연성 : 사소한 업무변화에 잦은 모델 변경 X, 데이터 정의를 프로세스와 분리
    • 비일관성 : DB 내의 정보가 모순·상반 X
  3. 관점 : 데이터 / 프로세스 / 데이터와 프로세스 관점 (CRUD 분석 기반)

모델링 단계

개논물 : 념적 → 리적 → 리적 모델링

  1. 개념적 모델링 : 핵심 엔터티 추출, ERD 작성
  2. 논리적 모델링 : 정규화 수행, 재사용 가능
  3. 물리적 모델링 : 실제로 구현

데이터 모델의 필수 구성요소 : 엔터티(Entity), 속성(Attribute), 관계(Relationship)

스키마 (ANSI/SPARC)

스키마 : DB의 구조와 제약 조건에 관한 전반적 명세를 기술한 메타데이터의 집합

  1. 외부 스키마 : 사용자 관점 (뷰)
  2. 개념 스키마 : 전체적인 논리 구조
  3. 내부 스키마 : 물리적 장치에서 실제 저장

독립성

  • 논리적 독립성 : 개념 스키마 변경 → 외부 스키마 영향 X
  • 물리적 독립성 : 내부 스키마 변경 → 외부/개념 스키마 영향 X

ERD

  • 피터첸 Entity Relationship Model 개발 (1976)
  1. IE 표기법
  2. Barker 표기법

ERD 작성 순서

도배설명차선

  • 엔터티 출 → 치 → 관계 정 → 관계 기술 → 관계 수 기술 → 필수/택사양 기술

엔터티

엔터티

현실 세계에서 독립적으로 식별 가능한 객체. 업무상 분석해야 하는 대상(인스턴스)의 집합

특징 (6가지)

  1. 유일한 식별자에 의해 식별 가능
  2. 해당 업무에서 필요하고 관리하고자 하는 정보
  3. 두 개 이상의 인스턴스들의 집합
  4. 반드시 2개 이상의 속성을 가짐
  5. 업무 프로세스에 의해 이용되어야 함
  6. 다른 엔터티와 최소 1개 이상의 관계 성립

엔터티의 분류

  1. 유무형에 따른 분류

    • 유형 엔터티 : 물리적 형태 O (학생, 책, 고객)
    • 개념 엔터티 : 물리적 형태 X (과목, 학과, 부서)
    • 사건 엔터티 : 업무 수행에 따라 발생 (수강, 주문)
  2. 발생시점에 따른 분류

    • 기본 엔터티 : 업무에 원래 존재. 타 엔터티의 부모 역할. 고유한 주식별자 보유
    • 중심 엔터티 : 기본 엔터티로부터 발생. 다른 엔터티와의 관계를 통해 행위 엔터티 생성
    • 행위 엔터티 : 2개 이상의 부모엔터티로부터 발생. 자주 바뀌거나 데이터 양 증가

엔터티 명명 규칙

  1. 현업에서 사용하는 용어 사용
  2. 약자 사용 자제
  3. 단수 명사 사용
  4. 고유한 이름 (모든 엔터티에서 유일하게)
  5. 엔터티 생성 의미대로 부여

속성

속성

업무에서 필요로 하는 고유한 성질·특징. 더 이상 분리되지 않는 최소의 데이터 단위 (원자성). 컬럼으로 표현

  • 한 개의 엔터티는 2개 이상의 인스턴스 집합
  • 한 개의 엔터티는 2개 이상의 속성 가짐
  • 한 개의 속성은 1개의 속성값 가짐 (원자성)

속성의 특징

  1. 해당 업무에서 필요하고 관리하고자 하는 정보
  2. 정해진 주식별자에 함수적 종속성을 가져야 함
  3. 한 속성에 여러 값인 경우 별도 엔터티로 분류

함수적 종속성

속성 A에 의해 속성 B가 유일하게 결정되면 B는 A에 함수적으로 종속 (A → B)

  • 완전함수적 종속 : PK값 모두에 의한 종속관계
  • 부분함수적 종속 : 기본키 일부에 대해 종속

속성의 분류

  1. 속성의 특성에 따른 분류

    • 기본 속성 : 업무로부터 추출한 모든 일반적인 속성
    • 설계 속성 : 기본 속성 외에 업무를 규칙화하기 위해 새로 만들거나 변형한 속성
    • 파생 속성 : 다른 속성에 영향을 받아 발생하는 속성. 대부분 계산된 값. 빠른 성능 위해 적을수록 좋음
  2. 엔터티 구성방식에 따른 분류

    • PK (Primary Key) : 기본키
    • FK (Foreign Key) : 외래키
    • 일반 속성 : 엔터티 속 PK, FK가 아닌 속성
  3. 분해 여부에 따른 분류

    • 단일 : 하나의 의미
    • 복합 : 여러 개의 의미
    • 다중값 : 여러 개의 값을 가질 수 있는 경우

속성 명명규칙

  1. 해당 업무에서 사용하는 이름 부여
  2. 서술식 속성명 사용 X
  3. 약어 사용 자제
  4. 전체 데이터 모델에서 유일한 명칭 가져야 함

도메인

각 속성이 가질 수 있는 값의 범위. 속성의 데이터 타입, 크기, 제약사항 지정


관계

관계

엔터티의 인스턴스 사이의 논리적 연관성으로 서로에게 연관성이 부여된 상태

관계의 종류 (ERD에서 구분 X)

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

ERD에서는 구분 X, UML에서는 구분 O

관계의 구성 — 관차선

  1. 계명 (Membership) : 관계의 이름
  2. 수 (Cardinality) : 엔터티 간 참여자 수 (1:1, 1:N, M:N)
  3. 택사양 (Optionality) : 필수/선택적 참여 여부

관계의 차수 (Cardinality)

  1. 1:1
    • 완전 1:1 : 관계되는 엔터티가 반드시 하나
    • 선택적 1:1 : 관계되는 데이터가 없을 수 있음
  2. 1:N : 엔터티 행 하나에 다른 엔터티값 여러 개
  3. M:N : 두 엔터티가 다대다 연결. 조인 시 연결엔터티로 1:N으로 해소

관계의 페어링

인스턴스가 개별적으로 관계를 가지는 것

  • 차수 : 하나의 엔터티와 다른 엔터티 간의 레코드 연결 방식
  • 페어링 : 두 엔터티 간의 특정 연결을 설명하고 추가 정보를 제공하는 용도

관계 체크사항

  1. 연관규칙이 있는가?
  2. 정보의 조합이 발생하는가?
  3. 규칙이 서술되어 있는가?
  4. 동사가 있는가?

식별자

식별자

각 인스턴스를 구분하는 대표적 속성. 논리모델링 용어 (물리 모델링에서는 key)

식별자의 특징

  1. 유일성 : 모든 인스턴스 유일하게 구분
  2. 최소성 : 유일성을 만족하는 최소 개수 속성
  3. 불변성 : 식별자의 값 불변 (항상 고유값)
  4. 존재성 : 반드시 값 존재. NULL 허용 X

식별자 분류

  1. 대표성 여부
    • 주식별자 : 대표성 O, 참조관계 연결 O
    • 보조식별자 : 대표성 X, 참조관계 연결 X
  2. 생성 여부
    • 내부식별자 : 스스로 생성됨
    • 외부식별자 : 타 엔터티로부터 받아옴 (외래키)
  3. 속성의 수
    • 단일식별자 : 하나의 속성
    • 복합식별자 : 2개 이상의 속성으로 구성
  4. 대체여부
    • 본질식별자 (원조식별자) : 업무에 의해 만들어짐
    • 인조식별자 : 인위적으로 만들어짐 (자동 증가 일련번호 등)

주식별자 도출기준

  1. 해당 업무에서 자주 이용되는 속성
  2. 명칭, 내역 등과 같이 이름으로 기술되는 것 X
  3. 복합 주식별자 구성할 경우 너무 많은 속성 X → 너무 많은 경우 인조식별자 생성

인조식별자 단점

  • 중복 데이터 발생 → 데이터 품질저하
  • 불필요한 인덱스 생성 → 저장공간 낭비 및 DML 성능저하

식별 관계와 비식별 관계

  1. 식별관계 (주식별자) : 자식의 주식별자로 부모의 주식별자 상속 (부모 기본키 = 자식 기본키). NULL 불가
  2. 비식별관계 (비식별자) : 부모 속성을 자식의 일반 속성으로 사용

키의 종류

  1. 기본키 (PK) : 엔터티를 대표할 수 있는 키
  2. 후보키 (Candidate Key) : 유일성, 최소성 O. 이들 중 하나가 기본키, 나머지는 대체키
  3. 슈퍼키 : 유일성 O, 최소성 X
  4. 외래키 (FK) : 다른 테이블 기본키를 참조하는 키

2장 데이터 모델과 SQL

정규화

이상현상을 줄이기 위해 최소한의 데이터를 하나의 엔터티에 넣는 식으로 데이터를 분해하는 과정

  • 데이터의 중복 제거, 데이터모델의 독립성 확보
  • 논리 데이터 모델링 시점 : 엔터티 상세화 과정

이상현상 (Abnormality)

정규화를 하지 않아 발생하는 현상

  • 삽입이상 / 갱신이상 / 삭제이상

정규화 단계

  1. 제1정규화 (1NF) : 테이블 컬럼이 원자성 갖도록 분해
    • 하나의 행, 컬럼이 한 값만 갖도록 만듦
  2. 제2정규화 (2NF) : 완전 함수 종속을 만듦
    • PK가 2개 이상일 때 부분 함수 종속 관계 분리
  3. 제3정규화 (3NF) : 이행적 종속 없애도록 분리
    • PK가 아닌 일반 컬럼에 의존하는 컬럼 분리

반정규화

DB의 성능 향상을 위해 데이터 중복을 허용하고 조인을 줄이는 DB 성능 향상 방법


조인

정규화로 분리된 두 테이블을 동시에 출력하거나, 참조하기 위해 데이터를 연결하는 과정

  • 계층형 데이터 모델 : 셀프조인. 자기 자신끼리 관계 발생
  • 상호배타적 관계 : 두 테이블 중 하나만 상속

NULL

아직 정해지지 않은 값 (≠ 0, 빈문자열). 모델 설계 시 각 컬럼별로 허용여부 결정

NULL의 특성

  1. NULL을 포함한 연산 결과는 항상 NULL (사전에 NULL값을 치환해야 연산 값이 나옴)
  2. 집계함수는 NULL을 제외하고 연산 수행
    • SUM, AVG, MAX, MIN : 항상 NULL 무시
    • COUNT(컬럼) : NULL 제외 / COUNT(*) : 모든 행

NULL의 ERD 표기법

  • IE 표기법 : NULL 허용여부 알 수 없음
  • Barker 표기법 : 속성 앞 O → NULL 허용

트랜잭션

데이터베이스의 논리적 연산단위. 하나의 연속적인 업무 단위. 부분 COMMIT 불가. 필수적 관계 형태를 가짐

필수적·선택적 관계

  • 두 엔터티가 필수적 관계 형태 → 트랜잭션 형성
  • 서로 독립적 수행이 가능 → 선택적 관계로 표현