SlideShare una empresa de Scribd logo
1 de 58
MySQL
ANDRES FELIPE LONDOÑO O.
CRISTIAN ANDREY OVIEDO P.
INTRODUCCION

Es un sistema de gestión de bases de datos
relacional, fue creada por la empresa sueca
MySQL AB, la cual tiene el copyright del
código fuente del servidor SQL, así como
también de la marca.
MySQL es un software de código abierto,
licenciado bajo la GPL de la GNU, aunque
MySQL AB distribuye una versión comercial, en
lo único que se diferencian, es en el soporte
técnico que se ofrece, y la posibilidad de
integrar este gestor en un software propietario,
ya que de otra manera, se vulneraría la licencia
GPL.
El lenguaje de programación que utiliza MySQL
es Structured Query Language (SQL) que fue
desarrollado por IBM en 1981.
OBJETIVO GENERAL

• Conocer e identificar las características
  principales del motor de la base de datos
  MySQL
Objetivos específicos

• Conocer la historia y el mejoramiento que ha
  tenido el motor.
• Conocer las principales sintaxis utilizadas por
  el motor.
• Diferenciar las ventajas competitivas con
  respecto a los demás motores.
HISTORIA DEL PROYECTO
• SQL fue comercializado por primera vez en
  1981 por IBM.
• Primeras versiones: SQL:92, SQL:99, SQL:2003.
  no eran flexibles, ni rápidos.
• El prefijo My apareció aproximadamente hace
  10 años.
• Sakila.
• MySQL es una marca registrada de MySQL AB.
CARACTERÍSTICAS
• Inicialmente, MySQL carecía de algunos
  elementos esenciales en las bases de datos
  relacionales, tales como integridad referencial y
  transacciones.
• Las principales características son:
• El principal objetivo de MySQL es velocidad y
  robustez.
• Soporta gran cantidad de tipos de datos para las
  columnas.
• Gran portabilidad entre sistemas, puede trabajar
  en distintas plataformas y sistemas operativos.
• Cada base de datos cuenta con 3 archivos:
  Uno de estructura, uno de datos y uno de
  índice y soporta hasta 32 índices por tabla.
• Aprovecha la potencia de sistemas
  multiproceso, gracias a su implementación
  multihilo.
• Flexible sistema de contraseñas (password) y
  gestión de usuarios, con un muy buen nivel de
  seguridad en los datos.
• El servidor soporta mensajes de error en
  distintas lenguas
VENTAJAS
• Velocidad al realizar las operaciones.
• Bajo costo en requerimientos para la
  elaboración de bases de datos.
• Facilidad de configuración e instalación.
• Soporta gran variedad de Sistemas Operativos
• Baja probabilidad de corromper datos, incluso
  si los errores no se producen en el propio
  gestor, sino en el sistema en el que está.
• Conectividad y seguridad
DESVENTAJAS

• Un gran porcentaje de las utilidades de MySQL
  no están documentadas.
• No es intuitivo, como otros programas
  (ACCESS).
FUNCIONES BÁSICAS
TIPOS DE DATOS ACEPTADOS POR EL MOTOR

          Tipo de
 Grupo                                   Intervalo                          Almacenamiento
           dato

                      De -263 (-9.223.372.036.854.775.808) a 263 - 1
           bigint                                                               8 bytes
                               (9.223.372.036.854.775.807)


            int      De -231 (-2.147.483.648) a 231 - 1 (2.147.483.647)         4 bytes


Numéricos
 exactos smallint           De -215 (-32.768) a 215 - 1 (32.767)                2 bytes



          tinyint                        De 0 a 255                             1 byte


                    Tipo de datos entero que puede aceptar los valores 1,
            bit                                                                 2 bytes
                                          0 ó NULL
Grupo      Tipo de dato                            Intervalo                           Almacenamiento


                                p (precisión): el número total máximo de dígitos
                                decimales que se puede almacenar, tanto a la
                                izquierda como a la derecha del separador decimal.
                                La precisión debe ser un valor comprendido entre 1 y
                                la precisión máxima de 38. La precisión
              decimal,          predeterminada es 18.
                                                                                         Precisión 1 - 9: 5
              numeric,          s (escala): el número máximo de dígitos decimales
                                                                                              bytes
            decimal (p, s)      que se puede almacenar a la derecha del separador
Numéricos                       decimal. La escala debe ser un valor comprendido
 exactos                        entre 0 y p. Sólo es posible especificar la escala si se
                                ha    especificado     la    precisión.    La    escala
                                predeterminada es 0.
                                Con precisión máxima 1038 +1 y 1038 - 1

                             Tipos de datos que representan valores monetarios o de
               money                moneda: de -922.337.203.685,4775808 a                     8 bytes
                                            922.337.203.685,4775807

            smallmoney                  De - 214,7483648 a 214,7483647                        4 bytes
Grupo        Tipo de dato                            Intervalo                            Almacenamiento

                                   De - 1,79E+308 a -2,23E-308, 0 y de 2,23E-308 a          Depende del valor
                   float
 Numéricos                                           1,79E+308                                   de n
aproximados
                               De - 3,40E + 38 a -1,18E - 38, 0 y de 1,18E - 38 a 3,40E +
                   real                                                                         4 Bytes
                                                           38

                 datetime      Del 1 de enero de 1753 hasta el 31 de diciembre de 9999
Fecha y hora
               smalldatetime      Del 1 de enero de 1900 hasta el 6 de junio de 2079


                                Caracteres no Unicode de longitud fija, con una longitud
                 char (n)                                                                        n bytes
                                    de n bytes. n debe ser un valor entre 1 y 8.000


                               Caracteres no Unicode de longitud variable. n indica que el
Cadenas de      varchar (n)                                                                n bytes (aprox.)
                                tamaño de almacenamiento máximo es de 231 - 1 bytes
caracteres


                                          En desuso, sustituido por varchar.
                   text         Datos no Unicode de longitud variable con una longitud máx. bytes (aprox.)
                                    máxima de 231 - 1 (2.147.483.647) caracteres
