DE112021000621T5 - Primärschlüssel mit mehreren werten für eine mehrzahl von eindeutigen kennungen von entitäten - Google Patents

Primärschlüssel mit mehreren werten für eine mehrzahl von eindeutigen kennungen von entitäten Download PDF

Info

Publication number
DE112021000621T5
DE112021000621T5 DE112021000621.5T DE112021000621T DE112021000621T5 DE 112021000621 T5 DE112021000621 T5 DE 112021000621T5 DE 112021000621 T DE112021000621 T DE 112021000621T DE 112021000621 T5 DE112021000621 T5 DE 112021000621T5
Authority
DE
Germany
Prior art keywords
computer
database
data items
data
attributes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021000621.5T
Other languages
English (en)
Inventor
Michal Bodziony
Marcin Filip
Marcin Luczynski
Tomasz ZATORSKI
Andrzej LASKAWIEC
Monika PIATEK
Lukasz Studzienny
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021000621T5 publication Critical patent/DE112021000621T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Abstract

Ein durch einen Computer ausgeführtes Verfahren, um Entitäten in einem Datenbanksystem eindeutig anzugeben, kann bereitgestellt werden. Das Verfahren umfasst ein Speichern von Datenelementen als Datensätze mit verschiedenen Attributen in einer Tabelle einer Datenbank, ein Speichern von Benennungsregeln für ausgewählte Kombinationen der Attribute der Datenelemente und ein Priorisieren der Benennungsregeln. Das Verfahren umfasst auch ein Ermitteln eines Hashwerts für jede der ausgewählten Kombinationen der Attribute der Datenelemente und ein Angeben von doppelten Datenelementen unter Verwendung der ermittelten Hashwerte und der priorisierten Benennungsregeln.

