Shonny Data

SQLD 자격증 - 데이터 모델링 4요소(엔티티, 속성, 관계, 식별자) / 정규화 본문

Sparta_coding_club/SQLD

SQLD 자격증 - 데이터 모델링 4요소(엔티티, 속성, 관계, 식별자) / 정규화

데이터분석쇼니 2024. 1. 4. 22:25


SQLD 자격증 대비반

○ 데이터 모델링의 4요소

: 엔티티(Entity), 속성(Attitude), 관계(Relationship), 식별자(Identifier)


○ 엔티티(Entity)

  (개념)
  -  의미있는 하나의 정보 단위 
  -  인스턴스의 집합 / 하나의 인스턴스는 여러 속성을 가진다

  (특징)
  ① 업무에서 필요로 하는 정보  
  ② 식별 가능 여부  
  ③ 인스턴스의 집합   
  ④ 업무 프로세스에 활용되어야 함  
  ⑤ 속성을 포함해야 함  
  ⑥ 관계의 존재 
  
  (분류)
   - 유무형에 따른 분류 : 
      유형 엔티티(형태 O),
      개념 엔티티(형태 X),
      사건 엔티티(특정 이벤트에 종속, 통계 등에 활용)

   - 발생시점에 다른 분류 :  
     기본/키 엔티티(주식별자, 다른 엔티티의 부모역할),
     중심 엔티티(업무의 중심적 역할),
     행위 엔티티(두개 이상의 부모 엔티티로부터 연결하여 발생)
   
   (이름짓기)
   업무에서 사용하는 용어 사용 / 축약어 X / 단수명사 사용 / 띄어쓰기 X /
   중복 X(유일한 이름) / 엔티티 생성 의미대로 이름 부여

 

○ 속성(Attribute) 

