파생 계층에서 다 대 다 관계 표시(Master Data Services)Show Many-to-Many Relationships in Derived Hierarchies (Master Data Services)

파생 계층(DH)은 일 대 다 관계를 표시하며 다 대 다 관계도 보여줄 수 있습니다.Derived Hierarchies (DH) display one-to-many relationships, and can now also show many-to-many relationships.

다 대 다(M2M) 관계Many-to-Many (M2M) Relationships

두 엔터티 간의 매핑을 제공하는 세 번째 엔터티를 사용하여 두 엔터티 간의 다 대 다(M2M) 관계를 모델링할 수 있습니다.A many-to-many (M2M) relationship between two entities may be modeled through the use of a third entity that provides a mapping between them:

mds_hierarchies_manytomanymds_hierarchies_manytomany

위의 예에는 매핑 엔터티 ClassRegistration 으로 제공되는 EmployeeTrainingClass엔터티 간에 M2M 관계가 있습니다.In the above example, there is an M2M relationship between the Employee and TrainingClass entities, provided by the mapping entity ClassRegistration. 직원은 여러 과정에 학생으로 등록될 수 있으며 각 과정은 여러 학생을 포함할 수 있습니다.An employee may be registered as a student in multiple classes, and each class may contain multiple students.

이전에는 파생 계층에서 M2M 관계를 모델링할 수 없었습니다.Previously, Derived Hierarchies could not model M2M relationships. SQL Server 2017SQL Server 2017부터는 과정별 학생 등을 표시하는 파생 계층을 만들고 관계를 반전하며 과정을 학생별로 그룹화할 수 있습니다.Beginning with SQL Server 2017SQL Server 2017, you can now create a Derived Hierarchy that displays, for example, students by class, or invert the relationship and show classes grouped by student.

먼저, 파생 계층 관리 페이지로 이동하고 새 파생 계층을 만듭니다.First, go to the Derived Hierarchy management page and create a new Derived Hierarchy:

mds_hierarchies_add_derived_hierarchymds_hierarchies_add_derived_hierarchy

다음으로 새 파생 계층에 수준을 아래부터 위로 추가합니다.Next, add levels to the new Derived Hierarchy, starting from the bottom up. 이 예에서는 과정별로 그룹화된 학생(직원)을 보여주려고 합니다.In this example, we wish to show students (employees) grouped by class. Employee 엔터티는 계층에서 리프 수준이므로 먼저 추가됩니다.The Employee entity is therefore the leaf level of the hierarchy, and is added first:

mds_hierarchies_edit_derived_hierarchy_onemds_hierarchies_edit_derived_hierarchy_one

위의 스크린 샷에서는 Employee 엔터티가 가운데 현재 수준 아래 유일한 수준으로 나타납니다.In the above screenshot, note that the Employee entity appears under Current Levels in the middle as the only level. 오른쪽에 있는 파생 계층 미리 보기Employee 엔터티의 모든 구성원 목록을 보여 줍니다.The Derived Hierarchy Preview on the right simply shows a list of all members of the Employee entity. 왼쪽에 있는 사용 가능한 수준 섹션은 현재 최상위 수준(Employee)의 맨 위에 어떤 수준을 추가할 수 있는지 보여 줍니다.The Available Levels section on the left shows what levels may be added on top of the current top level (Employee). 이들 중 대부분은 Department DBA를 포함하여 Employee 엔터티에서 DBA(도메인 기반 특성)입니다.Most of these are domain-based attributes (DBAs) on the Employee entity, including the Department DBA.

SQL Server 2017SQL Server 2017부터는 M2M 관계를 모델링하는 새로운 유형의 수준이 있습니다(예: Class(ClassRegistration.Student를 통해 매핑됨)).Beginning with SQL Server 2017SQL Server 2017, there is a new type of level that models M2M relationships, for example: Class (mapped via ClassRegistration.Student). 수준 이름은 매핑 관계를 명확하게 설명하는 데 필요한 추가 정보를 반영하기 위해 보다 세부적입니다.The level name is more verbose than the others to reflect the extra information needed to unambiguously describe the mapping relationship. 이 수준을 현재 수준 섹션에서 Employee 수준으로 끌어서 놓습니다.Drag and drop this level to the Employee level in the Current Levels section:

mds_hierarchies_edit_derived_hierarchy_twomds_hierarchies_edit_derived_hierarchy_two

이제 미리 보기에 등록된 직원이 교육 과정별로 그룹화되어 표시됩니다.Now the preview shows employees grouped by the training classes for which they are registered. M2M 관계이므로 각 자식 구성원은 여러 부모를 가질 수 있습니다.Since this is a M2M relationship, each child member can have multiple parents. 위의 예제에서 직원 6 {Hillman, Reinout N}1 {Master Data Services 101}4 {Career-Limiting Moves}의 두 과정에 학생으로 등록됩니다.In the above example, employee 6 {Hillman, Reinout N} is registered as a student in two classes, 1 {Master Data Services 101} and 4 {Career-Limiting Moves}.