Description

  • HINTERGRUND
  • Die Erfindung betrifft allgemein ein Datenbanksystem und insbesondere ein durch einen Computer ausgeführtes Verfahren, um Entitäten in einem Datenbanksystem eindeutig anzugeben. Die Erfindung betrifft des Weiteren ein zugehöriges Datenbanksystem, das dazu dient, Entitäten in dem Datenbanksystem eindeutig anzugeben, sowie ein Computerprogrammprodukt, das so ausgelegt ist, dass es das Verfahren durchführt.
  • Die Verwaltung von Unternehmensinformationen bleibt eines der wichtigsten Themen von IT-(Informationstechnologie-)Organisationen von Unternehmen. Dies gilt nicht nur für die großen Global-2000-Unternehmen, sondern auch für kleine und mittelständische Unternehmen. Der Grund ist einfach: Die Anzahl der Quellen für eine Datenverwaltung und die schiere Menge der Daten, die zu verwalten sind, um im Informationszeitalter erfolgreich zu sein, nimmt ständig zu. Ein Ansatz, dieser schwierigen Situation zu begegnen, besteht darin, Unternehmensdatenkataloge im Kontext von Data-Warehouse-Projekten zu erstellen und Datenverwaltungskonzepte zu verwenden. Die Realität hat jedoch gezeigt, dass dieser Ansatz recht schwierig ist, da IT-Organisationen in immer kürzeren Zeiträumen mit neuen Datenquellen und neuen Arten von Daten konfrontiert werden. Somit ist eine dynamischere Art und Weise notwendig, um diesem in vielen Unternehmensanwendungen und über diese Anwendungen hinweg verbreiteten Problem der doppelten Datenobjekte zu begegnen.
  • Zum Beispiel kann derselbe Kunde mit leicht abweichenden Namen oder einer in verschiedenen Formaten angegebenen Arbeitgeberidentifikationsnummer (z.B. Steuernummer) viele Male in ein ERP-System eingegeben werden. Es genügt nicht, einige Einheitenbeschränkungen zu erstellen, da derselbe Kundenname in Großbuchstaben oder in Groß-/Kleinschreibung oder mit einem vollständigen Unternehmensnamen oder einer Kurzbezeichnung gesichert werden kann. Mit der Zeit können diese Themen erkannt werden, aber ein Zusammenführen von anderen zugehörigen Daten ist oftmals schwierig, zeitaufwendig und zuweilen unmöglich. Im Laufe der Zeit können Rechnungen, Aufträge und viele andere zugehörige Datenobjekte in dem ERP-System erstellt werden - und auch in zugehörigen Systemen wie einem Customer-Relationship-Management-System (CRM), einem Supply-Chain-Management-System (SCM), einem Logistiksystem und so weiter. Auch all diese Systeme können die duplizierten Kundendatensätze verwenden. Wenn jemand einem Kunden zum Beispiel auf der Grundlage eines kumulierten Auftragswerts einen Nachlass geben möchte, erfordert dies, dass die mit unterschiedlichen Kundendaten gesicherten Aufträge zusammengefasst werden, eine Funktionalität, die in den heutigen ERP-Systemen möglicherweise nicht vorhanden ist.
  • Das beschriebene Problem ist jedoch nicht nur in Datenbanken vorhanden, die Kundendaten und dergleichen speichern, sondern auch in Datenbanken für hoch technische Anwendungen, z.B. Konfigurationsmanagement-Datenbanken (CMDB), die verwendet werden, um den Zugriff auf Rechenressourcen zu steuern, zu priorisieren und zu gestatten oder zu verweigern.
  • Es gibt mehrere Offenbarungen in Bezug auf ein durch einen Computer ausgeführtes Verfahren zur Deduplizierung eines Speichersystems für Einträge. Das Schriftstück US 2017/0308557 A1 offenbart ein Verfahren und ein System, um Daten in einer Datenbank zu bereinigen und zu deduplizieren. Das Verfahren umfasst ein Filtern von Garbage-Datensätzen aus einer Mehrzahl von Datensätzen auf der Grundlage von Datenfeldern und ein Anwenden von Bereinigungsregeln, um eine bereinigte Datenbank zu erstellen. Ein Ähnlichkeitsvektor wird erzeugt, wobei jeder Vektor einem paarweisen Vergleich von fernen Dateneinträgen in der bereinigten Datenbank entspricht. Abgleichsregeln werden angewandt, um jeden Vektor entweder als ‚übereinstimmend‘, ‚ohne Entsprechung‘ oder ‚nicht klassifiziert‘ zu kennzeichnen.
  • Ferner offenbart das Schriftstück US 2017/0011088 A1 ein Verfahren, um Dubletten in einer Datenbank zu finden, die berechnete Hashwerte für mindestens zwei Feldgruppen für Datensätze in der Datenbank aufweist, wobei eine Feldgruppe mindestens zwei Felder der Datensätze aufweist und ein Hashwert der wenigen Gruppen für einen Datensatz auf den Werten in den mindestens zwei Jahren der jeweiligen Feldgruppe beruht, die in dem jeweiligen Datensatz gespeichert ist.
  • Diese bekannten Ansätze, um dem Problem zu begegnen, wie vorstehend erläutert wurde, können jedoch die Schwierigkeiten nicht lösen, mit denen Organisationen für Unternehmensinformationen konfrontiert sind, wenn sie es mit mehreren Einträgen in einer Datenbank zu tun haben, die Unternehmens- und/oder technische Anwendungen nahtlos und problemlos unterstützt.
  • Daher kann es notwendig sein, das vorstehend beschriebene technische Problem zu überwinden und eine erweiterte Lösung bereitzustellen, um Entitäten korrekt zu speichern und eindeutig anzugeben, die sich auf dieselben und/oder unterschiedliche Datenobjekte beziehen.
  • KURZDARSTELLUNG
  • Gemäß einem Aspekt der vorliegenden Erfindung kann ein durch einen Computer ausgeführtes Verfahren, um Einträge in einem Datenbanksystem eindeutig anzugeben, bereitgestellt werden. Dieses Verfahren kann ein Speichern von Datenelementen in einer Tabelle einer Datenbank, wobei die Datenelemente als Datensätze gespeichert werden, die eine Mehrzahl von Attributen aufweisen, ein Speichern von Benennungsregeln für ausgewählte Kombinationen der Attribute des Datenelements und ein Priorisieren der Benennungsregeln umfassen. Das Verfahren kann auch ein Ermitteln eines Hashwerts für jede der ausgewählten Kombinationen der Attribute des Datenelements und ein Angeben von doppelten Datenelementen unter Verwendung der ermittelten Hashwerte und der priorisierten Benennungsregeln umfassen.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung kann ein Datenbanksystem bereitgestellt werden, das dazu dient, Einträge in dem Datenbanksystem eindeutig anzugeben. Das Datenbanksystem kann erste Speichermittel, die so ausgelegt sind, dass sie Datenelemente in einer Tabelle eines Datenbanksystems speichern, wobei die Datenelemente als Datensätze gespeichert werden, die eine Mehrzahl von Attributen aufweisen, zweite Speichermittel, die so ausgelegt sind, dass sie Benennungsregeln für ausgewählte Kombinationen der Attribute des Datenelements speichern, und Priorisierungsmittel, die so ausgelegt sind, dass sie die Benennungsregeln priorisieren, aufweisen. Das Datenbanksystem kann auch Ermittlungsmittel, die so ausgelegt sind, dass sie einen Hashwert für jede der ausgewählten Kombinationen der Attribute des Datenelements ermitteln, und Angabemittel, die so ausgelegt sind, dass sie unter Verwendung der ermittelten Hashwerte und der priorisierten Benennungsregeln doppelte Datenelemente angeben, aufweisen.
  • Das vorgeschlagene, durch einen Computer ausgeführte Verfahren für eine Ausführung eines statusunabhängigen Service auf einem Knoten in einer Arbeitslastumgebung kann mehrere Vorteile, technische Wirkungen, Beiträge und/oder Verbesserungen bieten:
  • Das Problem von doppelten Dateneinträgen in dem Sinn, dass zwei Datensätze dieselbe physische Entität angeben, wird erfolgreich angegangen. Die vorgeschlagene Lösung beruht auf einem Verwenden eines Schlüssels mit mehreren Werten und von Benennungsregeln sowie einer Priorisierung der Benennungsregeln zusammen mit einer Ermittlung eines Hashwerts für die ausgewählten Kombinationen von Attributen des Datenelements, um Entitäten in der Datenbank eindeutig anzugeben. Dadurch kann das Problem der Verwendung von klassischen Unternehmensdatenverwaltungssystemen (z.B. kommerziellen Datenbanken) sowie technischen Datenbanken (z.B. CMDB), die mehrere Datensätze gespeichert haben, welche dieselbe physische Entität angeben sollen, gelöst werden.
  • Für die Verwaltung von Unternehmensinformationen wird es so viel leichter, doppelte, aber leicht voneinander abweichende Einträge in einem Datenbanksystem zu entfernen, wenn dieselbe eindeutige physische Entität beschrieben werden soll. Das vorgeschlagene Verfahren und System stützt sich auf das Konzept und funktioniert automatisch und autonom, sobald es eingerichtet ist. Zum Beispiel können doppelte Einträge automatisch angegeben und ohne zusätzlichen manuellen Eingriff im erforderlichen Umfang zusammengeführt und vordefiniert werden.
  • Im Gegensatz zu Deduplizierungsbemühungen in Sicherungs- oder Archivsystemen kann das vorgeschlagene Konzept für Onlinetransaktionsdatenbanksysteme besonders nützlich sein. Jedoch kann das vorgeschlagene Verfahren auch in anderen Umgebungen vorteilhaft verwendet werden. Aufgrund der ständig wachsenden Anzahl von Quellen für zusätzliche Daten in Datenverarbeitungsumgebungen von Unternehmen kann das vorgeschlagene Konzept dazu beitragen, geistiges Eigentum von Unternehmen im Hinblick auf Kunden-, Zielkunden- und Produktidentitäten sowie technische Daten besser zu verwalten, die verwendet werden, um große und komplexe IT-Einheiten oder Netzwerke von Unternehmen zu verwalten, darunter persönliche Einheiten und Vor-Ort-Datenverarbeitungssysteme sowie Datenverarbeitungsressourcen, auf die aus der Ferne zugegriffen werden kann (z.B. im Sinne von Cloud-Computing-Konzepten).
  • Im Folgenden werden zusätzliche Ausführungsformen des erfindungsgemäßen Konzepts - die sowohl auf das erfindungsgemäße Verfahren als auch das zugehörige Datenbanksystem anwendbar sind - beschrieben.
  • Gemäß einer einzelnen nützlichen Ausführungsform des Verfahrens kann es sich bei dem Datenbanksystem um ein relationales Datenbanksystem handeln. Dies kann die häufigste Anwendung darstellen. Bei dem vorgeschlagenen Konzept können jedoch andere Arten von Datenbanken oder Speicherkonzepten für die vorgeschlagene technische Idee verwendet werden, wie beispielsweise objektorientierte Datenbanken, Graph-Datenbanken, hierarchische Datenbanken, ein Flatfile-System, das Datensätze speichert, und so weiter.
  • Gemäß einer weiteren nützlichen Ausführungsform des Verfahrens kann es sich bei dem Datenbanksystem um eine Konfigurationsmanagement-Datenbank (CMDB) handeln. Solche Datenbanken können einer bestimmten internen Organisation unterliegen und insbesondere zur Verwaltung von technischen Einheiten und Anwendungen in Rechenzentren verwendet werden. Somit kann das vorgeschlagene Konzept auf verschiedenen technischen Gebieten problemlos verwendet werden.
  • Gemäß einer vorteilhaften Ausführungsform kann das Verfahren auch ein Zusammenführen der angegebenen doppelten Datenelemente umfassen, indem es die ermittelten Hashwerte als einen Schlüssel mit mehreren Werten für ein zusammengeführtes - d.h. kombiniertes - Datenelement verwaltet. Daher kann das Konzept des Schlüssels mit mehreren Werten in Datenbanksystemen hier eine solide technische Grundlage für die Ausführung des hier vorgeschlagenen Konzepts bilden.
  • Gemäß einer erweiterten Ausführungsform kann das Verfahren auch ein Zusammenführen von anderen Datenelementen umfassen, die mit den angegebenen Datenelementen in einer Verbundbeziehung stehen. Daher stehen gegebenenfalls nicht nur die Anwendungsdatenfelder selbst direkt in Beziehung zueinander, sondern auch abhängige Daten - d.h., diejenigen, die in Verbundbeziehung mit dem angegebenen duplizierenden Datenelement stehen, können zusammengeführt werden, so dass auf alle Daten, die Eigenschaften einer Entität beschreiben, gemeinsam und eindeutig zugegriffen werden kann.
  • Gemäß einer weiteren vorteilhaften Ausführungsform kann das Verfahren auch ein Verwalten eines Zeigers auf eine gleiche Zeilenkennung - d.h. Zeilen-ID - des zusammengeführten - d.h. kombinierten - Datenelements für die ermittelten Hashwerte umfassen. Dadurch kann eine Eindeutigkeit eines Primärschlüssels verwaltet werden, und die Zeilen-IDs können zum realen Primärschlüssel in der Tabelle der Datenbank werden. Jedoch sind sie für den Datenbankbenutzer überhaupt nicht sichtbar. Alternativ können sie für den Datenbankbenutzer sichtbar, durch den Datenbankbenutzer aber nicht veränderbar sein.
  • Gemäß einer weiteren erweiterten Ausführungsform kann das Verfahren auch ein Verwalten eines Index der Tabelle und ein Verwalten eines Zeigers in einem auf den Index bezogenen Suchbaum umfassen, so dass der Zeigerwert bei kombinierten Datenelementen auf dieselben Datensatzkennungen zeigen kann. Folglich kann das hier vorgeschlagene Konzept auch für schnelle Suchläufe in der Datenbank dargelegt werden. Die zentrale angewandte Idee verlangsamt nicht die Arbeitsweise von Suchbäumen. Dies wird erreicht, indem man den Zeigern in verschiedenen Verzweigungen des Indexbaums denselben Wert gibt.
  • Gemäß einer noch weiter erweiterten Ausführungsform kann das Verfahren auch ein Verwenden einer „Erstellungs-SQL-Anweisung“ - die hiermit neu definiert wird - umfassen, welche für ein Erstellen der Benennungsregel und ihrer zugehörigen Priorität ausgelegt ist. Daher kann ein Benutzer oder ein Anwendungsprogramm (z.B. über eine API) die Benennungsregeln und die zugehörige Priorität nach Bedarf für eine bestimmte Anwendung oder Namenskonventionen, die üblicherweise verwendet werden, um Entitäten anzugeben, welche durch Datenelemente beschrieben werden, erstellen.
  • Gemäß einer einzelnen zulässigen Ausführungsform kann das Verfahren auch ein Verwenden eines Primärschlüssels mit mehreren Werten für ein Sortieren von Datensätzen in der Tabelle der Datenbank umfassen. Somit wird das vorgeschlagene Konzept üblicherweise nicht in der Art von normalen Datenbanktabellenoperationen verwendet und üblicherweise nicht auf Tabellen von herkömmlichen Datenbanksystemen angewandt.
  • Gemäß einer weiteren zulässigen Ausführungsform des Verfahrens kann ein Primärschlüssel mit mehreren Werten zur Clusterbildung von Clusterdaten auf Datenbanksteuerkomponenten mit mehreren Knoten verwendet werden. Somit kann das vorgeschlagene Konzept auch auf komplexere und verteilte Arten von Datenbanken erweiterbar sein.
  • Gemäß einer weiteren nützlichen Ausführungsform des Verfahrens kann ein Primärschlüssel mit mehreren Werten mit einem Spaltendatenelement mit einem einzelnen Wert vergleichbar sein. Daher können bekannte Operationen wie tabellenübergreifende Datenfeldvergleiche - wie sie aus herkömmlichen Datenbanken bekannt sind - auch im Rahmen des hier vorgeschlagenen technischen Konzepts anwendbar sein.
  • Gemäß einer zusätzlich erweiterten Ausführungsform kann das Verfahren auch ein Erfassen von statistischen Datenbankdaten für Datenblöcke für einen Primärschlüssel mit einem einzelnen Wert und für Primärschlüssel mit mehreren Werten umfassen. Folglich besteht das technische Konzept des Verfahrens nicht nur darin, Datenbanksysteme gemäß bewährten Verfahren zu verwalten, sondern auch die Verwendung von statistischen Verfahren zu gestatten, um das zugrunde liegende Datenbankverwaltungssystem einschließlich der Schlüssel mit mehreren Werten besser zu verwalten.
  • Darüber hinaus können Ausführungsformen die Form eines zugehörigen Computerprogrammprodukts annehmen, auf das von einem durch einen Computer verwendbaren oder durch einen Computer lesbaren Datenträger aus zugegriffen werden kann, der Programmcode zur Verwendung durch einen Computer oder ein beliebiges Anweisungsausführungssystem oder in Verbindung mit einem Computer oder einem beliebigen Anweisungsausführungssystem bereitstellt. Zum Zweck dieser Beschreibung kann ein durch einen Computer verwendbarer oder durch einen Computer lesbarer Datenträger eine beliebige Vorrichtung sein, die Mittel enthalten kann, um das Programm zur Verwendung durch das Anweisungsausführungssystem, die Anweisungsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit dem Anweisungsausführungssystem, der Anweisungsausführungsvorrichtung oder -einheit zu speichern, zu übertragen, weiterzugeben oder zu transportieren.
  • KURZBESCHREIBUNG DER DIVERSEN ANSICHTEN DER ZEICHNUNGEN
  • Es sei angemerkt, dass Ausführungsformen der Erfindung unter Bezugnahme auf verschiedene Gegenstände beschrieben werden. Insbesondere werden einige Ausführungsformen unter Bezugnahme auf Verfahrensansprüche beschrieben, wohingegen andere Ausführungsformen unter Bezugnahme auf Vorrichtungsansprüche beschrieben werden. Der Fachmann entnimmt der vorstehenden und der nachfolgenden Beschreibung jedoch, dass, vorbehaltlich anderer Angaben, neben jeder beliebigen Kombination aus Merkmalen, die zu einem Typ von Gegenstand gehören, auch jede beliebige Kombination zwischen Merkmalen, die sich auf verschiedene Gegenstände beziehen, insbesondere zwischen Merkmalen der Verfahrensansprüche und Merkmalen der Vorrichtungsansprüche, als eine in diesem Schriftstück zu offenbarende Kombination betrachtet wird.
  • Die vorstehend definierten Aspekte und weitere Aspekte der vorliegenden Erfindung gehen aus den Beispielen von Ausführungsformen, die nachstehend zu beschreiben sind, hervor und werden unter Bezugnahme auf die Beispiele von Ausführungsformen erklärt, auf welche die Erfindung jedoch nicht beschränkt ist.
  • Die folgende ausführliche Beschreibung, die als Beispiel dient und die beispielhaften Ausführungsformen nicht allein darauf beschränken soll, lässt sich am besten in Verbindung mit den beiliegenden Zeichnungen verstehen, in denen:
    • 1 ein Blockschaubild einer Ausführungsform des erfindungsgemäßen, durch einen Computer ausgeführten Verfahrens zeigt, um Entitäten in einem Datenbanksystem eindeutig anzugeben.
    • 2a eine Tabelle zeigt, die verschiedene Datensätze für dieselbe physische Entität zeigt.
    • 2b eine Tabelle zeigt, die das Problem eines Nachlasses auf eine Gesamtabnahmemenge veranschaulicht.
    • Die 3a, 3b und 3c hierarchisch organisierte Datenbanktabellen mit beispielhaften Feldern, Name, Adresse und Auftragsdaten zeigen.
    • Die 4a und 4b Einträge von Datenbanktabelleneinträgen zeigen, die auf der Grundlage eines eindeutigen Attributs zusammengeführt werden sollen.
    • Die 4c und 4d Einträge von Datenbanktabelleneinträgen zeigen, die auf der Grundlage einer Benennungsregel zusammengeführt werden sollen.
    • Die 5a und 5b Einträge von Datenbanktabelleneinträgen zeigen, die zusammen mit einem zugehörigen Indexbaum zusammengeführt werden sollen.
    • Die 6a und 6b Einträge von Datenbanktabelleneinträgen zeigen, die nach einer Benennungsregel zusammen mit einem zugehörigen Indexbaum zusammengeführt werden sollen.
    • 7 ein Blockschaubild einer Ausführungsform des Datenbanksystems zeigt, das dazu dient, Entitäten in einem Datenbanksystem eindeutig anzugeben.
    • 8 ein beispielhaftes Blockschaubild zeigt, das die Hardwarekomponenten des Datenverarbeitungssystems, welches das Datenbanksystem nach 7 aufweist, gemäß den beispielhaften Ausführungsformen darstellt.
    • 9 eine Cloud-Computing-Umgebung gemäß den beispielhaften Ausführungsformen zeigt.
    • 10 Abstraktionsmodellschichten gemäß den beispielhaften Ausführungsformen darstellt.
  • Die Zeichnungen sind nicht unbedingt maßstabsgetreu. Bei den Zeichnungen handelt es sich lediglich um schematische Darstellungen, die keine bestimmten Parameter der beispielhaften Ausführungsformen wiedergeben sollen. Die Zeichnungen sollen lediglich typische beispielhafte Ausführungsformen darstellen. In den Zeichnungen stellt eine gleiche Nummerierung gleiche Elemente dar.
  • AUSFÜHRLICHE BESCHREIBUNG DER DIVERSEN ANSICHTEN DER ZEICHNUNGEN
  • Ausführliche Ausführungsformen der beanspruchten Strukturen und Verfahren werden hierin offenbart; jedoch kann darauf hingewiesen werden, dass die offenbarten Ausführungsformen lediglich veranschaulichend für die beanspruchten Strukturen und Verfahren sind, welche in verschiedenen Formen verkörpert sein können. Die beispielhaften Ausführungsformen sind lediglich veranschaulichend und können jedoch in vielen verschiedenen Formen verkörpert sein und sollten nicht als auf die hierin dargelegten beispielhaften Ausführungsformen beschränkt ausgelegt werden. Vielmehr werden diese beispielhaften Ausführungsformen bereitgestellt, damit diese Offenbarung gründlich und vollständig ist und dem Fachmann den durch die beispielhaften Ausführungsformen abzudeckenden Umfang vollständig vermittelt. In der Beschreibung werden Einzelheiten von hinlänglich bekannten Merkmalen und Techniken gegebenenfalls weggelassen, um die dargestellten Ausführungsformen nicht unnötig zu überfrachten.
  • Verweise in der Spezifikation auf „eine einzelne Ausführungsform“, „eine Ausführungsform“, „eine beispielhafte Ausführungsform“ usw. zeigen an, dass die beschriebene Ausführungsform ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft umfassen kann, jede Ausführungsform das/die bestimmte Merkmal, Struktur oder Eigenschaft gegebenenfalls aber nicht unbedingt umfasst. Überdies beziehen sich diese Formulierungen nicht zwangsläufig auf die gleiche Ausführungsform. Des Weiteren, wenn ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, versteht es sich, dass es innerhalb des Wissens des Fachmanns liegt, ein(e) solche(s) Merkmal, Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen auszuführen, unabhängig davon, ob es/sie ausdrücklich beschrieben ist oder nicht.
  • Um die Darstellung der beispielhaften Ausführungsformen nicht zu überfrachten, wurden in der folgenden ausführlichen Beschreibung einige in der Technik bekannte Verarbeitungsschritte oder Operationen zu Darstellungs- und Veranschaulichungszwecken gegebenenfalls miteinander kombiniert und in manchen Fällen gegebenenfalls nicht ausführlich beschrieben. In anderen Fällen werden einige in der Technik bekannte Verarbeitungsschritte oder Operationen gegebenenfalls überhaupt nicht beschrieben. Es sollte klar sein, dass sich die folgende Beschreibung auf die charakteristischen Merkmale oder Elemente gemäß den verschiedenen beispielhaften Ausführungsformen konzentriert.
  • Im Kontext dieser Beschreibung werden gegebenenfalls die folgenden Konventionen, Begriffe und/oder Ausdrücke verwendet:
  • Der Begriff „eindeutiges Angeben“ kann die Fähigkeit bezeichnen, physische Elemente eindeutig durch ein zugehöriges Datenelement nicht austauschbar anzugeben. Einfach ausgedrückt, es sollte keine zwei Datenelemente geben, die auf dieselbe physische Entität zeigen.
  • Der Begriff „Entität“ kann ein durch ein Datenelement anzugebendes und/oder zu adressierendes physisches Objekt bezeichnen, z.B. einen Datensatz einer Datenbank.
  • Der Begriff „Datenbanksystem“ kann eine Speichereinheit - entweder physisch oder logisch - bezeichnen, die so ausgelegt ist, dass sie Datenelemente speichert. Beispiele für ein Zustellungssystem können ein relationales Datenbanksystem, ein hierarchisches Datenbanksystem, ein Flatfile-System, eine Graph-Datenbank und/oder eine Objektdatenbank oder eine Kombination des Vorstehenden sein. Im Allgemeinen kann das vorgeschlagene Konzept in einer großen Vielfalt an unterschiedlichen Datenbanken funktionieren.
  • Der Begriff „relationales Datenbanksystem“ kann ein Datenbanksystem bezeichnen, das gemäß den Regeln von C.F. Codd organisiert ist. Ein relationales Datenbanksystem kann eine Speichereinheit bezeichnen, der es ermöglicht wird, Daten vorzugsweise in Datensätzen mit jeweils einer festen oder variablen Länge zu speichern. Üblicherweise - und besonders in relationalen Datenbanksystemen - sind Daten in Tabellen organisiert, die über Zeilen verfügen. Jede Zeile kann einen Datensatz mit Attributen darstellen. Verschiedene Datensätze von verschiedenen Tabellen können in Beziehung gesetzt werden, indem Auswahlregeln auf die Attribute angewandt werden.
  • Der Begriff „Attribut“ kann ein Feld in einem Datensatz einer Tabelle in einem Datenbanksystem bezeichnen.
  • Der Begriff „Benennungsregel“ kann Beschränkungen oder ein Interpretationsgerüst bezeichnen, das auf Attribute eines Datensatzes angewandt werden soll. Die Benennungsregeln können so formuliert werden, dass sie ähnliche, aber unterschiedliche Datenelemente zueinander in Beziehung setzen.
  • Der Begriff „Priorisierung der Benennungsregeln“ kann ein Definieren einer Abfolge der verfügbaren Benennungsregeln gemäß ihrer Wichtigkeit für ein bestimmtes Attribut oder eine Kombination daraus bezeichnen.
  • Der Begriff „Hashwert“ kann eine Abbildung eines Datenfelds variabler Länge (z.B. eines Textfelds) auf ein Datenfeld fester Länge, z .B. einen ganzzahligen Wert, bezeichnen. Die Abbildung kann üblicherweise unter Verwendung einer Hashfunktion oder einer Hashtabelle durchgeführt werden.
  • Der Begriff „doppeltes Datenelement“ kann den Prozess des Entfernens von Datenelementen bezeichnen, die sich auf dieselbe physische Entität beziehen, bei bestimmten Attributen anstelle von identischen Werten gegebenenfalls aber nur ähnliche Werte haben. Es sollte jedoch angemerkt werden, dass die ähnlichen Werte des Attributs nicht entfernt werden, sondern nur redundante Informationen und andere Attribute.
  • Der Begriff „Schlüssel mit mehreren Werten“ kann das Konzept bezeichnen, bei dem es anstelle von nur einem Wert gemäß herkömmlichen Regeln mehr als einen Wert in einem Schlüsselattribut-Feld gibt. Die Eindeutigkeit kann nun nicht mehr über dieses bestimmte Attribut definiert werden, sondern wird über eine Zeilen-ID definiert, auf die ein Benutzer keinen manipulativen Zugriff haben darf.
  • Der Begriff „Verbundbeziehung“ kann im Sinne von UML (Universal Markup Language) interpretiert werden. Eine Verbundbeziehung kann einen bestimmten Fall einer Zuordnung darstellen. Sowohl bei der Aggregation als auch der Komposition „besitzt“ ein Objekt einer Klasse ein anderes Objekt einer höheren Klasse. Als Beispiel kann es ein Zimmer nicht ohne ein Haus geben. Somit haben die beiden Objekte Zimmer/Haus eine Verbundbeziehung.
  • Der Begriff „Zeilenkennung“ kann eine eindeutige Kennung in einer bestimmten Tabelle einer Datenbank bezeichnen, die einen bestimmten Datensatz eindeutig angibt. Die Zeilenkennung, d.h. Zeilen-ID, kann als Ersatz für einen ursprünglichen Primärschlüssel verwendet werden, der möglicherweise durch einen Primärschlüssel mit mehreren Werten ersetzt wurde.
  • Der Begriff „Index“ kann einen Mechanismus bezeichnen, der dazu dient, eine Zugriffsgeschwindigkeit auf einzelne Datensätze in einer Datenbanktabelle, insbesondere bei Suchoperationen, zu erhöhen. Blätter des Indexbaums können Zeiger auf bestimmte Datensätze, z.B. auf bestimmte Zeilen-IDs, aufweisen.
  • Der Begriff „SQL-Anweisung“ kann einen Befehl in der für Datenbanken verwendeten Programmiersprache mit der Bezeichnung Structured Query Language (SQL) bezeichnen.
  • Im Folgenden werden die Figuren ausführlich beschrieben. Alle Anweisungen in den Figuren sind schematisch. Zunächst ist ein Blockschaubild einer Ausführungsform des erfindungsgemäßen, durch einen Computer ausgeführten Verfahrens, um Entitäten in einem Datenbanksystem eindeutig anzugeben, gezeigt. Anschließend werden weitere Ausführungsformen sowie Ausführungsformen des Datenbanksystems, das dazu dient, Entitäten in dem Datenbanksystem eindeutig anzugeben, beschrieben.
  • 1 zeigt ein Blockschaubild einer bevorzugten Ausführungsform des durch einen Computer ausgeführten Verfahrens 100, um Entitäten in einem Datenbanksystem eindeutig anzugeben. Das Verfahren 100 umfasst ein Speichern, 102, von Datenelementen in einer Tabelle einer Datenbank - insbesondere in Form von Datensätzen in einer relationalen Datenbank, aber auch in einem beliebigen anderen Speicherformat. Die Datenelemente werden als Datensätze gespeichert, die eine Mehrzahl an Attributen fester bzw. variabler Länge aufweisen.
  • Das Verfahren 100 umfasst ein Speichern, 104, von Benennungsregeln - insbesondere von mindestens zwei Regeln für zwei Kombinationen von Attributen - für ausgewählte Kombinationen der Attribute des Datenelements. Es sei darauf hingewiesen, dass eine Kombination auch nur auf ein Attribut bezogen sein kann.
  • Darüber hinaus umfasst das Verfahren 100 ein Priorisieren, 106, der Benennungsregeln, d.h., ein Definieren einer Abfolge von deren Anwendung oder ein Definieren einer Reihenfolge der Regeln. Die Periodisierung soll abhängig von ihrer Wichtigkeit für die Entitätsangabe sein.
  • Dann umfasst das Verfahren 100 ein Ermitteln, 108, eines Hashwerts - unter Verwendung einer Hashfunktion - für jede der ausgewählten Kombinationen der Attribute des Datenelements und ein Angeben, 110, von doppelten Datenelementen - insbesondere von mindestens einem Datensatz - unter Verwendung der ermittelten Hashwerte und der priorisierten Benennungsregeln.
  • Anders ausgedrückt, Benennungsregeln stellen eine Möglichkeit zur eindeutigen Angabe einer gegebenen Entität dar. Benennungsregeln beruhen auf Entitätsattributen. Um zum Beispiel den Kunden anzugeben, kann man seinen Namen verwenden. In den meisten Fällen reicht der bloße Kundenname zur Unterscheidung von Kunden aus. Somit kann dies die erste Benennungsregel sein. Die nächste Benennungsregel kann die Steuerkennung eines Kunden verwenden, die zuweilen auch als Arbeitgeberidentifikationsnummer (EIN, employer identification number) bezeichnet wird.
  • Benennungsregeln können auch auf einem Satz von Attributen beruhen, so wäre eine gute Benennungsregel zum Beispiel diejenige, die auf dem Namen eines Kunden und seiner zugehörigen EIN beruht.
  • Benennungsregeln für eine gegebene Entität sollen auf der Grundlage ihrer jeweiligen Wichtigkeit sortiert werden. Zum Beispiel ist eine auf der EIN beruhende Benennungsregel besser, weil es nahezu unmöglich ist, dass man zwei Kunden mit derselben EIN hat. Sie ist auch wichtiger, da, wenn die Person, die einen Datensatz für einen Kunden in dem System erstellt, Zugriff auf eine EIN-Datenbank (oder -Datenbanktabelle) hat, diese Person wahrscheinlich auch Zugriff auf andere relevante Kundendaten hat. Daher stellt jemand, der nur den Namen des Kunden, nicht aber seine zugehörige EIN kennt, keine sehr gute Quelle von Kundendaten dar. Deshalb sollen Benennungsregeln, die lediglich auf dem Kundennamen beruhen, eine vergleichsweise niedrige Priorität haben.
  • Benennungsregeln werden für eine gegebene Tabelle erstellt und durch die Datenbanksteuerkomponente automatisch berücksichtigt und angewandt. Wenn man einen Datensatz für eine Tabelle eingibt, listet das Datenbanksystem alle anwendbaren Benennungsregeln (d.h. oder Namenswörter, die auf Attributen beruhen, bei denen es sich nicht um Null-Attributwerte handelt) auf. Die Datenbanksteuerkomponente stellt dann fest, dass der Wert einer jeden Benennungsregel ein auf verknüpften Attributwerten beruhender Hashwert ist.
  • Zum Beispiel kann man für einen Kunden die vorstehend erwähnte erste Benennungsregel verwenden und ihren Wert ermitteln als
    NR1 = Hash(Kundenname) = Hash(ABC) = UUID1 und
    NR2 = Hash(Kunden-EIN) = Hash(EIN1234) = UUID2.
  • Damit können beide Werte als Primärschlüssel eines gegebenen Datensatzes verwendet werden. Ein Datensatz kann viele Namenswörter enthalten und folglich kann es viele Primärschlüssel geben (im Gegensatz zu der ursprünglichen, historischen Definition des Primärschlüssels in Datenbanken). Der zugehörige Datensatz kann jetzt durch einen jeden von ihnen aufgefunden und angegeben werden, so dass jeder von ihnen ein gleichermaßen wichtiger Primärschlüssel ist. Die Lösung für diesen möglichen vordergründigen Konflikt besteht in der Verwendung von eindeutigen Zeilen-IDs als den wahren eindeutigen Primärschlüsseln, die für Datenbankbenutzer üblicherweise jedoch nicht zugänglich sind.
  • Da man mehrere Werte als Primärschlüssel hat, kann man ihn auch als Fremdschlüssel verwenden. Um also Beschränkungen für Fremdschlüssel zu erstellen, kann man ZEILEN-IDs (eindeutige Zeilenkennungen) einer Zeile verwenden, bei denen es sich um eine gegebene zeileninterne Kennung handelt, die - unter bestimmten Umständen - für den Datenbankbenutzer sichtbar sein kann, jedoch sollte sie nie in Abfragen von Datenbankbenutzern verwendet werden. Die Datenbanksteuerkomponente oder das Datenbanksystem kann diese Aktivität unterbinden.
  • 2a zeigt Datenbanktabelleneinträge, die verschiedene Datensätze für dieselbe physische Entität zeigen. Weiterer erläuternder Text in Bezug auf diese Figur kann dem Abschnitt ‚Hintergrund‘ dieses Schriftstücks entnommen werden. Die Spalte PK bezieht sich auf die gezeigte Kundenkennung CID1, CID2, CID3 der Primärschlüssel in Bezug auf die Kundennamen ABC, A-B-C und ABC Ltd., die - in diesem Beispiel - als dieselbe physische Entität, d.h. derselbe Kunde, bezeichnet werden kann. In diesem Beispiel ist der Kunde mit zwei ähnlichen, aber nicht ganz identischen EIN-Nummern EIN1234 und EIN-1234 gezeigt.
  • 2b zeigt Datenbanktabelleneinträge, die das Problem eines Nachlasses auf eine Abnahmemenge veranschaulichen. Der Text, der das Problem beschreibt, kann dem Abschnitt ‚Hintergrund‘ dieses Schriftstücks entnommen werden. Somit zeigt 2b eine Auftragserfassungstabelle mit einer Primärschlüssel-Auftragserfassung (IODi), einer Auftragsnummer, einer Kundenkennung und einem Auftragswert je Spalte. Die Verbindung zwischen den beiden Tabellen beruht auf der Kundenkennung, wie durch den Pfeil angegeben ist. Alle weiteren Beispiele von Tabellen und Datenbankeinträgen in Datensatzform sollten in diesem beschriebenen Sinn interpretiert werden.
  • Die 3a, 3b und 3c zeigen hierarchisch organisierte Datenbanktabellen mit den beispielhaften Feldern: Name, Adresse und Auftragsdaten. 3a zeigt, dass die beiden Kunden (möglicherweise identisch) in der Datenbank registriert sind. 3b zeigt zugehörige Adressen der Kunden von 3a. Jeder von ihnen hat einen Auftrag, wie in 3c gezeigt ist.
  • Nehmen wir an, dass jemand einen neuen Kunden namens „ABC“ mit „EIN1234“ anlegen möchte. Dies ist in den folgenden Figuren gezeigt.
  • Die 4a und 4b zeigen Einträge von Datenbanktabelleneinträgen, die auf der Grundlage eines eindeutigen Attributs zusammengeführt werden sollen. Infolge einer solchen Zusammenführung von Datensätzen müssen zwei vorhandene Kundendatensätze zusammengeführt werden - insbesondere derjenige der ersten Zeile der Tabelle von 4a und derjenige mit dem dritten Datensatz in der Tabelle von 4a, wie durch die Ellipse auf der rechten Seite in 4a angegeben ist. Das Attribut „Name“ entstammt der dritten Zeile, die mit einer Benennungsregel erstellt wurde, welche eine höhere Priorität definiert (man beachte, dass in der dritten Zeile das EIN-Attribut gesetzt ist, das eine höhere Priorität hat), so dass „ABC“ als Name beibehalten wird. Das EIN-Feld ist in der ersten Zeile leer, so dass der Wert aus der zweiten Zeile in den zusammengeführten Datensätzen beibehalten wird. Folglich hat man einen Eintrag mit einem doppelten Primärschlüssel CNR1#A, CNR2#B, aber mit einer als RowlD (Zeilenkennung) gezeigten echten eindeutigen Kennung.
  • Die 4c und 4d zeigen Einträge von Datenbanktabelleneinträgen, die auf der Grundlage einer Benennungsregel in einem übergeordneten Kontext zusammengeführt werden sollen. Üblicherweise werden Adressen in einem Kontext des Kunden „benannt“. Das bedeutet, dass es sie ohne ein übergeordnetes Objekt, d.h. ein Objekt „Kunde“, nicht geben kann. Dies ist in der Adressen-Benennungsregel angegeben, in der „Kunde“ als das erste Attribut definiert ist. Da übergeordnete Objekte zusammengeführt werden sollten (Kunden), muss festgestellt werden, ob auch abhängige Objekte (im Kontext eines Kunden benannte Objekte, d.h. hier die Adresse) zusammengeführt werden müssen.
  • 4c und 4d beziehen sich auf solch einen Kontext, in dem die Attribute „Straße“ und „Stadt“ zusammengeführt werden, so dass die Primärschlüssel mit mehreren Werten ANR1#A und ANR1#B unter der eindeutigen Zeilen-ID ARID1 erstellt werden.
  • Daher kann man feststellen, dass zusammengeführte Kunden zwei Adressen mit dem gleichen Attribut „Straße“ und „Stadt“ haben, die zusammengeführt werden können. Der alte Primärschlüsselwert ANR1#B wird ebenfalls beibehalten, da er in anderen Objekten oder sogar in einigen externen Systemen als Verweis verwendet werden könnte. Da er aber unter Verwendung einer vorherigen Zeilen-ID festgestellt wird, besteht kein Risiko eines Konflikts mit anderen Primärschlüsselwerten, was zu einer Überzusammenführung führen könnte. Mit Überzusammenführung wird eine Situation bezeichnet, in der zwei einzelne Objekte, die unterschiedliche Entitäten darstellen, zusammengeführt werden, obwohl sie nicht zusammengeführt werden sollten.
  • Die 5a und 5b zeigen Einträge von Datenbanktabelleneinträgen, die zusammen mit einem zugehörigen Indexbaum zusammengeführt werden sollen. Zusätzlich zu den vorstehend erläuterten Zusammenführungstechniken muss auch eine Eindeutigkeit des Primärschlüssels, trotz seiner Beschaffenheit mit mehreren Werten, unterstützt werden. Grundsätzlich muss eine Mehrzahl von Primärschlüsselwerten gespeichert werden, die auf dieselbe Zeilen-ID zeigen.
  • In einer gegebenen Tabelle können Aliasnamen in einer einzelnen Spalte als eine Sammlung von Aliasnamen gespeichert werden. Wenn ein Index auf diese Spalte erstellt wird, um eine Primärschlüssel-Beschränkung zu verwalten, wird die Liste der Aliasnamen in einzelne Aliasnamen unterteilt und jeder von ihnen wird als ein einzelner Wert in dem Index verwendet. All diese Indexblätter zeigen auf denselben Datensatz in der Tabelle. Dies ist in 5a und 5b gezeigt. In 5a gibt es zwei Blätter des Indexbaums, die sich auf verschiedene Zeilen in der nicht verwalteten Tabelle beziehen, wobei die gleichen zwei Blätter des Indexbaums in 5b jetzt auf denselben Datensatz zeigen, der über den Schlüssel mit mehreren Werten und die eindeutige Zeilen-ID verfügt.
  • Die 6a und 6b zeigen Einträge von Datenbanktabelleneinträgen, die nach einer Benennungsregel zusammen mit einem zugehörigen Indexbaum zusammengeführt werden sollen. Diese Figuren beziehen sich auf den Fall von untergeordneten Tabellen. In diesem Fall wird ein zusätzlicher Index auf der Grundlage eines übergeordneten (oder Eltern-)Aliasnamens erzeugt. Die Liste der übergeordneten Aliasnamen wird in einzelne Aliasnamen unterteilt und jeder von ihnen wird als ein einzelner Wert in dem Index verwendet. Diese Werte werden in Blattknoten gespeichert und zeigen auf einen einzelnen Datensatz in der untergeordneten Tabelle.
  • Die 6a und 6b zeigen Einträge von Datenbanktabelleneinträgen, die nach einer Benennungsregel zusammen mit einem zugehörigen Indexbaum zusammengeführt werden sollen. Bei Adressen hat man einen zusätzlichen Index, der auf dem übergeordneten Attribut „Kunde“ beruht, wie in 6a gezeigt ist.
  • Wenn man 3 untergeordnete Datensätze und 2 übergeordnete Primärschlüssel hat, hat man letzten Endes natürlich 6 Blattknoten, da man alle 3 Zeilen für beide übergeordneten Primärschlüssel CNR1#A und CNR2#B finden muss, wie in 6b gezeigt ist.
  • 7 zeigt ein Blockschaubild einer Ausführungsform des Datenbanksystems 700, das dazu dient, Entitäten in einem Datenbanksystem eindeutig anzugeben. Das Datenbanksystem 700 weist erste Speichermittel - insbesondere eine erste Speichereinheit 702 - auf, die so ausgelegt sind, dass sie Datenelemente in einer Tabelle eines Datenbanksystems speichern, wobei die Datenelemente als Datensätze gespeichert werden, die eine Mehrzahl von Attributen aufweisen.
  • Das Datenbanksystem 700 weist auch zweite Speichermittel - insbesondere eine zweite Speichereinheit 704 -, die so ausgelegt sind, dass sie Benennungsregeln für ausgewählte Kombinationen der Attribute des Datenelements speichern, und Priorisierungsmittel - insbesondere ein Priorisierungsmodul 706 -, die so ausgelegt sind, dass sie die Benennungsregeln priorisieren, sowie Ermittlungsmittel - insbesondere eine Ermittlungseinheit 708 -, die so ausgelegt sind, dass sie einen Hashwert für jede der ausgewählten Kombinationen der Attribute des Datenelements ermitteln, auf.
  • Zu guter Letzt weist das Datenbanksystem 700 Angabemittel - insbesondere ein Angabemodul 710 - auf, die so ausgelegt sind, dass sie unter Verwendung der ermittelten Hashwerte und der priorisierten Benennungsregeln doppelte Datenelemente angeben.
  • Es sei darauf hingewiesen, dass die Module, Einheiten und/oder Mittel für einen Signal- und/oder Nachrichtenaustausch zwischen oder unter ihnen verbunden sein können. Die Verbindung kann entweder als eine Eins-zu-Eins-Verbindung oder unter Verwendung eines internen Bussystems 712 des Datenbanksystems ausgeführt sein. An dieses interne Bussystem 712 des Datenbanksystems können die erste Speichereinheit 702, die zweite Speichereinheit 704, das Priorisierungsmodul 706, die Ermittlungseinheit 708 und das Angabemodul 710 direkt oder indirekt angeschlossen sein.
  • 8 stellt ein Blockschaltbild von Einheiten innerhalb der vorliegenden Erfindung gemäß den beispielhaften Ausführungsformen dar. Es ist darauf hinzuweisen, dass 8 lediglich eine einzelne Ausführung veranschaulicht und keine Einschränkungen in Bezug auf die Umgebungen bedeutet, in denen verschiedene Ausführungsformen ausgeführt werden können. An der dargestellten Umgebung können viele Änderungen vorgenommen werden.
  • Zu hierin verwendeten Einheiten können ein oder mehrere Prozessoren 02, ein oder mehrere durch einen Computer lesbare RAMs 04, ein oder mehrere durch einen Computer lesbare ROMs 06, ein oder mehrere durch einen Computer lesbare Speichermedien 08, Einheitentreiber 12, ein(e) Schreib-/Lese-Laufwerk oder -Schnittstelle 14, ein(e) Netzwerkadapter oder -schnittstelle 16 gehören, die alle über eine Übertragungsstruktur 18 verbunden sind. Die Übertragungsstruktur 18 kann mit einer beliebigen Architektur ausgeführt sein, die dafür ausgelegt ist, Daten und/oder Steuerinformationen zwischen Prozessoren (wie beispielsweise Mikroprozessoren, Übertragungs- und Netzwerkprozessoren usw.), einem Systemspeicher, peripheren Einheiten und beliebigen weiteren Hardware-Komponenten innerhalb eines Systems zu übergeben.
  • Ein oder mehrere Betriebssysteme 10 und ein oder mehrere Anwendungsprogramme 11 sind auf einem oder mehreren der durch einen Computer lesbaren Speichermedien 08 zur Ausführung durch einen oder mehrere der Prozessoren 02 über einen oder mehrere der jeweiligen RAMs 04 (zu denen üblicherweise ein Cache gehört) gespeichert. In der veranschaulichten Ausführungsform kann jedes der durch einen Computer lesbaren Speichermedien 08 eine Magnetplattenspeichereinheit eines internen Festplattenlaufwerks, ein CD-ROM, eine DVD, ein Speicher-Stick, ein Magnetband, eine Magnetplatte, eine optische Platte, eine Halbleiterspeichereinheit wie beispielsweise ein RAM, ROM, EPROM, ein Flash-Speicher oder eine beliebige andere durch einen Computer lesbare, physische Speichereinheit sein, die ein Computerprogramm und digitale Informationen speichern kann.
  • Zu hierin verwendeten Einheiten können auch ein(e) RW-Laufwerk oder -Schnittstelle 14 gehören, um von einem oder mehreren durch einen Computer lesbaren Wechselspeichermedien 26 zu lesen und darauf zu schreiben. Die Anwendungsprogramme 11 auf den Einheiten können auf einem oder mehreren der durch einen Computer lesbaren Wechselspeichermedien 26 gespeichert sein, über das/die jeweilige RW-Laufwerk oder -Schnittstelle 14 gelesen und in die jeweiligen durch einen Computer lesbaren Speichermedien 08 geladen werden.
  • Zu hierin verwendeten Einheiten können auch ein(e) Netzwerkadapter oder -schnittstelle 16 wie beispielsweise eine TCP/IP-Adapterkarte oder ein Drahtloskommunikationsadapter (wie beispielsweise ein 4G-Drahtloskommunikationsadapter, der die OFDMA-Technologie verwendet) gehören. Die Anwendungsprogramme 11 auf den Datenverarbeitungseinheiten können von einem externen Computer oder einer externen Speichereinheit über ein Netzwerk (zum Beispiel das Internet, ein lokales Netzwerk oder ein anderes Weitverkehrsnetz oder drahtloses Netzwerk) und den/die Netzwerkadapter oder-schnittstelle 16 in die Datenverarbeitungseinheit heruntergeladen werden. Von dem/der Netzwerkadapter oder -schnittstelle 16 können die Programme auf die durch einen Computer lesbaren Speichermedien 08 geladen werden. Das Netzwerk kann Kupferkabel, Lichtwellenleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen.
  • Zu hierin verwendeten Einheiten können auch ein Bildschirm 20, eine Tastatur oder ein Ziffernblock 22 und eine Computermaus oder ein Touchpad 24 gehören. Die Einheitentreiber 12 sind über eine Schnittstelle mit dem Bildschirm 20 zur Bilderstellung, mit der Tastatur oder dem Ziffernblock 22, der Computermaus oder dem Touchpad 24 und/oder dem Bildschirm 20 zur Druckerfassung bei der Eingabe von alphanumerischen Zeichen und bei Benutzerauswahlmöglichkeiten verbunden. Die Einheitentreiber 12, das/die RW-Laufwerk oder -Schnittstelle 14 und der/die Netzwerkadapter oder -schnittstelle 16 können Hardware und Software aufweisen (die auf den durch einen Computer lesbaren Speichermedien 08 und/oder dem ROM 06 gespeichert sind).
  • Die hierin beschriebenen Programme werden auf der Grundlage der Anwendung angegeben, für die sie in einer bestimmten Ausführungsform der beispielhaften Ausführungsformen ausgeführt werden. Es ist jedoch darauf hinzuweisen, dass jedwede bestimmte Programm-Nomenklatur hierin lediglich aus Gründen der Zweckmäßigkeit verwendet wird, und somit sollten die beispielhaften Ausführungsformen nicht auf eine ausschließliche Verwendung in einer speziellen Anwendung, die von dieser Nomenklatur angegeben und/oder durch diese Nomenklatur stillschweigend vorausgesetzt wird, beschränkt werden.
  • Auf der Grundlage des Vorstehenden wurden ein Computersystem, ein Verfahren und ein Computerprogrammprodukt offenbart. Jedoch können zahlreiche Änderungen und Ersetzungen vorgenommen werden, ohne vom Umfang der beispielhaften Ausführungsformen abzuweichen. Daher wurden die beispielhaften Ausführungsformen als Beispiel und nicht als Einschränkung offenbart.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing umfasst. Stattdessen können Ausführungsformen gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerken, Netzwerkbandbreite, Servern, Verarbeitung, Arbeitsspeichern, Speichern, Anwendungen, virtuellen Maschinen und Services), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die folgenden:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für den Typ von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die folgenden:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die folgenden:
    • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten umfasst.
  • Unter Bezugnahme auf 9 ist eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt ist, umfasst die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 40, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie beispielsweise ein elektronischer Assistent (PDA, personal digital assistant) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und/oder ein Automobil-Computer-System 54N Daten austauschen können. Die Knoten 40 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 9 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 40 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 10 ist ein Satz von funktionalen Abstraktionsschichten gezeigt, die von der Cloud-Computing-Umgebung 50 (9) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 10 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und die beispielhaften Ausführungsformen nicht darauf beschränkt sind. Wie dargestellt ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Softwareschicht 60 umfasst Hardware- und Softwarekomponenten. Zu Beispielen für Hardwarekomponenten gehören: Mainframe-Computer 61; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen umfassen Softwarekomponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbanksoftware 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die nachstehend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen umfassen. Eine Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und Multimediaänderung 96.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen Integrationsstufe technischer Details handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übermittelte elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmwareanweisungen, zustandssetzende Daten, Konfigurationsdaten für eine integrierte Schaltung oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch einen beliebigen Typ Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field-programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in den Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zur Ausführung der festgelegten logischen Funktion(en) aufweist. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit als ein Schritt durchgeführt, gleichzeitig ausgeführt, im Wesentlichen gleichzeitig ausgeführt, in einer sich teilweise oder ganz zeitlich überlappenden Weise ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung erfolgten zum Zweck der Veranschaulichung, sollen jedoch nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Änderungen und Varianten sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt befindlichen Technologien am besten zu erklären bzw. um anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem Medium kann es sich um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder ein Halbleitersystem für ein Weitergabemedium handeln. Zu Beispielen für einen durch einen Computer lesbaren Datenträger können ein Halbleiter- oder Solid-State-Speicher, ein Magnetband, eine austauschbare Computerdiskette, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), eine magnetische Festplatte und eine optische Platte gehören. Zu aktuellen Beispielen für optische Platten gehören ein Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine CD-RW, eine digitale Videoplatte (DVD) und eine Blu-Ray-Disk.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übermittelte elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch einen beliebigen Typ Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field-programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in den Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zur Ausführung der festgelegten logischen Funktion(en) aufweist. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit weitgehend gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder den festgelegten Schritt durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die hierin verwendete Terminologie dient lediglich dazu, bestimmte Ausführungsformen zu beschreiben und ist nicht als Einschränkung der Erfindung zu verstehen. In der Verwendung hierin sollen die Singular-Formen „ein“, „eine“ und „der“, „die“, „das“ auch die Pluralformen umfassen, sofern der Kontext nicht eindeutig etwas anderes angibt. Es wird des Weiteren darauf hingewiesen, dass die Begriffe „aufweist“ und/oder „aufweisend“, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten bezeichnen, das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen/weiteren Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon jedoch nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Vorgänge und Äquivalente von allen Mitteln oder Schritten plus Funktionselementen in den nachstehenden Ansprüchen sollen jedwede Struktur, jedwedes Material oder jedweden Vorgang zur Durchführung der Funktion in Kombination mit anderen beanspruchten Elementen, wie sie im Einzelnen beansprucht sind, umfassen. Die Beschreibung der vorliegenden Erfindung erfolgte zum Zweck der Veranschaulichung und Erläuterung, sie soll jedoch nicht erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt sein. Viele Änderungen und Varianten sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der Erfindung abzuweichen. Die Ausführungsformen sind gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erklären und um anderen Fachleuten das Verständnis der Erfindung hinsichtlich verschiedener Ausführungsformen mit verschiedenen
  • Änderungen, wie sie für die jeweilige vorgesehene Verwendung geeignet sind, zu ermöglichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 2017/0308557 A1 [0005]
    • US 2017/0011088 A1 [0006]

