Computer >> 컴퓨터 >  >> 프로그램 작성 >> SQL

네트워크 모델


네트워크 모델은 여러 부모를 허용하는 트리와 같은 구조에서 다대다 관계를 관리할 수 있기 때문에 계층 구조의 확장입니다.

네트워크 모델에는 두 가지 기본 개념이 있습니다.

  • 레코드에는 계층적 구성이 필요한 필드가 포함되어 있습니다.
  • 집합은 한 명의 소유자와 많은 구성원을 포함하는 레코드 간의 일대다 관계를 정의하는 데 사용됩니다.

레코드는 여러 세트의 소유자 역할을 하고 세트의 구성원 역할을 할 수 있습니다.

추신 집합을 수학 집합과 혼동해서는 안 됩니다.

세트는 하나의 레코드 유형, 즉 상위라고도 하는 세트의 소유자가 각 원에 한 번씩 표시되고 두 번째 레코드 유형(또한 부하 또는 어린이는 각 서클에 여러 번 나타날 수 있습니다.

한 유형(A)이 다른 유형(B)의 소유자인 두 레코드 유형 사이에 계층 구조가 설정됩니다. 동시에 후자 세트(B)가 전자 세트(A)의 소유자인 다른 세트를 개발할 수 있습니다. 이 모델에서 소유권은 방향으로 정의되므로 모든 집합은 일반 방향 그래프를 구성합니다. 레코드에 대한 액세스는 순환 연결 목록의 인덱싱 구조에 의해 개발됩니다.

네트워크 모델에는 다음과 같은 주요 기능이 있습니다. -

  • 계층적 모델보다 데이터의 중복성을 더 효율적으로 나타낼 수 있습니다.
  • 이전 노드에서 후속 노드로의 경로는 둘 이상일 수 있습니다.
  • 네트워크 모델의 작동은 프로그램이 현재 위치를 유지하고 레코드가 참여하는 관계를 따라 한 레코드에서 다른 레코드로 이동하는 연결 목록(원형)의 인덱싱 구조로 유지됩니다.
  • 키 값을 제공하여 레코드를 찾을 수도 있습니다.

다음 다이어그램은 네트워크 모델을 보여줍니다. 에이전트는 여러 고객을 대표하고 여러 연예인을 관리합니다. 각 클라이언트는 원하는 수의 계약을 예약하고 에이전트에게 서비스 비용을 지불합니다. 각 연예인은 여러 가지 약혼을 수행하고 다양한 음악 스타일을 연주할 수 있습니다.

네트워크 모델

레코드 모음은 노드로 표시되며 집합 구조는 네트워크에서 관계를 설정하는 데 도움이 됩니다. 이 개발은 한 노드를 소유자로 사용하고 다른 노드를 구성원으로 사용하여 한 쌍의 노드를 연결하는 데 도움이 됩니다. 일대다 관계는 집합 구조로 관리됩니다. 즉, 소유자 노드의 레코드는 구성원 노드의 하나 이상의 레코드와 관련될 수 있지만 구성원 노드의 단일 레코드는 소유자 노드.

또한 구성원 노드의 레코드는 소유자 노드의 기존 레코드와 관련이 없이는 존재할 수 없습니다. 예를 들어 클라이언트는 에이전트에 할당되어야 하지만 클라이언트가 없는 에이전트는 데이터베이스에 계속 나열될 수 있습니다.

네트워크 모델

위의 다이어그램은 기본 집합 구조의 다이어그램을 보여줍니다. 특정 노드 쌍 간에 하나 이상의 집합(연결)을 정의할 수 있으며 단일 노드는 데이터베이스의 다른 노드와 다른 집합에 포함될 수도 있습니다.

적절한 집합 구조의 도움으로 네트워크 모델 내부에서 데이터에 쉽게 액세스할 수 있습니다. 루트 노드를 선택하는 데 제한이 없으며 모든 노드를 통해 데이터에 액세스할 수 있으며 관련 세트의 도움으로 앞뒤로 실행할 수 있습니다.

예를 들어 사용자가 특정 계약을 예약한 에이전트를 찾고자 할 때입니다. 그는 ENGAGEMENTS 노드에서 적절한 참여 레코드를 찾는 것으로 시작한 다음 일정 집합 구조를 통해 해당 참여 레코드를 "소유"하는 클라이언트를 결정합니다. 마지막으로 Represent 집합 구조를 통해 클라이언트 레코드를 "소유하는" 에이전트를 식별합니다.

장점

  • 빠른 데이터 액세스
  • 또한 사용자는 계층적 데이터베이스를 사용하여 생성한 쿼리보다 더 복잡한 쿼리를 생성할 수 있습니다. 따라서 이 모델에 대해 다양한 쿼리를 실행할 수 있습니다.

단점

  • 사용자가 집합 구조를 사용하려면 데이터베이스 구조에 매우 익숙해야 합니다.
  • 이 데이터베이스 내에서 업데이트하는 것은 지루한 작업입니다. 이 구조를 사용하여 데이터를 탐색하는 응용 프로그램에 영향을 주지 않고 집합 구조를 변경할 수 없습니다. 집합 구조를 변경하는 경우 해당 구조에 대한 응용 프로그램 내에서 만들어진 모든 참조도 수정해야 합니다.