FreeHand

[SQLD] 데이터 모델링 본문

기타/자격증

[SQLD] 데이터 모델링

Jinn 2023. 11. 9. 18:06
데이터 모델링
  • 현실세계를 데이터베이스로 표현하기 위해서 추상화한다.
  • 고객과 의사소통을 통해 고객의 업무 프로세스를 이해해야 한다.
  • 데이터 모델링 표기법을 사용해서 모델링한다.
데이터 모델링 특징
  • 추상화: 현실세계를 간략하게 표현
  • 단순화: 누구나 쉽게 이해하도록 표현
  • 명확성: 명확하게 의미가 해석되고, 한 가지 의미를 가짐
데이터 모델링 단계
개념적 모델링 - 전사적 관점에서 모델링
- 추상화 수준이 가장 높은 모델링
논리적 모델링 - 식별자를 정의하고 관계, 속성 등을 표현
- 정규화를 통해 재사용성을 높임
물리적 모델링 - 테이블, 인덱스 등을 생성하는 단계
- 성능, 보안, 가용성 등을 고려하여 구축

 

- 개념적 모델링

  • 업무 전체에 대해서 모델링
  • 복잡하지 않게 중요한 부분 모델링
  • 엔터티(Entity)와 속성(Attribute)을 도출하고 개념적 ERD 작성

- 논리적 모델링

  • 식별자 정의
  • 정규화 수행

- 물리적 모델링

  • 실제 데이터베이스 구축

* ERD: 엔터티와 엔터티 간의 관계를 정의하는 모델링 방법

  • 엔터티를 도출하고 배치한다. (중요한 엔터티를 왼쪽 상단에 배치)
  • 엔터티 간의 관계를 설정한다.
  • 관계 참여도를 표현한다.
  • 관계 필수 여부를 표현한다.
3층 스키마

사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술한 ANSI 표준

3단계로 분리해서 독립성을 확보한다.

외부 스키마 - 사용자 관점
- 데이터베이스의 뷰를 표시
- 응용 프로그램이 접근하는 데이터베이스
개념 스키마 - 설계자 관점
- 데이터베이스 내의 규칙과 구조를 표현
- 통합 데이터베이스 구조
내부 스키마 - 개발자 관점
- 데이터베이스의 물리적 저장 구조
- 저장 구조, 레코드 구조, 필드 정의, 인덱스 등을 의미
엔터티(Entity)

업무에서 관리해야 하는 데이터 집합으로, 저장되고 관리되어야 한다.

엔터티 특징 설명
식별자 - 엔터티는 유일한 식별자가 있어야 한다.
인스턴스 집합 - 2개 이상의 인스턴스가 있어야 한다.
속성 - 엔터티는 반드시 속성을 가지고 있다.
관계 - 엔터티는 다른 엔터티와 최소한 한 개 이상의 관계가 있어야 한다.
업무 - 엔터티는 업무에서 관리되어야 하는 집합이다.
엔터티의 종류
  • 유형과 무형에 따른 종류
유형 엔터티 - 업무에서 도출되며 지속적으로 사용되는 엔터티
- 예) 고객, 강사, 사원 등
개념 엔터티 - 물리적 형태가 없는, 개념적으로 사용되는 엔터티
- 예) 거래소 종목, 코스닥 종목, 보험 상품 등
사건 엔터티 - 비즈니스 프로세스를 실행하면서 생성되는 엔터티
- 예) 주문, 체결, 수수료 청구 등
  • 발생 시점에 따른 종류
기본 엔터티 - 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성되는 엔터티. 키 엔터티라고도 함
- 예) 고객, 상품, 부서 등
중심 엔터티 - 기본 엔터티로부터 발생되고 행위 엔터티를 생성한다.
- 예) 계좌, 주문, 취소, 체결 등
행위 엔터티 - 2개 이상의 엔터티로부터 발생된다.
- 예) 주문 이력, 체결 이력 등
속성

엔터티가 가지는 항목으로, 의미적으로 더 이상 분리되지 않는 단위이다.

 

- 속성의 특징

  • 업무에서 관리되는 정보이다.
  • 하나의 값만 갖는다.
  • 주식별자에게 함수적 종속된다. 즉, 기본키가 변경되면 속성의 값도 변경된다.
속성의 종류
  • 분해 여부에 따른 종류
