investigacion

17
Instituto Tecnológico Superior De Valladolid Carrera: Ingeniería en sistemas computacionales Materia: Taller de base de datos Trabajo: Investigación de tres gestores de base de datos Docente: Lic. Luis Balam Mukul Alumno: Caamal Velasco Julio Edwin

Upload: alfredo-jhonny-kauil-dzib

Post on 06-Nov-2015

8 views

Category:

Documents


1 download

DESCRIPTION

es una investigación, sobre el gestor de base de datos firebird

TRANSCRIPT

Instituto Tecnolgico SuperiorDe Valladolid

Carrera:Ingeniera en sistemas computacionalesMateria:Taller de base de datos

Trabajo:Investigacin de tres gestores de base de datos

Docente:Lic. Luis Balam Mukul

Alumno:Caamal Velasco Julio EdwinKauil Dzib Alfredo JhonnyFecha entrega:Lunes 23 de febrero de 2015

Grado y grupo:4.- A

FirebirdAqu un poco de su historia de Firebird, y sus versiones que fueron saliendo y actualizndose, pues elproyecto Firebird fue creado en SourceForge. Firebird fue desarrollado para Linux, Windows y Mac OS X el 11 de marzo del 2002, con los puertos de Solaris, FreeBSD 4, HP-UX.El 23 de febrero del 2004, Firebird 1.5 fue lanzado, el cual fue la primera versin estable de la nueva base de cdigo. La versin 1.5 tena como caracterstica la mejora de un optimizador de consultas, SQL-92 expresiones condicionales, SQL: 1999 puntos de guardado y soporte para bloqueo explcito. Firebird 2.0 fue lanzado el 12 de noviembre del 2006, aadiendo soporte para arquitectura de 64-bit, tablas anidadas en DRON clauses, y bloqueos temporales programables y transaccin de bloqueo.Firebird es multiplataforma cuenta con Arquitectura Cliente/Servidor sobre protocolo TCP/IP otra de las caractersticas que tiene es su soporte completo para procedimientos almacenados y disparadores, tambin cumple con la transaccin es al 100% del ACID, tiene integridad referencial, su arquitectura es multi- generacional es de bajos consumo etc.Una de las ventajas que tiene firebird es que es una base de datos muy ligero, y sencillo de instalar, solo un ejecutable autoinstalable o un script segn plataforma. Y como mencionamos anteriormente, es de bajo consumo, por lo que no consume grandes recurso de servidores, es rpida y potente, y tiene una licencia similar a MPL, que permite su uso de forma gratuita y con una distribucin muy poco restrictiva pero tambin cuenta con desventajas, firebird es de pobre optimizacin, tiene muy pocas funcionalidades de las libreras

SQliteSQLitees una biblioteca escrita en leguajeCque implementa undatos transaccionalesSQLauto-contenido, sin servidor y sin configuracin. El cdigo de SQLite es de dominio pblico y libre para cualquier uso, ya sea comercial o privado. Actualmente es utilizado en gran cantidad de aplicaciones incluyendo algunas desarrolladas como proyectos de alto nivel.CaractersticasSQLite es un sistema completo de bases de datos que soporta mltiples tablas, ndices, triggers y vistas. No necesita un proceso separado funcionando como servidor ya que lee y escribe directamente sobre archivos que se encuentran en el disco duro. El formato de la base de datos es multiplataforma e indistintamente se puede utilizar el mismo archivo en sistemas de 32 y 64 bits.La base de datos se almacena en un nico fichero a diferencia de otros DBMS que hacen uso de varios archivos. SQLite emplea registros de tamao variable de forma tal que se utiliza el espacio en disco que es realmente necesario en cada momento.El cdigo fuente est pensado para que sea entendido y accesible por programadores promedio. Todas las funciones y estructuras estn bien documentadas.Existe un programa independiente de nombre sqlite que puede ser utilizado para consultar y gestionar los ficheros de base de datos SQLite. Tambin sirve como ejemplo para la escritura de aplicaciones utilizando la biblioteca SQLite.Implementacin de SQLLa biblioteca implementa la mayor parte del estndarSQL-92, incluyendo transacciones de base de datos atmicas, consistencia de base de datos, aislamiento, y durabilidad (ACID),triggersy la mayor parte de lasconsultascomplejas.Caractersticas omitidas de SQLRestricciones FOREIGN KEY,Soporte completo para triggers (disparadores)Soporte completo para ALTER TABLE, solamente implementa las instrucciones RENAME TABLE y ADD COLUMN.RIGHT y FULL OUTER JOIN, slo est implementada la instruccin LEFT OUTER JOIN.Escribir en VIEWs, ya que las vistas en SQLite son de slo lectura.GRANT y REVOKE, pues no tienen sentido en un sistema de bases de datos embebido.