이 매핑 관계도 반전되거나 학생별로 그룹화하여 표시될 수 있습니다.This mapping relationship can also be displayed inverted, grouping classes by student:

mds_hierarchies_available_entities_and_hierarchiesmds_hierarchies_available_entities_and_hierarchies

다시, 자식이 둘 이상의 부모 아래 어떻게 나타날 수 있는지 확인합니다. 교육 과정 1 {Master Data Services 101}6 {Hillman, Reinout N}40 {Ford, Jeffrey L}아래에 모두 나타납니다.Again, we see how a child can appear under more than one parent: training class 1 {Master Data Services 101} appears under both 6 {Hillman, Reinout N} and 40 {Ford, Jeffrey L}.

매핑 엔터티 ClassRegistration 의 구성원은 파생 계층 내의 어느 곳에도 나타나지 않습니다.The members of the mapping entity ClassRegistration do not appear anywhere within the Derived Hierarchy. 단지 계층에서 부모 및 자식 구성원 간의 관계를 정의하는 데 사용됩니다.They are used merely to define the relationships between parent and child members in the hierarchy.

다음 중 하나를 수행하고 매핑 엔터티 구성원을 수정하여 M2M 관계를 편집할 수 있습니다.You can edit the M2M relationship by modifying the mapping entity members, by doing one of the following. M2M 관계는 파생 계층 탐색기 페이지에서 읽기 전용입니다.The M2M relationship is read-only in the Derived Hierarchy Explorer page.

  • Excel용 MDS(Master Data Services) 추가 기능을 사용하거나 데이터 준비를 사용하여 엔터티 탐색기 페이지에서 매핑 엔터티 멤버를 수정합니다.Modify the mapping entity members in the Entity Explorer page, using the Master Data Services add-in for Excel, or by using data staging.

  • 파생 계층 구조 탐색기에서 자식 노드를 부모 간에 끌어서 놓습니다.Drag and drop child nodes between parents in the Derived Hierarchy Explorer page.

    이 방법은 가능한 경우 기존 구성원을 수정하고 필요한 경우 새 구성원을 추가합니다.This method modifies existing members when possible and adds new members when necessary. 기존 구성원은 삭제되지 않습니다.Existing members are not deleted.

    예를 들어 ClassRegistration 매핑 엔터티로 학생을 사용되지 않는 노드로 이동할 때 해당 매핑 엔터티 구성원의 클래스 특성 값은 Null로 변경되며 구성원은 삭제되지 않습니다.For example, with the ClassRegistration mapping entity, when moving a student to the unused node, the class attribute value of the corresponding mapping entity member is changed to null, and the member is not deleted. 반대로, 학생을 사용되지 않는 노드에서 어떤 클래스로 이동할 경우 클래스가 Null인 학생에 해당하는 기존 매핑 구성원이 있으면 해당 구성원은 클래스를 Null에서 새 부모로 변경하여 수정합니다.Conversely, when moving a student from the unused node to some class, if there exists an existing mapping member corresponding to the student where class is null, that member is modified by changing class from null to the new parent. 이러한 구성원이 없으면 추가됩니다.If no such member is found, then one is added.

    이 프로세스는 구성원 삭제를 피하여 다른 사용자 데이터의 원하지 않는 삭제를 방지합니다. 예를 들어 매핑 엔터티에 부모-자식 관계를 정의하는 두 가지 이외의 다른 특성이 있는 경우가 있습니다.This process avoids member deletion to prevent unwanted deletion of other user data, for example if the mapping entity contains other attributes besides the two that define the parent-child relationship. 사용자는 매핑 엔터티에서 직접 명시적으로 삭제를 수행해야 합니다.Users must explicitly do deletions directly on the mapping entity.

    새 M2M 수준은 도메인 기반 특성(DBA) 수준이 허용되는 파생 계층 내에 아무 곳에나 나타날 수 있습니다.The new M2M level can appear anywhere within a Derived Hierarchy that a domain-based attribute (DBA) level is allowed. M2M 수준은 위 예제에서와 같은 맨 위에 있을 수 있습니다.A M2M level can be at the top, like in the above examples. 재귀 수준을 포함하여 DBA 수준 위 및/또는 아래일 수 있습니다.It can be above and/or under a DBA level, including recursive levels. 명시적 계층(사용되지 않음) 단면 수준 아래일 수 있습니다.It can be under an Explicit Hierarchy (deprecated) Cap level. 여러 M2M 관계를 동일한 파생 계층에서 서로 연결할 수 있습니다.Multiple M2M relationships can be chained together in the same Derived Hierarchy.

    다른 파생 계층 수준과 마찬가지로 M2M 수준은 숨길 수 있습니다.M2M levels may be hidden, just like other Derived Hierarchy levels.

샘플 모델의 M2M 관계M2M Relationship in Sample Model

