SCHWERPUnKT - Midrange Magazin

midrange.de

SCHWERPUnKT - Midrange Magazin

TECHNIK & INTEGRATIONSQL-NamenskonventionSystem versus SQL-NamingWorin unterscheiden sich die System- und SQL-Namenskonventionen? Wenn man diese Fragestellt, erhält man oft nur eine einzige Antwort: Werden Datenbankobjekte qualifiziert – alsomit Angabe der Bibliothek/des Schemas angesprochen –, sind verschiedene Schreibweisenerforderlich. Richtig! Was aber, wenn die Datenbankobjekte unqualifiziert verwendet werden?Warum wird das gewünschte Objektbei SQL-Namenskonventionennicht gefunden, obwohl die Bibliothek/dasSchema in der Bibliothekslistehinterlegt ist? Warum erhält maneine Fehlermeldung, die besagt, dasseine User Defined Function nicht in derBibliothek, die genauso heißt wie derBenutzer, zu finden ist? Diese und ähnlicheFragen sollen in diesem Artikelbeantwortet werden.Qualifizierter Zugriffauf DatenbankobjekteWerden Datenbankobjekte qualifiziertangesprochen, gelten für System- undSQL-Namenskonventionen unterschiedlicheSchreibweisen:ó Bei den System-Namenskonventionenwird die vorangestellte Bibliothek/das vorangestellte Schema durch einenSchrägstrich (/) von dem Objektabgegrenzt.ó Bei den SQL-Namenskonventionendagegen muss die Trennung durcheinen Punkt (.) erfolgen.Das folgende Beispiel zeigt ein einfachesSELECT-Statement – zunächstin der System- und anschließend in derSQL-Schreibweise.óóSystem-Naming:Select * From MySchema/MyTable;SQL-Naming:Select * From MySchema.MyTable;Beispiel 1: Qualifizierter Zugriff auf Datenbankobjektemit *SYS- und *SQL-NamingSoweit zur qualifizierten Verwendungvon Datenbankobjekten. Weit interessanterist jedoch der unqualifizierteZugriff auf die Objekte. UnqualifizierteZugriffe erlauben es, gleiche Anweisungenfür gleichnamige Objekte, diein unterschiedlichen Bibliotheken oderSchemata hinterlegt sind, unverändertauszuführen. Nun stellt sich die Frage,ob es Unterschiede zwischen *SYS- und*SQL-Naming gibt, wenn unqualifiziert– also ohne Angabe der Bibliothek/desSchemas – auf Datenbankobjekte zugegriffenwerden soll.Unqualifizierte Zugriffeauf DatenbankobjekteZwischen System- und SQL-Namenskonventionengibt es gerade beim unqualifiziertenZugriff auf die Objekteerhebliche Unterschiede:System-Namenskonventionen: Betrachtenwir zunächst den unqualifiziertenZugriff auf Datenbankobjektemit System-Namenskonventionen: Hiergelten die üblichen System i-/Power i-Regeln – d. h., die Bibliotheksliste wirdvon oben nach unten nach dem angegebenenObjekt durchsucht. Sobald einObjekt mit dem entsprechenden Namengefunden wird, wird es verwendet.Damit ist es möglich, in einem einzigenSQL-Statement mehrere Tabellen,physische Dateien oder Views, die inunterschiedlichen Bibliotheken/Schematahinterlegt sind, unqualifiziert zuverwenden.Wurde allerdings über den SQL-BefehlSET CURRENT SCHEMA eine aktuelleBibliothek vorgegeben, wird dasangegebene Datenbankobjekt (Dateien/Tabellen/Views) nur in dieser Bibliothek/diesemSchema gesucht. Die Bibliothekslistewird auch unter Verwendungdes System-Namings nicht mehrberücksichtigt – d. h., es ist nicht mehrmöglich, auf Datenbankobjekte, die inunterschiedlichen Bibliotheken hinterlegtsind, unqualifiziert zuzugreifen.SQL-Namenskonventionen: Betrachtenwir zunächst den unqualifiziertenZugriff auf Tabellen, physischeDateien und alle Objekte, die direkt mitden Tabellen und physischen Dateienverbunden sind – wie beispielsweiseViews, Indices, DDS-beschriebene logischeDateien, Constraints, Trigger usw:Default-Schema: Die unqualifiziertangegebenen Tabellen und Views werdenper Default in einer Bibliothek/einem Schema vermutet, deren Namedem Benutzerprofil, unter dem das SQL-Statement ausgeführt wird, entspricht.Die Bibliotheksliste wird nicht berücksichtigt.Existiert keine Bibliothek, diemit dem Namen des Benutzerprofilsübereinstimmt, kann das Objekt nichtgefunden werden.Beispiel: Der Benutzer Meier möchteüber ein SELECT-Statement auf dieDatei UMSATZ – die in der BibliothekFIBU hinterlegt ist – mit SQL-Namenskonventionenzugreifen. Obwohl dieBibliothek FIBU in seiner Bibliothekslistehinterlegt ist, wird er beim unqualifiziertenZugriff eine Fehlermeldungerhalten, dass die Datei UMSATZ nichtgefunden werden konnte.38MIDRANGE MAGAZIN · 11/2011

Weitere Magazine dieses Users
Ähnliche Magazine