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

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

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

Rollforward recovery. Debe incluir un horario de respaldo y. 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. Pueden dividirse las bases de datos de DB2 por computadoras independientes múltiples conectadas por un LAN o por secciones. agregar. manejar todos los servidores de un solo sitio. desarrollar las aplicaciones. DB2 incluye herramientas gráficas que le permiten poner a punto la actualización. • . acceso a los servidores de DB2 remotos. Se puede realizar la administración de la DB2 desde cualquier puesto de trabajo. OS/2. en el caso de sistemas de base de datos distribuidos. acceso desautorizado. incluyendo UNIX. y poner al día los datos en las bases de datos locales y remotos. anular. Este producto le permite distribuir y acceder a los datos por una red de sistemas. Se puede administrar la BD incluso desde un navegador (Web Browser). y OS/390. Los usuarios pueden preguntar. Este producto guarda sus datos contra la pérdida. DB2 tiene tres tipos de recuperación: • Version recovery. AS/400. 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. DB2 proporciona un juego de datos de acceso de las interfaces para los diferentes tipos de usuarios y aplicaciones.DB2 está disponible para múltiples sistemas de operaciones. No importa si la base de datos es local o remota. También significa que los funcionamientos pueden correr en paralelo en las particiones de la base de datos individuales. código de procedimiento almacenado en biblioteca de sistema de operación. incluye las copias de base de datos cuando los servidores o nodos están agregados o eliminados. La estrategia global debe incluir los procedimientos para los scripts de comando de recuperación. reduciendo el tiempo de ejecución. y proceso de pregunta SQL. aplicaciones. 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. Microsoft Windows. funciones definidas por usuario.

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

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

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

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

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

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

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

Usuarios ingenuos son usuarios sofisticados. Usuarios sofisticados interactúan con el sistema sin necesidad de utilizar ningún tipo de aplicación. sino que forma sus solicitudes directamente con el uso de un lenguaje de consulta de bases de datos. Los administradores de base de datos tiene el control total sobre el . que interactúan con el sistema mediante la invocación de una de los programas permanentes de aplicación que han sido previamente escrito. sino que básicamente proporciona los medios por el cual el mundo exterior puede interactuar con el servidor de base de datos. En general. 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. 2.1. 3.3. se ha encontrado que los usuarios puedan se clasifican en cuatro grupos principales: 1. 4.1 Capa de Aplicación La capa de aplicación representa la interfaz para todos los usuarios del sistema.

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

que se mantiene en el almacenamiento secundario y acceder a través del gestor de almacenamiento. Diccionario de datos. en la siguiente sección. Ver diccionario detallado . 5. La información del registro. que almacenan los datos del usuario en la base de datos 2. que proporcionan un acceso rápido a los elementos de datos que contienen valores particulares 4.1. Los archivos de datos. Índices. que almacena metadatos acerca de la estructura de la base de datos 3. Los principales tipos de datos almacenados en el sistema son: 1. 3. los subsistemas de MySQL estos elementos serán analizados en detalle.3 Capa Física El RDBMS se encarga de la conservación de una variedad de información. 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. Datos estadísticos. 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 memoria asignada incluye buffer pools.2 Arquitectura DB2  Instance shared memory: Este se refiere al administrador global de memoria compartida de la base de datos.3. utility heap. . database heap. el cual es asignado cuando la base de datos es activada o conectada por primera vez. locklist. package cache y catalog cache.  Database shared memory: Este se refiere a la memoria global 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.

