NL1029167C2 - Werkwijzen en systemen voor gegevensintegratie. - Google Patents

Werkwijzen en systemen voor gegevensintegratie. Download PDF

Info

Publication number
NL1029167C2
NL1029167C2 NL1029167A NL1029167A NL1029167C2 NL 1029167 C2 NL1029167 C2 NL 1029167C2 NL 1029167 A NL1029167 A NL 1029167A NL 1029167 A NL1029167 A NL 1029167A NL 1029167 C2 NL1029167 C2 NL 1029167C2
Authority
NL
Netherlands
Prior art keywords
data
connection unit
search
name
field
Prior art date
Application number
NL1029167A
Other languages
English (en)
Other versions
NL1029167A1 (nl
Inventor
James F Barstow
Original Assignee
Mdl Information Systems
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 Mdl Information Systems filed Critical Mdl Information Systems
Publication of NL1029167A1 publication Critical patent/NL1029167A1/nl
Application granted granted Critical
Publication of NL1029167C2 publication Critical patent/NL1029167C2/nl

Links

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/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Description

WERKWIJZEN EN SYSTEMEN VOOR GEGEVENSINTEGRATIE
5
Achtergrond
In het verleden werd ondersteuning voor complexe, integratie vereisende datamodellen verschaft binnen elke gegevensbron of via code die door de klant of een consultant 10 geschreven werd. De complexe gegevenshiërarchie die bijvoorbeeld gebruikt werd in Beilstein databases wordt gebouwd in Beilstein zelf. Relationele databases zoals Oracle hebben dergelijke mogelijkheden niet en vereisen de kennis van de expert van de onderliggende tabelstructuur, SQL en 15 programmering teneinde de gegevens op een manier die toegankelijk is voor eindgebruikers, te integreren.
Eén bestaand integratiesysteem is ISIS ("Integrated Scientific Information System"), een product van MDL Information Systems, Ine. uit San Leandro, Californië. ISIS 20 is een leidend informatica-systeem in de life Science en de chemische industrie. De ISIS/Host API is een C-interface die integratie verschaft van gegevensbronnen en structuur-zoekbewerkingen. De Hview is een bewerkbaar tekstbestand dat de ISIS/Host informeert over hoe de eindgebruiker deze 25 integratie zal zien. Gebruik makend van Hview kan ISIS/Host soortgelijke databases openen die resideren op een of meer hostcomputers en tonen aan ISIS gebruikers een geünificeerd beeld van de gegevens.
Alhoewel de Hview een zeer krachtige manier verschaft 30 voor het beschrijven van gegevensmodellen, heeft deze bepaalde, belangrijke beperkingen. Als eerste is deze te rigide. Een gegeven gegevensmodel kan bijvoorbeeld gezien worden als vele verschillende hiërarchieën; soms kan het 1029167 2 zelfs zin hebben om één hiërarchie te doorzoeken en een ander op te halen. In het ISIS domein, is het zien van gegevens via verschillende Hviews problematisch en kan het nodig maken dat een programmeur klantspecifieke (custom) code moet schrijven.
5 Ten tweede ondersteunen Hviews een beperkte verzameling gegevensrelaties. Het draaien (pivoting) van gegevens is een functionaliteit die bijna elke klant vereist, maar niet direct ondersteund is door ISIS/Host. Zelfs in het eenvoudigste draai-geval, is het zoeken en het ophalen van 10 gegevens een twee-staps proces; in de meeste gevallen is het veel te complex. Tenslotte is de syntax van Hview geheim; sommige bedrijven hebben experts die gericht zijn op het schrijven en het behouden van Hviews. Alhoewel het onderliggende proces van het schrijven van complexe 15 gegevensmodellen altijd experts zou kunnen vergen, zou de gebruikte syntax het proces eenvoudiger en niet moeilijker moeten maken.
Doelen van een voorkeurssysteem uitvoering van de onderhavige uitvinding omvatten het volgende. Allereerst 20 dient het systeem flexibel te zijn en dient het systeem het gemakkelijker te maken om meervoudige hiërarchische beelden van hetzelfde gegevensmodel te verschaffen. Ten tweede zou het systeem uitbreidbaar moeten zijn om nieuwe, onvoorziene gegevensrelaties te kunnen definiëren. Ten derde dient het 25 proces van beschrijven van een gegevensmodel niet moeilijker gemaakt te worden via een geheime syntax.
Bij het doorzoeken van een database, in het bijzonder een relationele database, dient de gebruiker in het algemeen een gedetailleerde kennis te hebben van de structuur van de 30 database teneinde doorzoekingen (queries) te kunnen formuleren. De gebruiker moet bijvoorbeeld de namen van tabellen en de namen van de kolommen van de tabellen 3 specificeren teneinde een selecteerbewerking (SQL select statement) te kunnen formuleren.
De hierboven genoemde Hviews representeren 5 relationele databasetabellen als een hiërarchie, zodat een doorzoeking geformuleerd wordt door verwijzing naar de hiërarchie in plaats van door verwijzing naar tabellen van de onderliggende database. Dit vereenvoudigt het doorzoeken van de database aangezien de gebruiker geen kennis meer behoeft 10 te hebben omtrent de structuur van de database, zoals kennis omtrent de namen van de tabellen en de kolommen.
Hviews hebben echter het bezwaar dat elke hiërarchie vooraf bepaald moet worden en vooraf opgeslagen moet worden in een respectievelijke Hview, zodat de gebruiker een 15 bepaalde doorzoeking niet kan formuleren behalve indien de voor die betreffende doorzoeking geschikte Hview reeds gecreëerd is.
Ook in het document US 2002/0184211 wordt gebruik gemaakt van vooraf gedefinieerde hiërarchieën in plaats van 20 hiërarchieën die gedefinieerd worden op het moment van doorzoeking.
Een van de doelen van de uitvinding is om een werkwijze en systeem te verschaffen waarin het bovengenoemd bezwaar van de stand van de techniek is ondervangen.
25 Dit doel wordt bereikt in een werkwijze volgens conclusies 1 en/of 17 en een systeem volgens conclusie 24, 25 en/of 27.
Overzicht 30 In een voorkeursuitvoeringsvorm van de onderhavige uitvinding wordt integratie verschaft via een integratiegegevensbron (Integrating Data Source, IDS). Deze gegevensbron kan bereikt worden en gemanipuleerd worden door —^___ 4 gebruik te maken van standaard interfaces; doorzoekingen (queries) kunnen gedaan worden door gebruik te maken van hiërarchische extensies op SQL (UQL) en gegevens kunnen teruggestuurd worden in hiërarchische recordverzamelingen.
5 (UQL (Unified Query Language) wordt in meer detail hieronder besproken).
IDS verschaft een werkwijze voor het stellen van hiërarchische vragen over meervoudige gegevensbronnen via een vooraf gedefinieerd gegevensnetwerk. In de IDS zijn de 10 gegevensnetwerken opgebouwd uit "knooppunten" (nodes) en "verbindingseenheden" (connectors). Eén gegevensnetwerk vervangt verscheidene Hviews. Elk knooppunt in een netwerk is een relationele tabel of een andere gegevensbron. Elke rand in het netwerk is een XML-gedefinieerde verbindingseenheid 15 die de relatie tussen de twee knooppunten beschrijft. De verbindingseenheden kunnen gedefinieerd worden in statische bestanden of gecreëerd worden in eenvoudige Java code tijdens de looptijd (run time).
In tegenstelling tot het Hview model zijn de 20 hiërarchische aanbeelden die samengesteld worden door de IDS niet statisch. Vele verschillende hiërarchieën kunnen dynamisch opgebouwd worden uit een enkelvoudig gegevensnetwerk, afhankelijk van het pad door het netwerk.
Het startpunt in het netwerk wordt de basis van de gevormde 25 hiërarchie. Gegeven een enkele doorzoeking, kunnen er vele verschillende manieren zijn waarop de opvraag toegepast kan worden op het netwerk, hetgeen resulteert in verschillende hiërarchieën. Deze hiërarchieën weerspiegelen de verschillende relaties van de gegevens waarop de doorzoeking 30 betrekking heeft.
Elke rand in het netwerk is gedefinieerd door een verbindingseenheid die de gegevensrelatie tussen de twee knooppunten beschrijft. Deze gegevensrelatie kan een veelheid 5 van één-op-één of een-op-vele relaties zijn en kan een transformatie van de resulterende gegevens (bijvoorbeeld draaiing) met zich mee brengen. Verbindingseenheden zijn directioneel; om een verbinding in beide richtingen te 5 hebben, worden twee verbindingseenheden gedefinieerd.
Een gegeven verbindingseenheid omkapselt (encapsulates) de implementatie in van een bepaalde gegevensrelatie, waaronder het vertalen van de doorzoeking en het ophalen van gegevens. De meeste verbindingseenheden zijn 10 gevormd door het uitbreiden van één kleine verzameling basis verbindingseenheden en het vervolgens voorbijgaan aan een paar werkwijzen. Algemene punten over verbindingseenheden omvatten: j 1. Verbindingseenheden beschrijven een relatie tussen twee 15 gegevensverzamelingen.
2. Een gegeven gegevensverzameling kan een relationele tabel, een SQL statement, een berekening, een gegevensbron, etc. zijn.
3. Relaties kunnen 1 op 1, 1 op veel, veel op veel zijn.
20 4. Verbindingseenheden zijn verantwoordelijk voor het genereren van SQL voor het doorzoeken en ophalen van hun bijbehorende gegevens.
5. Verbindingseenheden halen hetzij gegevens onmiddellijk op of stellen het ophalen uit totdat dit gevraagd wordt.
25 6. Verbindingseenheden kunnen gegevens transparant (bijvoorbeeld draaiing) transformeren.
7. Verbindingseenheden kunnen eenvoudig uitgebreid worden om nieuwe relaties of functionaliteit te ondersteunen.
Een voorkeurswerkwijze van de onderhavige uitvinding 30 omvat een werkwijze voor het dynamisch creëren van hiërarchieën die gebruikt moeten worden in gegevensdoorzoekingen, omvattende de stappen van: (a) het definiëren van een gegevensnetwerk; (b) het ontvangen van een ______ 6 doorzoeking met betrekking tot de in een of meer databases opgeslagen gegevens; en © het ten minste gedeeltelijk op de genoemde doorzoeking en op de genoemde gegevensnetwerk gebaseerd dynamisch vormen van een hiërarchie. In 5 gerelateerde uitvoeringsvormen: (1) omvat het gegevensnetwerk knooppunten en verbindingseenheden; (2) omvat de stap van het definiëren van een gegevensnetwerk het verbinden van een of meer bronknooppunten met een of meer verbonden knooppunten via verbindingseenheden; (3) omvatten de verbindingseenheden 10 uitvoer veldelementen en definiëren deze relaties tussen de knooppunten; (4) wordt een hiërarchie gebouwd gebaseerd op uitvoervelden en relaties; (5) is er stap van het identificeren van een basisverbindingseenheid in een gegevensnetwerk gebaseerd op een doorzoeking; (6) wordt het 15 gegevensnetwerk gedefinieerd gebaseerd op een relationeel gegevensmodel; (7) omvat de stap van het definiëren van een gegevensnetwerk het analyseren van een gegevensmodel teneinde te demonstreren objecten te identificeren; (8) omvat de stap van het definiëren van een gegevensnetwerk het analyseren van 20 een erfenisboom (inheritance tree) van geïdentificeerde objecten; (9) omvat de stap van het definiëren van een gegevensnetwerk het analyseren van relaties tussen objecten; (10) omvatten de relaties tussen objecten een veelheid van relaties en reciproque relaties; (11) omvat de stap van het 25 definiëren van een gegevensnetwerk het definiëren van verbindingseenheden voor elk van de objecten; (12) resulteert de stap van het definiëren van verbindingseenheden voor elk van de objecten in het demonstreren (expose) van relevante gegevens in een hiërarchie die geschikt is voor het object; 30 (13) vormen de verbindingseenheden subnetwerken; (14) worden voor elk subnetwerk verbindingseenheden daarin gemodificeerd om relaties tussen objecten in het netwerk te weerspiegelen; (15) omvatten de verbindingseenheden verbindingseenheden die 7 gegevens transformeren; en (16) omvatten de verbindingseenheden verbindingseenheden die gegevens van externe bronnen integreren.
Een andere voorkeurswerkwijze van de onderhavige 5 uitvinding omvat een werkwijze voor het doorzoeken van een gegevensnetwerk, omvattende de stappen van: (a) het selecteren van gewenste velden; (b) het specificeren van een basis; (c ) het specificeren van een zoekconditie; en (d) het specificeren van een pad naar elk van een of meer van de 10 genoemde velden. In gerelateerde uitvoeringsvormen: (1) omvat de stap van het specificeren van een basis het specificeren van een VANAF (FROM) clausule; (2) correspondeert elk pad met een verzameling verbindingseenheden; en (3) omvat de verzameling verbindingseenheden een of meer van het volgende: 15 een één-op-vele verbindingseenheid, een één-op-één verbindingseenheid, een draaiverbindingseenheid (pivot connector).
Een voorkeurssysteemuitvoering van de onderhavige ; uitvinding omvat een systeem voor het dynamisch creëren van 20 in database zoekbewerkingen te gebruiken hiërarchieën, omvattende: (a) middelen voor het definiëren van een gegevensnetwerk; (b) middelen voor het ontvangen van een doorzoeking betreffende gegevens die zijn opgeslagen in een of meer databases; en © middelen voor het tenminste 25 gedeeltelijk op genoemde doorzoeking gebaseerd dynamisch vormen van een hiërarchie van het gegevensnetwerk.
Een andere voorkeurssysteemuitvoering van de onderhavige uitvinding omvat een systeem voor het doorzoeken van een gegevensnetwerk, omvattende: (a) middelen voor het 30 selecteren van gewenste velden; (b) middelen voor het specificeren van een basis en © middelen voor het specificeren van een zoekconditie.
----' I I ^_ 8
Een ander bevoorkeurde systeemuitvoeringsvorm van de onderhavige uitvinding omvat een systeem voor het doorzoeken van databases, omvattende: (a) een elektronische doorzoekingsserver die werkzaam is om elektronische 5 communicaties te ontvangen van en elektronische communicatie te zenden naar een gebruikerterminal via een elektronisch communicatienetwerk; en (b) een of meer databaseservers in een elektronische communicatie met de doorzoekingsserver en werkzaam om een of meer databases te doorzoeken; waarin de 10 doorzoekingsserver werkzaam is om een elektronische doorzoeking over een elektronisch communicatienetwerk te ontvangen van de gebruikerterminal en, gebaseerd op die doorzoeking, een of meer hiërarchieën dynamisch te creëren.
In gerelateerde uitvoeringsvormen: (1) worden een of meer 15 hiërarchieën gecreëerd gebaseerd op de gegevensnetwerken; en (2) omvatten de gegevensnetwerken knopen die zijn verbonden door verbindingseenheden en correspondeert elk knooppunt met een verzameling van gegevens. 1 2 3 4 5 6 7 8 9 10 11
Korte beschrijving van de tekeningen 2
Figuur 1 beeldt een eenvoudig gegevensnetwerk van een 3 voorkeursuitvoeringsvorm af.
4
Figuur 2 beeldt een grafisch aanzicht af van een 5 voorbeeldnetwerk.
6
Figuur 3 is een grafisch aanzicht van het in Bijlage 7 A beschreven netwerk.
8
Figuur 4 toont basisdelen van een bevoorkeurde 9 verbindingseenheidbeschrijving.
10
Figuur 5 toont voorbeeld verbindingseenheiddefinities 11 voor een bronknooppunt en een verbonden knooppunt en van het netwerk dat ze vormen.
Figuur 6 toont een basisverbindingseenheid die toegevoegd is aan het netwerk van Figuur 5.
9
Figuur 7 toont twee additionele verbindingseenheden die zijn toegevoegd aan het netwerk van Figuur 6.
Figuur 8 toont een entiteit-relatiediagram dat een eenvoudig reactie gegevensmodel illustreert.
5 Figuur 9 toont verbindingseenheden voor het gegevensmodel van Figuur 8.
Figuur 10 toont twee additionele verbindingseenheden die zijn toegevoegd aan die van Figuur 9.
Figuur 11 toont een grafisch aanzicht van een 10 gegevensnetwerk.
Figuur 12 illustreert een doorzoeking die toegepast is op het netwerk van Figuur 11.
Figuren 13-17 beelden stroomdiagrammen af die gedetailleerd aangeven hoe een UQL-doorzoeking vertaald wordt 15 in standaard SQL.
Korte beschrijving van de voorkeursuitvoerinasvorm
In een voorkeursuitvoeringsvorm/ is een integrerende gegevensbron (integrated data source/IDS) een gegevensbron 20 die gecombineerd is met een of meer gegevensbronnen (kenmerkend omvattende een relationele gegevensbron) teneinde een gegevensnetwerk te vormen. Gebaseerd op een verschaft gegevensmodel, kan een gegevensmodelexpert een gegevensnetwerk creëren. Dit transformeert de gegevens in een 25 of meer hiërarchische beelden en verschaft de mogelijkheid om deze gegevensbronnen te doorzoeken en stuurt verzamelingen van geïntegreerde resultaten terug. Gegevenseenheden specificeren de gegevensrelaties tussen de bronnen van de gegevens. Figuur 1 beeldt een eenvoudig gegevensnetwerk af.
30 Verbindingseenheden met één-op-één of één-op-veel gegevensrelaties kunnen gebruikt worden om een netwerk te vormen. Verbindingseenheden genereren SQL statements voor het 10 zoeken en ophalen van de bij de verbindingseenheden behorende gegevens.
Gegevensbronnen in het gegevensnetwerk kunnen een enkele relationele tabel, een berekening, de resultaten van 5 een SELECT statement, een externe gegevensbron zijn... potentieel alles dat gegevens levert.
Het gegevensnetwerk kan een eenvoudig netwerk zijn, verbindingseenheden tussen verscheidene bronnen van gegevens. Het gegevensnetwerk kan ook veel complexer zijn, duizenden 10 bronnen van gegevens met verbindingseenheden die de bronnen verbinden. Een van IDS verbindingseenheden gebruik maken gegevensnetwerk verschaft een klantspecifieke (customized) verzameling van gegevensbeelden die toegespitst zijn op de werkstroom en de eisen van een bepaald gebruik. In 15 tegenstelling tot het Hview model kan één gegevensnetwerk meervoudige Hviews vervangen en kan een gegeven gegevensmodel gezien worden als vele verschillende hiërarchieën. De door de IDS samengestelde hiërarchische beelden zijn niet statisch. Flexibiliteit is zeer wenselijk en is een integrale feature 20 van IDS. Een goed ontworpen gegevensnetwerk zal het mogelijk maken dat hiërarchieën gevormd worden die de ontwerper niet heeft voorzien. Het is bijvoorbeeld soms voordelig om één hiërarchie te doorzoeken, maar om vanaf een ander op te halen.
25 Een ander voordeel van het gebruik van IDS is dat het gegevenstransformaties mogelijk maakt, zoals het draaien, om dynamisch op te treden. Dit is slechts een voorbeeld van de mogelijkheid om gegevens te transformeren van de vorm waarin deze in een database zijn opgeslagen tot in een vorm waaraan 30 de eindgebruiker gewend is. Bovendien kan men met IDS meervoudige startpunten of bases voor een gegeven zoekbewerking specificeren.
11
Doorzoekingen worden bij voorkeur gemaakt door gebruik te maken van de hiërarchische uitbreidingen van de Unified Query Language (UQL) en de gegevens die teruggestuurd zijn in de hiërarchische recordverzamelingen.
5 De volgende stappen detailleren een bevoorkeurde IDS
werkstroom.
1. Database administrator analyseert de behoeftes van een site 2. Database administrator installeert databases en stelt 10 accounts op voor systeemadministratoren.
3. De systeemadministrator voegt databasecontexten toe en wijst gebruikers toe aan deze contexten.
4. De systeemadministrator creëert gegevensbrondefinities.
XML bestanden worden vanuit deze definities gecreëerd.
15 5. Een gegevensmodelexpert (met systeemadministrator privileges) vormt het netwerk.
6. Wanneer de gegevensmodelexpert het gegevensnetwerk gebouwd en getest heeft, publiceert de systeemadministrator het gegevensnetwerk naar de server.
20 7. Een wetenschapper (bijvoorbeeld) doorzoekt de databases door gebruik te maken van het gegevensnetwerk. De wetenschaper creëert de doorzoekingen door gebruik te maken van de hiërarchische extensies van UQL en de gegevens worden teruggestuurd in hiërarchische recordverzamelingen.
25 In sommige gevallen kan het noodzakelijk zijn om nieuwe, onvoorziene gegevensrelaties te definiëren die niet ondersteund zijn door de standaard IDS verbindingseenheden. Indien dat het geval is, specificeert de gegevensmodelexpert nieuwe verbindingseenheden wanneer nodig en stuurt de 30 specificaties door aan een ontwikkelaar. De ontwikkelaar bouwt de vereiste verbindingseenheden.
Over verbindingseenheden 12
Een verbindingseenheid is het basis bouwblok van een gegevensnetwerk in een integrerende gegevensbron. Een verbindingseenheid is een XML beschrijving van de relatie tussen knooppunten van gegevens in een gegevensnetwerk. Deze 5 relatie wordt gebruikt door de verbindingseenheid wanneer deze de moederdoorzoeking voor de zoekbewerking en het ophalen van de verbonden gegevens genereert. De relatie kan een één-op-één of een één-op-veel relatie zijn. De relatie specificeert tevens of de gegevensophaling onmiddellijk 10 uitgevoerd wordt of uitgesteld wordt tot deze verzocht wordt.
Figuur 4 toont basisonderdelen van een verbindingseenheidbeschrijving. De meeste verbindingseenheden hebben tenminste de Verbindingseenheid-, Koppelvelden- en Uitvoerveldenelementen.
15
Hoe verbindingseenheden een gegevensnetwerk vormen
Alhoewel een verbindingseenheid de verbinding tot stand brengt tussen het bronknooppunt en het gekoppelde knooppunt, definieert deze bij voorkeur slechts toegang tot 20 de gegevens in het gekoppelde knooppunt. Toegang tot de gegevens in het bronknooppunt wordt bij voorkeur gedefinieerd door een andere verbindingseenheid. Teneinde gegevens te !
bereiken in zowel het bronknooppunt als in het gekoppelde I
knooppunt, heeft men bij voorkeur een verbindingseenheid j 25 nodig voor elk knooppunt. Figuur 5 toont twee verbindingseenheiddefinities voor het bronknooppunt en het gekoppelde knooppunt en toont hoe zij een zeer eenvoudig gegevensnetwerk vormen.
De gegevens in dit netwerk worden gedefinieerd door 30 de uitvoervelden in elke verbindingseenheid. De vanuit een doorzoeking opgehaalde hiërarchie wordt afgeleid van de gespecificeerde uitvoervelden en de relaties die zijn gedefinieerd door hun verbindingseenheden. De veelheid van 13 relaties tussen twee knooppunten hebben invloed op de vorm van de hiërarchie. Voor een één-op-één relatie worden de uitvoervelden van het gekoppelde knooppunt samengevoegd met de uitvoervelden van het bronknooppunt. Voor een één-op-veel 5 relatie wordt een ouder-veld gecreëerd in de brongegevens. Indien bijvoorbeeld de relatie tussen VerbindingseenheidA en VerbindingseenheidB in het voorbeeld een één-op-één relatie is, lijkt de afgeleide hiërarchie op het volgende:
VeldAl 10 VeldA2
VeldBl VeldB2
Indien de relatie tussen VerbindingseenheidA en 15 VerbindingseenheidB in het voorbeeld een één-op-veel relatie is, lijkt de afgeleide hiërarchie op de volgende:
VeldAl
VeldA2
VerbindingseenheidB (ouder-veld) 20 VeldBl
VeldB2
Het zojuist beschreven gegevensnetwerk is eenvoudigweg een serie verbindingseenheden, zonder intredepunt in het netwerk. Om het mogelijk te maken dat een 25 doorzoeking voorgelegd wordt aan dit gegevensnetwerk, moet er een basisverbindingseenheid zijn. De basisverbindingseenheid representeert welk type gegevens doorzocht gaan worden op dit gegevensnetwerk. De basisverbindingseenheid is wat gespecificeerd moet worden in de FROM clausule van de 30 doorzoeking.
Figuur 6 toont een andere verbindingseenheid, VerbindingseenheidX, die is toegevoegd aan het gegevensnetwerk.
14
VerbindingseenheidX is de basisverbindingseenheid in dit gegevensnetwerk. Zoals is getoond moet VerbindingseenheidX tevens zijn eigen Verbindingseenheidelementdefinitie hebben. Teneinde 5 VerbindingseenheidX als een basisverbindingseenheid te specificeren> moet deze toegevoegd worden in de Basissectie (Bases section) van het Verbindingselement: <Bases> <Basis ID="VerbindingseenheidX"/> 10 </Bases>
Indien de relaties tussen VerbindingseenheidX, VerbindingseenheidA en VerbindingseenheidB één-op-één relaties zijn, lijkt de afgeleide hiërarchie op de volgende:
15 VeldX
VeldAl VeldA2 VeldBl VeldB2 20
Indien de relaties tussen VerbindingseenheidX, VerbindingseenheidA en VerbindingseenheidB een één-op-veel relatie vormen, lijkt de afgeleide hiërarchie op de volgende: VeldX
25 VerbindingseenheidA (ouder-veld)
VeldAl
VeldA2
VerbindingseenheidB (ouder-veld)
VeldBl 30 VeldB2
Gebruik makend van de één-op-veel relatie als voorbeeld, kan de volgende doorzoeking voorgelegd worden: 15 selecteer VeldX, VerbindingseenheidA.VeldA2, VerbindingseenheidB.* van (from) VerbindingseenheidX waarin VerbindingseenheidA.VeldAl = "bepaalde Waarde" 5 Merk op dat de VerbindingseenheidX definitie niet een FROMTABLE attribuut hoeft te hebben en geen koppelvelden (Link Fields) definieert omdat deze niet vanaf een bronknooppunt koppelt. Het is echter tevens mogelijk om een verbindingseenheid te definiëren die twee knooppunten (zoals 10 VerbindingseenheidA of VerbindingseenheidB) als een basisverbindingseenheid koppelt.
Men kan tevens meervoudige verbindingseenheden definiëren die vanaf dezelfde broncode gekoppeld worden en meervoudige verbindingseenheden die met hetzelfde gekoppelde 15 knooppunt gekoppeld worden. In Figuur 7 worden nieuwe verbindingseenheden, VerbindingseenheidC en VerbindingseenheidD, toegevoegd aan het gegevensnetwerk dat gebruikt wordt in de eerdere voorbeelden. VerbindingseenheidB en VerbindingseenheidC koppelen zowel vanaf TabelA en 20 VerbindingseenheidB en VerbindingseenheidD koppelen beide aan TabelB.
Gebruik makend van het weergegeven gegevensnetwerk, selecteert de volgende doorzoeking alle uitvoervelden van alle verbindingseenheden: 25 selecteer*, VerbindingseenheidA.*,
VerbindingseenheidA.VerbindingseenheidC*,
VerbindingseenheidA.VerbindingseenheidC. VerbindingseenheidD.*
vanaf VerbindingseenheidX
30 waarin VerbindingseenheidA.VerbindingseenheidC.
VeldCl="bepaalde Waarde"
Het volgende toont de afgeleide hiërarchie: 16
VeldX
VerbindingseenheidA
VeldAl
VeldA2 5 VeldBl
VeldBl
VerbindingseenheidC
VeldCl
VeldC2
10 VerbindingseenheidD
VeldB3
VeldB4
Het type VerbindingseenheidA, VerbindingseenheidC, en 15 VerbindingseenheidD is een een-naar-veel gegevensverbindingseenheid; de een-naar-veel relatie creëerde de corresponderende ouder-velden en velden van lager niveau. Het type van VerbindingseenheidB is een-naar-een gegevensverbindingseenheid; de één-op-één relatie voegde de 20 velden toe aan de VerbindingseenheidA (bron) ouder. Merk op dat het selecteren van in de doorzoeking niet de velden van lager niveau ophaalt. Om de velden onder ouder op te halen, moet de verbindingseenheidnaam als pad naar de velden gespecificeerd worden. "Selecteer* van VerbindingseenheidX" 25 zal bijvoorbeeld slechts de uitvoervelden selecteren van VerbindingseenheidX. Om de velden te selecteren van VerbindingseenheidX en VerbindingseenheidD, moet "selecteer*, VerbindingseenheidA.VerbindingseenheidC.VerbindingseenheidD.* van VerbindingseenheidX" gespecificeerd worden.
30 In veel gevallen zijn er toepassingsgebruikers die slechts geïnteresseerd zijn in gegevens in bepaalde niveaus van de hiërarchie. Gebruik makend van het voorafgaande voorbeeld, stuurt de volgende doorzoeking een lager niveau 17 (VerbindingseenheidC) veld gebaseerd op een ander lager niveau (VerbindingseenheidD) veld terug: selecteer VerbindingseenheidA.VerbindingseenheidC. VeldCl van VerbindingseenheidX 5 waarin VerbindingseenheidA.VerbindingseenheidC.
VerbindingseenheidD.VeldB4 = "bepaaldeWaarde"
Om het makkelijk te maken om deze knooppunten in het gegevensnetwerk te bereiken, kan je VerbindingseenheidC als 10 basis toevoegen: <Bases> <Basis ID="VerbindingseenheidX"/> <Basis ID="VerbindingseenheidC"/> </Bases> 15
Dit maakt VerbindingseenheidC een ander intredepunt in het gegevensnetwerk. Wanneer VerbindingseenheidC als een basisverbindingseenheid gedefinieerd wordt, worden de gegevens tot aan het basisniveau van een hiërarchie 20 getrokken, zonder het onderliggende gegevensmodel te veranderen. Het volgende wordt dan een andere hiërarchie die in het gegevensnetwerk beschikbaar is:
VeldCl
VeldC2
25 VerbindingseenheidD
VeldB3
VeldB4
Gebruikmakend van de nieuwe basis, kan de volgende 30 eenvoudige doorzoeking voorgelegd worden:
selecteer VeldCl van VerbindingseenheidC
waarin VerbindingseenheidD.VeldB4="bepaaldeWaarde" 18
Een voorbeeld: verbindingseenheden voor een reactiegegevensnetwerk
Figuur 8 toont een entiteitrelatiediagram dat een eenvoudig reactiegegevensmodel illustreert bestaande uit drie 5 tabellen, Rxn, RxnMols, en Mols. Figuur 8 toont tevens hoe deze tabellen gekoppeld zijn door hun primaire en oneigen (foreign) sleutels (keys). Uit dit gegevensmodel kunnen gebruikers geïnteresseerd zijn in het bereiken van de volgende gegevens: reacties, reactanten, producten, reactant 10 moleculen en productmoleculen. Elk hiervan kan gedefinieerd worden als knooppunten in het gegevensnetwerk, die bewerkt worden door de in Figuur 9 getoonde verbindingseenheden.
Wanneer Reacties als basisverbindingseenheid gedefinieerd worden, kan de volgende hiërarchie uit het 15 gegevensnetwerk afgeleid worden:
RCTAB
Reactanten
CTAB
MolGewicht | 20 MolFormule !
Producten
CTAB
MolGewicht MolFormule i 25 |
Merk op dat omdat het type RctMol en PrcMol | verbindingseenheden een één-op-één gegevensverbindingseenheid j is, hun uitvoervelden samengevoegd worden met hun j corresponderende bronknooppunten. De uitvoervelden van j 30 Reactanten en Producten worden slechts gebruikt ter koppeling, zodat zij verborgen zijn en niet in de hiërarchie verschijnen. Merk tevens op dat de Reactanten en Producten verbindingseenheden beide de RxnMols tabel koppelen. Het 19 gebruik van de NAARTABELALIAS (TOTABLEALIAS) in deze verbindingseenheden maakt meervoudige verbindingseenheden (RctMol en PrdMol) mogelijk om vanuit dezelfde tabel gekoppeld te worden.
5 Het zojuist beschreven gegevensnetwerk definieert een enkele hiërarchie. Het vermogen van een gegevensnetwerkwerkwijze wordt duidelijk wanneer dit het verbindingseenheid toestaat om gedefinieerd te worden vanaf bladknooppunten terug naar het ouderknooppunt. Men kan 10 bijvoorbeeld twee nieuwe verbindingseenheden creëren die de Reactanten en Producten knooppunten terug naar Rxn (zie Figuur 10) koppelen.
Merk op dat de twee nieuwe verbindingseenheden dezelfde naam (Rxn) hebben en hetzelfde eruitzien. Het enige 15 verschil is de VANTABEL (FROMTABLE) waarde. Men koppelt vanaf de Reactanten-verbindingseenheid en de andere koppelingen vanaf de Producten-verbindingseenheid.
Gebruik makend van de eerste Rxn-verbindingseenheid (waarvan VANAFTABEL="Rcts"), kan de volgende alternatieve 20 hiërarchie afgeleid worden:
Reactanten
CTAB
MolGewicht MolFormule 25 RXN
RCTAB
Producten
CTAB
MolGewicht 30 MolFormule 20
Gebruik makend van de andere Rxn-verbindingseenheid (waarvan VANTABEL= "Prds"), kan de volgende alternatieve hiërarchie afgeleid worden:
Producten
5 CTAB
MolGewicht MolFormule RXN
RCTAB
10 Reactanten
CTAB
MolGewicht MolFormule 15 Figuur 11 toont een grafisch aanzicht van het zojuist gecreëerde gegevensnetwerk, waaronder Rxn, Reactanten en Producten als mogelijke bases van meervoudige, niet-statische hiërarchieën. 1 2 3 4 5 6 7 8 9 10 11
Het doorzoeken van het gegevensnetwerk 2
Een gegevensnetwerk kan doorzocht worden door gebruik 3 te maken van geünificeerde doorzoekingen; doorzoekingen die 4 zijn geschreven in de geünificeerde doorzoekingstaal (Unified 5
Query Language/UQL). UQL verschaft een gemeenschappelijke 6 syntax op doorzoeken van gegevensbronnen. UQL lijkt op SQL.
7
Om een gegevensnetwerk te doorzoeken, SELECTEER de 8 velden die gewenst zijn in de hiërarchie, specificeer de 9 basis van het gegevensnetwerk in de VANAF clausule en 10 specificeer de zoekconditie in de WAARIN clausule. Aangezien 11 een gegevensnetwerk meervoudige hiërarchieën kan hebben, bepalen de in de SELECTEER EN WAARIN clausules gebruikte velden welke hiërarchie gebruikt moet worden. Startend van de in de VANAF clausule gespecificeerde basis, worden de 21 verbindingseenheden gevolgd door het netwerk om een pad naar de gespecificeerde velden te bepalen. In de meeste gevallen is het kortste pad, hetgeen als eerste gevonden wordt, het correcte pad. In het geval dat het pad ambigu is, is het 5 mogelijk om een pad naar het veld te specificeren.
Om te zien hoe de velden in een gegevensnetwerk gevonden worden, beschouw het gegevensnetwerk dat gebruik wordt in samenhang met het in Figuren 8 en 9 getoonde voorbeeld. De doorzoeking selecteert bijvoorbeeld 10 Reactanten.CTAB vanuit Rxn. De zoekbewerking start bij de Rxn-verbindingseenheid. De Reactahten-verbindindingseenheid wordt gevonden en kan gebruikt worden omdat zijn VANAFTABEL waarde overeenkomt met de NAARTABEL waarde van Rxn en omdat zijn VANAFVELD waarde in het koppelveld overeenkomt met een 15 uitvoerveld van de Rxn-verbindingseenheid. (Merk op dat er meervoudige Reactanten-verbindingseenheden kunnen zijn. De eerste waarvan de koppelingen overeenkomen met die van Rxn, zal gebruikt worden.) De Reactanten-verbindingseenheid heeft niet het CTAB veld als uitvoerveld, zodat de zoekbewerking 20 doorgaat. De RctMol-verbindingseenheid wordt vervolgens onderzocht; uit zijn VANAFTABEL waarde en koppelveld komen overeen met de Reactanten-verbindingseenheid en deze heeft het CTAB uitvoerveld, zodat de zoekbewerking beëindigd wordt. Figuur 12 toont een deel van het zojuist beschreven 25 gegevensnetwerk.
In dit voorbeeld wordt het CTAB veld gevonden door het onderzoeken van alle verbindingseenheden vanaf de Reactanten totdat er een gevonden is die het CTAB veld heeft. Er zijn echter gevallen waarin het bruikbaar is om 30 verbindingseenheidpaden expliciet te kunnen specificeren door gebruik te maken van het PAD-attribuut van het UitvoerVeld element. Het PAD attribuut maakt de specificatie van een 22 bepaald pad mogelijk om gebruikt te worden voor een enkel uitvoerveld.
Wanneer eenmaal een gegevensnetwerk beschreven is, kan deze doorzocht worden en kunnen gegevens opgehaald worden 5 via het gebruik van de geünificeerde doorzoekingstaal (Unified Query Language/UQL). UQL is gebaseerd op SQL met uitbreidingen teneinde hiërarchische namen en chemische zoekfuncties te ondersteunen. De selecteerlijst van de SQL uitdrukking bepaalt de vorm van de hiërarchie die 10 teruggestuurd wordt, terwijl de Waarin clausule bepaalt welke gegevens teruggestuurd worden. Aangezien de hiërarchie een basis vereist, wordt deze gespecificeerd als de waarde van de Vanaf clausule. In object-georiënteerde terminologie wordt het doel van de Vanaf-clausule gevormd door de object-vragen 15 die gesteld worden. De Waarin-clausule is de vraag die men wil stellen en de selecteerlijst definieert de informatie die men teruggestuurd wil hebben.
In het algemeen is het algoritme dat bij voorkeur gebruikt wordt om de verzameling verbindingseenheden van een 20 bepaald hiërarchisch pad zoals A.B.C.blad als volgt te kiezen: 1. Het basisouder-veld en de verbindingseenheid daarvan moeten zich in de lijst toegestane bases bevinden.
2. Willekeurige ouders in het pad moeten een naam hebben 25 die overeenkomt met de naam van een verbindingseenheid. Voor een verbindingseenheid met de naam "B" die gebruikt moet worden vanaf verbindingseenheid "A", moet de vanaf tabel van "B" overeenkomen met de Tabel attribuut van "A". Bovendien moeten alle vanaf-koppelvelden in "B" gevonden worden als 30 uitvoervelden in "A".
3. Indien het bladveld gevonden is in de uitvoervelden in de uiteindelijke ouder, is de zoekbewerking voltooid. (Indien dit veld een PAD attribuut heeft, zijn tevens de 23 gespecificeerde verbindingseenheden noodzakelijk). Indien het bladveld niet gevonden is, worden de in het bevoorkeurde PadenElement gespecificeerde verbindingseenheden gecontroleerd om te zien of het bladveld daar gevonden kan 5 worden. Indien dat niet het geval is, wordt een uitgebreide zoekbewerking uitgevoerd om te zien of er één-op-één verbindingseenheden zijn die het bladveld uitvoeren en die verbonden kunnen zijn met de uiteindelijke ouder.
Enige voorbeelddoorzoekingen en hun resulterende 10 hiërarchieën volgen hierna: selecteer rxnchime(rctab),reactanten.*,producten.* vanaf rxc waarin rss(rctab, "doorzoeking") 15 of selecteer RxnChime(rctab),teactanten.*,producten.* vanaf rxn 20 waarin sss(reactanten.ctab, "doorzoeking") stuurt terug Rxn 25 RxnChime(RCTAB)
Reactanten
Ctab
MolGewicht
MolFormule 30 Producten
CTAB
MolGewicht
MolFormule 24 en selecteer *,SSS_HIGHLIGHT_CHIME(1)rxn.RxnChime(rctab) vanaf reactanten 5 waarin sss(ctab, "doorzoeking",1) terugstuurt
Reactanten 10 MolGewicht
MolFormule SSS_HIGHLIGHT-CHIME(1)
Rxn
RxnChime(RCTAB) 15
Doorzoeking-vertalingstrategieën
De IDS ondersteunt tenminste twee verschillende strategieën voor het vertalen van doorzoekingen in SQL: één strategie gebruikt slechts aaneenkoppelingen (joins) en de 20 andere strategie gebruikt samenkomsten voor één-op-één relaties en in clausules voor één-op-veel relaties. De samenkomst-strategie is de standaardstrategie indien geen strategie gespecificeerd wordt. De strategie kan gespecificeerd worden door een eigenschap in de 25 eigenschapverzameling die doorgestuurd wordt naar de EDBStatement.stelinGeünificeerdeDoorzoeking toe te voegen: i IDBRecordVerzameling rs=leeg (null); IDBUActualiseerEigenschapVerzameling eigensch = ds.
30 creëerEigenschapVerzameling (); ds.plaatsEigenschap("DOORZOEKING_STRATEGIE",(gebruikel nClausule)?"Srategie_In": "Strategie_Verbind"); IDBStatement statment = ds.creëerStatement(); 25 indien (!ds.stelinGeünificeerdeDoorzoeking(doorzoeking,eigensch)){ //Handel de fout af } anders { 5 Systeem.uit.Druklnaf ("Vertaalde doorzoeking: "+ statement.verkrij gVertaalde Doorzoeking(); rs=statement.voeruitDoorzoeking(); } 10 Bouwen van een IDS gegevensnetwerk uit een relationeel gegevensmodel
Alhoewel IDS niet in een bevoorkeurde uitvoeringsvorm een objectgeoriënteerde database is, is het handig om een gegevensmodel te analyseren vanuit het perspectief van een 15 object wanneer een netwerk van IDS-verbindingseenheden gebouwd wordt teneinde dat gegevensmodel te demonstreren.
Voorkeursstappen bij het bouwen van een dergelijk netwerk omvatten de volgende: 1. Analyseer het gegevensmodel om te beslissen welke 20 "objecten" gedemonstreerd moeten worden. Objecten zijn kenmerkend goed gedefinieerde entiteiten die eenvoudig beschreven kunnen worden (bijvoorbeeld employee, chemische structuur, batch informatie, etc.). Zij zijn gewoonlijk uitgevoerd in een of meer tabellen, waarbij één tabel de 25 primaire gegevens of tenminste de primaire sleutel voor elk object bevat. Deze objecten kunnen vaak de bases van hiërarchieën die zijn afgeleid van het netwerk, worden.
2. Analyseer de erfenisboom van deze objecten. Sommige gegevensmodellen kunnen zwaar gebruik maken van generieke 30 beschrijvingen die gedifferentieerd worden door de gegevensinhoud. IDS maakt het mogelijk dat dergelijke modellen afgehandeld worden door het definiëren van een object van laag niveau, dat vervolgens uitgebreid wordt om 26 afzonderlijk specifieke objecten te identificeren. Een kenmerkend voorbeeld komt van reactiegegevensmodellen, waarin reactanten, producten, katalysatoren etc. alle specifieke instanties zijn van een chemische structuurdefinitie van een 5 lager niveau. In de IDS kan een definitie van deze chemische structuur eenvoudig uitgebreid worden om de specifieke definities van elk van de componenten te ondersteunen.
3. Analyseer de relaties van elk van deze objecten met elkaar. Deze analyse omvat meervoudige (één-op-één, één-op- 10 vele) relaties en reciproque relaties (employee naar manager, manager naar employee).
4. Definieer verbindingseenheden voor elk van deze objecten zodat alle relevante gegevens in het object logische hiërarchie worden gedemonstreerd. Tracht elke verzameling 15 verbindingseenheden te creëren als een onafhankelijk, subnetwerk. Elk object zal een enkele basisverbindingseenheid moeten worden, die een entree in het subnetwerk verschaft. Andere verbindingseenheden worden met deze verbindingseenheid gekoppeld door juiste waarde uit de vanafTabel (fromTable) en 20 naar Table-attributen en koppelvelden (link fields).
5. Modificeer de verbindingseenheden voor elk van de subnetwerken om de relaties te weerspiegelen tussen de objecten in het netwerk. Dit wordt gedaan door het specificeren van de vanafTabel (fromTable)- en naarTafel 25 (toTable) attributen in koppelvelden. Indien een object relaties heeft met meer dan één ander object, kan een enkele basisverbindingseenheid meer keren uitgebreid worden om deze relaties te weerspiegelen.
6. Optimaliseer het netwerk en stem het netwerk af door het 30 toevoegen van verbindingseenheden die gegevens transformeren (draaiverbindingseenheid) en die gegevens van externe bronnen integreren (GegevensBronVerbindingseenheid). Verander, wanneer nodig, gebaseerd op het prestatiegedrag, sommige 27 verbindingseenheden om een uitgestelde ophaling toe te passen.
Figuren 13-17 tonen stroomdiagrammen die gedetailleerd aangeven hoe een UQL-doorzoeking vertaald wordt in standaard 5 SQL. De basisbenadering is dat de doorzoeking ontleed wordt in zijn basiscomponenten en dat elk van deze componenten geanalyseerd wordt om te bepalen welke verbindingseenheden vereist zijn. Deze verbindingseenheden worden vervolgens gebruikt om hiërarchische metagegevens te creëren zoals 10 gedefinieerd door de doorzoeking. Deze metagegevens worden gebruikt om de componenten van de UQL te vertalen. De verbindingseenheden zelf verschaffen de tabellen en aaneenkoppeling (joins) die noodzakelijk zijn voor de uitvoering van de doorzoeking.
15
Verdere uitvoeringsvormen Eén alternatieve uitvoeringsvorm is in hoofdzaak gefocusseerd op relationele gegevens. Gegevens van niet-relationele bronnen (Hview, XML, etc.) kunnen met enige 20 beperkingen geïntegreerd worden in het gegevensnetwerk.
Allereerst is de verbinding met de niet-relationele gegevensbron de basis van zijn hiërarchie. Beilstein gegevens kunnen bijvoorbeeld ingevoegd worden maar slechts verbonden worden via de basis van de Beilstein hiërarchie.
25 Ten tweede moet niet-relationele gegevens een eindknooppunt in het gegevensnetwerk zijn. Dit volgt uit het eerste punt aangezien verbindingen slechts met de basis kunnen worden gemaakt. Voor niet-relationele gegevens om te functioneren in het midden van een hiërarchie zou een 30 verbinding van een lager niveau gegevens vereist zijn.
Ten derde kunnen niet-relationele gegevens niet functioneren als de basis van een afgeleide hiërarchie. Dit volgt uit het tweede item.
28
Ondanks deze beperkingen, is integratie van niet-relationele gegevens tamelijk bruikbaar. Beilstein (een informatiesysteem van organische chemie met miljoenen chemische gegevensrapporten en reacties) kon bijvoorbeeld 5 verbonden worden onder ACD (Available Chemicals Directory) software om een transparante ophaling van Beilstein gegevens voor een willekeurige ACD invoer (entry) mogelijk te maken. Merk tevens op dat de IDS zelf behandeld kan worden als een niet-relationele bron zodat ieder willekeurig bestaand IDS 10 netwerk op een enkel punt verbonden kan worden met een ander punt.
Toegang tot IDS
De IDS wordt bij voorkeur bereikt zoals een 15 willekeurige andere gegevensbron. Deze kan gedefinieerd zijn als een nieuw type gegevensbron en gecreëerd worden als hetzij een van naam voorziene geïnitialiseerde instantie (instance) of een naamloze instantie die geleverd dient te worden met initialisatie XML.
20
Initialisatie XML
De verbindingseenheden die een gegevensnetwerk beschrijven, zijn bij voorkeur gedefinieerd door gebruik te maken van XML, die ingevoegd is in de initialisatie XML voor 25 de IDS. Het skelet van de IDS initialisatie lijkt als volgt: <Gegevensbron> <Verbindingseenheid> CVerbindinseenheidAttributen BRONNAAM="Mij nOracleGegevensBron"/> 30 <Bases> <Basis NAAM="Rxn"> CHiërarchie NAAM="RxnBasis" SELECTEER_LIJST="*,reactanten.producten.*/> 29 </Basis> <Basis NAAM="Reactanten"/> <Basis NAAM="Producten"/> • ♦ « 5 </Bases>
Voorkeurs Paden> <VoorkeurPad PAS="RctMol"/> • · * </Voorkeurspaden> 10 <Verbindingseenheden>
Verbindingseenheid.../>
Verbindingseenheid.../> </Verbindingseenheden> 15 </Verbindingseenheid> <Eigenschappen> <Eigenschap NAAM="foo"WAARDE="bar"/> <Eigenschap NAAM="bar"WAARDE="foo"/> 20 </Eigenschappen> </Gegevensbron>
Het VerbindingsAttributenelement specificeert de naam van een relationele gegevensbron die de verbinding verschaft 25 met de gegevens waarop de IDS werkzaam is. Het Baseselement bevat een lijst Basiselementen, elk waarvan de naam specificeert van een toelaatbare basis in de hiërarchie. Het Eigenschappenelement maakt mogelijk dat globale eigenschappen van de gegevensbron ingesteld worden.
Element Vereist? Definitie 30 30
Verbindingsattributen Ja Specificeert te naam van de relationele gegevensbron die de te integreren gegevens bevat
Bases Ja Een lijst van de toegelaten bases van afgeleide hiërarchieën. Er moet tenminste één toelaatbare gespecificeerde basis zijn
Initialisator Neen Bevat de naam van een Java-klasse die de initialisatie zal doen.
Eigenschappen Neen Bevat een lijst eigenschappen als naam/waardeparen 5 Verbindingseenheden Ja Bevat een lijst van verbindingseenheiddefinities
Het VerbindingsAttributenelement
Het Verbindingsattributenelement specificeert de naam van een relationele gegevensbron die de verbinding verschaft 10 met de gegevens waarop de IDS werkzaam is.
Element Attribuut Vereist? Definitie
VerbindingsAttributen BRONNAAM Ja De naam van een relationele gegevensbron Gegevensbron die de objecten bevat waarnaar verwezen wordt.
15 Het Baseselement
Het Baseselement specificeert welke verbindingseenheden toegestaan zijn als de basis van een afgeleide hiërarchie. (Men kan tevens hierover denken als het specificeren van de soorten objecten die opgehaald kunnen 20 worden). Het bevat een verzameling Basiselelementen, elk waarvan een enkele verbindingseenheid specificeert. Voor het gemak bij het doorzoeken kan elke basisverbindingseenheid tevens een of meer van naam voorziene vooraf gedefinieerde 31 hiërarchieën specificeren. Naar deze hiërarchieën kan verwezen worden door hun naam in de VANUIT clausule van een UQL statement. In de bovenstaande XML zou de UQL: 5 selecteer*vanuit RxnBasis waarin...
Geëxpandeerd worden tot: selecteer*,reactanten.,producten.*vanuit Rxn waarin..
10
Merk op dat wanneer een vooraf gedefinieerde hiërarchie gebruikt wordt, * het enige item in de selecteerlijst moet zijn.
15 Element Ouder Attribuut Vereist? Definitie
Basis Bases NAAM Ja, indien ID De naam van een niet verbindingseenheid die een gespecificeerd toelaatbare basis is is
Basis Bases ID Ja, indien De ID van een NAAM niet verbindingseenheid die een gespecificeerd toelaatbare basis is is
Hiërarchie Basis NAAM Ja De NAAM van de vooraf gedefinieerde hiërarchie. De waarde van het element bevat de selecteerlijst die gebruikt dient te worden wanneer deze hiërarchie in de VANUIT clausule gespecificeerd is.
Hiërarchie Basis SELECTEER_ Ja De selecteerlijst die gebruikt LIJST dient te worden wanneer deze hiërarchie gespecificeerd is in de VANUIT clausule.
Het heeft de voorkeur niet zowel een NAAM als een ID voor het basiselement te specificeren.
20 32
Het Initialisatorelement
Het Initialisatorelement specificeert de naam van een Java klasse die de IIDSInitialisator interface (hieronder beschreven) implementeert. Nadat alle andere configuratie-5 informatie verwerkt is en gespecificeerde verbindingseenheden gecreëerd zijn, wordt deze klasse geïnstantieerd en wordt de interface gebruikt om additionele configuratie XML op te halen.
10 Element Attribuut Vereist? Vocabulaire Definitie
Initialisator NAAM Ja Volledig De naam van een gekwalificeerde Java klasse die Java klasse de IIDSInitialisator interface implementeert.
Het Verbindingseenhedenelement
Verbindingseenheden kunnen geclassificeerd worden door 15 het soort gegevens welke zij verbinden (tabellen, gegevensbronnen, berekeningen, etc.), hun veelheid (één-op-één of één-op-veel), of zij gegevens onmiddellijk ophalen of slechts op verzoek, hoe zij gekoppeld zijn (door veldwaarden of SQL statements), en of zij een ouder-veld in de 20 resulterende hiërarchie creëren. Ongeacht de specifieke eigenschappen van een bepaalde verbindingseenheid, hebben ze bij voorkeur allen dezelfde basis XML structuur gemeen: cVerbindingseenheid 25 NAAM="foo" ID="bar" TYPE="EénNaarVeelGegevensVerbindingseenheid" VANUITTABEL="vanuitAlias" NAARTABEL="naarTabelNaam" 33 NAARTABELALIAS="naarAlias"> <koppelVelden> <KoppelVeldVANUITVELD="bronVeldNaam" NAARVELD="naarVeldNaam/> 5 </KoppelVelden> <FilterWaarden>
<FilterWaardeNAARVELD="naarVeldNaam,,WAARDE
="abc"/> 10 <FilterWaardeNAARVELD="naarVeldNaam2"> <Waarde>def</Waarde> <Waarde>ghi</Waarde> </FilterWaarde> 15 </FilterWaarden> <UitvoerVelden> <UitvoerVeldenNAAM="Sukkel"ALIAS="Nerd" PAD="NerdVanuitSukkel"/> 20 </UitvoerVelden> <Eigenschappen> <EigenschapNAAM="?Naam,,WAARDE=,,PropWaarde/> 25 </Eigenschappen> </Verbindingseenheid>
Element Attribuut Vereist? Definitie i 34
Verbindings- NAAM Ja, indien De naam van de verbindingseenheid, eenheid deze Voor verbindingseenheden die een ouder verbindings- creëren, zal deze naam de naam zijn eenheid niet van het ouder-veld in de afgeleide een andere hiërarchie. Verbindingseenheden die UITBREIDT geen ouder creëren, wordt deze naam intern gebruikt en verschijnt niet in een afgeleide hiërarchie. Aangezien het gegeven ouder gecreëerd kan worden door verbindingseenheden, behoeft de naam niet uniek te zijn. (In het reactiehiërarchie voorbeeld zijn er bijvoorbeeld twee Rxn verbindingseenheden, één de Reactanten verbindend en de ander de Producten verbindend met de Rxn tabel).
ID In sommige Een unieke identificator voor een
gevallen gegeven verbindingseenheid. De ID
waarde wordt gebruikt om een verbindingseenheid te identificeren die uitgebreid moet worden of gespecificeerd moet worden als een toelaatbare basis. (Indien een verbindingseenheid uitgebreid wordt, dient dit een ID te hebben).
TYPE Ja, behalve Het type verbindingseenheid als de (EenNaarVeelGegevensVerbindingseen- verbindings- heid), DraaiendeVerbindingseenheid, eenheid een etc. Zie hieronder.) Het gebruik van andere UITBREIDING en TYPE attributen zijn uitbreidt onderling exclusief.
5 ÜITBREI- Neen De ID van een verbindingseenheid die DING uitgebreid moet worden. Alle attributen en subelementen van de basisverbindingseenheid worden geërfd.
Alle kunnen overreden worden (behalve het TYPE attribuut). Het gebruik van UITBREIDING en TYPE attributen zijn onderling exclusief.
VANUIT- Neen De tabel waar vanuit de verbinding TABEL gemaakt is. Dit kan een reële tabelnaam of een tabelalias zijn.
35 NAARTABEL Neen De tabel of het beeld vanuit welke verbinding gemaakt is. Kan een SQL statement zijn maar in dit geval moet een waarde voor NAARTABELALIAS verschaft zijn. Niet vereist indien deze verbindingseenheid gebruikt wordt als basis voor andere welke het attribuut specificeren.
NAARTABEL Neen De alias die gebruikt moet worden voor ALIAS de tabel waarnaar de verbinding gemaakt is.
VALIDATIE Neen Te nemen actie wanneer validatie faalt. Indien niet gespecificeerd, wordt FALEN aangenomen.
ELIMINEER
Laat verbindingseenheid liggen FAAL
Gegevensbroninitialisatie faalt 5 Opmerkingen bij Verbindingseenheid XML: 1) Wanneer een verbindingseenheid gecreëerd wordt door het uitbreiden van een andere, kunnen alle attributen en sub-elementen overreden worden behalve het actuele verbindingseenheidtype. Wanneer een sub-element zoals een 10 KoppelVelden overreden wordt, wordt de geërfde waarde compleet vervangen. De uitzondering hierop is het Eigenschappen element waarin de eigenschappen samengevoegd worden.
2) Het gebruik van NAARTABELALIAS maakt het mogelijk 15 dat meervoudige verbindingen gemaakt worden naar dezelfde tabel, zoals met de Reactanten en Producten verbindingseenheden in het bovenstaande voorbeeld.
3) Naar een tabel in een andere instantie van Oracle (bijvoorbeeld) kan bij voorkeur verwezen worden via het 20 gebruik van db koppelingen en synoniemen.
36 4) Referenties naar velden in de gegenereerde SQL worden gekwalificeerd in de tabel (of tabelalias).
5) Wanneer verbindingseenheden met dezelfde NAARTABEL item in twee afzonderlijke aftakkingen onder een ouder 5 gebruikt worden, is er een afzonderlijke verbindingseenheid definitie voor elke aftakking met een verschillende NAARTABELALIAS item. Dit is om doorzoekingen uit te voeren die beide verbindingseenheden tegelijkertijd met zich meebrengen (zonder verschillende aliassen, zouden er ambigue 10 referenties naar velden kunnen zijn).
6) Indien er meervoudige verbindingseenheden zijn met dezelfde naam, kan slechts één daarvan een basis zijn en moet deze geïdentificeerd worden door zijn ID in de Basessectie.
15 Het Koppelveld element
Het KoppelVeld element bevat een lijst koppelvelden. Elk KoppelVeld element heeft twee attributen die de namen van de vanaf- en de naarvelden specificeren.
20 Element Attribuut Vereist? Definitie
KoppelVeld VANAFVELD Ja De naam van het veld in de brongegevens.
NAARVELD Hangt af van de De naam van het veld in de verbindings- verbindingsgegevens. Deze zal eenheid afwezig zijn in de
Selecteerverbindingseenheden.
FLEXMATCH Ja, indien De opties om te gebruiken in koppeling op de flexmatch functie wanneer structuur het koppelveld een chemische structuur is.
25 Opmerkingen bij KoppelVeld XML: 37 1) De naam van het VANAFVELD wordt gebruikt als het linker veld in een aaneenkoppeling die hetzij de VANAFTABEL of de VANAFTABELALIAS kwalificeert.
2) De naam van NAARVELD wordt gebruikt als het rechter veld 5 in een aaneenkoppeling die gekwalificeerd wordt door hetzij de NAARTABEL of NAARTABELALIAS.
Voorbeeld: 10 <KoppelVelden> <KoppelVeld VANAFVELD="RIREGNO"NAARVELD= "RIREGNO"/> <KoppelVeld VANAFVELD="CDBREGNO"NAARVELD= "MOLREGNO"/> 15 </KoppelVelden>
Het FilterWaardenelement
Het FilterWaardenelement bevat een lijst filterwaarden. Elk filterwaardeelement moet tenminste een 20 NAARVELD attribuut hebben die het veld specificeert in de doorzoeken verbonden gegevens. Voor een enkele FilterWaarde, heeft elk FilterWaarde-element tevens een Waarde-attribuut. Als alternatief kunnen meervoudige waarden gespecificeerd worden door meervoudige Waarde-elementen die elk een enkele 25 waarde bevatten.
Element Ouder Attribuut Vereist? Definitie
FilterWaarde FilterWaarden NAARVELD Ja De naam van het veld in de verbonden gegevens.
WAARDE Nee De waarde die gebruikt wordt in de doorzoeking.
38
Waarde FilterWaarde De elementwaarde specificeert een te koppelen waarde. Meervoudige elementen worden gecombineerd om een "in" clausule te creëren.
Voorbeelden: <FilterWaarden> 5 <FilterWaarde NAARVELD="ROL"WAARDE= "Reactant"/> </FilterWaarden> <FilterWaarden> 10 <FilterWaarde NAARVELD="ROL"> <Waarde>Reactant</Waarde> <Waarde>Product</Waarde> <Waarde>Reagens</Waarde> </FilterWaarde> 15 </FilterWaarden>
Het UitvoerVeldelement
Het UitvoerVeldenelement bevat een lijst van UitvoerVeldelementen, elk waarvan een enkel uit te voeren 20 veld specificeert. Als een shortcut kan het SELECTEER_ALLES attribuut ingesteld worden op het UitvoerVeldenelement; dit zal ervoor zorgen dat alle velden in de verbonden tabel uitgevoerd worden. (Deze lijst kan bewerkt worden door gebruik te maken van de hieronder beschreven 25 VERWIJDERDE/VERBORGEN).
39
Element Attribuut Vereist? Vocabulaire Definitie
UitvoerVelden SELECTEER_AL- Nee waar Indien waar, worden LES onwaar alle velden in de verbonden gegevens uitgevoerd.
UitvoerVelden NAAM Ja Actuele Kan een kolomnaam in veldnaam de verbonden tabel zijn of een SQL functie-aanroep.
ALIAS Nee Gewenste De alias om voor dit naam veld te gebruiken.
Indien verschaft, zijn alle referenties naar dit veld via deze naam.
5 VERBORGEN Nee waar Indien waar, is het onwaar veld niet zichtbaar in teruggestuurde recordverzamelingen. Kan gebruikt worden met SELECTEER_ALLES="waar" om velden van uitvoer te verbergen. Dit is bruikbaar wanneer een veld gebruikt wordt in koppelingen, maar niet voor de toepassingen zichtbaar zou moeten zijn.
VERWIJDER Nee waar Kan gebruikt worden onwaar samen met SELECTEER_ALLES="waar" om ophaling van dit veld in de gegenereerde SQL te verhinderen.
DOORZOEKBAAR Nee waar Indien onwaar, is het onwaar veld niet doorzoekbaar; waar wordt aangenomen indien afwezig.
40 TYPE Nee GeheelGetal Het type gegevens. Dit
Dubbele is vereist indien het
Variabele uitvoerveld een tekst functie is of
Structuur teruggestuurd wordt
Reactie door een SQL
Binair statement. Indien de waarde van TYPE gelijk is aan "Structuur" of aan "Reactie" moet tevens het corresponderende MOL FORMAAT/RXN FORMAAT attribuut ingesteld worden.
ISFUNCTIE Nee waar Moet aanwezig zijn en onwaar ingesteld zijn op waar indien het uitvoerveld een functie is.
PAD Nee Verbindings Specificeert een eenheidpad verbindingseenheidpad voor het bereiken van de gegevens. In het bovenstaande reactievoorbeeld zal bijvoorbeeld het CTAB uitvoerveld in de Reactantenverbindings-eenheid gespecificeerd zijn met een PAD attribuut "Mol".
VERPAKKING Nee Java klasse Specificeert een (WRAPPER) geheel gekwalificeerde
Java klasse die VeldVerpakking (FieldWrapper) uitbreidt. Dit kan gebruikt worden om interfaces naar binaire velden te verschaffen.
5 41
Opmerkingen over UitvoerVeld XML: 1) Een veld met een PAD attribuut moet een één-op-één gegevensrelatie hebben. Afhankelijk van het voor het bereiken van het veld gebruikte 5 verbindingseenheid/verbindingseenheden, kan de ophaling daarvan hetzij onmiddellijk zijn of uitgesteld zijn. Het voordeel van het specificeren van een veld met een PAD attribuut is dat het automatisch geïncorporeerd wordt in de uitvoervelden van de verbindingseenheid. In het bovenstaande 10 reactiegegevensmodel is bijvoorbeeld het CTAB veld in de MOL tabel. Indien het CTAB veld gespecificeerd is in de Reactanten/Producten verbindingseenheden met een PAD attribuut, zal het specificeren van Reactanten.*of Producten.* automatisch de CTAB in de afgeleide hiërarchie 15 incorporeren. Zonder het PAD attribuut, zou het CTAB veld ingebracht moeten worden in de selecteerlijst gebruik makend van de Reactanten.CTAB.
2) De waarde van het PAD attribuut kan een door een punt gescheiden pad van verscheidene verbindingseenheden zijn.
20 3) Een eenvoudige binnenweg (shortcut) wanneer de meeste, of zelfs alle velden in een tabel voor uitvoer gewenst zijn is om het SELECTEER_ALLE attribuut samen met de VERWIJDER en VERBORGEN attributen te gebruiken. Zie de voorbeelden hieronder.
25 4) De waarde van NAAM zal gebruikt worden in het selectiedeel van het SQL statement dat gekwalificeerd wordt door hetzij NAARTABELALIAS of NAARTABEL indien er geen alias gespecificeerd is.
5) Indien een functie gebruikt wordt voor een NAAM, 30 moeten de functie-argumenten reeds gekwalificeerd zijn met betrekking tot de juiste tabelreferenties.
-11^_l II
42 6) Andere eigenschappen die zijn gespecificeerd in het UitvoerVeldelement zouden gereproduceerd worden op het corresponderende veld in de resulterende metagegevens.
5 Voorbeelden: <UitvoerVelden> <UitvoerVeld NAAM="ROL"ALIAS="MijnRol"/> <UitvoerVeld NAAM="CTAB"PAD="Mol"/> </UitvoerVelden> 10 <UitvoerVelden SELECTEER_ALLE="waar"> <UitvoerVeld NAAM="SleutelVeld"VERBORGEN="waar"/> <UitvoerVeld NAAM="InternVeld"VERWIJDER="waar"/> </UitvoerVelden> 15 <UitvoerVelden> <UitvoerVeld NAAM="CTAB"/> <UitvoerVeld NAAM="CASGetal" PAD="OpzoekTabel.CASGetal"/> 20 <UitvoerVeld NAAM="CHIME (CTAB) "ALIAS="Chime" ISFUNCTIE="waar" TYPE="VariabeleTekst"/> </UitvoerVelden> 1 2 3 4 5 6
Het VolgordeDoorClausuleselement 2
Het VolgordeDoorClausuleselement bevat een lijst van 3
VolgordeDoorClausule-elementen, elk waarvan een enkel veld 4 specificeert dat gebruikt moet worden bij het sorteren 5 wanneer gegevens opgehaald worden door gebruik te maken van 6 deze verbindingseenheid als een sub-ouder. (Het sorteren op het basisniveau moet worden uitgevoerd door het specificeren van de "volgorde door" clausule in de doorzoeking).
43
Element Attribuut Vereist? Vocabulaire Definitie
VolgordeDoor Nee Bevat een of meer
Clausule VolgordeDoorClausu le-elementen
VolgordeDoor VELD Ja Een naam van De naam van het 5 Clausule een veld zoals veld dat gebruikt gespecificeerd moet worden in de in een sortering. Dit zou
UitvoerVeldele het veld moeten ment zijn zonder een tabelnaamkwalifica tor
VolgordeDoor RICHTING Ja opl, afl De richting van de
Clausule (asc,desc) sortering.
Voorbeelden: 10 <Verbindingseenheid NAAM="SysText" VERBINDINGSEENHEID="EénNaarVeelGegevensVerbindingseenheid" VANTABEL="RXNINST"NAARTABEL="SYSNO"> <KoppelVelden> <KoppelVeld VANAFVELD="RIREGNO"NAARVELD= 15 "RIRegno"/> </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM="SYSNO"VERBORGEN="waar"/> <UitvoerVeld NAAM="SYSTEXT"PAD= 20 "SysNoNaarSysTekst"/> </UitvoerVelden> <VolgordeDoorClausules> <VolgordeDoorClausule VELD="SYSTEXT.SYSTEXT" RICHTING="asc"/> 25 </VolgordeDoorClausules> </Verbindingseenheid>
Het Eigenschapelement 44
Het Eigenschappenelement bevat een lijst Eigenschapelementen die de werking van de verbindingseenheid beïnvloedt. Sommige eigenschappen kunnen tevens ingesteld worden op de gegevensbron om een globale waarde in te 5 stellen. (Deze globale waarde wordt overschreven door een willekeurige verbinding specifieke waarde).
Eigenschap Naam Eigenschap Verbindingsas Definitie
Waarde nheid?
Gegevensbron? GEBRUIKVERSCHILLEN waar Beide Indien waar, wordt de 10 D onwaar verschillend operator gebruikt op alle SQL statements die zijn gecreëerd door deze verbindingseenheid.
GEBRUIK_SELECTEER_ waar Beide Indien waar, wordt ALLE onwaar "selecteer*" gebruikt voor alle SQL statements die zijn gecreëerd door deze verbindingseenheid in plaats van een lijst van individuele velden. Dit zal genegeerd worden indien willekeurige uitvoervelden een alias specificeren.
FILTER waar Beide Indien waar, zullen alle onwaar gegevens die zijn opgehaald vanaf deze verbindingseenheid, gefilterd worden met betrekking tot de doorzoeking.
ZOEK_AANEENKOPPELI Rechtsbuit Verbindingsee Het type voor alle 15 NG_TYPE en nheid doorzoekingen en ophalingen
Linksbuite die zijn gecreëerde door deze n verbindingseenheid te
EquiAaneen gebruiken aaneenkoppeling.
koppeling Indien afwezig, wordt een equi-aaneenkoppeling gebruikt.
45 STELUITHULP- waar Verbindingsee Indien waar, hulp cartridge FUNCTIES onwaar nheid functie zoals SSS_HIGHLIGHT_CHIME worden uitgesteld wanneer op basisniveau velden. (Wegens de natuur van de cartridge, worden zij automatisch uitgesteld wanneer op velden van sub-ouders) BEREKENEENHEID- Java Verbindingsee Slechts vereist voor KLASSE klasse nheid BerekeneenheidVerbindingseen- naam heid. Specificeert de Java klasse die de berekening uitvoert.
5 SELECTEERCOMMENTAA Een Oracle Verbindingsee Specificeert een R commentaar nheid standaardcommentaar voor doorzoekingen. Kan overschreden worden door commentaar dat expliciet in UQL gespecificeerd is.
VANAFCOMMENTAAR Een Oracle Verbindingsee Specificeert een standaard te commentaar nheid gebruiken commentaar. Kan overschreden worden door expliciet in UQL gespecificeerd commentaar.
WAARCOMMENTAAR Een Oracle Verbindingsee Specificeert een standaard te commentaar nheid gebruiken commentaar. Kan overschreden worden door expliciet in UQL gespecificeerd commentaar.
Foutopspooreigonsehappen (Debug Proporties) 10 PRINT_ZOEK_TIJD waar Gegevensbron Slechts foutopsporing. Print onwaar de verstreken tijd voor zoekuitvoering.
PRINT_DOORZOEKING_ waar Gegevensbron Slechts foutopsporing. Print METAGEGEVENS onwaar metagegevens voor alle velden in de doorzoeking en de ophaling.
PRINT_OPHAAL_SQL waar Gegevensbron Slechts foutopsporing. Print onwaar alle voor gegevensophaling gebruikte SQL.
46 PRINT_VERTAALDE_ waar Gegevensbron Slechts foutopsporing. Print
DOORZOEKING onwaar de oorspronkelijke SQL
doorzoeking resulterend uit UQL vertaling.
PRINT_DOORZOEKING_ waar Gegevensbron Slechts foutopsporing. Print VERBINDINGSEEN- onwaar alle verbindingseenheden en 5 HEDEN hun gebruiksvlaggen nadat een doorzoeking geanalyseerd is.
PRINT_SECUNDAIRE_ waar Gegevensbron Slechts foutopsporing. Print DOORZOEKINGEN onwaar alle doofzoekingen die intern gebruikt worden om functionaliteit te implementeren.
PRINT_BASIS_ waar Gegevensbron Slechts foutopsporing. Print VERBINDINGSEENHEID onwaar de basisverbindingseenheid en al zijn kinderen na het analyseren van de doorzoeking.
10
Het specificeren van verbindingseenheden
Verbindingseenheden kennen een aantal soorten. In sommige gevallen zal een verbindingseenheid resulteren in verscheidene records die een hiërarchie creëren. In andere 15 worden velden van verscheidene bronnen geïntegreerd in een enkel record. Soms wordt een veld zelden opgehaald zodat het beste is om ophaling uit te stellen totdat een waarde verzocht wordt. Elk van deze scenario's kan door een specifieke verbindingseenheid afgehandeld worden. Een tabel 20 van bevoorkeurde verbindingseenheden en hun basiskarakteristieken volgt:
Type Verbindingseenheid Multiplierteit Uitgestel Koppelings- Creëert de type Ouder ophaling? veld? EénNaarVeelGegevens- Eén-naar-veel Ja Veldwaarden Ja 25 Verbindingseenheid EénNaarEénGegevens- Eén-naar-één Nee Veldwaarden Nee
Verbindingseenheid 47 EénNaarEénGegevens Eén-naar-één Ja Veldwaarden Ja
Verbindingseenheid EénNaarEénAfgeleide- Eén-naar-één Ja Veldwaarden Nee
Verbindingseenheid 5 DraaiVerbindingseenheid Eén-naar-veel Ja Veldwaarden Ja
BestaansVerbindingseenheid Eén-naar-veel Ja Veldwaarden Ja
BerekenVerbindingseenheid Eén-naar-één Ja Veldwaarden Nee
Gegevensbronverbindings- Eén-naar-veel Ja Veldwaarden Ja eenheid 10
Verbindingseenheidspecificatie
Neem voor de voorbeelden in de volgende beschrijving een gegevensmodel aan dat lijkt op: 15 Tabell Tabel 2 Tabel 3
PrimaireSleutel_l PrimaireSleutel_2 PrimaireSleutel_3
Veldl VreemdeSleutel_l CTAB Veld2
VreemdeSleutel_3 MolGewicht Veldll MolFormule 20 Veld22 en een verbindingseenheid voor Tabel 1 lijkt op:
Verbindingseenheid NAAM="Basis"TYPE= 25 "EénNaarVeelGegevensVerbindingseenheid" NAARTABEL="Tabe11”> <UitvoerVelden> <UitvoerVeld NAAM="Veldl"/> <üitvoerVeld NAAM="Veld2"/> 30 cüitvoerVeld NAAM= ,/PrimaireSleutel_l”VERBORGEN=,,waar,,/> </UitvoerVelden> </Verbindingseenheid> __________ 48
Aangenomen wordt dat Basis een toelaatbare basis van de hiërarchie is en een intreepunt is in het gegevensnetwerk.
(Deze verbindingseenheid definieert toegang tot alleen Tabel 1) .
5 EénNaarVeelGegevensVerbindingseenheid
Deze verbindingseenheid koppelt twee relationele tabellen met een één-op-veel relatie met de gekoppelde gegevens onder een ouder-veld. De ophaling wordt uitgesteld 10 totdat dit verzocht wordt. De verbindingseenheiddefinitie zou lijken op: «^Verbindingseenheid NAAM="Tabel20uder" TYPE="EénNaarVeelGegevensVerbindingseenheid" 15 VANAFTABEL="Tabel1"NAARTABLE="Tabel2”> <KoppelVelden> <KoppelVeld VANAFVELD="PrimaireSleutel_l" NAARVELD="VreemdeSleutel_l"/> </KoppelVelden> 20 <UitvoerVelden> <UitvoerVeld NAAM="Veldll"/> <UitvoerVeld NAAM="Veld22"/>
<UitvoerVeld NAAM="VreemdeSleutel_3"VERBORGEN
="waar"/> 25 </UitvoerVelden> </Verbindingseenheid>
De resulterende metagegevens zouden hierop lijken: 30 Veldl
Veld2
Tabel20uder
Veldll 49
Veld22 EénNaarEénGegevensVerbïndingseenheid
Deze verbindingseenheid koppelt twee relationele 5 tabellen met een één-op-één relatie met de gekoppelde gegevens, uitgevlakt op hetzelfde niveau van de hiërarchie als brongegevens. Ophaling wordt uitgevoerd op hetzelfde moment dat gegevens opgehaald worden voor de brongegevens. De verbindingseenheiddefinitie zou hierop lijken: 10
Verbindingseenheid NAAM="Tabel2_3Koppeling" TYPE="EénNaarEénGegevensVerbindingseenheid" VANAFTABEL="Tabel2"NAARTABEL="Tabe13"> <KoppelVelden> 15 CKoppelVeld VANAFVELD=/,VreemdeSleutel_3" NAARVELD="PrimaireSleutel_3"/> </KoppelVelden> <UitvoerVelden> cüitvoerVeld NAAM="CTAB"/> 20 <UitvoerVeld NAAM ="MolGewicht"/> <UitvoerVeld NAAM ="MolFormule"/> </UitvoerVelden> </Verbindingseenheid> 25 Het combineren van deze verbindingseenheid met de
Basis en Tabel20uder verbindingseenheden, zouden de resulterende metagegevens hierop lijken:
Veldl 30 Veld2 TAbel20uder
Veldll
Veld22 50
CTAB
MolGewicht
MolFormule 5 Merk op dat de Tabel2_3Koppeling verbindingseenheid geen ouder creëert.
Eén-op-EénUitgestelda Verbindingseenheid
Deze verbindingseenheid is identiek aan de Eén-op-10 EénGegevensVerbindingseenheid behalve dat de gegevens niet opgehaald worden totdat dit verzocht wordt. De resulterende metagegevens zijn identiek.
Eén-op-EénOuderVerbindingseenheid 15 Deze verbindingseenheid is identiek aan de Eén-op- EénUitgestelde Verbindingseenheid behalve dat deze een ouder-veld creëert zelfs alhoewel de meervoudigheid één-op-één is. Dit kan bruikbaar zijn om gegevensrelaties duidelijk te maken. Er zal maximaal een enkel record in de 20 recordverzameling van het ouder-veld zijn. De naam van de ouder is de naam van de verbindingseenheid.
DraaiVerbindingseenheid
Deze verbindingseenheid breidt de functionaliteit uit 25 van de Eén-op-VeelGegevensVerbindingseenheid door het toestaan van het transparant draaien van de gegevens. Indien de gedraaide kolommen gedeclareerd worden in het XML GedraaideVelden element, kan een doorzoeking uitgevoerd worden over de gedraaide structuur en automatisch door de 30 verbindingseenheid vertaald worden. De configuratie van deze verbindingseenheid specificeert alle informatie die noodzakelijk is om de niet-gedraaide recordverzameling in een vorm te creëren die identiek is aan de Eén-op- 51
VeelGegevensVerbindingseenheid en voegt additionele informatie toe onder het DraaiParams element dat specificeert hoe de draaiing uitgevoerd dient te worden. De inhoud van het DraaiParams element is identiek aan die van de 5 DraaiRecordverzameling met de toevoeging van het GedraaideVelden element.
De inhoud van het GedraaideVelden element bevindt zicht het standaard metagegevensformaat van het XD-bestand.
De velden moeten de kolommen definiëren die zullen resulteren 10 uit de draaibewerking. Elke veldspecificatie moet een type bevatten dat consistent is met de gedraaide gegevens daarvan. Alias-velden worden gespecificeerd met de alias als de waarden van de NAAM eigenschap en de werkelijke kolomnaam in de OORSPRONKELIJKENAAM eigenschap.
15 cVerbindingseenheidID="EigenschappenBasis" VERBINDINGSEENHEID="DraaiVerbindingseenheid" VANAFT ABEL=,,CI RX97 0 l_M2_RXNMOL" NAARTABEL="CIRX9701_M2_RXNMOL"> 20 <KoppelVelden> <KoppelVelden> CKoppelVeld VANAFVELD="RIRegno"NAARVELD= "RIRegno"/> CKoppelVeld VANAFVELD='MolRegno"NAARVELD= 25 "MolRegno"/> </KoppelVelden> <UitvoerVelden> CUitvoerVeld NAAM="MolRegno"/> cüitvoerVeld NAAM="PROP_NAAM"/> 30 CUitvoerVeld NAAM=,,PROP_TEXTVAL,//> CUitvoerVeld NAAM="PROP_NUMVAL" / > CUitvoerVeld NAAM="PROP_NUMVAL_LO"/> c/uitvoerVelden> 52 <Eigenschappen> <Eigenschap NAAM="FILTER"WAARDE= "onwaar"/> </Eigenschappen> 5 <DraaiParams> cindexVelden> cVeld>Molregnoc/Veld> </IndexVelden> <VeldenNaarDraaiing> 10 <Veld>PROP_NAAM</Veld> </VeldenNaarDraaiing> <WaardenNaarDraaiing> <SelectieveWaardeVelden> <SelectieveWaardeVeldstandaard= 15 "waar">
PROP_NUMVAL
c/SelectiefWaardeVeld> <SelectiefWaardeVeld> PROP_TEXTVAL
20 <DraaiVeldNaam>graad</
DraaiVeldNaam> </SelectiefWaardeVeld> </SelectieveWaardeVelden> c/WaardenNaarDraaiing> 25 <GedraaideVelden> <MetaGegevens> <VeldDef NAAM="cs"TYPE="Dubbel"/> CVeldDef NAAM="de"TYPE="Dubbel"/> <VeldDef NAAM="ds"TYPE="Dubbel"/> 30 CVeldDef OORSPRONKELIJKENAAM= "ee" NAAM="EnantExcess"TYPE= "Dubbel"/> CVeldDef NAAM="yield"TYPE= 53 "Dubbel"/> CVeldDef NAAM="graad"TYPE= "VariabeleTekst"/> </MetaGegevens 5 </GedraaideVelden> </GedraaideParams> </Verbindingseenheid>
BerekeningsVerbindingseenheid 10 Deze verbindingseenheid maakt het mogelijk dat custom berekeningseenheden gebruikt worden binnen een gegevensnetwerk. Deze breidt de Eén-op-EénUitgesteldeVerbindingseenheid uit zodat indien een berekening meervoudige waarden terugstuurt, deze geleverd 15 moeten worden in meervoudige velden. (Merk op dat meervoudige berekeningen uitgevoerd kunnen worden met UQL zelf). De daadwerkelijke berekening wordt uitgevoerd door een Java klasse die de IIDSBerekeningsinterface (hieronder besproken) implementeert. Bijvoorbeeld: 20
Verbindingseenheid NAAM="Calc"VERBINDINGSEENHEID= "BerekeningsVerbindingseenheid"VANAFTABEL="ABC"> <KoppelVelden> CKoppelVeld VANAFVELD="VeldGebruikInCalc_l'7> 25 <KoppelVeld VANAFVELD="VeldGebruikInCalc_2,7> </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM="CalcWaardel”TYPE= "Dubbel"/> 30 <UitvoerVeld NAAM="CalcWaarde2"TYPE= "VariabeleTekst"/> </üitvoerVelden> <Eigenschappen> 54 <Eigenschap NAAM="BEREKENEENHEID-KLASSE"WAARDE ="com.xyz.BEREKENEENHEID"/> </Eigenschappen> </Verbindingseenheid> 5
Merk op dat de koppelvelden willekeurige velden zouden moeten specificeren in door de berekening gebruikte ouder-verbindingseenheid aangezien dit zal garanderen dat zij opgehaald worden. Velden die zijn opgehaald voor de 10 berekening zullen niet verborgen worden aangezien zij toegankelijk dienen te zijn voor de berekeningsimplementatie. Aangezien geen koppeling daadwerkelijk uitgevoerd wordt, is geen NAARVELD attribuut vereist. Elk UitvoerVeld element dient het gegevenstype te specificeren dat teruggestuurd is 15 door de berekening. Merk op dat een enkele berekeneenheid implementatie meervoudige waarden kan terugsturen in meervoudige velden. De klasse die de berekeninterface implementeert (IIDSBerekeningseenheid) wordt gespecificeerd in de BEREKENEENHEID-KLASSE eigenschap.
20
GegevensBronVerbindingseenheid
Deze verbindingseenheid staat hiërarchieën van andere gegevensbronnen toe om ingevoegd te worden in een afgeleide hiërarchie. UQL zoekuitdrukkingen kunnen gebruikt worden om 25 velden over zowel externe hiërarchie als IDS hiërarchie te doorzoeken. De externe gegevensbron wordt bereikt als een enkele, vast hiërarchie. Aangezien de opzoekingen van deze externe gegevensbronnen aangedreven moeten worden tot hun voltooiing, kunnen er prestatiekosten zijn voor het gebruiken 30 van deze verbindingseenheid. De initialisatie XML voor de GegevensBronVerbindingseenheid is tamelijk verschillend van de andere: 55
Element Ouder Attribuut Vereist? Definitie
Verbindings Ja Specificeert de externe
Attributen gegevensbron.
Verbindings BRONNAAM Ja De naam van de gegevensbron 5 Attributen om mee te verbinden. Dit moet een naam zijn van een bekende gegevensbron
BasisNaam Ja De naam van de basis om te gebruiken voor opzoeking- en ophaalbewerkingen. Indien de CatalogusEigenschappen-element niet aanwezig is, worden de metagegevens voor de gegevensbron verkregen uit de catalogus door gebruik te maken van de basisnaam met de HIËRARCHIE Eigenschap
Catalogus Nee Bevat de lijst
Eigenschap- eigenschap/waardeparen pen gebruik makend van IDBCatalog.getCatalogMetaGe-gevens() teneinde de metagegevens op te halen om te gebruiken voor de hiërarchie. Indien niet aanwezig, wordt de waarde van BasisNaamelement gebruikt om metagegevens te verkrijgen.
10 Eigenschap Catalogus NAAM Ja Een eigenschapnaam om te
Eigenschap- gebruiken wanneer de pen catalogus voor metagegevens doorzocht wordt.
Eigenschap Catalogus WAARDE Ja Een eigenschapwaarde om te
Eigenschap- gebruiken wanneer de en catalogus voor metagegevens doorzocht wordt.
Verbindingseenheid NAAM="Beilstein"TYPE= "GegevensbronVerbindingseenheid"VANAFTABEL= 15 "ACD2 D_MOLTABEL"> 56 <VerbindingseenheidAttributen BRONNAAM="XFireprod"/> <BasisNaam>bs0302ae.s</BasisNaam> <KoppelVelden> <KoppelVeld VANAFVELD="SAMENSTELLING_ID"NAARVELD= 5 "BRN"/> <KoppelVelden> </Verbindingseenheid>
Opmerkingen over de GegevensBronVerbindingseenheid 10 1) Slechts een vaste hiërarchie kan geïntegreerd worden via de gegevensbronverbindingseenheid. De waarden van hetzij de BasisNaam of het CatalogusEigenschappen element worden gebruikt om de specificeren welke hiërarchie gebruikt moet worden.
15 2) De waarde van het/de KoppelVeldelement(en) specificeert hoe de velden in de ouder gegevensbron en de externe gegevensbron gerelateerd zijn.
GLOSSARIUM
20
Deze glossarium bevat termen die gebruikt worden in de onderhavige beschrijving.
Term Definitie 25 Hulpcartridge Een type verbindingseenheid dat de mogelijkheid verbindingseenheid verschaft om speciale functies te gebruiken die behoren bij het molecuul en de reactiecartridge zoekfuncties. Deze speciale functies worden gebruikt in de SELECTEER clausule en sturen gegevens terug die behoren bij een specifieke zoekfunctie in de doorzoeking.
57
Fundament Een verbindingseenheid die uitgebreid wordt door verbindingseenheid een andere verbindingseenheid. De attributen en kindelementen van de fundamentverbindingseenheid zullen geërfd worden door de sub-verbindingseenheid.
Berekeneenheid Een type verbindingseenheid dat het mogelijk maakt verbindingseenheid dat cliëntspecifieke berekeneenheden gebruikt worden binnen een gegevensnetwerk.
5 Verbindingseenheid XML beschrijving van een relatie tussen twee knooppunten van gegevens. Een verbindingseenheid bevat definities en eigenschappen die gebruikt worden om de oorspronkelij ke doorzoeking voor het doorzoeken en ophalen van gegevens te genereren.
Gegevensmodel Een beschrijving van de logische of fysieke relaties tussen entiteiten in een database.
Gegevensnetwerk Een serie knooppunten en verbindingseenheden die een complex gegevensmodel beschrijven.
Gegevensbron Een magazijn (repository) van gegevens met een herkenbare en consistente verzameling gegevenstypes die bereikt worden en gedemonstreerd worden door de MDL Kern Interface.
Gegevensbron Een type verbindingseenheid die het mogelijk maakt 10 verbindingseenheid dat hiërarchieën van niet-relationele tabellen geïntegreerd worden in een afgeleide hiërarchie.
Afgeleide Een hiërarchie van velden van gegevens die gevormd hiërarchie worden door de gekoppelde verbindingseenheden.
Uitgestelde Een type ophaling waarin de ophaling van ophaling gekoppelde gegevens uitgesteld wordt totdat de applicatie expliciet om deze gegevens vraagt.
58
Filter Een doorzoekingsconditie die de zoekresultaten beperkter maakt in records die overeenkomen met de gespecificeerde filterwaarden. Een filter is afgeleid van de uitgevoerde doorzoeking, maar wordt gebruikt op het moment van ophalen teneinde te verzekeren dat de opgehaalde gegevens overeenkomen met de gevraagde doorzoeking. Een filter wordt gebruikt wanneer gegevens van een ouder-veld opgehaald worden.
Hview Een bewerkbaar tekstbestand dat een geünificeerd aanzicht verschaft van heterogene gegevensbronnen, ondersteund door MDL, zoals een ISIS/Host database.
Hview gegevensbron Een type gegevensbron welke een ISIS/Host database representeert.
Integrerende Een type gegevensbron die de mogelijkheid 5 gegevensbron verschaft om meervoudige hiërarchische beelden van hetzelfde gegevensmodel te definiëren en te doorzoeken. De integrerende gegevensbron verschaft tevens uitgebreide functionaliteit zoals het draaien van gegevens, custom berekeningseenheden en de mogelijkheid om niet-relationele gegevens in een afgeleide hiërarchie te integreren.
Koppelveld Een veld dat een verbindingseenheid gebruikt om het ene knooppunt met het andere te koppelen. De aaneenkoppeling van de twee koppelvelden is opgenomen in de WAAR clausule van de gegenereerde oorspronkelijke doorzoeking.
Gekoppeld He knooppunt waaraan de verbindingseenheid het knooppunt bronknooppunt mee verbindt. Dit zijn de gegevens die zijn gespecificeerd in het NAARTABEL attribuut van het verbindingselement. Dit wordt soms "gekoppelde gegevens" genoemd.
Veld van lager Een veld in een recordverzameling onder een ouder- 10 niveau veld.
Metagegevens Informatie over de inhoud van een recordverzameling of een gegevensbron.
59
Metatag Een custom XML attribuut of tag die toegevoegd kan worden aan een uitvoervelddefinitie (in een verbindingseenheiddefinitie). Deze custom naam/waardetag zal gekoppeld worden aan de uitvoervelddefinitie in de metagegevens.
Oorspronkelijke Een doorzoeking die de oorspronkelijke taal van de doorzoeking onderliggende gegevensbron gebruikt. De oorspronkelijke doorzoeking van een relationele gegevensbron is bijvoorbeeld SQL.
Knooppunt Een verzameling gegevens die een verbindingseenheid koppelt met een andere gegevensverzameling. Een knooppunt kan hetzij een relationele tabel, een gegevenshiërarchie, een SQL statement, een berekening of een gegevensbron zijn.
5 Eén-op-veel Een type verbindingseenheid die twee relationele verbindingseenheid tabellen koppelt met een één-op-veelrelatie. De gekoppelde gegevens creëren een recordverzameling onder een ouder-veld in de hiërarchie van de brongegevens. De ophaling van de gekoppelde gegevens wordt uitgesteld totdat dit verzocht wordt.
Eén-op-veel Een type verbindingseenheid die soortgelijk is aan selecteer de één-op-veel verbindingseenheid, behalve dat de verbindingseenheid één-op-veel selecteer verbindingseenheid een relationele tabel koppelt met de resultaten van een SELECTEER statement in plaats van een andere tabel.
10 Eén-op-één Een type verbindingseenheid die twee relationele verbindingseenheid tabellen koppelt met een één-op-één relatie. De gekoppelde gegevens worden afgevlakt in hetzelfde niveau van de hiërarchie als de brongegevens. De ophaling van de gekoppelde gegevens wordt uitgevoerd op hetzelfde moment dat de gegevens opgehaald worden voor de brongegevens.
II_ _ 60 Eén-op-één Een type verbindingseenheid die twee relationele uitgestelde tabellen koppelt met een één-op-één relatie. De verbindingseenheid gekoppelde gegevens worden uitgevlakt in hetzelfde niveau van hiërarchie als de brongegevens. De ophaling van de gekoppelde gegevens wordt uitgesteld totdat dit verzocht wordt.
Eén-op-één ouder Een type verbindingseenheid die twee relationele 5 verbindingseenheid tabellen koppelt met een één-op-één relatie. De gekoppelde gegevens creëren een recordverzameling onder een ouder-veld in de hiërarchie van de brongegevens, zelfs alhoewel de relatie één-op-één is. De recordverzameling in het ouder-veld zal maximaal een enkel record bevatten. De ophaling | van de opgehaalde gegevens wordt uitgevoerd op hetzelfde moment dat de gegevens opgehaald worden voor de brongegevens.
Eén-op-één Een type verbindingseenheid die soortgelijk is aan selecteer de één-op-één verbindingseenheid, behalve dat de verbindingseenheid één-op-één selecteer verbindingseenheid een relationele tabel koppelt met de resultaten van een SELECTEER statement, in plaats van een andere tabel. j ~ j
Uitvoerveld Een veld dat ingevoegd moet worden in een afgeleide hiërarchie. Dit veld is ingevoegd in de SELECTEER clausule van de gegenereerde ! oorspronkelijke doorzoeking.
10 Ouder-veld Een veld aan de top van een niveau in een | gegevenshiërarchie. Een ouder-veld heeft geen ! i gegevens zelf, maar bevat een recordverzameling j bevattende de gegevens van lager niveau.
--j
Draai- Een type verbindingseenheid die de functionaliteit j verbindingseenheid uitbreidt van een één-op-één verbindingseenheid door het toestaan van transparante draaiing van gegevens.
61
Draaiing Een techniek die gegevens transformeert gebaseerd op index- en draaivelden. Het transformeren van een grote, smalle tabel (met veel rijen, weinig kolommen) in een korte vette tabel (met weinig rijen, veel kolommen).
Primitieve Een enkele, niet-integrerende gegevensbron, gegevensbron
Doorzoeking Een commando die gegevens opzoekt en ophaalt.
Gebruik UQL om doorzoekingen te schrijven op gegevensnetwerken van een integrerende gegevensbron.
5 Recordverzameling Een verzameling van records van gegevens. Kern
Interface stuurt de resultaten terug van een opzoeking in een recordverzameling.
Relationele Een type gegevensbron dat een Oracle database
gegevensbron representeert, omvattende databases die de MDL
Direct molecuul en reactie cartridges gebruiken.
Basis Een verbindingseenheid die een intreepunt voor een verbindingseenheid gegevensnetwerk verschaft.
10 Basisveld Een veld op het allerhoogste topniveau van een gegevenshiërarchie.
Bronknooppunt Het knooppunt waar vanaf de verbindingseenheid het gekoppelde knooppunt verbindt. Dit zijn de gegevens die zijn gespecificeerd in het VANAFTABEL attribuut van het verbindingselement. Dit wordt tevens "brongegevens" genoemd.
Sub- Een verbindingseenheid die en verbindingseenheid basisverbindingseenheid uitbreidt. De sub- verbindingseenheid erft de attributen en kindelementen van de basisverbindingseenheid. Behalve het TYPE attribuut, kan de sub-verbindingseenheid de attributen en kindelementen van de basisverbindingseenheid overschrijven.
SQL De oorspronkelijke taal voor het doorzoeken van een relationele database.
62 UQL Een SQL-achtige taal die een standaard syntax en een verzameling uitdrukkingen voor het construeren van doorzoekingen verschaft. UQL staat voor "Unified Query Language", welke een feature is van de Gegevensbron service (Data Source Service) van MDL Kern Interface (Core Interface).
Geünificeerde Een doorzoeking die geschreven onder gebruikmaking doorzoeking van UQL.
XML Een standaard voor het definiëren van een mark-up taal voor het beheersen en verzenden van gestructureerde informatie. XML staat voor "Uitbreidbare Markup Taal".
5 SML gegevensbron Een type gegevensbron die XML gegevens representeert welke gebruik maken van het XD bestand (vroeger het 'MDLXML") formaat.
IDS Specifieke Interfaces
Interface IIDS Berekeningseenheid
Publiek interface IIDS Berekeningseenheid 10 Custom berekeningseenheden dienen deze interface te implementeren.
Werkwijze-overzicht j ava.lang.Obj eet bereken(com.mdli.isentris.gegevensbron.
interfaces.IDBRecordVerzameling rs, com.mdli. isentris.gegevensbron.interfaces.IDBVeld veld)
Stuur terug het resultaat voor een berekening.
15 com.mdli. isentris. util. Verkri-ialaatsteFout ()
Client.IICSFout
Stuur oorzaak van falen terug.
booliaans Initialiaeer (IDBGeaevensbron ds, com.mdli.
isentris.util.XMLKnooppunt xml)
Initialiseer deze berekeneenheid.
63
Werkwijze detail initialiseer publieke booliaans initialiseer (IDBGeaevensbron ds, 5 com.mdli.isentris.util.XMLKnooppunt xml) initialiseer deze berekeneenheid
Parameters: ds - De partieel geïnitialiseerde IDS 10 xml - De ontleedde XML boom voor deze verbindingseenheid
Stuurt terug: waar indien succesvol. Stuur onwaar terug indien er 15 een fout was en verschaf additionele foutinformatie in verkrijgLaatsteFout(getLastError) bereken 20 publiek java.lang.Object bereken(com.mdli.isentris.gegevensbron.interfaces. IDBRecordVerzameling rs,com.mdli.istentris.gegevensbron.interfaces.
IDBVeld veld) 25 Stuur het resultaat voor berekening terug
Parameters: rs - De bron recordverzameling veld - Het veld voor de berekening Stuurt terug: 30 De berekeningswaarde.
VerkrijgLaatsteFout 64 publiek com.mdli.isentris.util.cliënt.IICSFout verkrijgLaatstePout()
Stuur oorzaak van falen terug Stuurt terug: 5 een object dat IICSFout implementeert
Interface XIDSInitialisator
Publieke interface XIDSInitialisator 10 Deze interface wordt gebruikt voor klantgerichte (custom) initialisatie.
Werkwij ze-overzicht com.mdli. isentris. util. cliënt verkriicrLaatstefout() 15 .IICSFout Stuur oorzaak van falen terug java.lang.String Initialiseer (IDBGeaevensbron ds, com.mdli.istentris.util.XML Knooppunt xml)
Stuur initialisatie XML voor deze gegevensbron terug
Werkwii zedetail 20 Initialiseer publiek java.lang.String initialiseer (IDBGeaevensbron ds, com.mdli.istentris.util.XMLKnooppunt xml)
Stuur initialisatie XML voor deze gegevensbron terug Parameters: 25 ds - De partieel geïnitialiseerde IDS. Alle verbindingseenheden gedefinieerd binnen de gegevensbron.xml bestand zullen gecreëerd en gevalideerd zijn.
xml - De ontleedde XML boom van element 65
Stuurt terug:
Initialisatie XML van de vorm: <BovensteXBasesXBasis/>. . . </Bases><Verbindingseenheden><Ver bindingseenheid/>...</Verbindingseenhedenx/Bovenste> 5 waarin het element voor tag voor "bovenste" genegeerd wordt. Stuur nul terug indien er een fout was en verschaft additionele foutinformatie in verkrijgLaatsteFout() 10 verkrijgLaatsteFout() (getLastError) publiek com.mdli.isentris.util.cliënt.IICSFout verkrijgLaatsteFout()
Stuur de oorzaak van falen terug 15 Stuurt terug: een object dat IICSFout implementeert
Gebruiksscenario's
Deze sectie verschaft scenario's die de voordelen 20 illustreren van het gebruik van de IDS in verscheidene uitvoeringsvormen.
1. Een geleerde kan een willekeurige IDS doorzoeking samenstellen door gebruik te maken van een integrerende gegevensbron. Zij kunnen een lijst terugkeer gegevensvelden 25 creëren gebruik makend van dezelfde integrerende gegevensbrondefinitie. De resulterende gegevens maken gegevensophaling mogelijk in een verscheidenheid van afbeeldformaten die onafhankelijk zijn van de gegevensbronnen. De geïntegreerde gegevensbron handelt 30 opzoeking en gegevensophaaloptimalisatie af, verbergt de interne complexiteiten en verschaft de onderliggende functionaliteit voor een gebruikersvriendelijke werkomgeving. Wanneer de IDS doorzoeking eenmaal geconstrueerd is, kan de 66 IDS terugkoppeling verschaffen voor de doorzoekingsvaliditeit. De doorzoeking kan vervolgens geconstrueerd worden voor een optimale prestatie voor zowel doorzoekingsuitvoering als gegevensophaling. De gebruiker kan 5 voorzien worden van indicatoren dat hun doorzoeking op juiste wijze uitgevoerd is. De geleerde kan de doorzoeking/resultatenuitvoering onderbreken zowel gedurende de doorzoekingsfase als gedurende de resultatenophaalfase. Op ideale wijze wordt een dergelijke onderbreking afgehandeld 10 door Oracle. Op het toepassingsniveau is de geleerde in staat om te pauzeren en om door te gaan of om de resultatenophaalfase te beëindigen.
Het resultaat van deze mogelijkheid is dat een chemicus die hét meest geïnteresseerd is in het chemische 15 aspect van medicijnresearch zijn doorzoekingen in een meer "chemie gecentreerde" oriëntatie ontwerpt, terwijl een bioloog zijn doorzoekingen in een meer "biologisch gecentreerde" oriëntatie kan ontwerpen. De gecentreerdheid van elke doorzoeking/resultatenuitvoering zou afhangen van 20 twee factoren: de doorzoekingsuitdrukking en de configuratie van de IDS. Dezelfde IDS zou zowel chemische als biologische doorzoekingen kunnen ondersteunen. Een geleerde kan een voorkeur instellen voor het terugsturen van chemie- of biologie-gecentreerde resultaten, ongeacht van het type 25 uitgevoerde doorzoeking, en voert lijstbewerkingen op de resulterende recordverzamelingen uit.
2. Een administrator heeft eerder een IDS geprepareerd, getest en gebruikt voor
doorzoeking/resultatenophaling van biologische, chemische en 30 uitvindingsinformatie. Hij heeft een enkele IDS XML
configuratiebestand gecreëerd voor het verschaffen van toegang voor biologen, chemici en inventarisatiepersoneel.
Zij moeten nu echter deze gegevensbronnen integreren in een 67 nieuwe oplossing, zonder de huidige doorzoeking/ophaalbewerkingen die onafhankelijk uitgevoerd worden door elke groep te onderbreken.
De administrator kan nu nieuwe entiteithiërarchieën 5 toevoegen aan de bestaande zonder gedwongen te worden om verbindingseenheid XML code te kopiëren tussen de bestaande biologische, chemische en inventarisatie-tags. Hij kan biologisch-chemische, chemisch-biologische en elke willekeurige andere combinatie van entiteithiërarchieën in 10 elke willekeurige volgorde creëren zonder bestaande XML code te hoeven dupliceren. Kenmerkende entiteittypen omvatten chemische, biologische en inventarisatie entiteittypen, maar kunnen vele andere typen omvatten zoals door de vakman begrepen zal worden.
15 De administrator kan deze bewerking uitvoeren door het eenvoudigweg verbinden van bestaande entiteithiërarchieën in hun verscheidene combinaties teneinde een diverser, geïntegreerd doorzoekings/resultaatophaalsysteem te verschaffen. Dan kunnen de chemici de andere 20 wetenschappelijke gebieden doorzoeken door gebruik te maken van de nieuwe entiteithiërarchieën. Indien een chemicus slechts zoek/resultatenophaling ten opzichte van chemische gegevens uitvoert, zal automatisch de oude chemische entiteithiërarchie gebruikt worden zoals het daarvoor was en 25 zal hij dezelfde basisniveauresultaten verkrijgen.
3. Een gebruiker of ontwikkelaar opent een integrerende gegevensbron en voert een zoekbewerking uit ten opzichte van een basishiërarchie. De gebruiker stuurt vervolgens de resulterende hits terug in een groot document 30 en bekijkt de gegevens in een klein venster in dat grote document. Terwijl de originele gegevens doorlopen worden, krijgt de gebruiker een helder idee over bepaalde gerelateerde gegevens en wenst een andere doorzoeking ten 68 opzichte van een tweede gegevensbron uit te voeren, zonder de inhoud van de originele zoekbewerking te verliezen. Zij kunnen een secundaire basiszoekbewerking en gegevensafbeelding uitvoeren zonder de inhoud van de 5 originele zoekbewerking te beïnvloeden. Het effect is dat de verschillende IDS bases onafhankelijk doorzocht kunnen worden zonder elkaar te corrumperen of opnieuw in te stellen. De enige keer dat de originele inhoud van de zoekbewerking vervangen of geïnvalideerd zou worden is wanneer de originele 10 basis opnieuw gebruikt wordt om een zoekbewerking uit te voeren.
Deze mogelijkheid van het tegelijkertijd uitvoeren en zien van meervoudige zoekbewerkingen ten opzichte van verschillende IDS bases heeft significante voordelen in 15 toepassingsontwerp en bruikbaarheid.
4. Een eindgebruiker tracht een zoekbewerking uit te voeren voor een serie reagentia. De gebruiker gebruikt een serie databases (ACD, Aldrich en een interne opslagruimte database). De zoekbewerking was een eenvoudige SSS voor de 20 basisstructuur. De gebruiker stopt een structuur in een vak op het formulier. De doorzoeking wordt uitgevoerd en de resultaten worden afgebeeld als het eerste record en het totaal aantal hits van alle gegevensbronnen en het aantal hits in elk van de databases. De gebruiker leest dan door elk 25 record en selecteert welke records van de verkoper besteld moeten worden.
5. Een eindgebruiker voert een zoekbewerking uit naar een structuur die gebaseerd is op een structuur en criteria van een verzameling regulatietabellen. De regulatietabellen 30 zijn lijsten van ID's en het type van de substantie en de gebruikerstoestemming teneinde met de geselecteerde structuur te werken of deze te bestellen. Een lijst van structuren wordt teruggestuurd vanuit de doorzoeking en afgebeeld op het 69 scherm. De gebruiker selecteert één samenstelling en beeldt de structuur af van alle relevante samenstellingsgegevens. De gebruiker selecteert een tab die de Structuur, ID en alle regulatore gegevens voor deze structuur afbeeldt.
5 6. Een administrator ontvangt een bestand met alle nieuwe gereguleerde substanties die opgesomd zijn door een CAS getal en een naam. De administrator moet nu alle CAS nummers doorzoeken en genereert een lijst structuren corresponderend met die nummers. Vervolgens moeten alle 10 instanties van die structuren hun primaire sleutels geregistreerd hebben in een kruis-referentietabel voor gereguleerde gegevens.
7. Een bioloog heeft zojuist een idee gekregen voor een type samenstelling voor een nieuwe ontvangersite. De 15 bioloog wil historische samenstellingen in de monsterruimte doorzoeken en afbeelden na testen die goede ADME getallen hebben. De bioloog wil zien welke test eerder op deze samenstellingen zijn uitgevoerd. De biologiegegevens worden opgeslagen in een groep lange, smalle tabellen. De bioloog 20 voert de sub-structuur in een ADME drempel in die een acceptabel niveau zullen verschaffen om de samenstelling in het systeem te verkrijgen. De bioloog kent de test, maar niet de database en dient geholpen te worden met de doorzoeking, aangezien de gegevens zich niet oorspronkelijk in een 25 doorzoekbare vorm bevinden. De zoekbewerking wordt uitgevoerd en de structuren en alle testen die eerder op de samenstellingen zijn uitgevoerd zullen nu op het scherm worden afgebeeld.
8. Verander hiërarchieën gedurende een serie nauwer 30 wordende zoekbewerkingen
Rationale: Eén van de kritieken op HVIEW was het feit dat elke "database" een vooraf gedefinieerde hiërarchie had. Indien men de basis wenste te veranderen, diende er een 70 andere database geopend te worden, die zelfs indien deze dezelfde gegevens bereikte.
Beschrijving: Zoek op reacties en op de resultatenverzameling; vernauw de zoekbewerking met de 5 product molecuul-gerelateerde criteria.
Stappen: i) Open een IDS met reactie, molecuulrol 91:n), molecuul (1:1) en molecuuleigenschappen (l:n).
ii) Voer een reactiezoekbewerking (RSS, reaction search) uit. 10 iii) Grasduin door het op reactie gebaseerde record en bekijk gegevens die gerelateerd zijn aan verscheidene moleculen.
iv) Transformeer lijst naar productmoleculen.
v) Voer een zoekbewerking uit op de productmoleculen (zeg niet-structureel, misschien eigenschap-gerelateerd).
15 vi) Grasduin door op productmolecuul gebaseerde recordverzameling en bekijk gegevens die zijn gerelateerd aan reacties alsmede molecuuleigenschappen.
9. Een gebruiker voert een zoekbewerking van lager niveau uit ten opzichte van een IDS en krijgt een 20 hiërarchische recordverzameling. De gebruiker wenst dan een tweede zoekbewerking uit te voeren ten opzichte van deze zelfde hiërarchie door het instellen van het zoekdomein in een lagere niveau waarin hij de eerdere zoekbewerking had uitgevoerd. De gebruiker kan het domein van lager niveau 25 instellen om verder de inhoud van deze volgende zoekbewerkingen te verfijnen.
Hij kan tevens zoekbewerkingen uitvoeren op elk willekeurig niveau in de IDS hiërarchie en vervolgens het huidige zoek/zie domein voor deze of voor willekeurig ander 30 niveau in de hiërarchie in te stellen. Het alternatief hiervoor is dat de gebruiker gedwongen zou zijn om veel complexere doorzoekingen uit te voeren teneinde zijn zoekhits 71 verder te beperkingen en dit zal waarschijnlijk leiden tot significante prestatieproblemen.
10. Een bioloog bekijkt vijf Analyses (als de basis) welke resultaten bevatten met molecuulinformatie. Deze 5 recordverzameling representeert 100 moleculen totaal. De bioloog zou de resultaten op hun kop willen zetten en de molecuul als basis willen zien. Hij kan een doorzoeking opnieuw uitvoeren en de basis instellen als zijnde de molecuul en gebruikt de molecuul IDfs van de 10 recordverzameling om de eerdere recordverzameling door molecuul te zien, dat wil zeggen dat de gebruiker 100 records te zien krijgt en alle Analyse Resultaten met betrekking tot elke structuur ziet.
11. Verbindingseenheden ondersteunen het gebruik van 15 Oracle Text en Oracle XMLDB functionaliteit.
Selecteerstatements zoals deze worden bijvoorbeeld ondersteund: SELECTEER SCORE (1), id, naam, resultaat VANAF testgegevens 20 WAARIN BEVAT (uittreksel, 'NABIJ((ontvanger, kinase), 10) ' ,1)>0 ORDEN OP SCORE; of
SELECTEER EXTRAHEERWAARDE
25 (WAARDE(rapport_tabel).'/rapport/conclusie')VANAF XMLTABEL rapport_tabel
Dit maakt integratie mogelijk van zoekbewerkingen in documenten, rapporten, etc. 1
Alhoewel de hierin getoonde en beschreven uitvoeringsvormen volledig in staat zijn de doelen van de uitvinding te bereiken, dien begrepen te worden dat deze uitvoeringsvormen slechts getoond zijn met als doel 72 illustratie en niet met als doel beperking en dat variaties duidelijk zullen zijn voor de vakman in het licht van de voorgaande beschrijving.
73
Bijlage A: Een compleet voorbeeld
Het volgende is een complete definitie van verbindingseenheden om een bevoorkeurd gegevensmodel te bereiken. Het staat moleculen, cas-nummers, producten, 5 pakketten of catalogi toe om de basis van de afgeleide hiërarchie te zijn. Figuur 3 is een grafisch aanzicht van het netwerk.
<GegevensBron NAAM = "NieuweACDOracle" TYPE = "IDS" > 10 <Verbinding> <VerbindingAttributen BRONNAAM = "OracleNieuweACD"/> <Wortels> <Wortel ID = "Moll”> <Hierarchie NAAM = "MolWortel" 15 SELECTEER_LIJST = "*, casnummers.*, producten.*,producten.pakketten.*,producten.pakketten. catalogus.*,producten.pakketten.catalogus.bedrij f.*"/> </Wortel> <Wortel ID = "Catalogusl"> 20 <Hierarchie NAAM = "CatalogusWortel"
SELECTEER_LIJST
="*,bedrijf.*producten.*,producten.mol.*"/> </Wortel> <Wortel ID = "Productenl"> 25 <Hierarchie NAAM = "ProductWortel" SELECTEER_LIJST = mol.*,pakketten.*, catalogus.*"> </Wortel> <Wortel NAAM = "Pakketten"/> <Wortel NAAM = "CAS-Nummers"/> 30 </Wortels> <Verbindingseenheden> <Verbindingseenheid NAAM = "Mol" ID = "Moll” VERBINDINGEENHEID = "EenNaarEenüitgesteldeVerbindingseenheid" 74 VANAFTABEL = "ACD2 D_MOLTABEL" NAARTABEL = "ACD2D_M0LTABEL"> NAARTABELALIAS="M"> <KoppelVelden> 5 CKoppelVeld VANAFVELD = "CDBRegno" NAARVELD = "CDBRegno"/> <KoppelVelden> <UitvoerVelden> CUitvoerVeld NAAM = "CDBRegno"/> 10 «CUitvoerVeld NAAM = "MolNaam"/> <UitvoerVeld NAAM = vMDLNummer"/> <UitvoerVeld NAAM = "Molgewicht"/> <UitvoerVeld NAAM = "CLOGP"/> <UitvoerVeld NAAM = "CTAB" PAD = 15 "UitgesteldCTAB"/> </UitvoerVelden> </Verbindingseenheid>
Verbindingseenheid NAAM = "Mol" BREIDT UIT = "Moll" VANAFTABEL = "ACD2D_CAS" 20 NAARTABEL = "AC D2 D_MOLTABEL"/> <Verbindingseenheid NAAM = UitgesteldCTAB" VERBINDINGSEENHEID = "EenNaarEenUitgesteldeVerbindingseenheid" VANAFTABEL = "ACD2 D_MOLTABEL"NAARTABEL = "ACD2 D_MOLTABEL" 25 NAARTAB E LALIAS = "M"> <KoppelVeld> <Koppelveld VANAFVELD = "CDBREGNO" NAARVELD = "CDBREGNO"/> </KoppelVelden> 30 <UitvoerVelden> <UitvoerVeld NAAM = "CTAB"/> </UitvoerVelden> <Eigenschappen> 75 <Eigenschap NAAM = "GEBRUIKVERSCHILLEND" WAARDE = "onwaar"/> </Eigenschappen> </Verbindingseenheid> 5 Verbindingseenheid NAAM = "CASNummers" VERBINDINGSEENHEID = "EenNaarVeleGegevensVerbindingseenheid" VANAFTABEL = "MOLTABEL" NAARTABEL = "ACD2D_CAS"> <KoppelVelden> <KoppelVeld VANAFVELD = "CDBRegno" 10 NAARVELD = "CDBRegno"/> <KoppelVelden> <UitvoerVeIden> <UitvoerVeld NAAM = "CDBRegno"/> <UitvoerVeld NAAM = "CAS_TEXT" 15 ALIAS = "CASGetal"/> </üitvoerVelden> <Eigenschappen> <Eigenschap NAAM ="ZOEK_???_TYPE" WAARDE = "LinksBuiten"/> 20 </Eigenschappen> </Verbindingseenheid> < Verbindingseenheid NAAM = "Producten"ID="Productenl" VERBINDINGSEENHEID = "Een-Veel-GegevensEenheid" 25 VANAFTABEL = "ACD2 D_MOLTABEL"NAARTABEL = "ACD2D_PRODUCT"> <KoppelVelden> <KoppelVeld VANAFVELD = "CDBRegno" NAARTABEL = "CDBRegno"/> <KoppelVelden> 30 <UitvoerVelden> CUitvoerVeld NAAM = "CDBRegno"VERBORGEN = "waar"/> <UitvoerVeld NAAM = "PID"VERBORGEN ="waar"/> 76 CUitvoerVeld NAAM = "CTID"VERBORGEN = "waar"/> <UitvoerVeld NAAM = "Puriteit"/> <UitvoerVeld NAAM = "FB"/> 5 <UitvoerVeld NAAM = "CRREL"/> </UitvoerVelden> </Verbindingseenheid> <Verbindingseenheid NAAM ="Producten"BREIDT UIT = "Productenl" 10 VANAFTABEL = "ACD2D_CATALOGUS"NAARTABEL = "ACD2D_PRODUCT"> <KoppelVelden> <KoppelVeld VANAFVELD = "CTID"NAARVELD = "CTID"/> 15 <Koppelvelden> </Verbindingseenheid> < Verbindingseenheid NAAM = "Pakketten" VERBINDINGSEENHEID = "EenNaarVeleGegevensVerbindingseenheid VANAFTABEL = "ACD2 D_PRODUCT"NAARTABEL = "ACD2D_PAKKET"> 20 <KoppelVelden> <KoppelVeld VANAFVELD = "PID"NAARTABEL = "PID"/> </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM = "PAKKETID"VERBORGEN = 25 "waar"/> <UitvoerVeld NAAM = "CTID"VERBORGEN = "waar"/> <UitvoerVeld NAAM = "CTNUM"VERBORGEN = "waar"/> <UitvoerVeld NAAM = "CDBRegno"VERBORGEN = "waar"/> 30 <UitvoerVeld NAAM = "QUANT"/> <UitvoerVeld NAAM = "EENHEDEN"/> <UitvoerVeld NAAM = "VALUTA"/> <UitvoerVeld NAAM = "NORMPRIJS"/> 77 </UitvoerVelden> </Verbindingseenheid <Verbindingseenheid NAAM = "RegioIDNaarNaam" VERBINDINGSEENHEID = ''EenNaarEenGegevensVerbindingseenheid 5 VANAFTABEL = "ACD2 D_BEDRIJF"NAARTABEL = "ACD2D_GEBIED"> <KoppelVelden> <KoppelVeld VANAFVELD = "REGID"NAARVELD = "REGID"/> </KoppelVelden> 10 <UitvoerVelden> <UitvoerVeld NAAM = "REGID"VERBORGEN = "waar"/> <Uitvoerveld NAAM = "REGNAAM"/> </UitvoerVelden> </Verbindingseenheid> 15 <Verbindingseenheid NAAM = "Bedrijf" VERBINDINGSEENHEID = "EenNaarEenOuderVerbindingseenheid" VANAFTABEL = "ACD2 D_CATALOGUS"NAARTABEL = "ACD2D_BEDRIJF"> <KoppelVelden> 20 CKoppelVeld VANAFVELD = "CPYID"NAARVELD = "CPYID"/> </KoppelVelden> <UitvoerVelden SELECT_ALLE = "waar"> <UitvoerVeld NAAM = "CPYID"VERBORGEN = "waar/> 25 <UitvoerVeld NAAM = "TYPE"VERWIJDEREN = "waar"/> </UitvoerVelden> </Verbindingseenheid>
Verbindingseenheid NAAM = "Catalogus"ID = "Catalogusl" 30 VERBINDINGSEENHEID = "EenNaarEenOuderVerbindingseenheid" VANAFTABEL = "ACD2D_PRODUCT"NAARTABEL = "ACD2D_CATAL0GUS"> <KoppelVelden> _I I I -I t 78 <KoppelVeld VANAFVELD = "CTID"NAARTABEL = "CTID"/> </KoppelVelden> <üitvoerVelden SELECTEER_ALLEN = "waar"> 5 UitvoerVeld NAAM = "CTID"VERBORGEN = "waar"/>
UitvoerVeld NAAM = "CPYID"VERBORGEN = "waar"/> </UitvoerVelden> </Verbindingseenheid> 10 Verbindingseenheid NAAM = "Catalogus"BREIDT UIT = "Catalogusl” VANAFTABEL = "ACD2D_PAKKET" NAARTABEL = "ACD2D_CATAL0GUS"/> Verbindingseenheid NAAM = "EigenschapIDNaarNaam" VERBINDINGSEENHEID = "EenNaarEenGegevensverbindingseenheid" 15 VANAFTABEL = "ACD2D_PR0DUCT_GEGEVENS" NAARTABEL = "ACD2D_PR0PDICT"> <KoppelVelden> <KoppelVeld VANAFVELD = "PR0P_ID" NAARVELD = "PROP_ID"/> 20 </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM = "NAAM"/> </Uitvoervelden> </Verbindingseenheid> 25 <Verbindingseenheid NAAM = "GedraaideEigenschappen" VERBINDINGSEENHEID = "DraaiVerbindingseenheid" VANAFTABEL = "ACD2D_PR0DUCT" NAARTABEL = ACD2D_PRODUCT_GEGEVENS"> <Uitvoervelden> 30 <UitvoerVeld NAAM = "PID"/> <UitvoerVeld NAAM = "PR0P_ID"/> <UitvoerVeld NAAM = "WAARDE_KAR"/> </UitvoerVelden> 79 <KoppelVelden> CKoppelVeld VANAFVELD = "PID"NAARVELD = "PID"/> </KoppelVelden> 5 <Eigenschappen> <EigenschapNAAM = "GEBRUIKVERSCHILLENDE,/WAARDE = "waar"/> <EigenschapNAAM = "FILTER" WAARDE = "onwaar"/> 10 </Eigenschappen> <DraaiParams> <IndexVelden> <Veld>PID</Veld> </IndexVelden> 15 <VeldenNaarDraaien> <Veld>NAAM</Veld> </VeldenNaarDraaien> <WaardenNaarDraaien> <Veld>WAARDE_KAR</Veld> 20 </WaardenNaarDraaien> <GedraaideVelden> <MetaGegevens> <VeldDef NAAM="Naam" TYPE="VariabeleTekst"/> 25 <VeldDef NAAM = "Cas"TYPE = "VariabeleTekst"/> <VeldDef NAAM = " TYPE = "VariabeleTekst"/> CVeldDef NAAM = "Informatie" 30 TYPE = "VariabeleTekst"/> <VeldDef NAAM = "Specificatie" TYPE = "VariabeleTekst"/> <VeldDef NAAM = "Eigenschap" 80 TYPE = "VariabeleTekst"/> <VeldDef NAAM = "Puriteit"TYPE = "VariabeleTekst"/> </MetaGegevens> 5 </GedraaideVelden> </GedraaideParams> <Verbindingseenheid> <Verbindingseenheden> </Verbinding> 10 <Eigenschappen> <Eigenschap NAAM = "GEBRUIKVERSCHILLEND"WAARDE « "onwaar"/> <Eigenschap NAAM = "DRUPCAF_DOORZOEKING VERBINDINGSEENHEDEN" 15 WAARDE = "waar"/> <Eigenschap NAAM = "PRINTAF_VERTAALD_DOORZOEKING" WAARDE = "waar"/> <Eigenschap NAAM = "DRUKAF_HAALOP_SQL"WAARDE = "waar"/> 20 </Eigenschappen> </GegevensBron>
Bijlage B: Voorbeeld IDS patronen 25
Patroon: één-op-één tussen tabelkolommen met impliciete koppeling en onmiddellijke ophaling
Voorbeeld: CDBRegno om ID opzoeking te incorporeren Tabel Structuur: 30 Mol CDBRegno CDBRegno
CDBRegnoNaarCorpID
j 81
CorpID
CorpID2
Verbindingseenheden: cVerbinding NAAM = "Mol" TYPE = 5 "EenNaarMeerGegevensVerbindingseenheid" NAARTABEL = "Mol"> <UitvoerVelden> <UitvoerVeld NAAM = "CDBRegno"/> <UitvoerVeld NAAM = "CorpID"PAD = "Zoekop"/> 10 <UitvoerVeld NAAM = "CorpID2” PAD = "Zoekop"/> </üitvoerVelden> </Verbindingseenheid> <Verbindingseenheid NAAM = "Zoekop" TYPE = "Een-Naar-EenGegevensVerbindingseenheid" VANAFTABEL = 15 "Mol" NAARTABEL = "CDBRegnoNaarCorpID"> <KoppelVelden> <KoppelVeld VANAFVELD = "CDBRegno" NAARVELD = "CDBRegno"/> 20 </KoppelVelden> <üitvoerVelden> <UitvoerVeld NAAM = "CorpID"/> <UitvoerVeld NAAM = "CorpID2"/> </UitvoerVelden> 25 </Verbindingseenheid>
Gebruik:
Doorzoeking: selecteer cdbregno, corpid vanaf mol Resulterende MetaGegevens: 30 Mol CDBRegno
CorpID
Vraag: selecteer * vanaf mol 82
Resulterende Metagegevens:
Mol CDBRegno 5
Opmerkingen: 1. Het CorpID veld zal niet opgehaald worden indien een selecteer alles, bijvoorbeeld selecteer * vanaf Mol, uitdrukking gebruikt wordt aangezien deze niet gespecificeerd 10 is als een uitvoerveld van de Mol verbindingseenheid.
Teneinde voor CorpID in dit geval opgehaald te worden, moet naar deze expliciet verwezen worden als in selecteer *,
CorpID vanaf Mol. Dit zorgt ervoor dat de doorzoekingsanalysator weet hoe te zoeken naar een 15 verbindingseenheid die het CorpID veld kan verschaffen.
2. Dit patroon zal waarschijnlijk niet vaak gebruikt worden aangezien het vereist dat direct naar een veld verwezen wordt en levert de kosten op van het onmiddellijk ophalen. Dit type relatie zal waarschijnlijker gebruikt 20 worden voor expliciete koppeling met of zonder uitgestelde ophaling.
3. Merk op dat indien CorpID gespecificeerd is in de selecteerlijst, elke ophaling van gegevens van de Molverbindingseenheid de aaneenkoppeling en ophaling van 25 waarden van de CorpID tabel zou omvatten. (Dit is onmiddellijke ophaling). Om de ophaling uit te stellen, zie het gerelateerde patroon die specificeert hoe uitgestelde ophaling uitgevoerd moet worden.
4. Dit patroon is bruikbaar indien een veld zelden 30 opgehaald wordt. Het CTAB veld is een voorbeeld hiervan. Dit veld kan niet opgehaald worden voor de cliënt aangezien dit niet omgezet kan worden in iets bruikbaars. Het is echter soms opgehaald door sub-doorzoekingen. Bijvoorbeeld, 83 selecteer * vanaf mol waarin sss (ctab, selecteer ctab vanaf Mol waarin cdbregno=l) = 1. Dit patroon maakt het veld beschikbaar voor ophaling maar slechts wanneer daar expliciet naar verwezen wordt.
5 _
Patroon: één-op-één tussen de tabelkolommen met expliciete koppeling en onmiddellijke ophaling
Voorbeeld: CDBRegno naar corporate ID opzoeking 10 (CDBRegno to corporate ID lookup)
Tabelstructuur:
Mol CDBRegno CDBRegnoNaarCorpID 15 CDBRegno
CorpID
Verbindingseenheden:
Verbindingseenheid NAAM="Mol"TYPE= "EénNaarVeelGegevensverbindingseenheid"NAARTABEL="Mol"> 20 <UitvoerVelden> <UitvoerVeld NAAM="CDBRegno"/> cüitvoerVeld NAAM="CorpID" PAD="Lookup"/> </UitvoerVelden> </Verbindingseenheid> 25 Verbindingseenheid NAAM="Lookup" TYPE= "EénNaarVeelGegevensverbindingseenheid" VANAFTABEL="Mol" NAARTABEL="CDBRegnoNaarCorpID"> <KoppelVelden> <KoppelVeld VANAFVELD="CDBRegno" NAARVELD= 30 "CDBRegno"/> </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM="CorpID"/> 84 </UitvoerVelden> </Verbindingseenheid Gebruik:
Doorzoeking: selecteer * vanaf mol 5 Resulterende Metagegevens:
Mol CDBRegno
CorpID
10 Opmerkingen: 1. Een expliciete koppeling tussen verbindingseenheden, gespecificeerd met het PAD attribuut, maakt het voor de koppeling mogelijk om volkomen verborgen voor de gebruiker te zijn. In dit geval zal een selecteer 15 alles doorzoeking, bijvoorbeeld selecteer * vanaf Mol, de CorpID ophalen aangezien deze gespecificeerd is als een uitvoerveld van de Mol verbindingseenheid.
3. Merk op dat een willekeurige ophaling van gegevens van de Mol verbindingseenheid de aaneenkoppeling en ophaling 20 van waardes van de CorpID tabel zal omvatten (dit is onmiddellijke ophaling). Om de ophaling uit te stellen, zie het gerelateerde patroon dat specificeert hoe de ophaling uitgesteld moet worden.
25
Patroon: Eén-op-éen tussen tabelkolommen met expliciete koppeling en uitgestelde ophaling.
Voorbeeld: CDBRegno naar corporate ID lookup Tabelstructuur: 30 Mol CDBRegno CDBRegno
CDBRegnoNaarCorpID
85
CorpID
CorpID2
Verbindingseenheden: CVerbinding NAAM = "Mol" TYPE = 5 "EenNaarMeerGegevensVerbindingseenheid" NAARTABEL = "Mol"> <UitvoerVelden> <UitvoerVeld NAAM = "CDBRegno"/> <UitvoerVeld NAAM = "CorpID"PAD = "Zoekop"/> 10 <UitvoerVeld NAAM = "CorpID2" PAD = "Zoekop"/> </UitvoerVelden> </Verbindingseenheid> <Verbindingseenheid NAAM = "Zoekop" TYPE = "Een-Naar-EenGegevensVerbindingseenheid" VANAFTABEL = 15 "Mol" NAARTABEL = "CDBRegnoNaarCorpID"> <KoppelVelden> <KoppelVeld VANAFVELD = "CDBRegno" NAARVELD = "CDBRegno"/> 20 </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM = "CorpID"/> CUitvoerVeld NAAM = "CorpID2"/> </UitvoerVelden> 25 </Verbindingseenheid>
Gebruik:
Doorzoeking: selecteer* vanaf mol Resulterende MetaGegevens: 30 Mol CDBRegno
CorpID
CorpID2 86 5
Opmerkingen: 1. Dit patroon is identiek aan het eerdere patroon behalve dat de Eén-op-éénGegevensVerbindingseenheid vervangen is door een Eén-op-éénUitgesteldeVerbindingseenheid. Deze 10 verandering zal ervoor zorgen dat de ophaling van de CorpID waarde uitgesteld zal worden totdat deze daadwerkelijk verzocht wordt. De ophaling vereist een uitvoering van een additionele SQL statement.
2. Dit patroon wordt kenmerkend gebruikt voor gegevens 15 die hetzij duur zijn om op te halen of waarvan het gegevenstype incompatibel is met SQL doorzoeking (bijvoorbeeld BLOBS kan niet in een SQL statement die de afzonderlijke operator bevat opgehaald worden).
3. Dit illustreert tevens dat meer dan een veld 20 afgehandeld kan worden door een één-op-één verbindingseenheid.
Patroon: Eén-op-één tussen tabelkolom en functie met 25 expliciete koppeling en uitgestelde ophaling.
Voorbeeld: CDBRegno naar structuur chime reeks.
Tabel Structuur:
Mol
CDBRegno 30 CTAB
Verbindingseenheden:
Verbindingseenheid NAAM = "Mol" TYPE = "Een-Naar-VeleGegevensverbindingseenheid" 87 NAARTABEL = "Mol"> <UitvoerVelden> <UitvoerVeld NAAM = "CDBRegno"/> <UitvoerVeld NAAM = "MCHIME" 5 PAD = "UitgesteldeChime"/> </UitvoerVelden> </Verbindingseenheid>
Verbindingseenheid NAAM = "UitgesteldeChime" TYPE = "Een-Naar-VeleüitgesteldeVerbindingseenheid" 10 VANAFTABEL = "Mol" NAARTABEL = "Mol"> <KoppelVelden> <KoppelVeld VANAFVELD = "CDBRegno" NAARVELD = "CDBRegno"/> 15 </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM = "CHIME_reeps (CTAB)" ALIAS = "MCHIME" ISFUNCTIE = "waar" TYPE = "Structuur" MOLFORMAAT = "CHIME" 20 ZOEKBAAR = "onwaar"/> </UitvoerVelden> </Verbindingseenheid>
Gebruik:
Vraag: selecteer* vanaf mol 25 Resulterende Metagegevens:
Mol CDBRegno
MCHIME
3 0 Opmerkingen: 1. Dit patroon is identiek aan het eerdere patroon behalve dat de gekoppelde gegevens het resultaat zijn van een functie-aanroeping.
88 2. Dit patroon wordt gebruikt om dezelfde reden als het eerdere patroon: om dure of incompatibele ophalingen uit te stellen. Het patroon verbergt tevens de complexiteit van functie-aanroepen van de gebruiker.
5 3. Merk op dat de verbindingseenheden gekoppeld zijn met dezelfde tabel.
10 Patroon: Eén-op-één tussen tabelkolommen via meervoudige opzoektabellen.
Voorbeeld: CDBRegno naar CorpID Tabelstructuur:
Mol 15 CDBRegno
CTAB
Opzoekl CDBRegno
ExtRegno 20 Opzoek2
ExtRegno
CorpID
Verbindingseenheden:
Verbindingseenheid NAAM="Mol" 25 TYPE="EénNaarVeelGegevensverbindingseenheid" NAARTABEL="Mol"> <UitvoerVelden> <UitvoerVeld NAAM="CDBRegno"/> CUitvoerVeld NAAM="CorpID"PAD="Opzoekl.
0pzoek2”/> 30 </UitvoerVelden> </Verbindingseenheid>
Verbindingseenheid NAAM=/,Opzoekl"TYPE="EénNaarVeel UitgesteldeVerbindinseenheid"VANAFTABEL="Mol"NAARTABEL= 89 "Opzoekl"> <KoppelVelden> <KoppelVeld VANAFVELD="CDBRegno"NAARVELD= "ExtRegno"/> 5 </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM="ExtRegno"/> </UitvoerVelden> </Verbindingseenheid> 10 <Verbindingseenheid NAAM="Opzoek2"TYPE="EénNaarVeel
GegevensVerbindingseenheid" VANAFTABEL="Opzoekl"NAARTABEL= "Opzoek2"> <KoppelVelden> CKoppelVeld VANAFVELD="ExtRegno"NAARVELD= 15 "ExtRegno"/> </KoppelVelden> <UitvoerVelden> <Uitvoerveld NAAM="CorpID"/> </UitvoerVelden> 20 </Verbindingseenheid> Gébruik:
Doorzoeking: selecteer* van mol Resulterende Metagegevens:
Mol 25 CDBRegno
CorpID Opmerkingen: 1. Dit patroon lijkt op de eerdere patronen behalve dat het toont hoe het expliciete PAD attribuut een multi- 30 verbindingseenheid pad kan specificeren.
2. Indien er een andere verbindingseenheid is die de waarde van CorpID gebruikt voor koppeling met de Mol verbindingseenheid, kan deze CorpID specificeren als 90 VANAFVELD en zullen de opzoekingen transparant afgehandeld worden. Dit is getoond in het Eén-naar-veel patroon hieronder.
5
Patroon: Eén-naar-één tussen tabelkolommen met ouder gecreëerd.
Voorbeeld: Bedrijfsnaam naar adres met adres gegroepeerd onder een ouder.
10 Tabelstructuur:
Bedrijf
Bedrij fID Naam Adres
15 BedrijflD
Straat
Stad
Staat
Land 2 0 Verbindingseenheden:
Verbindingseenheid NAAM="Bedrijf"TYPE="EénNaarVeel Gegevensverbindingseenheid" NAARTABEL="Bedrij f "> <Uitvoervelden> CUitvoerVeld NAAM="BedrijfID" VERBORGEN= 25 "waar"/> <UitvoerVeld NAAM="Naam"/> </UitvoerVelden> </Verbindingseenheid>
Verbindingseenheid NAAM="Adres"TYPE="EénNaarVeel 30 OuderVerbindingseenheid"VANAFTABEL="Bedrij f"NAARTABEL="Adres" > <KoppelVelden> <KoppelVeld VANAFVELD="BedrijfID"NAARVELD= 91 "BedrijfID"/> </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM="Straat"/> 5 <UitvoerVeld NAAM="Stad"/> <UitvoerVeld NAAM="Staat"/> <UitvoerVeld NAAM="Land"/> </UitvoerVelden> </Verbindingseenheid> 10 Gebruik:
Doorzoeking: selecteer* van bedrijf Resulterende Metagegevens Bedrij f Naam 15 Adres
Straat
Stad
Staat
Land 2 0 Opmerkingen: 1. Een patroon-kind relatie is soms bruikbaar voor het logisch groeperen van gegevens, zelfs indien de gegevensrelatie een één-op-één relatie is.
2. Hetzelfde patroon kan gebruikt worden en hetzelfde 25 resultaat kan verkregen worden zelfs indien de adresgegevens zich in dezelfde tabel bevinden als de rest van de bedrijfsgegevens. In dit geval, zou het NAARTABEL attribuut van de Adres verbindingseenheid dezelfde Bedrijfstabel zijn.
Patroon: Eén-op-één terugsturende complexe gegevens. Voorbeeld: Ophaling van BLOB gegevens welke en externe Javaklasse vereisen voor de manipulatie.
30 92
Tabelstructuur:
Wortel
ID
Comlexe Gegevens 5 Verbindingseenheden:
Verbindingseenheid NAAM="Wortel"TYPE="EénNaarVeel Gegevensverbindingseenheid"NAARTABEL="Wortel"> <UitvoerVelden> <UitvoerVeld NAAM="ID"/> 10 <UitvoerVeld NAAM="ComlexeGegevens"TYPE= "Binair"VELDVERPAKKING="com.mi jnbedrij f. ComplexeVerpakking,//> </UitvoerVelden> </Verbindingseenheid>
Gebruik: 15 Doorzoeking: selecteer* van wortel
Resulterende Metagegevens:
Wortel
ID
ComplexeGegevens (teruggestuurd als een 20 instantie van ComplexeVerpakking)
Opmerkingen: 1. Wanneer gestructureerde gegevens zijn opgeslagen als BLOBS in en RDBMS, kan een Verpakking-klasse vereist zijn om die gegevens te manipuleren. Dit patroon verschaft een 25 wijze voor het afhandelen van die situatie. Wanneer het VELDVERPAKKING attribuut gespecificeerd is, stuurt de IDS op automatische wijze de gegevens terug als een instantie van de gespecificeerde klasse. Zie informatie op de VeldVerpakkings klasse voor meer informatie.
30 _
Patroon: Eén-op-één berekeningen.
Voorbeeld: Ophaling van externe berekeningen.
93
Tabelstructuur:
Wortel
ReeksWaarde NumeriekeWaarde 5 Verbindingseenheden:
Verbindingseenheid NAAM="Wortel"TYPE="EénNaarVeel GegevensVerbindingseenheid"NAARTABEL="Wortel"> <UitvoerVelden> <UitvoerVeld NAAM="ReeksWaarde"/> 10 <UitvoerVeld NAAM="NumeriekèWaarde"/> </UitvoerVelden> </Verbindingseenheid>
Verbindingseenheid NAAM="Ber" TYPE="Bereken Verbindingseenheid"VANAFTABEL="Wortel"> 15 <KoppelVelden> <KoppelVeld VANAFVELD="ReeksWaarde"/> <KoppelVeld VANAFVELD="NumeriekeWaarde"/> </KoppelVelden> <UitvoerVelden> 20 <UitvoerVeld NAAM="Ber_dubbel"TYPE="Dubbel"/> cüitvoerVeld NAAM="Ber_Reeks"TYPE="Variabele
Tekst"/> </üitvoerVelden> <Eigenschappen> 25 <Eigenschap NAAM="BEREKENEENHEID- KLASSE"WAARDE ="com.mijnbedrijf.BerekeneenheidTest"/> </Eigenschappen> </Verbindingseenheid>
Gebruik: 30 Doorzoeking: selecteer* vanuit wortel
Resulterende Metagegevens:
Wortel
ReeksWaarde a^m-i__« uimii l j___ii *__u_ 94
Numerieke waarde
Doorzoeking: selecteer*,ber_dubbel,ber_reeks vanuit wortel
Resulterende Metagegevens: 5 Wortel
ReeksWaarde Numerieke waarde Ber_dubbel Ber-reeks 10 Opmerkingen: 1. Dit patroon maakt het mogelijk dat externe patronen ingebracht worden in de verbindingseenheid uitvoer. De berekening wordt uitgevoerd door de gespecificeerde bEREKENEENHEID-KLASSE, die de IIDSBerekeneenheid interface 15 moet implementeren, zoals gespecificeerd in de BEREKENEENHEID-KLASSE eigenschap.
2. De velden die de invoergegevens verschaffen voor de berekening zouden gespecificeerd moeten worden als koppelvelden in de BerekenVerbindingseenheid.
20 3. Berekende velden worden automatisch gemarkeerd als niet-bezoekbaar.
4. De berekeneenheden worden gedefinieerd zonder een expliciete koppeling, maar een koppeling zou gespecificeerd hebben kunnen zijn via het PAD attribuut.
25 _
Patroon: Eén-naar-veel tussen tabellen.
Voorbeeld: Verscheidene namen voor een gegevens structuur.
30 Tabelstructuur:
Mol CDBRegno
MolNamen 95 CDBRegno
MolNaam
Verbindingseenheden:
Verbindingseenheid NAAM="Mol" TYPE="EénNaarVeel 5 GegevensVerbindingseenheid"NAARTABEL="Mol"> <UitvoerVelden> <UitvoerVeld NAAM="CDBRegno"/> </UitvoerVelden> </Verbindingseenheid> 10 Verbindingseenheid NAAM="MolNamen"TYPE="EénNaarVeel
GegevensVerbindingseenheid" VANAFTABEL="Mol"NAARTABEL= "MolNamen"> <KoppelVelden> <KoppelVeld VANAFVELD="CDBRegno"NAARVELD= 15 "CDBRegno"/> </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM="MolNaam"/> </UitvoerVelden> 20 </Verbindingseenheid>
Gebruik:
Doorzoeking: selecteer*, MolNamen.van Mol Resulterende Metagegevens:
Mol 25 CDBRegno
MolNamen
MolNaam Opmerkingen: 1. Dit is het standaard patroon dat gebruikt wordt 30 voor bijna alle Eén-naar-veel relaties. Ophaling wordt altijd uitgesteld.
96
Patroon: Eén-naar-veel tussen tabellen met filterwaarden.
Voorbeeld: Scheiding van reactiecomponenten in rol-specifieke sub-ouders.
5 Tabels tructuur:
Rxn RIRegno
RxnMol RIRegno 10 Rol
MolRegno
Mol
MolRegno
CTAB
15 MolGt
Verbindingseenheden: <Verbindingseenheid NAAM="Rxn" TYPE="EénNaarVeel GegevensVerbindingseenheid"NAARTABEL="Rxn"> <UitvoerVelden> 20 <UitvoerVeld NAAM=',RIRegno"/> </UitvoerVelden> </Verbindingseenheid> <VerbindingseenheidID="ComponentBasis"TYPE="EénNaarEénVele 25 GegevensVerbindingseenheid" VANAFTABEL="Rxn"NAARTABEL= "RxnMol"> <KoppelVelden> <KoppelVeld VANAFVELD="RIRegno"NAARVELD= "RIRegno"/> 30 </KoppelVelden> </Verbindingseenheid> <Verbindingseenheid NAAM="Reactanten" BREIDTÜIT= "ComponentBase"NAARTABELALIAS="Rct"> 97 <FilterWaarden> <FilterWaarde VELD="Rol"WAARDE="RCT"/> </FilterWaarden> <UitvoerVelden> 5 <UitvoerVeld NAAM="MolRegno" VERBORGEN= "waar"/> <UitvoerVeld NAAM="MCHIME" PAD="RctMol"/> <UitvoerVeld NAAM="Molgt" PAD="RctMol"/> </UitvoerVelden> 10 </Verbindingseenheid>
Verbindingseenheid NAAM="producten" BREIDTUIT= "ComponentBase"NAAR TABELALIAS="Prd"> <FilterWaarden> <FilterWaarde VELD="Rol" WAARDE="PRD"/> 15 </FilterWaarden> <UitvoerVelden> <UitvoerVeld NAAM="MolRegno" VERBORGEN= "waar"/> <UitvoerVeld NAAM="MCHIME" PAD="PrdMol"/> 20 <UitvoerVeld NAAM ="MW" PAD="PrdMol"/> </UitvoerVelden> </Verbindingseenheid>
Verbindingseenheid NAAM="RctMol"TYPE="EénNaarEen UitgesteldeVerbindingseenheid"VANAFTABEL="Rct"NAARTABEL="Mol" 25 NAARTABELALIAS="RctMol> <KoppelVelden>
KoppelVeld VANAFVELD="MolRegno"NAARVELD= "MolRegno"/> </KoppelVelden> 30 <UitvoerVelden> <UitvoerVeld NAAM="Molgt"/> <UitvoerVeld NAAM="CHIME_reeks (CTAB)"ALIAS= "MCHIME" ISFUNCTIE="waar" TYPE="Structuur"MOLFORMAAT="CHIME" 98 ZOEKBAAR="onwaar"/> </UitvoerVelden> </Verbindingseenheid>
Verbindingseenheid 5 NAAM="PrdMol"TYPE="EénNaarEénUitgesteldeVerbindingseenheid" VANAFTABEL="Prd" NAARTABEL="Mo1" NAARTABELALIAS="PrdMol> <KoppelVelden> <KoppelVeld VANAFVELD="MolRegno"NAARVELD= "MolRegno"/> 10 </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM="Molgt"/> <UitvoerVeld NAAM="CHIME_reeks(CTAB)"ALIAS= "MCHIME" ISFUNCTIE="waar" TYPE="Structuur/,MOLFORMAAT="CHIME" 15 ZOEKBAAR="onwaar"/> </UitvoerVelden> </Verbindingseenheid>
Gebruik:
Doorzoeking: selecteer*, Reactanten.*,Producten.*van 20 Rxn.
Resulterende Metagegevens:
Rxn RIRegno
Reactanten
25 MW
MCHIME
Producten
MW
MCHIME
30 Opmerkingen: 1. Tabelaliassen moeten gebruikt worden aangezien dezelfde tabellen gebruikt kunnen worden in verschillende aaneenkoppelingen. Indien aliassen niet gebruikt worden, 99 zullen de doorzoekingen niet de correcte resultaten verschaffen.
2. Andere componenten (katalysatoren, oplosmiddelen, etc.) kunnen afgesplitst worden door verdere uitbreidingen 5 van de ComponentBase verbindingseenheid.
Patroon: Eén-naar-veel tussen tabellen met verborgen opzoekrelatie.
10 Voorbeeld: Het relateren van ACD-gegevens aan
Beilsteingegevens met verborgen CDBRegno naar BRN vertaling. Tabelstructuur:
Mol CDBRegno 15 MDLNummer CTB5
Samenstelling_ID
SDB_ID
CDBRegno 2 0 Verbindingseenheden:
Verbindingseenheid NAAM="Mol" TYPE="EénNaarVeel GegevensVerbindingseenheid"NAARTABEL="Mol',> <LJitvoerVelden> cüitvoerVeld NAAM="CDBRegno"/> 25 cüitvoerVeld NAAM="MDLNummer"/> cüitvoerVeld NAAM="Samenstelling_ID"PAD= "BRN_A.BRN_B" VERBORGEN="waar"/> c/UitvoerVelden> c/Verbindingseenheid> 30 CVerbindingseenheid NAAM="BRN_A"TYPE="EénNaarEén
UitgesteldeVerbindingseenheid" VANAF TABEL="Mo1"NAARTABEL= "CTB5" NAARTABELALIAS="a_ctb5"> CKoppelVelden> 100 CKoppelVeld VANAFVELD="MDLNummer''NAARVELD= "SAMENSTELLING_ID'7> </KoppelVelden> <FilterWaarden> 5 <FilterWaarde NAARVELD="SDB_ID"WAARDE="2'7> </FilterWaarden> <UitvoerVelden> <UitvoerVeldNAAM="CDBREGNO"VERBORGEN="waar"/> </uitvoerVelden> 10 </Verbindingseenheid
Verbindingseenheid NAAM="BRN_B"TYPE="EénNaarEén GegevensVerbindingseenheid"VANAFTABEL="a_ctb5"NAARTABEL= "CTB5"NAARTABELALIAS="b_Ctb5"> <KoppelVelden> 15 <KoppelVeld VANAFVELD="CDBREGNO"NAARVELD= "CDBREGNO"/> </KoppelVelden> <FilterWaarden> <FilterWaarde NAARVELD="SDB_ID"WAARDE="1”/> 20 </FilterWaarden> <UitvoerVelden> <UitvoerVeld NAAM="SAMENSTELLING_ID"/> </UitvoerVelden> </Verbindingseenheid> 25 Verbindingseenheid NAAM="Beilstein"TYPE= "GegevensbronVerbindingseenheid"VANAFTABEL="Mol"> <KoppelVelden> <KoppelVeld VANAFVELD="SAMENSTELLING_ID" NAARVELD="BRN"/> 30 </KoppelVelden> <UitvoerVelden> <UitvoerVeld NAAM="BRN'7> <üitvoerVeld NAAM="Structuur'7> 101 </UitvoerVelden> </Verbindingseenheid>
Gebruik:
Doorzoeking:selecteer*,Beilstein.*vanaf mol 5 Resulterende Metagegevens:
Mol CDBRegno MDLNummer
Beilstein
10 BRN
Structuur
Opmerkingen: 1. Dit patroon gebruikt de GegevensBronVerbindingseenheid die 15 EénNaarVeelGegevensVerbindingseenheid uitbreidt om niet- relationele gegevensbronnen af te handelen. Het gebruik van koppelvelden is echter hetzelfde.
2. ACD MDLGetallen zijn gerelateerd aan Beilstein BRNen door gebruik te maken van de CTB5 opzoektabel. De 20 natuur van deze tabel vereist twee onafhankelijke opzoekingen die elk gebruik van verschillende filters vereisen. Dit wordt gedaan via de twee verbindingseenheden en tabelaliassen.
3. De Beilstein verbindingseenheid gebruikt het Samenstelling_ID veld voor het koppelen zonder dat de 25 ophaling daarvan uitgesteld wordt en twee andere verbindingseenheden vereist zijn voor toegang. Wanneer de Beilstein ouder opgehaald wordt, zal de voor het ophalen van het Samenstelling_ID veld noodzakelijke SQL uitgevoerd worden, en de waarde daarvan zal gebruikt worden door de 30 Beilstein verbindingseenheid. Deze extra stappen zullen transparant optreden zonder gezien te worden door hetzij de gebruiker, hetzij de Beilstein verbindingseenheid.
102
Patroon: Eén-naar-veel tussen tabellen met het draaien (pivoting) van de resulterende gegevens.
Voorbeeld: Het draaien van grote magere (tall skinny) gegevens behorend bij een product.
5 Tabelstructuur:
Product
PID
ProductNaam
Gegevens 10 CDBRegno
PropID
PropWaarde
PropDict
PropID
15 PropNaam
Verbindingseenheden:
Verbindingseenheid NAAM="Product"TYPE="EénNaarVeel GegevensVerbindingseenheid"NAARTABEL="Product"> <UitvoerVelden> 20 <UitvoerVeld NAAM="PID" VERBORGEN="waar"/> <UitvoerVeld NAAM="ProductNaam"/> </UitvoerVelden> </Verbindingseenheid> <Verbindingseenheid NAAM="Eigenschappen"TYPE= 25 "DraaiVerbindingseenheid"VANAFTABEL=,,Product"NAARTABEL= "Gegevens"> <KoppelVelden> <KoppelVeld VANAFVELD="PID"NAARVELD="PID"/> </KoppelVelden> 30 <UitvoerVelden> cüitvoerVeld NAAM="PID"/> <UitvoerVeld NAAM="PropID"/> <UitvoerVeld NAAM="PropWaarde"/> 103 </UitvoerVelden> <DraaiParameters> <IndexVelden> <Veld>PID</Veld> 5 </IndexVelden> <VeldenNaarDraaiing> <Veld>Naam</Veld> </VeldenNaarDraaiing> <WaardenNaarDraaiing> 10 <Velden>PropWaarde</Veld> </WaardenNaarDraaiing> <GedraaideVelden> <MeteGegevens> <VeldDef NAAM="naam"TYPE="Variabele 15 Tekst"/> CVeldDef NAAM="CAS"TYPE="Variabele
Tekst"/> <VeldDef NAAM="Commentaar"TYPE= "VariabeleTekst"/> 20 <VeldDef NAAM="Puriteit"TYPE= "VariabeleTekst"/> </Metagegevens> </GedraaideVelden> </DraaiParameters> 25 </Verbindingseenheid> <Verbindingseenheid NAAM="PropIDNaarNaam"TYPE= "EénNaarEénGegevensVerbindingseenheid"VANAFTABEL=,,Gegevens" NAARTABEL="PropDict"> <KoppelVelden> 30 <KoppelVeld VANAFVELD=,,PropID"NAARVELD= ,,PropID,,/> </KoppelVelden> j <UitvoerVelden> 104 <UitvoerVeld NAAM="Naam"/> </UitvoerVelden> </Verbindingseenheid>
Resulterende metagegevens: 5 Gebruik:
Doorzoeking: selecteer ProductNaam, eigenschappen.* van Product waarin Eigenschappen.naam zoals "%foo%" Resulterende Metagegevens:
Product 10 ProductNaam
Eigenschappen
Naam
CAS
Commentaar 15 Puriteit
Opmerkingen: l.Dit patroon illustreert het gebruik van het draaien van de transformatiegegevens. De invoeging van het <MetaGegevens> element verschaft een wijze om te declareren 20 hoe de gedraaide gegevens eruit zullen zien waardoor het mogelijk wordt gemaakt de doorzoekingen transparant worden uitgevoerd. Zonder een <MetaGegevens> element, moeten doorzoekingen uitgevoerd worden over niet-gedraaide gegevens hetgeen nogal gebruikersonvriendelijk is. Merk op dat deze 25 verbindingseenheid on-the-fly geconfigureerd kan worden gedurende de IDS initialisatie, zodat de inhoud van het <MetaGegevens> element tijdens looptijd bepaald kan worden. Voor details zie de informatie over de IIDSInitialisator interface.
30 2. De vertaling van de eigenschap id (PropID) in de eigenschapsnaam (Naam) wordt uitgevoerd door de PropIDNaarNaam verbindingseenheid die automatisch aangeroepen 105 wordt wanneer het Naamveld niet gevonden wordt, gedefinieerd door de DraaiVerbindingseenheid zelf.
3. Doorzoekingen over gedraaide gegevens kunnen complex zijn omdat elke doorzoekingsclausule vertaald wordt 5 in tenminste twee verschillende clausules die worden uitgevoerd op de niet-gedraaide gegevens. Elk van deze uitdrukkingen moet een verschillende tabelalias gebruiken om te verhinderen dat de doorzoekingen met elkaar interfereren. De DraaiVerbindingseenheid handelt dit transparant af.
t 029 t67^

