Está en la página 1de 13

Limites de Firebird

Lmites de la Base de Datos


ITEM
Firebird 2.X
Firebird 1.5
Tamao maximo de la Practicamente ilimitada
32 Tb usando
base de datos
usando partiendo la bd
varios ficheros.
en varios ficheros.
Tamao mximo bd Vrios Terabytes en la gran mayoria
Igual que
en un solo fichero
de plataformas; El limite viene definido
Firebird 2.x
por el sistema de archivos ( 4Gb o 2 Gb en
algunas plataformas, Ej. Windows 98)
Mximo numero de
64.535
Igual que
ficheros de base de
Firebird 2.x
datos
Maximo numero de
64.535
Igual que
tablas
Firebird 2.x
Mximo tamao de
32 Tb
Igual que
una tabla
Firebird 2.x
Maximo tamao de un 2 Gb
Igual que
fichero externo de
Firebird 2.x
tabla
Mximo numero de
> 16 Billones (Esto no esta comprobado, este
4 Billones
filas por tabla
dato es terico).
Mximo tamao de
64.535 bytes (64 KB)
Igual que
fila
Firebird 2.x
Mximo tamao de
16 Kb
Igual que
pagina de datos
Nota: El tamao puede ser de
Firebird 2.x
1024,2048,4096,8192 o 16384. El Tamao 1024
no esta recomendado.
Mximo numero de
Depende del tipo de dato usado.
Igual que
columnas por tabla
(Ejemplo: 16384 INTEGER (4-Byte) valores por Firebird 2.x
fila.)

Mximo numero de
indices por tabla
Mximo tamao de
indice principal

Nota: 8-Byte son almacenados por cada BLOB


or ARRAY
El tamao del BLOB o ARRAY no es tenido en
cuenta en el tamao de la fila.
65.535
Igual que
Firebird 2.x
4096 cuando el tamao de la pagina es 16 Kb
252 bytes
(Limitado a un cuarto del tamao de la
paginacion de la base de datos. )

Mximo numero de
indices por databla

Importante: disminuye el lmite de carcter por


columna
cuando el caracterer esta configurado
comomultibyte;
4.398.046.511.104

Igual que
Firebird 2.x

Lmites de los tipos de datos en


Firebird
Tamao

Rango/Precisin

Descripcin

Nombre

Varchar(n)

n Caracteres 1 to 32.767 Bytes

Smallint
Integer

16 bits
32 bits

Float
Double
Precisin

-215 to 215-1
-231 to 231-1
3.4x10-30 to
32 bits
3.4x1038
1.7x10-308 to
64 bits
1.7x10308
64 bits (2x32 1 jan 100 CE to 28 feb
bits)
32768 CE

Array de caracteres o cadena de


texto.
NB, si selecccionamos la opcion
multi-Byte reduce
el numero de caracteres posibles
proporcionalmente.
Entero corto
Entero largo
Nmero Real con 7 dgitos
Nmero Real con 16 dgitos

Incluye la hora y la fecha en dos


estructuras de 32 bits.
Fecha. Ejemplo: 12/10/1977
1 jan 100 CE to 28 feb
Date
32 bits
La hora no esta almacenada en este
32768 CE
tipo.
Time
32 bits
0:00 to 23:59,9999
Tipo Hora. Ejemplo: 12:00:00
Almacenamiento para variables
indeterminadas.
BLOB
<32 GB
Textos,Imagenes,Archivos
Binarios, etc.
Numeros reales con la cantidad de
Variable
Numeric
Segun la
decimales definidos.
(16,32 or 64
(precision,scale)
especificacin deseada Ejemplo: Numeric(10,3)
bits)
3462344634,345
Timestamp

Sobre PostgreSQL
Sb, 02/10/2010 - 22:29 rafaelma

Introduccin
Caractersticas
Historia
Ciclo de vida (EOL) y soporte

