Practice/Oracle

SQLD 준비_데이터 모델의 이해

밍미a 2022. 10. 6. 15:52
728x90

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

데이터모델링은 고객이 쉽게 이해할 수 있도록 복잡하지 않게 모델링 해야 한다.

데[이터 모델링의 3대 특징:

1)  추상화  : 추상화는 공통적인 특징을 찾고 간략하게 표현해야 한다.

2)  단순화  :  누구나 이해할 수 있게 단순하게 표현해야 한다.

3)  명확화  :  해석이 모호하지 않고 명확하게 해석되야 한다.

 

데이터 모델링의 단계

1) 개념적 모델링 :

복잡하게 표현하지 않고 중요한 부분을 위주로 모델링하는 단계.

엔터티속성을 도출하고, 개념적 ERD를 작성한다.

2) 논리적 모델링:

개념적 모델링을 조금 더 구체화 하는 과정이다. 식별자를 도출하고 필요한 모든 관계를 정의한다.

정규화를 수행해서 데이터 모델의 독립성을 확보한다.

3) 물리적 모델링:

데이터베이스를 실제로 구축한다. 테이블,인덱스,함수 등을 생성한다. 즉 사람이 오라클 같은거 사용해서 코드치는것

 

엔터티가 뭐지....? ERD 가 뭐지...?

 

ERD란 

엔터티와 엔터티 간의 관계를 정의하는 모델링 방법으로 개체-관계 모델, 테이블간의 관계를 설명해주는 다이어그램이라고 볼 수 있다. 이를 통해 DB의 구조를 한눈에 파악할 수 있다. 즉, API를 효율적으로 뽑아내기 위한 모델 구조도

ERD 작성절차

1) 엔터티를 도출하고 그린다.  -  업무에서 관리해야 하는 집합을 도출한다.

2) 엔터티를 배치한다.  -  집합 도출 후 중효한 엔터티를 왼쪽 상단에 배치한다

3)엔터티 간의 관계를 설정한다.

4)관계명을 서술한다.  -  엔터티 간의 어떤 행위나 존재가 있는지 표현한다.

5)관계 참여도를 표현한다.  -  한개의 엔터티와 다른 엔터티 간의 참여하는 관계 수를 의미한다.//한번 참여하느냐 여러번 참여하느냐...

더보기
  1. One
  • 일대일 혹은 일대다 관계이다. 주로 하나의 외래키가 걸린 관계라도 보면 된다.
  1. Many
  • 다대다 관계이다. 중계 테이블을 통하여 여러개의 데이터를 바라보고 있을 때 사용한다.
  1. One (and only one)
  • 위의 조건과 동일하게 일대일 관계이나, 하나의 row 끼리만 연결된 데이터이다.
  1. Zero or one
  • 일대일 혹은 일대다 관계를 가지고 있으나, 필수 조건이 아님을 의미한다.
  1. One or many
  • 일대일 혹은 다대다 관계를 가지고 있음을 의미한다.
  • 관계를 가지고 있으나, 참조되는 row 값들이 불명확함을 의미한다.
  1. Zero or many
  • 참조하는 테이블과의 관계가 불명확한 경우이다.
  • 장바구니처럼 row 생성값이 없을수도, 하나일수도, 여러개일 수도 있는 경우이다.

6)관계의 필수 여부를 표현한다. - 필수는 반드시 존재해야 하는것이다. 

 

ERD 작성 방법

1. ERD의 표기법

1-1 개체(Entity) - 사각형으로 표시

  • 사물 또는 사건으로 정의
  • 사각형으로 표기
  • 사각형 안에는 개체명을 기입하며, 단수형으로 명명
  • 가능한 대문자로 개체명을 사용
  • 유일한 단어로 사용

1-2 속성(Attribute) - 동그라미로 표시

  • 개체가 가지고 있는 요소 또는 성질
  • 속성은 선으로 연결된 동그라미로 표기
  • 속성명은 단수형으로 명명
  • 속성명은 개체명과 동일한 명칭으로 사용하지 않음
  • 속성 값이 null 인지 고려

1-3 관계(Relationship) - 마름모형으로 표시

  • 관계 표시는 대부분 마름모형으로 표기하지만 표기법에 따라 다양하게 표현 가능
  • 1:1, 1:n, n:m 등을 파악해야함

이 표기법들을 사용하여
1. 모든 엔티티들을 정의

  • 엔티티는 특정 다이어그램에서 한 번만 나타나야한다
  • 모든 엔티티에 대해 사각형을 만들고 이름을 적절하게 지정한다
  1. 엔티티 간 관계들을 정의
  • 선을 사용하여 연결하고 관계를 설명하는 중간에 다이아몬드를 추가
  1. 속성들을 추가
  • 쉽게 이해할 수 있도록 의미있는 속성이름을 지정

이러한 방법으로 ERD를 작성하면 된다.

https://velog.io/@kjhxxxx/DataBase-ERD%EB%9E%80 블로그

 

ERD 작성 시 고려사항.

- 중요한 엔터티를 가급적 왼쪽 상단에 배치해야 한다.

- ERD는 이해가 쉬워야 하고, 너무 복잡하지 않아야 한다.

 

데이터 모델링 고려사항

1. 데이터 모델의 독립성

-독립성이 확보된 모델은 고객의 업무 변화에 능동적으로 대응할 수 있다.

-독립성을 확보하기 위해서는 중복된 데이터를 제거해야 한다.

-데이터 중복을 제거하는 방법이 바로 정규화이다.

 

2. 고객 요구사항의 표현

-데이터 모델링으로 고객과 데이터 모델러 간에 의사소통을 할 수있어야 하므로 고객의 요구 사항을 간결하고 명확하게 표현해야 한다.

 

3. 데이터 품질 확보

-데이터베이스 구축 시에 데이터 표준을 정의하고, 표준 준수율을 관리해야 한다.

-데이터 표준을 확보해야 데이터 품질을 향상시킬 수 있다.

 

 

 

임호진, 『이기적 SQL 개발자 이론서 + 기출문제 』 영진닷컴,p0-70.