티스토리 뷰

DB

데이터모델링의 이해

tioon 2023. 8. 25. 15:28

 

 

데이터 모델링

 

데이터 모델링이란?

-데이터 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 다이어그램으로 표현하는 것을 의미합니다. 데이터베이스를 개발하기전에, 다이어그램으로 먼저 분석 및 표현을 하며, 좀더 효율적으로 작성하게 해줍니다.

데이터베이스를 구축하기 위해 데이터 관점에서 분석/설계를 하는과정이라고 생각하면 됩니다.

 

 

데이터 모델링의 특징
  • 추상화, 단순화, 명확화
    -데이터 모델링은 데이터 구축을 어떻게 할지, 대략적으로 표현하는 것으로, 전체 데이터를 추상화하고, 최대한 단순하게, 명확하게 작성을 해야합니다.

  • 중복 제거
    -데이터 모델링은 해당 여러 장소에 같은 정보를 저장하지 않게 하여 중복이 없어야합니다.

  • 유연성
    -데이터 모델이 다양한 사용자의 요구사항을 수용하거나 요구사항의 변화에 대해 쉽게 대응할 수 있도록 제작해야합니다. 만약 유연성이없을경우 추후에 유지보수가 힘들어집니다.

  • 일관성
    -데이터 베이스를 변화시킬 때, 데이터 베이스의 상태가 항상 특정 규칙과 제약 조건을 만족하도록 하는 것을 의미합니다. 즉, 데이터가 여러 곳에서 항상 일관된 값을 가져야합니다.

 

 

모델링의 종류
  • 개념적 데이터 모델링
    -가장 크게 보는 데이터 모델로 필요한 작업과 데이터 와의 관계를 구상하는 단계입니다. 각 핵심 개체들과 그들간의 관계를 발견하고 표현하기 위해하는 모델링 작업입니다. 가장 초기에 하는 작업입니다.

  • 논리적 데이터 모델링
    -개념적 데이터 모델링 보다 더욱 구체화된 업무 중심의 데이터 모델을 구상하는 단계입니다. 이과정에서 key,속성,관계등을 표시하며, 구체적인 데이터로 작성합니다.

  • 물리적 데이터 모델링
    -최족적으로 데이터를 관리할 데이터 베이스 선택 및 실제 테이블 만드는 작업을 합니다. 즉, 실제로 DBMS를 활용해 데이터베이스를 직접 완성시키는 단계입니다.

 

 

엔티티

 

엔티티란?

-데이터 모델에서 정의 가능한 사물 또는 개념을 의미하며, 데이터베이스의 테이블에 매핑되는 개념입니다.
엔티티엔 사람도 될 수 있으며, 개인정보 같은 무형의 정보도 포함됩니다.

 

 

엔터티 분류
  • 유무형에 따른 분류
    유형엔티티 - 물리적인 형태
    개념 엔티티 - 물리적인 형태가 없고 개념적으로만 존재하는 엔티티
    사건 엔티티 - 주문, 강의 등과 같은 사건의 형태로 있는 엔티티

  • 발생 시점에 따른 분류
    기본 엔티티 
    중심 엔티티
    행위 엔티티

 

엔티티 특징
  1. 해당 업무에서 꼭 사용되는 정보여야 합니다.
  2. 유일한 식별자에 의해 식별되어야 합니다.
  3. 영속적으로 존재하는  두개이상의 인스턴스의 집합이여야합니다.
  4. 반드시 속성이 존재해야합니다.
  5. 최소 한개 이상의 관계가 있어야합니다.

 

 

 

속성

 

속성이란?

-업무에서 필요로하는 인스턴스로 관리 되는 것으로 더 이상 분리되지 않은 최소한의 데이터 단위입니다.

 

 

