Unidad 1 Version 1

Published on February 2017 | Categories: Documents | Downloads: 44 | Comments: 0 | Views: 886
of 41
Download PDF   Embed   Report

Comments

Content

Taller de Bases de Datos
Unidad 1 Gestor de Bases de Datos

PDF generado usando el kit de herramientas de fuente abierta mwlib. Ver http://code.pediapress.com/ para mayor información. PDF generated at: Fri, 04 Feb 2011 23:17:29 UTC

Contenidos
Artículos
1.1 Características del Gestor
Sistema de gestión de bases de datos Anexo:Comparación de sistemas administradores de bases de datos relacionales 1 1 4 9 9 12 19 23 32 32 34

1.2 Herramientas
Microsoft SQL Server PostgreSQL SQLite MySQL

1.3 Instalación y Configuración del Entorno Operativo
phpMyAdmin Administrador de base de datos

Referencias
Fuentes y contribuyentes del artículo Fuentes de imagen, Licencias y contribuyentes 37 38

Licencias de artículos
Licencia 39

1

1.1 Características del Gestor
Sistema de gestión de bases de datos
Los sistemas de gestión de bases de datos (en inglés database management system, abreviado DBMS) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan.

Propósito
El propósito general de los sistemas de gestión de bases de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización.

Objetivos
Existen distintos objetivos que deben cumplir los SGBD: • Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción. • Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella. • Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones. • Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos. • Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos. • Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD demora en proporcionar la información solicitada y en almacenar los cambios realizados.

Sistema de gestión de bases de datos

2

Ventajas
• Proveen facilidades para la manipulación de grandes volúmenes de datos (ver objetivos). Entre éstas: • Simplifican la programación de equipos de consistencia. • Manejando las políticas de respaldo adecuadas, garantizan que los cambios de la base serán siempre consistentes sin importar si hay errores correctamente, etc. • Organizan los datos con un impacto mínimo en el código de los programas. • Disminuyen drásticamente los tiempos de desarrollo y aumentan la calidad del sistema desarrollado si son bien explotados por los desarrolladores. • Usualmente, proveen interfaces y lenguajes de consulta que simplifican la recuperación de los datos.

Inconvenientes
1. Típicamente, es necesario disponer de una o más personas que administren de la base de datos, en la misma forma en que suele ser necesario en instalaciones de cierto porte disponer de una o más personas que administren los sistemas operativos. Esto puede llegar a incrementar los costos de operación en una empresa. Sin embargo hay que balancear este aspecto con la calidad y confiabilidad del sistema que se obtiene. 2. Si se tienen muy pocos datos que son usados por un único usuario por vez y no hay que realizar consultas complejas sobre los datos, entonces es posible que sea mejor usar una planilla de cálculo. 3. Complejidad: los software muy complejos y las personas que vayan a usarlo deben tener conocimiento de las funcionalidades del mismo para poder aprovecharlo al máximo. 4. Tamaño: la complejidad y la gran cantidad de funciones que tienen hacen que sea un software de gran tamaño, que requiere de gran cantidad de memoria para poder correr. 5. Coste del hardware adicional: los requisitos de hardware para correr un SGBD por lo general son relativamente altos, por lo que estos equipos pueden llegar a costar gran cantidad de dinero.

Productos SGBD disponibles en el mercado
SGBD libres
• • • • • PostgreSQL (http://www.postgresql.org Postgresql) Licencia BSD Firebird basada en la versión 6 de InterBase, Initial Developer's PUBLIC LICENSE Version 1.0. SQLite (http://www.sqlite.org SQLite) Licencia Dominio Público DB2 Express-C (http://www.ibm.com/software/data/db2/express/) Apache Derby (http://db.apache.org/derby/)

SGBD no libres
• MySQL: Licencia Dual, depende del uso. No se sabe hasta cuándo permanecerá así, ya que ha sido comprada por Oracle. Sin embargo, existen 2 versiones: una gratuita que sería equivalente a la edición "express" SQL server de Microsoft Windows, y otra más completa de pago. • Advantage Database • dBase • FileMaker • Fox Pro • gsBase • IBM DB2: Universal Database (DB2 UDB) • IBM Informix • Interbase de CodeGear, filial de Borland

Sistema de gestión de bases de datos • • • • • • • • • • • • • • • MAGIC Microsoft Access Microsoft SQL Server NexusDB Open Access Oracle Paradox PervasiveSQL Progress (DBMS) Sybase ASE Sybase ASA Sybase IQ WindowBase IBM IMS Base de Datos Jerárquica CA-IDMS

3

SGBD no libres y gratuitos
• Microsoft SQL Server Compact Edition Basica • Sybase ASE Express Edition para Linux (edición gratuita para Linux) • Oracle Express Edition 10

Véase también
• Base de datos • Comparación de sistemas administradores de bases de datos relacionales

Anexo:Comparación de sistemas administradores de bases de datos relacionales

4

Anexo:Comparación de sistemas administradores de bases de datos relacionales
Las siguientes tablas comparan información general y técnica de diferentes RDBMS. Para más información, vea los enlaces de cada producto. Este artículo no incluye a todos los productos o es necesario actualizarse.

Información general
Creador Fecha de la primera versión pública 1992 Última versión estable 10.0 Licencia de software

Adaptive Server Anywhere Adaptive Server Enterprise ANTs Data Server DB2 Firebird

Sybase/iAnywhere

Propietario

Sybase Inc

1987

15.0

Propietario

ANTs Software IBM Firebird Foundation

1999 1982 25 de julio de 2000

3.6 9 2.1

Propietario Propietario Licencia Pública InterBase Propietario Licencia BSD CA-TOSL

Informix HSQLDB Ingres

Informix Software Hsqldb.Org Berkeley University, Computer Associates Borland SAP AG

1985 2001 1980

10.0 1.9 2006

InterBase SapDB

1985 ?

7.5.1 7.4

Propietario GPL con drivers LGPL GPL o propietario Propietario GPL o propietario Propietario Licencia BSD

MaxDB Microsoft SQL Server MySQL Oracle PostgreSQL

MySQL AB, SAP AG Microsoft MySQL AB Oracle Corporation PostgreSQL Global Development Group SmallSQL
[1]

? 1989 Noviembre de 1996 1977 Junio de 1989

7.7 2008 5.0 11g Release 2 9.0

SmallSQL SQLite

16 de abril de 2005 17 de agosto de 2000 Fecha de la primera versión pública

0.12 3.6.16 Última versión estable

LGPL Dominio público Licencia de software

D. Richard Hipp Creador

Soporte del sistema operativo

Anexo:Comparación de sistemas administradores de bases de datos relacionales

5

Windows Mac OS X Linux Adaptive Server Enterprise ANTs Data Server DB2 Firebird HSQLDB Informix Ingres InterBase SapDB MaxDB Microsoft SQL Server MySQL Oracle PostgreSQL SmallSQL SQLite  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí
 No

BSD  Sí  Sí
 No

Unix  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí (Solaris)  Sí  Sí
 No

z/OS
 No

 Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí
 No

?  Sí Quizá  Sí
 No

 Sí  Sí  Sí ?
 No  No  No  No

 Sí  Sí  Sí ?
 No  No  No  No

Quizá
 No

? ?
 No

 Sí  Sí  Sí  Sí  Sí

 Sí  Sí  Sí  Sí  Sí

 Sí  Sí  Sí  Sí  Sí BSD

 Sí  Sí  Sí  Sí  Sí Unix

Quizá  Sí
 No

 Sí Quizá z/OS

Windows Mac OS X Linux

Características fundamentales
Información acerca de que características fundamentales de las RDBMS son implementados nativamente.
ACID Adaptive Server Enterprise ANTs Data Server DB2 Firebird HSQLDB Informix Ingres InterBase SapDB MaxDB Microsoft SQL Server MySQL Oracle PostgreSQL SQLite  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí Depende 1  Sí  Sí  Sí ACID Integridad referencial Transacciones Unicode  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí Depende 1  Sí  Sí
 No 
2

 Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí Depende 1  Sí  Sí Básico 2

 Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí

Integridad referencial Transacciones Unicode

Anexo:Comparación de sistemas administradores de bases de datos relacionales

6

Nota (1): Para las transacciones y la integridad referencial, el tipo de tabla InnoDB debe ser usado; el tipo de tabla por defecto, MyISAM,  No soporta estas características. Sin embargo, inclusive el tipo de tabla InnoDB permite el almacenamiento de valores que excedan el rango de datos; algunas vistas violan la limitación de ACID. Nota (2): Las limitaciones de CHECK y FOREIGN KEY son analizadas pero anidadas  No son soportadas.[2]  No forzadas. Transacciones

Tablas y vistas
Información acerca de que tablas y vistas 3 (unas más básicos que otras) son soportados nativamente.
Tabla temporal Adaptive Server Enterprise ANTs Data Server DB2 Firebird HSQLDB Informix Ingres InterBase SapDB MaxDB Microsoft SQL Server MySQL Oracle PostgreSQL SQLite  Sí  5  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí Tabla temporal Vista materializada  Sí  Sí  Sí
 No  No

 Sí
 No  No  No  No

Similar 6
 No

 Sí
 No 
4

 No

Vista materializada

Nota (4): La vista materializada puede ser emulada con PL/PgSQL [3]. Nota (5): El servidor provee tempdb, que puede ser usado para tablas temporales públicas y privadas (para la sesión). [4] Nota (6): El servidor MS SQL provee vistas indexadas. [5]

Índices
Información acerca de que índices (otros como los índices básicos B-/B+) son soportados nativamente.

Anexo:Comparación de sistemas administradores de bases de datos relacionales

7

Árbol R-/R+ Adaptive Server Enterprise ANTs Data Server DB2 Firebird HSQLDB Informix Ingres InterBase SapDB MaxDB Microsoft SQL Server MySQL Oracle PostgreSQL SQLite
 No

Hash
 No

Expresión Parcial  Sí  Sí
 No  No  No

Reversa  Sí  Sí  Sí
 No

Mapa de bits
 No

 Sí
 No  No

 Sí ?
 No

 Sí
 No  No

 Sí  Sí
 No

?  Sí  Sí ? ? ? ? Tablas MyISAM solamente Edición EE solamente  Sí
 No

?  Sí  Sí ? ? ? ? Tablas HEAP solamente ?  Sí
 No

?  Sí
 No  No  No  No  No  No

?
 No  No  No  No  No  No  No  No

?
 No  No  No  No  No  No  No

?
 No  No  No  No  No  No  No

 Sí  Sí
 No

 Sí
 No  No

 Sí
 No  No

 Sí
 No

Árbol R-/R+

Hash

Expresión Parcial

Reversa

Mapa de bits

Otros objetos
Información acerca de que otros objetos son soportados nativamente.
Dominio Adaptive Server Enterprise ANTs Data Server DB2 Firebird HSQLDB Informix Ingres InterBase SapDB MaxDB Microsoft SQL Server MySQL Oracle PostgreSQL SQLite  Sí  Sí
 No

Cursor Trigger Funciones 5 Procedimiento 5 Rutina externa 5  Sí  Sí  Sí  Sí
 No

 Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí 3  Sí  Sí  Sí

 Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí 3  Sí  Sí
 No

 Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí  Sí 3  Sí  Sí
 No

 Sí  Sí  Sí  Sí  Sí  Sí ?  Sí ? ?  Sí  Sí  Sí  Sí  Sí Rutina externa

 Sí ? ?  Sí  Sí  Sí  Sí
 No  No

 Sí  Sí  Sí  Sí  Sí  Sí  Sí 3  Sí  Sí
 No

 Sí  Sí
 No

Dominio

Cursor Trigger

Funciones

Procedimiento

Anexo:Comparación de sistemas administradores de bases de datos relacionales Nota (3): Estos objetos de base de datos son disponibles a partir de MySQL 5.0 disponible desde 24/12/2005. Nota (5): Función y procedimiento se refieren a las rutinas internas escritas en SQL o lenguajes procedurales como PL/SQL. Rutina externa se refiere a la escritura en los lenguajes anfitriones como C, Java, Cobol, etc. "Procedimiento almacenado" es un término comúnmente usado para ese tipo de rutinas. Sin embargo, su definición varía entre diferentes vendedores de bases de datos.

8

Particionamiento
Información acerca de que métodos de particionamiento son soportados nativamente.
Rango Adaptive Server Enterprise ANTs Data Server DB2 Firebird HSQLDB Informix Ingres InterBase SapDB MaxDB Microsoft SQL Server MySQL Oracle PostgreSQL SQLite AA  Sí  Sí
 No

Hash AA  Sí  Sí
 No

Compuesto (Rango+Hash) AA  Sí  Sí
 No

Lista AA  Sí  Sí
 No

? ?  Sí
 No

? ?  Sí
 No

? ?  Sí
 No

? ?  Sí
 No

? ?  Sí  Sí  Sí  Sí  Sí Rango

? ?
 No

? ?
 No

? ?
 No

 Sí  Sí
 No

 Sí  Sí
 No

 Sí  Sí  Sí  Sí Listas

 Sí Hash

 Sí Compuesto (Rango+Hash)

Referencias
[1] [2] [3] [4] [5] http:/ / www. smallsql. de http:/ / www. sqlite. org/ omitted. html http:/ / jonathangardner. net/ PostgreSQL/ materialized_views/ matviews. html http:/ / sybooks. sybase. com/ onlinebooks/ group-as/ asg1250e/ sag/ @Generic__BookTextView/ 3225; http:/ / www. sqlteam. com/ item. asp?ItemID=1015

9

1.2 Herramientas
Microsoft SQL Server
Microsoft SQL Server Desarrollador Microsoft [1] www.microsoft.com/sql/ Información general Última versión estable 2008 (10.00.1600.22) 2 de Agosto de 2008 Género Sistema operativo Licencia En español RDBMS Microsoft Windows Microsoft EULA ?

Microsoft SQL Server es un sistema para la gestión de bases de datos producido por Microsoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL y ANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle o PostgreSQL o MySQL.

Características de Microsoft SQL Server
Historia de versiones
Versión 1.0 (OS/2) Año 1989 Nombre de la versión SQL Server 1.0 Nombre clave SQL

4.21 1993 (WinNT) 6.0 6.5 7.0 1995 1996 1998 1999

SQL Server 4.21

SEQUEL

SQL Server 6.0 SQL Server 6.5 SQL Server 7.0 SQL Server 7.0 OLAP Tools SQL Server 2000 SQL Server 2000 64-bit Edition SQL Server 2005 SQL Server 2008 SQL Server 2008 R2

SQL95 Hydra Sphinx Plato

8.0 8.0

2000 2003

Shiloh Liberty

9.0 10.0 10.5

2005 2008 2010

Yukon Katmai Kilimanjaro

Microsoft SQL Server • • • • Soporte de transacciones. Escalabilidad, estabilidad y seguridad. Soporta procedimientos almacenados. Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente. • Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y los terminales o clientes de la red sólo acceden a la información. • Además permite administrar información de otros servidores de datos. Este sistema incluye una versión reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos más pequeños, que en sus versiónes 2005 y 2008 pasa a ser el SQL Express Edition, que se distribuye en forma gratuita. Es común desarrollar completos proyectos complementando Microsoft SQL Server y Microsoft Access a través de los llamados ADP (Access Data Project). De esta forma se completa la base de datos (Microsoft SQL Server), con el entorno de desarrollo (VBA Access), a través de la implementación de aplicaciones de dos capas mediante el uso de formularios Windows. En el manejo de SQL mediante líneas de comando se utiliza el SQLCMD Para el desarrollo de aplicaciones más complejas (tres o más capas), Microsoft SQL Server incluye interfaces de acceso para varias plataformas de desarrollo, entre ellas .NET, pero el servidor sólo está disponible para Sistemas Operativos Windows.

10

Lo nuevo de SQL Server 2008
La nueva base de datos contiene mayor seguridad, integración con PowerShell, remueve la configuración del área expuesta (consola para configurar seguridad), cifrado transparente de datos, auditoría de datos, compresión de datos, tiene correctores de sintaxis del lenguaje Transact-SQL e IntelliSense (una carácteristica del visual studio que permite a la base de datos sugerir objetos existentes mientras uno escribe la mitad de la palabra). Así mismo incluye nuevos tipos de datos y funciones. Entre ellos, datos espacialesy Datetimeoffset), tipos de datos jerárquicos.

