엔터티에 대해서 이해하기 전에 먼저 간략하게 용어들에 대해서 알아보아야 한다.
테이블은 데이터베이스에서 정보를 저장하는 구조다. 예를 들어, "사용자(User)" 데이터를 저장하기 위한 테이블이 있을 수 있다. 테이블은 행과 열의 형태로 데이터를 저장한다.
// 사용자 테이블의 예시
+----+-----------+------------------+
| ID | 이름 | 이메일 |
+----+-----------+------------------+
| 1 | Alice | alice@email.com |
| 2 | Bob | bob@email.com |
| 3 | Carol | carol@email.com |
+----+-----------+------------------+
관계형 데이터베이스(RDBMS)에서는 "릴레이션"이라고 부르기도 한다.
스키마는 관계형 데이터베이스에서 주로 사용되는 용어다.
관계형 데이터베이스에서 기본 구조를 정의하는 것이다.
스키마는 데이터베이스 내의 데이터 구조와 구성을 정의하고 조직화하는 방법을 나타내는 개념이다. 스키마는 데이터 베이스 내의 테이블, 뷰, 인덱스, 프로시저, 함수 등과 관련된 모든 객체에 대한 설계와 구조를 정의한다.
데이터 구조 정의: 스키마는 데이터베이스 내의 어떤 테이블이 존재하고, 각 테이블이 어떤 열로 이루어져 있는지를 정의한다. 이는 데이텁이스가 어떤 종류의 정보를 저장하고 어떻게 구성되어 있는지를 나타낸다.
데이터 무결성: 스키마는 데이터의 무결성을 보장하기 위한 규칙과 제약 조건을 정의한다. 예를 들어, 특정 열에 대한 데이터 유형, 길이, 고유한 값 제약 조건 등을 스키마에서 설정할 수 있다.
보안 및 권한 관리: 스키마는 데이터베이스 내에서 데이터에 접근하고 조작할 수 있는 권한 및 보안 정책을 설정하는 데 사용된다.
네임스페이스: 스키마는 데이터베이스 내에서 객체 간의 네임스페이스를 제공한다. 서로 다른 스키마 내에서 동일한 이름의 객체를 정의할 수 있으며, 이로써 객체 간의 충돌을 방지할 수 있다.
인스턴스는 테이블에서 실제로 저장된 데이터를 말한다.
인스턴스는 특정 데이터베이스 관리 시스템의 실행 중인 실제 데이터베이스를 가리킨다. 간단히 말해, 데이터베이스의 인스턴스는 해당 DBMS를 사용하여 생성된 하나의 데이터베이스 환경을 나타낸다.
튜플은 릴레이션에서 행(가로)의 개수를 의미한다.
튜플은 테이블 내에서 하나의 레코드 또는 데이터 엔트리를 나타내는 용어다. 튜플은 테이블의 각 행에 해당하며, 이러한 행은 테이블 구조 또는 스키마에 따라 정의된 열(또는 필드)의 값으로 구성된다.
간단히 말해, 데이터베이스 테이블은 여러 행 또는 튜플로 구성되며, 각 행은 해당 테이블에 저장된 하나의 레코드를 나타낸다. 각 행은 테이블의 열에 해당하는 데이터 값을 포함하며, 이러한 행은 데이터베이스에서 검색, 삽입, 갱신 및 삭제와 같은 다양한 작업을 수행하는데 사용된다.
속성은 릴레이션에서 열(세로)의 개수를 의미한다.
속성은 테이블 내에서 데이터의 특정 유형 또는 정보를 나타내는데 사용되는 용어다. 각 열은 데이터베이스 테이블의 구조를 정의하며 해당 열에는 특정 유형의 데이터가 저장된다.
예를 들어, "고객" 테이블의 경우 다음과 같은 열을 포함할 수 있다.
ID 열: 각 고객의 고유한 식별자를 저장하는 열
이름 열: 각 고객의 이름을 저장하는 열
이메일 열: 각 고객의 이메일 주소를 저장하는 열
전화번호 열: 각 고객의 전화번호를 저장하는 열
도메인은 속성이 가질 수 있는 값의 집합이다.
도메인은 특정 열에 저장될 수 있는 데이터 값의 유형 또는 범위를 나타낸다. 각 속성은 해당 도메인의 데이터 유형을 가지며, 도메인은 그 속성에서 허용되는 데이터 값의 종류와 제약 조건을 정의한다.
예를 들어, "고객" 테이블의 "나이" 속성의 도메인은 양의 정수(positive integer)로 정의될 수 있다. 이것은 해당 열에서 허용되는 값이 양의 정수여야 하며 음수 값 또는 문자열과 같은 다른 데이터 유형은 허용되지 않는다는 것을 의미한다.
엔터티에 대해서 데이터 모델과 데이터베이스의 권위자들은 다음과 같인 엔터티를 정의하고 있다.
변별할 수 있는 사물 - Peter Chen (1976) -
데이터베이스 내에서 변별 가능한 객체 - C.J Date (1986) -
정보를 저장할 수 있는 어떤 것 - James Martin (1989) -
정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등 - Thomas Bruce (1992) -
데이터 모델을 이해할 때 가장 명확하게 이해해야 하는 개념 중 하나가 엔터티다. 우리말로 실체, 객체라고 번역하기도 하는데 실무적으로 엔터티라는 용어를 그대로 사용한다.
엔티티가 맞는 발음이지 않나 싶은데, 외국에서도 엔터티라고 발음한다고 한다.
한마디로 엔터티는 저장이 되기 위한 어떤 것이라고 할 수 있다.
또한 엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성을 지닌다.
엔터티를 표현하는 방법은 대부분 사각형으로 표현된다. 다만 이 안에 표현되는 속성의 표현 방법이 조금씩 다를 수 있다.
엔터티의 특징들은 다음과 같다.
인스턴스의 집합.
업무프로세스에 의해 이용.
엔터티는 실체유형(유무형)에 따라 구분하거나, 엔터티의 발생시점에 의해 분류 될 수 있다.
유형 엔터티
개념 엔터티
사건 엔터티
엔터티의 이름을 정하는 데에 있어서는 다음과 같은 원칙을 지켜야 한다.
가능하면 현업업무에서 사용하는 용어를 사용한다.
가능하면 약어를 사용하지 않는다.
단수 명사를 사용한다.
모든 엔터티를 통틀어서 유일한 이름을 가져야 한다.
엔터티의 생성 의미대로 이름을 부여한다.