Tipo de
  Grupo                                            Intervalo                               Almacenamiento
               dato

                         Datos de carácter Unicode de longitud fija, con n caracteres. n
             nchar (n)                                                                       2 * n bytes
                                   debe estar comprendido entre 1 y 4.000


Cadenas de nvarchar Datos de carácter Unicode de longitud variable. n indica que el         2 * n bytes + 2
caracteres    (n)       tamaño máximo de almacenamiento es 231 - 1 bytes                         bytes
 único de

                                    En desuso, sustituido por nvarchar.
             ntext (n)   Datos Unicode de longitud variable con una longitud máxima          2 * n bytes
                                   de 230 - 1 (1.073.741.823) caracteres


                          Datos binarios de longitud fija con una longitud de n bytes,
            binary (n)                                                                         n bytes
                               donde n es un valor que oscila entre 1 y 8.000


 Cadenas     varbinary Datos binarios de longitud variable. n indica que el tamaño de
                                                                                               n bytes
 binarias       (n)            almacenamiento máximo es de 231 - 1 bytes

                                     En desuso, sustituido por varbinary.
              image        Datos binarios de longitud variable desde 0 hasta 231 - 1
                                            (2.147.483.647) bytes
Tipo de
  Grupo                                      Intervalo                        Almacenamiento
                dato




                         Tipo de datos para las variables o para los
                         parámetros de resultado de los procedimientos
               cursor    almacenados que contiene una referencia a un
                         cursor. Las variables creadas con el tipo de datos
                         cursor aceptan NULL

Otros tipos
 de datos

                        Tipo de datos que expone números binarios únicos
                        generados automáticamente en una base de datos.
              timestamp El tipo de datos timestamp es simplemente un              8 bytes
                        número que se incrementa y no conserva una fecha
                        o una hora
Grupo       Tipo de dato                              Intervalo                             Almacenamiento


                              Tipo de datos que almacena valores de varios tipos de datos
             sql_variant      aceptados en SQL Server, excepto text, ntext, image,
                              timestamp y sql_variant


                              Es un GUID (Globally Unique Identifier, Identificador Único
           uniqueidentifier                                                                    16 bytes
                              Global)
  Otros
tipos de                      Es un tipo de datos especial que se puede utilizar para
  datos                       almacenar un conjunto de resultados para su procesamiento
                              posterior. table se utiliza principalmente para el
                table
                              almacenamiento temporal de un conjunto de filas devuelto
                              como el conjunto de resultados de una función con valores
                              de tabla


                              Almacena datos de XML. Puede almacenar instancias de xml
                 xml
                              en una columna o una variable de tipo xml
AUTENTICACIONES
Las cuentas de usuario de MySQL se listan en la
tabla user de la base de datos MySQL . Cada
cuenta MySQL tiene una contraseña. MySQL usa
contraseñas en dos fases de la comunicación
cliente/servidor:

• Cuando un cliente trata de conectar al
 servidor, hay un paso inicial de autenticación.
• Una vez que el cliente conecta, puede cambiar
  o inicializar los hashes de las contraseñas para
  las cuentas listadas en la tabla user. Puede
  hacerlo mediante la función PASSWORD(), o
  mediante los comandos GRANT o SET
  PASSWORD.

El servidor usa los valores hash durante la
autenticación cuando un cliente trata de
conectar por primera vez.
ADMINISTRACIÓN DEL MOTOR
• Sintaxis de CREATE USER
• Sintaxis de DROP USER
• Sintaxis de GRANT y REVOKE Los comandos
  GRANT y REVOKE permiten a los
  administradores de sistemas crear cuentas de
  usuario MySQL y darles permisos y quitarlos
  de las cuentas.
• Sintaxis de RENAME USER
• Sintaxis de SET PASSWORD
• Sintaxis de CACHE INDEX El comando CACHE
  INDEX asigna índices de tabla a una caché de
  clave específica.
• Sintaxis de FLUSH Debe usar el comando FLUSH
  si quiere limpiar algunas de las cachés internas
  que usa MySQL . Para ejecutar FLUSH, debe
  tener el permiso RELOAD .
• Sintaxis de RESET El comando RESET se usa para
  limpiar el estado de varias operaciones de
  servidor.
• Sintaxis de KILL En MySQL 5.0.0, KILL permite
  los modificadores opcionales CONNECTION o
  QUERY:
• KILL CONNECTION es lo mismo que KILL sin
  modificadores: termina la conexión asociada
  con el thread_id dado.
• KILL QUERY termina el comando que la
  conexión está ejecutando actualmente, pero
  deja a la conexión intacta.
GESTIÓN DE USUARIOS
Una cuenta MySQL se define en términos de un
nombre de usuario y el equipo o equipos desde
los que el usuario puede conectar al servidor. La
cuenta también tiene una contraseña.
Los nombres de usuario, tal como los usa MySQL
para autentificación, no tienen nada que ver con
los nombres de usuario (nombres de logueo) tal
y como los usa Windows o Unix.
• La base de datos no es segura, a no ser
  que todas las cuentas MySQL tengan
  contraseña. Cualquiera que especifique
  un nombre de usuario para una cuenta
  que no tenga contraseña puede conectar
  al servidor.
• Nombre de usuarios en MySQL pueden
  tener como máximo 16 caracteres de
  longitud. Este límite está hard-codeado
  en los servidores y clientes MySQL, y
  tratar de evitarlo mediante la
  modificación de las tablas en la base de
  datos mysql no funciona.
Añadir Nuevas Cuentas De Usuario

Puede crear cuentas MySQL de dos formas:

• Usando comandos GRANT: Es el método mas
  preferido, ya que son más concisos y menos
  propenso a errores; está disponible desde
  MySQL 3.22.11.
• Manipulando las tablas de permisos MySQL
  directamente.
Eliminar Usuario

El comando DROP USER borra una o
más cuentas MySQL . Para usarlo,
debe tener el permiso global CREATE
USER o el permiso DELETE para la base
de datos mysql .
Limitar Recursos De Cuentas
Una forma de limitar los recursos de los
servidores MySQL es asignar a la variable de
sistema max_user_connections un valor
distinto de cero. Este método es estrictamente
global. Además, limita sólo el número de
conexiones simultáneas hechas usando una
sola cuenta, y no lo que un cliente puede hacer
una vez conectado.
En MySQL 5.0, puede limitar los siguientes recursos
de servidor para cuentas individuales:

•El número de consultas que una cuenta puede
realizar por hora
•El número de actualizaciones que una cuenta
puede hacer por hora
•El número de veces que una cuenta puede
conectar con el servidor por hora

Desde MySQL 5.0.3, es posible limitar el número de
conexiones simultáneas al servidor por cuenta.
Asignar Contraseñas A Cuentas
Se pueden asignar contraseñas desde la línea de
comandos usando el comando mysqladmin:

  • Shell> mysqladmin -u nombres_usuario -h equipo
    password quot;nuevacontr”

Otra forma de asignar una contraseña en una cuenta es
con el comando SET PASSWORD :

  • mysql> SET PASSWORD        FOR    'jeffrey'@'%'   =
    PASSWORD('biscuit');
Guardar Una Contraseña De Forma Segura

MySQL encripta contraseñas usando su propio
algoritmo. La encriptación de contraseña es la
misma que la implementada en la función
PASSWORD() . Desde la versión 4.1, MySQL usa
un método más fuerte de autenticación que tiene
una mejor protección de contraseña durante el
proceso de conexión que en versiones anteriores.
EXPLORADOR DE OBJETOS
                            TABLA

CREATE TABLE crea una tabla con el nombre
dado. Se debe poseer el privilegio CREATE para
la tabla.

• CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
  [(definición_create,...)] [opciones_tabla] [sentencia_select]
ALTER TABLE permite modificar la estructura de
una tabla existente. Por ejemplo, se pueden
añadir o eliminar columnas, crear y destruir
índices, cambiar el tipo de una columna
existente o renombrar columnas o la propia
tabla. También es posible modificar el
comentario y el tipo de la tabla.
• ALTER [IGNORE] TABLE tbl_name alter_specification [,
  alter_specification ...]
ANALYZE TABLE Analiza y almacena la
distribución de claves de una tabla. Durante el
análisis, la tabla se bloquea para lectura.
Funciona con tablas MyISAM y BDB.
• ANALYZE [LOCAL |          NO_WRITE_TO_BINLOG]          TABLE
  tbl_name[,tbl_name...]

BACKUP TABLE copia al directorio de copia de
seguridad el número mínimo de ficheros de
tablas necesarios para restaurar la tabla,
después de escribir cualquier cambio al disco.
• BACKUP TABLE         tbl_name   [,   tbl_name]   ...     TO
  '/path/to/backup/directory'
DELETE elimina columnas desde quot;table_namequot;
que satisfagan la condición dada por la
quot;where_definitionquot;, y devuelve el número de
registros borrados.

 DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
      FROM table_name[.*] [, table_name[.*] ...]
      USING table-references
      [WHERE where_definition]
DROP DATABASE elimina todas las tablas de la
base de datos y borra la base de datos.

 DROP {DATABASE | SCHEMA} [IF EXISTS] db_name


UPDATE actualiza columnas de filas existentes
de una tabla con nuevos valores.

 UPDATE [LOW_PRIORITY] [IGNORE] tbl_name [, tbl_name ...]
      SET col_name1=expr1 [, col_name2=expr2 ...]
     [WHERE where_definition]
VISTAS (VIEWS)
Las vistas (incluyendo vistas actualizables)
fueron introducidas en la versión 5.0 del
servidor de base de datos MySQL
• Creación o modificación de vistas con CREATE
  VIEW o ALTER VIEW
• Eliminación de vistas con DROP VIEW
• Obtención de información de definición de
  una vista (metadatos) con SHOW CREATE
  VIEW
OTRAS SENTENCIAS
Para los comandos GRANT y REVOKE , priv_type pueden
especificarse como cualquiera de los siguientes:
SQL CONSULTAS
En las consultas se pueden hacer con filtros
usando Where:
• Select * from clientes Where poblacion Like ‘Madrid’.


Se pueden ordenar los resultados con Order:
• Select * from clientes clientes Where poblacion Like
  ‘Madrid’ Order By nombre.
También se puede             clasificar   en      orden
descendente con Desc:
• Select * from clientes Order By pedidos Desc.


Se pueden hacer selecciones sin coincidencia
usando Distinct:
• Select Distinct poblacion From clientes Order By
  poblacion.
Calcular la suma de los valores comprendidos y
almacenar el valor en un campo virtual:
• Select Sum(total) As suma_pedidos From pedidos.


Con la clausula Count podemos realizar un
conteo de la cantidad de datos incluidos en un
rango de la tabla:
• Select id_client, Count(*) as numero_pedidos From
  pedidos Group By id_cliente.
LICENCIAMIENTO
El software MySQL tiene una doble
licencia. Los usuarios pueden elegir entre
usar el software MySQL como un producto
Open Source bajo los términos de la
licencia GNU General Public License o
pueden adquirir una licencia comercial
estándar de MySQL AB.
COSTOS
Mientras InterBase y SQL Server tienen una licencia
propietaria y con un costo por el uso del software,
MySQL y Firebird cuentan con licencias de uso libre.

El doble licenciamiento de MySQL, y la licencia IPL
(tipo MPL) bajo la cual se libera Firebird. MySQL
garantiza una licencia libre solamente si la aplicación
que la usa es liberada bajo la licencia GPL.

Si quiero crear un software propietario, usando una
base de datos libre, no podré utilizar MySQL de
manera libre, sino pagando una licencia cuyo costo
anual inicia en los 595 US dólares por servidor.
INSTALAR MYSQL

1. Debe determinarse si la plataforma donde
   se desea hacer la instalación está soportada.
   Nótese que no todos los sistemas soportados
   son igualmente adecuados para ejecutar
   MySQL. En algunas plataformas el
   funcionamiento será mucho más robusto y
   eficiente que en otras.