Claims (30)

1. Een werkwijze voor het dynamisch creëren van in database zoekbewerkingen te gebruiken hiërarchieën, de 5 werkwijze de stappen omvattende van: het definiëren van een gegevensnetwerk, waarbij het gegevensnetwerk een aantal verbindingseenheden (connectors) omvat die elk een relatie beschrijven tussen twee of meer gegevensbronnen, waarin ten minste één van het genoemde 10 aantal verbindingseenheden uitgevoerd is als wortelverbindingseenheid voor het definiëren van een intreepunt (entry point) in het genoemde gegevensnetwerk; het ontvangen van een doorzoeking betrekking hebbend op gegevens die in een of meer databases zijn opgeslagen, waarin 15 de genoemde doorzoeking een wortelverbindingseenheid definieert, zodat ten minste enige van de genoemde twee of meer gegevensbronnen selecteerbaar zijn in de doorzoeking als onderdelen van een hiërarchie die de genoemde wortelverbindingseenheid op zijn wortelniveau heeft; en 20 het op dynamische wijze, tenminste gedeeltelijk op de genoemde doorzoeking en op het genoemde gegevensnetwerk gebaseerd dynamisch bouwen van een hiërarchie.
2. Een werkwijze volgens conclusie 1, waarin het genoemde gegevensnetwerk knooppunten omvat, waarbij elk 25 knooppunt een gegevensbron is.
3. Een werkwijze volgens conclusie 2, waarin de genoemde stap van het definiëren van een gegevensnetwerk omvat het koppelen van een of meer bronknooppunten aan een of meer gekoppelde knooppunten via verbindingseenheden.
4. Een werkwijze volgens conclusie 3, waarin de genoemde verbindingseenheden uitvoerveldelementen omvatten en relaties tussen de genoemde knooppunten definiëren. 10291671
5. Een werkwijze volgens conclusie 4, waarin de genoemde hiërarchie gebouwd is gebaseerd op de genoemde uitvoervelden en de genoemde relaties.
6. Een werkwijze volgens conclusie 1, waarin het 5 genoemde gegevensnetwerk gedefinieerd is gebaseerd op een relationeel gegevensmodel.
7. Een werkwijze volgens conclusie 1, waarin de genoemde stap van het definiëren van een gegevensnetwerk omvat het analyseren van een gegevensmodel teneinde te 10 demonstreren objecten te identificeren.
8. Een werkwijze volgens conclusie 7, waarin de genoemde stap van het definiëren van een gegevensnetwerk verder omvat het analyseren van een erfenisboom van de genoemde geïdentificeerde objecten.
9. Een werkwijze volgens conclusie 8, waarin de genoemde stap van het definiëren van een gegevensnetwerk verder omvat het analyseren van relaties tussen de genoemde objecten.
10. Een werkwijze volgens conclusie 9, waarin de 20 genoemde relaties tussen de genoemde objecten een meervoudigheid van relaties en reciproque relaties omvat.
11. Een werkwijze volgens conclusie 9, waarin de genoemde stap van het definiëren van een gegevensnetwerk verder omvat het definiëren van verbindingseenheden voor elk 25 van de genoemde objecten.
12. Een werkwijze volgens conclusie 11, waarin de genoemde stap van het definiëren van verbindingseenheden voor elk van de genoemde objecten resulteert in het demonstreren van relevante gegevens in een hiërarchie die geschikt is voor 30 het object.
13. Een werkwijze volgens conclusie 11, waarin de genoemde verbindingseenheden sub-netwerken vormen. I __
14. Een werkwijze volgens conclusie 13, waarin, voor elk sub-netwerk, de verbindingseenheden daarin gemodificeerd worden teneinde de relaties tussen de genoemde objecten in het genoemde netwerk te weerspiegelen.
15. Een werkwijze volgens conclusie 11, waarin de genoemde verbindingseenheden verbindingseenheden omvatten die gegevens transformeren.
16. Een werkwijze volgens conclusie 11, waarin de genoemde verbindingseenheden verbindingseenheden omvatten die 10 gegevens van externe bronnen integreren.
17. Een werkwijze voor het doorzoeken van een gegevensnetwerk, bij voorkeur een werkwijze volgens een van de voorgaande conclusies, omvattende het vormen van een doorzoeking door: 15 het selecteren van gewenste velden; het specificeren van een wortel; het specificeren van een zoekconditie; en het specificeren van een pad naar elk van de een of meer van de genoemde gewenste velden.
18. De werkwijze volgens conclusie 17, waarin het vormen van de doorzoeking verder omvat het specificeren van een pad naar elk van de een of meer van de genoemde gewenste velden.
19. De werkwijze volgens conclusie 17 of 18, waarin 25 de stap van het specificeren van een wortel het specificeren van een VANAF-clausule omvat.
20. De werkwijze volgens conclusie 17 of 18, waarin elk pad correspondeert met een verzameling verbindingseenheden.
21. De werkwijze volgens conclusie 20, waarin de genoemde verzameling verbindingseenheden een of meer van het volgende omvat: een één naar veel verbindingseenheid, een één naar één verbindingseenheid, een draaiverbindingseenheid.
22. De werkwijze volgens een van de voorgaande conclusies, omvattende het uitvoeren van de genoemde doorzoeking.
23. De werkwijze volgens conclusie 22, verder 5 omvattende het terugsturen van de resultaten van de doorzoeking in hiërarchische recordverzamelingen.
24. Een systeem voor het dynamisch creëren van in database zoekbewerkingen te gebruiken hiërarchieën, omvattende: 10 een gegevensnetwerk, waarbij het gegevensnetwerk een aantal verbindingseenheden (connectors) omvat die elk een relatie beschrijven tussen twee of meer gegevensbronnen, waarin ten minste een van het genoemde aantal verbindingseenheden uitgevoerd is als wortelverbindings- 15 eenheid voor het definiëren van een intreepunt (entry point) in het genoemde gegevensnetwerk; middelen voor het ontvangen van een doorzoeking met betrekking tot gegevens die zijn opgeslagen in een of meer databases, waarin de genoemde doorzoeking een wortel- 20 verbindingseenheid definieert, zodat ten minste enige van de genoemde twee of meer gegevensbronnen selecteerbaar zijn in de doorzoeking als onderdelen van een hiërarchie die de genoemde wortelverbindingseenheid op zijn wortelniveau heeft; en 25 middelen voor het, gebaseerd op tenminste gedeeltelijk de genoemde doorzoeking, dynamisch bouwen van een hiërarchie uit het genoemde gegevensnetwerk.
25. Een systeem voor het doorzoeken van een gegevensnetwerk, bij voorkeur volgens conclusie 24, waarin de 30 doorzoeking is aangepast voor: het selecteren van gewenste velden; het specificeren van een wortel; en het specificeren van een zoekconditie.
26. Een systeem volgens conclusie 25, waarin de genoemde doorzoeking verder is aangepast om een pad naar elk van de één of meer van de genoemde gewenste velden te specificeren.
27. Een systeem voor het doorzoeken van databases, bij voorkeur een systeem volgens een van de conclusies 24-26, omvattende: een elektronische doorzoekingserver, waarin de genoemde doorzoekingserver werkzaam is om elektronische communicatie 10 te ontvangen van en elektronische communicatie te verzenden naar een gebruikersterminal via een elektronisch communicatienetwerk; en een of meer databaseservers, elk waarvan in elektronische communicatie staat met de genoemde doorzoekingserver, waarin 15 elke databaseserver werkzaam is om een of meer databases te doorzoeken; waarin de genoemde doorzoekingserver werkzaam is om de genoemde doorzoeking over het genoemde elektronische communicatienetwerk vanaf de gebruikersterminal te ontvangen 20 en, gebaseerd op de genoemde doorzoeking, een of meer hiërarchieën dynamisch te creëren.
28. Een systeem volgens conclusie 27, waarin de genoemde een of meer hiërarchieën gecreëerd worden gebaseerd op gegevensnetwerken.
29. Een systeem volgens conclusie 28, waarin de genoemde gegevensnetwerken knooppunten omvatten die zijn verbonden door verbindingseenheden, en waarin elk knooppunt correspondeert met een verzameling gegevens.
30. Een systeem volgens een van de conclusies 24-29, 30 verder omvattende: - middelen voor het uitvoeren van de genoemde doorzoeking; en - middelen voor het terugsturen van de resultaten van de doorzoeking in hiërarchische recordverzamelingen. 1029167
NL1029167A 2004-06-01 2005-06-01 Werkwijzen en systemen voor gegevensintegratie. NL1029167C2 (nl)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/858,897 US20050278308A1 (en) 2004-06-01 2004-06-01 Methods and systems for data integration
US85889704 2004-06-01