Programación
T-SQL
T-SQL (Transact-SQL) es el principal medio de programación y administración de SQL Server. Expone las palabras clave para las operaciones que pueden realizarse en SQL Server, incluyendo creación y modificación de esquemas de la base de datos, introducir y editar datos en la base de datos, así como supervisión y gestión del propio servidor. Las aplicaciones cliente, ya sea que consuman datos o administren el servidor, aprovechan la funcionalidad de SQL Server mediante el envío de consultas de T-SQL y declaraciones que son procesadas por el servidor y los resultados (o errores) regresan a la aplicación cliente. SQL Server permite que sean administrados mediante T-SQL. Para esto, expone tablas de sólo lectura con estadísticas del servidor. La funcionalidad para la administración se expone a través de procedimientos almacenados definidos por el sistema que se pueden invocar desde las consultas de T-SQL para realizar la operación de administración. También es posible crear servidores vinculados (Linked Servers) mediante T-SQL. Los servidores vinculados permiten el funcionamiento entre múltiples servidores con una consulta..

Microsoft SQL Server

11

Cliente Nativo de SQL
Cliente Nativo de SQL es la biblioteca de acceso a datos para los clientes de Microsoft SQL Server versión 2005 en adelante. Implementa nativamente soporte para las características de SQL Server, incluyendo la ejecución de la secuencia de datos tabular, soporte para bases de datos en espejo de SQL Server, soporte completo para todos los tipos de datos compatibles con SQL Server, conjuntos de operaciones asincrónas, las notificaciones de consulta, soporte para cifrado, así como recibir varios conjuntos de resultados en una sola sesión de base de datos. Cliente Nativo de SQL se utiliza como extensión de SQL Server plug-ins para otras tecnologías de acceso de datos, incluyendo ADO u OLE DB. Cliente Nativo de SQL puede también usarse directamente, pasando por alto las capas de acceso de datos genéricos.

Desventajas
para hacer el direccionamiento de 64-bit. Esto le impide usar la administración dinámica de memoria y sólo le permite alojar un máximo de 64GB de memoria compartida. • MSSQL no maneja compresión de datos (en SQL Server 2005 y 2000, solamente la versión 2008 Enterprise Edition incluye esta característica), por lo que ocupa mucho espacio en disco. • MSSQL está atado a la plataforma del sistema operativo sobre la cual se instala.

Véase también
• base de datos relacional • sistema de gestión de base de datos • • • • • • Oracle Sybase ASE PostgreSQL Interbase Firebird MySQL

Enlaces externos
• • • • • • Página web de Microsoft SQL Server [2] Factsheet for SQL Server developers [3] (PDF) Libros en pantalla [4] Lo nuevo de SQL Server 2008 [5] La revista de base de datos database journal (en inglés) [6] Sistema para crear aplicaciones profesionales con MS SQL SERVER. [7]

Microsoft SQL Server

12

Referencias
[1] [2] [3] [4] [5] [6] [7] http:/ / www. microsoft. com/ sql/ http:/ / www. microsoft. com/ spain/ sql/ default. mspx http:/ / www. dotnet4all. com/ snippets/ 2008/ 04/ factsheet-for-sql-server-developers. html http:/ / msdn. microsoft. com/ en-us/ library/ ms130214. aspx http:/ / elpaladintecnologico. blogspot. com/ 2009/ 02/ blog-post. html http:/ / www. databasejournal. com/ features/ article. php/ 3593466/ MS-SQL-Series. htm http:/ / www. softclarity. com. ar/ Builder/ indexFla. html

PostgreSQL
PostgreSQL

Desarrollador PostgreSQL Global Development Group [1] www.postgresql.org Información general Última versión estable 9.0 20 de septiembre de 2010 RDBMS Multiplataforma BSD

Género Sistema operativo Licencia En español

PostgreSQL es un sistema de gestión de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD. Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyados por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).

PostgreSQL

13

Nombre del producto
El uso de caracteres en mayúscula en el nombre PostgreSQL puede confundir a algunas personas a primera vista. Las distintas pronunciaciones de "SQL" pueden llevar a confusión. Los desarrolladores de PostgreSQL lo pronuncian /poːst ɡɹɛs kjuː ɛl/;. Es también común oír abreviadamente como simplemente "Postgres", el que fue su nombre original. Debido a su soporte del estándar SQL entre la mayor parte de bases de datos relacionales, la comunidad consideró cambiar el nombre al anterior Postgres. Sin embargo, el PostgreSQL Core Team anunció en 2007 que el producto seguiría llamándose PostgreSQL. El nombre hace referencia a los orígenes del proyecto como la base de datos "post-Ingres", y los autores originales también desarrollaron la base de datos Ingres.

