논리 개체 상세화와 데이터 모델링

출제빈도: 하
빈출태그: 식별자, 데이터 모델, 관계

1. 논리 개체 정의

논리 개체는 현실 세계의 식별 가능한 대상을 디지털화한 것입니다. 하나의 타입으로 여러 개체를 생성할 수 있으며, 각 객체는 독립적이고 레코드들과 대응됩니다.

Database basic에서 예로 든 학생 테이블에서 “학생”이라는 개체 타입 아래 김선영·이철수 같은 개별 개체 인스턴스가 존재하는 것과 같은 구조다. 이 글은 그 개체를 구성하는 속성과 식별자를 더 세밀하게 파고든다.

2. 개체 타입(개체 스키마)

  • 개체명과 개체 속성을 정의해서 명세한 것으로, 다른 개체 타입과 관계를 형성합니다.
  • 개체 인스턴스: 특정 개체 타입에 의해 생성된 개체입니다.
  • 클래스와 유사하지만, 메서드를 정의하지 않고 데이터 모델링에서 데이터의 구조를 정의하는 데 사용된다는 점이 다릅니다.

3. 속성

3.1 속성의 정의

고유의 특성이며 개체의 성격을 나타냅니다. 가장 작은 단위(원자값)를 가집니다.

3.2 속성의 종류

  • 기본 속성: 업무 분석을 통해 정의됨
  • 설계 속성: 새로 만들거나 변형
  • 파생 속성: 다른 속성에 의해서 데이터가 정의될 때

예시:

  • 점수: 기본속성
  • 등급: 파생속성
  • 번호: 설계속성

3.3 속성의 분류

  • 기본키 속성: 개체를 식별
  • 외래키 속성: 다른 개체와 관계를 가짐
  • 일반 속성

3.4 속성 정의 시 고려사항

  • 원시속성을 제거하면 재현이 불가능함
  • 적절한 기준으로 분류하고 그룹을 개체타입으로 지정

4. 관계 스키마(Relation Schema)

속성들의 논리적 구조(표)를 의미하며, 다음과 같은 스키마 변환의 원칙을 준수합니다:

  • 분리(독립적인 관계성을 가지게)
  • 데이터 중복의 감소
  • 정보 무손실 원칙

5. 식별자

5.1 식별자의 정의

유일하게 구분할 수 있는 결정자입니다. 식별자는 변하지 않아야 하며, 주 식별자는 NULL을 허용하지 않습니다.

5.2 식별자의 종류

주 식별자 vs 보조 식별자

  • 주 식별자: 기본키
  • 보조 식별자: 주 식별자 대신하여 식별함 (고유 인덱스와 같은 의미, 중복값 불허)

내부식별자 vs 외부식별자

  • 내부식별자: 자신의 개체 타입으로 생성되는 식별자
  • 외부식별자: 다른 개체 타입에서 주 식별자를 상속 (외래키와 같은 의미)

단일 식별자 vs 복합식별자

  • 단일 식별자: 속성이 하나
  • 복합 식별자: 둘 이상의 속성이 필요 (슈퍼키에 해당)

원조 식별자 vs 대리식별자

  • 원조 식별자: 가공되지 않음
  • 대리 식별자: 복합 식별자의 속성을 한 속성으로 묶어서 하나의 식별자로 활용 (인조식별자)
    • 예: 코드, 일련번호 등 데이터를 새로 생성

예시로 구분해보면: “학번”은 학교가 학생을 식별하려고 새로 발급한 값이므로 내부식별자이자 대리식별자다. 반대로 “주민등록번호”는 다른 기관(정부)이 이미 부여한 값을 그대로 가져와 쓰는 것이므로 원조 식별자에 가깝다. 학생 테이블의 기본키(주 식별자)로 학번을 쓰고 주민등록번호는 보조 식별자로 두는 경우가 많은데, 이는 주민등록번호 같은 민감정보를 여러 테이블의 외래키로 퍼뜨리지 않기 위한 실무적 선택이기도 하다.

6. 데이터 모델링

6.1 데이터 모델링의 정의

  • 기업의 정보 구조를 모델로 문서화
  • 현실의 정보 구조를 실체와 관계를 통해 정보구조 표현

6.2 데이터 모델의 구성

  • 표시 요소: 논리적 구조, 연산, 제약조건
  • 구성 요소: 개체, 속성, 관계
  • 개발 절차: 수립, 분석, 설계, 개발

6.3 데이터 모델링의 특징

  • 정확한 이해 제공
  • 의사소통 수단으로 활용
  • 비용 감소
  • 개발의 기초 제공
  • 업무 흐름 파악 용이
  • 무결성 보장

7. 개념 데이터 모델링

  • 상위 수준의 모델로 데이터 모델의 골격을 설계
  • 주요 업무 영역에 포함되는 개체 타입간의 관계 파악
  • 특징: 독립적인 표현이 가능 (E-R모델로 표현 시 특정 DBMS 제약 없음)

8. 논리 데이터 모델링

  • 업무 데이터 규칙을 구체적으로 표현
  • 개념적 구조를 논리적 구조로 변환(매핑)
  • 특징:
    • 요구사항 변경에 비용이 많이 발생
    • 시스템 제약사항에 독립적
    • E-R모델 활용
    • 정규화 필요

9. 논리 개체의 관계

9.1 관계의 기본 개념

  • 관계: 의미 있게 연결된 상태
  • 존재 관계: 정적인 상태 (예: 학교-학생)
  • 행위 관계: 동적 관계 (예: 고객-주문개체)
  • 개체간 참조 무결성 보장 (모든 대응이 1로 시작)

9.2 관계의 종류

속성관계

  • 객체를 기술하기 위한 관계
  • 점선으로 표현
  • 원형으로 표시

개체관계

  • 실선으로 표현
  • 사각형으로 표시

종속관계

  • 개체와 개체 사이의 주종 관계
  • 식별 관계: 외래키가 기본키에 포함
  • 비식별 관계: 외래키가 기본키에 미포함

기타 관계

  • 중복 관계: 두 번 이상의 종속 관계가 발생
  • 재귀 관계: 자기 자신을 다시 참조
  • 상호 배타적 관계: 서로 밀어내는 관계
    • XOR관계(배타적 OR 관계)
    • 하위 구성 개체들 중 하나의 개체와만 통합

핵심 정리

  • 식별자의 네 가지 구분(주/보조, 내부/외부, 단일/복합, 원조/대리)은 서로 독립적인 축이라 하나의 식별자가 여러 축에 동시에 해당할 수 있다 — 학번은 “주 식별자 + 내부식별자 + 단일식별자 + 대리식별자”를 동시에 만족한다.
  • 개념 데이터 모델링은 DBMS에 독립적인 큰 그림, 논리 데이터 모델링은 그 그림을 정규화까지 마친 구체적 구조로 이해하면 두 단계의 차이가 분명해진다.