1. 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. 4. DB2 System Controller (db2sysc): Procesador principal del DB2. 1. 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.  Nivel de Instancia: Estos son los procesos que se inicializan al momento de comenzar la instancia: 1. 3. 3. 2. restart recovery y el roll forward. 2. DB2 Prefetcher (db2pfchr): Recupera las páginas del disco y los coloca al buffer pool justo antes de ser necesitada. DB2 Log Writer (db2logw): Equivalente al proceso LogWriter de Oracle. DB2 Deadlock Detector (db2dlock): Proceso que detecta los Deadlock. DB2 Page Cleaner (db2pclnr): Equivalente al proceso DBWR de Oracle. 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 Watchdog (db2wdog): Proceso padre para todos los procesos. DB2 Log Reader (db2loggr): Similar al proceso PMON de Oracle . 1. Este proceso lee los log files durante el rollback. DB2 Daemon Spawner (db2gds): Procesador daemon global iniciado por cada instancia (solo en UNIX). Cada aplicación conectada a la base de datos tiene memoria asignada a sí misma. .

1 Funcionamiento .2.3.

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

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

2. Se usa para acelerar la recuperación del TableSpace Rollforward. 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. • • db2cart. los hilos de rosca y los procesos siguientes se pueden comenzar para realizar varias tareas: • • • • db2resyn. que maneja peticiones paralelas de los nodos alejados (usados solamente en un ambiente de base de datos repartido). al tener acceso a una base de datos configurada con LOGRETAIN permitido. pero con USEREXIT inhabilitados • db2panic. el perro guardián en sistemas basados en UNIX que maneja terminaciones anormales db2fcmdm.en el directorio de base de datos. 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. para los ficheros de diario del formato.2 Instancia . el spawner global del demonio en sistemas basados en UNIX que comienza nuevos procesos db2wdog. el regulador paralelo del sistema. para archivar ficheros de diario cuando tener acceso a una base de datos configurada con USEREXIT permitió db2fmtlg. También. el agente del pánico. el agente de la RESYNC que explora la lista global de la RESYNC db2gds.

.

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

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. 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. Sin embargo. se utiliza el comando DROP DATABASE. Ficheros : Son los archivos de datos donde se almacenarán la información. . memorias. atendiendo a su contenido. Las bases de datos de una instancia no interactúan normalmente entre ellas. Dispositivos: Lugar donde se puede almacenar la información como discos duros. si una aplicación necesita interactuar con más de una base de datos. etc. propósito o a cualquier criterio que decida el usuario. Almacenamiento Físico Contenedores: • Asignación de almacenamiento físico tal como un archivo o un dispositivo. Para eliminar una base de datos. pero cada container puede pertenecer solo a un table space Directorio: Agrupación de archivos de datos.datos usando el comando CREATE DATABASE. este requerimiento puede ser obtenido por medio de la habilitación de un soporte federal.

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

pero requiere de cierta administración. 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.  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). dos bases de datos diferentes pueden tener tablespaces del mismo nombre. Estas son: SYSCATSPACE: Es el tablespace de catalogo. Por ejemplo. los tablespaces no son compartidos entre ellos. El nombre de esta tabla puede ser cambiada. SMS (System Managed Space): • • • El SO controla el espacio Un objeto no puede estar en dos tablespaces distintos. porque su crecimiento no es automático.   TEMPSPACE1: Es el tablespace del sistema temporal usado para realizar operaciones tales como JOIN y SORT. Este tipo de tablespace permite el mejor funcionamiento. Los DMS tablespaces son manejados por el DB2. y pueden ser archivos o dispositivos brutos. lo que indica que los SMS dan un buen funcionamiento con una administración mínima. El número de contenedores es determinado al crear el tablespace y no . contiene la metadata. 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.En DB2. Pueden crecer automáticamente cuando es necesario. Debido a que las bases de datos en DB2 son unidades independientes. se necesita especificar antes ded tiempo la cantidad de espacio que se desea asignar al tablespace.

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

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

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

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

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

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

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

