JJC's 테크니컬 다이어리

Entity–attribute–value model 본문

Database

Entity–attribute–value model

털털한JJC 2016. 2. 26. 17:43

EAV 모델

https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model

엔터티를 표현하기 위한 데이타 모델로 다수의 속성(property, parameter) 을 가지고 있어 방대해 질 수 있는,

하지만 실제 주어진 엔터티를 적용하는 숫자는 비교적 적당한 경우에 사용할 수 있는 모델.

수학에서는 이 모델을 sparse matrix 로 알려져 있으며 object–attribute–value model, vertical database model, open schema 로 알려져 있다.


EAV 테이블의 구조

데이타 표현방식이 비어있지 않은 값만을 저장한다는 것에서 sparse 매트릭스에서의 공간 효율적 방식과 유사하다.

각 속성-값 짝은 entity를 설명하는 fact 다. EAV 테이블의 행(row)은 단일 fact를 가지고 있다. EAV 테이블은 "long and skinny" 하다. 여기서 "long" 은 행의 개수를 의미하며, "skinny" 는 소수의 컬럼을 일컫는 말이다.

데이타는 3개의 컬럼으로 기록된다.

- Entity : 묘사하고 있는 item

- Attribute 또는 Parameters : attribute 정의 table내로의 외래키. 최소한 attribute table 은 다음 컬럼들을 포함할 것이다. : attribute ID, attribute 이름, 설명, 데이타 형식, 입력 검증 지원용 컬럼 (예: 최대 문자열 길이 및 reg ex, 권한 값 집합 등)

- attribute의 값(value)