Publications (2)

Publication Number Publication Date
NL1029167A1 NL1029167A1 (nl) 2005-12-05
NL1029167C2 true NL1029167C2 (nl) 2006-05-23

Family

ID=34839039

Family Applications (1)

Application Number Title Priority Date Filing Date
NL1029167A NL1029167C2 (nl) 2004-06-01 2005-06-01 Werkwijzen en systemen voor gegevensintegratie.

Country Status (5)

Country Link
US (2) US20050278308A1 (nl)
EP (1) EP1622049A3 (nl)
DE (1) DE102005025170A1 (nl)
GB (1) GB2414833B (nl)
NL (1) NL1029167C2 (nl)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7426520B2 (en) 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources
US20060235820A1 (en) * 2005-04-14 2006-10-19 International Business Machines Corporation Relational query of a hierarchical database
US7526473B2 (en) * 2005-06-21 2009-04-28 Microsoft Corporation Traversing a relational model with preferred paths
US7924270B2 (en) * 2006-02-06 2011-04-12 Abacalab, Inc. Apparatus and method for mobile graphical cheminformatic
US8131560B2 (en) * 2006-02-15 2012-03-06 Genzyme Corporation Systems and methods for managing regulatory information
US20090063448A1 (en) * 2007-08-29 2009-03-05 Microsoft Corporation Aggregated Search Results for Local and Remote Services
US8200257B2 (en) * 2007-08-30 2012-06-12 Yahoo! Inc. Customizable mobile message services
US8200520B2 (en) 2007-10-03 2012-06-12 International Business Machines Corporation Methods, systems, and apparatuses for automated confirmations of meetings
KR100930617B1 (ko) * 2008-04-08 2009-12-09 한국과학기술정보연구원 다중 개체 중심적 통합 검색 시스템 및 방법
US9720971B2 (en) * 2008-06-30 2017-08-01 International Business Machines Corporation Discovering transformations applied to a source table to generate a target table
US8554801B2 (en) * 2009-07-10 2013-10-08 Robert Mack Method and apparatus for converting heterogeneous databases into standardized homogeneous databases
ITVE20110021A1 (it) * 2011-04-12 2012-10-13 Neural Engineering S P A Metodo di creazione di un documento rappresentativo dell'esito di una consultazione di una pluralità di banche dati.
US10430775B1 (en) * 2011-11-11 2019-10-01 Amazon Technologies, Inc. Validation and lookup techniques for rule-based data categorization
US8930303B2 (en) * 2012-03-30 2015-01-06 International Business Machines Corporation Discovering pivot type relationships between database objects
US9116932B2 (en) * 2012-04-24 2015-08-25 Business Objects Software Limited System and method of querying data
US9600351B2 (en) 2012-12-14 2017-03-21 Microsoft Technology Licensing, Llc Inversion-of-control component service models for virtual environments
US10073956B2 (en) 2013-03-14 2018-09-11 Open Text Sa Ulc Integration services systems, methods and computer program products for ECM-independent ETL tools
US9898537B2 (en) 2013-03-14 2018-02-20 Open Text Sa Ulc Systems, methods and computer program products for information management across disparate information systems
EP4002153A1 (en) * 2013-03-14 2022-05-25 Open Text SA ULC Systems, methods and computer program products for information integration across disparate information systems
US9767151B2 (en) * 2013-11-18 2017-09-19 Sap Se Optimizing database queries having hierarchy filters
US10606855B2 (en) 2014-07-10 2020-03-31 Oracle International Corporation Embedding analytics within transaction search
US10585892B2 (en) * 2014-07-10 2020-03-10 Oracle International Corporation Hierarchical dimension analysis in multi-dimensional pivot grids
US10198159B2 (en) * 2015-04-28 2019-02-05 Osisoft, Inc. Multi-context sensor data collection, integration, and presentation
US10642990B2 (en) 2015-10-24 2020-05-05 Oracle International Corporation Generation of dynamic contextual pivot grid analytics
WO2018176139A1 (en) * 2017-03-28 2018-10-04 Open Text Sa Ulc Integration services systems, methods and computer program products for ecm-independent etl tools
IT201700082320A1 (it) * 2017-07-19 2019-01-19 Nuovo Pignone Tecnologie Srl Sistema di ricerca per banche dati e metodo
EP3743824A1 (en) * 2018-01-22 2020-12-02 Everything Food, Inc. System and method for providing food-related information

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3689965T2 (de) * 1985-08-12 1994-11-17 Fuji Photo Film Co Ltd Verfahren zum Verarbeiten von Informationen bezüglich chemischer Reaktionen.
JPS6257017A (ja) * 1985-09-05 1987-03-12 Fuji Photo Film Co Ltd 化学反応情報の処理方法
JPS6258331A (ja) * 1985-09-09 1987-03-14 Fuji Photo Film Co Ltd 化学反応情報の記録・検索方法
CA2048039A1 (en) * 1991-07-19 1993-01-20 Steven Derose Data processing system and method for generating a representation for and random access rendering of electronic documents
US5566333A (en) * 1992-11-05 1996-10-15 Trace Technologies, Inc. Relational database information management system for facilitating normalization of a relational database
AU7255394A (en) * 1993-07-08 1995-02-06 Cygnus Therapeutic Systems Monolithic matrix transdermal delivery system
US5463564A (en) * 1994-09-16 1995-10-31 3-Dimensional Pharmaceuticals, Inc. System and method of automatically generating chemical compounds with desired properties
US5985356A (en) * 1994-10-18 1999-11-16 The Regents Of The University Of California Combinatorial synthesis of novel materials
US6030917A (en) * 1996-07-23 2000-02-29 Symyx Technologies, Inc. Combinatorial synthesis and analysis of organometallic compounds and catalysts
US6983227B1 (en) * 1995-01-17 2006-01-03 Intertech Ventures, Ltd. Virtual models of complex systems
US5980096A (en) * 1995-01-17 1999-11-09 Intertech Ventures, Ltd. Computer-based system, methods and graphical interface for information storage, modeling and stimulation of complex systems
US5758145A (en) * 1995-02-24 1998-05-26 International Business Machines Corporation Method and apparatus for generating dynamic and hybrid sparse indices for workfiles used in SQL queries
US5855013A (en) * 1996-07-01 1998-12-29 Sun Microsystems, Inc. Method and apparatus for creating and maintaining a computer database utilizing a multi-purpose data format
US6738529B1 (en) * 1996-10-09 2004-05-18 Symyx Technologies, Inc. Analysis of chemical data from images
EP0935784A2 (en) * 1996-11-04 1999-08-18 3-Dimensional Pharmaceuticals, Inc. System, method and computer program product for identifying chemical compounds having desired properties
US5848415A (en) * 1996-12-18 1998-12-08 Unisys Corporation Selective multiple protocol transport and dynamic format conversion in a multi-user network
US5875446A (en) * 1997-02-24 1999-02-23 International Business Machines Corporation System and method for hierarchically grouping and ranking a set of objects in a query context based on one or more relationships
IL121181A0 (en) * 1997-06-27 1997-11-20 Agentics Ltd A method and system for unifying multiple information resources into hierarchial integrated information resource accessible by means of user interface
US6003040A (en) * 1998-01-23 1999-12-14 Mital; Vijay Apparatus and method for storing, navigating among and adding links between data items in computer databases
US6192373B1 (en) * 1998-05-15 2001-02-20 International Business Machines Corp. Managing directory listings in a relational database
US6415276B1 (en) * 1998-08-14 2002-07-02 University Of New Mexico Bayesian belief networks for industrial processes
US6618852B1 (en) * 1998-09-14 2003-09-09 Intellichem, Inc. Object-oriented framework for chemical-process-development decision-support applications
DE69900946T2 (de) 1998-10-19 2002-06-27 Symyx Technologies Inc Entwurf von kombinatorischen materialbibliotheken
US7199809B1 (en) * 1998-10-19 2007-04-03 Symyx Technologies, Inc. Graphic design of combinatorial material libraries
US6587856B1 (en) * 1998-12-07 2003-07-01 Oracle International Corporation Method and system for representing and accessing object-oriented data in a relational database system
US6343291B1 (en) * 1999-02-26 2002-01-29 Hewlett-Packard Company Method and apparatus for using an information model to create a location tree in a hierarchy of information
ES2213588T3 (es) * 1999-06-30 2004-09-01 Pirelli Pneumatici Societa' Per Azioni Neumatico de alto rendimiento para un vehiculo a motor.
US6598043B1 (en) * 1999-10-04 2003-07-22 Jarg Corporation Classification of information sources using graph structures
US6947953B2 (en) * 1999-11-05 2005-09-20 The Board Of Trustees Of The Leland Stanford Junior University Internet-linked system for directory protocol based data storage, retrieval and analysis
US20010047398A1 (en) * 2000-02-29 2001-11-29 Rubenstein Stewart D. Managing chemical information and commerce
US7213017B2 (en) * 2000-03-17 2007-05-01 Microsoft Corporation Systems and methods for transforming query results into hierarchical information
US7216113B1 (en) * 2000-03-24 2007-05-08 Symyx Technologies, Inc. Remote Execution of Materials Library Designs
US20020049548A1 (en) * 2000-04-03 2002-04-25 Libraria, Inc. Chemistry resource database
US7325201B2 (en) * 2000-05-18 2008-01-29 Endeca Technologies, Inc. System and method for manipulating content in a hierarchical data-driven search and navigation system
US6968536B2 (en) * 2000-07-14 2005-11-22 Borland Software Corporation Frame component container
US6519618B1 (en) * 2000-11-02 2003-02-11 Steven L. Snyder Real estate database search method
US6839716B1 (en) * 2000-12-11 2005-01-04 Microsoft Corporation Method and system for building a dataset
AU2002230981A1 (en) * 2000-12-15 2002-06-24 Symyx Technologies, Inc. Methods and apparatus for designing high-dimensional combinatorial experiments
US6658429B2 (en) * 2001-01-05 2003-12-02 Symyx Technologies, Inc. Laboratory database system and methods for combinatorial materials research
US7085773B2 (en) * 2001-01-05 2006-08-01 Symyx Technologies, Inc. Laboratory database system and methods for combinatorial materials research
US7250950B2 (en) * 2001-01-29 2007-07-31 Symyx Technologies, Inc. Systems, methods and computer program products for determining parameters for chemical synthesis
US6944619B2 (en) * 2001-04-12 2005-09-13 Primentia, Inc. System and method for organizing data
WO2002099259A1 (en) * 2001-06-06 2002-12-12 Textron Lycoming Improved cylinder assembly for an aircraft engine
EP2290531A3 (en) * 2001-07-26 2013-04-10 IRiSE System and process for gathering, recording and validating requirements for computer applications
US7367028B2 (en) * 2001-08-14 2008-04-29 National Instruments Corporation Graphically deploying programs on devices in a system
US20030105771A1 (en) * 2001-12-01 2003-06-05 Tiefenbrun Natan E. Attribute driven dynamic tree structure
US7308363B2 (en) * 2002-01-23 2007-12-11 Sri International Modeling and evaluation metabolic reaction pathways and culturing cells
JP3860046B2 (ja) * 2002-02-15 2006-12-20 インターナショナル・ビジネス・マシーンズ・コーポレーション ランダムサンプル階層構造を用いた情報処理のためのプログラム、システムおよび記録媒体
US7693956B2 (en) * 2002-03-25 2010-04-06 Michael Z. Moricz Accessing deep web information using a search engine
AU2003276815A1 (en) * 2002-06-13 2003-12-31 Cerisent Corporation Xml-db transactional update system
AU2003236543A1 (en) * 2002-06-13 2003-12-31 Mark Logic Corporation A subtree-structured xml database
US7219328B2 (en) * 2002-08-28 2007-05-15 Honeywell International Inc. Model-based composable code generation
US7213034B2 (en) * 2003-01-24 2007-05-01 Symyx Technologies, Inc. User-configurable generic experiment class for combinatorial materials research
US7792866B2 (en) * 2003-08-25 2010-09-07 International Business Machines Corporation Method and system for querying structured documents stored in their native format in a database
WO2005052810A1 (en) * 2003-11-28 2005-06-09 Canon Kabushiki Kaisha Method of constructing preferred views of hierarchical data
WO2005059779A2 (en) * 2003-12-16 2005-06-30 Symyx Technologies, Inc. Indexing scheme for formulation workflows
GB2414834A (en) * 2004-06-03 2005-12-07 Mdl Information Systems Inc Visual programming with automated features
WO2006081428A2 (en) * 2005-01-27 2006-08-03 Symyx Technologies, Inc. Parser for generating structure data
WO2007022110A2 (en) * 2005-08-12 2007-02-22 Symyx Technologies, Inc. Event-based library process design

