P. 1
Monografia 1

Monografia 1

|Views: 632|Likes:
Publicado porChri Rivera

More info:

Published by: Chri Rivera on May 04, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

05/01/2014

pdf

text

original

UNIVERSIDAD SAN IGNACIO DE LOYOLA

FACULTAD DE INGENIERÍA INFORMÁTICA Y DE SISTEMAS ARQUITECTURA DE DATOS II TRABAJO PARCIAL INTEGRANTES: PROFESOR: VELÁZQUEZ NUÑEZ, ÁNGEL BLOQUE:

2011

Contenido

1. INTRODUCCION..........................................................................................4 2. FUNDAMENTO TEORICO ............................................................................5 2.1 IBM DB2................................................................................................5 2.1.1 Introducción....................................................................................5 2.1.2 Reseña histórica..............................................................................6 2.1.3 Compatibilidad................................................................................7 2.1.4 Escalabilidad...................................................................................7 2.1.5 Integridad........................................................................................9 2.1.6 Seguridad........................................................................................9 2.1.7 Características..............................................................................10 2.2 MySQL.................................................................................................11 2.2.1 Introducción..................................................................................11 2.2.2 Reseña Histórica...........................................................................12 2.2.3 Interioridades y portabilidad ........................................................12 2.2.4 Tipos de columnas .......................................................................13 2.2.5 Sentencias y funciones ................................................................13 2.2.6 Seguridad .....................................................................................14 2.2.7 Escalabilidad y límites .................................................................14 2.2.8 Conectividad ................................................................................14 2.2.9 Localización ..................................................................................14 2.2.10 Clientes y herramientas .............................................................15 3. ARQUITECTURA........................................................................................15 3.1 Arquitectura general...........................................................................15 3.2 Arquitectura DB2................................................................................19 3.2.1 Funcionamiento............................................................................21 Client Programs................................................................................22 . Listener..........................................................................................22 Agents..............................................................................................22

db2fmp.............................................................................................23 Threads y Procesos..........................................................................23 Hilos y procesos del servidor de la base de datos............................24 3.2.2 Instancia.......................................................................................24 Almacenamiento Físico..........................................................................27 Almacenamiento Logico.........................................................................28 3.2 Arquitectura MySQL............................................................................30 FUNCIONAMIENTO DEL SERVIDOR MySQL..............................................30 Arquitectura lógica de MySQL................................................................31 Motores de almacenamiento..................................................................34 ¿Cómo seleccionar el motor de almacenamiento?.................................36 La capa de aplicación MySQL.................................................................37 La capa lógica MySQL............................................................................38 Administración de transacciones......................................................38 Los conectores.......................................................................................40 El gestor de conexiones.........................................................................40 El procesamiento y optimización de consultas.......................................41 La caché de consultas............................................................................41 El Control de Concurrencia.....................................................................42 La gestión de transacciones y recuperación..........................................42 3.3 Sentencias..........................................................................................42 4. COMPARACIONES.....................................................................................44 IBM DB2....................................................................................................44 MySQL.......................................................................................................45 Comandos Principales...............................................................................46 MY SQL MINIMUN REQUIREMENTS.............................................................48 DB2 WINDOWS..........................................................................................49 DB2 EXPRESS C VS MYSQL COMMUNITY...................................................54 Encriptación de red nativa...........................................................55 Protección de fuerza bruta...........................................................55 Compatible con el directorio empresarial.....................................55 Reglas de complejidad de contraseñas........................................55 Acceso a parches ........................................................................55

Usable sin privilegios ...................................................................55 Auditoria.......................................................................................55 Recursos limitables......................................................................55 Separación de trabajos ...............................................................55 Certificación de seguridad............................................................55 CONCLUSIONES............................................................................................57 6. BIBLIOGRAFIA...........................................................................................58

1. INTRODUCCION

El presente proyecto de investigación se desarrolla con la finalidad de promover el estudio comparativo entre los productos de Oracle y de IBM para base de datos (DBMS). Los productos a desarrollar son MySQL Community Server Edition y DB2-C Express Edition. El primero de ellos es una versión de descarga gratuita de la base de datos mundial de código abierto más popular, este es compatible

con una comunidad activa de desarrolladores de código abierto. El segundo producto es un software que ofrece la base de datos y las herramientas más avanzadas para ayudar a las diversas compañías del mercado a gestionar su información. El objetivo principal de este proyecto es ofrecer información adecuada y ordenada para que esta pueda ser accesible al usuario, ayudando la misma a incrementar el conocimiento con facilidad. Asimismo, se busca afianzar los conocimientos adquiridos en el curso acerca de estas herramientas; lo cual se hará a través de la investigación sobre las características, ventajas y desventajas de dichos productos. A partir de la investigación realizada se ha desarrollado un caso básico, el cual nos ayudara a establecer un estudio comparativo entre la base de datos MYSQL y DB2. Gracias a los resultados de dicha investigación, los estudiantes involucrados hemos logrado incrementar, complementar y profundizar los temas que hemos ido desarrollando a lo largo del período de estudios y a su vez, hemos incrementado los conocimientos adquiridos.

2. FUNDAMENTO TEORICO

2.1 IBM DB2
2.1.1 Introducción DB2 es una marca comercial, propiedad de IBM, bajo la cual se comercializa el sistema de gestión de base de datos relacional de dicha compañía, así como otras herramientas relacionadas encuadradas en la misma línea de producto. DB2 es el sistema de gerencia de base de datos que entrega una plataforma flexible y rentable de la base de datos a la estructura robusta en usos de

Las diferentes ediciones incluyen las características de Express-C más funcionalidades específicas. que fue desarrollado para soportar aplicaciones de gran escala. perteneciente a la firma IBM. y el DB2 Parallel Edition. DB2 Common Server. En la actualidad la última versión de RDBMS DB2 es la versión Express-C 9. Universal Data Base dispone de más de 6 millones de usuarios y 1. Fomenta sus recursos con la amplia ayuda para los estándares abiertos y las plataformas populares del desarrollo como J2EE y Microsoft . como Data Warehousing y Data Mining. clientes y socios de negocios. 1983: Se empieza a vender el producto DB2 con la versión 2.1.000 licencias instaladas.2 del Express – C en su página web. Esta funciona correctamente sobre las plataformas Linux y Windows. . usuarios móviles.7. DB2 tiene una solución construida y tasada para resolver tus necesidades únicas. proveedores. desde oficinas centrales a sucursales. En la actualidad la tecnología de gestión de datos de IBM es utilizada por más de 40 millones de usuarios de 300. 2. que para propósitos generales incluía funciones avanzadas para el mercado de servidores de bases de datos.300. 1994: DB2 UDB (DB2 Universal Database) fue construido en base a dos productos incluidos en el DB2 de AIX.7. actualmente IBM está ofreciendo en forma de prueba la versión 9.NET e incluye las soluciones adaptadas para necesidades específicas como inteligencia de negocio y útiles avanzados. implementar y distribuir aplicaciones que no usen las características avanzadas de las versiones comerciales de DB2. Asimismo. Esta versión del producto puede ser concebida como el núcleo de DB2. DB2 Express-C es la versión gratuita para la comunidad de DB2 que permite desarrollar.000 empresas en todo el mundo. con soporte de hardware SMP y OLTP.negocio de la demanda. Mientras que la evolución del DB2.0.2 Reseña histórica • • • 1970: Se da el origen del producto DB2. Si tu negocio es grande o pequeño. pero el motor de la base de datos no utiliza más de 2 procesadores de núcleo y 2 GB de memoria RAM. El producto incluye todo lo necesario para implementar una solución de replicación de datos en cualquier tipo de ambiente distribuido o heterogéneo. pues permite enviar los datos a cualquier sitio para cubrir todos los requerimientos de una empresa.