M2M 관계의 데모를 보려면 Master Data ServicesMaster Data Services에 포함된 Customer 샘플 모델의 Region Climate 파생 계층을 확인합니다.For a demonstration of an M2M relationship, view the Region Climate derived hierarchy in the Customer sample model that is included with Master Data ServicesMaster Data Services.

다음 그림과 같이 이 관계를 모델링하는 수준 이름은 mds_Number1Climate(RegionClimate.Region을 통해 매핑됨)입니다.As shown in the following image, the level name that models this relationship is mds_Number1Climate (mapped via RegionClimate.Region). mds_Number2미리 보기 에서는 지역이 연결된 기후 유형별로 그룹화되어 표시됩니다.The mds_Number2Preview shows regions grouped by the types of climates that they are associated with. 여러 기후(부모)와 연결된 지역(자식 멤버)이 있기 때문에 M2M 관계입니다.This is a M2M relationship because there are regions (child members) that are associated with multiple climates (parents). 예를 들어 mds_Number3APCR {Asia Pacific}mds_Number4A {Tropical}mds_Number5B {Dry}와 연결되어 있습니다.For example, mds_Number3APCR {Asia Pacific} is associated with mds_Number4A {Tropical} and mds_Number5B {Dry}.

mds_M2MRelationship_Example_CustomerModel

Customer 샘플 모델 및 Master Data ServicesMaster Data Services에 포함된 기타 샘플 모델을 배포하는 방법에 대한 지침은 샘플 모델 및 데이터 배포를 참조하세요.For instructions on deploying the Customer sample model, and other sample models included with Master Data ServicesMaster Data Services, see Deploying Sample Models and Data.

일 대 다 관계One-Many Relationship

DH의 멤버는 여러 자식 멤버의 부모일 수 있지만 일반적으로 둘 이상의 부모를 가질 수 없습니다(예외는 멤버 보안참조).A member of a DH may be the parent of many child members, but it generally cannot have more than one parent (for exceptions, see Member Security). 예를 들어, Employee 및 Department라는 두 개의 엔터티가 있다고 가정해보겠습니다. 여기서 각 직원은 단일 부서에 속합니다.For example, suppose there are two entities: Employee and Department, where each employee belongs to a single department. 이 관계는 Department 엔터티를 참조하는 도메인 기반 특성(DBA)을 Employee 엔터티에 추가하여 모델링합니다.This relationship is modeled by adding to the Employee entity a domain-based attribute (DBA) that references the Department entity:

mds_hierarchies_onetomanymds_hierarchies_onetomany

이 경우 각 직원은 하나의 부서에만 속하지만 각 부서는 여러 직원을 가질 수 있으므로 일 대 다 관계입니다.This is a one-to-many relationship because each employee belongs to just one department, but each department can have multiple employees. 부서별로 그룹화된 직원을 표시하는 파생 계층을 만들 수 있습니다.A Derived Hierarchy may be created that displays employees grouped by department:

mds_hierarchies_dh_screenshotmds_hierarchies_dh_screenshot

멤버 보안Member Security

구성원 보안 권한을 할당하는 데 구성원 중복을 허용하는 계층(구성원이 둘 이상의 부모를 가질 수 있음)을 사용할 수 없습니다.A hierarchy that allows member duplication (allows a member to have more than one parent) cannot be used to assign member security permissions. 예를 들어For example:

  • null 재귀에 앵커를 지정하지 않는 재귀적 파생 계층(RDH)입니다(재귀 수준에서 각 구성원은 루트와 해당 재귀 부모 아래에 나타남).A Recursive Derived Hierarchy (RDH) that does not anchor null recursions (each member at the recursive level appears under both ROOT and its recursive parent).

  • 재귀 수준 위의 수준을 사용하는 재귀적 파생 계층입니다(재귀 수준의 각 구성원은 비재귀적 부모와 해당 재귀 부모 아래에 나타남).A Recursive Derived Hierarchy with a level above the recursive level (each member of the recursive level appears under both its non-recursive parent and its recursive parent).

  • M2M 수준의 파생 계층입니다(자식이 여러 부모에 매핑될 수 있음).A Derived Hierarchy with a M2M level (a child may be mapped to many parents).

컬렉션Collections

컬렉션 및 명시적 계층은 사용되지 않습니다.Collections and Explicit Hierarchies are deprecated. 변환 저장 프로시저(udpConvertCollectionAndConsolidatedMembersToLeaf)는 컬렉션 구성원을 리프 구성원으로 변환하고 컬렉션 구성원 정보를 캡처하기 위해 다 대 다 파생 계층을 만듭니다.The conversion stored procedure (udpConvertCollectionAndConsolidatedMembersToLeaf) converts collection members to leaf members and creates many-to-many Derived Hierarchies to capture collection membership info.

참고 항목See Also

파생 계층(Master Data Services)Derived Hierarchies (Master Data Services)