Entity

Jemin·2023년 9월 27일
0

백엔드

목록 보기
14/21

데이터베이스 용어

엔터티에 대해서 이해하기 전에 먼저 간략하게 용어들에 대해서 알아보아야 한다.

테이블(Table)

테이블은 데이터베이스에서 정보를 저장하는 구조다. 예를 들어, "사용자(User)" 데이터를 저장하기 위한 테이블이 있을 수 있다. 테이블은 행과 열의 형태로 데이터를 저장한다.

// 사용자 테이블의 예시
+----+-----------+------------------+
| ID |   이름    |   이메일          |
+----+-----------+------------------+
| 1  |  Alice    | alice@email.com  |
| 2  |  Bob      | bob@email.com    |
| 3  |  Carol    | carol@email.com  |
+----+-----------+------------------+

관계형 데이터베이스(RDBMS)에서는 "릴레이션"이라고 부르기도 한다.

스키마

스키마는 관계형 데이터베이스에서 주로 사용되는 용어다.
관계형 데이터베이스에서 기본 구조를 정의하는 것이다.

스키마는 데이터베이스 내의 데이터 구조와 구성을 정의하고 조직화하는 방법을 나타내는 개념이다. 스키마는 데이터 베이스 내의 테이블, 뷰, 인덱스, 프로시저, 함수 등과 관련된 모든 객체에 대한 설계와 구조를 정의한다.

  • 데이터 구조 정의: 스키마는 데이터베이스 내의 어떤 테이블이 존재하고, 각 테이블이 어떤 열로 이루어져 있는지를 정의한다. 이는 데이텁이스가 어떤 종류의 정보를 저장하고 어떻게 구성되어 있는지를 나타낸다.

  • 데이터 무결성: 스키마는 데이터의 무결성을 보장하기 위한 규칙과 제약 조건을 정의한다. 예를 들어, 특정 열에 대한 데이터 유형, 길이, 고유한 값 제약 조건 등을 스키마에서 설정할 수 있다.

  • 보안 및 권한 관리: 스키마는 데이터베이스 내에서 데이터에 접근하고 조작할 수 있는 권한 및 보안 정책을 설정하는 데 사용된다.

  • 네임스페이스: 스키마는 데이터베이스 내에서 객체 간의 네임스페이스를 제공한다. 서로 다른 스키마 내에서 동일한 이름의 객체를 정의할 수 있으며, 이로써 객체 간의 충돌을 방지할 수 있다.

인스턴스

인스턴스는 테이블에서 실제로 저장된 데이터를 말한다.

인스턴스는 특정 데이터베이스 관리 시스템의 실행 중인 실제 데이터베이스를 가리킨다. 간단히 말해, 데이터베이스의 인스턴스는 해당 DBMS를 사용하여 생성된 하나의 데이터베이스 환경을 나타낸다.

튜플(Tuple) = 행(Row) = 카디널리티(Cardinality)

튜플은 릴레이션에서 행(가로)의 개수를 의미한다.

튜플은 테이블 내에서 하나의 레코드 또는 데이터 엔트리를 나타내는 용어다. 튜플은 테이블의 각 행에 해당하며, 이러한 행은 테이블 구조 또는 스키마에 따라 정의된 열(또는 필드)의 값으로 구성된다.

간단히 말해, 데이터베이스 테이블은 여러 행 또는 튜플로 구성되며, 각 행은 해당 테이블에 저장된 하나의 레코드를 나타낸다. 각 행은 테이블의 열에 해당하는 데이터 값을 포함하며, 이러한 행은 데이터베이스에서 검색, 삽입, 갱신 및 삭제와 같은 다양한 작업을 수행하는데 사용된다.

속성(Attribute) = 열(Column) = 차수(Degree)

속성은 릴레이션에서 열(세로)의 개수를 의미한다.

속성은 테이블 내에서 데이터의 특정 유형 또는 정보를 나타내는데 사용되는 용어다. 각 열은 데이터베이스 테이블의 구조를 정의하며 해당 열에는 특정 유형의 데이터가 저장된다.

예를 들어, "고객" 테이블의 경우 다음과 같은 열을 포함할 수 있다.

  • ID 열: 각 고객의 고유한 식별자를 저장하는 열

  • 이름 열: 각 고객의 이름을 저장하는 열

  • 이메일 열: 각 고객의 이메일 주소를 저장하는 열

  • 전화번호 열: 각 고객의 전화번호를 저장하는 열

도메인

도메인은 속성이 가질 수 있는 값의 집합이다.

도메인은 특정 열에 저장될 수 있는 데이터 값의 유형 또는 범위를 나타낸다. 각 속성은 해당 도메인의 데이터 유형을 가지며, 도메인은 그 속성에서 허용되는 데이터 값의 종류와 제약 조건을 정의한다.