Claims (20)

  1. Durch einen Computer ausgeführtes Verfahren, um Entitäten in einem Datenbanksystem eindeutig anzugeben, wobei das Verfahren umfasst: Speichern von Datenelementen in einer Tabelle einer Datenbank, wobei die Datenelemente als Datensätze gespeichert werden, die eine Mehrzahl von Attributen aufweisen; Speichern von Benennungsregeln für ausgewählte Kombinationen der Attribute der Datenelemente; Priorisieren der Benennungsregeln; Ermitteln eines Hashwerts für jede der ausgewählten Kombinationen der Attribute der Datenelemente und Angeben von doppelten Datenelementen unter Verwendung der ermittelten Hashwerte und der priorisierten Benennungsregeln.
  2. Verfahren nach Anspruch 1, wobei es sich bei dem Datenbanksystem um ein relationales Datenbanksystem handelt.
  3. Verfahren nach Anspruch 1, wobei es sich bei dem Datenbanksystem um eine Konfigurationsmanagement-Datenbank handelt.
  4. Verfahren nach Anspruch 1, das des Weiteren ein Zusammenführen der angegebenen doppelten Datenelemente umfasst, indem es die ermittelten Hashwerte als einen Schlüssel mit mehreren Werten für ein zusammengeführtes Datenelement verwaltet.
  5. Verfahren nach Anspruch 4, das des Weiteren ein Zusammenführen von weiteren Datenelementen umfasst, die in einer Verbundbeziehung mit den angegebenen Datenelementen stehen.
  6. Verfahren nach Anspruch 4, das des Weiteren ein Verwalten eines Zeigers auf eine gleiche Zeilenkennung von einem der zusammengeführten Datenelemente für die ermittelten Hashwerte umfasst.
  7. Verfahren nach Anspruch 1, das des Weiteren umfasst: Verwalten eines Index der Tabelle; und Verwalten eines Zeigers in einem auf den Suchbaum bezogenen Index, so dass der Zeiger auf dieselben Datensatzkennungen eines kombinierten Datenelements zeigt.
  8. Verfahren nach Anspruch 1, das des Weiteren umfasst: Verwenden einer Erstellungs-SQL-Anweisung, die für ein Erstellen der Benennungsregel und ihrer zugehörigen Priorität ausgelegt ist.
  9. Verfahren nach Anspruch 1, das des Weiteren umfasst: Verwenden eines Primärschlüssels mit mehreren Werten, um Datensätze in der Tabelle der Datenbank zu sortieren.
  10. Verfahren nach Anspruch 1, wobei ein Primärschlüssel mit mehreren Werten zur Clusterbildung von Clusterdaten auf Datenbanksteuerkomponenten mit mehreren Knoten verwendet wird.
  11. Verfahren nach Anspruch 9, wobei ein Primärschlüssel mit mehreren Werten mit einem Spaltendatenelement mit einem einzelnen Wert vergleichbar ist.
  12. Verfahren nach Anspruch 1, das des Weiteren umfasst: Erfassen von statistischen Datenbankdaten für Datenblöcke für Primärschlüssel mit einem einzelnen Wert und Primärschlüssel mit mehreren Werten.
  13. Computersystem, das dazu dient, Entitäten in dem Datenbanksystem eindeutig anzugeben, wobei das Computersystem aufweist: einen oder mehrere Computerprozessoren, ein oder mehrere durch einen Computer lesbare Speichermedien sowie auf dem einen oder den mehreren der durch einen Computer lesbaren Speichermedien gespeicherte Programmanweisungen zur Ausführung durch mindestens einen des einen oder der mehreren Prozessoren, der/die ein Verfahren durchführen kann/können, wobei das Verfahren umfasst: Speichern von Datenelementen in einer Tabelle einer Datenbank, wobei die Datenelemente als Datensätze gespeichert werden, die eine Mehrzahl von Attributen aufweisen; Speichern von Benennungsregeln für ausgewählte Kombinationen der Attribute der Datenelemente; Priorisieren der Benennungsregeln; Ermitteln eines Hashwerts für jede der ausgewählten Kombinationen der Attribute der Datenelemente und Angeben von doppelten Datenelementen unter Verwendung der ermittelten Hashwerte und der priorisierten Benennungsregeln.
  14. Computersystem nach Anspruch 13, wobei es sich bei dem Datenbanksystem um ein relationales Datenbanksystem handelt.
  15. Computersystem nach Anspruch 13, wobei es sich bei dem Datenbanksystem um eine Konfigurationsmanagement-Datenbank handelt.
  16. Computersystem nach Anspruch 13, das des Weiteren ein Zusammenführen der angegebenen doppelten Datenelemente aufweist, indem es die ermittelten Hashwerte als einen Schlüssel mit mehreren Werten für ein zusammengeführtes Datenelement verwaltet.
  17. Computersystem nach Anspruch 16, das des Weiteren ein Zusammenführen von weiteren Datenelementen aufweist, die in einer Verbundbeziehung mit den angegebenen Datenelementen stehen.
  18. Computersystem nach Anspruch 16, das des Weiteren ein Verwalten eines Zeigers auf eine gleiche Zeilenkennung von einem der zusammengeführten Datenelemente für die ermittelten Hashwerte aufweist.
  19. Computersystem nach Anspruch 13, das des Weiteren aufweist: Verwalten eines Index der Tabelle; und Verwalten eines Zeigers in einem auf den Index bezogenen Suchbaum, so dass der Zeiger auf dieselben Datensatzkennungen eines kombinierten Datenelements zeigt.
  20. Computerprogrammprodukt, das dazu dient, Entitäten in einem Datenbanksystem eindeutig anzugeben, wobei das Computerprogrammprodukt aufweist: ein oder mehrere nicht flüchtige, durch einen Computer lesbare Speichermedien und Programmanweisungen, die auf dem einen oder den mehreren nicht flüchtigen, durch einen Computer lesbaren Speichermedien gespeichert sind, die ein Verfahren durchführen können, wobei das Verfahren umfasst: Speichern von Datenelementen in einer Tabelle einer Datenbank, wobei die Datenelemente als Datensätze gespeichert werden, die eine Mehrzahl von Attributen aufweisen; Speichern von Benennungsregeln für ausgewählte Kombinationen der Attribute der Datenelemente; Priorisieren der Benennungsregeln; Ermitteln eines Hashwerts für jede der ausgewählten Kombinationen der Attribute der Datenelemente und Angeben von doppelten Datenelementen unter Verwendung der ermittelten Hashwerte und der priorisierten Benennungsregeln.
