IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Bien débuter
        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?



Quelle est la limite de la taille d'une base de données Firebird?
auteur : Cl@udius
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/


Quelles sont les limites techniques de Firebird?
auteur : Cl@udius
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/

lien : faq Quelle est la limite de la taille d'une base de données Firebird?

Que sont les dialectes SQL et lequel utiliser?
auteur : Cl@udius
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/


Pas de champ booléen avec Firebird?
auteur : Cl@udius
Il n'existe pas nativement de champ de type booléen, mais vous disposez de quelques alternatives.


  1. utiliser un char(1)
  2. utiliser un smallint
  3. utiliser un domaine
Les domaines sont probablement la meilleure solution. Vous pouvez les créer ainsi:

CREATE DOMAIN BOOLEAN
AS SMALLINT
CHECK (value is null or value in (0, 1));
Ensuite dans la définition de la table vous pouvez vous y référer comme un type de données standard.

CREATE TABLE t1
(
C1 VARCHAR(10),
B1 BOOLEAN,
B2 BOOLEAN NOT NULL,
...
);
Si vous utilisez une librairie de connexion comme OleDB sous .Net, vous pouvez surcharger la méthode GetSchema du provider OleDB ainsi les données obtenues depuis vos requêtes seront booléennes de façon native.

Traduction réalisée depuis http://www.firebirdfaq.org/faq12/


Qu'est-ce que l'Architecture Multi-Générationnelle?
auteur : Cl@udius
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/


Que sont les BLR?
auteur : Cl@udius
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:

CREATE TABLE t1 ( a integer, b integer );
CREATE TABLE t2 ( c integer );
et la requête suivante dans une procédure stockée:

SELECT a, b
FROM t1
JOIN t2 ON t1.a = t2.c;
Plus tard vous pouvez facilement ajouter une colonne nommée B à la table T2 et la procédure stockée continuera de fonctionner correctement même si la requête en elle-même déclencherait une erreur:


Ambiguous field name between table T1 and table T2<br/>
B
La procédure stockée continue de fonctionner car le SQL n'est plus interprété et la BLR contient bien une référence du champ B de la table T1.

Traduction réalisée depuis http://www.firebirdfaq.org/faq187/


Firebird inclut-il les fonctions comme ABS, SIN, COS, FLOOR, LOG, TRIM, MOD, STRLEN?
auteur : Cl@udius
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:

DECLARE EXTERNAL FUNCTION abs
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
Vous trouverez les librairies .dll ou .so dans le sous-dossier UDF de votre installation Firebird, ainsi que les scripts SQL permettant d'enregistrer les fonctions dans vos bases de données.

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/

lien : faq Comment écrire des UDFs avec Delphi ?

Firebird fonctionne-t-il sur des systèmes 64 bits?
auteur : Cl@udius
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/


Combien d'utilisateurs peuvent se connecter à Firebird simultanément?
auteur : Cl@udius
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/



Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!

Les 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 © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni 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.