Tipos de datosSQLite usa un sistema de tipos inusual. En lugar de asignar un tipo a una columna como en la mayor parte de los sistemas de bases de datos SQL, los tipos se asignan a los valores individuales.Cada uno de los datos almacenados en una base de datos SQLite implementa alguno de los siguientes tipos:NULL, un valor nulo.INTEGER, un entero con signo que se almacena en 1, 2, 3, 4, 5, 6 o 8 bytes de acuerdo a la magnitud del valor.REAL, un nmero de coma flotante (real), almacenado en 8 bytes.TEXT, una cadena de texto almacenada con las codificaciones UTF-8, UTF-16BE o UTF-16-LE.BLOB, datos en formato binario, se almacenan exactamente como se introdujeron.AutoincrementoUna duda tradicional es el modo de implementar el autoincremento, principalmente para las llaves primarias. La forma ms sencilla es declarar el tipo de dato como INTEGER PRIMARY KEY.ConcurrenciaVarios procesos o hilos pueden acceder a la misma base de datos sin problemas. Varios accesos de lectura pueden ser servidos en paralelo. Un acceso de escritura slo puede ser servido si no se est sirviendo ningn otro acceso concurrentemente.

VentajasTamao: SQLite tiene una pequea memoria y una nica biblioteca es necesaria para acceder a bases de datos, lo que lo hace ideal para aplicaciones de bases de datos incorporadas.Rendimiento de base de datos: SQLite realiza operaciones de manera eficiente y es ms rpido queMisalyPostgreSQL.Portabilidad: se ejecuta en muchas plataformas y sus bases de datos pueden ser fcilmente portadas sin ninguna configuracin o administracin.Estabilidad: SQLite es compatible conACID, reunin de los cuatro criterios de Atomicidad, Consistencia, Aislamiento y Durabilidad.SQL: implementa un gran subconjunto de la ANSI 92 SQL estndar, incluyendo sub-consultas, generacin de usuarios, vistas y triggers.Interfaces: cuenta con diferentes interfaces del API, las cuales permiten trabajar conC++,PHP,Perl,Python,Ruby,Tcl,Groovy,Qtofrece elpluginqsqlite, etc.Costo: SQLite es de dominio pblico, y por tanto, es libre de utilizar para cualquier propsito sin costo y se puede redistribuir libremente.Usos aconsejados de SQLiteFormato de archivo de aplicaciones.Aplicaciones desktop.Bases de datos para dispositivos.Bases de datos de sitios web de pequeo y mediano tamao.Enseanza.Usos no aconsejados de SQLiteAplicacionesCliente-servidor.Sitios web con gran cantidad de transacciones.Bases de datos muy grandes (SQLite soporta hasta 2 terabytes).Alta concurrencia.

Aplicaciones que utilizan SQLitePhotoshop Lightroom(Adobe)Adobe Reader(Adobe)Mac OS-X(Apple)Firefox(Mozilla)Android(Google)Solaris 10(Sun)

POSGRESQLPostgreSQL 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 usamultiprocesosen vez demultihilospara 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 funcioneCaractersticasLa 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 estndareshan 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/NOTIFYPodeis consultar la lista completa en ingles de caractersticas disponibles en todas las versiones en la direccinhttp://www.postgresql.org/about/featurematrixAlgunos de los limites de PostgreSQL son:LmiteValor

Mximo tamao base de datoIlimitado (Depende de tu sistema de almacenamiento)

Mximo tamao de tabla32 TB

Mximo tamao de fila1.6 TB

Mximo tamao de campo1 GB

Mximo numero de filas por tablaIlimitado

Mximo numero de columnas por tabla250 - 1600 (dependiendo del tipo)

Mximo numero de indices por tablaIlimitado

HistoriaElproyecto PostgreSQLtal 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 ingresDespues de su vuelta a Berkeley en 1985, Michael Stonebraker lider un nuevo proyecto llamadoPostgres(despues de Ingres) patrocinado por laDefense Advanced Research Projects Agency (DARPA), laArmy Research Office (ARO), laNational Science Foundation (NSF), yESL, 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 datosLa ltima versin de Postgres en este projecto fue la versin 4.2.Postgres95 1994-1995 -Nueva vida en el mundo opensourceEn 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 parchearLa 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 PostgreSQLEn 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.ConclusinPara concluir hemos investigado tres gestores de base de datos, esta firebird, Sqlite y posgresql, estos son algunos que elegimos para investigar, sqlite, es un gestor especial para crear base de datos soportado por dispositivo mvil, firebir es otro gestor de base de datos, que es un software libre, tambin posgresql.

Bibliografa http://www.postgresql.org.es/sobre_postgresqlhttp://database-firebird.blogspot.mx/2011/06/gestor-de-base-de-datos-firebird.htmlhttp://firebirdmanual.com/firebird/es/firebird-manual/2/-que-es-firebird-/8