solo trabaja bajo Windows. 2. desde oficinas centrales a sucursales.4 Escalabilidad DB2 Universal Database de IBM es el primer y único servidor de bases de datos del mundo cuya escalabilidad va desde un computador de bolsillo a una laptop. usuarios móviles. Se dice también ser la base de datos más utilizada en el mundo.de servidores para servidores empresariales masivamente paralelos a través de 23 plataformas en 14 lenguajes con una sólida confiabilidad.1. Usted puede obligar el log actualmente activo al cierre y puede forzar que el log sea archivado. Esto asegura que su disco auxiliar en línea tenga un juego completo de logs archivados y disponibles para la recuperación. ambiente distribuido o heterogéneo. pues permite enviar los datos a cualquier sitio para cubrir los requerimientos de una empresa. ya que Access 2000 traerá consigo un nuevo MSDE−DATA−Engine. más que Oracle y que Microsoft SQL. de un servidor de rango mediano a clusters . y sabemos que detrás de cada e−business está siempre una base de datos. no tanto porque la causa de desarrollo sea la misma. Incluye todo lo necesario para implementar una solución de replicación de datos de cualquier tipo. DB2 obligará a cerrar el log actualmente activo y como resultado se archivará fuera de él.3 Compatibilidad Se podría decir que este producto de cierta manera pretende ser el servidor de bases de datos genérico para Windows. . Se usa principalmente en sistemas de computadoras mainframe como AS/400 y RS/6000. como alternativa al existente y compatible con SQL Server). DB2 es el sistema relacional de IBM y es una de las bases de datos relaciónales más antiguas en el mercado. clientes y socios de negocios. ya que es la que mejor responde a las exigencias del e−business de hoy. Después de que un backup en línea está completo.2. a diferencia de otros servidores. proveedores. sino porque Microsoft promete integración con todos los productos suyos (por ejemplo MsOffice 2000. ni siquiera porque el SQL Server. También será posible llamar a SQL Server desde MS-Access.1. Esta base de datos proporciona características avanzadas y se usa principalmente para soluciones de base de datos a gran escala.

Rollforward recovery. aplicaciones. código de procedimiento almacenado en biblioteca de sistema de operación. • . agregar. y poner al día los datos en las bases de datos locales y remotos. La estrategia global debe incluir los procedimientos para los scripts de comando de recuperación. Este producto le permite distribuir y acceder a los datos por una red de sistemas. Se puede realizar la administración de la DB2 desde cualquier puesto de trabajo. Pueden dividirse las bases de datos de DB2 por computadoras independientes múltiples conectadas por un LAN o por secciones. Este producto guarda sus datos contra la pérdida. Microsoft Windows. Debe incluir un horario de respaldo y. desarrollar las aplicaciones. que es la restauración de la base de datos a la versión anterior con una imagen de la base de datos que fue creado durante la operación de respaldo. acceso desautorizado. Los usuarios pueden preguntar. DB2 incluye herramientas gráficas que le permiten poner a punto la actualización. y proceso de pregunta SQL. incluyendo UNIX. AS/400. en el caso de sistemas de base de datos distribuidos. DB2 proporciona un juego de datos de acceso de las interfaces para los diferentes tipos de usuarios y aplicaciones. OS/2. manejar todos los servidores de un solo sitio. y OS/390. DB2 tiene tres tipos de recuperación: • Version recovery. anular. funciones definidas por usuario. No importa si la base de datos es local o remota. que es la reaplicación de transacciones registradas en los archivos de log después que una base de datos o una tabla esta restaurada. o entradas inválidas proporcionando los backups o logs periódicos para restaurar una base de datos al mismo estado que tenía antes del fallo. También significa que los funcionamientos pueden correr en paralelo en las particiones de la base de datos individuales. acceso a los servidores de DB2 remotos. reduciendo el tiempo de ejecución. incluye las copias de base de datos cuando los servidores o nodos están agregados o eliminados. Una estrategia de recuperación de base de datos debe asegurar que todas las informaciones estén disponibles cuando son requeridos para la recuperación de base de datos.DB2 está disponible para múltiples sistemas de operaciones. Se puede administrar la BD incluso desde un navegador (Web Browser).

Para poder acceder a un servidor de base de datos. 2.1. son logs cerrados y guardados. Estos tienen dos tipos de comportamiento en DB2: Circular logging. donde el usuario prueba que es quien dice. Los logs registran cambios de base de datos. es necesario pasar por unas revisiones de seguridad.• Crash recovery. Todas las bases de datos tienen los archivos de log asociados. El primer paso de seguridad se llama Autentificación. El segundo paso de seguridad se llama Autorización. que es la recuperación automática de la base de datos si una falla ocurre antes de que todas las transacciones se encuentren completas. en una o más tablas.6 Seguridad DB2 utiliza una combinación de seguridad externa y control interno de acceso a protección de datos. Archived logs.1. Restricción Referencial: Es una regla lógica sobre valores en una o en más columnas. es el comportamiento default cuando se crea una nueva base de datos. Si una base de datos necesita ser recuperada a un punto después del último respaldo. Tabla de Control de Restricciones: Es un grupo de restricciones que se agregan a los datos de una tabla específica. y son usados específicamente para rollforward recovery. los logs son requeridos para realizar la recuperación. 2.5 Integridad Las restricciones son reglas que el administrador de la base de datos establece. Existen tres tipos de restricciones: Restricción Única: Es una regla que prohíbe que haya valores duplicados en una o en más columnas en una tabla. . donde SGBD decide si el usuario auténtico es permitido a realizar acción solicitada o acceder a los datos solicitados.

como complementa el SQL dinámico).7 Características • • • • • • Manejo de objetos grandes (hasta 2 GB). SQL recursivo. C++. Cuenta con un monitor gráfico de rendimiento. • • • . Con DB2 es posible acceder a los datos usando JDBC. CLI. PHP. imágenes. Tiene aplicaciones para . mediante Internet. queries paralelos. JAVA.NET. PHYTON. entre otros lenguajes de programación. Tiene implementación nativa de almacenamiento de datos XML. Verificación de integridad referencial. video. commit de dos fases.2. backup/recuperación on−line y offline.NET. Soporta SQL y XQuery Soporte multimedia: texto. La definición de datos y funciones por parte del usuario. También soporta integración en los ambientes de desarrollo integrado de Eclipse y Visual Studio . el cual permite observar el tiempo de ejecución de una sentencia SQL y corregir detalles para aumentar el rendimiento. audio. Java y SQL (tanto el SQL estático.1.

MySQL es patrocinado por una empresa privada. Mediante este tipo de consultas conseguiremos dar a nuestros programas funciones dinámicas como por ejemplo sistemas de identificación. Además MySQL Community Server apuesta por la seguridad. Allan Larsson y Michael Widenius. que posee el copyright de la mayor parte del código. Esto significa que aquella gente que posea los conocimientos necesarios podrá modificar y mejorar el código para conseguir un mejor rendimiento de sus bases de datos. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet.1 Introducción MySQL es un sistema de gestión de base de datos relacional. ya que nos permite establecer una contraseña diferente para cada una de las bases de .). Perl. 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. MySQL Community Server permite almacenar una gran cantidad de datos pudiendo utilizar varias bases de datos diferentes para diferenciar diferentes trabajos que estemos ejerciendo. MySQL AB fue fundado por David Axmark. Está desarrollado en su mayor parte en ANSI C. La versión gratuita de MySQL es MySQL Community Server es la herramienta perfecta para la creación de bases de datos a través de lenguaje SQL. Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia. Java.2. pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. MySQL Community Server además es una aplicación de código abierto. la compañía ofrece soporte y servicios. etc. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Todos nuestros datos serán dirigidos mediante consultas SQL que podrán realizarse desde cualquier lenguaje de programación (PHP. registros. C++. etc.2 MySQL 2. Al contrario de proyectos como Apache. Además de la venta de licencias privativas. Python. multihilo y multiusuario con más de seis millones de instalaciones. MySQL Server es un servidor que les servirá tanto a usuarios que desean iniciarse en el mundo de la programación SQL como a aquellos empresarios que desean tener todos sus datos almacenados y seguros en una base de datos. donde el software es desarrollado por una comunidad pública y el copyright del código está en poder del autor individual.2.

PHP. El origen del nombre MySQL no se sabe con certeza de donde proviene. que son usadas como tablas temporales.datos que contenga. la hija de uno de los desarrolladores se llama My. Perl. Ruby. y Tcl. Usa tablas en disco B-tree (MyISAM) muy rápidas con compresión de índice. llegó a la conclusión de que mSQL no era lo bastante flexible ni rápido para lo que necesitaba. Proporciona sistemas de almacenamiento transaccionales y no transaccionales. Michael Windenis comenzó a usar mSQL para conectar tablas usando sus propias rutinas de bajo nivel (ISAM). Así que no está claramente definido cual de estas dos causas han dado lugar al nombre de este conocido gestor de bases de datos. totalmente compatible a mSQL. Esto resulto en una interfaz SQL a su base de datos.2 Reseña Histórica MySQL surgió alrededor de la década del 90. Autoconf. • • • • • • . Las funciones SQL están implementadas usando una librería altamente optimizada y deben ser tan rápidas como sea posible. Python. C++. por lo que tuvo que desarrollar nuevas funciones. 2. y Libtool para portabilidad.3 Interioridades y portabilidad • • • • • • • Escrito en C y en C++ Probado con un amplio rango de compiladores diferentes Funciona en diferentes plataformas. Usa GNU Automake. por una lado se dice que en sus librerías han llevado el prefijo “my” durante los diez últimos años. Normalmente no hay reserva de memoria tras toda la inicialización para consultas. Esto es útil si desea añadir una interfaz SQL para una base de datos propia. APIs disponibles para C. Eiffel. por otra parte. Joins muy rápidos usando un multi-join de un paso optimizado.2. Un sistema de reserva de memoria muy rápido basado en threads. Pueden usarse fácilmente multiple CPUs si están disponibles. Tras unas primeras pruebas. Java. Tablas hash en memoria. 2.2. Así podrán acceder a ellas únicamente personas con autorización para ello. Uso completo de multi-threaded mediante threads del kernel. Relativamente sencillo de añadir otro sistema de almacenamiento.

DATETIME. TIME. BLOB. También está disponible como biblioteca y puede ser incrustado (linkado) en aplicaciones autónomas. MIN(). 2. ABS es un nombre válido de columna. El comando EXPLAIN puede usarse para determinar cómo el optimizador resuelve una consulta. DELETE. TIMESTAMP.5 Sentencias y funciones • Soporte completo para operadores y funciones en las cláusulas de consultas SELECT y WHERE. ENUM. Los nombres de funciones no colisionan con los nombres de tabla o columna. INSERT. 3. 2. tablas e índices. el motor de base de datos. FLOAT. REPLACE. STD(). y GROUP_CONCAT()). y 8 bytes de longitud. no se permiten espacios entre el nombre de función y el '(' a continuación.22). Por ejemplo: mysql> SELECT CONCAT(first_name. Puede mezclar tablas de distintas bases de datos en la misma consulta (como en MySQL 3. y UPDATE devuelven el número de filas que han cambiado (han sido afectadas). OUTER JOIN cumpliendo Soporte para alias en tablas y columnas como lo requiere el estándar SQL. last_name) -> FROM citizen -> WHERE income/dependents > 10000 AND age > 30.. Soporte completo para las cláusulas SQL GROUP BY y ORDER BY.).• • El código MySQL se prueba con Purify (un detector de memoria perdida comercial) así como con Valgrind. . CHAR. AVG(). TEXT. YEAR. 2. Es posible devolver el número de filas que serían afectadas usando un flag al conectar con el servidor. 4. VARCHAR.. una herramienta GPL El servidor está disponible como un programa separado para usar en un entorno de red cliente/servidor. Dichas aplicaciones pueden usarse por sí mismas o en entornos donde no hay red disponible.2. SUM(). Registros de longitud fija y longitud variable.4 Tipos de columnas • Diversos tipos de columnas: enteros con/sin signo de 1. Soporte de funciones de agrupación (COUNT(). ' '.2. Soporte para LEFT OUTER JOIN y RIGHT estándares de sintaxis SQL y ODBC. La única restricción es que para una llamada a una función. MAX(). COUNT(DISTINCT . y tipos espaciales OpenGIS.. El comando específico de MySQL SHOW puede usarse para obtener información acerca de la base de datos. DOUBLE. SET. DATE. Por ejemplo.

incluyendo latin1 (ISO-8859-1). o TEXT. BLOB. En MySQL 5. los clientes pueden conectar usando ficheros socket Unix.1.000 de registros. El código fuente de MyODBC está disponible. La interfaz para el conector J MySQL proporciona soporte para clientes Java que usen conexiones JDBC.2. En sistemas Windows de la familia NT (NT.6 Seguridad • Un sistema de privilegios y contraseñas que es muy flexible y seguro. El código fuente para el conector J está disponible.9 Localización El servidor puede proporcionar mensajes de error a los clientes en muchos idomas.Un índice puede usar prefijos de una columna para los tipos de columna CHAR.2. La interfaz para el conector ODBC (MyODBC) proporciona a MySQL soporte para programas clientes que usen conexiones ODBC (Open Database Connectivity). german. puede usar MS Access para conectar al servidor MySQL. Los clientes pueden ejecutarse en Windows o Unix.2. Cada índice puede consistir desde 1 hasta 16 columnas o partes de columnas. Usamos MySQL Server con bases de datos que contienen 50 millones de registros.5 están soportadas. El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4. Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.0. y que permite verficación basada en el host.2). En sistemas Unix.000. así como muchas otras. los caracteres . También conocemos a usuarios que usan MySQL Server con 60. big5.7 Escalabilidad y límites Soporte a grandes bases de datos. Por ejemplo.2. 2. VARCHAR.2. y más. los clientes pueden usar named pipes para la conexión.000. Estos clientes pueden ejecutarse en Windows o Unix. o 2003). Por ejemplo.2).8 Conectividad Los clientes pueden conectar con el servidor MySQL usando sockets TCP/IP en cualquier plataforma.XP. ujis.2000. los servidores Windows soportan conexiones con memoria compartida si se inicializan con la opción --shared-memory. Soporte completo para distintos conjuntos de caracteres. Las contraseñas son seguras porque todo el tráfico de contraseñas está encriptado cuando se conecta con un servidor. 2.000. Todas las funciones para ODBC 2.000 tablas y cerca de 5. Los clientes pueden conectar a través de memoria compartida usando la opción --protocol=memory.1. 2.