Introduccin
PostgreSQL es un sistema de gestin de bases de datos objeto-relacional, distribuido bajo licencia BSD
y con su cdigo fuente disponible libremente. Es el sistema de gestin de bases de datos de cdigo
abierto ms potente del mercado y en sus ltimas versiones no tiene nada que
envidiarle a otras bases de datos comerciales.
PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez
de multihilospara garantizar la estabilidad del sistema. Un fallo en uno de los
procesos no afectar el resto y el sistema continuar funcionando.
A continuacin teneis un grfico que ilustra de manera general los componentes ms importantes en
un sistema PostgreSQL.

Aplicacin cliente: Esta es la aplicacin cliente que utiliza PostgreSQL como administrador
de bases de datos. La conexin puede ocurrir via TCP/IP sockets locales.

Demonio postmaster: Este es el proceso principal de PostgreSQL. Es el encargado de


escuchar por un puerto/socket por conexiones entrantes de clientes. Tambien es el encargado
de crear los procesos hijos que se encargaran de autentificar estas peticiones, gestionar las
consultas y mandar los resultados a las aplicaciones clientes

Ficheros de configuracion: Los 3 ficheros principales de configuracin utilizados por


PostgreSQL, postgresql.conf, pg_hba.conf y pg_ident.conf

Procesos hijos postgres: Procesos hijos que se encargan de autentificar a los clientes, de
gestionar las consultas y mandar los resultados a las aplicaciones clientes

PostgreSQL share buffer cache: Memoria compartida usada por POstgreSQL para
almacenar datos en cach.

Write-Ahead Log (WAL): Componente del sistema encargado de asegurar la integridad de


los datos (recuperacin de tipo REDO)

Kernel disk buffer cache: Cach de disco del sistema operativo

Disco: Disco fsico donde se almacenan los datos y toda la informacin necesaria para que
PostgreSQL funcione

Caractersticas
La ltima serie de produccin es la 9.3. Sus caractersticas tcnicas la hacen una de las bases de datos
ms potentes y robustas del mercado. Su desarrollo comenzo hace ms de 16 aos, y durante este
tiempo, estabilidad, potencia, robustez, facilidad de administracin e implementacin de
estndares han sido las caractersticas que ms se han tenido en cuenta durante su desarrollo.
PostgreSQL funciona muy bien con grandes cantidades de datos y una alta concurrencia de usuarios
accediendo a la vez a el sistema.
A continuacin teneis algunas de las caractersticas ms importantes y soportadas por PostgreSQL:

Generales

Es una base de datos 100% ACID

Integridad referencial

Tablespaces

Nested transactions (savepoints)

Replicacin asincrnica/sincrnica / Streaming replication - Hot Standby

Two-phase commit

PITR - point in time recovery

Copias de seguridad en caliente (Online/hot backups)

Unicode

Juegos de caracteres internacionales

Regionalizacin por columna

Multi-Version Concurrency Control (MVCC)

Multiples mtodos de autentificacin

Acceso encriptado via SSL

Actualizacin in-situ integrada (pg_upgrade)

SE-postgres

Completa documentacin

Licencia BSD

Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI IRIX, Mac OS X,
Solaris, Tru64) y Windows 32/64bit.

Programacin / Desarrollo

Funciones/procedimientos almacenados (stored procedures) en numerosos lenguajes de


programacion, entre otros PL/pgSQL (similar al PL/SQL de oracle), PL/Perl, PL/Python y PL/Tcl

Bloques annimos de cdigo de procedimientos (sentencias DO)

Numerosos tipos de datos y posibilidad de definir nuevos tipos. Adems de los tipos
estndares en cualquier base de datos, tenemos disponibles, entre otros, tipos geomtricos,
de direcciones de red, de cadenas binarias, UUID, XML, matrices, etc

Soporta el almacenamiento de objetos binarios grandes (grficos, videos, sonido, ...)

APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, PHP, Lisp, Scheme,
Qt y muchos otros.

SQL

SQL92,SQL99,SQL2003,SQL2008

Llaves primarias (primary keys) y forneas (foreign keys)

Check, Unique y Not null constraints

Restricciones de unicidad postergables (deferrable constraints)

Columnas auto-incrementales

Indices compuestos, nicos, parciales y funcionales en cualquiera de los metodos de


almacenamiento disponibles, B-tree, R-tree, hash GiST

Sub-selects

Consultas recursivas

Funciones 'Windows'

Joins

Vistas (views)

Disparadores (triggers) comunes, por columna, condicionales.

Reglas (Rules)

Herencia de tablas (Inheritance)

Eventos LISTEN/NOTIFY

Podeis consultar la lista completa en ingles de caractersticas disponibles en todas las versiones en la
direccin http://www.postgresql.org/about/featurematrix
Algunos de los limites de PostgreSQL son:

Lmite

Valor

Mximo tamao base de


dato

Ilimitado (Depende de tu sistema de


almacenamiento)

Mximo tamao de tabla

32 TB

Mximo tamao de fila

1.6 TB

Mximo tamao de campo

1 GB

Mximo numero de filas por


tabla

Ilimitado

Mximo numero de
columnas por tabla

250 - 1600 (dependiendo del tipo)

Mximo numero de indices


por tabla

Ilimitado

Historia
El proyecto PostgreSQL tal y como lo conocemos hoy en dia empez en 1996, aunque las bases y el
trabajo en la que se asienta tienen sus comienzos en la decada de los 70. A continuacin teneis una
corta descripcin de la historia de PostgreSQL.

Ingres 1977-1985 - "El comienzo"


La dcada de los 70 fue una dcada de desarrollos y pruebas de nuevos conceptos en el nuevo mundo
de los gestores de bases de datos.
IBM habia estado trabajando desde 1973 con los primeros conceptos, ideas y teorias sobre bases de
datos relacionales. Su proyecto "System R" fue entre otras cosas la primera implementacin del
lenguaje SQL (Structured Query Language). Este proyecto, sus decisiones de diseo y muchos de los
algoritmos usados, influenciaron muchos de los sistemas de bases de datos relacionales que
aparecieron posteriormente.
Por aquel entonces un profesor de la Universidad de Berkeley, Michael Stonebraker, leyo unos artculos
publicados por IBM sobre "System R" que le hicieron interesarse en el tema. Utilizando el dinero de
otro proyecto que ya tenia asignado, Ingres (INteractive Graphics REtrieval System), Stonebraker
empezo a desarrollar sus ideas sobre bases de datos relacionales. Durante estos aos Ingres mantuvo
su cdigo fuente abierto y permanecio en gran medida similar en conceptos a "System R".
A principio de los 80, Ingres estuvo compitiendo con Oracle por el liderazgo en el mundo de bases de
datos relacionales y su cdigo e implementacin evolucionaron y fueron el origen de otras bases de
datos relacionales, entre ellas podemos citar a Informix, NonStop SQL y Sybase (Microsoft SQL Server
fue una versin licenciada de Sybase hasta su version 6.0).
Michael Stonebraker dejo la Universidad de Berkeley en 1982 para comercializar Ingres pero volvio a
la misma en 1985 con nuevas ideas.

Postgres 1986-1994 - Despues (post) de ingres


Despues de su vuelta a Berkeley en 1985, Michael Stonebraker lider un nuevo proyecto
llamado Postgres (despues de Ingres) patrocinado por la Defense Advanced Research Projects Agency
(DARPA), la Army Research Office (ARO), la National Science Foundation (NSF), y ESL, Inc. Con este
proyecto y basandose en la experiencia obtenida con Ingres, Stonebraker tenia como meta mejorar lo
que habian conseguido y aprendido en el desarrollo de Ingres. Y aunque se baso en muchas ideas de
Ingres, no se baso en el cdigo fuente del mismo.
Los objetivos iniciales de este proyecto fueron:

Proporcionar un mejor soporte para objetos complejos

Proporcionar a los usuarios la posibilidad de extender los tipos de datos, operadores y


mtodos de acceso.

Proporcionar los mecanismos necesarios para crear bases de datos activas (triggers, etc)

Simplificar el cdigo encargado de la recuperacin del sistema despues de una cada del
mismo

Hacer cambios mnimos (preferiblemente ninguno) en el modelo relacional.

Mejorar el lenguaje de consulta QUEL heredado de Ingres (POSTQUEL).

Para los interesados en el tema, teneis disponibles una serie de artculos originales y completos en
ingles relacionados con el proyecto Postgres:

"The design of POSTGRES": El diseo de Postgres

"The POSTGRES data model": El mdelo de datos de Postgres

"The design of the POSTGRES storage system": El diseo del sistema de almacenamiento de
Postgres

"The implementation of POSTGRES": Presentacin de la versin 1 de Postgres en la


conferencia ACM-SIGMOD de 1988

"A commentary on the POSTGRES rules system": Comentarios sobre el sistema de reglas de
Postgres

"On Rules, Procedures, Caching and Views in Database Systems": Sobre reglas,
procedimientos, cache y vistas en sistemas de bases de datos

La ltima versin de Postgres en este projecto fue la versin 4.2.

Postgres95 1994-1995 - Nueva vida en el mundo opensource


En 1994, dos estudiantes de Berkeley, Andrew Yu y Jolly Chen, empezaron a trabajar con el cdigo de
Postgres (versin 4.2) y llamaron al proyecto Postgres95. Hicieron una limpieza general del cdigo,
arreglaron errores en el mismo, e implementaron otras mejoras, entre las que destacan:

Sustitucin de POSTQUEL por un interprete del lenguaje SQL

Reimplementacin de las funciones agregadas

psql fue creado para ejecutar consultas SQL

El interface de objetos grandes (large-object) fue revisado

Un pequeo tutorial sobre Postgres fue creado

Postgres se pudo empezar a compilar con GNU make y GCC sin parchear

La versin 1.0 de Postgre95 vio la luz en 1995, el cdigo era 100% ANSI C, un 25% ms corto en
relacin con la versin 4.2 y un 30-50% ms rpido. El cdigo fue publicado en la web y liberado bajo
una licencia BSD, y ms y ms personas empezaron a utilizar y a colaborar en el proyecto.

PostgreSQL 1996-actualidad - Proyecto PostgreSQL


En 1996, Andrew Yu y Jolly Chen ya no tenian tanto tiempo para dirigir y desarrollar Postgres95.
Algunos de los usuarios habituales de las listas de correo del proyecto decidieron hacerse cargo del
mismo y crearon el llamado "PostgreSQL Global Development Team".
En un principio este equipo de desarrolladores al cargo de la organizacin del proyecto estuvo formado
por Marc Fournier en Ontario, Canada, Thomas Lockhart en Pasadena, California, Vadim Mikheev en
Krasnoyarsk, Rusia y Bruce Momjian in Philadelphia, Pennsylvania. El nombre fue cambiado de
Postgres95 a PostgreSQL y lanzaron la versin 6.0 en enero de 1997.
Hoy en dia el grupo central (core team) de desarrolladores est formado por 6 personas, existen 38
desarrolladores principales y ms 21 desarrolladores habituales. En total alrededor de 65 personas
activas, contribuyendo con el desarrollo de PostgreSQL. Podeis encontrar ms informacin sobre este
equipo de desarrolladores enhttp://www.postgresql.org/community/contributors/
Existe tambien una gran comunidad de usuarios, programadores y administradores que colaboran
actvamente en numerosos aspectos y actividades relacionadas con el proyecto. Informes y soluciones
de problemas, tests, comprobacin del funcionamiento, aportaciones de nuevas ideas, discusiones
sobre caractersticas y problemas, documentacin y fomento de PostgreSQL son solo algunas de las
actividades que la comunidad de usuarios realiza.

