[SQLD] 엔터티(Entity) | PART 1

엔터티는 식별이 가능한 객체이다. 주로 정보를 저장하기 위해 사용한다. SQLD에서 나오는 엔터티의 이론을 공부해보자.
Hi's avatar
Sep 04, 2024
[SQLD] 엔터티(Entity) | PART 1

💡
엔터티는 식별이 가능한 객체이다. 주로 정보를 저장하기 위해 사용한다.
 
 
 
 
 
 
 

✅ 1. 엔터티란?

💡
각각의 엔터티는 자기 자신을 표현하기 위해 속성을 갖게 된다. 속성의 개수와 이름은 정하기 나름이지만, 각각의 정보를 명확하게 나타낼 수 있는 기준이어야 한다.
 
예를 들면, 회원이라는 엔터티의 속성으로는 아이디, 비밀번호, 전화번호, 이름, 나이 등이 있을 수 있다.
 
데이터베이스에서 엔터티, 인스턴스, 속성은 테이블에서 각각에 해당한다.
 
  • 엔터티: Table
  • 인스턴스: Row
  • 속성: Column
 

✅ 2. 엔터티의 특징

 

☑️ 1) 업무에서 쓰이는 정보여야 함.

모든 데이터는 필요에 따라 저장된다. 따라서, 회사에서 엔터티를 만들고자 하는 데이터는 당연하게도 업무에서 쓰이는 데이터여야 한다. 불필요한 데이터를 엔터티로 굳이 만들 필요가 없다.
 

☑️ 2) 유니크함을 보장할 수 있는 ‘식별자’가 있어야 함.

엔터티에 들어있는 각각의 인스턴스를 모두 다 다르게 구별할 수 있어야 한다. 만약 구별할 수 있는 식별자가 없다면, 중복된 데이터를 가지게 되어 업무를 처리할 때 많은 혼란을 야기할 것이다.
식별자는 1개의 속성일 수도 있고, 여러 개의 속성을 합친 집합일 수도 있다.
 

☑️ 3) 2개 이상의 인스턴스를 가지고 있어야 함.

만약 데이터를 저장하기 위해 엔터티를 생성했는데, 해당 엔터티에 인스턴스가 평생 1개만 존재할 예정이라면 굳이 엔터티로 만들 필요가 없다.
 

☑️ 4) 반드시 속성을 1개 이상 가지고 있어야 함.

너무나도 당연한 말이지만, 어떤 데이터를 표현하기 위해서는 1개 이상의 속성이 반드시 필요하다. 아무런 정보를 저장하지 않는다면 엔터티를 생성할 이유가 없다.
 

☑️ 5) 다른 엔터티와 1개 이상의 관계를 가지고 있어야 함.

각 엔터티는 다른 엔터티와의 연관성을 가지고 있어야 한다. 사실, 아무런 관계가 없는 엔터티도 생성하여 사용할 수도 있지만, 이런 경우 대부분 효율이 떨어진다.
다른 엔터티와 관계를 가지고 서로 연관된 정보를 공유하도록 설계하는 것이 바람직하다.
 

✅ 3. 엔터티의 분류

☑️ 1) 유형 vs 무형

유형 엔터티

물리적인 형태가 존재하고, 안정적이며 지속적이다.
→ 상품, 회원 등
 

개념 엔터티

물리적인 형태가 없으며 개념적이다.
→ 부서, 학과 등
 

사건 엔터티

어떤 행위를 함으로써 발생한다. 빈번하게 일어나고, 통계 자료로도 활용이 가능하다.
→ 주문, 이벤트 응모 등
 

☑️ 2) 발생시점

기본 엔터티

업무에 원래 존재하는 정보이다. 독립적으로 생성되며, 자식 엔터티를 가질 수 있다.
→ 상품, 회원, 사원, 부서 등
 

중심 엔터티

기본 엔터티로부터 파생되고, 행위 엔터티를 생성한다. 업무에 있어서 중심적인 역할을 하며 데이터의 양이 많이 발생한다.
→ 주문, 매출, 계약 등
 

행위 엔터티

2개 이상의 엔터티로부터 파생된다. 데이터가 자주 변경되거나 증가할 수 있다.
→ 주문 내역, 이벤트 응모 등이 있다.
 

✅ 4. 엔터티 이름 정할 때 주의사항

  • 업무에서 실제로 쓰이는 용어를 사용하자.
  • 한글은 약어를 사용하지 않고, 영문은 대문자로 표기하자.
  • 단수 명사로 표현하고 띄어쓰기를 허용하지 않는다.
  • 다른 엔터티와 의미상으로 중복될 수 없다.
  • 해당 엔터티가 가지는 데이터를 명확하게 표현하자.
 
Share article

soultree