Para ver un ejemplo de ordenación muy avanzada.2. una utilidad de línea de comandos muy rápida para efectuar estas operaciones en tablas MyISAM. consulte el código Checo de ordenación. 3. Estos comandos están disponibles a través de la línea de comandos y el cliente mysqlcheck. 2. MySQL Server soporta diferentes conjuntos de caracteres que deben ser especificados en tiempo de compilación y de ejecución. ARQUITECTURA 3. MySQL también incluye myisamchk. Todos los programas MySQL pueden invocarse con las opciones --help o -? para obtener asistencia en línea. La ordenación se realiza acorde al conjunto de caracteres elegido (usando colación Sueca por defecto). optimizar.1 Arquitectura general . Todas las comparaciones para columnas normales de cadenas de caracteres son caseinsensitive. Es posible cambiarla cuando arranca el servidor MySQL. 'ä' y 'ö' están permitidos en nombres de tablas y columnas.10 Clientes y herramientas MySQL server tiene soporte para comandos SQL para chequear. y reparar tablas. El soporte para Unicode está disponible Todos los datos se guardan en el conjunto de caracteres elegido.escandinavos 'â'.

Usuarios ingenuos son usuarios sofisticados. Usuarios sofisticados interactúan con el sistema sin necesidad de utilizar ningún tipo de aplicación. se ha encontrado que los usuarios puedan se clasifican en cuatro grupos principales: 1. En general.1. 2. 3. Los administradores de base de datos tiene el control total sobre el . sino que básicamente proporciona los medios por el cual el mundo exterior puede interactuar con el servidor de base de datos. sino que forma sus solicitudes directamente con el uso de un lenguaje de consulta de bases de datos.1 Capa de Aplicación La capa de aplicación representa la interfaz para todos los usuarios del sistema. que interactúan con el sistema mediante la invocación de una de los programas permanentes de aplicación que han sido previamente escrito.3. Usuarios especializados son los programadores de aplicaciones que escriben aplicaciones de bases de datos especializadas que no encajan en el marco tradicional de procesamiento de datos. 4.

sistema de base de datos. así como la especificación de restricciones de integridad. en efecto a la baja.2 Capa lógica La funcionalidad básica del RDBMS está representado en la capa de lógica de la arquitectura. se encontró que en general la funcionalidad de núcleo lógico de hecho se puede abstraer. 3. Cabe señalar que las implementaciones . incluyendo la definición del esquema. Todos los sistemas de bases de datos proporcionan amplios servicios para cada uno de estos grupos. al la lectura de una serie de textos generales de gestión de bases de datos. Se puede observar que hay cuatro módulos principales presentes en el RDBMS. El siguiente diagrama es una abstracción de alto nivel de los módulos se encuentra en cualquier sólido RDBMS.1. es en esta parte del el sistema que hay una gran variedad de implementaciones de proveedores específicos (ver Figura 2). Ellos tienen una amplia variedad de responsabilidades. y sus implementaciones y interacciones se resumen basado en la documentación general de una variedad de fuentes. la concesión de acceso autorización. sino que se deja a la capa de lógica de adecuadamente el proceso de peticiones diversas. Sin embargo. la capa de lógica en sí mismo puede ser considerado como un Garlan y Shaw capas de la arquitectura. Es interesante tener en cuenta que desde el flujo de control importante es.

3. que se mantiene en el almacenamiento secundario y acceder a través del gestor de almacenamiento. los subsistemas de MySQL estos elementos serán analizados en detalle. Los archivos de datos. que proporcionan un acceso rápido a los elementos de datos que contienen valores particulares 4. Diccionario de datos.3 Capa Física El RDBMS se encarga de la conservación de una variedad de información. en la siguiente sección. Índices. que almacena metadatos acerca de la estructura de la base de datos 3.1. Ver diccionario detallado . que almacenan la información estadística sobre los datos en la base de datos que es utilizado por el procesador de consultas para seleccionar formas eficientes para ejecutar una consulta. 5. Datos estadísticos. que almacenan los datos del usuario en la base de datos 2. que sirve para hacer un seguimiento de las consultas ejecutadas de manera que el gestor de recuperación puede utilizar la información para recuperar con éxito la base de datos en el caso de un fallo del sistema.específicas y las interacciones entre los subsistemas varían mucho de un proveedor a otro. La información del registro. Los principales tipos de datos almacenados en el sistema son: 1.

package cache y catalog cache.2 Arquitectura DB2  Instance shared memory: Este se refiere al administrador global de memoria compartida de la base de datos. el cual es asignado cuando la instancia es iniciada mediante el comando DB2START (para DB2) y permanece asignado así hasta que el comando DB2STOP (para DB2) es ejecutado para detener la instancia. La memoria asignada incluye buffer pools.  Database shared memory: Este se refiere a la memoria global de la base de datos. utility heap. database heap. el cual es asignado cuando la base de datos es activada o conectada por primera vez. .3. locklist.

así es que la configuración precisa de los parámetros que afectan a la aplicación de la memoria compartida se vuelve crucial. DB2 Page Cleaner (db2pclnr): Equivalente al proceso DBWR de Oracle. Cada aplicación conectada a la base de datos tiene memoria asignada a sí misma. DB2 Format Log (db2fmtlg): Proceso que pre-asigna los log files en el log path  Nivel de Base de Datos: Estos son los procesos que se inicializan al momento de crear una conexión con una base de datos. DB2 Deadlock Detector (db2dlock): Proceso que detecta los Deadlock. 2. DB2 Log Reader (db2loggr): Similar al proceso PMON de Oracle . 1. DB2 Log Writer (db2logw): Equivalente al proceso LogWriter de Oracle. 1. restart recovery y el roll forward. DB2 System Controller (db2sysc): Procesador principal del DB2. DB2 Daemon Spawner (db2gds): Procesador daemon global iniciado por cada instancia (solo en UNIX). DB2 Prefetcher (db2pfchr): Recupera las páginas del disco y los coloca al buffer pool justo antes de ser necesitada. Este proceso lee los log files durante el rollback. DB2 Watchdog (db2wdog): Proceso padre para todos los procesos. 1.  Nivel de Instancia: Estos son los procesos que se inicializan al momento de comenzar la instancia: 1. 3. Application shared memory: Esta se refiere a la memoria asignada cuando una aplicación se conecta a la base de datos y es usada por agentes que pueden hacer el trabajo solicitado por los clientes conectados. 3. 2. . 4.

3.1 Funcionamiento .2.