así como recuperación de fallos si las tablas se dañan. tales como la API de C. por ejemplo. MySQL es un monitor (programa interactivo) que permite a los usuarios de consulta para emitir sentencias SQL al servidor y ver los resultados. algunas de estas utilidades son mysqladmin que realiza tareas como apagar el servidor y crear o borrar bases de datos. Estos componentes se ilustran los diferentes tipos de usuarios que pueden interactuar con el RDBMS de MySQL. y dirigirnos a alguno de ellos para casos concretos. . En MySQL. usuarios de consulta interactuar con el RDBMS de MySQL a través de una interfaz de consulta que es mysql. 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. 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. fault-tolerant. isamchk y myisamchk que ayudan a realizar el análisis de mesa y optimización. row-level locking.23 with great MyISAM YES performance Hash based. API de Java. MySQL API C + + y Tcl. stored in memory. Los administradores utilizan la interfaz de administración y servicios públicos. Hay tres componentes en esta capa. Los clientes se comunican con el RDBMS de MySQL a través de la interfaz o los servicios públicos. La interfaz de cliente utiliza las API de MySQL para varios lenguajes de programación diferentes. No obstante. que son los administradores. useful for MEMORY YES temporary tables DEFAU Supports transactions. 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.Suppor Comment t Default engine as of MySQL 3. API DBI para Perl. 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. PHP API. hace falta conocer más en profundidad las características de cada uno para tomar decisiones. la API de Python. clientes y usuarios de la consulta. y mysqldump para hacer copias de seguridad las bases de datos de base de datos o la copia a otro servidor. ndbcluster tiene características únicas si necesitamos soporte para alta disponibilidad.

El comando COMMIT se compromete a realizar una transacción. se puede representar como la tubería y la arquitectura de filtro en el sentido de Garlan y Shaw. 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. 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.La capa lógica MySQL Se encontró que MySQL tiene de hecho una arquitectura lógica que es prácticamente DentiCal.0. se analizan y optimizado por un procesador de consultas.x. SQL). . el administrador de transacciones también se encarga de resolver las situaciones de estancamiento que se producen. Por otra parte. Por otra parte. Lo hace a través de la ayuda del administrador de registro y el administrador de control de concurrencia. El administrador de transacciones es responsable de asegurarse de que la transacción se registra y se ejecuta de forma atómica. Estas consultas. donde el resultado de la componente anterior se convierte en un requisito de entrada o al siguiente componente. Este procesador. que se especifican en un lenguaje de manipulación de datos (es decir. Una transacción es una sola unidad de trabajo que tiene uno o más comandos de MySQL en la misma. 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. se ha añadido soporte para las transacciones en MySQL. Esta situación puede ocurrir cuando dos transacciones no puede continuar porque cada uno tiene algunos datos que el otro necesita para continuar. Por lo tanto. el administrador de transacciones es responsable de la expedición del COMMIT y ROLLBACK los comandos SQL.

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

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. típicamente tarda como . 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. y solicitar las tablas desde el Administrador de búfer. las conexiones consumen recursos de máquina. 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. y también implementa un pool de conexiones. y solo “de vez en cuando” se utiliza un hilo de ejecución para ejecutar una consulta. El gestor de conexiones La gestión de conexiones es responsable de mantener las múltiples conexiones de los clientes. Todas las solicitudes se realizan desde el Administrador de recursos. y crearlas y destruirlas son también procesos costosos. El papel del Administrador de almacenamiento es la de mediar entre las peticiones administrador de búfer y almacenamiento secundario. que además. Administrador de recursos El propósito del Administrador de recursos es aceptar las peticiones del motor de ejecución.Administrador de Almacenamiento En el nivel inferior existe el Administrador de almacenamiento. Por ejemplo. 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. 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. el gestor de conexiones de MySQL puede configurarse para limitar el número de conexiones concurrentes. No obstante. Un gestor de conexiones inexistente o laxo simplemente crearía una conexión por cada cliente conectado. que de vez en cuando se levanta para diferentes tareas mundanas como tomar café). el conector Connector/J permite conectarse a MySQL desde cualquier aplicación programada en lenguaje Java. y utilizando el Java Database Connectivity (JDBC) API. Por eso. los puso en las solicitudes de mesa. 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.

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

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

