DB 스키마, 엔티티

강현구·2022년 6월 6일
1

기본적인 용어의 정확한 정의없이 상황마다 접하게 되어 혼란이 생긴다.
용어에 대한 명확한 정의를 학습하고 넘어간다.

DB 스키마

데이터베이스 스키마는 간단히 말해 특정 데이터베이스의 구조 또는 구성에 대한 형식적인 설명이다. "데이터베이스 스키마"라는 용어는 관계형 데이터베이스, 즉 테이블에 정보를 구성하고 SQL 쿼리 언어를 사용하는 데이터베이스와 관련하여 가장 일반적으로 사용된다. 비관계형(=NoSQL) 데이터베이스는 여러 다른 형식으로 제공되며, 기본 구조가 있음에도 불구하고 일반적으로 관계형 데이터베이스와 동일한 방식으로 "스키마"가 있는 것으로 간주되지 않는다.

스키마의 정의 (참고)

  • 데이터베이스의 구조와 제약 조건, 관계에 관한 전반적인 명세를 기술한 메타데이터의 집합이다.
  • 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationshiip) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.
  • 스키마는 사용자 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나뉜다.

사용자 <-> 외부스키마 <-> 응용인터페이스 <-> 개념스키마 <-> 저장 인터페이스 <-> 내부스키마 <-> 장치인터페이스 <-> 저장 데이터베이스

DB 스키마의 기본적인 구성요소

  1. 물리적 데이터베이스 스키마:
    데이터가 스토리지 시스템에 물리적으로 저장되는 방식과 사용되는 스토리지 형태(파일, 키-값 pair, 인덱스 등)을 설명한다.

  2. 논리적 데이터베이스 스키마:
    데이터에 적용되는 논리적 제약 조건을 설명하고 필드, 테이블, 관계, 보기, 무결성 제약 조건등을 정의한다. 이런 요구 사항은 프로그래머가 데이터베이스의 물리적 설계에 적용할 수 있는 유용한 정보를 제공한다. 이 논리적 모델에 정의된 규칙 또는 제약 조건은 서로 다른 테이블의 데이터가 서로 관련되는 방식을 결정하는 데 도움이 된다.

-> 스키마의 물리적 테이블에 대한 정의는 논리적 데이터 모델로부터 온다. 예를 들어 엔티티는 테이블이 되고, 엔티티의 속성은 테이블 필드가 된다.

엔티티 (Entity)

엔티티는 다시 말해 어떤 실체, 객체 라고 볼 수 있고, 다음과 같이 개념을 정리할 수 있다.

  • 엔터티는 사람, 장소, 물건, 사건, 개념 등과 같은 명사에 해당된다.
  • 엔터티는 업무상 관리가 필요한 것에 해당된다.
  • 엔터티는 저장 되기 위한 어떤 것(Thing)에 해당된다.
  • 데이터의 집합
  • 저장되고 관리되어야하는 데이터
  • 개념, 장소, 사건등을 가리킨다.

특징

  • 식별자: 유일한 식별자를 갖고 있어야한다. (ex 주민번호, ID 등)
  • 인스턴스 집합: 2개 이상의 인스턴스가 있어야한다.
  • 속성: 반드시 속성이 있어야한다. (ex 학번, 이름 주소 등)
  • 관게: 다른 엔티티와 최소 한개 이상의 관계가 있어야 한다. (ex 학생-이름)
  • 업무: 업무에서 관리되어야 하는 집합니다.

엔티티의 속성

속성의 사전적 의미는, 어떤 사물의 성질이나 특징, 그것이 없다면 실체를 생각 또는 표현할 수 없는 것으로 정의할 수 있다. 데이터 모델의 관점에서 속성은, 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위로 정의할 수 있다. 즉, 속성이란 의미상 더 이상 분리되지 않으며, 엔터티를 설명하는 요소이며 인스턴스의 구성요소이다.

속성의 특징

속성 또한 엔터티와 같이 다음과 같은 성질을 가지고 있으며, 이러한 성질을 지니지 않는다면 적절하지 못한 속성일 확률이 높다.

  • 엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
  • 정규화 이론에 근간하여 정해진 주 식별자에 함수적 종속성을 가져야 한다.
    쉽게 말해, 다양하게 존재하는 인스턴스들에 대해 유일하게 구별할 수 있는 주식별자를 통해서 식별될 수 있어야 한다.
  • 하나의 속성에는 단 한개의 값만을 가진다.

종류

엔티티는 유,무형 여부와 발생 시점에 따라 나뉜다.

종류설명
유형 엔티티지속적으로 사용되는 엔티티. (ex 학생, 선생님)
개념 엔티티물리적 형태가 없이 개념적으로 사용되는 엔티티 (ex 보험상품)
사건 엔티티비즈니스 프로세스를 실행하면서 생성되는 엔티티 (ex 주문, 취소)
종류설명
기본 엔티티(키 엔티티) 다른 엔티티에 영향을 받지않고 독립적으로 생성되는 엔티티. (ex 고객, 상품)
중심 엔티티기본 엔티티로부터 발생되고 행위 엔티티를 생성한다. (ex 주문, 취소 체결 등)
행위 엔티티2개 이상의 엔티티로부터 발생된다. (ex 주문 내용, 취소 내용)

Reference :
https://www.integrate.io/ko/blog/complete-guide-to-database-schema-design-ko/
https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EC%8A%A4%ED%82%A4%EB%A7%88
https://subsay.tistory.com/19
https://rh-cp.tistory.com/78
https://doorbw.tistory.com/227

profile
한걸음씩

0개의 댓글