2. Debe elegirse la distribución que se instalará.
   Hay varias versiones de MySQL disponibles, y la
   mayoría lo están en varios formatos de
   distribución.    Se     puede     elegir entre
   distribuciones pre armadas que contienen
   programas binarios (pre compilados) o bien
   código fuente. En caso de duda, debe elegirse
   una distribución binaria. También se provee
   acceso público al código fuente para quienes
   deseen ver los desarrollos más recientes y
   colaborar en el testeo de código nuevo.
3. Descargar la distribución que se desea
   instalar.
4. Instalar la distribución.
5. Realizar cualquier ajuste que sea necesario
   con posterioridad a la instalación.
6. Si se desea ejecutar los scripts para medir el
   rendimiento de MySQL, debe estar
   disponible el soporte de Perl para MySQL.
COMPARACIONES
                            SQL
                   MySQL
Característica             Server                           Notas
                    4.1
                            2000

                                     OPINIONES SQL permiten a los administradores de
SQL VER apoyo                          bases de datos abstractos diseños fuera de los
                                                     desarrolladores.


                                     Provoca la falta de desarrolladores de MySQL hace
   Triggers
                                    agregar lógica a su extremo delantero y el nivel medio,
 Disparadores
                                       cuando la lógica debería ir en la base de datos.


Procedimientos                      Los procedimientos almacenados son los mecanismos
 almacenados                                    de abstracción y la seguridad


  Funciones                          Funciones definidas por el usuario (UDF) permiten la
definidas por el                    encapsulación de código complejo en simples interfaces
    usuario                                               exigible.
SQL
                         MySQL
   Característica                Server                          Notas
                          4.1
                                  2000

                                            La falta de apoyo en MySQL CURSOR aumenta el
  Apoyo CURSOR                             tráfico de la red y reduce el tiempo de respuesta de
                                                                aplicaciones.


                                          MySQL soporta utilizando una expresión regular como
 SQL SELECCIONE
                                                una cláusula de filtro en una consulta.


                                            XML es un formato basado en estándares para los
    Soporte XML
                                             datos. MySQL no tiene soporte nativo para XML.

     COMPLETA
                                              MySQL no soporta COMPLETA INSCRIBETE
    INSCRIBETE

                                          MySQL 4.0 soporta integridad referencial (RI), siempre
Integridad referencial
                                             y cuando el tipo de tabla InnoDB es elegido.


                                             La instalación por defecto de MySQL no soporta
Soporta transacciones                        transacciones. Transacción requiere el apoyo de
                                                                 InnoDB.
COMPARACIÓN CON POSTGRESQL
Las características positivas con respecto a
MySQL son:

• Posee una gran escalabilidad. Es capaz de
  ajustarse al número de CPUs y a la cantidad de
  memoria que posee el sistema de forma
  óptima, haciéndole capaz de soportar una
  mayor cantidad de peticiones simultáneas de
  manera correcta.
• Implementa el uso de sub-consultas y
  transacciones, haciendo su funcionamiento
  mucho más eficaz, y ofreciendo soluciones en
  campos en las que MySQL no podría.

• Tiene la capacidad de comprobar la integridad
  referencial, así como también la de almacenar
  procedimientos en la propia base de datos,
  equiparándolo con los gestores de bases de
  datos de alto nivel, como puede ser Oracle.
Por contra, los mayores inconvenientes que se
pueden encontrar a este gestor son:

• Consume gran cantidad de recursos.
• Tiene un límite de 8K por fila, aunque se
  puede aumentar a 32K, con una disminución
  considerable del rendimiento.
• Es de 2 a 3 veces más lento que MySQL.
COMPARACIÓN CON ORACLE

• Atomicidad: es posible construir bloques
  de sentencias que se ejecutan todo o
  nada Si y solo si, si usas tablas InnoDB (lo
  cual haría a MySQL lento) MySQL solo
  cumple esto si usa InnoDB.
• Consistencia: dentro de una transacción
  se hace todo o nada, es decir no queda
  en estado intermedio una transacción.
  MySQL no deshace instrucciones DDL así
  que si dentro de la transacción creas,
  alteras o borras una tabla no se deshará.
• Aislamiento: básicamente que lo se
  haces dentro de una transacción es
  invisible a los demás usuarios antes de
  terminar la transacción; con tablas
  MyIsam eso no va a pasar. MySQL solo
  cumple con esta condición si usa InnoDB.
• Durabilidad: garantiza que el servidor de
  datos    guarda    las    actualizaciones
  pendientes de forma tal que pueda
  recuperarse de una terminación brusca
  tal como desenchufar la máquina.
GRACIAS

Más contenido relacionado

La actualidad más candente

Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalclaudyabra
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosVannesa Salazar
 
10 sistemas gestores de base de datos
10 sistemas gestores de base de datos10 sistemas gestores de base de datos
10 sistemas gestores de base de datosGusttavo Nipas
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareJahiro Bojorquez
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasJ M
 
ARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUXARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUXAlex Daquilema
 
Tipos abstractos de datos
Tipos abstractos de datosTipos abstractos de datos
Tipos abstractos de datosJose Armando
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 

La actualidad más candente (20)

Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Reglas de transformación
Reglas de transformaciónReglas de transformación
Reglas de transformación
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
Csv y xml
Csv y xmlCsv y xml
Csv y xml
 
10 sistemas gestores de base de datos
10 sistemas gestores de base de datos10 sistemas gestores de base de datos
10 sistemas gestores de base de datos
 
Ejemplo de Trigger en Mysql
Ejemplo de Trigger en MysqlEjemplo de Trigger en Mysql
Ejemplo de Trigger en Mysql
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
ARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUXARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUX
 
Tipos abstractos de datos
Tipos abstractos de datosTipos abstractos de datos
Tipos abstractos de datos
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 

Similar a MYSQL

Los tipos de datos de sql server
Los tipos de datos de sql serverLos tipos de datos de sql server
Los tipos de datos de sql serverCEUNISAL
 
Introduccion base de datos con MYSQL
Introduccion base de datos con MYSQLIntroduccion base de datos con MYSQL
Introduccion base de datos con MYSQLBoris Salleg
 
