1. 데이터 모델의 이해

  • 모델링
    • 모델링은 단지 시스템 구현만을 위한 작업이 아니다! (✕)
  • 모델링 특징 3가지
    • 단순화, 추상화, 명확화
  • 데이터 모델링의 목적
    • 업무 정보를 구성하는 기초 정보들을 일정한 표기법으로 표현
    • 실제 DB를 생성하여 개발 및 데이터 관리에 사용하기 위한 것 ⇒ 단지 DB 구축만을 위한 것이 아님
  • 데이터 모델링의 유의점
    • 중복, 비유연성, 비일관성 ⇒ 테이블 간 연계성을 높인다? (✕)
  • 스키마 3단계
    • 외부 스키마: 여러 사용자 관점
    • 개념 스키마: 통합된 모든 사용자 관점
    • 내부 스키마: 물리적 저장 구조 표현
    • 외부 단계 ↔ 개념적 단계: 논리적 데이터 독립성 고려 단계
  • 도메인: 엔터티 내 속성이 가질 수 있는 값의 범위, 데이터 타입, 크기, 제약사항을 지정
  • 관계 표기법 3요소: 관계명, 관계차수, 선택성(선택사항)

2. 엔터티

  • 엔터티 조건
    • 2개 이상의 속성, 2개 이상의 인스턴스로 구성
    • 다른 엔터티와 최소 한 개 이상의 관계가 있어야 함
  • 발생 시점에 따른 엔터티 구분
    • 기본(키) 엔터티, 중심 엔터티, 행위 엔터티
  • 엔터티 이름 부여 방법
    • 단수명사 사용, 약어 사용 금지, 유일성 확보
  • 물리적 독립성: 파일 저장 구조의 변경이 논리 스키마와 응용 프로그램에 영향을 주지 않는 성질

3. 속성

  • 기본 속성: 업무 분석을 통해 바로 정의한 속성
  • 설계 속성: 업무상 존재하지 않지만 설계 중 도출한 속성
  • 파생 속성: 다른 속성으로부터 계산·변형되어 생성되는 속성 (조회 성능 향상 목적)
  • 1개의 속성은 1개의 속성값만 가진다.(인스턴스에서 관리하고자 하는 최소 데이터 단위: 속성)

4. 관계

  • 관계 표기법
    • 관계명: 관계의 이름
    • 관계차수: 1:1, 1:M, M:N 등
    • 관계선택사항: 필수관계, 선택관계
  • 두 엔터티 간 관계 도출 시 확인 사항
    • 연관 규칙이 존재하는가?
    • 정보의 조합이 발생하는가?
    • 규칙이 서술되어 있는가?
    • 동사(명사 X)가 있는가?
  • 연관관계: 소스코드에서 멤버변수로 선언하여 사용
  • 의존관계: 오퍼레이션에서 파라미터 등으로 이용

5. 식별자

  • 주식별자의 특징 4가지
    • 유일성: 각 인스턴스를 유일하게 구분
    • 최소성: 유일성을 만족하는 최소 속성 수로 구성
    • 불변성: 한 번 지정되면 값이 변하지 않아야 함
    • 존재성: 지정 시 반드시 값이 있어야 함 (NULL 불가)
  • 식별자 종류 분류 기준
    • 대표성 여부: 주식별자 / 보조식별자(대표성 없음)
    • 생성 위치: 내부식별자 / 외부식별자(상속)
    • 속성 수: 단일 식별자 / 복합 식별자
    • 대체 여부: 본질 식별자(업무적 의미) / 인조 식별자(일련번호 등)
  • 명칭, 내역 같은 이름 속성은 주식별자로 적절하지 않음 (특히 사람 이름 → 동명이인 문제, 유일성 미보장)
  • SQL 조인 관계를 최소화하려면 → 식별자 관계로 연결
  • 도메인: 속성이 가질 수 있는 값의 범위

+ Recent posts