|
Wie wird ein Index auf einer Spalte eines Views erzeugt?
| Frage |
|
Auf einem View kann kein Index erzeugt werden. Der Index kann nur auf einer Tabelle, die dann Grundlage für einen View ist, erzeugt werden. Über die SQL-Links kann man nicht auf Views zugreifen. Realisieren Sie den Zugriff über die Tabelle selbst.
| Antwort |
|
Was ist die Obergrenze für die Größe von Datenbanken?
| Frage |
|
Durch die Praxis erwiesene Grenzen für Datenbankgrößen hinsichtlich der Dateien, die die Datenbank bilden, der Backup- und Restore-Zeiten etc. liegen bei 10 GB oder weniger.
| Antwort |
|
Aus wievielen Dateien kann eine Datenbank bestehen?
| Frage |
|
Die Nummern Dateien und aller Verweise wird als SHORT abgelegt, wodurch ein Limit bei 65.536 Dateien erreicht ist.
| Antwort |
|
Wie viele Datenbanken können an einer Transaktion beteiligt sein, d. h. innerhalb einer Transaktion gleichzeitig geöffnet sein?
| Frage |
|
Es gibt diesbezüglich keine in InterBase liegende Begrenzung. In Tests wurden Transaktionen über 17 Datenbanken erfolgreich durchgeführt.
| Antwort |
|
Wieviele Tabellen können in einer Datenbank abgelegt werden?
| Frage |
|
65.536. Sie werden durchnumeriert, und diese Nummern werden als SHORT gespeichert.
| Antwort |
|
Wieviele Zeilen und Spalten kann eine Tabelle haben?
| Frage |
|
Es gibt kein Limit bezüglich der Datensätze (Zeilen) in InterBase. Ein Datensatz kann bis zu 64 kB groß sein (ohne BLOBs), die Anzahl der Spalten hängt somit von den für die Felder verwendeten Datentypen ab.
| Antwort |
|
Wieviele Indizes kann eine Datenbank oder eine Tabelle haben?
| Frage |
|
Sie können bis zu 65.536 Indizes innerhalb einer Datenbank definieren. Diese können alle auf einer Tabelle definiert sein.
| Antwort |
|
Wieviele Events kann man in einer Stored Procedure oder einem Trigger auslösen?
| Frage |
|
Es gibt kein Limit für die Anzahl der Events, die innerhalb einer Stored Procedure oder eines Triggers ausgelöst werden können. Praktische Grenzen werden allerdings durch das Betriebssystem oder die Hardware gezogen.
| Antwort |
|
Wieviele Tabellen können über Joins verbunden werden?
| Frage |
|
Es gibt keine Begrenzung. Joins über 15 Tabellen wurden erfolgreich getestet.
| Antwort |
|
Wie tief kann eine Abfrage verschachtelt sein?
| Frage |
|
Auch hier gibt es keine Beschränkung durch InterBase. Verschachtelungstiefen von 16 wurden erfolgreich getestet.
| Antwort |
|
Wieviele Felder können in einem zusammengesetzten Index verwendet werden?
| Frage |
|
Ein zusammengesetzter Index kann aus bis zu 16 Feldern bestehen.
| Antwort |
|
Wie tief kann eine Stored Procedure oder ein Trigger verschachtelt sein?
| Frage |
|
Das hängt von der Plattform ab. Es gibt aber ein Limit von 1000 Rekursionen für Stored Procedures. Ein Trigger kann grundsätzlich nicht rekursiv sein.
| Antwort |
|
Wie groß kann eine Stored Procedure oder ein Trigger maximal sein?
| Frage |
|
Die Größe für einen Trigger oder eine Stored Procedure kann in kompilierter Fassung 48 kB nicht übersteigen.
| Antwort |
|
Wieviele UDFs (User Defined Functions) und BLOB-Filter können für eine Datenbank definiert werden?
| Frage |
|
Die Anzahl der UDFs ist praktisch unbegrenzt. Ein theoretisches Limit existiert durch die Begrenzung der Funktionsnamen auf 31 Zeichen.
| Antwort |
|
Wie kann man UDF-Module InterBase bekannt machen?
| Frage |
|
Eine ausführliche Beschreibung finden Sie in Kapitel 11 des Programmer’s Guide von InterBase 4.0.
| Antwort |
|
Wieviele Clients können sich für einen Event anmelden?
| Frage |
|
Es gibt kein Limit für Client-Anwendungen, die sich für ein und denselben Event interessieren. Eine Begrenzung entsteht höchstens durch das Betriebssystem oder die Hardware.
| Antwort |
|
Wie kann man Ressourcen auf einem Windows NT oder Novell Netware Server wieder freigeben, nachdem ein Client abgestürzt ist?
| Frage |
|
Sie müssen den Server herunterfahren. Dazu können Sie die Anwendung Server Manager verwenden.
| Antwort |
|
Unterstützt InterBase mehrere Threads?
| Frage |
|
Es gibt keine Unterstützung oder Dokumentation zur Entwicklung von Client-Anwendungen, die mehrere Threads haben.
| Antwort |
|
Wie wird referentielle Integrität über mehrere Datenbanken gewährleistet?
| Frage |
|
Es gibt keine automatische Unterstützung für die Aufrechterhaltung von Referenzintegrität über mehrere Datenbanken hinweg. Sie kann nur durch entsprechende Programmierung herbeigeführt werden, wobei Transaktionen mit Two-Phase Commit zwischen jeweils zwei Datenbanken verwendet werden können.
| Antwort |
|
Wie kann man Zeichensätze umwandeln?
| Frage |
|
Die Umwandlung von Zeichensätzen erfolgt transparent. Sowohl während eines Kopiervorgangs als auch bei Abfragen wird diese Umwandlung durchgeführt. Wenn Sie also einen neuen Zeichensatz einstellen, werden die Daten automatisch beim Kopieren umgewandelt. Auch das Ergebnis einer Abfrage liegt dann in dem neuen Zeichensatz vor.
| Antwort |
|
Welcher Zeichensatz entspricht dem Zeichensatz Paradox Cyr866?
| Frage |
|
Sie können diesen Zeichensatz folgendermaßen verwenden:
CHARSET („CYRL“, CS_CYRL, 0, 1, 256,
CS_cyrl, CYRL_c0_init)
COLLATION(„DB_RUS“, CC_RUSSIA, CS_CYRL, 1,
CYRL_c1_init)
COLLATION(„PDOX_CYRL“, CC_RUSSIA, CS_CYRL, 2,
CYRL_c2_init)
END_CHARSET
CREATE TABLE XXX (c[30] character set CYRL COLLATE PDOX_CYRL);
| Antwort |
|
Ist die INTERNATIONAL-Lizenzkomponente erforderlich, um verschiedene Zeichensätze verwenden zu können?
| Frage |
|
Diese Lizenzkomponente wird nur für die Zeichensätze Japanisch SJIS und Japanisch EUC benötigt.
| Antwort |
|
Unterstützt InterBase Replikationsmechanismen? Unterstützt InterBase das X/Open XA Interface?
| Frage |
|
Weder Replikation noch X/Open werden momentan unterstützt oder in der Version 4.5 unterstützt werden.
| Antwort |
|
Wie kann man den Zeitanteil bei einem DateTime-Wert unterdrücken?
| Frage |
|
Wenn Sie den Zeitanteil auf 0 setzen wollen, wandeln Sie das Datum in eine UNIX-Struktur um. Anschließend setzen Sie die Felder tm_hour, tm_min und tm_sec auf 0. Wenn Sie nur an den Datumsinformationen interessiert sind, dann reicht es, die Felder tm_mday, tm_mon und tm_year auszulesen.
| Antwort |
|
Kann ein Tabellenname als Parameter einer Stored Procedure verwendet werden?
| Frage |
|
Man kann einen Tabellennamen als String übergeben und dann mit IF … ELSE die verschiedenen Tabellennamen behandeln. Eine Stored Procedure kann allerdings nicht einen Tabellennamen dynamisch für Operationen auf dieser Tabelle verwenden.
| Antwort |
|
Unterstützt InterBase Query-Rewrite-Regeln?
| Frage |
|
In Version 4.0 werden Query-Rewrite-Regeln nicht unterstützt. Dies wird vermutlich auch in Version 4.5 nicht der Fall sein.
| Antwort |
|
Kann man eine gespiegelte Datenbank ansehen oder verändern?
| Frage |
|
Auf einer gespiegelten Datenbank kann man keinerlei Operationen durchführen, ohne sie dabei zu beschädigen. Die Spiegelung ist eine exakte Kopie der Originaldatenbank und kann keine Informationen über Transaktionen, die nur auf der gespiegelten Kopie durchgeführt werden sollen, verwalten.
| Antwort |
|
Kann InterBase Daten, die über ein Netzwerk verschickt werden, verschlüsseln?
| Frage |
|
InterBase unterstützt keine Verschlüsselung von Daten, die über ein Netzwerk übertragen werden.
| Antwort |
|
Wie kann man den erforderlichen Plattenplatz für eine Datenbank abschätzen?
| Frage |
|
Es gibt keine Methode, den erforderlichen Plattenplatz genau zu bestimmen. Die Daten werden komprimiert abgelegt, so daß der tatsächliche Plattenplatzbedarf von der Komprimierfähigkeit der Daten abhängt. Verschiedene Kopien von Datensätzen können, bedingt durch die Mehr-Generationen-Architektur von InterBase, vorhanden sein. Nach einiger Zeit kann eine Datenbank fragmentierte Pages aufweisen.
| Antwort |
|
Wieviel Speicherplatz wird für Remote Connects auf einem NT- oder Novell-Server verbraucht?
| Frage |
|
Der Speicherbedarf variiert mit den Anwendungen. Die Datenstrukturen, die Art der Abfragen etc. können den Speicherbedarf beeinflussen.
| Antwort |
|
Wir bekommen einen Fehler „Unlicensed“, wenn wir versuchen, auf einen NetWare-Server zuzugreifen. Warum?
| Frage |
|
Die Dateien ISC_LIC.DAT, ISC4.GDB und INTERBAS.MSG müssen im Verzeichnis SYS:INTERBAS auf NetWare vorhanden sein.
| Antwort |
|
Warum habe ich Probleme damit, meine database auszuwählen, während ich client tools benutze?
| Frage |
- Stellen Sie sicher, daß es eine [Interbase]-Sektion in der Datei WIN.INI gibt, die einen RootDirectory-Eintrag enthält, der zur LIBS-root-Adreßdatei verweist. Diese Adreßdatei enthält die ISC4.GDB-Sicherheitsdatabase, das INTERBAS.MSG Message File und das ISC-LIC.DAT Licence File.
- Vergewissern Sie sich, daß Sie nicht das Umwelt-variable INTERBASE-Set besitzen (benutzt von älteren Versionen von InterBase).
- Vergewissern Sie sich, daß sie nicht ISC_USER, ISC_PASSWORD oder ISC_DATABASE als Umweltvariable eingestellt haben. Diese Variablen werden nämlich auch von früheren Versionen von InterBase benutzt.
| Antwort |
|
Wo speichert die lokale InterBase Engine die Metadaten?
| Frage |
|
InterBase speichert seine Metadaten in Tabellen, deren Namen mit RDB$ anfangen. Die Informationen zu den Tabellen einer Datenbank werden zum Beispiel in der Tabelle RDB$RELATIONS abgelegt.
| Antwort |
|
Kann ich die Datenbanken der lokalen InterBase Engine auf einen Fileserver übertragen?
| Frage |
|
Ja, aber die lokale InterBase Engine kann die Daten auf dem Server nicht mit anderen Anwendungen teilen. Daraus folgt, daß mehrere Benutzer nicht gleichzeitig auf die Daten zugreifen dürfen.
| Antwort |
|
Kann ich auf eine Datenbank der lokalen InterBase Engine zugreifen, ohne über die Borland Database Engine zu gehen, wie es bei den früheren Versionen von InterBase möglich war?
| Frage |
|
Zur Zeit ist ein API zur direkten Anbindung an die lokale InterBase Engine von Borland nicht dokumentiert. Der Zugriff über die BDE ist darüber hinaus auch der komfortablere Weg.
| Antwort |
|
Ich habe manchmal Schwierigkeiten damit, auf meine Datenbank zuzugreifen. Ich habe meine User ID und mein Password auf ihre Richtigkeit hin überprüft, erhalte aber hin und wieder ohne ersichtlichen Grund keinen Zugang. Warum?
| Frage |
|
Beim Zugriff auf eine Datenbank ist darauf zu achten, daß beim Password zwischen Groß- und Kleinschreibung unterschieden wird, obwohl dies bei der User ID nicht der Fall ist. Manchmal ist einfach nur die Taste CAPS-LOCK in einem anderen Zustand als beim Einrichten des Users.
| Antwort |
|
In meiner Datenbank sehe ich oft eine Menge Tabellen mit „RDB$“ im Namen. Ich habe diese Tabellen nicht erstellt und würde sie gerne löschen. Wie kann ich dies bewerkstelligen?
| Frage |
|
Diese Tabellen sind Systemtabellen. Sie werden von InterBase unbedingt benötigt. Löschen Sie diese Tabellen niemals. Sehen Sie diese Tabellen im Öffnen-Dialog der Datenbankoberfläche, so stellen Sie den Dateityp so ein, daß er statt nur anzeigt.
| Antwort |
|
Gibt es eine Möglichkeit, ungesicherte Arbeiten im Falle eines Systemabsturzes wiederherzustellen?
| Frage |
|
Nein. Werden Änderungen ohne Commit gemacht, sind sie verloren. Machen Sie deshalb häufig ein Commit.
| Antwort |
|
Wie werden Daten von einer Datenbank zu einer anderen mit Hilfe von ISQL kopiert?
| Frage |
|
Es gibt keine Unterstützung für das Kopieren von Daten von einer Datenbank auf eine andere mittels ISQL. In InterBase 3.3 war dies ein Feature von QLI.
| Antwort |
|
Wie kann ich metadata-Informationen bekommen (Informationen über Tabellen, Indexe, usw.)
| Frage |
|
WISQL wird benutzt, um Informationen über eine database zu erhalten. Wählen Sie unter WISQL „VIEV INFORMATION ON“ und „OBJECT NAME“. Im ersten Eingabefeld geben Sie dann den Namen eines database-Objekts ein, z. B. Tabelle, Domäne oder Database. Im zweiten Eingabefeld, „OBJECT NAME“, geben Sie den aktuellen Objektnamen ein. Um z. B. Informationen über eine Tabelle namens Emp zu erhalten, würde „VIEW INFORMATION ON“ auf „TABLE“ und „OBJECT NAME“ auf „EMP“ gesetzt werden.
Um metadata-Informationen über die gerade ausgewählte database zu erhalten, können Sie auch die „EXTRACT“-Menüoption benutzen. Sie hat drei Menüinhalte: „SQL metadata for Database“, „SQL metadata for Table“ und „SQL metadata for View“. Die Menüoption „SQL metadate for Database“ liefert kompakte Informationen über alle Objekte innerhalb der database. Indem man den zweiten und dritten Menüpunkt auswählt, öffnet man eine Dialogbox, in der man eine existierende Tabelle oder Ansicht auswählen kann. Das „Extract“-Menü zu benutzen, hat den zusätzlichen Vorteil, daß der Benutzer die Möglichkeit hat, die metadata-Information in einem ASCII-file für zukünftige Verwendungen zu speichern. Dieses file kann später als ein SQL-Script benutzt werden, um die metadata von database erneut zu erstellen.
| Antwort
|