Tipos de base de datos de sql server 2008
Tipos de base de datos de sql server 2008Tipos de base de datos de sql server 2008
Tipos de base de datos de sql server 2008Elizabeth Huaraya Apaza
 
Introduccion base de datos
Introduccion base de datosIntroduccion base de datos
Introduccion base de datosBoris Salleg
 
Presentacion power designer
Presentacion power designerPresentacion power designer
Presentacion power designerMario Puerres
 
Power designer tipos de datos
Power designer tipos de datosPower designer tipos de datos
Power designer tipos de datosCECT1992
 
Tipos de datos en power designer
Tipos de datos en power designerTipos de datos en power designer
Tipos de datos en power designerAndreita Bedoya
 
Prog manejo de variables
Prog manejo de variablesProg manejo de variables
Prog manejo de variablesAdriana Vega P
 
Prog manejo de variables
Prog manejo de variablesProg manejo de variables
Prog manejo de variablesAdriana Vega P
 
Tipos de datos en postgres
Tipos de datos en postgresTipos de datos en postgres
Tipos de datos en postgresDIEGO CCALLA
 
Tipos de datos oracle
Tipos de datos oracleTipos de datos oracle
Tipos de datos oracleAngel Livestn
 
Pop tipos de datos
Pop tipos de datosPop tipos de datos
Pop tipos de datoscristina150e
 
Tipo de variables de PowerDesigner
Tipo de variables de PowerDesignerTipo de variables de PowerDesigner
Tipo de variables de PowerDesignerKlucio
 

Similar a MYSQL (20)

Los tipos de datos de sql server
Los tipos de datos de sql serverLos tipos de datos de sql server
Los tipos de datos de sql server
 
Introduccion base de datos con MYSQL
Introduccion base de datos con MYSQLIntroduccion base de datos con MYSQL
Introduccion base de datos con MYSQL
 
Tipos de base de datos de sql server 2008
Tipos de base de datos de sql server 2008Tipos de base de datos de sql server 2008
Tipos de base de datos de sql server 2008
 
Introduccion base de datos
Introduccion base de datosIntroduccion base de datos
Introduccion base de datos
 
Presentacion power designer
Presentacion power designerPresentacion power designer
Presentacion power designer
 
Blog transact sql
Blog transact sqlBlog transact sql
Blog transact sql
 
Power designer tipos de datos
Power designer tipos de datosPower designer tipos de datos
Power designer tipos de datos
 
tipo de datos
tipo de datostipo de datos
tipo de datos
 
tipo de Datos
tipo de Datos tipo de Datos
tipo de Datos
 
Tipos de datos en power designer
Tipos de datos en power designerTipos de datos en power designer
Tipos de datos en power designer
 
Prog manejo de variables
Prog manejo de variablesProg manejo de variables
Prog manejo de variables
 
Prog manejo de variables
Prog manejo de variablesProg manejo de variables
Prog manejo de variables
 
Tipos de datos en postgres
Tipos de datos en postgresTipos de datos en postgres
Tipos de datos en postgres
 
Tipo de datos oracle
Tipo de datos oracleTipo de datos oracle
Tipo de datos oracle
 
Tipos de datos oracle
Tipos de datos oracleTipos de datos oracle
Tipos de datos oracle
 
Cap. iv bdd ii
Cap. iv bdd iiCap. iv bdd ii
Cap. iv bdd ii
 
Pop tipos de datos
Pop tipos de datosPop tipos de datos
Pop tipos de datos
 
Manual postgre sql
Manual postgre sqlManual postgre sql
Manual postgre sql
 
Campos En Mysql
Campos En MysqlCampos En Mysql
Campos En Mysql
 
Tipo de variables de PowerDesigner
Tipo de variables de PowerDesignerTipo de variables de PowerDesigner
Tipo de variables de PowerDesigner
 