Historia
PostgreSQL ha tenido una larga evolución, la cual se inicia en 1982 con el proyecto Ingres en la Universidad de Berkeley. Este proyecto, liderado por Michael Stonebraker, fue uno de los primeros intentos en implementar un motor de base de datos relacional. Después de haber trabajado un largo tiempo en Ingres y de haber tenido una experiencia comercial con él mismo, Michael decidió volver a la Universidad en 1985 para trabajar en un nuevo proyecto sobre la experiencia de Ingres, dicho proyecto fue llamado post-ingres o simplemente POSTGRES. El proyecto post-ingres pretendía resolver los problemas con el modelo de base de datos relacional que habían sido aclarados a comienzos de los años 1980. El principal de estos problemas era la incapacidad del modelo relacional de comprender "tipos", es decir, combinaciones de datos simples que conforman una única unidad. Actualmente estos son llamados objetos. Se esforzaron en introducir la menor cantidad posible de funcionalidades para completar el soporte de tipos. Estas funcionalidades incluían la habilidad de definir tipos, pero también la habilidad de describir relaciones - las cuales hasta ese momento eran ampliamente utilizadas pero mantenidas completamente por el usuario. En Postgres la base de datos «comprendía» las relaciones y podía obtener información de tablas relacionadas utilizando reglas. Postgres usó muchas ideas de Ingres pero no su código. La siguiente lista muestra los hitos más importantes en la vida del proyecto Postgres. • • • • • • • 1986: se publicaron varios papers que describían las bases del sistema. 1988: ya se contaba con una versión utilizable. 1989: el grupo publicaba la versión 1 para una pequeña comunidad de usuarios. 1990: se publicaba la versión 2 la cual tenía prácticamente reescrito el sistema de reglas. 1991: publicación de la versión 3, esta añadía la capacidad de múltiples motores de almacenamiento. 1993: crecimiento importante de la comunidad de usuarios, la cual demandaba más características. 1994: después de la publicación de la versión 4, el proyecto terminó y el grupo se disolvió.

Después de que el proyecto POSTGRES terminara, dos graduados de la universidad, Andrew Yu y Jolly Chen, comenzaron a trabajar sobre el código de POSTGRES, esto fue posible dado que POSTGRES estaba licenciado bajo la BSD, y lo primero que hicieron fue añadir soporte para el lenguaje SQL a POSTGRES, dado que anteriormente contaba con un intérprete del lenguaje de consultas QUEL (basado en Ingres), creando así el sistema al cual denominaron Postgres95. Para el año 1996 se unieron al proyecto personas ajenas a la Universidad como Marc Fournier de Hub.Org Networking Services, Bruce Momjian y Vadim B. Mikheev quienes proporcionaron el primer servidor de desarrollo no universitario para el esfuerzo de desarrollo de código abierto y comenzaron a trabajar para estabilizar el código de Postgres95. En el año 1996 decidieron cambiar el nombre de Postgres95 de tal modo que refleje la característica del lenguaje SQL y lo terminaron llamando PostgreSQL, cuya primera versión de código abierto fue lanzada el 1 de agosto de 1996. La primera versión formal de PostgreSQL (6.0) fue liberada en enero de 1997. Desde entonces, muchos desarrolladores entusiastas de los motores de base de datos se unieron al proyecto, coordinaron vía Internet y entre todos comenzaron a incorporar muchas características al motor.

PostgreSQL Aunque la licencia permitía la comercialización de PostgreSQL, el código no se desarrolló en principio con fines comerciales, algo sorprendente considerando las ventajas que PostgreSQL ofrecía. La principal derivación se originó cuando Paula Hawthtorn (un miembro del equipo original de Ingres que se pasó a Postgres) y Michael Stonebraker conformaron Illustra Information Technologies para comercializar Postgres. En 2000, ex inversionistas de Red Hat crearon la empresa Great Bridge para comercializar PostgreSQL y competir contra proveedores comerciales de bases de datos. Great Bridge auspició a varios desarrolladores de PostgreSQL y donó recursos de vuelta a la comunidad, pero a fines de 2001 cerró debido a la dura competencia de compañías como Red Hat y pobres condiciones del mercado. En 2001, Command Prompt, Inc. lanzó Mammonth PostgreSQL, la más antigua distribución comercial de PostgreSQL. Continúa brindando soporte a la comunidad PostgreSQL a través del auspicio de desarrolladores y proyectos, incluyendo PL/Perl, PL/php y el alojamiento de proyectos de comunidades como PostgreSQL Build Farm. En enero de 2005, PostgreSQL recibió apoyo del proveedor de base de datos Pervasive Software, conocido por su producto Btrieve que se utilizaba en la plataforma Novell Netware. Pervasive anunció soporte comercial y participación comunitaria y logró algo de éxito. Sin embargo, en julio de 2006 dejó el mercado de soporte de PostgreSQL. A mediados de 2005 otras dos compañías anunciaron planes para comercializar PostgreSQL con énfasis en nichos separados de mercados. EnterpriseDB añadió funcionalidades que le permitían a las aplicaciones escritas para trabajar con Oracle ser más fáciles de ejecutar con PostgreSQL. Greenplum contribuyó mejoras directamente orientadas a aplicaciones de Data Warehouse e Inteligencia de negocios, incluyendo el proyecto BizGres. En octubre de 2005, John Loiacono, vicepresidente ejecutivo de software en Sun Microsystems comentó: "No estamos yendo tras el OEM de Microsoft pero estamos viendo a PostgreSQL ahora", aunque no se dieron especificaciones en ese momento. Para noviembre de 2005, Sun Solaris 10 (lanzamiento 6/06) incluía PostgreSQL. En agosto de 2007 EnterpriseDB anunció el Postgres Resource Center y EnterpriseDB Postgres, diseñados para ser una completamente configurada distribución de PostgreSQL incluyendo muchos módulos contribuidos y agregados. EnterpriseDB Postgres fue renombrado Postgres Plus en marzo de 2008. El proyecto PostgreSQL continúa haciendo lanzamientos principales anualmente y lanzamientos menores de reparación de bugs, todos disponibles bajo la licencia BSD, y basados en contribuciones de proveedores comerciales, empresas aportantes y programadores de código abierto mayormente.

14

Características
Algunas de sus principales características son, entre otras:

Alta concurrencia
Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos.

PostgreSQL

15

Amplia variedad de tipos nativos
PostgreSQL provee nativamente soporte para: • • • • • • • Números de precisión arbitraria. Texto de largo ilimitado. Figuras geométricas (con una variedad de funciones asociadas). Direcciones IP (IPv4 e IPv6). Bloques de direcciones estilo CIDR. Direcciones MAC. Arrays.

Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS.

Otras características
• Claves ajenas también denominadas Llaves ajenas o Claves Foráneas (foreign keys). • Disparadores (triggers): Un disparador o trigger se define como una acción específica que se realiza de acuerdo a un evento, cuando éste ocurra dentro de la base de datos. En PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Ahora todos los disparadores se definen por seis características: • • • • • • El nombre del disparador o trigger El momento en que el disparador debe arrancar El evento del disparador deberá activarse sobre... La tabla donde el disparador se activará La frecuencia de la ejecución La función que podría ser llamada

Entonces combinando estas seis características, PostgreSQL le permitirá crear una amplia funcionalidad a través de su sistema de activación de disparadores (triggers). • • • • • Vistas. Integridad transaccional. Herencia de tablas. Tipos de datos y operaciones geométricas. Soporte para transacciones distribuidas. Permite a PostgreSQL integrase en un sistema distribuido formado por varios recursos (p.ej, una base de datos PostgreSQL, otra Oracle, una cola de mensajes IBM MQ JMS y un ERP SAP) gestionado por un servidor de aplicaciones donde el éxito ("commit") de la transacción goblal es el resultado del éxito de las transacciones locales. Más información en inglés en http://www.theserverside.com/ discussions/thread.tss?thread_id=21385#95297 y en http://java.sun.com/javaee/technologies/jta/index.jsp.

PostgreSQL

16

Funciones
Bloques de código que se ejecutan en el servidor. Pueden ser escritos en varios lenguajes, con la potencia que cada uno de ellos da, desde las operaciones básicas de programación, tales como bifurcaciones y bucles, hasta las complejidades de la programación orientada a objetos o la programación funcional. Los disparadores (triggers en inglés) son funciones enlazadas a operaciones sobre los datos. Algunos de los lenguajes que se pueden usar son los siguientes: • • • • • • • • • • Un lenguaje propio llamado PL/PgSQL (similar al PL/SQL de oracle). C. C++. Java PL/Java web [2]. PL/Perl. plPHP [3]. PL/Python [4]. PL/Ruby [5]. PL/sh [6]. PL/Tcl [7].

• PL/Scheme [8]. • Lenguaje para aplicaciones estadísticas R por medio de PL/R [9]. PostgreSQL soporta funciones que retornan "filas", donde la salida puede tratarse como un conjunto de valores que pueden ser tratados igual a una fila retornada por una consulta (query en inglés). Las funciones pueden ser definidas para ejecutarse con los derechos del usuario ejecutor o con los derechos de un usuario previamente definido. El concepto de funciones, en otros DBMS, son muchas veces referidas como "procedimientos almacenados" (stored procedures en inglés).

Productos alrededor de PostgreSQL
El PGDG solo desarrolla el Motor de Datos y un número pequeño de utilidades, para potenciar el trabajo con PostgreSQL suele ser necesario añadir utilidades externas creadas especialmente para este motor, algunas de estas herramientas son:

Alternativas Comerciales
Gracias a su licencia BSD, se permite la utilización del código para ser comercializado. Uno de los casos ejemplo es la de Enterprise DB (Postgresql Plus), la cual incluye varios agregados y una interfaz de desarrollo basada en Java. Entre otras empresas que utilizan Postgresql para comercializar se encuentra CyberTech (alemania), con su producto CyberCluster.

PostgreSQL

17

GIS
PostGIS Extensión que añade soporte de objetos geográficos a PostgreSQL y permite realizar análisis mediante consultas SQL espaciales o mediante conexión a aplicaciones GIS (Sistema de Información Geográfica).

Replicación
PgCluster Replicación multi maestro. Slony-I Replicación maestro esclavo. PyReplica Replicación maestro esclavo y multi maestro asincrónica.

Herramientas de administración
PgAdmin3 Entorno de escritorio visual. PgAccess Entorno de escritorio visual. PhpPgAdmin Entorno web. psql Cliente de consola. Database Master [10] Entorno de escritorio visual.