value2.value3.decimals)] [UNSIGNED] [ZEROFILL] DECIMAL(length...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] DOUBLE[(length...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.decimals) [UNSIGNED] [ZEROFILL] NUMERIC(length..decimals)] [UNSIGNED] [ZEROFILL] FLOAT[(length.) SET(value1..) 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 .value3.value2.

de forma homogénea..CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name.. audio o vídeo o páginas Web. 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 . GRANT RELOAD. 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. COMPARACIONES IBM DB2 • • • • Capacidad para trabajar con todo tipo de datos.* TO 'monty'@'%' IDENTIFIED BY 'some_pass' WITH GRANT OPTION.* TO 'monty'@'localhost' IDENTIFIED BY 'some_pass' WITH GRANT OPTION. sea cual sea su formato. GRANT ALL PRIVILEGES ON *.PROCESS ON *.) index_col_name: col_name [(length)] [ASC | DESC ejemplo:  CREATE INDEX part_of_name ON customer (name(10)). o incluso dónde residen físicamente.* TO 'dummy'@'localhost'. ya sea tanto texto como imágenes. 4. CREAR NUEVAS CUENTAS DE USUARIO en MySQL mysql> -> mysql> -> mysql> mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost'. GRANT USAGE ON *..

permite unificar distintos privilegios bajo un solo usuario. por primera vez. utilizando el motor InnoDB de Oracle. 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. XPath. Soporte a VARCHAR INFORMATION_SCHEMA Modo Strict Soporte X/Open XA de transacciones distribuidas. multi-dimensional clustering y hashing. MySQL • • • • • • • • • • Un amplio subconjunto de ANSI SQL 99. La tecnología nativa XML de esta nueva base de datos también da soporte a XQuery.• • • • • • • • • Cuenta con compresión automática de almacenamiento. DB2 9 es la primera base de datos que soporta simultáneamente los tres sistemas más usados de particionamiento: range partitioning. servicios web y la capacidad para crear aplicaciones y páginas web sin necesidad de escribir código. 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). . el estándar SQL o los tres simultáneamente para consultar datos. manejando una sola base de datos en paralelo. 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. un potente lenguaje estándar de la industria que ha sido diseñado especialmente para procesar datos XML. Además de gran funcionalidad. DB2 9 incluye también soporte para Visual Studio 2005. denominada “Venos”. y varias extensiones. Los desarrolladores de aplicaciones tendrán la flexibilidad de utilizar XQuery. Soporte a multiplataforma. 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. Cursores Vistas actualizables. pudiendo así alcanzar hasta 16 Tb por partición multiplicado por hasta 999 máquinas. UNIX y Windows. Ofrece capacidades de recuperación mucho más completas. Las limitaciones de almacenamiento en una máquina se multiplican acorde con el número de servidores en el clúster. transacción en dos fases como parte de esto. Procedimientos almacenados Disparadores (triggers).

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

 CREATE USER: Crea un usuario.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.  INSERT: Adiciona información a una tabla.  RENAME: . vista.  UPDATE: modifica información en una tabla.  CONNECT / db2 connect: Inicia una sesion de usuario.  SELECT: Recupera la informacion de una o más tablas especificando criterios de selección. etc.

 ALTER DATABASE: Abre una base de datos existente.  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. MY SQL MINIMUN REQUIREMENTS . y/o modificar los archivos asociados.Renombra una tabla. etc. vista. secuencia.

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

.

.

.

.

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 .

Max DB Size DB2 512 TB Max Table size 512 TB 524.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.

proporciona un juego de datos de acceso de las interfaces para los diferentes tipos de usuarios y aplicaciones.CONCLUSIONES • Todas las bases de datos tienen los archivos de log asociados. . también guarda sus datos contra la pérdida. Usted puede realizar la administración de la DB2 desde cualquier puesto de trabajo. acceso desautorizado. APACHE. acceso desautorizado. • 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. o entradas inválidas. • 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. • DB2 utiliza una combinación de seguridad externa y control interno de acceso a proteger datos. 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. estos registran cambios de base de datos. 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.

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

Sign up to vote on this title
UsefulNot useful