[SQL] 데이터베이스 모델링 기본 개념

DB/mySQL 2023. 5. 24.

단어:

         entity(개체): 데이터베이스에서 관리되는 항목을 나타낸다. 예를 들어, '학생' 이라는 entity가 있을 수 있으며, 이는 '학생' 이라는 테이블을 데이터베이스에서 생성하는 것과 같다.(Table을 의미)

         attribute(속성): entity에 대해서 저장하려는 내용(Column을 의미)

 

        FK: Foreign Key(외래 키)

 

 

 

데이터 모델링은 주로 두 가지로 이루어진다.

 

  논리적 모델링: 데이터와 관련된 규칙과 관계에 초점을 맞춘다. (개년적 구조를 정하는 것)

  물리적 모델링: 논리적 모델을 실제 데이터베이스 시스템에 구현하는 과정이다. 이 과정에서는 물리적 저장소의 세부 정보, 성능 최적화, 인덱싱 전략, 데이터 엑세스 및 보안 이슈 등을 고려한다. (데이터베이스 구축에 필요한 것들을 정하는 것)

 


 

 

  데이터베이스 모델링 개념

 

  relational model: 테이블로 이루어진 데이터를 뜻한다. 일반적으로 우리가 보는 데이터베이스이다.

 

더보기: relation과 relationship 차이점

더보기

relation: 테이블 하나를 의미한다. 

 

relationship: 관계, 즉 FK를 이용하여 테이블 사이에 관계를 만들 수 있다.

 

 

 

  Entity-Relationship model(ERM): 개체 관계 모델

 

ERM은 다음과 같은 요소들을 사용하여 모델을 만든다.

  • 개체(Entity)
  • 속성(Attribute)
  • 관계(Relationship)

Entity는 테이블로, Attribute는 컬럼으로, Relationship은 FK로 연결해 주면된다.

 

 

더보기: Entity-relationship model(ERM)을 사용하는 이유

더보기

ERM을 사용하는 이유

 

Relational model은 실제로 사용하기에는 굉장히 편리하지만, 모델링을 할 때엔 로우(rows)에 대해서 신경을 쓰지 않기 때문에 Entity를 하나의 큰 네모로 표현하고, Attribute를 네모 안에 문자열로, 그리고 Relationship을 선으로 표현한다. 이 선들을 어떻게 표현하는지에 따라 관계의 특징을 표현할 수 있다.

 

 

 

  데이터 모델 스펙트럼

 

개념 모델(Conceptual model): 주로 Entity와 간단한 연결 관계만을 나타낸다. 대략적인 구조를 파악할 때 사용된다.(경영인 or 기획자)

논리 모델(Logical model): Entity와 Attribute 까지 표현하며, PK와 FK가 뭔지 표시한다.(개발자)

물리 모델(Physical model): 실제로 이 모델을 가지고 DB를 구축할 수 있을 정도로 자세한 정보가 담긴 모델이다.(DB 구축 단계)

 

개념 -> 논리 -> 물리 순으로 추상적 -> 구체적 이다.

 

 

 

데이터 모델은 다양한 데이터 요소들을 이해하고 사용하기 편한 형태로 정리한 모형을 의미한다.

 

  • Entity: 우리가 데이터를 저장하려고 하는 대상
  • Attribute: Entity에 대해 저장하려고 하는 특징(컬럼(Column))
  • Relationship: Entity들 사이에 생기는 연결점(예: FK)
  • Constraint: 데이터 요소들에 있는 규칙(예: FK, UNIQUE 등)

이 내용들을 발전시켜 데이터 모델들을 만드는 것을 데이터 모델링이라고 한다.

 

 

 

좋은 데이터베이스란?

 

  1. 중복되는 데이터가 저장되지 않는다

  2. NULL이 생기지 않는다.

  3. 데이터가 늘어날 때 테이블 구조가 변하지 않는다.