속성 분류
  • 속성의 특성에 따른 분류
    기본속성 - 원래 속성
    설계속성 - 1:1치환되는 속성
    파생속성 - 데이터 조회시 더 빠른 성능을 낼 수 있도록 하는 속성

  • 엔티티 구성방식에 따른 분류
    PK속성 - 엔티티 식별가능한 속성
    FK속성 - 다른 엔티티와의 관계에서 포함된 속성
    일반속성 - PK,FK에 속하지 않는 속성

 

도메인이란?

-엔티티 내에서 속성에 대한 데이터 타입과 크기 그리고 제약사항을 지정하는 것 입니다.

 

관계

 

관계란?

-엔티티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태를 관계라고 합니다.

 

 

관계의 분류
  • ERD
    존재에 의한 관계
    행위에 의한 관계

  • UML
    연관 관계
    의존 관계

 

관계 표기법
  • 관계명
    관계의 이름입니다.

  • 관계 차수
    1:1관계
    1:N관계 
    M:N관계

  • 관계 선택사항
    필수관계
    선택관계

 

 

관계 도출 시 체크사항
  • 두 개의 엔티티 사이에 관심 연관규칙이 존재하는지 여부
  • 두개의 엔티티 사이에 정보의 조합이 발생되는지 여부
  • 업무 기술서, 장표에 관계연결에 대한 규칙이 서술 되어있는지 여부
  • 업무 기술서, 장표에 관계연결을 가능하게 하는 동사가 있는지 여부 

 

 

 

식별자

 

식별자란?

-하나의 엔티티에 구성되어있는 여러 개의 속성 중에 엔티티를 대표할 수 있는 속성을 의미하며, 하나의 엔티티에는 반드시 하나의 유일한 식별자가 존재해야 합니다.

 

 

식별자의 특징
  • 유일성
    주 식별자에 의해 엔티티의 모든 인스턴스가 유일하게 구분됨.

  • 최소성
    주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야함.

  • 불변성
    주 식별자의 값은 한번 결정되면 변하지 않아야함.

  • 존재성
    주식별자가 지정되면 NULL값이 있으면 안되고 반드시 데이터 값이 존재해야 함.

 

 

식별자 분류
  • 대표성 여부
    주식별자 - 엔티티 내에서 인스턴스들을 구분할 수 있는 구분자이며, 타엔티티와 참조관계를 연결할 수 있는 식별자
    보조식별자 - 엔티티 내에서 인스턴스를 구분할수 있는 구분자이나,` 대표성을 가지지 못해 참조관계 연결은 못하는 식별자

  • 스스로 생성여부
    내부식별자 - 엔티티 내부에서 스스로 만들어지는 식별자
    외부 식별자 - 타 엔티티와의 관계를 통해 타 엔티티로부터 받아오는 식별자

  • 속성의 수
    단일식별자 - 하나의 속성으로 구성된 식별자
    복합식별자 - 둘 이상의 속성으로 구성된 식별자

  • 대체 여부
    본질식별자 - 업무에 의해 파생되어 자연스럽게 만들어지는 식별자
    인조식별자 - 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자

 

 

식별자 관계 vs 비식별자 관계

 

  • 식별자 관계
    -부모 엔티티의 기본키가 자식 엔티티의 기본 키로도 사용되는 관계입니다.
    -자식 엔티티는 부모엔티티 없이는 존재할 수 없는 경우에 사용됩니다.
    -강한 연결관계로 표현됩니다.

  • 비식별자 관계
    -부모엔티티의 기본키가 자식엔티티의 외래 키로 사용되는 관계입니다.
    -자식 엔티티가 부모엔티티와 독립적으로 존재할 수 있는 경우에 주로 사용됩니다.
    -약한 연결관계로 표현됩니다.

'DB' 카테고리의 다른 글

데이터베이스 CLI 명령어 (MYSQL 버전)  (0) 2023.09.02
정규화, 반정규화  (0) 2023.08.25
인덱스(Index)  (0) 2023.08.14
옵티마이저(Optimizer)  (0) 2023.08.14
SQL 집계 함수 vs 그룹 함수 vs 윈도우 함수  (0) 2023.08.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함