así como también en la misma máquina que el servidor de la base de datos. Una vez que se crea el agente del coordinador. en los cuales se permite el parámetro de la configuración del encargado de base de datos del intra_parallel. Existe un listener para cada protocolo de comunicación configurado. la cual se inicializa a la vez que con el DB2. para peticiones de la herramienta TCP/IP Todas las peticiones de conexión de la aplicación del cliente. Listener El Client Program hace contacto inicial con communication listerner. son asignados a un agente correspondiente del coordinador (db2agent). y un listener para las comunicaciones entre procesos (IPC) (db2ipccm) para los local Client Program. Los listener incluyen: • • • • Agents db2ipccm.. realiza todas las peticiones de la base de datos a favor de la aplicación. . Su primer contacto es con la base de datos a través de un listener. ya sean locales o remotas. Un agente del coordinador (db2agent) entonces se asigna a ellos. maneja todas las peticiones de la base de datos a favor de la aplicación mediante la coordinación de subagentes (db2agntp) que realizan peticiones en la base de datos. Un agente del coordinador puede ser: . Cuando se crea el agente del coordinador. En algunos ambientes. para las conexiones de APPC db2tcpdm. para las conexiones del TCP/IP db2snacm. el agente del coordinador distribuye las peticiones de la base de datos a los subagentes (db2agntp). para las conexiones locales del cliente db2tcpcm.Client Programs Este programa funciona remotamente. Estos agentes realizan los pedidos de la aplicación.

db2pclnr.HIS file . para recoger información histórica sobre los logs que se activan cuando un tablespace es modificado. Por ejemplo.• “DATA1”. para los buffer pool prefetchers. para los buffer pool page cleaners db2loggr. o de los subagentes que funcionan a favor de agentes existentes del coordinador. El número de agentes disponibles es dependiente en los maxagents y los num_poolagents de los parámetros de la configuración del encargado de base de datos. Un tipo adicional del agente. Estos agentes están disponibles para las peticiones de los agentes del coordinador que funcionan a favor de programas del cliente. • Conectado con la base de datos con alias. db2logts. para manipulación de log files manejar procesos de transacciones y procesos de recuperación db2loggw. db2fmp El proceso modo fenced. Los Idle agents residen en el agent pool. para escribir los log records en los log files. db2agnsc es creado por DB2 para realizar ciertas operaciones en paralelo. Threads y Procesos La siguiente lista incluye algunos de los threads y procesos más importantes de la base de datos      db2pfchr. db2fmp es siempre un proceso separado pero puede hacer un multithread dependiendo de los tipos de rutinas que se ejecuta. “db2agent (DATA1)” está conectado con la base de datos alias Adjuntado a una instancia. Esta información se registra en última instancia en DB2TSCHG. se utilizan en acciones de la recuperación de base de datos. “db2agent (user1)” se adjunta a la instancia del “user1”. Por ejemplo. Es responsable de ejecutar procedimientos almacenados cercados y funciones definidas por el usuario fuera del firewall. Particularmente.

Hilos y procesos del servidor de la base de datos El regulador del sistema (db2sysc) debe existir para que el servidor de la base de datos a funcionar. que maneja peticiones urgentes después de que los límites del agente se hayan alcanzado en un nodo particular (usado solamente en un ambiente de base de datos repartido) 3. el agente de la RESYNC que explora la lista global de la RESYNC db2gds.en el directorio de base de datos.2 Instancia . el regulador paralelo del sistema. al tener acceso a una base de datos configurada con LOGRETAIN permitido. el agente del pánico. los hilos de rosca y los procesos siguientes se pueden comenzar para realizar varias tareas: • • • • db2resyn. pero con USEREXIT inhabilitados • db2panic. el spawner global del demonio en sistemas basados en UNIX que comienza nuevos procesos db2wdog. • • db2cart.2. el perro guardián en sistemas basados en UNIX que maneja terminaciones anormales db2fcmdm. el demonio rápido del encargado de las comunicaciones para manejar la comunicación de la inter-partición (usada solamente en bases de datos multi-repartidas) • db2pdbc. También. que maneja peticiones paralelas de los nodos alejados (usados solamente en un ambiente de base de datos repartido). para archivar ficheros de diario cuando tener acceso a una base de datos configurada con USEREXIT permitió db2fmtlg. para los ficheros de diario del formato. Se usa para acelerar la recuperación del TableSpace Rollforward.

.

Uno tiene que explícitamente crear una base de . se ejecuta el comando db2icrt <nombre de la instancia>. Cada base de datos es una unidad independiente y cerrada a las otras. Una instancia puede contener varias bases de datos. entonces se debe cambiar el valor de la variable DB2INSTANCE a “db2”. a la que todos los comandos se aplicaran. DB2 contiene un archivo binario conocido como el directorio system database que contiene entradas de todas las bases de datos de las que puedes conectar desde una maquina de DB2. después de instalar el producto en una plataforma de Windows. la instancia por defecto es llamada "db2inst1". STOP y DELETE. no se crea ninguna base de datos por defecto. si el DB2INSTANCE fue asignado a “prod”. En Linux y UNIX. MODIFY. Para referenciar una instancia DB2 dada desde una interfaz de línea de comandos. y espacio de tablas de usuario los cuales son creados por defecto al momento de crear la base de datos. se ejecuta el comando db2idrop <nombre de la instancia>. START. Esto es similar al ORACLE_SID (System Identifier) el cual también es usado cuando los usuarios quieren cambiar entre instancias. En DB2. Para crear otra instancia en la misma máquina. Cuando una instancia es creada. Cada base de datos tiene su propio espacio de tabla de catálogos. se creará una base de datos asociada a la instancia “prod”. Para una instancia en DB2 existen los comandos CREATE. Por ejemplo. Si hubieses querido que se creara la base de datos en la instancia “db2”. Para eliminar una instancia en DB2. y todas sus particiones de bases de datos comparten los mismos directorios del sistema. la instancia "DB2" es creada por defecto. Esta variable permite que especifiques a la instancia actual. Este directorio es contenido al nivel de la instancia.Una instancia en DB2 tiene sus propias bases de datos (las cuales no pueden ser utilizadas por otras instancias). espacio de tablas temporales. y después ejecutas el comando CREATE DATABASE “mydb1”. se usa la variable de ambiente DB2INSTANCE.

este requerimiento puede ser obtenido por medio de la habilitación de un soporte federal. Sin embargo. etc. Ficheros : Son los archivos de datos donde se almacenarán la información.datos usando el comando CREATE DATABASE. Almacena información acerca de los archivos que contiene: como los atributos de los archivos o dónde se encuentran físicamente en el dispositivo de almacenamiento. propósito o a cualquier criterio que decida el usuario. se utiliza el comando DROP DATABASE. cada uno de ellos puede ser administrado por el sistema operativo o por el mismo DB2 • • Un container es asignado a un tablespace Un solo tablespace puede expandirse a muchos containers. Dispositivos: Lugar donde se puede almacenar la información como discos duros. Para eliminar una base de datos. si una aplicación necesita interactuar con más de una base de datos. . pero cada container puede pertenecer solo a un table space Directorio: Agrupación de archivos de datos. atendiendo a su contenido. Almacenamiento Físico Contenedores: • Asignación de almacenamiento físico tal como un archivo o un dispositivo. Las bases de datos de una instancia no interactúan normalmente entre ellas. memorias.

si tienes a una tabla llamada "hot". Base de datos: Conjunto de datos almacenados sistemáticamente para su posterior uso. Esto ayuda a asegurar que la data para esta tabla es continua en el caché de la memoria.Almacenamiento Logico Instancia: Conjunto de estructuras de memoria y procesos que administra datos y los recursos del sistema asignados a ella. Tablespace: Espacio Lógico utilizado para almacenar objetos de la base de datos administrados por el DBMS. Por ejemplo. puedes asociarlo a un buffer pool (database cache) especifico así como a un container especifico. Soporta dos tipos: En DB2. Cuando creas un tablespace. Esto te da la flexibilidad del manejo de ejecución. un tablespace es un objeto lógico usado como una capa entre las tablas lógicas y los containers físicos. . en diferentes tipos de archivos. puedes definirla a su propio tablespace asociado a su propio buffer pool.

los tablespaces no son compartidos entre ellos. El número de contenedores es determinado al crear el tablespace y no . Por ejemplo. contiene la metadata.En DB2. pero requiere de cierta administración. SMS (System Managed Space): • • • El SO controla el espacio Un objeto no puede estar en dos tablespaces distintos. dos bases de datos diferentes pueden tener tablespaces del mismo nombre. porque su crecimiento no es automático.   TEMPSPACE1: Es el tablespace del sistema temporal usado para realizar operaciones tales como JOIN y SORT. se necesita especificar antes ded tiempo la cantidad de espacio que se desea asignar al tablespace. Pueden crecer automáticamente cuando es necesario.  USERSPACE1: Este tablespace es opcional y puede ser usada para guardar las tablas de los usuarios cuando un tablespace no es indicado explícitamente al momento de la creación de la tabla. Los tablespaces en DB2 pueden ser clasificados como SMS (system-managed spaces) o DMS (database-managed spaces). Los DMS tablespaces son manejados por el DB2. y pueden ser archivos o dispositivos brutos. Debido a que las bases de datos en DB2 son unidades independientes. Estas son: SYSCATSPACE: Es el tablespace de catalogo. El nombre de esta tabla puede ser cambiada. Considerando de que son conocidos dentro de solo una base de datos. Los SMS tablespaces son manejados por el sistema operativo y solo pueden ser directorios. lo que indica que los SMS dan un buen funcionamiento con una administración mínima. Este tipo de tablespace permite el mejor funcionamiento. tres tablespaces son creadas automáticamente por defecto al momento de crear una base de datos cuando se utilizan las opciones de valor por defecto para el comando CREATE DATABASE.