예를 들어, "고객" 테이블의 "나이" 속성의 도메인은 양의 정수(positive integer)로 정의될 수 있다. 이것은 해당 열에서 허용되는 값이 양의 정수여야 하며 음수 값 또는 문자열과 같은 다른 데이터 유형은 허용되지 않는다는 것을 의미한다.

Entity의 개념

엔터티에 대해서 데이터 모델과 데이터베이스의 권위자들은 다음과 같인 엔터티를 정의하고 있다.

변별할 수 있는 사물 - Peter Chen (1976) -

데이터베이스 내에서 변별 가능한 객체 - C.J Date (1986) -

정보를 저장할 수 있는 어떤 것 - James Martin (1989) -

정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등 - Thomas Bruce (1992) -

데이터 모델을 이해할 때 가장 명확하게 이해해야 하는 개념 중 하나가 엔터티다. 우리말로 실체, 객체라고 번역하기도 하는데 실무적으로 엔터티라는 용어를 그대로 사용한다.

엔티티가 맞는 발음이지 않나 싶은데, 외국에서도 엔터티라고 발음한다고 한다.

한마디로 엔터티는 저장이 되기 위한 어떤 것이라고 할 수 있다.

또한 엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성을 지닌다.

표기법

엔터티를 표현하는 방법은 대부분 사각형으로 표현된다. 다만 이 안에 표현되는 속성의 표현 방법이 조금씩 다를 수 있다.

특징

엔터티의 특징들은 다음과 같다.

  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
    • 아래 이미지에서 환자 정보는 회사에서는 필요가 없다.

  • 식별이 가능해야 한다.
    • 식별자는 우리가 흔히 사용하는 KEY라는 개념의 논리적 용어다.

  • 인스턴스의 집합.

    • 값이 하나인 주체가 되는 상위 값은 보통 값이 하나이므로 인스턴스의 집합이 될 수 없다.
  • 업무프로세스에 의해 이용.

    • 해당 엔터티는 반드시 필요에 의해 선정되었다면 이용이 되어야 한다.

  • 속성을 포함.
    • 반드시 속성이 포함되어야 한다. 속성을 포함하지 않고 엔터티의 이름만 가지고 있는 경우는 관계가 생략되어 있거나 업무 분석이 미진하여 속성 정보가 누락되는 경우에 해당된다.

  • 관계의 존재.
    • 엔터티는 다른 엔터티와 최소 한개 이상의 관계가 존재해야 한다.

분류

엔터티는 실체유형(유무형)에 따라 구분하거나, 엔터티의 발생시점에 의해 분류 될 수 있다.

실체유형(유무형)에 따른 분류

  • 유형 엔터티

    • 물리적인 형태가 존재하는 엔터티이며 안정적이고 지속적으로 활용되는 엔터티이다.
  • 개념 엔터티

    • 물리적인 형태는 존재하지 않고 관리해야 할 개념적인 정보로 구분이 되는 엔터티이다.
  • 사건 엔터티

    • 업무를 수행함에 따라 발생되는 엔터티이다.

발생시점에 따른 분류

  • 기본/키 엔터티
    • 해당 업무에 원래 존재하는 정보로 다른 엔터티와의 관계에 의해 발생 또는 생성되지 않고 독립적으로 존재하는 엔터티이다. 이는 독립적으로 생성이 가능하며 다른 엔터티의 부모역할을 한다.
  • 중심 엔터티
    • 기본 엔터티로부터 발생되며 업무에 있어서 중심적인 역할을 한다. 일반적으로 데이터 양이 많으며 다른 엔터티와의 관계를 통해 행위 엔터티를 생성한다.
  • 행위 엔터티
    • 두 개 이상의 부모 엔터티로부터 주로 발생되고, 자주 엔터티의 내용이 바뀌거나 데이터양이 증감한다. 분석초기 단계보다는 상세 설계단계나 프로세스와 상관모델링을 진행하면서 도출될 수 있다.

엔터티의 명명(Naming)

엔터티의 이름을 정하는 데에 있어서는 다음과 같은 원칙을 지켜야 한다.

  • 가능하면 현업업무에서 사용하는 용어를 사용한다.

  • 가능하면 약어를 사용하지 않는다.

  • 단수 명사를 사용한다.

  • 모든 엔터티를 통틀어서 유일한 이름을 가져야 한다.

  • 엔터티의 생성 의미대로 이름을 부여한다.

참고
[Database] Entity
[DB] 데이터베이스 엔터티(Entity)란 무엇인가?

profile
경험은 일어난 무엇이 아니라, 그 일어난 일로 무엇을 하느냐이다.

0개의 댓글