No tenemos que olvidar tampoco que existen muchas empresas que tambien colaboran con dinero y/
con tiempo/personas en mejorar PostgreSQL. Muchos desarrolladores y nuevas caractersticas estn
muchas veces patrocinadas por empresas privadas.
En los ltimos aos los trabajos de desarrollo se han concentrado mucho en la velocidad de proceso y
en caractersticas demandadas en el mundo empresarial. En este grfico podeis ver cuando las
diferentes versiones de PostgreSQL han visto la luz y las principales caracteristicas en las que se ha
centrado el desarrollo.

Durante los aos de existencia del Proyecto PostgreSQL, el tamao del mismo, tanto en nmero de
desarrolladores, como en nmeros de linea de cdigo, funciones y complejidad del mismo ha ido
aumentando ao a ao. En el siguiente grfico teneis una grfica con la evolucin del nmero de
lineas de cdigo en cada versin de PostgreSQL.

Los datos de este grfico estan generados con CLOC. Contabilizamos como lineas de cdigo a todas
las lineas de cdigo en diferentes lenguaje, ms comentarios, menos lineas en blanco. Los ficheros
HTML y CSS no se cuentan como cdigo.
Usando el modelo de estimacin de costes de software "COCOMOII" (Constructive COst
MOdel) podemos obtener unos datos meramente orientativos pero que nos pueden ayudar a entender
la complejidad del proyecto PostgreSQL y los recursos que se necesitarian para desarrollar un
producto similar desde cero.
Segn COCOMOII, obtendriamos estos nmeros para PostgreSQL 9.0.0:

Descripcin

Valor

Nmeros de lineas de cdigo (PG-9.0.0)

969.562

Habilidad de los programadores (alta)

0,6

Complejidad del projecto (alta)

1,24

Precio/hora ($100.000/ao - 1.875horas/ao)

$53,3

Programadores-ao

618,71

Precio por linea de cdigo

$65,30

Precio Total

$63.316.697

Lineas de cdigo por persona/dia

Tiempo de desarrollo del proyecto (aos)

3.6

Nmero medio de programadores

171,4

Ref: http://www.cms4site.ru/utility.php?ecur=1.24&eafcur=0.6&utility=cocomoii...

Ciclo de vida (EOL) y soporte


El Proyecto PostgreSQL tiene como objetivo mantener y soportar cada versin de PostgreSQL durante
5 aos desde el momento de su lanzamiento. A continuacin teneis un resumen del ciclo de vida de
las diferentes versiones de PostgreSQL:

Versin

Versin
menor

Soportad
a

Lanzamient
o

Soporte

9.2

9.2.0

Si

Sep 2012

Sep 2017

9.1

9.1.5

Si

Sep 2011

Sep 2016

9.0

9.0.9

Si

Sep 2010

Sep 2015

8.4

8.4.13

Si

Jul 2009

Jul 2014

8.3

8.3.20

Si

Feb 2008

Feb 2013

8.2

8.2.23

No

Dic 2006

Dic 2011

8.1

8.1.23

No

Nov 2005

Nov 2010

8.0

8.0.26

No

Ene 2005

Oct 2010

7.4

7.4.30

No

Nov 2003

Oct 2010

7.3

7.3.21

No

Nov 2002

Nov 2007

7.2

7.2.8

No

Feb 2002

Feb 2007

7.1

7.1.3

No

Abr 2001

Abr 2006

7.0

7.0.3

No

May 2000

May 2005

6.5

6.5.3

No

Jun 1999

Jun 2004

6.4

6.4.2

No

Oct 1998

Oct 2003

6.3

6.3.2

No

Mar 1998

Mar 2003

También podría gustarte