데이터 모델링

Quill_Kim_13·2023년 8월 29일
0

sql 공부

목록 보기
2/7

데이터 모델링

  • 데이터 모델링은 현실세계를 데이터베이스로 표현하기 위해서 추상화한다.

  • 데이터 모델링을 하기 위해서는 고객과의 의사소통을 통해 고객의 업무 프로세스를 이해해야 하며, 이해 후 테이터 모델링 표기법을 사용하여 복잡하지 않게 모델링을 해야한다.

  • 추상화 -> 공통적인 특징을 찾고, 간략하게 표현한다.

  • 단순화 -> 복잡한 문제를 피하고 누구나 이해할 수 있게 표현한다.

  • 명확성 -> 의미적 해석이 모호하지 않고 명확하게 해석되어야 한다.

데이터 모델링 단계

  1. 개념적 모델링
    고객의 비지니스 프로세스를 분석하고, 업무 전체에 대해서 데이터 모델링을 수행한다.
    복잡하게 표현하지 x, 중요한 부분을 위주로 모델링을 하는 단계.
    업무적 관점에서 모델링하며, 기술적인 용어는 가급적 사용하지 않는다.
    엔터티와 속성을 도출하고, 개념적 ERD(Entity Relationship Diagram)를 작성한다.
    -> 추상화 수준이 가장 높은 수준의 모델링

  2. 논리적 모델링
    개념적 모델링을 논리적 모델링으로 변화하는 작업이며, 식별자를 도출하고, 필요한 모든 릴레이션을 정의한다.
    정규화를 수행해서 데이터 모델의 독립성을 확보한다.
    -> 정규화를 통해 재사용성을 높은다.

  3. 물리적 모델링
    데이터베이스를 실제 구축한다. 즉, 테이블, 인덱스, 함수 등을 생성한다.
    성능, 보안, 가용성을 고려해서 구축한다.

데이터 모델링을 위한 ERD

ERD 작성 절차
1. 엔터티를 도출하고 그린다.

  • 업무에서 관리해야하는 집합을 도출한다.
  1. 엔터티를 배치한다.
  • 엔터티를 도출한 후 엔터티를 배치한다.
  • 중요한 엔터티를 왼쪽 상단에 배치한다.
  1. 엔터티 간의 관계를 설정한다.

  2. 관계명을 서술한다.

  • 엔터티 간의 어떤 행위나 존재가 있는지 표현한다.
  1. 관계 참여도를 표현한다.
  • 관계 참여도는 한 개의 엔터티와 다른 엔터티 간의 참여하는 관계 수를 의미한다.
  • 즉, "고객이 여러 개의 계좌를 개설할 수 있다"와 같은 의미를 표현한 것.
  1. 관계 필수 여부를 표현한다.
  • 필수는 반드시 존재해야 하는 것이다.
  • 예를 들어 "모든 고객은 반드시 하나의 계좌를 개설해야 한다."와 같은 의미를 표현한다.

3층 스키마

  • 사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 이들간의 관계를 정의한 ANSI 표준이다.
  • 3층 스키마는 데이터베이스의 독립성을 확보하기 위한 방법이며, 데이터의 독립성을 확보하면 데이터 복잡도 감소, 데이터 중복 제거, 사용자 요구사항 변경에 따른 대응력 향상, 관리 및 유지보수 비용 절감 등의 장접을 갖는다.
  • 3단계 계층으로 분리해서 독립성을 확보하는 방법으로 각 계층을 뷰(View)라고도 한다.

논리적 독립성 - 개념스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것이다.
물리적 독립성 - 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것이다.

외부 스키마

  • 사용자 관점, 업무상 관련이 있는 데이터 접근이다.
  • 관련 데이터베이스의 뷰(View)를 표시한다.
  • 응용 프로그램이 접근하는 데이터베이스를 정의한다.

개념 스키마

  • 설계자 관점, 사용자 전체 집단의 데이터베이스 구조이다.
  • 전체 데이터베이스 내의 규칙과 구조를 표현한다.
  • 통합 데이터 베이스 구조이다.

내부 스키마

  • 개발자 관점, 데이터베이스의 물리적 저장 구조이다.
  • 데이터 저장 구조, 레코드 구조, 필드 정의, 인덱스 등을 의미한다.

엔터티(Entity)

  • 엔터티는 업무에서 관리해야 하는 데이타 집합을 의미하며, 저장되고 관리되어야 하는 데이터 이다.
  • 엔터티는 개념, 사건 장소 등의 명사이다.

엔터티는 고객의 비즈니스 프로세스에서 관리되어야 하는 정보를 추출해야 한다.

엔터티(Entity) 특징
식별자

  • 엔터티는 유일한 식별자가 있어야 한다.
  • ex) 회원id, 계좌번호

인스턴스 집합

  • 2개 이상의 인스턴스가 있어야 한다.
  • 즉 고객정보는 2명 이상 있어야 한다.

속성

  • 엔터티는 반드시 속성을 가지고 있다.
  • ex) 고객 엔터티에 회원id, 패스워드, 이름, 주소, 전화번호

관계

  • 엔터티는 다른 엔터티와 최소한 한 개 이상 관계가 있어야 한다.
  • ex) 고객은 계좌를 개설한다.

업무

  • 엔터티는 업무에서 관리되어야 하는 집합니다.
  • ex) 고객, 계좌

