성능 (및 분류)에서 계층 적 데이터 대 관련 데이터의 장단점은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/731983

문제

이것은 관련이 있습니다 이 질문. 예를 들어, 이 책. 둘 다의 아이가되는 대신 [Agriculture] 그리고 [Other], 나무에서 [Books > Catalogs > Agriculture] 그리고 [Business & Industrial > Agriculture & Forestry > Other], 각각, 대신 그 자체로 그 레벨을 태그로 가질 수 있습니다.

eBay와 같은 웹 사이트에서 모든 레코드를 태그 [Agriculture 그리고 Catalog] 모든 레코드를 나열하는 것들을 크게 능가합니다 [Books > Catalogs > Agriculture] 범주, 데이터가 올바르게 정규화 된 경우?

나는 이것이 아마도 어리석은 질문이라는 것을 알고 있습니다 (아니요, 다음 eBay를 프로그래밍하고 있다고 생각하지 않습니다). 그러나 나는이 호기심을 흔들 수 없습니다. 그만큼 유혹; 그래서 나는 지금 바보 같은 소리를 내고 나중에 어리 석거나 무의미한 일을하는 것보다 내 오해를 잘 이해하고 싶다.

도움이 되었습니까?

해결책

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

그러나 하나의 정적 계층 구조를 기반으로합니다. 다른 루트 차원에서 나오는 데이터의 관점을 구부리려고 할 때 큰 어려움이 나타납니다. (관계형 데이터베이스가 실질적인 사용에 충분히 효율적일 수 있는지 여부는 강력하게 논의 된 질문이었습니다. 곧 무어 법의 부지런한 적용으로 해결되었습니다.)

제품을 구성하는 주문이있는 고객에 대해 생각하십시오. 계층. 필연적으로 당신은 또한 고객의 주문에서 찾을 수있는 제품에 대해 생각할 수 있기를 원합니다. 다른 계층. 고객으로부터 주문을 생성하는 지역의 영업 사원; 또는 주문을하는 고객이 있습니다.

관계형 데이터베이스를 사용하면 대략 동등한 효율성으로 계층을 의지 할 수 있습니다. 여러 직교 계층 구조를 포함시키는 비용으로 다른 데이터베이스 형식으로 만 사용할 수있는 혜택; 이 경우 데이터 변경, 추가 또는 삭제 비용은 천문이됩니다.

다른 팁

관계형 모델의 주요 목적은 복제를 방지하는 것입니다. 계층 적 데이터는 수동으로 쉽게 집어 넣을 수 있지만 복제 문제로 어려움을 겪습니다.

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

나는 관계형 데이터에서 프리젠 테이션 계층 적 트리를 구축하는 경향이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top