. Los clientes se conectan a servidor. Un registro de tabla (fila) debe caber en un solo page. 3. Esto permite incluso crear nuevos motores de almacenamiento especializados para ciertas tareas o tipos de aplicaciones. Un page de DB2 puede tener un tamaño de 4k. DMS (Database Managed Space: • El gestor de base de datos controla el espacio • El Tablespace por defecto para el usuario se llama USERPACE1. FUNCIONAMIENTO DEL SERVIDOR MySQL Funcionamiento: 1. No hay un numero predefinido de bufferpools que se puedan crear y pueden tener cualquier nombre.puede ser aumentado a después. Sin embargo. • Los objetos pueden expandirse en varios tablespaces. • El tamaño de un DMS tablespace puede ser incrementado añadiendo containers después de ser creados. El concepto de un Oracle block es muy similar al page del DB2. El concepto de data buffer del Oracle es el equivalente al bufferpool del DB2. el DB2 permite que existan mas de un bufferpool. Es decir. • Ideal para grandes bases de datos y con alto nivel de rendimiento. no se puede expandir a otros pages como lo hace en Oracle. el diseño del gestor está preparado para que se pueda cambiar el gestor de almacenamiento. 8k.2 Arquitectura MySQL La arquitectura de MySQL tiene como característica más notable el separar el motor de almacenamiento (que se encarga de los detalles de entradasalida y representación de la información en memoria secundaria) del resto de los componentes de la arquitectura. 16k o 32k.

y las envía al correspondiente motor de almacenamiento. tablas e índices. 5. . valida su sintaxis. La capa de manejo escribe logs a disco. El servidor procesa las peticiones y devuelve las respuestas.. lee logs binarios de la red.) manejan la representación en memoria y disco de bases de datos. que las desencripta. La figura hace una división entre los componentes que conforman el servidor. las aplicaciones cliente que lo utilizan y las partes del sistema operativo en las que se basa el almacenamiento físico. Los motores de almacenamiento (MyISAM. comprimen y cifran peticiones.. Memory. Los clientes inician autentificación. Los motores de almacenamiento guardan datos (tablas. InnoDB. guarda y lee caches en memoria. las busca en la caché. envía datos a otros servidores remotos.. logs... cachean los resultados del servidor 3. 4. Las peticiones son procesadas primero por la capa de manipulación. así como generación de estadísticas y algunos logs. codifican y envían peticiones. 6. Arquitectura lógica de MySQL La siguiente figura es una visión abstracta de la arquitectura lógica de MySQL. .2.) en disco y en memoria.

.Una copia de la tabla de permisos. la caché de consultas. Las bases de datos. . Los ficheros de formato de tablas ('*. . si el motor de almacenamiento InnoDB está activado. Los ficheros de registro ("logs") y de estado. y los ficheros de datos y ficheros de índices para algunos motores de almacenamiento. Su fichero de formato ('*.Gestores de conexión (cada conexión consume memoria).. la caché de tablas. * El servidor MySQL utiliza los siguientes buffers por cada cliente: .Figura 1 * El - servidor MySQL utiliza espacio en disco para almacenar lo siguiente: Los programas cliente y servidor. * El servidor MySQL utiliza espacio en memoria para almacenar lo siguiente: .frm') se continua guardando en disco. y sus librerías. Los ficheros de "tablespaces" de InnoDB.Cachés: caché de hosts. .Buffers de registros para las búsquedas secuenciales en tablas .frm') para todos los motores de almacenamiento. Tablas temporales internas que han sobrepasado el límite de tamaño en memoria y deben ser convertidas a tablas en disco.. .El contenido de las tablas HEAP (motor de almacenamiento en memoria).Buffers que guardan tablas temporales internas que no han sobrepasado el límite de tamaño en memoria.

Para ver dicho registro se utiliza la herramienta 'mysqlbinlog'. Buffer de ordenación para las operaciones de ordenación. el navegador de consultas (QueryBrowser). o que pueden instalarse como aplicaciones adicionales. Para registrar las modificaciones de datos de las tablas podemos iniciar el servidor con la opción "--log-bin". que guarda los descriptores de ficheros para los ficheros de tablas. Buffer de comunicaciones para intercambiar información con el cliente.El máximo número de hilos de ejecución por proceso limita el número de clientes que se pueden conectar simultáneamente al servidor MySQL. * Los límites que el sistema operativo puede imponer al servidor MySQL son: . shell> mysqladmin extended-status * Ver la configuración del servidor: mysql> SHOW VARIABLES. Estas incluyen las herramientas de backup. . * Ver la actividad del servidor: mysql> SHOW STATUS.err'. entre otras. pero si es necesario el Servidor aumenta su tamaño al señalado por 'max_allowed_packet'. Para registrar los errores podemos iniciar el servidor mediante 'mysqld_safe'. Para ver los errores debemos buscar un fichero en el directorio de datos con el nombre de la máquina y con el sufijo '. shell> mysqladmin variables Las utilidades y herramientas de MySQL son los programas y aplicaciones que se incluyen con la distribución del gestor. Buffer de join para las uniones de tablas.El máximo número de ficheros abiertos por proceso limita el tamaño máximo de la caché de tablas.El 'backlog' permitido por el sistema limita el número de conexiones de red en cola debido a clientes que esperan a conectarse.El sistema de ficheros donde se guardan los datos limita el tamaño máximo del fichero. . pero este límite puede esquivarse repartiendo los datos en varios ficheros. . las aplicaciones administrativas de interfaz gráfico y la herramienta de diseño MySQL Workbench. .- ('read_buffer_size') y para leer las líneas después de una ordenación ('read_rnd_buffer_size') normalmente conseguida mediante la cláusula ORDER. Comienza con un tamaño de 'net_buffer_length'.

las interfaces definidas por MySQL aíslan el resto de los componentes de la arquitectura de las complejidades de la gestión física de datos. Esto permite utilizar el motor de almacenamiento más adecuado para cada necesidad concreta. • • • • • • MyISAM. Su principal utilidad es mantener un servidor esclavo que mantenga un log del sistema principal. e incluso un mismo servidor MySQL puede utilizar diferentes motores de almacenamiento para diferentes bases de datos o para diferentes tablas en la misma base de datos. así que es el motor típico para una base de datos histórica o cuando vamos a tener una cantidad realmente enorme de datos EXAMPLE. motor nuevo que se incorporó en la versión 5 de MySQL. el motor por defecto. También esto permite que ciertos motores de almacenamiento no implementen parte de los servicios. el motor almacén. FEDERATED. Puede crear tablas con este motor. El objetivo es que sirva como ejemplo en el código MySQL para ilustrar cómo escribir un motor de almacenamiento. ni transacciones. el gestor de almacenamiento puede intercambiarse. De ese modo. Por lo demás no hay mucho que comentar. pero la ausencia de sobrecarga de procesamiento en la gestión de los bloqueos para el acceso concurrente lo hará mucho más eficiente para una aplicación monousuario. lo cual les hace inapropiados para algunas aplicaciones pero más eficientes para otros. como curiosidad decir que los BLOB o TEXT pueden ser indices. si eso. todas las consultas se realizan con autocommit. e incluso un campo que sea indice puede tomar valor NULL. es un motor de almacenamiento "tonto" que no hace nada. que fijo que te responde. ARCHIVE. CSV. También permite que terceros puedan implementar motores de almacenamiento nuevos para necesidades específicas. su interés primario es para desarrolladores. permite lo típico. Usa Arboles B internamete para los indices (separado de los datos) y tiene herramientas para chequeo y reparación de tablas. La idea de esa arquitectura es hacer una interfaz abstracta con funciones comunes de gestión de datos en el nivel físico. esto significa que estaremos consultando a una bases de datos remota. le preguntas. pero no puede almacenar datos ni recuperarlos. para poder crear bases de datos federadas. Así. facilitando el mantenimiento de los motores de almacenamiento. oye que esta tabla esta en otro lado. Como no almacena ningún dato lógicamente no soporta índices. que guarda cada tabla en un fichero y cada fila de datos es una línea con los datos separados por comas.Motores de almacenamiento El elemento más notable de la arquitectura de MySQL es la denominada arquitectura de motores de almacenamiento reemplazables (pluggable storage engine architecture). BLACKHOLE: El sorprendente uso de este motor es no almacenar los datos sino crear un log con la consulta SQL utilizada. Además. o adaptar el código de los existentes a ciertos requisitos de almacenamiento. pero no permite transacciones. motor completamente trivial. Por ejemplo. un motor de almacenamiento que no implementa bloqueos en la base de datos no debe utilizarse en aplicaciones multi-usuario. solo soporta INSERT's y SELECT's. Este . es decir en nuestro servidor creamos la tabla pero le decimos. Como tal. siempre que escribes datos se comprimen (con zlib).

• • • • modelo tiene ciertas limitaciones. podría ser. Mac OS X feo y Linux AMD64/Alpha. puesto que utiliza árboles B donde. no permite ALTER's ni transacciones. tablas que se guardan en memoria. El motor es independiente de MySQL. MEMORY. una de las bases de datos openSource más famosa y utilizada. por ejemplo. Dado que la forma y tipo de los índices depende mucho de los detalles del almacenamiento físico. Cachés de memoria. No todas las aplicaciones necesitan soporte de transacciones. Un caso para el cual puede ser útil este motor. En consecuencia. pero también consume más tiempo de procesamiento en aplicaciones en las que la concurrencia no es realmente grande. Realiza el bloqueo usando como gradualidad la fila (BDB lo hace a nivel de página. están tanto los datos como el índice primario (lo cual implica que será algo más lento a la hora de recorrerlo secuencialmente) InnoDB. que sentido tiene entonces usar un SGBD? Pues ninguno!. Soporte de transacciones. es el motor más avanzado (junto con BDB) en cuanto a opciones y funcionalidad. es decir mayor salvo casos raros de filas enormes) e incluso soporta lecturas consistentes tanto bloqueantes como no bloqueantes. en cada nodo. Permite transacciones (COMMIT & ROLLBACK) y solo puede ejecutarse en sistemas operativos soportados (Linux x86 y Windows. incluyendo todos los detalles de la representación en disco de la información. juntarás los datos de ambas tablas. no). si quieres un almacenamiento temporal. Almacenamiento físico. La eficiencia de los cachés de datos en memoria depende mucho de cómo procesan los datos las aplicaciones. con las ventajas e inconvenientes que esto pueda acarrear. si tienes dos tablas con motor MyISAM y con la misma estructura. MERGE. al crear una tabla MERGE. Es responsabilidad del motor implementar una política de bloqueos (o no implementar ninguna). Los elementos que puede implementar un motor de almacenamiento son los siguientes: • • • • • • Concurrencia. MySQL . diferentes tablas de log en diferentes servidores y te creas en uno de ellos tablas FEDERATED de esas tablas (que serán MyISAM) y entonces creas una tabla de "log_principal" (usando MERGE) que tendrá el log de todos los servidores. Una estrategia de bloqueos por fila permite una mayor concurrencia. este es facil. una primera tarea de diseño físico en MySQL es la de decidir el motor de almacenamiento más apropiado. arrr marinero. adios datos. si. declarada como restricciones en el DDL de SQL. Soporte de índices. Comprobación de la integridad referencial. cada motor de almacenamiento proporciona sus propios métodos de indexación (aunque algunos como los árboles B casi siempre se utilizan). Como curiosidad decir que su organización de ficheros se basa en solo dos. Permite transacciones seguras (COMMIT y tal) y está orientado a manejar grandes cantidad de datos. es decir. cuando reinicies MySQL. No le encuentro ninguna utilidad la verdad. Berkeley DB.

como cabe esperar. El resultado para MySQL 5. por ejemplo. uno por cada tabla del esquema. incluyendo el motor por defecto y los que no están disponibles con la configuración actual. el nombre de la nueva tabla. como puede ser el uso de múltiples hilos para operaciones paralelas o mejoras de rendimiento para la inserción masiva.. HA_CREATE_INFO *create_info) { . si estamos implementando un gestor de almacenamiento. pero algunos motores de almacenamiento pueden implementar cachés adicionales. que incluye. etc.1. } El parámetro name es.frm. una de las funciones es la que crea una nueva tabla. Otros elementos para ayudar al rendimiento. es el siguiente: . y TABLE es una estructura que representa el esquema de la tabla. TABLE *table_arg. la asociación con índices. La implementación de un gestor de almacenamiento implica escribir un software con una interfaz en lenguaje C. que implemente una biblioteca de funciones (storage engine API) que es la que el servidor MySQL invoca para pedir los servicios al gestor. como la gestión de tipos de datos geoespaciales. La selección debe hacerse una vez tenemos el modelo lógico de la base de datos y conocemos los requisitos de rendimiento y no funcionales de la aplicación o aplicaciones que vamos a construir. Además de lo anterior. int ha_tina::create(const char *name. Las opciones de creación están en create_info.• implementa cachés comunes en el gestor de conexiones y la caché de consultas.. en ficheros denominados nombretabla. restricciones en el tamaño de la tabla. La sentencia SHOW ENGINES nos muestra la lista de motores en MySQL. Por ejemplo. TABLE es una referencia a esa representación. que tiene la siguiente signatura. los motores de almacenamiento pueden implementar características no comunes. ¿Cómo seleccionar el motor de almacenamiento? No hay una receta única que permita definir el motor de almacenamiento. MySQL crea una representación del esquema de las tablas independiente del motor de almacenamiento. o cualquier función adicional específica de cierto tipo de aplicaciones.

hace falta conocer más en profundidad las características de cada uno para tomar decisiones. y mysqldump para hacer copias de seguridad las bases de datos de base de datos o la copia a otro servidor. useful for MEMORY YES temporary tables DEFAU Supports transactions. Los clientes se comunican con el RDBMS de MySQL a través de la interfaz o los servicios públicos. y dirigirnos a alguno de ellos para casos concretos. clientes y usuarios de la consulta. MySQL API C + + y Tcl. No obstante. API DBI para Perl. stored in memory. usuarios de consulta interactuar con el RDBMS de MySQL a través de una interfaz de consulta que es mysql. y en ocasiones es necesario hacer pruebas de rendimiento con varios de ellos para compararlos y seleccionar el que mejor se ajusta a nuestras necesidades. por ejemplo. fault-tolerant. API de Java. Los administradores utilizan la interfaz de administración y servicios públicos. Estos componentes se ilustran los diferentes tipos de usuarios que pueden interactuar con el RDBMS de MySQL. la API de Python. Hay tres componentes en esta capa. memory-based tables FEDERATEDYES Federated MySQL storage engine MRG_MYISA YES Collection of identical MyISAM tables M ISAM NO Obsolete storage engine Tabla 1 Engine De la tabla anterior solo podemos tener nociones iniciales del tipo de gestor. algunas de estas utilidades son mysqladmin que realiza tareas como apagar el servidor y crear o borrar bases de datos.23 with great MyISAM YES performance Hash based. tales como la API de C.Suppor Comment t Default engine as of MySQL 3. row-level locking. PHP API. and InnoDB LT foreign keys BerkeleyDB NO Supports transactions and page-level locking /dev/null storage engine (anything you write to it BLACKHOLEYES disappears) EXAMPLE NO Example storage engine ARCHIVE YES Archive storage engine CSV NO CSV storage engine ndbcluster NO Clustered. . que son los administradores. La interfaz de cliente utiliza las API de MySQL para varios lenguajes de programación diferentes. En MySQL. MySQL es un monitor (programa interactivo) que permite a los usuarios de consulta para emitir sentencias SQL al servidor y ver los resultados. isamchk y myisamchk que ayudan a realizar el análisis de mesa y optimización. así como recuperación de fallos si las tablas se dañan. La capa de aplicación MySQL La capa de aplicación MySQL es donde los clientes y los usuarios interactúan con el RDBMS de MySQL. ndbcluster tiene características únicas si necesitamos soporte para alta disponibilidad.

Estas consultas.0. Una transacción es una sola unidad de trabajo que tiene uno o más comandos de MySQL en la misma. se ha añadido soporte para las transacciones en MySQL. SQL). El administrador de transacciones es responsable de asegurarse de que la transacción se registra y se ejecuta de forma atómica. Ver diccionario detallado Procesador de consultas La gran mayoría de las interacciones en el sistema se producen cuando un usuario desea ver o manipular los datos subyacentes de almacenamiento. se analizan y optimizado por un procesador de consultas.La capa lógica MySQL Se encontró que MySQL tiene de hecho una arquitectura lógica que es prácticamente DentiCal. Por otra parte. Este procesador. el administrador de transacciones también se encarga de resolver las situaciones de estancamiento que se producen. se puede representar como la tubería y la arquitectura de filtro en el sentido de Garlan y Shaw. El Ure arquitecto componente del procesador de consultas es conformado por: • • • • • • • • Precompliador LMD Incorporado Compilador DDL Analizador de consultas Preprocesador de Consultas Seguridad / Integration Manager Optimizador de consultas Motor de ejecución Escalabilidad / evolucionabilidad Administración de transacciones Administrador de transacciones A partir de la versión de MySQL 4.x. Por lo tanto. . el administrador de transacciones es responsable de la expedición del COMMIT y ROLLBACK los comandos SQL. La documentación de MySQL dio una indicación de la manera exacta de estos módulos puede subdividirse en subsistemas organizados en una jerarquía de capas que corresponden a la arquitectura en capas en Garlan y Shaw. que se especifican en un lenguaje de manipulación de datos (es decir. Esta situación puede ocurrir cuando dos transacciones no puede continuar porque cada uno tiene algunos datos que el otro necesita para continuar. Por otra parte. donde el resultado de la componente anterior se convierte en un requisito de entrada o al siguiente componente. Lo hace a través de la ayuda del administrador de registro y el administrador de control de concurrencia. El comando COMMIT se compromete a realizar una transacción.

Recovery Manager El gestor de recuperación es el responsable de la restauración de la base de datos a su estado estable anterior. el administrador de la concurrencia de control rechaza la solicitud hasta que la transacción se completa la primera. Una vez que el bloqueo se adquiere. Desde el gestor de registro de los registros de todas las operaciones realizadas sobre la base de datos (desde el inicio de la vida de la base de datos).una transacción es incompleto hasta que se ha comprometido a. Lo hace mediante la adquisición de bloqueos. Por lo tanto. de la tabla de bloqueo que se almacena en la memoria. El comando ROLLBACK se utiliza cuando se produce un bloqueo durante la ejecución de una transacción. Así. Si una transacción se quedaron incompletos. Este gerente trabaja en conjunto con dos entidades relacionadas con gestor de almacenamiento: el Administrador de recursos y el Administrador de almacenamiento. que se adquiere desde el administrador de búfer y la ejecución de cada operación en el registro. . Si otra transacción trata de manipular los mismos datos bloqueados. Lo hace mediante el registro de la base de datos. la ejecución de cada comando en el archivo de registro se recuperaría la base de datos a su estado estable anterior. Administrador de control de concurrencia El gerente de control de concurrencia es responsable de asegurarse de que las transacciones se realizan por separado y de forma independiente. El resultado de ejecutar este comando es la restauración de la base de datos a su estado estable anterior. en las piezas adecuada de los datos en la base de datos del administrador de recursos. Las operaciones en el registro se almacenan como comandos de MySQL. Administración de almacenamiento El almacenamiento se realiza físicamente en algún tipo de almacenamiento secundario. ejecutar cualquier comando en el registro traerá de vuelta la base de datos a su estado estable anterior. sólo las operaciones en una transacción pueden manipular los datos. Los tampones residen en la memoria principal y virtual y son administrados por un administrador de búfer. sin embargo el acceso dinámico de este medio no es práctico. el comando ROLLBACK que deshacer todos los cambios realizados por esa transacción. todo el trabajo se realiza a través de un número de búferes. Lo hace mediante el almacenamiento en el registro en el disco a través del administrador de búfer. en el caso de un fallo del sistema. Administración de la Recuperación Log Manager El administrador de registro se encarga de registrar e muy operación ejecutada en la base de datos.

El gestor de conexiones La gestión de conexiones es responsable de mantener las múltiples conexiones de los clientes. Un gestor de conexiones inexistente o laxo simplemente crearía una conexión por cada cliente conectado. Buffer Manager El papel del administrador de búfer es asignar los recursos de memoria para el uso de la visualización y manipulación de datos. Todas las solicitudes se realizan desde el Administrador de recursos. los puso en las solicitudes de mesa. Por eso. y solo “de vez en cuando” se utiliza un hilo de ejecución para ejecutar una consulta. el conector Connector/J permite conectarse a MySQL desde cualquier aplicación programada en lenguaje Java. el gestor de conexiones de MySQL puede configurarse para limitar el número de conexiones concurrentes. y crearlas y destruirlas son también procesos costosos. El administrador de búfer toma de las solicitudes con formato y decide la cantidad de memoria para asignar al búfer y cuántos búferes de asignar por solicitud. El Administrador de almacenamiento hace solicitudes a través del controlador de disco subyacente (ya veces el sistema operativo) para recuperar datos del disco físico y informes de vuelta al administrador de búfer.Administrador de Almacenamiento En el nivel inferior existe el Administrador de almacenamiento. Administrador de recursos El propósito del Administrador de recursos es aceptar las peticiones del motor de ejecución. La idea es que muchas aplicaciones abren una conexión y la mantienen abierta y ociosa durante mucho tiempo (por ejemplo. durante toda la sesión de un usuario. que además. típicamente tarda como . Ver diccionario detallado Los conectores Los conectores son bibliotecas en diferentes lenguajes de programación que permiten la conexión (remota o local) con servidores MySQL y la ejecución de consultas. No obstante. El papel del Administrador de almacenamiento es la de mediar entre las peticiones administrador de búfer y almacenamiento secundario. las conexiones consumen recursos de máquina. que de vez en cuando se levanta para diferentes tareas mundanas como tomar café). y utilizando el Java Database Connectivity (JDBC) API. y también implementa un pool de conexiones. Por ejemplo. El Administrador de recursos recibe referencias a los datos dentro de la memoria desde el Administrador de búfer y devuelve estos datos a las capas superiores. y solicitar las tablas desde el Administrador de búfer.

y de este modo. Dado que las conexiones consumen recursos. puede darse servicio a muchas conexiones concurrentes con un número limitado de conexiones que se reutilizan. o quizá se tome una del pool. La autentificación por defecto se basa en el nombre de usuario. El gestor de conexiones también se ocupa de la autentificación de los usuarios. busca la consulta en la caché. En términos por ejemplo. esto quiere decir que cada vez que enviamos una sentencia con llamadas como Statement. donde guarda consultas y sus resultados enteros.close() no siempre determinan el tiempo de vida de una conexión real en MySQL. Además de la reducción en el tiempo de establecimiento de conexión (si se reusa una conexión ya creada del pool). el uso de ciertos índices. o la re-escritura de la consulta en una forma más eficiente. se analiza sintácticamente y se produce una representación intermedia de la misma. Es decir. No tiene sentido mantener una conexión ociosa para cada usuario. y cada vez que una aplicación hace una solicitud. Dado que la optimización de las consultas depende de las capacidades del gestor de almacenamiento que se esté utilizando. la técnica permite limitar el número de conexiones simultáneas. o bien podemos pedirle al servidor ciertas “explicaciones” sobre cómo ha planificado nuestras consultas. antes ni siquiera de plantear la optimización. el optimizador “pregunta” al gestor si soporta ciertas características. para evitarse realizar el trabajo en el caso de que tenga suerte y encuentre la consulta en la caché. la aplicación cliente no es consciente de este mecanismo. La caché de consultas MySQL implementa un caché de consultas.executeQuery() realmente puede que se cree una nueva colección. se le asigna una conexión del pool que no esté ocupada.509. las llamadas a Driver. De aquí proviene la idea de los pools de conexiones: hay un número de conexiones disponibles. que podría acabar en una caída del sistema o un comportamiento impredecible. A partir de esa representación. de las interfaces JDBC. es mejor limitar este número que llevar a una carga excesiva en el servidor. la máquina desde la que se conecta y la password. De este modo. Existe la posibilidad de utilizar ciertas cláusulas en las consultas para ayudar al optimizador en su tarea. El procesamiento y optimización de consultas Cada vez que una consulta llega al gestor de MySQL. .getConnection() y a Connection. para entender mejor su funcionamiento. El servidor puede también configurarse para soportar certificados X.mucho unos milisegundos. que pueden incluir el determinar el orden de lectura de las tablas. el procesador de consultas. Nótese que gracias a los pools de conexiones. Lógicamente. MySQL toma una serie de decisiones. puede decidir el tipo de optimización más adecuado.

Es decir. para la escritura se proporcionan bloqueos exclusivos (exclusive locks). Para complicarlo aún más. el control de concurrencia en MySQL se divide entre el servidor y cada gestor de almacenamiento.)] [table_options] [select_statement] CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(] LIKE old_tbl_name [)]. se le proporciona un bloqueo sobre los mismos.. Lógicamente. hay que tener en cuenta que la obtención y liberación de los bloqueos se realiza continuamente. por ejemplo. varios escritores o un escritor simultáneo con lectores puede producir problemas.3 Sentencias CREATE TABLE en MySQL CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition. y esto produce una sobrecarga en el procesamiento dentro del servidor. Sin embargo. La idea es muy simple. puede que una transacción implique más de una base de datos. de modo que para la lectura se proporcionan bloqueos compartidos (shared locks).El Control de Concurrencia El control de concurrencia en un gestor de bases de datos es simplemente el mecanismo que se utiliza para evitar que lecturas o escrituras simultáneas a la misma porción de datos terminen en inconsistencias o efectos no deseados. hay diferentes políticas de bloqueo. a más de un servidor (transacciones distribuidas). La recuperación permite “volver hacia atrás” (rollback) partes de una transacción. Por eso. el servidor anulará el efecto parcial de la parte que ya haya sido ejecutada. y en ocasiones. si hay algún problema y parte de la consulta o algunas de las consultas no consiguen llevarse a cabo.. El mecanismo que se utiliza para controlar este acceso es el de los bloqueos (locks). Además. 3. varias aplicaciones que quieran leer simultáneamente no tienen ningún problema en hacerlo. . cada vez que una aplicación quiere acceder a una porción de los datos.. siempre que los gestores de almacenamiento utilizados en las bases de datos implicadas también lo soporten. ¿es mejor bloquear cada tabla completa afectada o solo las filas de la tabla a las que quiere acceder una consulta?. Aunque la idea parece simple. MySQL proporciona soporte para todos estos tipos de transacciones. Dada la existencia de diferentes técnicas. La gestión de transacciones y recuperación La gestión de transacciones permite dotar de semántica “todo o nada” a una consulta o a un conjunto de consultas que se declaran como una sola transacción.

) SET(value1....Tipos de Datos: | | | | | | | | | | | | | | | | | | | | | | | | | | | spatial_type TINYINT[(length)] [UNSIGNED] [ZEROFILL] SMALLINT[(length)] [UNSIGNED] [ZEROFILL] MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL] INT[(length)] [UNSIGNED] [ZEROFILL] INTEGER[(length)] [UNSIGNED] [ZEROFILL] BIGINT[(length)] [UNSIGNED] [ZEROFILL] REAL[(length.value3.decimals)] [UNSIGNED] [ZEROFILL] DOUBLE[(length.decimals)] [UNSIGNED] [ZEROFILL] FLOAT[(length.decimals) [UNSIGNED] [ZEROFILL] NUMERIC(length..value3..value2.) CREATE TABLESPACE en MySQL CREATE TABLESPACE tablespace_name ADD DATAFILE 'file_name' USE LOGFILE GROUP logfile_group [EXTENT_SIZE [=] extent_size] [INITIAL_SIZE [=] initial_size] [AUTOEXTEND_SIZE [=] autoextend_size] [MAX_SIZE [=] max_size] [NODEGROUP [=] nodegroup_id] [WAIT] [COMMENT [=] comment_text] ENGINE [=] engine_name CREATE INDEX en MySQL .value2.decimals) [UNSIGNED] [ZEROFILL] DATE TIME TIMESTAMP DATETIME CHAR(length) [BINARY | ASCII | UNICODE] VARCHAR(length) [BINARY] TINYBLOB BLOB MEDIUMBLOB LONGBLOB TINYTEXT [BINARY] TEXT [BINARY] MEDIUMTEXT [BINARY] LONGTEXT [BINARY] ENUM(value1.decimals)] [UNSIGNED] [ZEROFILL] DECIMAL(length..

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name.* TO 'dummy'@'localhost'. Primera base de datos de la industria capaz de gestionar tanto datos relacionales convencionales como datos XML en formato nativo sin necesidad de transformarlos Además de la capacidad XML nativa.PROCESS ON *. GRANT RELOAD. GRANT ALL PRIVILEGES ON *. audio o vídeo o páginas Web.... CREAR NUEVAS CUENTAS DE USUARIO en MySQL mysql> -> mysql> -> mysql> mysql> GRANT ALL PRIVILEGES ON *. o incluso dónde residen físicamente.* TO 'monty'@'localhost' IDENTIFIED BY 'some_pass' WITH GRANT OPTION. 4. de forma homogénea. COMPARACIONES IBM DB2 • • • • Capacidad para trabajar con todo tipo de datos. sea cual sea su formato.) index_col_name: col_name [(length)] [ASC | DESC ejemplo:  CREATE INDEX part_of_name ON customer (name(10)). GRANT USAGE ON *. la versión 9 de IBM DB2 incluye otros dos significativos avances como son la compresión de almacenamiento avanzada y capacidades mejoradas para la gestión autónoma de datos Diseñada para convertirse en el motor de información de preferencia para entornos SOA y para lograr el acceso a los datos tanto si están almacenados en bases de datos convencionales como en tablas de Oracle o MySQL .* TO 'monty'@'%' IDENTIFIED BY 'some_pass' WITH GRANT OPTION.* TO 'admin'@'localhost'. ya sea tanto texto como imágenes.

transacción en dos fases como parte de esto. Ofrece capacidades de recuperación mucho más completas. DB2 Express-C aparte de ser mas ligero es mas rapido asi como una mejor performance en el uso de mensajes xml( en el blog utiliza iTunes para utilizlar la funionalidad llamada pureXML de DB2). Soporte a VARCHAR INFORMATION_SCHEMA Modo Strict Soporte X/Open XA de transacciones distribuidas. UNIX y Windows. Soporte a multiplataforma. el estándar SQL o los tres simultáneamente para consultar datos. XPath. y varias extensiones. utilizando el motor InnoDB de Oracle. Las limitaciones de almacenamiento en una máquina se multiplican acorde con el número de servidores en el clúster. ofreciendo así mayor control sobre quién tiene acceso a la información IBM DB2 9 cuenta con un avanzado sistema de partición de datos que permite enlazar hasta un máximo de 999 servidores en clúster. . robustas y versátiles que cualquier otro servidor de datos anterior IBM ha implementado una nueva función de seguridad para el administrador que. que aporta una capacidad de compresión de almacenamiento similar a la de los grandes servidores corporativos (mainframes) para entornos Linux. pudiendo así alcanzar hasta 16 Tb por partición multiplicado por hasta 999 máquinas. por primera vez. Procedimientos almacenados Disparadores (triggers).• • • • • • • • • Cuenta con compresión automática de almacenamiento. Además de gran funcionalidad. Los desarrolladores de aplicaciones tendrán la flexibilidad de utilizar XQuery. manejando una sola base de datos en paralelo. Cursores Vistas actualizables. MySQL • • • • • • • • • • Un amplio subconjunto de ANSI SQL 99. servicios web y la capacidad para crear aplicaciones y páginas web sin necesidad de escribir código. permite unificar distintos privilegios bajo un solo usuario. un potente lenguaje estándar de la industria que ha sido diseñado especialmente para procesar datos XML. DB2 9 incluye también soporte para Visual Studio 2005. DB2 9 es la primera base de datos que soporta simultáneamente los tres sistemas más usados de particionamiento: range partitioning. denominada “Venos”. multi-dimensional clustering y hashing. DB2 9 ofrece mejoras para reducir significativamente la complejidad y el tiempo que los desarrolladores necesitan para crear aplicaciones que puedan acceder tanto a repositorios de datos relacionales como a repositorios XML. La tecnología nativa XML de esta nueva base de datos también da soporte a XQuery.

En sistemas Windows se pueden conectar usando named pipes y en sistemas Unix usando ficheros socket Unix.1. 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. Usa GNU Automake.2). los clientes y servidores Windows se pueden conectar usando memoria compartida. En MySQL 5. Conforme a las reglas ACID usando los motores InnoDB. indexing y búsqueda de campos de texto completos usando el motor de almacenamiento MyISAM. Se permiten hasta 64 índices por tabla (32 antes de MySQL 4. Comandos Principales MySQL create database drop database drop table delete DB2 create database drop database drop table delete . MySQL Server tiene bases de datos de hasta 50 millones de registros. MySQL contiene su propio paquete de pruebas de rendimiento proporcionado con el código fuente de la distribución de MySQL.• • • • • • • • • • • • • • • • • • • • • • • • Motores de almacenamiento independientes (MyISAM para lecturas rápidas. y Libtool para portabilidad Uso de multihilos mediante hilos del kernel. Query caching Sub-SELECTs (o SELECTs anidados). Los clientes se conectan al servidor MySQL usando sockets TCP/IP en cualquier plataforma. BDB Y Cluster. Soporta gran cantidad de datos. Réplica con un maestro por esclavo. Embedded database library Soporte completo para Unicode. una herramienta GPL Completo soporte para operadores y funciones en cláusulas select y where. 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. Cada índice puede consistir desde 1 hasta 16 columnas o partes de columnas.2). varios esclavos por maestro. BDB y Cluster. InnoDB para transacciones e integridad referencial). Completo soporte para cláusulas group by y order by.1.1. Transacciones con los motores de almacenamiento InnoDB. sin soporte automático para múltiples maestros por esclavo. El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4. Autoconf. Soporte para SSL. Shared-nothing clustering through MySQL Cluster. puntos de recuperación (savepoints) con InnoDB.

 INSERT: Adiciona información a una tabla.  CONNECT / db2 connect: Inicia una sesion de usuario.  RENAME: .  UPDATE: modifica información en una tabla.alter table connect update select create user insert rename alter database start stop -Start shutdown alter table db2 connect update select create user insert rename alter database db2start db2stop db2icrt activate database deactivate database  CREATE DATABASE: Crea una base de datos  DROP DATABASE: Elimina una base de datos  DROP TABLE: Elimina una tabla  DELETE: Elimina informacion relativa en una tabla.  ALTER TABLE: Cambia las propiedades de una table existente.  SELECT: Recupera la informacion de una o más tablas especificando criterios de selección. vista.  CREATE USER: Crea un usuario. etc.