Also Published As

Publication number Publication date
NL1029167A1 (nl) 2005-12-05
US7912845B2 (en) 2011-03-22
EP1622049A2 (en) 2006-02-01
US20100076992A1 (en) 2010-03-25
GB2414833A (en) 2005-12-07
GB2414833B (en) 2006-11-29
DE102005025170A1 (de) 2006-01-19
US20050278308A1 (en) 2005-12-15
GB0511200D0 (en) 2005-07-06
EP1622049A3 (en) 2006-07-19

Similar Documents

Publication Publication Date Title
NL1029167C2 (nl) Werkwijzen en systemen voor gegevensintegratie.
US6604110B1 (en) Automated software code generation from a metadata-based repository
US7016910B2 (en) Indexing, rewriting and efficient querying of relations referencing semistructured data
US6356920B1 (en) Dynamic, hierarchical data exchange system
EP1679588B1 (en) Prescribed navigation using topology metadata and navigation path
US20030018616A1 (en) Systems, methods and computer program products for integrating databases to create an ontology network
EP2078267A1 (en) Data processing
WO2002099725A1 (en) Systems, methods and computer program products for integrating biological/chemical databases to create an ontology network
US9501474B2 (en) Enhanced use of tags when storing relationship information of enterprise objects
KR20030048423A (ko) Xml 퀴어리 처리 방법 및 장치
WO2006020343A1 (en) System for ontology-based semantic matching in a relational database system
EP1277138A1 (en) A system and method for accessing data in disparate information sources
WO2000075849A2 (en) Method and apparatus for data access to heterogeneous data sources
US20010037228A1 (en) System and method for using metadata to flexibly analyze data
CN105574070A (zh) 内容管理系统及在其中报告多个对象的计算机实现方法
US8639717B2 (en) Providing access to data with user defined table functions
EP3827358A1 (en) Data warehousing system and process
Freeman Pro Entity Framework Core 2 for ASP. NET Core MVC
US7085759B2 (en) System and method for communicating data to a process
US20050114642A1 (en) System and method for managing OSS component configuration
Thomas Java Data Access—JDBC, JNDI, and JAXP
Critchlow et al. Experiences applying meta-data to bioinformatics
Brandani Multi-database Access from Amos II using ODBC
CN109388619B (zh) 共享数据系统及共享数据方法
Ed-Douibi et al. Model-driven development of OData services: An application to relational databases

Legal Events

Date Code Title Description
AD1A A request for search or an international type search has been filed
RD2N Patents in respect of which a decision has been taken or a report has been made (novelty report)

Effective date: 20060113

PD2B A search report has been drawn up
VD1 Lapsed due to non-payment of the annual fee

Effective date: 20100101