DE112021000621.5T 2020-04-03 2021-03-05 Primärschlüssel mit mehreren werten für eine mehrzahl von eindeutigen kennungen von entitäten Pending DE112021000621T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/839,200 US11604776B2 (en) 2020-04-03 2020-04-03 Multi-value primary keys for plurality of unique identifiers of entities
US16/839,200 2020-04-03
PCT/IB2021/051847 WO2021198807A1 (en) 2020-04-03 2021-03-05 Multi-value primary keys for plurality of unique identifiers of entities

Publications (1)

Publication Number Publication Date
DE112021000621T5 true DE112021000621T5 (de) 2022-11-10

Family

ID=77921765

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021000621.5T Pending DE112021000621T5 (de) 2020-04-03 2021-03-05 Primärschlüssel mit mehreren werten für eine mehrzahl von eindeutigen kennungen von entitäten

Country Status (10)

Country Link
US (1) US11604776B2 (de)
JP (1) JP2023519551A (de)
KR (1) KR20220143696A (de)
CN (1) CN115516441A (de)
AU (1) AU2021250715B2 (de)
CA (1) CA3170205A1 (de)
DE (1) DE112021000621T5 (de)
GB (1) GB2609831A (de)
IL (1) IL295594A (de)
WO (1) WO2021198807A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11244069B2 (en) * 2019-08-26 2022-02-08 International Business Machines Corporation Controlling combination of information submitted to computing systems
US11604776B2 (en) 2020-04-03 2023-03-14 International Business Machines Corporation Multi-value primary keys for plurality of unique identifiers of entities

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170011088A1 (en) 2015-07-07 2017-01-12 Toedt, Dr. Selk & Coll. GmbH Finding doublets in a database
US20170308557A1 (en) 2016-04-21 2017-10-26 LeanTaas Method and system for cleansing and de-duplicating data

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961721B2 (en) * 2002-06-28 2005-11-01 Microsoft Corporation Detecting duplicate records in database
US8838549B2 (en) * 2008-07-07 2014-09-16 Chandra Bodapati Detecting duplicate records
CN101355448B (zh) 2008-09-03 2012-01-11 中兴通讯股份有限公司 上载比较方法和装置
US8645543B2 (en) 2010-10-13 2014-02-04 International Business Machines Corporation Managing and reconciling information technology assets in a configuration database
US8832041B1 (en) 2011-09-16 2014-09-09 Google Inc. Identifying duplicate entries
US10387389B2 (en) 2014-09-30 2019-08-20 International Business Machines Corporation Data de-duplication
GB2530774A (en) 2014-10-01 2016-04-06 Ibm Method for creating and handling identification for a re-source in a configuration database
US11347878B2 (en) * 2015-06-02 2022-05-31 ALTR Solutions, Inc. Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data
US10983959B2 (en) * 2017-10-26 2021-04-20 First Data Corporation Merchant table and associated processes
US11487822B2 (en) 2018-06-13 2022-11-01 International Business Machines Corporation Facilitating spatial indexing on distributed key-value stores
US11604776B2 (en) 2020-04-03 2023-03-14 International Business Machines Corporation Multi-value primary keys for plurality of unique identifiers of entities

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170011088A1 (en) 2015-07-07 2017-01-12 Toedt, Dr. Selk & Coll. GmbH Finding doublets in a database
US20170308557A1 (en) 2016-04-21 2017-10-26 LeanTaas Method and system for cleansing and de-duplicating data