엔터티(Entity) 종류

  • 엔터티의 종류는 유현과 무형에 따른 종류, 엔터티가 발생하는 시점에 따른 종류로 나누어 진다.
  • 엔터티를 유형과 무형으로 분류하는 기준은 물리적 형태의 존재 여부이다.

유형과 무형에 따른 엔터티 종류

유형 엔터티

  • 업무에서 도출되며 지속적으로 사용되는 엔터티 이다.
  • ex) 고객, 강사, 사원 등

개념 엔터티

  • 유형 엔터티는 물리적 형태가 있지만, 개념 엔터티는 물리적 형태가 없다.
  • 개념적으로 사용되는 엔터티이다.
  • ex) 거래소 종목, 코스닥 종목, 생명보험 상품

사건 엔터티

  • 비즈니스 프로세스를 실행하면서 생성되는 엔터티이다.
  • ex) 주문, 체결, 취소주문, 수수료 청구 등

발생 시점에 따른 엔터티 종류

기본 엔터티

  • 키 엔터티라고도 한다.
  • 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성되는 엔터티이다.
  • ex) 고객, 상품, 부서 등

중심 엔터티

  • 기본 엔터티와 행위 엔터티 간의 중간에 있는 것이다.
  • 즉, 기본 엔터티로부터 발생되고 행위 엔터티를 생성하는 것이다.
  • ex) 계좌, 주문, 취소, 체결 등

행위 엔터티

  • 2개 이상의 엔터티로부터 발생된다.
  • ex) 주문 이력, 체결 이력 등

속성

  • 속성이라는 것은 업무에서 필요한 정보인 엔터티가 가지는 항목이다.
  • 속성은 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다.
  • 인스턴스의 구성요소이고 의미적으로 더 이상 분해 되지 않는다.

속성의 특징과 종류

특징

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

속성의 종류

분해 여부에 따른 속성의 종류

단일 속성

  • 하나의 의미로 구성된 것으로 회원id, 이름 등이다.

복합 속성

  • 여러 개의 의미가 잇는 것으로 대표적으로 주소가 있다.
  • 주소는 시, 군, 동 등으로 분해될 수 있다.

다중값 속성

  • 속성에 여러 개의 값을 가질 수 있는 것으로 예를 들어 상품 리스트가 있다.
  • 다중값 속성은 엔터티로 분해된다.

특성에 따른 속성의 종류

기본 속성

  • 비즈니스 프로세스에서 도출되는 본래의 속성이다.
  • 회원id, 이름, 계좌번호, 주문 일자 등

설계 속성

  • 데이터 모델링 과정에서 발생되는 속성이다.
  • 유일한 값을 부여한다
  • ex) 상품코드, 지점코드 등

파생 속성

  • 다른 속성에 의해서 만들어지는 속성이다.
  • ex) 합계, 평균 등

도메인(Domain)

  • 도메인은 속성이 가질 수 있는 값의 범위이다.
  • ex) 성별이라는 속성의 도메인은 남자와 여자이다.

관계(Relationship)

  • 관계는 엔터티 간의 관련성을 의미하며 존재 관계와 행위 관계로 분류 된다.
  • 존재 관계는 두 개의 엔터티가 존재 여부의 관계가 있는 것이고, 행위 관계는 두 개의 엔터티가 어떤 행위에 의한 관련성이 있는 것이다.

관계의 종류

  1. 존재 관계
    존재 관계는 엔터티 간의 상태를 의미한다. 예를 들어 고객이 은행에 회원가입을 하면, 관리점이 할당 되고, 그 할당된 관리점에서 고객을 관리한다.

  2. 행위 관계
    행위 관계는 엔터티 간에 어떤 행위가 있는 것으로, 계좌를 상용해서 주문을 발주하는 관계가 만들어진다.
    예를들어 증권회사는 계좌를 개설하고 주문을 발주하는 것이다.

관계 차수

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

관계 차수의 종류

  1. 1:1 관계
    1대 1 관계는 완전 1대1 관계와 선택적 1대1 관계가 있다.

완전 1대1 -> 하나의 엔터티에 관계되는 엔터티의 관계가 하나인 경우로, 반드시 존재한다
선택적 1대1 -> 하나의 엔터티에 관계되는 엔터티의 관계까 하나이거나 없을 수도 있다.

  1. 1:N 관계
    1대N 관계는 엔터티에 행이 하나 있을 때 다른 엔터티의 값이 여러 개 있는 관계이다.
    예를 들어 고객은 여러 개의 계좌를 가질 수 있다.

  2. M:N 관계
    M:N 관계는 두 개 엔터티가 서로 여러 개의 관계를 가지고 있는 것이다.
    예를 들어 한명의 학생이 여러 개의 과목을 수강할 수 있다. 반대로 한 개의 과목은 여러명의 학생이 수강한다.
    관계형 데이터베이스에서 M대N 관계의 조인(join)은 카테시안 곱이 발생한다. 그래서 M대N 관계를 1대N, N대1로 해소해야 한다.

  3. 필수적 관계와 선택적 관계
    필수적 관계는 반디시 하나는 존재하야 하는 관계이고, 선택적 관계는 없을 수도 잇는 관계이다.
    필수적 관계를 '|'로 표현되고 선택적 관계는 'O'로 표현 된다.

profile
미친개발자를향해

0개의 댓글

관련 채용 정보