FAQ FirebirdConsultez toutes les FAQ
Nombre d'auteurs : 6, nombre de questions : 205, dernière mise à jour : 15 septembre 2014 Ajouter une question
Cette faq a été réalisée à partir des questions fréquement posées sur les forums Firebird de http://www.developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette F.A.Q. ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette F.A.Q. ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, lisez ceci
Sur ce, nous vous souhaitons une bonne lecture.
L'équipe Firebird de Developpez.com
- Quelle est la limite de la taille d'une base de données Firebird?
- Quelles sont les limites techniques de Firebird?
- Que sont les dialectes SQL et lequel utiliser?
- Pas de champ booléen avec Firebird?
- Qu'est-ce que l'Architecture Multi-Générationnelle?
- Que sont les BLR?
- Firebird inclut-il les fonctions comme ABS, SIN, COS, FLOOR, LOG, TRIM, MOD, STRLEN?
- Firebird fonctionne-t-il sur des systèmes 64 bits?
- Combien d'utilisateurs peuvent se connecter à Firebird simultanément?
Vous atteindrez certainement les limites du système de fichier avant celle de Firebird.
Voici quelles sont les limitations de ces systèmes de fichiers:
Windows:
FAT12: 32Mo
FAT16: 2Go (Windows NT3 ou plus récent)
FAT32: 2Go
FAT32: 4Go (Windows NT5 ou plus récent)
NTFS: 4Go
NTFS: 16Eio (Windows NT5 ou plus récent)
Linux:
EXT2/EXT3: 2To (avec 4Ko de blocksize)
EXT2/EXT3: 64To (avec 8Ko de blocksize)
ReiserFS 3.6: 1Eio
XFS: 8Eio
JFS: 8Eio (avec 512 octets de blocksize)
JFS: 8Eio (avec 4Ko de blocksize)
Même si vous atteignez une de ces limites, Firebird supporte les bases multi-fichiers.
Nota: Eio = exbioctet = 2^60.
Traduction réalisée depuis http://www.firebirdfaq.org/faq59/
Les voici:
Taille maximum de la base de données: aucune limitation avec Firebird 2 (en utilisant les fichiers multiples), 32To avec FB 1.x.
Taille maximum d'un fichier: 16To ou plus, dépendant du système de fichiers utilisé.
Nombre maximum de tables: 32K Tables
Taille maximum d'une table: 32To (~30Go pour Firebird 1.x)
Nombre maximum de champs par table: 16G (4G avec Firebird 1.x)
Les limites du système de fichiers s'appliquent à chacune de ces valeurs.
Taille maximum d'un enregistrement: 64K
Nombre maximum de champs par table: Dépend des types de données utilisés. (Exemple: 16384 INTEGER (4 octets) par enregistrement). Les blobs stockent uniquement un BLOB_ID et les données sont stockées séparément.
Nombre maximum d'index par tables: environ 850 index
Nombre maximum d'index par base de données: 4G index
Le nombre d'index dépend de la taille de la page et du type de données utilisés.
Type de données:
Char et Varchar: 32767 octets
Smallint: 16 bits
Integer: 32 bits
BigInt: 64 bits
Float: 32 bits, 3,4x10^-38 à 3.4x10^38, précision 7 chiffres
Double: 64 bits, 1,7x10^-308 à 1,7x10^308, précision 15 chiffres
Timestamp: 64 bits, 1 Jan 100 au 28 Fév 32768
Date: 32 bits, 1 Jan 100 au 29 Fév 32786
Time: 32 bits, 00:00 à 23:59.9999
Blob: 32Go
Les types Numeric et Decimal sont stockés en interne sous forme de smallint, integer ou bigint selon la taille.
Ils peuvent supporter jusqu'à 18 chiffres.
Traduction réalisée depuis http://www.firebirdfaq.org/faq61/
Les dialectes SQL ont été utilisés pour la migration entre Interbase 5 et Firebird 1. Le dialecte 1 permet aux applications de communiquer avec Firebird comme si il s'agissait d'Interbase 5, le dialecte 2 a été utilisé de façon transitoire et le dialecte 3 supporte toutes les nouvelles fonctionnalités.
Si vous créez de nouvelles applications vous devriez utiliser le dialecte 3 pour toutes vos bases de données.
Traduction réalisée depuis http://www.firebirdfaq.org/faq24/
Il n'existe pas nativement de champ de type booléen, mais vous disposez de quelques alternatives.
- utiliser un char(1)
- utiliser un smallint
- utiliser un domaine
Les domaines sont probablement la meilleure solution. Vous pouvez les créer ainsi:
Code sql : | Sélectionner tout |
1 2 3 | CREATE DOMAIN BOOLEAN AS SMALLINT CHECK (value is null or value in (0, 1)); |
Code sql : | Sélectionner tout |
1 2 3 4 5 6 7 | CREATE TABLE t1 ( C1 VARCHAR(10), B1 BOOLEAN, B2 BOOLEAN NOT NULL, ... ); |
Traduction réalisée depuis http://www.firebirdfaq.org/faq12/
L'Architecture Multi-Générationelle (en anglais MGA: Multi Generational Architecture) est une fonctionnalité utilisée par les SGBD modernes. Cela signifie que les multiples versions des enregistrements sont conservées dans la base de données aussi longtemps qu'elles sont nécessaires à au moins une transaction.
Chaque transaction active possède à tout moment sa propre vue cohérente des données de la base, car les enregistrements dont elle a besoin ne sont pas effacés ni modifiés même si une autre transaction les supprime ou modifie. Cela permet le fameux "readers don't block writers and writers don't block readers".
Cette architecture s'assure que des opérations de type OLTP et OLAP peuvent se produire simultanément sans nécessité de verrouillage dans le fonctionnement du SGBD.
Traduction réalisée depuis http://www.firebirdfaq.org/faq44/
BLR signifie Binary Langage Representation. Toutes les requêtes SQL sont traduites du SQL en BLR avant l'exécution. Lorsque vous créez ou modifiez une procédure stockée, un déclencheur, une vue ou un champ calculé, Firebird compile le code source et le stocke sous sa forme compilée dans les tables systèmes. Il stocke également le code SQL original que vous manipulez, mais en réalité il n'est jamais utilisé.
Ensuite lorsque une procédure stockée est exécutée, Firebird exécute simplement le code binaire sans avoir besoin de le recompiler.
Disposer ainsi des BLR réduit également la dépendance entres les objets de la base de données. Imaginez ces 2 tables:
Code sql : | Sélectionner tout |
1 2 | CREATE TABLE t1 ( a integer, b integer ); CREATE TABLE t2 ( c integer ); |
Code sql : | Sélectionner tout |
1 2 3 | SELECT a, b FROM t1 JOIN t2 ON t1.a = t2.c; |
Code text : | Sélectionner tout |
1 2 | Ambiguous field name between table T1 and table T2<br/> B |
Traduction réalisée depuis http://www.firebirdfaq.org/faq187/
Firebird 2.1 a inclus plusieurs fonctions de ce genre dans son moteur, ainsi il n'est plus nécessaire de déclarer des UDFs. Vous pouvez consulter les notes de versions pour plus d'informations et obtenir la liste des fonctions intégrées.
Cette QR s'applique toujours aux versions plus anciennes de Firebird ainsi qu'aux fonctions qui ne sont pas encore intégrées.
Le moteur Firebird possède un nombre limité de fonctions intégrées (Built-In Functions). Cependant, il supporte les UDFs (User Define Functions) qui peuvent être écrites avec n'importe quel langage de programmation produisant des DLL (.so sous Linux).
L'installation par défaut de Firebird fournit actuellement 2 librairies (fbudf et ib_udf) qui définissent la plupart des fonctions communes telles que ABS, SIN, COS, LOG, TRIM, etc. Afin de les utiliser, vous devez les enregistrer dans votre base de données. A noter que vous devez les enregistrer pour chacune des bases de données les sollicitant.
L'enregistrement ressemble à ceci:
Code sql : | Sélectionner tout |
1 2 3 4 | DECLARE EXTERNAL FUNCTION abs DOUBLE PRECISION RETURNS DOUBLE PRECISION BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf'; |
Si vous souhaitez créer vos propres UDFs, vous pouvez consulter l'exemple fourni dans la section "Comment faire" de la FAQ, rédigé en langage Delphi.
Traduction réalisée depuis http://www.firebirdfaq.org/faq169/
Oui depuis la version 1.5. Firebird 2.0 tourne sur Linux 64 bits uniquement, et Firebird 2.1 tourne sous Windows et Linux 64 bits. Même si votre plateforme n'est pas supportée, vous pouvez toujours faire tourner votre version 32 bit de Firebird sur votre système 64 bits.
Traduction réalisée depuis: http://www.firebirdfaq.org/faq242/
Le serveur Firebird en interne n'a pas de limite, cette limite est imposée par les ressources de votre serveur. Cependant, la plupart des systèmes d'exploitation ont une limite codée en dur de 1024 connexions par port TCP/IP, et on a déjà recensé des cas où cette limite avait été atteinte (particulièrement lorsque l'application classique Client/Serveur est utilisée à travers Internet).
Si vous avez besoin de dépasser cette limite, vous devrez utiliser la technique des pools de connexions, construire une application multi-tiers, pour ainsi disposer de multiples utilisateurs utilisant la même connexion.
Traduction réalisée depuis: http://www.firebirdfaq.org/faq292/
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.