728x90
반응형
엔티티(객체)는 데이터베이스에서 중요한 개념으로, 현실 세계의 객체, 개념 또는 사람을 나타내며, 이들에 대한 데이터를 저장하고 관리하는 단위입니다. 엔티티는 데이터베이스 설계에서 필수적인 요소로, 데이터를 체계적으로 구조화하고, 각 객체나 개념이 어떻게 서로 연결되는지를 명확히 표현하는 데 사용됩니다.
엔티티는 데이터베이스에서 중요한 정보를 담고 있는 큰 덩어리라고 생각하면 된다.
엔티티는 2개 이상의 속성과 2개 이상의 인스턴스를 가져 소위면적으로 표현될 수 있어야 비로서 기본적인 엔티티의 자격을 갖췄다 할 수 있다.
엔티티의 주요 특징
1. 고유성 (Uniqueness)
- 엔티티(객체_는 고유한 식별자(Primary Key)를 가져야 합니다. 이 식별자는 엔티티를 다른 엔터티와 구분할 수 있게 해주며, 데이터베이스 내에서 각 엔터티가 유일하게 식별될 수 있도록 보장합니다. 예를 들어, "학생" 엔터티에는 학번이 고유 식별자가 될 수 있습니다[1][2].
엔티티(객체)는 고유한 번호가 있어서 특별한 번호나 값으로 다른 엔티티(객체)와 헷갈리지 않아야 한다.
2. 속성 (Attributes)
- 엔티티는 여러 속성으로 구성됩니다. 속성은 엔터티가 가지고 있는 세부 정보를 나타내며, 이는 데이터베이스에서 열(column)로 표현됩니다. 예를 들어, "학생" 엔터티는 이름, 나이, 학번 등의 속성을 가질 수 있습니다. 속성은 엔터티를 더 구체적으로 설명하는 역할을 합니다[1][3].
여러 속성을 가지고 있는다. 엔티티(객체)에 대해서 자세한 설명하는 하는 것
3. 독립성 (Independence)
- 강한 엔터티(Strong Entity)는 다른 엔터티에 의존하지 않고 독립적으로 존재할 수 있습니다. 예를 들어, "제품"이나 "고객" 같은 엔터티는 자체적으로 존재하며 고유한 식별자를 가집니다. 반면에 약한 엔터티(Weak Entity)는 다른 강한 엔터티에 의존하여 존재하며, 자체적인 고유 식별자가 없고 외래 키(Foreign Key)를 통해 다른 엔터티와 연결됩니다[2][3].
강한 엔티티는 혼자서도 의미가 있다. 예를 들면, 학생, 선생[강한 엔티티]은 혼자서도 의미가 있는 반면, 주문[약한 엔티티]이라는 객체는 고객이라는 대상 엔티티가 있어야지 의미가 있다.
4. 관계 (Relationships)
- 엔터티는 보통 다른 엔터티와 관계를 맺습니다. 이러한 관계는 데이터베이스에서 중요한 역할을 하며, 두 개 이상의 엔터티가 어떻게 상호작용하는지를 정의합니다. 예를 들어, "학생"과 "수업"은 "등록한다"라는 관계로 연결될 수 있습니다. 이러한 관계는 ERD(Entity-Relationship Diagram)에서 시각적으로 표현됩니다[1][2].
엔티티(객체)는 다른 엔티티(객체)와 연결 될 수 있다. "학생"은 "수업"에 "등록"하고, "선생"은 "수업"을 "가르친"다.
5. 엔터티 집합 (Entity Set)
- 동일한 유형의 여러 엔터티가 모여서 엔터티 집합(Entity Set)을 이룹니다. 예를 들어, 모든 학생을 하나의 "학생" 엔터티 집합으로 묶을 수 있습니다. 이는 데이터베이스 내에서 유사한 특성을 가진 데이터들을 그룹화하여 관리하는 방식입니다[1].
비슷한 것끼리 모일 수 있다. 비슷한 것들끼리 한꺼번에 관리하기 쉬워진다.
6. 데이터 무결성 유지 (Data Integrity)
- 각 엔터티는 고유 식별자와 관계 설정을 통해 데이터베이스 내에서 데이터 무결성을 유지합니다. 즉, 데이터가 중복되거나 잘못된 상태로 저장되지 않도록 보장하며, 이를 통해 데이터의 일관성과 정확성을 유지할 수 있습니다[2].
정보가 정확하게 유지될 수 있도록 한다. 중복되지 않도록 또는 잘못된 정보가 저장되지 않도록 도와줌
이러한 특징들은 데이터베이스 설계에서 매우 중요하며, 올바르게 정의된 엔터티는 시스템의 성능과 효율성을 높이는 데 큰 역할을 합니다.
엔티티 주요 조건
1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. (예. 환자, 토익 응시횟수)
2. 유일한 식별자에 의해 식별이 가능해야 한다.
3. 영속적으로 존개하는 "두 개 이상"의 인스턴스의 집합이어야 한다.
객체 지향의 디자인 패턴에는 싱글턴 패턴이 있어 하나의 인스턴스를 가지는 클래스가 존재한다. 하지만 클래스와 엔티티의 개념은 다르므로, 엔티티가 한 개의 인스턴스만을 가지는 것은 의미를 부여할 수 없다. 즉, 한 개는 안됨
4. 엔티티는 업무 프로세스에 의해 이용되어야 한다.
데이터로서 존재하지만 업우에서 필요로 하지 않으면 해당 업무의 엔티티로 성립될 수 없다.
5. 엔티니는 반드시 속성이 있어야 한다.
속성이 없는 엔티티는 있을 수 없다.
6. 엔티티는 다른 엔티티와 최소 한 개 이상의 관계가 있어야 한다.
엔티티는 다른 엔티티와 관계가 있어야 한다. 단, 통계성 엔티티나 코드성 엔티티의 경우 관계를 생략할 수 있다.
Citations:
[1] https://www.fynd.academy/blog/entity-in-dbms
[2] https://www.pingcap.com/article/understanding-entities-in-database-design-and-tidb/
[3] https://www.upgrad.com/blog/entity-in-dbms/
반응형
'IT > SQLD' 카테고리의 다른 글
SQLD 노랭이 [엔티티, 인스턴스, 속성, 속성값]의 관계 (0) | 2024.11.08 |
---|---|
SQLD 노랭이 [발생 시점 엔티티] (1) | 2024.11.08 |
SQLD 노랭이 [ERD] (1) | 2024.11.08 |
SQLD 노랭이 [데이터베이스 스키마구조 3단계] (0) | 2024.11.08 |
SQLD 노랭이 [데이터 모델링 유의점] (0) | 2024.11.08 |