기본적인 용어의 정확한 정의없이 상황마다 접하게 되어 혼란이 생긴다.
용어에 대한 명확한 정의를 학습하고 넘어간다.
데이터베이스 스키마는 간단히 말해 특정 데이터베이스의 구조 또는 구성에 대한 형식적인 설명이다. "데이터베이스 스키마"라는 용어는 관계형 데이터베이스, 즉 테이블에 정보를 구성하고 SQL 쿼리 언어를 사용하는 데이터베이스와 관련하여 가장 일반적으로 사용된다. 비관계형(=NoSQL) 데이터베이스는 여러 다른 형식으로 제공되며, 기본 구조가 있음에도 불구하고 일반적으로 관계형 데이터베이스와 동일한 방식으로 "스키마"가 있는 것으로 간주되지 않는다.
스키마의 정의 (참고)
- 데이터베이스의 구조와 제약 조건, 관계에 관한 전반적인 명세를 기술한 메타데이터의 집합이다.
- 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationshiip) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.
- 스키마는 사용자 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나뉜다.
사용자 <-> 외부스키마 <-> 응용인터페이스 <-> 개념스키마 <-> 저장 인터페이스 <-> 내부스키마 <-> 장치인터페이스 <-> 저장 데이터베이스
물리적 데이터베이스 스키마:
데이터가 스토리지 시스템에 물리적으로 저장되는 방식과 사용되는 스토리지 형태(파일, 키-값 pair, 인덱스 등)을 설명한다.
논리적 데이터베이스 스키마:
데이터에 적용되는 논리적 제약 조건을 설명하고 필드, 테이블, 관계, 보기, 무결성 제약 조건등을 정의한다. 이런 요구 사항은 프로그래머가 데이터베이스의 물리적 설계에 적용할 수 있는 유용한 정보를 제공한다. 이 논리적 모델에 정의된 규칙 또는 제약 조건은 서로 다른 테이블의 데이터가 서로 관련되는 방식을 결정하는 데 도움이 된다.
-> 스키마의 물리적 테이블에 대한 정의는 논리적 데이터 모델로부터 온다. 예를 들어 엔티티는 테이블이 되고, 엔티티의 속성은 테이블 필드가 된다.
엔티티는 다시 말해 어떤 실체, 객체 라고 볼 수 있고, 다음과 같이 개념을 정리할 수 있다.
- 데이터의 집합
- 저장되고 관리되어야하는 데이터
- 개념, 장소, 사건등을 가리킨다.
속성의 사전적 의미는, 어떤 사물의 성질이나 특징, 그것이 없다면 실체를 생각 또는 표현할 수 없는 것으로 정의할 수 있다. 데이터 모델의 관점에서 속성은, 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위로 정의할 수 있다. 즉, 속성이란 의미상 더 이상 분리되지 않으며, 엔터티를 설명하는 요소이며 인스턴스의 구성요소이다.
속성 또한 엔터티와 같이 다음과 같은 성질을 가지고 있으며, 이러한 성질을 지니지 않는다면 적절하지 못한 속성일 확률이 높다.
엔티티는 유,무형 여부와 발생 시점에 따라 나뉜다.
종류 | 설명 |
---|---|
유형 엔티티 | 지속적으로 사용되는 엔티티. (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