Develop/Database

데이터 베이스 모델링(1) - 필요성과 데이터 모델링 용어 정리

YOOZI. 2024. 12. 30. 22:21
728x90

 

드디어 데이터베이스에 들어왔다. 그리고 방대한 개념에 허우적 거린다.

 

 

데이터베이스 모델링을 알아보자. 데이터 구조를 이해하고 보는 법을 알아가자.

오늘의 배움
  • 데이터 모델링 정의 및 필요성
  • 데이터 모델 표기법
  • 릴레이션, 무결성이 무엇인지

데이터 모델링(Data Modeling)

데이터 모델링은 데이터베이스에서 데이터를 어떻게 구조화하고 조직할 지를 설계하는 과정이다.

이를 통해 데이터 간의 관계를 명확히 하고, 효율적인 데이터 관리를 가능하게 하는 것이다.

  1. 단순화: 복잡한 현실 세계에서 필요한 정보만 선택하여 구성하는 과정.
  2. 추상화: 다양한 현상을 일정한 형식으로 묶어내어 공통된 특성을 드러내는 과정.
  3. 명확화: 애매모호함을 제거하고 누구나 이해할 수 있도록 정확하게 기술하는 과정.

 

예를 들어보면,

온라인 쇼핑몰을 디자인한다고 가정해보자. 이 쇼핑몰에는 여러 요소가 있다.

상품(Product): 이름, 가격, 설명
사용자(User): 이름, 이메일, 주소
주문(Order): 주문 번호, 주문 날짜, 주문 상태


이러한 요소들을 어떻게 연결할지 고민하는 것이 데이터 모델링인 것이다.


 

데이터 모델링의 필요성

데이터 모델링은 파일 저장에서 엑셀 파일, 그리고 관계형 데이터베이스로의 전환 과정에서 필수적이다.

이를 통해 각 테이블들이 어떻게 구성되어야 하는지, 테이블의 컬럼이 어떤 의미인지, 그리고 데이터 간의 관계를 명확히 정의할 수 있다.

 

관계형 데이터 베이스 저장을 위한 설계

  • 테이블 설계: 각 테이블이 어떤 기준으로 만들어져야 하는지 정립.
  • 컬럼 정의: 테이블의 컬럼 의미 파악 및 정의.
  • 관계 정의: 관련 있는 테이블 간의 관계 설정.

데이터 관점 모델링

  • 업무와 관련된 데이터 및 데이터 간의 관계를 모델링하여 ERD를 생성하고, 이를 통해 물리적 데이터베이스 설계 및 구축, 튜닝까지의 과정을 포함.

 

데이터 모델링이 중요한 이유를 이해하기 쉽게 하자면,

더보기

1. 정보의 구조화: 마치 디자인에서 레이아웃을 구성하듯, 데이터베이스에서도 정보를 어떻게 배치할지를 결정한다. 예를 들어, 각각의 상품이 사용자에게 어떻게 보일지, 어떤 정보가 필요한지를 명확히 하는 것.

2. 관계 정의: [상품과 사용자는 어떤 관계가 있나요? 사용자는 상품을 구매할 수 있다.] 이 관계를 명확히 정의하는 것이 중요함. 예를 들어, 한 사용자가 여러 개의 상품을 주문할 수 있다는 사실을 데이터로 표현해야 하는 것이다.


 

데이터 모델 표기법

 

피터첸 표기법

  • 1976년 피터첸이 ER Model이라는 표기법을 만들었다.
  • 엔터티를 사각형으로 표현하고 관계를 마름모, 속성을 타원형으로 표현한다.

IE 표기법 vs 바커 표기법

  • IE 표기법은 범용적인 표기법이다.

바커 표기법은 데이터 아키텍처 전문가 관련 자격에서 적용되며 IE표기법에 비해 논리 모델링 단계에서 배타 관계나 슈퍼 서브 속성에 대한 표기에 있어 더 구체적으로 표현 가능하다.

 

일(一)로 시작하는 말단: ---

다(多)로 끝나는 말단: <-

 

점선: 필요할때만 힐끗힐끗 쳐다보는 (참조만 하는)

실선: 계속해서 바라보는 쪽 (필요로 하는)

 

점선으로 이뤄진 값: 서로 존재하지 않은 관계

실선으로 이뤄진 값: 서로에게 꼭 존재해야 하는 관계

 

식별관계:  있음

비식별관계: 없음

 


 

관계형 모델 (Relational Model)

릴레이션

릴레이션은 데이터를 표 형태로 구성한 것.

릴레이션은 행과 열로 구성되며, 데이터의 구조를 명확히 나타낸다. (예를 들어, 상품 테이블은 각각의 상품 정보를 행으로 나타내고, 각 속성을 열로 나타내는 방식이다.)

 

 

무결성

  • 무결성은 데이터 값이 정확한 상태를 의미한다. (완전성과 정확성)
  • 정합성은 데이터가 서로 모순이 없이 일관되게 일치해야 함을 의미하는 반면 무결성은 데이터가 완전하고 정확해야 한다는 의미이다. (정합성은 맞지만 실제 데이터는 모두 틀린 값이라면 무결성은 위반한 것)

예시를 들자면,

디자인 작업에서 항상 정확한 색상 코드나 폰트를 사용하는 것처럼, 데이터도 정확해야 한다는 것이다.

 

무결성 종류 무결성 특징
엔터티 무결성(Entity Integrity) 모든 인스턴스는 고유해야 하며 인스턴스를 대표하는 속성에는 널 값을 가지면 안된다는 의미
예) 상품 ID는 항상 고유해야 한다. 두 개의 상품이 같은 ID를 가질 수 없음.
참조 무결성(Referentail Integrity) 엔터티의 왜래 식별자 속성은 참조하는 엔터티의 주 식별자 값에 포함되거나 널이어야 함을 의미
예) 사용자가 주문할 때, 그 사용자가 실제로 존재해야한다. 만약 삭제된 사용자라면 주문도 무효가 되어야 함.
도메인 무결성(Domain Integrity) 속성 값과 관련된 것으로 특정 속성 값은 같은 데이터 타입, 길이, 널 여부, 중복 값 허용, 기본 값 등 동일한 범주의 값만 존재해야 함을 의미
예) 가격은 항상 숫자여야 하고 음수일 수는 없다.
업무 무결성(Business Integrity) 기업에서 업무를 수행하는 방법이나 데이터를 처리하는 규칙을 의미

 


 

데이터베이스가 서로 어떻게 연결되고 관리되는지 알아보았다.

무결성, 릴레이션 등... 어려운 단어들이 난무한다. 문제들을 풀어보며 개념을 정의하면 비로소 단어의 정의 정도는 알게 되겠지..ㅎㅎ

 

위에서도 잠깐 나오고

데이버베이스 모델링에 중요한 개체인 '엔터티'에 대해

다음 시간에 알아가보자.

 

728x90