MY SQL MINIMUN REQUIREMENTS . y/o modificar los archivos asociados.  DB2START / START INSTANCE: Permite iniciar una instancia  DB2STOP / STOP INSTANCE: Detener una instancia  DB2ICRT / CREATE INSTANCE: Crea una instancia  START / ACTIVATE DATABASE / START: Inicia la base de datos  SHUTDOWN / DEACTIVATE DATABASE / Cierra la base de datos. secuencia.  ALTER DATABASE: Abre una base de datos existente. etc. vista.Renombra una tabla.

x HP-UX 10. 11. DB2 WINDOWS DB2 UNIX .5 Solaris 2.1 and 4.x.3/1. 5.x BSDI 3.x OpenBSD 2. 4.x FreeBSD 3.4 Intel.20.5+ Digital Unix 4.3 Alpha SCO Open Server. 5. 3.0.1 SGI Irix 6.OS Mac OSX AIX 4.x.x NetBSD 1. 200 MB recommended for Windows.5 Memory Hard Drive 32 MB of RAM 60 to 85 MB depending on the components and operating system. 1. UnixWare 7.x.

.

.

.

.

DB2 EXPRESS C VS MYSQL COMMUNITY .

Encriptaci Protecci ó n d e r e d n a t i v a Compatib Reglas de c o m p l e j i d a d d e Acceso Usable sin Auditoria Recursos Separació Certificació o n n c t r a s e ñ a s d e s e g u r i d a d DB2 MyS DB2 QL MyS QL SI SI SI SI SI SI SI SI SI SI SI SI SI SI SI SI SI .