Búsqueda de texto
Full text search Incluido en el núcleo a partir de la versión 8.3. Via Tsearch2 [11] y OpenFTS para versiones anteriores a la 8.3.

XML
XML/XSLT soporte Via XPath extensiones en la sección contrib [12].

PostgreSQL

18

Usuarios destacados
• • • • • • • • • • • • • • • .org, .info, .mobi y .aero registros de dominios por Afilias.[13] La American Chemical Society. BASF. IMDb. Skype. TiVo. Penny Arcade. Sony Online.[14] U.S. Departamento de Trabajo. USPS. VeriSign. Pictiger.com Wisconsin Circuit Court Access con 6 * 180GB DBs replicados en tiempo real. OpenACS y .LRN. INEGI.

Premios
PostgreSQL ha recibido los siguientes reconocimientos:[15] • • • • • • • • • • 1999 LinuxWorld Editor's Choice Award for Best Database 2000 Linux Journal Editors' Choice Awards for Best Database 2002 Linux New Media Editors Choice Award for Best Database 2003 Linux Journal Editors' Choice Awards for Best Database 2004 Linux New Media Award For Best Database 2004 Linux Journal Editors' Choice Awards for Best Database 2004 ArsTechnica Best Server Application Award 2005 Linux Journal Editors' Choice Awards for Best Database 2006 Linux Journal Editors' Choice Awards for Best Database 2008 Developer.com Product of the Year, Database Tool

Referencias
[1] http:/ / www. postgresql. org/ [2] http:/ / gborg. postgresql. org/ project/ pljava/ projdisplay. php [3] http:/ / plphp. commandprompt. com/ [4] http:/ / www. postgresql. org/ docs/ current/ interactive/ plpython. html [5] http:/ / raa. ruby-lang. org/ project/ pl-ruby [6] http:/ / plsh. projects. postgresql. org/ [7] http:/ / www. postgresql. org/ docs/ current/ interactive/ pltcl. html [8] http:/ / plscheme. projects. postgresql. org/ [9] http:/ / www. joeconway. com/ plr/ [10] http:/ / www. nucleonsoftware. com [11] http:/ / www. sai. msu. su/ ~megera/ postgres/ gist/ tsearch/ V2/ [12] http:/ / www. throwingbeans. org/ postgresql_and_xml. html [13] PostgreSQL affiliates.ORG domain (http:/ / www. computerworld. com. au/ index. php?id=760310963) [14] Sony Online opts for open-source database over Oracle (http:/ / www. computerworld. com/ databasetopics/ data/ software/ story/ 0,10801,109722,00. html) [15] « PostgreSQL, Award Winning Software (http:/ / www. postgresql. org/ about/ awards)». postgresql.org (19-01-2008). Consultado el 31-01-2008.

PostgreSQL

19