단일 속성 - 하나의 의미로 구성된 것
- 예) 회원 ID, 이름 등
복합 속성 - 여러 개의 의미가 있는 것
- 예) 주소 (시, 군, 동 등으로 분해 가능)
다중값 속성 - 여러 개의 값을 가지는 것. 엔터티로 분해된다.
- 예) 상품 리스트
  • 특성에 따른 종류
기본 속성 - 비즈니스 프로세스에서 도출되는 본래의 속성
- 예) 회원 ID, 이름, 계좌번호, 주문 일자 등
설계 속성 - 데이터 모델링 과정에서 발생되는 속성
- 유일한 값을 부여한다.
- 예) 상품코드, 지점코드 등
파생 속성 - 다른 속성에 의해서 만들어지는 속성
- 예) 합계, 평균 등

 

* 도메인: 속성이 가질 수 있는 값의 범위

관계

엔터티 간의 관련성을 의미한다.

 

- 관계의 종류

  • 존재 관계: 엔터티 간의 상태
  • 행위 관계: 엔터티 간의 행위
관계 차수

두 개의 엔터티 간에 관계에 참여하는 수를 의미한다.

- 1대1 관계

하나의 엔터티에 관계되는 엔터티가 1개인 관계

  • 완전 1대1: 반드시 존재한다.
  • 선택적 1대1: 없을 수도 있다.

- 1대N 관계

하나의 엔터티에 관계되는 엔터티 값이 여러 개 존재하는 관계

예) 고객과 계좌 -> 한 명의 고객은 여러 개의 계좌를 가질 수 있다.

 

- M대N 관계

두 개의 엔터티가 서로 여러 개의 관계를 갖는다.

예) 학생과 과목 -> 한 명의 학생은 여러 개의 과목을 수강할 수 있고, 한 개의 과목은 여러 학생이 수행한다.

 

- 필수적 관계, 선택적 관계

필수적 관계는 반드시 하나는 존재해야 하는 관계이고 선택적 관계는 없을 수도 있는 관계이다.

예) 고객이 반드시 있어야 계좌를 만들 수 있지만 고객이 있다고 반드시 계좌도 있는 것은 아니다.

 

식별 관계와 비식별 관계

식별 관계

  • 다른 엔터티에 의존하지 않고 독립적으로 존재할 수 있는 엔터티를 강한 개체라고 한다.(고객과 계좌에서 고객)
  • 강한 개체의 기본키를 다른 엔터티의 기본키로 관계를 갖는다.

비식별 관계

  • 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 갖는다.
  • 비식별 관계는 점선으로 표현한다.
식별자

엔터티를 대표할 수 있는 유일성을 만족하는 속성

예) 회원 ID, 계좌번호, 주민등록번호 등

식별자의 종류
  • 대표성 여부에 따른 종류
주식별자 - 유일성최소성을 만족하며서 엔터티를 대표하는 식별자
- 다른 엔터티와 참조 관계로 연결될 수 있다.
보조 식별자 - 유일성과 최소성을 만족하지만 대표성을 만족하지 못하는 식별자
  • 생성 여부에 따른 종류
내부 식별자 - 엔터티 내부에서 스스로 생성되는 식별자
- 예) 부서코드, 주문번호, 종목코드 등
외부 식별자 - 다른 엔터티와의 관계로 만들어지는 식별자
- 예) 계좌 엔터티에 회원 ID
  • 속성의 수에 따른 종류
단일 식별자 - 하나의 속성으로 구성
복합 식별자 - 두 개 이상의 속성으로 구성
  • 대체 여부에 따른 종류
본질 식별자 - 비즈니스 프로세스에서 만들어지는 식별자
인조 식별자 - 인위적으로 만들어지는 식별자
주식별자(기본키)
  • 유일성최소성을 만족한다.
  • 엔터티를 대표할 수 있어야 한다.
  • 엔터티의 인스턴스를 유일하게 식별한다.
  • 자주 변경되지 않아야 한다.
키의 종류
  • 슈퍼키: 유일성 O, 최소성 X
  • 후보키: 유일성 O, 최소성 O
  • 기본키: 유일성 O, 최소성 O, 대표성 O (후보키에서 대표성을 만족하는 키)
  • 대체키: 여러 후보키에서 기본키를 선정하고 남은 키

 

'기타 > 자격증' 카테고리의 다른 글

[SQLD] SQL 활용  (0) 2023.11.14
[SQLD] SQL 기본  (0) 2023.11.12
[SQLD] 데이터 모델과 성능  (0) 2023.11.10