SQLD

1. 데이터 모델링

busy맨 2024. 2. 13. 17:05

1. 데이터 모델링의 이해

1) 데이터 모델링의 특징

  • 추상화
    • 현실 세계를 간략하게 표현
  • 단순화
    • 누구나 쉽게 이해할 수 있도록 표현
  • 명확성
    • 명확하게 의미가 해석되어야 하고 한 가지 의미만을 가져야함

2) 데이터 모델링 단계

  1. 개념적 모델링
    • 고객의 비즈니스 프로세스를 분석하고 업무 전체에 대해서 데이터 모델링을 수행
    • 복잡하게 표현하지 않고 중요한 부분을 위주로 모델링하는 단계
    • 추상화 수준이 가장 높은 단계
  2. 논리적 모델링
    • 개념적 모델링을 논리적 모델링으로 변환하는 작업
    • 식별자를 정의하고 관계, 속성 등을 모두 표현
    • 정규화를 통해서 재사용성을 높임
  3. 물리적 모델링
    • 데이터베이스를 실제 구축
    • 성능, 보안, 가용성 등을 고려하여 데이터베이스를 구축

3) 데이터 모델링 관점

  • 데이터
    • 비즈니스 프로세스에서 사용되는 데이터를 의미
    • 구조 분석, 정적 분석
  • 프로세스
    • 비즈니스 프로세스에서 수행되는 작업을 의미
    • 시나리오 분석, 도메인 분석, 동적 분석
  • 데이터와 프로세스
    • 프로세스와 데이터 간의 관계를 의미
    • CRUD(Create, Read, Update, Delete)분석

4) 데이터 모델링을 위한 ERD(Entity Relationship Diagram)

  • ERD 작성 절차
    1. 엔터티를 도출하고 그린다
    2. 엔터티를 배치
    3. 엔터티 간의 관계 설정
    4. 관계명 서술
    5. 관계 참여도 표현
    6. 관계의 필수 여부 표현

5) 데이터 모델링 고려사항

  1. 데이터 모델의 독립성
    • 중복된 데이터를 제거 → 정규화
  2. 고객 요구사항의 표현
    • 고객의 요구사항을 간결하고 명확하게 표현
  3. 데이터 품질 확보
    • 데이터 표준 확보를 통한 데이터 품질 향상

 

2. 3층 스키마(3-Level Schema)

1) 3층 스키마

  • 데이터베이스의 독립성을 확보하기 위한 방법
    • 데이터 복잡도 감소, 데이터 중복 제거, 사용자 요구사항 변경에 따른 대응력 향상, 관리 및 유지보수 비용 절감 등의 장점

2) 3층 스키마 구조

  • 외부 스키마
    • 응용 프로그램이 접근하는 데이터베이스를 정의
    • 사용자 관점, 업무상 관련이 있는 데이터 접근
  • 개념 스키마
    • 통합 데이터베이스 구조
    • 설계자 관점
    • 전체 데이터베이스 내의 규칙과 구조를 표현
  • 내부 스키마
    • 개발자 관점
    • 데이터베이스의 물리적 저장 구조
    • 데이터 저장 구조, 레코드 구조, 필드 정의, 인덱스 등을 정의

3. 엔터티(Entity)

1) 엔터티

  • 엔터티는 변별할 수 있는 사물
  • 정보를 저장할 수 있는 어떤 것
  • 데이터베이스 내부에서 변별 가능한 객체
  • 정보가 저장될 수 있는 장소, 사람, 사건, 개념, 물건 등

2) 엔터티 특징

  1. 식별자
    • 엔터티는 유일한 식별자가 존재
  2. 인스턴스 집합
    • 2개 이상의 인스턴스가 존재
    • 인스턴스(=행의 수): 테이블이 가질 수 있는 값
  3. 속성
    • 반드시 속성이 존재
  4. 관계
    • 다른 엔터티와 최소한 한 개 이상의 관계가 존재
  5. 업무
    • 업무에서 관리되어야 하는 집합