Enlaces externos
• • • • • • • • • • Wikimedia Commons alberga contenido multimedia sobre PostgreSQL. Commons Asistencia técnica profesional para PostgreSQL (http://www.postgresql.org/support/professional_support) Sitio web oficial de PostgreSQL (http://www.postgresql.org) Guía de administración básica de PostgreSQL bajo Linux (http://wiki.woop.es/PostgreSQL) Base de datos basada en PostgreSQL (http://www.pervasivepostgres.com/) PostgreSQL-es.org (http://www.postgresql-es.org/) - Portal en español sobre PostgreSQL Comunidad de usuarios y sitio de PostgreSQL de Argentina (http://www.arpug.com.ar) Comunidad de usuarios y sitio de PostgreSQL de Perú (http://www.postgresql.org.pe/) Comunidad de usuarios de PostgreSQL de Chile (http://www.postgresql.cl/) Cliente escrito en PHP (http://phppgadmin.sourceforge.net/)

SQLite
SQLite

Desarrollador D. Richard Hipp http:/ / www. sqlite. org/ '' Información general Diseñado por Lanzamiento inicial D. Richard Hipp 17 de agosto de 2000 (info [1] )

Última versión estable 3.7.4 (info [2]) 8 de diciembre de 2010 Género Escrito en Sistema operativo Licencia En español RDBMS C Multiplataforma Dominio público ? [3]

SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en una relativamente pequeña (~275 kiB)[4] biblioteca en C. SQLite es un proyecto de dominio público[3] creado por D. Richard Hipp. A diferencia de los sistema de gestión de bases de datos cliente-servidor, el motor de SQLite no es un proceso independiente con el que el programa principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con el programa pasando a ser parte integral del mismo. El programa utiliza la funcionalidad de SQLite a través de llamadas simples a subrutinas y funciones. Esto reduce la latencia en el acceso a la base de datos, debido a que las llamadas a funciones son más eficientes que la comunicación entre procesos. El conjunto de la base de datos (definiciones, tablas, índices, y los propios datos), son guardados como un sólo fichero estándar en la máquina host. Este diseño simple se logra bloqueando todo el fichero de base de datos al principio de cada transacción.

SQLite En su versión 3, SQLite permite bases de datos de hasta 2 Terabytes de tamaño, y también permite la inclusión de campos tipo BLOB. El autor de SQLite ofrece formación, contratos de soporte técnico y características adicionales como compresión y cifrado.

20

Características
La biblioteca implementa la mayor parte del estándar SQL-92, incluyendo transacciones de base de datos atómicas, consistencia de base de datos, aislamiento, y durabilidad (ACID), triggers y la mayor parte de las consultas complejas. SQLite 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. Por ejemplo, se puede insertar un string en una columna de tipo entero (a pesar de que SQLite tratará en primera instancia de convertir la cadena en un entero). Algunos usuarios consideran esto como una innovación que hace que la base de datos sea mucho más útil, sobre todo al ser utilizada desde un lenguaje de scripting de tipos dinámicos. Otros usuarios lo ven como un gran inconveniente, ya que la técnica no es portable a otras bases de datos SQL. SQLite no trataba de transformar los datos al tipo de la columna hasta la versión 3. Varios 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 sólo puede ser servido si no se está sirviendo ningún otro acceso concurrentemente. En caso contrario, el acceso de escritura falla devolviendo un código de error (o puede automáticamente reintentarse hasta que expira un timeout configurable). Esta situación de acceso concurrente podría cambiar cuando se está trabajando con tablas temporales. Sin embargo, podría producirse un deadlock debido al multithread.[5] Este punto fue tratado en la versión 3.3.4, desarrollada el 11 de febrero de 2006. Existe un programa independiente de nombre sqlite que puede ser utilizado para consultar y gestionar los ficheros de base de datos SQLite. También sirve como ejemplo para la escritura de aplicaciones utilizando la biblioteca SQLite.

Lenguajes de programación
• La biblioteca puede ser usada desde programas en C/C++, aunque enlaces para Tcl y muchos otros lenguajes de programación interpretado están disponibles. • SQLite se encuentra embebido en el REALbasic framework, haciendo posible que aplicaciones desarrolladas en REALbasic para Windows, Linux o Mac OS X usen la base de datos SQLite. • Existe un módulo DBI/DBD para Perl disponible en CPAN, DBD::SQLite [6], no es una interface para SQLite, sino que incluye el motor completo de SQLite en sí mismo por lo cual no necesita ningún software adicional. • Hay también un módulo para Python llamado PySQLite.[7] • Hay otro módulo para Visual Basic 6 llamado VBSqlite[8] • Desde Delphi se puede usar SQLite a través de los componentes libres ZeosLib[9]. • PHP incluye SQLite, desde la versión 5. SQLite también funciona con PHP 4 pero no viene incluido en él. Para más detalles vea el manual [10] y PECL info [11]. • Desde Java se puede acceder mediante el driver de SQLiteJDBC [12] • Desde Lazarus 0.9.8 y Free Pascal 2.0.0, SQLite está disponibles para programadores de Pascal. Hay un tutorial en inglés aquí [13]. • Mac OS X v10.4 incluye SQLite, y es una de las opciones en la Core Data API de Apple. AppleScript puede abrir, crear, y manipular base de datos SQLite por medio de la aplicación de ayuda "Database Events" de Mac OS X 10.4.

SQLite • BlitzMAX posee un MOD que permite trabajar con bases de datos SQLite. Para más detalles y descarga del MOD vea [14]. • El componente de base de datos (gb.db) de Gambas soporta SQLite en sus versiones 1, 2 y 3 • El lenguaje de programación de vídeo juegos Bennu [15] tiene un mod [16] de SQlite disponible

21

Productos que utilizan SQLite
• Desde hace tiempo Mozilla Firefox usa SQLite para almacenar, por ejemplo, las cookies, los favoritos, el historial, las direcciones de red válidas. • SQLite es usado por el entorno de base de datos Kexi como un motor de base de datos interno por defecto. • SQLite se ha usado para guardar el índice para un set de DVD conteniendo todos los números publicados de la revista The New Yorker. • Yum, la herramienta de gestión de paquetes de Fedora Core, ha cambiado a SQLite y pysqlite para el almacenamiento de datos y parseo de XML desde el núcleo de Fedora 4. De acuerdo con los comentarios de los usuarios, el incremento de funcionamiento es impresionante, así como la reducción en el consumo de memoria.[cita requerida] • Los desarrolladores de OpenOffice.org han considerado embeber SQLite en el modelo de base de datos de Base, pero esto depende en gran manera del progreso de sqlite-sdbc-driver [17], que está todavía en estado de alpha. Actualmente han decidido [18] usar HSQLDB, pero la opción está todavía abierta siempre y cuando el driver sqlite-sdbc acabe siendo maduro y de confianza. • • • También es interesante este how-to: Using SQLite Database with OpenOffice.org [19]. Open Outlook Connector [20], un conector open source de Microsoft Outlook/MAPI ha sido hecho usando SQLite. Varias aplicaciones de Apple utilizan SQLite, incluyendo Apple Mail y el gestor de RSS que se distribuye con OS X. El software Aperture de Apple guarda la información de las imágenes en una base de datos SQLite, utilizando la API Core Data. Monotone, un sistema de control de versiones de libre distribución lo usa. El nuevo sistema de almacenamiento implementado en el núcleo de Mozilla (MozStorage) utiliza SQLite. Mozilla Firefox 3 usa un sistema basado en SQLite para almacenar bookmarks y el histórico de navegación. Se está considerando también utilizar SQLite en Mozilla Calendar y Mozilla Thunderbird. PyKota [21], una solución gratuita de cuotas de impresión y contabilidad, puede utilizar SQLite como su base de datos. Clementine usa SQLite para guardar su colección de datos por defecto. XMMS2 usa SQLite para su biblioteca de Medios. La biblioteca de medios consta de un índice de metadatos de las canciones en la biblioteca, así como un lugar en el cuál almacenar listas de reproducción. SQLFilter, un plugin para OmniPeek, usa SQLite para indexar paquetes en una base de datos para poder se consultada por medio de SQL. HaXe usa SQLite como parte de su servidor embebido. Adobe Photoshop Elements utiliza SQLite como motor de base de datos en su última versión del producto (la 6.0) en sustitución del Microsoft Access, utilizado en las versiones anteriores. XBMC Media Center (antes conocido como "XBox Media Center") es un reproductor de medios de audio, video, fotos, etc de código libre (open source) multi-plataforma a la vez que un centro de entretenimiento. Usa SQLite para administrar las librerías de música, video y fotografías, listas de reproducción y bookmarks entre otras utilidades menores. Android usa SQLite para almacenamiento de datos estructurados (package android.database.sqlite [22]).

• •

• • • • • • •



• SimilarImages [23], programa para encontrar imágenes duplicadas.

SQLite

22

Publicaciones
• The Definitive Guide to SQLite, ISBN 1-59059-673-0

Referencias
[1] http:/ / www. sqlite. org/ src/ info/ f37dd18e3f [2] http:/ / www. sqlite. org/ releaselog/ 3_7_4. html [3] « SQLite Copyright (http:/ / www. sqlite. org/ copyright. html)». sqlite.org. Consultado el 28 de diciembre de 2010. [4] « Distinctive Features Of SQLite (http:/ / www. sqlite. org/ different. html)». SQLite (3 de Marzo, 2008). Consultado el 5 de Abril, 2010. [5] http:/ / www. emailbattles. com/ archive/ battles/ group_aacihgadjd_aa/ [6] http:/ / search. cpan. org/ perldoc?DBD::SQLite [7] PySQLite: Bindings para Python (http:/ / trac. edgewall. org/ wiki/ PySqlite) [8] http:/ / www. vbsqlite. com. ar/ [9] http:/ / sourceforge. net/ projects/ zeoslib [10] http:/ / php. net/ ref. sqlite [11] http:/ / pecl. php. net/ sqlite [12] http:/ / www. zentus. com/ sqlitejdbc [13] http:/ / wiki. lazarus. freepascal. org/ index. php/ Lazarus_Database_Tutorial [14] http:/ / www. blitzbasic. com/ Community/ posts. php?topic=48455#538795 [15] http:/ / bennugd. org/ [16] http:/ / bennupack. blogspot. com/ [17] [18] [19] [20] [21] [22] [23] http:/ / dba. openoffice. org/ drivers/ sqlite/ index. html http:/ / dba. openoffice. org/ miscellaneous/ dba20. html http:/ / documentation. openoffice. org/ HOW_TO/ data_source/ SQLite. pdf http:/ / openconnector. org/ http:/ / www. librelogiciel. com/ software/ PyKota/ action_Presentation/ http:/ / developer. android. com/ reference/ android/ database/ sqlite/ package-descr. html http:/ / celebnamer. celebworld. ws/ similarimages/

Enlaces externos
• Sitio Oficial de SQLite (http://www.sqlite.org/) (en inglés) • SQLite Latinoamérica (http://sqlite-latino.blogspot.com/) (en español) • Entrevista con Richard Hipp (http://www.linuxformat.co.uk/modules.php?op=modload&name=Sections& file=index&req=viewarticle&artid=19) (en inglés) • Webinar Introducción a SQLite (Google Video) (http://video.google.com/ videoplay?docid=-5160435487953918649) (en inglés) • Introducción acerca de la extensión de SQLite para PHP5. (http://www.zend.com/php5/articles/php5-sqlite. php)

Implementaciones
• • • • • SQLiteSpy (http://www.yunqa.de/delphi/sqlitespy/), compatible con Unicode, para Win32. Freeware SQLite Administrator. (http://sqliteadmin.orbmu2k.de) SQLite Database Browser. (http://sqlitebrowser.sf.net/) Database Master-SQLite Management Tool (http://www.nucleonsoftware.com/) DaDaBIK (http://www.dadabik.org/)

MySQL

23

MySQL
MySQL

Instalador de MySql Server 5.0 Desarrollador Sun Microsystems (hasta febrero de 2008 MySQL AB) [1] www.mysql.com Información general Última versión estable 5.1.48 2 de junio de 2010 RDBMS C, C++ Multiplataforma GPL o Uso comercial ? [2]

Género Escrito en Sistema operativo Licencia En español

MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones.[3] MySQL AB —desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C. Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y el copyright del código está en poder del autor individual, MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius.

MySQL

24

Historia del proyecto
SQL (Lenguaje de Consulta Estructurado) fue comercializado por primera vez en 1981 por IBM, el cual fue presentado a ANSI y desde entonces ha sido considerado como un estándar para las bases de datos relacionales. Desde 1986, el estándar SQL ha aparecido en diferentes versiones como por ejemplo: SQL:92, SQL:99, SQL:2003. MySQL es una idea originaria de la empresa opensource MySQL AB establecida inicialmente en Suecia en 1995 y cuyos fundadores son David Axmark, Allan Larsson, y Michael "Monty" Widenius. El objetivo que persigue esta empresa consiste en que MySQL cumpla el estándar SQL, pero sin sacrificar velocidad, fiabilidad o usabilidad. Michael "Monty" Widenius en la década de los 90 trató de usar mSQL para conectar las tablas usando rutinas de bajo nivel ISAM, sin embargo, mSQL no era rápido y flexible para sus necesidades. Esto lo llevó a crear una API SQL denominada MySQL para bases de datos muy similar a la de mSQL pero más portable. El nombre de MySQL procede de la combinación de My, hija del cofundador Michael "Monty" Widenius, con el acrónimo SQL (según la documentación de la última versión en inglés [4] ). Por otra parte, el directorio base y muchas de las bibliotecas usadas por los desarrolladores tenían el prefijo My. El nombre del delfín de MySQL es Sakila y fue seleccionado por los fundadores de MySQL AB en el concurso “Name the Dolphin”. Este nombre fue enviado por Ambrose Twebaze, un desarrollador de software de código abierto africano, derivado del idioma SiSwate, el idioma local de Swazilandia y corresponde al nombre de una ciudad en Arusha, Tanzania, cerca de Uganda la ciudad origen de Ambrose.

Lenguajes de programación
Existen varias APIs que permiten, a aplicaciones escritas en diversos lenguajes de programación, acceder a las bases de datos MySQL, incluyendo C, C++, C#, Pascal, Delphi (via dbExpress), Eiffel, Smalltalk, Java (con una implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby,Gambas, REALbasic (Mac y Linux), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos utiliza una API específica. También existe una interfaz ODBC, llamado MyODBC que permite a cualquier lenguaje de programación que soporte ODBC comunicarse con las bases de datos MySQL. También se puede acceder desde el sistema SAP, lenguaje ABAP.

Aplicaciones
MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En Toma de pantalla programa de Monitoreo Mtop. aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el que va a utilizar MySQL, es importante adelantar monitoreos sobre el desempeño para detectar y corregir errores tanto de SQL como de programacion. [5]

MySQL

25

Versiones de MySQL

[6] [7] [8] [9] [10] [11]

Especificaciones
Plataformas
MySQL funciona sobre múltiples plataformas, incluyendo: • • • • • • • • • • • • • • • • • • • AIX BSD FreeBSD HP-UX GNU/Linux Mac OS X NetBSD Novell Netware OpenBSD OS/2 Warp QNX SGI IRIX Solaris SunOS SCO OpenServer SCO UnixWare Tru64 eBD Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7 y Windows Server (2000, 2003 y 2008). • OpenVMS[12]

MySQL

26

Características de la versión 5.0.22
• • • • • • • • • • Un amplio subconjunto de ANSI SQL 99, y varias extensiones. Soporte a multiplataforma. Procedimientos almacenados Disparadores (triggers). Cursores Vistas actualizables. Soporte a VARCHAR INFORMATION_SCHEMA Modo Strict Soporte X/Open XA de transacciones distribuidas; transacción en dos fases como parte de esto, utilizando el motor InnoDB de Oracle. • Motores de almacenamiento independientes (MyISAM para lecturas rápidas, InnoDB para transacciones e integridad referencial). • Transacciones con los motores de almacenamiento InnoDB, BDB Y Cluster; puntos de recuperación (savepoints) con InnoDB. • Soporte para SSL. • Query caching • Sub-SELECTs (o SELECTs anidados). • Réplica con un maestro por esclavo, varios esclavos por maestro, sin soporte automático para múltiples maestros por esclavo. • indexing y búsqueda de campos de texto completos usando el motor de almacenamiento MyISAM. • Embedded database library • Soporte completo para Unicode. • Conforme a las reglas ACID usando los motores InnoDB, BDB y Cluster. • Shared-nothing clustering through MySQL Cluster.

Características adicionales
• • • • • • • • • • • • Usa GNU Automake, Autoconf, y Libtool para portabilidad Uso de multihilos mediante hilos del kernel. Usa tablas en disco b-tree para búsquedas rápidas con compresión de índice Tablas hash en memoria temporales El código MySQL se prueba con Purify (un detector de memoria perdida comercial) así como con Valgrind, una herramienta GPL Completo soporte para operadores y funciones en cláusulas select y where. Completo soporte para cláusulas group by y order by, soporte de funciones de agrupación Seguridad: ofrece un sistema de contraseñas y privilegios seguro mediante verificación basada en el host y el tráfico de contraseñas está cifrado al conectarse a un servidor. Soporta gran cantidad de datos. MySQL Server tiene bases de datos de hasta 50 millones de registros. Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice puede consistir desde 1 hasta 16 columnas o partes de columnas. El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2). Los clientes se conectan al servidor MySQL usando sockets TCP/IP en cualquier plataforma. En sistemas Windows se pueden conectar usando named pipes y en sistemas Unix usando ficheros socket Unix. En MySQL 5.0, los clientes y servidores Windows se pueden conectar usando memoria compartida.

• MySQL contiene su propio paquete de pruebas de rendimiento proporcionado con el código fuente de la distribución de MySQL.

MySQL

27

Características (versión 4.0)
Inicialmente, MySQL carecía de elementos considerados esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. A pesar de ello, atrajo a los desarrolladores de páginas web con contenido dinámico, justamente por su simplicidad. Poco a poco los elementos de los que carecía MySQL están siendo incorporados tanto por desarrollos internos, como por desarrolladores de software libre. Entre las características disponibles en las últimas versiones se puede destacar: • Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente. • Disponibilidad en gran cantidad de plataformas y sistemas. • Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles. • Transacciones y claves foráneas. • Conectividad segura. • Replicación. • Búsqueda e indexación de campos de texto. MySQL es un sistema de administración de bases de datos. Una base de datos es una colección estructurada de tablas que contienen datos. Esta puede ser desde una simple lista de compras a una galería de pinturas o el vasto volumen de información en una red corporativa. Para agregar, acceder a y procesar datos guardados en un computador, usted necesita un administrador como MySQL Server. Dado que los computadores son muy buenos manejando grandes cantidades de información, los administradores de bases de datos juegan un papel central en computación, como aplicaciones independientes o como parte de otras aplicaciones. MySQL es un sistema de administración relacional de bases de datos. Una base de datos relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo. Esto permite velocidad y flexibilidad. Las tablas están conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido. MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el código fuente de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el código fuente y ajustarlo a sus necesidades. MySQL usa el GPL (GNU General Public License) para definir que puede hacer y que no puede hacer con el software en diferentes situaciones. Si usted no se ajusta al GPL o requiere introducir código MySQL en aplicaciones comerciales, usted puede comprar una versión comercial licenciada.

Mejoras futuras
El mapa de ruta de MySQL 5.1 [13] indica soporte para: • • • • • • Particionado de la base de datos. Backup en línea para todos los motores de almacenamiento. Replicación segura Restricciones a nivel de columna. Planificación de eventos. Funciones XML

MySQL

28

Características distintivas
Las siguientes características son implementadas únicamente por MySQL: • Múltiples motores de almacenamiento (MyISAM, Merge, InnoDB, BDB, Memory/heap, MySQL Cluster, Federated, Archive, CSV, Blackhole y Example en 5.x), permitiendo al usuario escoger la que sea más adecuada para cada tabla de la base de datos. • Agrupación de transacciones, reuniendo múltiples transacciones de varias conexiones para incrementar el número de transacciones por segundo.

Tipos de compilación del servidor
Hay tres tipos de compilación del servidor MySQL: • Estándar: Los binarios estándar de MySQL son los recomendados para la mayoría de los usuarios, e incluyen el motor de almacenamiento InnoDB. • Max (No se trata de MaxDB, que es una cooperación con SAP): Los binarios incluyen características adicionales que no han sido lo bastante probadas o que normalmente no son necesarias. • MySQL-Debug: Son binarios que han sido compilados con información de depuración extra. No debe ser usada en sistemas en producción porque el código de depuración puede reducir el rendimiento.

Especificaciones del código fuente
MySQL está escrito en una mezcla de C y C++. Hay un documento que describe algunas de sus estructuras internas en http://dev.mysql.com/doc/internals/en/(en inglés).

Desarrollo del proyecto
El desarrollo de MySQL se fundamenta en el trabajo de los desarrolladores contratados por la empresa MySQL AB quienes se encargan de dar soporte a los socios comerciales y usuarios de la comunidad MySQL y dar solución a los problemas encontrados por los usuarios. Los usuarios o miembros de la comunidad MySQL pueden reportar bugs revisando el manual en línea [14] que contiene las soluciones a problemas encontrados; el historial de cambios [15]; la base de datos bugs [16] que contiene bugs reportados y solucionados y en las listas de correo MySQL [17]. A través de las listas de correo los usuarios pueden enviar preguntas y éstas serán contestadas por desarrolladores brindándoles soporte.

Otras funcionalidades de las listas de correo
• • • • • • • • Anuncios: informan sobre nuevas versiones de MySQL y programas relacionados. MySQL: lista principal de discusión de MySQL. Bugs: permite a la gente buscar y arreglar bugs. Temas internos: para gente que trabaja con el código de MySQL. Es el fórum para discutir sobre el desarrollo de MySQL. MySQLdoc: para gente que trabaja en documentación. Pruebas de rendimiento: para gente interesada en temas de rendimiento no sólo de MySQL, sino de otros motores de bases de datos. Empaquetadores: para discusiones sobre empaquetamiento y distribución de MySQL. Java: discusiones sobre MySQL Server y Java.

Otras listas de correo son: MyODBC, Herramientas GUI, Cluster, Dotnet, PlusPlus y Perl. Adicional a las listas de correo, se encuentra el soporte de IRC de la comunidad MySQL. Además, hay soporte a través de foros [18] agrupados en categorías tales como: Migración, Uso de MySQL, Conectores MySQL,

MySQL Tecnología MySQL y Negocios.

29

Estructuras organizativas/asociativas o de decisión
La dirección y el patrocinio de los proyectos MySQL están a cargo de la empresa MySQL AB quien posee el copyrigth del código fuente MySQL, su logo y marca registrada. MySQL, Inc. y MySQL GmbH son ejemplos de empresas subsidiarias de MySQL AB. Están establecidas en los Estados Unidos y Alemania respectivamente. MySQL AB, cuenta con más de 200 empleados en más de 20 países y funcionan bajo la estrategia de teletrabajo. En enero del 2008 Sun Microsystems anuncia su compra. En abril del 2009 Oracle anunció la compra de Sun Microsystems[19]

Industria relacionada
La industria radica en la venta de productos software y de algunos servicios relacionados a numerosas empresas que utilizan estos productos. MySQL AB clasifica los productos así: • MySQL Enterprise: incluye MySQL Enterprise Server , Monitoreo de la red MySQL, servicios de consulta y soporte de producción MySQL. • MySQL Cluster • MySQL Embedded Database. • MySQL Drivers: para JDBC, ODBC y .Net • MySQL Tools: MySQL Administrator, MySQL Query Browser, and the MySQL Migration Toolkit. • MaxDB: MaxDB es una base de datos de código abierto certificada para SAP/R3. Los ingresos de esta empresa por la venta de licencias privativas de sus productos y los servicios suma los U$12 millones.

MySQL en cifras
• Según las cifras del fabricante, existirían más de seis millones de copias de MySQL funcionando en la actualidad, lo que supera la base instalada de cualquier otra herramienta de bases de datos. • El tráfico del sitio web de MySQL AB superó en 2004 al del sitio de IBM.

Licencia
La licencia GNU GPL de MySQL obliga a que la distribución de cualquier producto derivado (aplicación) se haga bajo esa misma licencia. Si un desarrollador desea incorporar MySQL en su producto pero desea distribuirlo bajo otra licencia que no sea la GNU GPL, puede adquirir una licencia comercial de MySQL que le permite hacer justamente eso.

Estado actual
La serie en desarrollo de MySQL Server actualmente, es la 5.1 a la cual se añaden nuevas características en relación a la serie 5.0. La serie de producción actual de MySQL es 5.0, cuya penúltima versión estable es la 5.0.26 lanzada en octubre de 2006. Actualmente, se puede descargar la serie 5.0.27. La serie de producción anterior fue la 4.1, cuya versión estable es 4.1.7 lanzada en octubre de 2004. A estas versiones de producción sólo se arreglan problemas, es decir, ya no se añaden nuevas características. Y a las versiones anteriores solamente se les corrigen bugs críticos.

MySQL

30

Usuarios destacados
Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. [20] Puedes añadirlas así o avisar al autor principal del artículo en su página de discusión pegando: {{subst:Aviso referencias|MySQL}} ~~~~

• Amazon.com • Cox Communications - La cuarta televisión por cable más importante de EEUU, tienen más de 3.600 tablas y aproximadamente dos millones de inserciones cada hora. • Craigslist • CNET Networks • Digg - Sitio de noticias. • Flickr, usa MySQL para gestionar millones de fotos y usuarios. • Google - Para el motor de búsqueda de la aplicación AdWords. • Joomla!, con millones de usuarios. • phpBB, Uno de los más famosos sitios de foros, con miles de instalaciones y con millones de usuarios. • LiveJournal - Cerca de 300 millones de páginas servidas cada día.[21] • NASA • NetQOS, usa MySQL para la gestión de algunas de las redes más grandes del mundo como las de Chevron, American Express y Boeing. • Nokia, usa un cluster MySQL para mantener información en tiempo real sobre usuarios de redes de móviles. • Omniture • Sabre, y su sistema de reserva de viajes Travelocity. • Slashdot - con cerca de 50 millones de páginas servidas [22] cada día. • Wikipedia, sirve más de 200 millones de consultas y 1,2 millones de actualizaciones cada día, con picos de 11.000 consultas por segundo. • WordPress, con cientos de blogs alojados en él. • Yahoo! - para muchas aplicaciones críticas.

Tools
• Database Master - MySQL Manager [10]

Referencias
[1] [2] [3] [4] [5] [6] http:/ / www. mysql. com http:/ / www. mysql. com/ company/ legal/ licensing/ commercial-license. html MySQL :: Dispelling the Myths (http:/ / dev. mysql. com/ tech-resources/ articles/ dispelling-the-myths. html) MySQL 5.5 Manual: History of MySQL (http:/ / dev. mysql. com/ doc/ refman/ 5. 5/ en/ history. html) mtop: monitoreo de carga en MySQL (http:/ / tecnocacharrero. blogspot. com/ 2009/ 10/ mtop-monitoreo-de-carga-en-mysql. html) « B.3. Changes in Release 3.23.x (Lifecycle Support Ended) (http:/ / dev. mysql. com/ doc/ refman/ 4. 1/ en/ news-3-23-x. html)». Oracle. Consultado el 24-08-2010. [7] « B.2. Changes in Release 4.0.x (Lifecycle Support Ended) (http:/ / dev. mysql. com/ doc/ refman/ 4. 1/ en/ news-4-0-x. html)». Oracle. Consultado el 24-08-2010. [8] « B.1. Changes in Release 4.1.x (Lifecycle Support Ended) (http:/ / dev. mysql. com/ doc/ refman/ 4. 1/ en/ news-4-1-x. html)». Oracle. Consultado el 24-08-2010. [9] « C.1. Changes in Release 5.0.x (Production) (http:/ / dev. mysql. com/ doc/ refman/ 5. 0/ en/ news-5-0-x. html#news-5-0-x)». Oracle. Consultado el 24-08-2010. [10] « C.1. Changes in Release 5.1.x (Production) (http:/ / dev. mysql. com/ doc/ refman/ 5. 1/ en/ news-5-1-x. html#news-5-1-x)». Oracle. Consultado el 24-08-2010.

MySQL
[11] « C.1. Changes in Release 5.5.x (Development) (http:/ / dev. mysql. com/ doc/ refman/ 5. 5/ en/ news-5-5-x. html#news-5-5-x)». Oracle. Consultado el 24-08-2010. [12] (http:/ / www. pi-net. dyndns. org/ anonymous/ kits/ ) [13] http:/ / dev. mysql. com/ doc/ refman/ 5. 1/ en/ roadmap. html [14] http:/ / dev. MySQL. com/ doc/ [15] http:/ / dev. MySQL. com/ doc/ MySQL/ en/ News. html [16] http:/ / bugs. MySQL. com/ [17] http:/ / lists. MySQL. com/ [18] http:/ / forums. MySQL. com [19] http:/ / www. elpais. com/ articulo/ internet/ Oracle/ adquiere/ Sun/ Microsystems/ 5710/ millones/ elpeputec/ 20090420elpepunet_3/ Tes [20] http:/ / en. wikipedia. org/ wiki/ Mysql?action=history [21] Alexa Internet - Website Information (http:/ / www. alexa. com/ data/ details/ traffic_details?& compare_sites=& y=p& q=& url=livejournal. com) [22] http:/ / www. alexa. com/ data/ details/ traffic_details?& compare_sites=& y=p& q=& url=slashdot. org

31

Véase también
• • • • PostgreSQL Otra base de datos basada en software libre. PHP Lenguaje en web comúnmente usado con MySQL. Base de datos Bonsai cvs

• Appserv • Firebird SQL (http://www.firebirdsql.org) sistema de administración de base de datos relacional de código abierto y multiplataforma.

Enlaces externos
• • • • • • Wikimedia Commons alberga contenido multimedia sobre MySQL. Commons Sitio web oficial de MySQL (http://www.mysql.com) (en inglés) MySQL Developer Zone (http://dev.mysql.com) (en inglés) Misqli (http://es.php.net/mysqli) - Extensión de MySQL para PHP (en inglés y otros idiomas) Benetl (http://www.benetl.net) - ETL utilizando MySQL (en inglés) Crear una base de datos MySQL (http://am-gc.blogspot.com/2010/07/crear-una-base-de-datos-mysql.html) Tutorial en el que se explica cómo crear una base de datos mediante MySQL Workbench.

32

1.3 Instalación y Configuración del Entorno Operativo
phpMyAdmin
phpMyAdmin es una herramienta escrita en PHP con la intención de manejar la administración de MySQL a través de páginas web, utilizando Internet. Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia SQL, administrar claves en campos, administrar privilegios, exportar datos en varios formatos y está disponible en 62 idiomas. Se encuentra disponible bajo la licencia GPL.

Apariencia del phpMyAdmin.

Este proyecto se encuentra vigente desde el año 1998, siendo el mejor evaluado en la comunidad de descargas de SourceForge.net como la descarga del mes de diciembre del 2002. Como esta herramienta corre en máquinas con Servidores Webs y Soporte de PHP y MySQL, la tecnología utilizada ha ido variando durante su desarrollo.

Historia
Tobias Ratschiller, por entonces un consultor IT y después fundador de Maguma, una compañía de software, comenzó a trabajar en la elaboración de una red administrativa basada en PHP cliente-servidor en MySQL en 1998 e inspirado por Peter Kuppelwieser y su MySQL-Webadmin. Cuando Ratschiller dejó el proyecto, así como el phpAdsNew del cual es también su inventor a causa de falta de tiempo, el phpMyAdmin se había convertido en una de las aplicaciones PHP más populares, y las herramientas de administración MySQL constituían una gran comunidad de usuarios y administradores. Es de anotar que esto incluía una buena contribución por parte de distribuidores de Linux. Para coordinar el creciente número de parches, tres desarrolladores de software, Olivier Müller, Marc Delisle y Loïc Chapeaux, registraron el proyecto phpMyAdmin en SourceForge.net y continuó su crecimiento en 2001.

phpMyAdmin

33

Estado actual
El software, en la actualidad está disponible en 62 idiomas, aún se encuentra mantenido por el Proyecto phpMyAdmin bajo responsabilidad de Olivier Müller, Marc Delisle, Alexander M. Turek, Michal Čihař y Garvin Hicking.

Productos similares
Una herramienta similar es phpPgAdmin, la cual ofrece funcionalidades similares para PostgreSQL y que comenzó como una copia de phpMyAdmin pero con una base de códigos completamente diferente. Otros productos para el manejo de base de datos Microsoft SQL Server, es phpMSAdmin. Otro gestor de base de datos conocido como phpMinAdmin para el manejo de MySQL, tiene las características más importantes de phpMyAdmin, pero consiste en un único archivo php.

Enlaces externos
• Guía de Instalación de PhpMyAdmin en GNU/Linux Ubuntu [1] • Página oficial de PhpMyAdmin [2] (inglés) • • • • • wiki phpMyAdmin [3] Guía de uso en inglés [4] Lista de idiomas [5] www.phpmyadmin.net Página oficial [6] PhpMyAdmin Tutorials [7] - Learn how to use this database management system to manage the DBs.

Referencias
[1] [2] [3] [4] [5] [6] [7] http:/ / www. tecnologiaslibres. net/ 2008/ 11/ 13/ instalar-phpmyadmin-en-ubuntu-810-intrepid-ibex/ http:/ / www. phpmyadmin. net/ home_page/ http:/ / wiki. cihar. com/ pma/ phpMyAdmin http:/ / www. php-editors. com/ articles/ sql_phpmyadmin. php http:/ / www. phpmyadmin. net/ documentation/ translators. html http:/ / www. phpmyadmin. net http:/ / www. webhosting. uk. com/ phpmyadmin-tutorials. php

Administrador de base de datos

34

Administrador de base de datos
El administrador de base de datos (DBA) es la persona responsable de los aspectos ambientales de una base de datos. En general esto incluye lo siguiente: • • • • • • Recuperabilidad - Crear y probar Respaldos Integridad - Verificar o ayudar a la verificación en la integridad de datos Seguridad - Definir o implementar controles de acceso a los datos Disponibilidad - Asegurarse del mayor tiempo de encendido Desempeño - Asegurarse del máximo desempeño incluso con las limitaciones Desarrollo y soporte a pruebas - Ayudar a los programadores e ingenieros a utilizar eficientemente la base de datos.

El diseño lógico y físico de las bases de datos a pesar de no ser obligaciones de un administrador de bases de datos, es a veces parte del trabajo. Esas funciones por lo general están asignadas a los analistas de bases de datos o a los diseñadores de bases de datos.

Deberes
Los deberes de un administrador de bases de datos dependen de la descripción del puesto, corporación y políticas de Tecnologías de Información (TI). Por lo general se incluye recuperación de desastres (respaldos y pruebas de respaldos), análisis de rendimiento y optimización, y algo de asistencia en el diseño de la base de datos. Debe incorporarse una metodología basada en calidad y administración de riesgos al proceso de la administración de bases de datos. http://www.slinfo.una.ac.cr

Definición de base de datos
Antes de continuar, necesitamos describir brevemente lo que es una "base de datos." Una base de datos es una colección de información, accedida y administrada por un SGBD (Sistema Gestor de Bases de Datos) o en inglés DBMS (Database Manager System). Después de experimentar con SGBDs jerárquicos y de red durante los 70's, la industria de IT se vio dominada por SGBDs tales como Oracle y MySQL. Un SGBD relacional manipula la información a manera de tipos de cosas del mundo real (entidades) en tablas que representan esas entidades. Una tabla es como una hoja de cálculo; cada renglón representa una entidad en particular (instancia), y cada columna representa la información respecto de la entidad (dominio). En ocasiones las entidades están hechas de entidades más pequeñas, como órdenes y líneas de orden. Una base de datos relacional bien manejada, minimiza la necesidad de las aplicaciones de contener información respecto al almacenamiento físico de los datos que se van a acceder. Para maximizar el aislamiento de los programas de las estructuras de datos, los SGBDs restringen el acceso a los datos mediante el lenguaje SQL, un lenguaje no procedimental que limita al programador a obtener ciertos resultados.

Disponibilidad
La disponibilidad significa que los usuarios autorizados tengan acceso a los datos cuando lo necesiten para atender a las necesidades del negocio. De manera incremental los negocios han ido requiriendo que su información esté disponible todo el tiempo (7x24", o siete días a la semana, 24 horas del día). La industria de TI ha respondido a estas necesidades con redundancia de red y hardware para incrementar las capacidades administrativas en línea. siempre y cuando estes en la administracion de la TI.

Administrador de base de datos

35

Recuperabilidad
La recuperabilidad significa que, si se da algún error en los datos, hay un bug de programa ó de hardware, el DBA (Administrador de base de datos) puede traer de vuelta la base de datos al tiempo y estado en que se encontraba en estado consistente antes de que el daño se causara. Las actividades de recuperación incluyen el hacer respaldos de la base de datos y almacenar esos respaldos de manera que se minimice el riesgo de daño o pérdida de los mismos, tales como hacer diversas copias en medios de almacenamiento removibles y almacenarlos fuera del área en antelación a un desastre anticipado. La recuperación es una de las tareas más importantes de los DBA's. La recuperabilidad, frecuentemente denominada "recuperación de desastres", tiene dos formas primarias. La primera son los respaldos y después las pruebas de recuperación. La recuperación de las bases de datos consisten en información y estampas de tiempo junto con bitácoras los cuales se cambian de manera tal que sean consistentes en un momento y fecha en particular. Es posible hacer respaldos de la base de datos que no incluyan las estampas de tiempo y las bitácoras, la diferencia reside en que el DBA debe sacar de línea la base de datos en caso de llevar a cabo una recuperación. Las pruebas de recuperación consisten en la restauración de los datos, después se aplican las bitácoras a esos datos para restaurar la base de datos y llevarla a un estado consistente en un tiempo y momento determinados. Alternativamente se puede restaurar una base de datos que se encuentra fuera de línea sustituyendo con una copia de la base de datos. Si el DBA (o el administrador) intentan implementar un plan de recuperación de bases de datos sin pruebas de recuperación, no existe la certeza de que los respaldos sean del todo válidos. En la práctica, los respaldos de la mayoría de los RDBMSs son raramente válidos si no se hacen pruebas exhaustivas que aseguren que no ha habido errores humanos o bugs que pudieran haber corrompido los respaldos.

Integridad
La integridad de una base de datos significa que, la base de datos o los programas que generaron su contenido, incorporen métodos que aseguren que el contenido de los datos del sistema no se rompan así como las reglas del negocio. Por ejemplo, un distribuidor puede tener una regla la cual permita que sólo los clientes individuales puedan solicitar órdenes; a su vez cada orden identifique a uno y sólo un proveedor. El servidor Oracle y otros DBMSs relacionales hacen cumplir este tipo de reglas del negocio con limitantes, las cuales pueden ser configuradas implícitamente a través de consultas. Para continuar con este ejemplo, en el proceso de inserción de una nueva orden a la base de datos, esta a su vez tendría que cerciorarse de que el cliente identificado existen en su tabla para que la orden pueda darse.

Seguridad
Seguridad significa la capacidad de los usuarios para acceder y cambiar los datos de acuerdo a las políticas del negocio, así como, las decisiones de los encargados. Al igual que otros metadatos, una DBMS relacional maneja la seguridad en forma de tablas. Estas tablas son las "llaves del reino" por lo cual se deben proteger de posibles intrusos.

Rendimiento
El rendimiento significa que la base de datos no cause tiempos de respuesta poco razonables. En sistemas muy complejos cliente/servidor y de tres capas, la base de datos es sólo uno de los elementos que determinan la experiencia de los usuarios en línea y los programas desatendidos. El rendimiento es una de las mayores motivaciones de los DBA para coordinarse con los especialistas de otras áreas del sistema fuera de las líneas burocráticas tradicionales.

Administrador de base de datos

36

Desarrollo/Soporte a pruebas
Uno de los deberes menos respetados por el administrador de base de datos es el desarrollo y soporte a pruebas, mientras que algunos otros encargados lo consideran como la responsabilidad más importante de un DBA. Las actividades de soporte incluyen la colecta de datos de producción para llevar a cabo pruebas con ellos; consultar a los programadores respecto al desempeño; y hacer cambios a los diseños de tablas de manera que se puedan proporcionar nuevos tipos de almacenamientos para las funciones de los programas. Algunos roles del personal de TI relacionados con la administración de base de datos: • programador de aplicaciones • Administrador de sistema • Administrador de datos

Fuentes y contribuyentes del artículo

37

Fuentes y contribuyentes del artículo
Sistema de gestión de bases de datos  Fuente: http://es.wikipedia.org/w/index.php?oldid=43691213  Contribuyentes: 4lex, Banfield, Biasoli, Diegusjaimes, Dodo, Eligna, Humbefa, Leugim1972, Nioger, Olivares86, Poco a poco, Riviera, Robertorp, Savh, Super braulio, Technopat, Tirithel, 73 ediciones anónimas Anexo:Comparación de sistemas administradores de bases de datos relacionales  Fuente: http://es.wikipedia.org/w/index.php?oldid=41911360  Contribuyentes: Azraq, Byj2000, Cristianrock2, Cuellared, Emijrp, Jachguate, Juank8041, ManoloKosh, Muro de Aguas, Shooke, Taichi, Triku, Yrithinnd, 50 ediciones anónimas Microsoft SQL Server  Fuente: http://es.wikipedia.org/w/index.php?oldid=43711617  Contribuyentes: Acbernal, Alexav8, Anam11, Artistadelpecado, Buzzedw, Calbimonte.daniel, Cheesy, Cinabrium, Cojin, Cookie, DYN DaTa, Danielba894, Dbmaster125, Death Master, Diegusjaimes, Dodo, Dreitmen, Elen6m, Eval2de, Fanattiq, Ferenckv, Fremen, GeoAvila, GermanX, Gotencool, Hobbitts, Hprmedina, Ialad, Javierito92, Jhoropopo, Jjdelperal, Joseneno, Juank8041, Juliosm, Jynus, LastCyborg, M S, Madrimx, Magister Mathematicae, Maldoror, Marim3e, Matdrodes, Monta990, Montgomery, Muro de Aguas, Oscar ., Pandres95, Piero71, Retama, Roberzen, RoyFocker, SergiRiego, Sergioperea, Shooke, Sir Magician, Superzerocool, Symonblade, VARGUX, Vitorres, Wilfredor, Xavi2m, Xosema, 136 ediciones anónimas PostgreSQL  Fuente: http://es.wikipedia.org/w/index.php?oldid=43731116  Contribuyentes: Aadrover, Aruelo, ArwinJ, Avh, Biasoli, Carcediano, Casivaagustin, Chiunti, Comae, Danthux, Daschapa, Dhidalgo, Diegusjaimes, Dodo, Dogor, Earizon, Elwikipedista, Emijrp, Er Komandante, Fanattiq, Gabrielperez, Gcsantiago, GermanX, Globalpegasus, Gronky, Hari Seldon, Jane Doe, Jsanchezes, Macumbero86, Matdrodes, Miguelo on the road, Moleculax, Mstreet linux, Niqueco, Pacofelc, Pilaf, PoLuX124, Ralfm, Reingart, Robregonm, Rybueno, Sanbec, Shooke, Tavopc, Toad32767, Tolano, Tony Rotondas, VARGUX, Vitorres, Vszjvll, Wastingmytime, Wikante, Willigulip, 140 ediciones anónimas SQLite  Fuente: http://es.wikipedia.org/w/index.php?oldid=43752788  Contribuyentes: 3coma14, Adryitan, Aikurn, Alex LE, Anonimato1990, AquiLesBailoYo, Buzange, Cabero, Calsbert, Comae, Death Master, Dodo, Drini2, Drjackzon, Elwikipedista, Emijrp, Frantama, Gaeddal, Gato ocioso, GermanX, Götz, Hari Seldon, JoaquinFerrero, Josemiguel93, Karcrack, NeCuDeCo, Pablete2005, PabloCastellano, Pabloa, Paintman, Paradoja, Phirosiberia, Pvalentini, Shooke, Viko, Willigulip, 40 ediciones anónimas MySQL  Fuente: http://es.wikipedia.org/w/index.php?oldid=43557119  Contribuyentes: 3coma14, Abakus, Abece, Akkan, Amgc56, Amitie 10g, Andreasmperu, Angel GN, Angel.F, Aparejador, Artistadelpecado, Ascánder, Avh, Biasoli, BlackBeast, Camoralesm, Catalania, Ciges, Cookie, Cratón, DYN DaTa, Damifb, Dark512, Death Master, Dferg, Diegusjaimes, Dodo, Dzegarra, E b moya, Edub, Elwikipedista, Epsilom, Er Komandante, Ezarate, Fidelmoquegua, Frontelo, Frutoseco, Furti, Gabriel Acquistapace, Gacq, Gbarrer, GermanX, Götz, Hashar, Hispa, Hobbitts, Huds, Humberto, Icvav, Ignacio Icke, Ing amc, Isha, Ivancp, JAEAndTheBooks, JEDIKNIGHT1970, Jaimate, Jane Doe, Jarfil, Javierito92, Jesuja, Jisanche, JorgeGG, Josell2, Jucapac, Knocte, Levhita, Locovich, Logoff, LordTomas, Lrojasm, M S, Macar, Mafores, Maldoror, Maleiva, Mandramas, ManoloKosh, Martingala, Matdrodes, Monta990, Monty oso, Mortadelo2005, Muro de Aguas, Murphy era un optimista, Nihilo, Niqueco, OMenda, PabloStraub, PasabaPorAqui, Pipepupo, Platonides, Ppfk, Programador, Raiden32, Raysonho, Rbuj, RoyFocker, Rsg, Rutrus, Shaggy boy, SpeedyGonzalez, Spirit-Black-Wikipedista, Stuz ocuB, Sumolari, Superzerocool, Tano4595, Taty2007, Terko, Texai, Tomatejc, Tony Rotondas, Txuspe, Ty25, Unf, VARGUX, Valyag, Vitamine, Vitorres, Wilfredor, Wilinckx, Will vm, Willigulip, Xexito, Yachar, Zanaqo, Zufs, Ál, 345 ediciones anónimas phpMyAdmin  Fuente: http://es.wikipedia.org/w/index.php?oldid=42512198  Contribuyentes: Albeiror24, Alexav8, Dianai, Dylaks, GermanX, Gnovaro, Levhita, Luis Fernando De Luna, Muro de Aguas, Superzerocool, Surfaz, 13 ediciones anónimas Administrador de base de datos  Fuente: http://es.wikipedia.org/w/index.php?oldid=42985329  Contribuyentes: .Sergio, Alhen, Anual, Arthurlb, BL, Banfield, Bombadil1986, Diegusjaimes, Edupedro, Farisori, Humbefa, Isha, Marvelshine, Pan con queso, Pertile, Tomatejc, Toxickore, Tyrannosaurusreflex, Vatelys, 75 ediciones anónimas

Fuentes de imagen, Licencias y contribuyentes

38

Fuentes de imagen, Licencias y contribuyentes
Archivo:Yes check.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Yes_check.svg  Licencia: Public Domain  Contribuyentes: User:Gmaxwell, User:WarX Archivo:X mark.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:X_mark.svg  Licencia: GNU Free Documentation License  Contribuyentes: Abnormaal, DieBuche, Gmaxwell, Kilom691, Kwj2772, MGA73, Mardetanha, Penubag, Pseudomoi, WikipediaMaster, 1 ediciones anónimas Archivo:Pg logo.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Pg_logo.png  Licencia: BSD  Contribuyentes: Jeff MacDonald Archivo:Commons-logo.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Commons-logo.svg  Licencia: logo  Contribuyentes: User:3247, User:Grunt Archivo:SQLite370.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:SQLite370.svg  Licencia: Creative Commons Attribution-Sharealike 3.0  Contribuyentes: User:Mwtoews Archivo:Mysql.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Mysql.svg  Licencia: GNU General Public License  Contribuyentes: Frédéric Bellaiche Archivo:Mysql9.JPG  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Mysql9.JPG  Licencia: Creative Commons Attribution-Sharealike 2.5  Contribuyentes: Ncsadmin, Raysonho, 1 ediciones anónimas Archivo:Mtop.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Mtop.png  Licencia: Creative Commons Attribution-Sharealike 3.0  Contribuyentes: User:Gbarrer Imagen:Question book.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Question_book.svg  Licencia: GNU Free Documentation License  Contribuyentes: Diego Grez, Javierme, Loyna, Remember the dot, Victormoz, Wouterhagens, 5 ediciones anónimas Imagen:PhpMyAdmin screenshot.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:PhpMyAdmin_screenshot.png  Licencia: desconocido  Contribuyentes: PhpMyAdmin

Licencia

39

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close