<aside> 💡 #relational #database #entity #relationship #data #modeling #primary #foreign #key #normalization #transaction

</aside>

8.1 관계형 데이터베이스

데이터베이스란 무엇일까요? 간단하게 설명하자면 데이터베이스란 일정한 규칙을 통해 구조화된 데이터의 집합입니다. 파일 시스템의 단점을 보완하고 추가적인 기능을 갖춘 시스템입니다.

데이터베이스에는 RDB, In-memory DB, NoSQL 등 다양한 종류가 있습니다. 여기서 우리가 알아볼 것은 RDB(Relational Data Base)에 대한 모델링입니다.

관계형 데이터베이스에 대한 위키백과의 설명은 다음과 같습니다.

RDB는 키(Key)와 값(Value)들의 간단한 관계를 테이블화 시킨 데이터베이스이다.

RDB는 테이블 단위로 개체를 구분합니다. 테이블은 행과 열로 구성된 형태이며 테이블에 저장되는 데이터들을 식별하기 위해 고유한 식별자를 지정합니다. 식별자를 통해 테이블 내의 데이터를 구분할 수 있고 다른 테이블과 관계를 설정할 수 있습니다.

8.2 데이터 모델링 단계

데이터 모델링은 개념적 모델링, 논리적 모델링, 물리적 모델링 순으로 진행합니다.

개념적 모델링은 자료와 사용자의 요구사항(클라이언트)을 모아서 어떤 데이터(엔티티)를 저장해야 되는지, 그 데이터간의 관계를 발견하는 단계입니다.

개념적 모델링을 거쳐서 ERD(Entity-Relationship Diagram)을 완성합니다.

논리적 모델링은 ERD를 다듬어 논리적인 구조와 규칙을 명확하게 표현하는 단계이며 정규화, M:N 관계 등을 해소하는 작업을 진행합니다.

물리적 모델링은 논리적 데이터 모델을 컴퓨터에 저장될 스키마를 정의합니다.

보통 개념적 모델링과 논리적 모델링을 한꺼번에 진행한 뒤 물리적 모델링을 합니다.

책에선 물리적 모델링 전 단계인 개념적 모델링과 논리적 모델링을 진행하는데 필요한 개념을 소개하겠습니다.

8.3 개념적 모델링

데이터 모델링의 첫 단계인 개념적 모델링에서 엔티티 도출, 속성, 엔티티 간의 관계 등 테이블 구조를 정의하는 단계입니다.

도메인에 대한 정보와 사용자의 요구사항을 수집하여 정보를 모았으면, 이를 토대로 모델링을 진행합니다 .

엔티티

엔티티는 현실 세계의 개체(결제, 유저 등)를 의미하며 모델링을 거쳐서 테이블이 될 주체입니다. 엔티티를 도출함으로써 데이터베이스에 저장할 개체를 선별할 수 있습니다. 엔티티는 고유하게 식별할 수 있고 독립적으로 존재 가능한 개체입니다. 명사형으로 나타냅니다.