3) 엔터티 종류

  • 유형과 무형에 따른 엔터티 종류
    • 유형 엔터티
      • 지속적으로 사용되는 엔터티
    • 개념 엔터티
      • 개념적으로 사용되는, 물리적 형태가 없는 엔터티
    • 사건 엔터티
      • 비즈니스 프로세스를 실행하면서 생성되는 엔터티
  • 발생 시점에 따른 엔터티 종류
    • 기본 엔터티
      • 독립적으로 생성되는 엔터티
    • 중심 엔터티
      • 기본 엔터티로부터 발생되고 행위 엔터티를 생성
    • 행위 엔터티
      • 2개 이상의 엔터티로부터 발생

 

4. 속성(Attribute)

1) 속성의 특징

  • 업무에서 관리되는 정보
  • 일반적으로 하나의 값만 가짐
  • 주식별자에게 함수적으로 종속
    • 기본키가 변경되면 속성의 값도 변경된다는 의미

2) 속성의 종류

  • 분해 여부에 따른 속성의 종류
    • 단일 속성
      • 하나의 의미로 구성된 것
      • Ex) 회원ID, 이름
    • 복합 속성
      • 여러 개의 의미가 있는 것
      • Ex) 주소는 시, 군, 동으로 분해됨
    • 다중값 속성
      • 속성에 여러 개의 값을 가질 수 있는 것
      • Ex) 상품 리스트
  • 특성에 따른 속성의 종류
    • 기본 속성
      • 비즈니스 프로세스에서 도출되는 본래의 속성
    • 설계 속성
      • 데이터 모델링 과정에서 발생되는 속성
    • 파생 속성
      • 다른 속성에 의해서 만들어지는 속성

 

5. 관계(Relationship)

1) 관계

  • 엔터티 간의 관련성을 의미

2) 관계의 종류

  • 존재 관계
    • 엔터티 간의 상태를 의미
  • 행위 관계
    • 엔터티 간에 어떤 행위가 있는 것

3) 관계 차수(Relation Cardinality)

  • 관계 차수
    • 두 개의 엔터티 간에 관계에 참여하는 수를 의미
  • 필수적 관계
    • 반드시 하나가 있어야하는 관계
    • | 로 표현
  • 선택적 관계
    • 없을 수도 있는 관계
    • O로 표현

 

6. 엔터티 식별자(Entity Identifier)

1) 주식별자(기본키, primary key)

  • 최소성
  • 대표성
  • 유일성
  • 불변성
  • 존재성

2) 키의 종류

  • 기본키
    • 후보키 중에서 엔터티를 대표할 수 있는 키
  • 후보키
    • 유일성과 최소성을 만족하는 키
  • 슈퍼키
    • 유일성은 만족하지만 최소성을 만족하지 않는 키
  • 대체키
    • 여러 개의 후보키 중에서 기본키를 선정하고 남은 키
  • 외래키
    • 다른 테이블의 기본키 필드를 가리키는 것으로 참조 무결성을 확인하기 위해 사용

3) 식별자의 종류

  • 대표성 여부에 따른 식별자의 종류
    • 주식별자
      • 유일성과 최소성을 만족하면서 엔터티를 대표하는 식별자
    • 보조 식별자
      • 유일성과 최소성은 만족하지만 대표성을 만족하지 못하는 식별자
  • 생성 여부에 따른 식별자의 종류
    • 내부 식별자
      • 엔터티 내부에서 스스로 생성되는 식별자
    • 외부 식별자
      • 다른 엔터티와의 관계로 인하여 만들어지는 식별자
  • 속성의 수에 따른 식별자의 종류
    • 단일 식별자
      • 하나의 속성으로 구성
    • 복합 식별자
      • 두 개 이상의 속성으로 구성
  • 대체 여부에 따른 식별자의 종류
    • 본질 식별자
      • 비즈니스 프로세스에서 만들어지는 식별자
    • 인조 식별자
      • 인위적으로 만들어지는 식별자
      • 후보 식별자 중에서 주식별자로 선정할 것이 없거나, 주식별자가 너무 많은 컬럼으로 되어 있는 경우 사용
        • Ex) 순서번호(Sequence Number) 등

'SQLD' 카테고리의 다른 글

2. 데이터 모델과 SQL  (0) 2024.02.26