(개념)
   -  속성은 인스턴스가 가진 성격 
   -  ★업무에서 필요로 하는 인스턴스로 더 이상 분리되지 않는 최소한의 단위 
   -  한개의 엔터티는 두개 이상의 인스턴스 / 한개의 엔터티는 두개 이상의 속성 / 한 개의 속성은 한 개의 속성값 

   (특징)
   ①  업무에서 필요로 해야 한다
   ②  더 분리되지 않는 그 자체로 독립성 유지 (가장 작은 단위로 의미를 지님)
   ③  엔티티를 설명하고 인스턴스의 구성요소가 됨
   ④  정규화 이론에 기반을 두고 정해진 주식별자에 함수적 종속성을 지닌다
   ⑤  하나의 속성은 하나의 값을 가진다

   (분류)   
   -  속성의 특징에 따른 분류 :  
   기본속성 _ 기본
   설계속성 _ 데이터 모델링, 업무 규칙에 따라 새로 만들거나 변형된 속성 
   파생속성 _ 다른 속성에 의해 영향을 받아/혹은 계산된 형태의 값/ 정확성(정합성)을 위해 적은 것이 좋다

   -  구성방식에 따른 분류 :  
   PK(Primary Key) 속성 _ 엔터티를 식별할 수 있는 속성 / 주식별자 
   FK(Foreign Key) 속성 _ 다른 엔터티와의 관계에 포함된 속성 / 외래키속성
   일반속성 _ 대부분

   (이름짓기)
   업무에서 쓰는 용어 / 축약어 X / 명사형 / 수식어 많이 사용 X / 전체 데이터 모델에서 유일하게 작성

 

 ○ 관계 (Relationship) 


 (개념)
     -  상호 연관성이 있는 상태
     -  엔티티와 인스턴스 사이의 논리적 연관성으로 존재하는 형태 행위 → 서로에게 연관성이 부여된 상태 

 (분류)
    - 존재에 의한 관계 :  소속된다/포함된다
    - 행위에 의한 관계 :  행동/행위 (주문한다)

 (클래스 다이어그램)
      - 정적 다이어그램 (클래스의 구성요소 및 클래스 간 관계를 표현)
      - 목적 : 클래스 간 관계를 한 눈에 보기 쉽게 표현하기 위하여 
      - ★ERD는 존재적, 행위적 관계를 표현하지 않지만 클래스 다이어그램은 이를 구분하여 연관, 의존의 관계로 표현한다

 (관계의 표기)
        - 개수 표현 :   | (1개) ,  < (여러개) , ○ (0개)

        - 관계 선택사양(필수/선택) 
         [IE표기법] O 없음 - 필수 / O 있음 - 선택 ,  
         [BARKER] 실선 - 필수 / 점선 - 선택 

        - 식별 비식별 :  
         [IE표기법] 실선 - 식별 / 점선 - 비식별 , 
         [BARKER] 버티컬바 - 식별 / 실선 - 비식별 

  (관계차수)
    - 1:1  ONE TO ONE 관계 _ 두 개의 엔티티가 하나의 관계를 가질 때
    - 1:M  ONE TO MANY 관계 _  하나 혹은 그 이상의 관계를 맺을 때 (한쪽 방향만 가능) 
    - M:M  MANY TO MANY 관계 _  양방향 모두 하나 이상의 관계를 맺을 때 

    (관계 정의시 체크사항)
     ①  관심있는 연관규칙이 있는지
     ②  정보의 조합이 있는지
     ③  관계 연결에 대한 규칙이 있는지
     ④  연결을 가능하게 하는 동사가 있는지

 

 ○ 식별자(Identifier)

 (개념)
    - 엔터티의 인스턴스를 구분가능하게 만들어주는 대표적인 속성 

 (특징)
    - 유일성 _  모든 인스턴스를 각각 유일하게 구분
    - 최소성 _  최소한의 주식별자로 구분이 되어야 한다
    - 불변성 _  값이 변하면 안된다
    - 존재성 _  반드시 값이 있어야 한다 

 (식별자의 분류)
   - 대표성 여부 :  주식별자 / 보조식별자
   - 스스로생성 여부 :  내부 식별자 / 외부 식별자
   - 단일속성 여부 :  단일 식별자 / 복합 식별자
   - 대체여부 :  본질 식별자 / 인조 식별자 (인위적으로 만든, 추가한 식별자)

   (식별자 관계)
    - 식별자 관계 :  부모 엔티티의 주식별자가 자식 엔티티의 주식별자로 사용되는 경우
    - 비식별자 관계 :  부모 엔티티의 주식별자가 자식 엔티티의 속성 중 하나로 사용되는 경우 

 


 

○ 정규화

 (개념)
    - 데이터 일관성을 유지하고, 데이터 중복을 방지하며 데이터의 유연성을 유지하기 위하여 데이터를 분해하는 과정
    - 데이터 성능을 높이기 위한 과정 


 (종류)

1NF
  -  하나의 테이블에 중복되는 데이터 없어야 함
  -  모든 속성은 반드시 하나의 값마을 가져야 함
  -  속성의 원자성 확보

2NF
  -  주식별자에 완전히 종속되지 않은 속성 분리하여 종속 관계 구성 
  -  여러 짱들이 있을 때 모든 것들이 짱과 관련 있어야 한다. 관련 없는 것들은 분리해줘

3NF
  - 일반 속성 간 함수 종속성이 발생하지 않아야 함
  - 짱 말고 너네끼리도 함수 종속성이 없어야해

 

○ 반정규화

 (개념)
    -  정규화를 수행하지 않은 모델을 지칭 
    -  테이블이나 컬럼을 합쳐서 오히려 데이터를 중복되게 하여 데이터 성능을 향상시키는 것

(언제할 때 좋은지?)  데이터를 조회할 때 

(반정규화 절차 ★)
  1. 반정규화 대상 조회 
  2. 다른 방법 유도 검토
  3. 반정규화 적용

(반정규화 기법)
  ○ 테이블 반정규화  →  테이블 병합 / 테이블 분할 / 테이블 추가 
  ○ 컬럼 반정규화  →  중복컬럼 추가 / 파생컬럼 추가 / 이력테이블 컬럼추가 / PK에 의한 컬럼 추가
  ○ 관계 반정규화