데이터 모델링에서 Entity, Instance, Attribute의 의미

Su Bak
2 min readJun 30, 2022

--

Photo by Patrick Tomasso on Unsplash

데이터베이스를 다루다 보면 엔티티, 인스턴스, 어트리뷰트 라는 단어를 한번쯤 접하게 됩니다.

그렇다면 이 단어들은 테이블, 레코드, 컬럼 이란 단어와 차이가 있는 걸까요?

지금부터 한번 알아보겠습니다.

엔티티(Entity)를 사전에서 찾아보면 “실체” 또는 “본질” 이라고 나오는데요.

데이터베이스 세계에서 엔티티란 “업무상 관심사들의 집합” 라고 할 수 있습니다.

예를 들어 쇼핑몰 서비스를 개발하고 있다고 가정해봅시다.

이 서비스에서 업무의 관심사로는 쇼핑몰 이용 “고객”과 판매하는 “상품”, 그리고 고객의 상품 “구매 목록” 등을 들 수 있습니다.

그렇다면 이 예제에서 엔티티라고 할 수 있는 것은 무엇일까요?

이 서비스의 엔티티는 “고객”, “상품”, “구매 목록” 이 되는 것이죠.

간단하게 표현하면 엔티티 = 테이블 이라고 할 수 있습니다.

테이블에는 레코드(데이터) 하나만 들어있는게 아니라 여러 레코드로 이루어집니다.

이렇듯 엔티티도 집합적인 것을 의미합니다.

그렇다면 “고객” 엔티티(테이블)에 있는 하나의 레코드는 뭐라고 할까요?

이 레코드 하나가 바로 인스턴스입니다.

즉, 엔티티는 업무상의 관심 대상인 동질성을 지닌 인스턴스 집합이나 인스턴스들이 행하는 행위의 집합이라고 할 수 있습니다.

엔티티=테이블, 레코드=인스턴스 라고 생각하면 편합니다.

그렇다면 컬럼은 무엇일까요?

“고객” 엔티티(테이블)에서 하나의 인스턴스(레코드)를 보면 여러 컬럼들로 이루어져 있는데요.

이 컬럼들은 인스턴스의 특징이라고 할 수 있습니다.

“고객” 을 예로 들면 특징으론 “이름”, “생년월일”, “고객유형” 등등이 있는 것이죠.

이러한 인스턴스의 특징을 속성(Attribute)이라고 합니다.

결론적으로 데이터 모델링에서 지칭하는 엔티티, 인스턴스, 어트리뷰트를 구체화한 것이 테이블, 레코드, 컬럼 이라고 할 수 있습니다.

  • 엔티티(entity) : 업무상 관심대상들의 집합(=테이블)
  • 인스턴스(instance) : 업무상 관심 대상(=레코드)
  • 속성(attribute) : 업무상 관심 대상의 특징(=컬럼)

--

--

Su Bak

Backend Developer. Mainly use JavaScript but try not to have language constraints. Always trying to acquire new knowledge