Also Published As

Publication number Publication date
US11604776B2 (en) 2023-03-14
WO2021198807A1 (en) 2021-10-07
US20210311917A1 (en) 2021-10-07
CA3170205A1 (en) 2021-10-07
AU2021250715B2 (en) 2024-02-01
KR20220143696A (ko) 2022-10-25
AU2021250715A1 (en) 2022-09-15
JP2023519551A (ja) 2023-05-11
GB2609831A8 (en) 2023-03-08
GB202216193D0 (en) 2022-12-14
IL295594A (en) 2022-10-01
CN115516441A (zh) 2022-12-23
GB2609831A (en) 2023-02-15

Similar Documents

Publication Publication Date Title
DE112020003820T5 (de) Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository
US10872162B2 (en) Role-based security policy for an object-oriented database system
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE112019003042B4 (de) Erkennung von verdächtigen aktivitäten in computernetzwerken
DE202020005687U1 (de) Gemeinsame Datennutzung bzw. Datenteilung und materilisierte Ansichten in Datenbanken
DE112016003626T5 (de) Natürlichsprachliche Schnittstelle zu Datenbanken
DE112021004197T5 (de) Semantisches Lernen in einem System für ein föderiertes Lernen
DE202016005239U1 (de) Graph-basierte Abfragen
DE112018005167T5 (de) Aktualisieren von trainingsdaten
DE112020001688B4 (de) Richtlinienbasiertes auslösen einer überarbeitung von zugriffssteuerungsinformationen
DE102016105526A1 (de) Schnelles mehrschichtiges Indexieren mit Unterstützung für dynamische Aktualisierung
DE202015009875U1 (de) Transparente Entdeckung eines semistrukturierten Datenschemas
DE112013001308T5 (de) Verwalten von mandantenspezifischen Datensätzen in einer mandantenfähigen Umgebung
DE102014103279A1 (de) Pivot-Facets für Text-Mining und Suche
DE112019001433T5 (de) Datenanonymisierung
DE112021000621T5 (de) Primärschlüssel mit mehreren werten für eine mehrzahl von eindeutigen kennungen von entitäten
DE112021003401T5 (de) Schattenexperimente für serverlose multi-tenant-cloud-dienste
DE112018000456T5 (de) Verwalten von umfangreichen Zuordnungsgruppen unter Verwendung von optimierten Bitmap-Darstellungen
DE112020000554T5 (de) Verfahren zum zugreifen auf datensätze eines stammdatenverwaltungssystems
DE19534819B4 (de) Verfahren und Vorrichtung zum Konfigurieren einer Datenbank
DE112021001163T5 (de) Dynamisches erstellen von facetten unter verwendung von graphpartitionierung
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112021000338T5 (de) Auslagern der statistikerfassung
DE102021123058A1 (de) Maskieren von sensiblen informationen in einem dokument
DE112021003031T5 (de) Archivieren von nur-beschleuniger-datenbanktabellen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence