# US 10,503,736 B2 · Representing a group hierarchy structure in a relational database

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,736 B2
- Document ID: US10503736B2
- Status: Granted
- Kind: B2
- Application number: 11/491,427
- Filed: 2006-07-21
- Published: 2008-01-24
- Granted: 2019-12-10
- Earliest claimed: 2006-07-21
- Assignees: International Business Machines Corporation
- Applicants: Paul-Vlad Tatavu; Joseph Paul Wigglesworth
- Inventors: Paul-Vlad Tatavu; Joseph Paul Wigglesworth
- Web page: https://patentgrep.com/patent/US10503736B2

## CPC

- G06F 16/24553: {of query operations}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer implemented method, apparatus, system, and computer usable program product for managing a database. The process receives a request for a list of members for a given group of objects in the database. The process identifies a set of static members for the given group based on a set of records in a membership table in the database. The set of static members includes all direct static members and all indirect static members of the given group. The process identifies a set of dynamic members for the given group of objects based on a reference in a group table in the database. The set of dynamic members includes all direct dynamic members of the given group and all indirect static members of the given group. The process generates the list of members.

## Claims

### Claim 1

A computer implemented method for managing a database, the computer implemented method comprising:
responsive to receiving a request for a list of members for a given group of objects associated with the database, identifying a set of static members for the given group of objects with a single query to a membership table in the database, wherein the set of static members for the given group of objects includes all direct static members of the given group and all indirect static members of the given group, wherein an indirect static member is a member of a nested group, and wherein all direct static members and indirect static members in the set of static members are identified with the single query to the database, wherein the set of static members includes two or more static members;
identifying a set of dynamic members for the given group of objects based on a reference in a group table in the database, wherein the set of dynamic members includes all direct dynamic members of the given group and all indirect dynamic members of the given group, wherein the set of dynamic members includes two or more dynamic members; and
generating the list of members, wherein the list of members includes the set of static members and the set of dynamic members and wherein the list of members is used to manage the database.

### Claim 2 (depends on 1)

The computer implemented method of claim 1 wherein the membership table includes a nested field that indicates whether a member of the given group of objects is a nested group, wherein the nested group is a group member that is itself a group having members.

### Claim 3 (depends on 2)

The computer implemented method of claim 2 further comprising:
responsive to a determination that a member of the given group of objects is a nested member, checking the reference in the group table to determine whether the nested member of the given group of objects is a dynamic group to form a dynamic nested group.

### Claim 4 (depends on 3)

The computer implemented method of claim 3 further comprising:
executing a query object for the dynamic nested group to identify a set of members of the dynamic nested group to form indirect dynamic members of the given group of objects.

### Claim 5 (depends on 4)

The computer implemented method of claim 4 wherein the set of members of the dynamic nested group is identified with the single query to the database.

### Claim 6 (depends on 1)

The computer implemented method of claim 1 wherein identifying the set of static members further comprises:
checking a direct/indirect field in the membership table to determine whether a member of the given group is a direct static member of the group.

### Claim 7 (depends on 1)

The computer implemented method of claim 1 wherein the reference in the group table is a reference to a query object that defines at least one common attribute that is common amongst the dynamic members of the given group.

### Claim 8 (depends on 7)

The computer implemented method of claim 7 further comprising:
executing the query object against the database to identify the set of dynamic members of the given group that are associated with the common attribute.

### Claim 9 (depends on 1)

The computer implemented method of claim 1 further comprising:
responsive to receiving a request to add a member to the given group to form an added member, adding a direct membership record to the membership table for the added member of the given group to form an added member.

### Claim 10 (depends on 9)

The computer implemented method of claim 9 further comprising:
responsive to determining the added member is a nested group, setting a field in the membership table to indicate the added member is a nested group to form a nested group member, wherein the nested group is a group member that is itself a group having members.

### Claim 11 (depends on 10)

The computer implemented method of claim 10 further comprising:
responsive to determining a record for a given member of the nested group member is present in the membership table for the given group, incrementing a reference count for the given member of the nested group member.

### Claim 12 (depends on 10)

The computer implemented method of claim 10 further comprising:
responsive to determining a record for a given member of the nested group member is not present in the membership table for the given group, adding an indirect membership record for the given member of the nested group member in the membership table for the given group.

### Claim 13 (depends on 1)

The computer implemented method of claim 1 further comprising:
responsive to receiving a request to remove a member from the given group, removing direct membership records from the membership table for the removed member to form a removed member.

### Claim 14 (depends on 13)

The computer implemented method of claim 13 further comprising:
responsive to a determination that the removed member is a nested group, decrementing a reference count in the indirect membership records for all groups in which the removed member was a direct member or indirect member, wherein the nested group is a group member that is itself a group having members.

### Claim 15 (depends on 1)

The computer implemented method of claim 1 wherein receiving a request for a list of members, identifying a set of static members, identifying a set of dynamic members, and generating the list of members in claim 1 are performed by a database manager.

### Claim 16 (depends on 1)

The computer implemented method of claim 1 wherein identifying the set of static members further comprises:
checking a direct/indirect field in the membership table to determine whether a member of the given group is an indirect static member of the group.

### Claim 17

A computer implemented method for managing a database, the computer implemented method comprising:
responsive to receiving a request for a list of members for a given group of objects associated with the database, identifying a set of static members for the given group of objects with a single query to a membership table in the database, wherein the set of static members for the given group of objects includes all direct static members of the given group and all indirect static members of the given group, wherein an indirect static member is a member of a nested group, wherein all direct static members and indirect static members in the set of static members are identified with the single query to the database, wherein identifying the set of static members further comprises checking a direct/indirect field in the membership table to determine whether each member of the given group is a direct static member of the group or an indirect static member of the given group;
identifying a set of dynamic members for the given group of objects based on a reference in a group table in the database, wherein the set of dynamic members includes all direct dynamic members of the given group and all indirect dynamic members of the given group, wherein an indirect dynamic member is a dynamic member of a nested group, and wherein identifying the set of dynamic members further comprises:
responsive to identifying a set of dynamic nested groups in the given group of objects, executing a query object for each dynamic nested group against the database to identify a set of indirect dynamic members of the each dynamic nested group; and
generating the list of members, wherein the list of members includes the set of static members and the set of dynamic members and wherein the list of members is used to manage the database.

### Claim 18 (depends on 17)

The computer implemented method of claim 17, wherein the set of static members includes two or more static members and the set of dynamic members includes two or more dynamic members.

### Claim 19 (depends on 1)

The computer implemented method of claim 1, wherein the set of static members for the given group of objects includes a dynamic group comprising a plurality of the set of dynamic members.

### Claim 20 (depends on 17)

The computer implemented method of claim 17, wherein the set of static members for the given group of objects includes a dynamic group comprising a plurality of the set of dynamic members.