MYSQL

  • 1. MySQL ANDRES FELIPE LONDOÑO O. CRISTIAN ANDREY OVIEDO P.
  • 2. INTRODUCCION Es un sistema de gestión de bases de datos relacional, fue creada por la empresa sueca MySQL AB, la cual tiene el copyright del código fuente del servidor SQL, así como también de la marca.
  • 3. MySQL es un software de código abierto, licenciado bajo la GPL de la GNU, aunque MySQL AB distribuye una versión comercial, en lo único que se diferencian, es en el soporte técnico que se ofrece, y la posibilidad de integrar este gestor en un software propietario, ya que de otra manera, se vulneraría la licencia GPL. El lenguaje de programación que utiliza MySQL es Structured Query Language (SQL) que fue desarrollado por IBM en 1981.
  • 4. OBJETIVO GENERAL • Conocer e identificar las características principales del motor de la base de datos MySQL
  • 5. Objetivos específicos • Conocer la historia y el mejoramiento que ha tenido el motor. • Conocer las principales sintaxis utilizadas por el motor. • Diferenciar las ventajas competitivas con respecto a los demás motores.
  • 6. HISTORIA DEL PROYECTO • SQL fue comercializado por primera vez en 1981 por IBM. • Primeras versiones: SQL:92, SQL:99, SQL:2003. no eran flexibles, ni rápidos. • El prefijo My apareció aproximadamente hace 10 años. • Sakila. • MySQL es una marca registrada de MySQL AB.
  • 7. CARACTERÍSTICAS • Inicialmente, MySQL carecía de algunos elementos esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. • Las principales características son: • El principal objetivo de MySQL es velocidad y robustez. • Soporta gran cantidad de tipos de datos para las columnas. • Gran portabilidad entre sistemas, puede trabajar en distintas plataformas y sistemas operativos.
  • 8. • Cada base de datos cuenta con 3 archivos: Uno de estructura, uno de datos y uno de índice y soporta hasta 32 índices por tabla. • Aprovecha la potencia de sistemas multiproceso, gracias a su implementación multihilo. • Flexible sistema de contraseñas (password) y gestión de usuarios, con un muy buen nivel de seguridad en los datos. • El servidor soporta mensajes de error en distintas lenguas
  • 9. VENTAJAS • Velocidad al realizar las operaciones. • Bajo costo en requerimientos para la elaboración de bases de datos. • Facilidad de configuración e instalación. • Soporta gran variedad de Sistemas Operativos • Baja probabilidad de corromper datos, incluso si los errores no se producen en el propio gestor, sino en el sistema en el que está. • Conectividad y seguridad
  • 10. DESVENTAJAS • Un gran porcentaje de las utilidades de MySQL no están documentadas. • No es intuitivo, como otros programas (ACCESS).
  • 12.
  • 13. TIPOS DE DATOS ACEPTADOS POR EL MOTOR Tipo de Grupo Intervalo Almacenamiento dato De -263 (-9.223.372.036.854.775.808) a 263 - 1 bigint 8 bytes (9.223.372.036.854.775.807) int De -231 (-2.147.483.648) a 231 - 1 (2.147.483.647) 4 bytes Numéricos exactos smallint De -215 (-32.768) a 215 - 1 (32.767) 2 bytes tinyint De 0 a 255 1 byte Tipo de datos entero que puede aceptar los valores 1, bit 2 bytes 0 ó NULL
  • 14. Grupo Tipo de dato Intervalo Almacenamiento p (precisión): el número total máximo de dígitos decimales que se puede almacenar, tanto a la izquierda como a la derecha del separador decimal. La precisión debe ser un valor comprendido entre 1 y la precisión máxima de 38. La precisión decimal, predeterminada es 18. Precisión 1 - 9: 5 numeric, s (escala): el número máximo de dígitos decimales bytes decimal (p, s) que se puede almacenar a la derecha del separador Numéricos decimal. La escala debe ser un valor comprendido exactos entre 0 y p. Sólo es posible especificar la escala si se ha especificado la precisión. La escala predeterminada es 0. Con precisión máxima 1038 +1 y 1038 - 1 Tipos de datos que representan valores monetarios o de money moneda: de -922.337.203.685,4775808 a 8 bytes 922.337.203.685,4775807 smallmoney De - 214,7483648 a 214,7483647 4 bytes
  • 15. Grupo Tipo de dato Intervalo Almacenamiento De - 1,79E+308 a -2,23E-308, 0 y de 2,23E-308 a Depende del valor float Numéricos 1,79E+308 de n aproximados De - 3,40E + 38 a -1,18E - 38, 0 y de 1,18E - 38 a 3,40E + real 4 Bytes 38 datetime Del 1 de enero de 1753 hasta el 31 de diciembre de 9999 Fecha y hora smalldatetime Del 1 de enero de 1900 hasta el 6 de junio de 2079 Caracteres no Unicode de longitud fija, con una longitud char (n) n bytes de n bytes. n debe ser un valor entre 1 y 8.000 Caracteres no Unicode de longitud variable. n indica que el Cadenas de varchar (n) n bytes (aprox.) tamaño de almacenamiento máximo es de 231 - 1 bytes caracteres En desuso, sustituido por varchar. text Datos no Unicode de longitud variable con una longitud máx. bytes (aprox.) máxima de 231 - 1 (2.147.483.647) caracteres
  • 16. Tipo de Grupo Intervalo Almacenamiento dato Datos de carácter Unicode de longitud fija, con n caracteres. n nchar (n) 2 * n bytes debe estar comprendido entre 1 y 4.000 Cadenas de nvarchar Datos de carácter Unicode de longitud variable. n indica que el 2 * n bytes + 2 caracteres (n) tamaño máximo de almacenamiento es 231 - 1 bytes bytes único de En desuso, sustituido por nvarchar. ntext (n) Datos Unicode de longitud variable con una longitud máxima 2 * n bytes de 230 - 1 (1.073.741.823) caracteres Datos binarios de longitud fija con una longitud de n bytes, binary (n) n bytes donde n es un valor que oscila entre 1 y 8.000 Cadenas varbinary Datos binarios de longitud variable. n indica que el tamaño de n bytes binarias (n) almacenamiento máximo es de 231 - 1 bytes En desuso, sustituido por varbinary. image Datos binarios de longitud variable desde 0 hasta 231 - 1 (2.147.483.647) bytes
  • 17. Tipo de Grupo Intervalo Almacenamiento dato Tipo de datos para las variables o para los parámetros de resultado de los procedimientos cursor almacenados que contiene una referencia a un cursor. Las variables creadas con el tipo de datos cursor aceptan NULL Otros tipos de datos Tipo de datos que expone números binarios únicos generados automáticamente en una base de datos. timestamp El tipo de datos timestamp es simplemente un 8 bytes número que se incrementa y no conserva una fecha o una hora
  • 18. Grupo Tipo de dato Intervalo Almacenamiento Tipo de datos que almacena valores de varios tipos de datos sql_variant aceptados en SQL Server, excepto text, ntext, image, timestamp y sql_variant Es un GUID (Globally Unique Identifier, Identificador Único uniqueidentifier 16 bytes Global) Otros tipos de Es un tipo de datos especial que se puede utilizar para datos almacenar un conjunto de resultados para su procesamiento posterior. table se utiliza principalmente para el table almacenamiento temporal de un conjunto de filas devuelto como el conjunto de resultados de una función con valores de tabla Almacena datos de XML. Puede almacenar instancias de xml xml en una columna o una variable de tipo xml
  • 19. AUTENTICACIONES Las cuentas de usuario de MySQL se listan en la tabla user de la base de datos MySQL . Cada cuenta MySQL tiene una contraseña. MySQL usa contraseñas en dos fases de la comunicación cliente/servidor: • Cuando un cliente trata de conectar al servidor, hay un paso inicial de autenticación.
  • 20. • Una vez que el cliente conecta, puede cambiar o inicializar los hashes de las contraseñas para las cuentas listadas en la tabla user. Puede hacerlo mediante la función PASSWORD(), o mediante los comandos GRANT o SET PASSWORD. El servidor usa los valores hash durante la autenticación cuando un cliente trata de conectar por primera vez.
  • 21. ADMINISTRACIÓN DEL MOTOR • Sintaxis de CREATE USER • Sintaxis de DROP USER • Sintaxis de GRANT y REVOKE Los comandos GRANT y REVOKE permiten a los administradores de sistemas crear cuentas de usuario MySQL y darles permisos y quitarlos de las cuentas. • Sintaxis de RENAME USER • Sintaxis de SET PASSWORD
  • 22. • Sintaxis de CACHE INDEX El comando CACHE INDEX asigna índices de tabla a una caché de clave específica. • Sintaxis de FLUSH Debe usar el comando FLUSH si quiere limpiar algunas de las cachés internas que usa MySQL . Para ejecutar FLUSH, debe tener el permiso RELOAD . • Sintaxis de RESET El comando RESET se usa para limpiar el estado de varias operaciones de servidor.
  • 23. • Sintaxis de KILL En MySQL 5.0.0, KILL permite los modificadores opcionales CONNECTION o QUERY: • KILL CONNECTION es lo mismo que KILL sin modificadores: termina la conexión asociada con el thread_id dado. • KILL QUERY termina el comando que la conexión está ejecutando actualmente, pero deja a la conexión intacta.
  • 24. GESTIÓN DE USUARIOS Una cuenta MySQL se define en términos de un nombre de usuario y el equipo o equipos desde los que el usuario puede conectar al servidor. La cuenta también tiene una contraseña. Los nombres de usuario, tal como los usa MySQL para autentificación, no tienen nada que ver con los nombres de usuario (nombres de logueo) tal y como los usa Windows o Unix.
  • 25. • La base de datos no es segura, a no ser que todas las cuentas MySQL tengan contraseña. Cualquiera que especifique un nombre de usuario para una cuenta que no tenga contraseña puede conectar al servidor.
  • 26. • Nombre de usuarios en MySQL pueden tener como máximo 16 caracteres de longitud. Este límite está hard-codeado en los servidores y clientes MySQL, y tratar de evitarlo mediante la modificación de las tablas en la base de datos mysql no funciona.
  • 27. Añadir Nuevas Cuentas De Usuario Puede crear cuentas MySQL de dos formas: • Usando comandos GRANT: Es el método mas preferido, ya que son más concisos y menos propenso a errores; está disponible desde MySQL 3.22.11. • Manipulando las tablas de permisos MySQL directamente.
  • 28. Eliminar Usuario El comando DROP USER borra una o más cuentas MySQL . Para usarlo, debe tener el permiso global CREATE USER o el permiso DELETE para la base de datos mysql .
  • 29. Limitar Recursos De Cuentas Una forma de limitar los recursos de los servidores MySQL es asignar a la variable de sistema max_user_connections un valor distinto de cero. Este método es estrictamente global. Además, limita sólo el número de conexiones simultáneas hechas usando una sola cuenta, y no lo que un cliente puede hacer una vez conectado.
  • 30. En MySQL 5.0, puede limitar los siguientes recursos de servidor para cuentas individuales: •El número de consultas que una cuenta puede realizar por hora •El número de actualizaciones que una cuenta puede hacer por hora •El número de veces que una cuenta puede conectar con el servidor por hora Desde MySQL 5.0.3, es posible limitar el número de conexiones simultáneas al servidor por cuenta.
  • 31. Asignar Contraseñas A Cuentas Se pueden asignar contraseñas desde la línea de comandos usando el comando mysqladmin: • Shell> mysqladmin -u nombres_usuario -h equipo password quot;nuevacontr” Otra forma de asignar una contraseña en una cuenta es con el comando SET PASSWORD : • mysql> SET PASSWORD FOR 'jeffrey'@'%' = PASSWORD('biscuit');
  • 32. Guardar Una Contraseña De Forma Segura MySQL encripta contraseñas usando su propio algoritmo. La encriptación de contraseña es la misma que la implementada en la función PASSWORD() . Desde la versión 4.1, MySQL usa un método más fuerte de autenticación que tiene una mejor protección de contraseña durante el proceso de conexión que en versiones anteriores.
  • 33. EXPLORADOR DE OBJETOS TABLA CREATE TABLE crea una tabla con el nombre dado. Se debe poseer el privilegio CREATE para la tabla. • CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(definición_create,...)] [opciones_tabla] [sentencia_select]
  • 34. ALTER TABLE permite modificar la estructura de una tabla existente. Por ejemplo, se pueden añadir o eliminar columnas, crear y destruir índices, cambiar el tipo de una columna existente o renombrar columnas o la propia tabla. También es posible modificar el comentario y el tipo de la tabla. • ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification ...]
  • 35. ANALYZE TABLE Analiza y almacena la distribución de claves de una tabla. Durante el análisis, la tabla se bloquea para lectura. Funciona con tablas MyISAM y BDB. • ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name[,tbl_name...] BACKUP TABLE copia al directorio de copia de seguridad el número mínimo de ficheros de tablas necesarios para restaurar la tabla, después de escribir cualquier cambio al disco. • BACKUP TABLE tbl_name [, tbl_name] ... TO '/path/to/backup/directory'
  • 36. DELETE elimina columnas desde quot;table_namequot; que satisfagan la condición dada por la quot;where_definitionquot;, y devuelve el número de registros borrados. DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM table_name[.*] [, table_name[.*] ...] USING table-references [WHERE where_definition]
  • 37. DROP DATABASE elimina todas las tablas de la base de datos y borra la base de datos. DROP {DATABASE | SCHEMA} [IF EXISTS] db_name UPDATE actualiza columnas de filas existentes de una tabla con nuevos valores. UPDATE [LOW_PRIORITY] [IGNORE] tbl_name [, tbl_name ...] SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]
  • 38. VISTAS (VIEWS) Las vistas (incluyendo vistas actualizables) fueron introducidas en la versión 5.0 del servidor de base de datos MySQL • Creación o modificación de vistas con CREATE VIEW o ALTER VIEW • Eliminación de vistas con DROP VIEW • Obtención de información de definición de una vista (metadatos) con SHOW CREATE VIEW
  • 39. OTRAS SENTENCIAS Para los comandos GRANT y REVOKE , priv_type pueden especificarse como cualquiera de los siguientes:
  • 40.
  • 41. SQL CONSULTAS En las consultas se pueden hacer con filtros usando Where: • Select * from clientes Where poblacion Like ‘Madrid’. Se pueden ordenar los resultados con Order: • Select * from clientes clientes Where poblacion Like ‘Madrid’ Order By nombre.
  • 42. También se puede clasificar en orden descendente con Desc: • Select * from clientes Order By pedidos Desc. Se pueden hacer selecciones sin coincidencia usando Distinct: • Select Distinct poblacion From clientes Order By poblacion.
  • 43. Calcular la suma de los valores comprendidos y almacenar el valor en un campo virtual: • Select Sum(total) As suma_pedidos From pedidos. Con la clausula Count podemos realizar un conteo de la cantidad de datos incluidos en un rango de la tabla: • Select id_client, Count(*) as numero_pedidos From pedidos Group By id_cliente.
  • 44. LICENCIAMIENTO El software MySQL tiene una doble licencia. Los usuarios pueden elegir entre usar el software MySQL como un producto Open Source bajo los términos de la licencia GNU General Public License o pueden adquirir una licencia comercial estándar de MySQL AB.
  • 45. COSTOS Mientras InterBase y SQL Server tienen una licencia propietaria y con un costo por el uso del software, MySQL y Firebird cuentan con licencias de uso libre. El doble licenciamiento de MySQL, y la licencia IPL (tipo MPL) bajo la cual se libera Firebird. MySQL garantiza una licencia libre solamente si la aplicación que la usa es liberada bajo la licencia GPL. Si quiero crear un software propietario, usando una base de datos libre, no podré utilizar MySQL de manera libre, sino pagando una licencia cuyo costo anual inicia en los 595 US dólares por servidor.
  • 46. INSTALAR MYSQL 1. Debe determinarse si la plataforma donde se desea hacer la instalación está soportada. Nótese que no todos los sistemas soportados son igualmente adecuados para ejecutar MySQL. En algunas plataformas el funcionamiento será mucho más robusto y eficiente que en otras.
  • 47. 2. Debe elegirse la distribución que se instalará. Hay varias versiones de MySQL disponibles, y la mayoría lo están en varios formatos de distribución. Se puede elegir entre distribuciones pre armadas que contienen programas binarios (pre compilados) o bien código fuente. En caso de duda, debe elegirse una distribución binaria. También se provee acceso público al código fuente para quienes deseen ver los desarrollos más recientes y colaborar en el testeo de código nuevo.
  • 48. 3. Descargar la distribución que se desea instalar. 4. Instalar la distribución. 5. Realizar cualquier ajuste que sea necesario con posterioridad a la instalación. 6. Si se desea ejecutar los scripts para medir el rendimiento de MySQL, debe estar disponible el soporte de Perl para MySQL.
  • 49. COMPARACIONES SQL MySQL Característica Server Notas 4.1 2000 OPINIONES SQL permiten a los administradores de SQL VER apoyo bases de datos abstractos diseños fuera de los desarrolladores. Provoca la falta de desarrolladores de MySQL hace Triggers agregar lógica a su extremo delantero y el nivel medio, Disparadores cuando la lógica debería ir en la base de datos. Procedimientos Los procedimientos almacenados son los mecanismos almacenados de abstracción y la seguridad Funciones Funciones definidas por el usuario (UDF) permiten la definidas por el encapsulación de código complejo en simples interfaces usuario exigible.
  • 50. SQL MySQL Característica Server Notas 4.1 2000 La falta de apoyo en MySQL CURSOR aumenta el Apoyo CURSOR tráfico de la red y reduce el tiempo de respuesta de aplicaciones. MySQL soporta utilizando una expresión regular como SQL SELECCIONE una cláusula de filtro en una consulta. XML es un formato basado en estándares para los Soporte XML datos. MySQL no tiene soporte nativo para XML. COMPLETA MySQL no soporta COMPLETA INSCRIBETE INSCRIBETE MySQL 4.0 soporta integridad referencial (RI), siempre Integridad referencial y cuando el tipo de tabla InnoDB es elegido. La instalación por defecto de MySQL no soporta Soporta transacciones transacciones. Transacción requiere el apoyo de InnoDB.
  • 51. COMPARACIÓN CON POSTGRESQL Las características positivas con respecto a MySQL son: • Posee una gran escalabilidad. Es capaz de ajustarse al número de CPUs y a la cantidad de memoria que posee el sistema de forma óptima, haciéndole capaz de soportar una mayor cantidad de peticiones simultáneas de manera correcta.
  • 52. • Implementa el uso de sub-consultas y transacciones, haciendo su funcionamiento mucho más eficaz, y ofreciendo soluciones en campos en las que MySQL no podría. • Tiene la capacidad de comprobar la integridad referencial, así como también la de almacenar procedimientos en la propia base de datos, equiparándolo con los gestores de bases de datos de alto nivel, como puede ser Oracle.
  • 53. Por contra, los mayores inconvenientes que se pueden encontrar a este gestor son: • Consume gran cantidad de recursos. • Tiene un límite de 8K por fila, aunque se puede aumentar a 32K, con una disminución considerable del rendimiento. • Es de 2 a 3 veces más lento que MySQL.
  • 54. COMPARACIÓN CON ORACLE • Atomicidad: es posible construir bloques de sentencias que se ejecutan todo o nada Si y solo si, si usas tablas InnoDB (lo cual haría a MySQL lento) MySQL solo cumple esto si usa InnoDB.
  • 55. • Consistencia: dentro de una transacción se hace todo o nada, es decir no queda en estado intermedio una transacción. MySQL no deshace instrucciones DDL así que si dentro de la transacción creas, alteras o borras una tabla no se deshará.
  • 56. • Aislamiento: básicamente que lo se haces dentro de una transacción es invisible a los demás usuarios antes de terminar la transacción; con tablas MyIsam eso no va a pasar. MySQL solo cumple con esta condición si usa InnoDB.
  • 57. • Durabilidad: garantiza que el servidor de datos guarda las actualizaciones pendientes de forma tal que pueda recuperarse de una terminación brusca tal como desenchufar la máquina.