2011-01-20 4 views
0

저는 주로 관계형 DBMS를 구현했지만, 다음과 같이 적합하지 않다고 생각합니다 ... 최대 10^4의 비교적 복잡한 '객체'를 '부품'으로 구성되어 있습니다. 10^2. 파트는 '어셈블리'로 어셈블됩니다. 객체는 두 파트와 어셈블리 사이에 패턴을 설정하기 위해 작업이 수행되며 데이터베이스의 다른 객체에있는 패턴과 비교됩니다.어떤 데이터베이스 모델입니까?

RDBMS를 사용하여 간단히 컨텍스트 사용이 거의없는 테이블 B에 '파트'를 집계하여 (예 : 송장의 항목 번호와 달리) 테이블의 상위 '개체'에 연결할 수있었습니다. A '또는'어셈블리 '테이블 C에 그러나, 나는이 테이블 전체에서 SQL SELECT를 실행하여'B '테이블의 직렬 하위 집합 인 개체를'대조 '해야합니다.

또는 이들 모두는 ParentID 필드가있는 하나의 테이블에있을 수 있습니다. 부재는 '개체'를 나타내며 '조립'이나 '부분'이 아닙니다.

나는 테이블을 '색인'하기 위해 각 개체마다 VIEWS를 설정할 수 있다고 생각합니다. 10,000 개의 뷰를 사용하는 것이 가능한지 또는 모범 사례인지는 알 수 없습니다.

더 도움이되는 방식으로 데이터를 구성 할 수있는 또 다른 모델이 있습니까? 데이터는 다른 '어셈블리'또는 '원자'파트의 '어셈블리'로 구성된 계층 적 객체 세트입니다.

누군가 나를 올바른 방향으로 안내 할 수 있습니까?

+0

데이터를 어떻게 사용할 예정입니까? 읽기가 무겁습니까, 쓰기가 무겁습니까? 10^4 또는 10,000은 큰 데이터 세트가 아니므로 피하기 위해 무엇을하려고합니까? –

+0

죄송합니다. 나는 100,000 개의 물체와 100 개의 물체를 의미했습니다. 스키마를 복잡하게 만드는 것은 어셈블리의 중첩입니다. 입력 기준에 따라 복잡한 패턴 매칭을 위해 무거운 것을 읽습니다. – Stephen

답변

1

내가 제대로 개체 모델의 당신의 설명을 읽고 있어요 경우 것처럼 소리 :

  • 1-많은 부분이 객체에
  • 1-많은 부품을 어셈블리에

 
Assembly 
    ID int 

Object 
    ID int 

Part 
    ID int 

ObjectPart 
    ObjectID 
    PartID 

AssemblyPart 
    AssemblyID 
    PartID 

것은 그런 다음 것 : 원래 이런 걸 생각 것처럼 는

소리가 난다

SELECT P.* 
FROM Parts AS P 
INNER JOIN AssemblyPart AS AP ON AP.PartID = P.ID 
WHERE AP.AssemblyID = @SomeAssemblyID 

나는 독특하고 별도의 엔티티를 유지하는 게 좋을 것, 각 행은 엔티티의 유형을 지시 할 것 ParentID 필드를 피하기 : 주어진 어셈블리에 대한 부분을 찾을 수. 나는 각 엔티티에 대한 뷰가 좋고/유지할 수있는 방법이 아닐 것이라는 점에 동의한다. AssemblyID 또는 AssemblyName에서 WHERE 절이있는보기에서 SELECT를 원할 수 있습니다.

아마도 당신에게 문제가 될 것이라고 생각되는 빠른 관계형 스키마와 예상되는 문제에 대한 설명을 게시 하시겠습니까?

+0

스키마의 형식은 무엇입니까? 실제로 더 많은 줄을 생각하고있었습니다. 개체 ID가 어셈블리 – Stephen

+0

1. 스키마의 형식은 무엇입니까? 2. 실제로 {ID int} <- 일대 다 <-> 어셈블리 {ID int, ParentObject int} <- 일대 다 <-> 파트 {ID int, ParentAssembly int } 3. 나는 정말로 문제를 예상하지 않는다. 난 그냥 직장에 적합한 도구를 사용하고 싶습니다. 그리고 OODBMS 나 Heirarchal DBMS를 사용 해보지 않은 사람이 있습니다. COBOL을 사용하는 사람이라면 더 이상 사용하지 않아도됩니다. 4. 아마도이 프로젝트는 Ford가 자동차 데이터를 저장하는 방식과 비슷할 것입니다. – Stephen

+0

MonetDB/XQuery를 사용하여 구현 된 XML 데이터베이스 (내가 어떤 모델인지 이해할 수 없지만)와 같은 것이 있습니까? – Stephen

0

IBM IMS가있는 RAIMA 또는 Heirarchal이있는 네트워크 모델 만 사용할 수 있습니다 (독점적). 따라서 Zope과 같은 XML이거나 RDBMS를 사용하여 네트워크 모델을 구현하는 온라인 메소드를 사용합니다.

0

Stephen의 대답에 덧붙이 자면 저는 Raima에서 일하고 있습니다. 우리 엔지니어 중 한 명은 Network Database Model에 대해 매우 철저한 게시물을 작성했으며, 작동 방식과 차이점과 관계형 모델을 비교했습니다.

관련 문제