2009-04-08 3 views
5

이것은 this question과 관련됩니다. 그것은 저를, 예를 들면, this book 생각한 ㄴ다는 것을 얻었다. 대신에 각각 [Agriculture][Other]의 자식 인 대신 나무 [Books > Catalogs > Agriculture][Business & Industrial > Agriculture & Forestry > Other]에 태그 대신 해당 레벨을 가지고있을 수 있습니다. 이베이와 같은 웹 사이트에서계층 적 데이터와 관련 데이터의 성능 및 분류의 장단점은 무엇입니까?

태그 무겁게 [Books > Catalogs > Agriculture]카테고리 모든 레코드 목록의 그 outweigth[AgricultureCatalog] 모든 기록을 목록의 성능 비용, 데이터가 제대로 정규화 제공하는 것?

나는 이것이 어쩌면 어리석은 질문이라는 것을 알고있다. (그리고 나는 다음 eBay를 프로그래밍하고 있다고 생각하지 않는다.) 그러나 나는이 호기심을 떨칠 수 없다. 유혹; 그래서 나는 지금 바보처럼 들리고 나중에 오해 나 무의미한 일을하는 것보다 오해를 잘 이해할 것입니다.

답변

6

관계형 모델이 처음 등장했을 때 지배적 인 데이터베이스 패러다임은 계층 적이었습니다. 본질적으로 사전에 조인 된 부분적 쿼리로 시작할 수 있기 때문에 (여전히 그렇듯이) 계층 구조가 더 효율적입니다.

정적 계층 구조 만 기반으로합니다. 데이터의 뷰를 다른 루트 차원에서 구속하려는 경우 큰 어려움이 발생합니다. (관계형 데이터베이스가 실제 사용을 위해 충분히 효율적인지 여부는 매우 중요하며, 곧 무어의 법칙을 부단히 적용하여 해결됨)

제품을 구성하는 주문에 대해 생각해보십시오. 계층 구조. 필연적으로 고객의 주문에서 찾을 수있는 제품에 대해서도 생각할 수 있어야합니다. 다른 모든 계층 구조. 고객으로부터 주문을 생성하는 지역의 영업 담당자. 주문한 고객이 있어야합니다.

관계형 데이터베이스를 사용하면 거의 동일한 효율성으로 원하는대로 계층 구조를 재구성 할 수 있습니다. 다중 직교 계층 구조를 임베딩하는 비용으로 다른 데이터베이스 형식에서만 사용할 수있는 이점. 이 경우 데이터를 변경, 추가 또는 삭제하는 비용은 천문학적이됩니다.

+1

아름다운 답변, 고마워! –

2

관계형 모델의 주된 목적은 중복을 방지하는 것입니다. 계층 적 데이터는 수동으로 쉽게 구울 수 있지만 중복 문제가 있습니다.

조기 최적화를 수행하는 대신 데이터에 가장 적합한 모델을 사용하십시오.

필자는 관계형 데이터에서 프레젠테이션 계층 적 트리를 만드는 경향이 있습니다.

+0

> 조기 최적화를 수행하는 대신 데이터에 가장 적합한 모델을 사용하십시오. 나는 관계형 데이터로부터 프레젠테이션 계층 적 나무를 만드는 경향이있다. - 정말 재미있었습니다. 감사합니다. –