258 TB Max rowsize 32.258 TB DB2 Max char Size 32 KB Max Number size 64 bits 126 bits Min DATE Value 0001 0001 Max DATE Value 9999 9999 Max Column Name Size 128 128 MySQL 2 GB .677 B Unlimit ed Max columns per row 1012 30000 Max Blob /Clobsize 2 GB 2 GB MySQL 524.Max DB Size DB2 512 TB Max Table size 512 TB 524.

estos registran cambios de base de datos. o entradas inválidas. entre otras aplicaciones web • Se debe recuperar la BD lo más rápidamente posible e intentar que exista una pérdida de datos mínima. proporciona un juego de datos de acceso de las interfaces para los diferentes tipos de usuarios y aplicaciones. acceso desautorizado. . • DB2 proporciona una colección de herramientas y los wizard para simplificar la construcción y desplagamiento de aplicaciones para DB2 para Microsoft Windows que usa SQL incluido dentro del Microsoft C++ Integrated Visual el Ambiente de Desarrollo. o entradas inválidas proporcionando • MySQL es una dbms open souce por lo tanto se puede modificar el código para hace mejoras necesarias • MySQL fue en principio diseñado para manejar bases de datos medianas o pequeñas • MySQL se relaciona mejor con aplicaciones PHP. Usted puede realizar la administración de la DB2 desde cualquier puesto de trabajo. APACHE. • DB2 utiliza una combinación de seguridad externa y control interno de acceso a proteger datos. • DB2 de IBM es el primer y el único servidor de bases de datos del mundo cuya escalabilidad va desde un computador de bolsillo a una laptop • DB2 guarda sus datos contra la pérdida. también guarda sus datos contra la pérdida. acceso desautorizado.CONCLUSIONES • Todas las bases de datos tienen los archivos de log asociados.

es/~acastan/textos/Administracion%20de %20MySQL.6.php • • • • • • • • • • • • .html http://www.net/MySQL/MySQL+vs+MS+SQL+Server http://bicosyes.0/es/features.0/es/table-size.com/mysqlTutorial/mysqlinsert.shtml http://www.mysql.com/motores-de-almacenamiento-de-mysql/ http://www.com/doc/falcon/es/se-falcon-createtable.mysql.html http://www.uwaterloo.com/doc/refman/5.com/colaboraciones/motoresMySQL.treeweb.iessanvicente.ht http://swik.mysql.com/doc/refman/5.com/cursos/mostrar.com/db2 www-306. BIBLIOGRAFIA • • www.ca/~mrbannon/cs798/assignment_0 1/mysql.ibm.php? id=66&texto=Oracle www.es/blog-tecnico-mysql-motores-dealmacenamiento http://www.xtec.html http://dev.uaem.lawebdelprogramador.ibm.com/software/es/demos/db2.pdf http://dev.pdf http://dev.tizag.pd f http://www.swen.mx/posgrado/mcruz/cursos/miic/MySQL.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->