앵커 모델링
Anchor modeling앵커 모델링은 구조와 컨텐츠 모두에서 시간에 따라 변화하는 정보에 적합한 신속한 변화를 위한 데이터베이스 모델링 기법이다. 그것은 시간 데이터로 작업하기 위한 확장을 포함하여, 개체-관계 모델링과 유사한 개념적 모델링에 사용되는 그래픽 표기법을 제공한다. 모델링 기법에는 네 가지 모델링 구성, 즉 앵커, 속성, 넥타이 및 매듭이 포함되며 각각 모델링되는 도메인의 다른 측면을 캡처한다.[1] 결과 모델은 정형화된 규칙을 사용하여 물리적 데이터베이스 설계로 변환될 수 있다. 그러한 번역이 완료되면 관계형 데이터베이스의 표는 대부분 6번째 정규 형태일 것이다.
철학과 역사
앵커 모델링은 높은 수준의 정상화를 통해 얻을 수 있는 이점을 활용하는 동시에 단점을 회피하기 위해 만들어졌다. 모델을 비파괴적으로 진화시킬 수 있고, null 값을 피할 수 있으며, 정보가 중복되지 않도록 할 수 있다는 장점이 있다. 추가 결합으로 인한 성능 문제는 '조인 제거' 또는 '테이블 제거'라고 불리는 현대 데이터베이스 엔진의 특징으로 인해 크게 방지된다. 정보 콘텐츠 앵커 모델링의 변경을 처리하기 위해, 결과 관계형 데이터베이스 스키마에서 시간적 데이터베이스의 측면을 모방한다.
앵커 모델링을 사용한 초기 설치는 스웨덴에서 이루어졌으며, 이 기술을 사용하여 보험 회사의 데이터 웨어하우스를 건설했던 2004년으로 거슬러 올라간다. 2007년에 이 기술은 몇몇 데이터 웨어하우스와 하나의 OLTP 시스템에서 사용되고 있었으며, 암스테르담에서 개최된 2007 TDWI(Transforming Data with Intelligence)[2] 회의에서 Lars Rönbeck에 의해 국제적으로 발표되었다. 이것은 그 기술이 좀 더 형식적인 묘사를 보증하기에 충분한 관심을 불러일으켰다. 이후 앵커 모델링에 관한 연구는 올레 리제트와 라르스 뢴벡 크리에이터와 스톡홀름 대학교 컴퓨터 및 시스템 과학과의 팀 간의 협력으로 이루어지고 있다. 앵커모델링이 공식화되는 첫 논문은 제28회 국제 개념모델링대회에서 발표되어 최우수 논문상을 받았다.[3]
상업용 웹 사이트는 크리에이티브 커먼즈 라이센스에 따라 무료로 사용할 수 있는 앵커 모델링 자료를 제공한다. 온라인 모델링 도구도 이용할 수 있는데, 무료로 사용할 수 있고 오픈 소스도 있다.[4]
기본 개념
앵커 모델링에는 앵커, 속성, 타이, 노트의 4가지 기본 모델링 개념이 있다. 앵커는 엔티티와 사건을 모형화하는 데 사용되고, 속성은 앵커의 특성을 모형화하는 데 사용되며, 앵커 간의 관계를 묶는 데 사용되며, 노트는 상태와 같은 공유 특성을 모형화하는 데 사용된다. 속성 및 관련성은 모델 정보의 변화를 유지해야 할 때 이력화할 수 있다.
모든 개념에 대해 서로 다른 그래픽 기호를 보여주는 예제 모델은 다음과 같다. 기호는 두어 개의 확장이 있는 개체-관계 모델링에서 사용되는 기호와 유사하다. 속성이나 타이의 이중 윤곽은 변화의 이력이 유지되고 매듭 기호(가장자리가 둥근 윤곽의 사각형)도 사용할 수 있음을 나타낸다.
시간적 측면
앵커 모델링은 두 가지 유형의 정보 진화, 구조 변화 및 내용 변화를 처리한다. 정보의 구조에 대한 변화는 확장을 통해 표현된다. 높은 수준의 정규화는 모든 이전 스키마가 항상 현재 스키마의 하위 집합으로 유지되는 방식으로 변화를 포착하는 데 필요한 모델링 개념을 비파괴적으로 추가하는 것을 가능하게 한다. 기존 스키마는 건드리지 않기 때문에, 이것은 매우 반복적인 방식으로 다운타임을 유발하지 않고 데이터베이스를 진화시킬 수 있다는 이점을 준다.
정보 내용의 변경은 관계형 데이터베이스에서 시간 데이터베이스의 유사한 특징을 모방함으로써 이루어진다. 앵커 모델링에서, 정보의 조각은 시간 또는 시간 간격(개방 및 폐쇄 모두)에 묶일 수 있다. 이벤트가 발생하는 시점(예: 사람의 생년월일 또는 구매 시점)을 사용하여 모델링. 값이 유효한 시간 간격은 속성 및 타이의 이력화(eg 사람의 머리색깔의 변화 또는 사람이 결혼한 기간)를 통해 포착된다. 관계형 데이터베이스에서 이것은 역사화된 속성이나 동기에 해당하는 표에 변경 속도를 포착할 수 있을 만큼 세분화된 데이터 유형을 가진 단일 열을 추가함으로써 달성된다. 이것은 간격이 닫혔는지 여부를 알기 위해 표에서 둘 이상의 행을 조사해야 하기 때문에 약간의 복잡성을 더한다.
데이터베이스에 입력된 시간 정보와 같이 모델링되는 도메인과 직접 관련되지 않는 시점 또는 시간 간격은 위에서 언급한 구성의 어느 것이 아니라 앵커 모델링에서 메타데이터를 사용하여 처리한다. 데이터베이스에 대한 이러한 변경에 대한 정보를 유지해야 하는 경우, 업데이트 외에도 삭제 문도 비파괴적이 된다.
관계 표현
앵커 모델링에서 개념 모델에 사용된 기호와 관계형 데이터베이스의 표 사이에 일대일 매핑이 있다. 모든 닻, 속성, 넥타이 및 매듭은 모호하지 않게 정의된 구조로 데이터베이스에 해당하는 표를 가지고 있다. 따라서 개념 모델은 단순한 자동화된 규칙을 사용하여 관계형 데이터베이스 스키마로 변환될 수 있으며, 그 반대의 경우도 마찬가지다. 이것은 개념적, 논리적, 물리적 수준 사이에 복잡하고 때로는 주관적인 번역 단계가 있는 많은 다른 모델링 기법과는 다르다.
앵커 테이블에는 ID가 저장되는 단일 열이 포함되어 있다. 정체성은 항상 존재하고 불변하는 실체의 유일한 재산으로 가정된다. 모델링되는 도메인에서 ID를 거의 사용할 수 없기 때문에, ID는 대신 기술적으로 생성되며, eg는 증가하는 숫자 시퀀스에서 생성된다.
도날드 덕의 조카들의 신상을 위한 앵커의 예로는 다음과 같은 1-tuples가 있다.
{⟨#42⟩, ⟨#43⟩, ⟨#44⟩}
매듭은 닻과 하나의 속성의 결합이라고 생각할 수 있다. 매듭 테이블에는 두 개의 열이 포함되어 있는데, 하나는 식별을 위한 것이고 다른 하나는 값을 위한 것이다. 정체성과 가치를 함께 저장하기 때문에 매듭은 역사화할 수 없다. 노트를 참조하는 테이블은 긴 줄이 아닌 짧은 값을 저장할 수 있기 때문에 스토리지 요구사항을 줄이고 성능을 개선할 수 있다는 점에서 유용성이 있다.
성별에 대한 매듭의 예로는 다음과 같은 2-tuple이 있다.
{⟨#1, 'Male'⟩, ⟨#2, 'Female'⟩}
정적 속성 테이블에는 값이 속한 엔터티의 ID에 대한 열과 실제 속성 값에 대한 열 두 개가 들어 있다. 이력화된 속성 테이블에는 시간 간격의 시작점을 저장하기 위한 추가 열이 있다. 매듭을 지은 속성 테이블에서 값 열은 매듭 테이블을 참조하는 ID이다.
이름에 대한 정적 속성의 예는 다음과 같은 2-tuple 집합이다.
{⟨#42, 'Huey'⟩, ⟨#43, 'Dewey'⟩, ⟨#44, 'Louie'⟩}
성별에 대해 매듭을 지은 정적 속성의 예는 다음과 같은 2-tuple 집합이다.
{⟨#42, #1⟩, ⟨#43, #1⟩, ⟨#44, #1⟩}
의상의 색상 변경에 대한 이력화된 속성의 예로는 다음과 같은 3-tuple을 들 수 있다.
{⟨#44, 'Orange', 1938-04-15⟩, ⟨#44, 'Green', 1939-04-28⟩, ⟨#44, 'Blue', 1940-12-13⟩}
정적 타이 테이블은 두 개 이상의 앵커와 서로 관련되며, ID를 저장하기 위한 두 개 이상의 열이 포함되어 있다. 역사화된 타이 테이블에는 시간 간격의 시작점을 저장하기 위한 추가 열이 있다. 매듭이 있는 타이 테이블에는 참조된 각 매듭에 대한 추가 열이 있다.
형제 관계에 대한 정적 동점의 예로는 다음과 같은 2-tuple 집합이 있다.
{⟨#42, #43⟩, ⟨#42, #44⟩, ⟨#43, #42⟩, ⟨#43, #44⟩, ⟨#44, #42⟩, ⟨#44, #43⟩}
결과 표는 모든 열이 기본 키의 일부가 아닌 타이를 제외하고 모두 6번째 정규 형식이다.
참조
- ^ L. Rönnbäck; O. Regardt; M. Bergholtz; P. Johannesson; P. Wohed (2010). "Anchor modeling - Agile information modeling in evolving data environments". Data & Knowledge Engineering. 69 (12): 1229–1253. doi:10.1016/j.datak.2010.10.002. ISSN 0169-023X. (여기서 인쇄 가능)
- ^ 제6회 TDWI 유럽 컨퍼런스 - TDWI 홈페이지 2011년 7월 20일 웨이백머신에 보관
- ^ Regardt, Olle; Rönnbäck, Lars; Bergholtz, Maria; Johannesson, Paul; Wohed, Petia (2009). "Anchor Modeling". Proceedings of the 28th International Conference on Conceptual Modeling. ER '09. Gramado, Brazil: Springer-Verlag: 234–250. ISBN 978-3-642-04839-5.
- ^ Lars Rönnbäck. "Anchor Modeling Academy". Promotional website. Retrieved May 20, 2017.