SlideShare una empresa de Scribd logo
1 de 14
1 - SISTEMAS DE ADMINISTRACIÓN DE BASES DE DATOS (DBMS)


Un sistema de administración de bases de datos DBMS (Database Management System, por sus
siglas en Inglés) es un sistema basado en computador (software) que maneja una base de datos, o
una colección de bases de datos o archivos. La persona que administra un D0BMS es conocida
como el DBA (DatabaseAdministrator, por sus siglas en ingles).


USOS Y FUNCIONES DE UN DBMS


Los sistemas de administración de bases de datos son usados para:




• Permitir a los usuarios acceder y manipular la base de datos proveyendo métodos para
construir sistemas de procesamiento de datos para aplicaciones que requieran acceso a los datos.




• Proveer a los administradores las herramientas que les permitan ejecutar tareas de
mantenimiento y administración de los datos.




Algunas de las funciones de un DBMS son:




• Definición de la base de datos - como la información va a ser almacenada y organizada.




• Creación de la base de datos - almacenamiento de datos en una base de datos definida.




• Recuperación de los datos - consultas y reportes.




• Actualización de los datos - cambiar los contenidos de la base de datos.




• Programación de aplicaciones de para el desarrollo de software.
• Control de la integridad de la base de datos.




• Monitoreo del comportamiento de la base de datos.




2 - CARACTERISTICAS DE UNA DBMS (DBMS)


Control de la redundancia de datos




Este consiste en lograr una mínima cantidad de espacio de almacenamiento para almacenar los
datos evitando la duplicación de la información. De esta manera se logran ahorros en el tiempo
de procesamiento de la información, se tendrán menos inconsistencias, menores costos
operativos y hará el mantenimiento más fácil.


Compartimiento de datos




Una de las principales características de las bases de datos, es que los datos pueden ser
compartidos entre muchos usuarios simultáneamente, proveyendo, de esta manera, máxima
eficiencia.


Mantenimiento de la integridad




La integridad de los datos es la que garantiza la precisión o exactitud de la información contenida
en una base de datos. Los datos interrelacionados deben siempre representar información
correcta a los usuarios.


Soporte para control de transacciones y recuperación de fallas.




Se conoce como transacción toda operación que se haga sobre la base de datos. Las transacciones
deben por lo tanto ser controladas de manera que no alteren la integridad de la base de datos. La
recuperación de fallas tiene que ver con la capacidad de un sistema DBMS de recuperar la
información que se haya perdido durante una falla en el software o en el hardware.


Independencia de los datos.




En las aplicaciones basadas en archivos, el programa de aplicación debe conocer tanto la
organización de los datos como las técnicas que el permiten acceder a los datos. En los sistemas
DBMS los programas de aplicación no necesitan conocer la organización de los datos en el disco
duro. Este totalmente independiente de ello.


Seguridad




La disponibilidad de los datos puede ser restringida a ciertos usuarios. Según los privilegios que
posea cada usuario de la base de datos, podrá acceder a mayor información que otros.


Velocidad




Los sistemas DBMS modernos poseen altas velocidades de respuesta y proceso.


Independencia del hardware




La mayoría de los sistemas DBMS están disponibles para ser instalados en múltiples plataformas
de hardware.




Los sistemas de bases de datos relacionales RDBMS (RelationalDatabase Management System, por
sus siglas en Inglés) tales como Oracle, MySQL, SQL Server, PostgreSQL, Informix, entre otros, le
permiten ejecutar las tareas que se mencionan a continuación, de una forma entendible y
razonablemente sencilla:




Le permiten ingresar datos al sistema.
Le permiten almacenar los datos.
Le permiten recuperar los datos y trabajar con ellos.
Le proveen herramientas para capturar, editar y manipular datos.
Le permiten aplicar seguridad.
Le permiten crear reportes e informes con los datos.

3 - DEFINICIÓN Y TERMINOLOGÍA DE UN RDBMS


Los sistemas de base de datos relacionales son aquellos que almacenan y administran de manera
lógica los datos en forma de tablas. Una TABLA es, a su vez, un método para presentar los datos
en la forma de filas y columnas.




Cada columna representa un campo único de un registro. Varias de estas columnas o campo
componen un registro, proveyendo información significativa e interrelacionada. Cada registro es
representado en una fila. Una tabla puede consistir en varias columnas. Muchas de las tablas que
poseen datos interrelacionados e interdependientes son agrupadas por medio de el
establecimiento de relaciones entre ellas. Al administrar las tablas y sus relaciones, encontramos
los medios para insertar, borrar, consultar y actualizar la información de un sistema RDBMS.




En la tabla anterior, la tabla Empleados consiste en tres columnas y tres filas. Las columnas o
campo conforman un registro lógico, correspondiente a un empleado. La tabla Empleados esta
relacionada con la tabla de Departamentos por medio de una columna "Numero de Departamento"
que aparece en ambas tablas.



Llave Primaria




Hemos visto que los datos son almacenados de manera lógica en tablas en la Bases de datos
relacionales. Cada tabla tiene un nombre único. Para identificar una fila particular en una tabla,
se usa una columna o combinación de columnas. Esta columna debe ser tal que identifique de
manera única e inequívoca cada fila. No puede haber mas de dos filas (registros) en una tabla que
tengan el mismo valor para la columna que haya sido elegida como llave primaria. Una columna
identificada como la llave primaria no puede tener valores duplicados no nulos. Por ejemplo,
considerando la tabla de Empleados presentada en la Figura No. 1, podemos ver que cada
empleado tiene un único numero de empleado. La columna "NUM-EMP" puede ser escogida como
la llave primaria. Similarmente, la columna "NUM-DEPT" en la tabla de Departamentos puede ser
igualmente una llave primaria.
Llave Foránea
La llave primaria y la llave foránea son usadas para establecer relaciones entre tablas. En la
Figura No. 1 el dominio de los valores de la columna "NUM-DEPT" de la tabla Empleados se
encuentra dentro del rango de valores de la columna "NUM-DEPT" de la tabla Departamentos. Un
empleado deber pertenecer a un Departamento que esté listado en la tabla Departamentos. Se
considera entonces que la columna "NUM-DEPT" en la tabla Empleados es una llave foránea. De
esta manera, la existencia de esta llave foránea en la tabla Empleados controla que no pueda ser
ingresado un nuevo registro de un empleado si este no pertenece primero a un Departamento. Si
el empleado que desea ingresarse a la tabla trabaja en un Departamento que no esta listado en la
tabla Departamentos, primero debe crearse el registro del Departamento en su respectiva tabla,
y luego si procedemos a ingresar al empleado. Este tipo de control que impone la asignación de
una llave foránea en una tabla es de mucha utilidad para evitar la existencia de registros
huérfanos y para evitar la incongruencia de datos, temas que veremos mas adelante. Además,
como dijimos al principio, la llave foránea nos permite relacionar dos tablas, lo cual nos permite
compartir y repartir la información de manera que no tengamos los mismos datos duplicados en
varias tablas. Estos conceptos serán aterrizados en la sección de Normalización de tablas que se
estudiará en un capitulo posterior.




En la figura No. 2 hemos establecido la siguiente convención: En los esquemas de tablas, las
llaves primarias están subrayadas. Igualmente diagramaremos restricciones de integridad
referencial a través de líneas de conexión que van desde cada llave foránea hasta la llave
primaria que referencie. Para que haya mejor claridad, la punta de la flecha deberá apuntar
hacia la llave primaria de la tabla referenciada




Nulos




Un Nulo se puede interpretar como un valor indefinido o como ningún valor. Los nulos son usados
en las columnas donde se desconozca su valor. Un nulo no significan espacios en blanco. Un valor
"nulo" no puede ser usado para hacer ningún cálculo u operaciones de comparación. Un "nulo"
puede ser comparable a un infinito. Un "nulo" no es igual a otro "nulo".


Vistas
Los RDBMS gestionan la estructura física de los datos y su almacenamiento. Con esta
funcionalidad, el RDBMS se convierte en una herramienta de gran utilidad. Sin embargo, desde el
punto de vista del usuario, se podría discutir que los RDBMS han hecho las cosas más complicadas,
ya que ahora los usuarios ven más datos de los que realmente quieren o necesitan, puesto que
ven la base de datos completa. Conscientes de este problema, los RDBMS proporcionan un
mecanismo de vistas que permite que cada usuario tenga su propia vista o visión de la base de
datos. El lenguaje de definición de datos permite definir vistas como subconjuntos de la base de
datos. Las vistas, además de reducir la complejidad permitiendo que cada usuario vea sólo la
parte de la base de datos que necesita, tienen otras ventajas:




Las vistas proporcionan un nivel de seguridad, ya que permiten excluir datos para que ciertos
usuarios no los vean. Las vistas proporcionan un mecanismo para que los usuarios vean los datos
en el formato que deseen.
d   Una vista representa una imagen consistente y permanente de la base de datos, incluso si la
base de datos cambia su estructura.




Regla No. 4 - La regla de la descripción de la base de datos
"La descripción de la base de datos es almacenada de la misma manera que los datos ordinarios,
esto es, en tablas y columnas, y debe ser accesible a los usuarios autorizados". La información de
tablas, vistas, permisos de acceso de usuarios autorizados, etc, debe ser almacenada
exactamente de la misma manera: En tablas. Estas tablas deben ser accesibles igual que todas las
tablas, a través de sentencias de SQL.


Regla No. 5 - La regla del sub-lenguaje Integral.
"Debe haber al menos un lenguaje que sea integral para soportar la definición de datos,
manipulación de datos, definición de vistas, restricciones de integridad, y control de
autorizaciones y transacciones". Esto significa que debe haber por lo menos un lenguaje con una
sintaxis bien definida que pueda ser usado para administrar completamente la base de datos.


Regla No. 6 - La regla de la actualización de vistas
"Todas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema
mismo". La mayoría de las RDBMS permiten actualizar vistas simples, pero deshabilitan los
intentos de actualizar vistas complejas.
Regla No. 7 - La regla de insertar y actualizar
"La capacidad de manejar una base de datos con operandos simples aplica no solo para la
recuperación o consulta de datos, sino también para la inserción, actualización y borrado de
datos". Esto significa que las cláusulas SELECT, UPDATE, DELETE e INSERT deben estar disponibles
y operables sobre los registros independientemente del tipo de relaciones y restricciones que
haya entre las tablas.


Regla No. 8 - La regla de independencia física
"El acceso de usuarios a la base de datos, a través de terminales o programas de aplicación, debe
permanecer consistente lógicamente cuando quiera que haya cambios en los datos almacenados,
o sean cambiados los métodos de acceso a los datos". El comportamiento de los programas de
aplicación y de la actividad de usuarios vía terminales debería ser predecible basados en la
definición lógica de la base de datos, y este comportamiento debería permanecer inalterado,
independientemente de los cambios en la definición física de ésta.


Regla No. 9 - La regla de independencia lógica
"Los programas de aplicación y las actividades de acceso por terminal deben permanecer
lógicamente inalteradas cuando quiera que se hagan cambios (según los permisos asignados) en
las tablas de la base de datos". La independencia lógica de los datos especifica que los programas
de aplicación y las actividades de terminal deben ser independientes de la estructura lógica, por
lo tanto los cambios en la estructura lógica no deben alterar o modificar estos programas de
aplicación.


Regla No. 10 - La regla de la independencia de la integridad
"Todas las restricciones de integridad deben ser definibles in los datos, y almacenables en el
catalogo, no n el programa de aplicación". Las reglas de integridad son: 1. Ningún componente de
una llave primaria puede tener valores en blanco o nulos. (esta es la norma básica d integridad).
2. Para cada valor de llave foránea deberá existir una valor de llave primaria concordante. La
combinación de estas reglas aseguran que haya Integridad referencial.


Regla No. 11 - La regla de la distribución
"El sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos esté
distribuida físicamente en distintos lugares sin que esto afecte o altere a los programas de
aplicación". El soporte para bases de datos distribuidas significa que una colección arbitraria de
relaciones, bases de datos corriendo en una mezcla de distintas máquinas y distintos sistemas
operativos y que este conectada por una variedad de redes, pueda funcionar como si estuviera
disponible como una única base de datos en una sola máquina.


Regla No. 12 - Regla de la no-subversión
"Si el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser
usados para violar la integridad de las reglas y restricciones expresadas en un lenguaje de alto
nivel(como SQL)". Algunos productos solamente construyen una interfaz relacional para sus bases
de datos No relacionales, lo que hace posible la subversión (violación) de las restricciones de
integridad. Esto no debe ser permitido.




RESUMEN


TAL COMO LO ANUNCIAMOS, A CONTINUACIÓN PRESENTAREMOS UN RESUMEN EN TERMINOLOGÍA
DE FÁCIL COMPRESNSION, QUE ILUSTRA LOS PRINCIPALES CONCEPTOS DE LAS BASES DE DATOS Y
LAS REGLAS DE CODD LLEVADAS A LA PRACTICA.


Un RDBMS debe proporcionar a los usuarios la capacidad de almacenar datos en la base de datos,
acceder a ellos y actualizarlos. Esta es la función fundamental de un RDBMS y por supuesto, el
RDBMS debe ocultar al usuario la estructura física interna (la organización de los archivos y las
estructuras de almacenamiento).


Un RDBMS debe proporcionar un catálogo en el que se almacenen las descripciones de los datos y
que sea accesible por los usuarios. Este catálogo es lo que se denomina diccionario de datos y
contiene información que describe los datos de la base de datos (metadatos). Normalmente, un
diccionario de datos almacena: Nombre, tipo y tamaño de los datos, Nombre de las relaciones
entre los datos.


Un RDBMS debe proporcionar un mecanismo que garantice que todas las actualizaciones
correspondientes a una determinada transacción se realicen, o que no se realice ninguna. Una
transacción en el sistema informático de los empleados de una empresa (por ejemplo) sería dar
de alta a un empleado o eliminar un cargo. Una transacción un poco más complicada sería
eliminar un Departamento o división y reasignar todos sus empleados a otro Departamento. En
este caso hay que realizar varios cambios sobre la base de datos. Si la transacción falla durante
su realización, por ejemplo porque falla el hardware (o se va la energía eléctrica) , la base de
datos quedará en un estado inconsistente. Algunos de los cambios se habrán hecho y otros no, por
lo tanto, los cambios realizados deberán ser deshechos para devolver la base de datos a un
estado consistente.


Un RDBMS debe proporcionar un mecanismo capaz de recuperar la base de datos en caso de que
ocurra algún suceso que la dañe. Como se ha comentado antes, cuando el sistema falla en medio
de una transacción, la base de datos se debe devolver a un estado consistente. Este fallo puede
ser a causa de un fallo en algún dispositivo hardware o un error del software, que hagan que el
RDBMS aborte, o puede ser a causa de que el usuario detecte un error durante la transacción y la
aborte antes de que finalice. En todos estos casos, el RDBMS debe proporcionar un mecanismo
capaz de recuperar la base de datos llevándola a un estado consistente.


Un RDBMS debe proporcionar un mecanismo que garantice que sólo los usuarios autorizados
pueden acceder a la base de datos. La protección debe ser contra accesos no autorizados, tanto
intencionados como accidentales.


Un RDBMS debe ser capaz de integrarse con algún software de comunicación. Muchos usuarios
acceden a la base de datos desde terminales. En ocasiones estos terminales se encuentran
conectados directamente a la máquina sobre la que funciona el RDBMS. En otras ocasiones los
terminales están en lugares remotos, por lo que la comunicación con la máquina que alberga al
RDBMS se debe hacer a través de una red. En cualquiera de los dos casos, el RDBMS recibe
peticiones en forma de mensajes y responde de modo similar. Todas estas transmisiones de
mensajes las maneja el gestor de comunicaciones de datos. Aunque este gestor no forma parte
del RDBMS, es necesario que el RDBMS se pueda integrar con él para que el sistema sea
comercialmente viable.


Un RDBMS debe proporcionar los medios necesarios para garantizar que tanto los datos de la base
de datos, como los cambios que se realizan sobre estos datos, sigan ciertas reglas. La integridad
de la base de datos requiere la validez y consistencia de los datos almacenados. Se puede
considerar como otro modo de proteger la base de datos, pero además de tener que ver con la
seguridad, tiene otras implicaciones. La integridad se ocupa de la calidad de los datos.
Normalmente se expresa mediante restricciones, que son una serie de reglas que la base de datos
no puede violar. Por ejemplo, se puede establecer la restricción de que el número de cédula de
un empleado no puede tener caracteres alfanuméricos, o por ejemplo que para dar de alta un
empleado éste debe pertenecer obligatoriamente a un Departamento. En este caso sería
deseable que el RDBMS controlara que no se violen esas reglas cada vez que se ingresen los datos
de un empleado a la base de datos de la empresa.
MySQL
El software MySQL® proporciona un servidor de base de datos SQL
(StructuredQueryLanguage) muy rápido, multi-threaded, multi usuario y robusto. El servidor
MySQL está diseñado para entornos de producción críticos, con alta carga de trabajo así
como para integrarse en software para ser distribuido. MySQL es una marca registrada de
MySQL AB.

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
PublicLicense (http://www.fsf.org/licenses/) o pueden adquirir una licencia comercial estándar
de MySQL AB. Consulte http://www.mysql.com/company/legal/licensing/ para más información
acerca de nuestras políticas de licencia.
La siguiente lista describe algunas secciones de particular interés en este manual:

  Para una discusión acerca de las capacidades del servidor de base de datos MySQL
  consulte Sección 1.4.2, “Las principales características de MySQL”.
  Para instrucciones acerca de la instalación, consulte Capítulo 2, Instalar MySQL.
  Para consejos sobre portar el software MySQL a nuevas arquitecturas o sistemas
  operativos, consulteApéndice D, Portar a otros sistemas.
  Para información acerca de actualizar desde la versión 4.1, consulte Sección 2.10.1,
  “Aumentar la versión de 4.1 a 5.0”.
  Para un tutorial introductorio al servidor de base de datos MySQL,
  consulte Capítulo 3, Curso (tutorial) de MySQL.
  Para ejemplos de SQL e información de rendimiento, consulte el directorio de pruebas de
  rendimiento (sql-bench en la distribución).
  Para la historia de nuevas características y fallos arreglados, consulte Apéndice C, Historial
  de cambios de MySQL.
  Para una lista de fallos conocidos y características no implementadas,
  consulte Sección A.8, “Problemas conocidos en MySQL”.
  Para la lista de todos los que han contribuido a este proyecto,
  consulte Apéndice B, Credits.
1.4.2. Las principales características de MySQL
La siguiente lista describe algunas de las características más importantes del software de
base de datos MySQL. Consulte Sección 1.5, “Mapa de desarrollo de MySQL” para más
información acerca de las características actuales y próximas.
     Interioridades y portabilidad

      Escrito en C y en C++

      Probado con un amplio rango de compiladores diferentes

      Funciona en diferentes plataformas. Consulte Sección 2.1.1, “Sistemas operativos que
       MySQL soporta”.
      Usa GNU Automake, Autoconf, y Libtool para portabilidad.

      APIs disponibles para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, y Tcl.
       Consulte Capítulo 24, APIs de MySQL.
      Uso completo de multi-threaded mediante threads del kernel. Pueden usarse fácilmente
       multipleCPUs si están disponibles.

      Proporciona sistemas de almacenamiento transaccionales y no transaccionales.

      Usa tablas en disco B-tree (MyISAM) muy rápidas con compresión de índice.
      Relativamente sencillo de añadir otro sistema de almacenamiento. Esto es útil si desea
       añadir una interfaz SQL para una base de datos propia.

      Un sistema de reserva de memoria muy rápido basado en threads.

      Joins muy rápidos usando un multi-join de un paso optimizado.

      Tablas hash en memoria, que son usadas como tablas temporales.

      Las funciones SQL están implementadas usando una librería altamente optimizada y
       deben ser tan rápidas como sea posible. Normalmente no hay reserva de memoria tras
       toda la inicialización para consultas.

      El código MySQL se prueba con Purify (un detector de memoria perdida comercial) así
       como con Valgrind, una herramienta GPL (http://developer.kde.org/~sewardj/).
      El servidor está disponible como un programa separado para usar en un entorno de red
       cliente/servidor. También está disponible como biblioteca y puede ser incrustado
       (linkado) en aplicaciones autónomas. Dichas aplicaciones pueden usarse por sí mismas
       o en entornos donde no hay red disponible..
Tipos de columnas

   Diversos tipos de columnas: enteros con/sin signo de 1, 2, 3, 4, y 8 bytes de
    longitud, FLOAT, DOUBLE, CHAR,VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTA
    MP, YEAR, SET, ENUM, y tipos espaciales OpenGIS. Consulte Capítulo 11, Tipos de
    columna.
   Registros de longitud fija y longitud variable.

      Sentencias y funciones

   Soporte completo para operadores y funciones en las cláusulas de
    consultas SELECT y WHERE. Por ejemplo:
   mysql> SELECT CONCAT(first_name, ' ', last_name)
   -> FROM citizen
         -> WHERE income/dependents > 10000 AND age > 30;
   Soportecompletoparalascláusulas SQL GROUP BY y ORDER BY. Soporte de funciones de
    agrupación (COUNT(),COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX(), MIN(),
    y GROUP_CONCAT()).
   Soporte para LEFT OUTER JOIN y RIGHT OUTER JOIN cumpliendo estándares de
    sintaxis SQL y ODBC.
   Soporte para alias en tablas y columnas como lo requiere el estándar SQL.

   DELETE, INSERT, REPLACE, y UPDATE devuelven el número de filas que han cambiado
    (han sido afectadas). Es posible devolver el número de filas que serían afectadas
    usando un flag al conectar con el servidor.
   El comando específico de MySQL SHOW puede usarse para obtener información acerca
    de la base de datos, el motor de base de datos, tablas e índices. El
    comando EXPLAIN puede usarse para determinar cómo el optimizador resuelve una
    consulta.
   Los nombres de funciones no colisionan con los nombres de tabla o columna. Por
    ejemplo, ABS es un nombre válido de columna. La única restricción es que para una
    llamada a una función, no se permiten espacios entre el nombre de función y el '(' a
    continuación. Consulte Sección 9.6, “Tratamiento de palabras reservadas en MySQL”.
   Puede mezclar tablas de distintas bases de datos en la misma consulta (como en
    MySQL 3.22).

      Seguridad
   Un sistema de privilegios y contraseñas que es muy flexible y seguro, y que permite
    verficación basada en el host. Las contraseñas son seguras porque todo el tráfico de
    contraseñas está cifrado cuando se conecta con un servidor.

      Escalabilidad y límites

   Soporte a grandes bases de datos. Usamos MySQL Server con bases de datos que
    contienen 50 millones de registros. También conocemos a usuarios que usan MySQL
    Server con 60.000 tablas y cerca de 5.000.000.000.000 de registros.

   Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice puede
    consistir desde 1 hasta 16 columnas o partes de columnas. El máximo ancho de límite
    son 1000 bytes (500 antes de MySQL 4.1.2).Un índice puede usar prefijos de una
    columna para los tipos de columna CHAR, VARCHAR, BLOB, o TEXT.
      Conectividad

   Los clientes pueden conectar con el servidor MySQL usando sockets TCP/IP en
    cualquier plataforma. En sistemas Windows de la familia NT (NT,2000,XP, o 2003), los
    clientes pueden usar named pipes para la conexión. En sistemas Unix, los clientes
    pueden conectar usando ficheros socket Unix.

   En MySQL 5.0, los servidores Windows soportan conexiones con memoria compartida
    si se inicializan con la opción --shared-memory. Los clientes pueden conectar a través
    de memoria compartida usando la opción --protocol=memory.
   La interfaz para el conector ODBC (MyODBC) proporciona a MySQL soporte para
    programas clientes que usen conexiones ODBC (Open DatabaseConnectivity). Por
    ejemplo, puede usar MS Access para conectar al servidor MySQL. Los clientes pueden
    ejecutarse en Windows o Unix. El código fuente de MyODBC está disponible. Todas las
    funciones para ODBC 2.5 están soportadas, así como muchas otras.
    Consulte Sección 25.1, “MySQLConnector/ODBC”.
   La interfaz para el conector J MySQL proporciona soporte para clientes Java que usen
    conexiones JDBC. Estos clientes pueden ejecutarse en Windows o Unix. El código
    fuente para el conector J está disponible. ConsulteSección 25.4, “MySQLConnector/J”.
      Localización

   El servidor puede proporcionar mensajes de error a los clientes en muchos idomas.
    Consulte Sección 5.9.2, “Escoger el idioma de los mensajes de error”.
   Soporte completo para distintos conjuntos de caracteres, incluyendo latin1 (ISO-8859-
    1), german, big5, ujis, y más. Por ejemplo, los caracteres escandinavos 'â', 'ä' y 'ö'
    están permitidos en nombres de tablas y columnas. El soporte para Unicode está
    disponible
   Todos los datos se guardan en el conjunto de caracteres elegido. Todas las
    comparaciones para columnas normales de cadenas de caracteres son case-
    insensitive.

   La ordenación se realiza acorde al conjunto de caracteres elegido (usando colación
    Sueca por defecto). Es posible cambiarla cuando arranca el servidor MySQL. Para ver
    un ejemplo de ordenación muy avanzada, consulte el código Checo de ordenación.
    MySQL Server soporta diferentes conjuntos de caracteres que deben ser especificados
    en tiempo de compilación y de ejecución.

      Clientes y herramientas

   MySQL server tiene soporte para comandos SQL para chequear, optimizar, y reparar
    tablas. Estos comandos están disponibles a través de la línea de comandos y el
    cliente mysqlcheck. MySQL también incluye myisamchk, una utilidad de línea de
    comandos muy rápida para efectuar estas operaciones en tablas MyISAM.
    ConsulteCapítulo 5, Administración de bases de datos.
   Todos los programas MySQL pueden invocarse con las opciones --help o -? para
    obtener asistencia en línea.

Más contenido relacionado

La actualidad más candente

Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datosUTN
 
CREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOSCREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOSDarwin Durand
 
Diapositivas Base De Datos
Diapositivas Base De DatosDiapositivas Base De Datos
Diapositivas Base De DatosDigno Yunga
 
Bases de datos
Bases de datosBases de datos
Bases de datosJosue Diaz
 
Clase de informatica base de datos
Clase de informatica   base de datosClase de informatica   base de datos
Clase de informatica base de datos4M4LI4
 
Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)angeljlp08
 
Introduccion a las bases de datos
Introduccion a las bases de datosIntroduccion a las bases de datos
Introduccion a las bases de datosjedwinm
 

La actualidad más candente (16)

Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
CREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOSCREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOS
 
Diapositivas Base De Datos
Diapositivas Base De DatosDiapositivas Base De Datos
Diapositivas Base De Datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
5 teoriadebasededatos
5 teoriadebasededatos5 teoriadebasededatos
5 teoriadebasededatos
 
Ba se de datos! ♥
Ba se de datos! ♥Ba se de datos! ♥
Ba se de datos! ♥
 
Base de datos1024
Base de datos1024Base de datos1024
Base de datos1024
 
Clase de informatica base de datos
Clase de informatica   base de datosClase de informatica   base de datos
Clase de informatica base de datos
 
Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)
 
Teoria de-bases-de-datos
Teoria de-bases-de-datosTeoria de-bases-de-datos
Teoria de-bases-de-datos
 
Reglas de Codd
Reglas de CoddReglas de Codd
Reglas de Codd
 
Introduccion a las bases de datos
Introduccion a las bases de datosIntroduccion a las bases de datos
Introduccion a las bases de datos
 
2011
20112011
2011
 
2011
20112011
2011
 
Linda tatiana
Linda tatianaLinda tatiana
Linda tatiana
 

Similar a DBMS: Sistemas de administración de bases de datos

Similar a DBMS: Sistemas de administración de bases de datos (20)

1. sistemas de administración de bases de datos 2007
1. sistemas de administración de bases de datos 20071. sistemas de administración de bases de datos 2007
1. sistemas de administración de bases de datos 2007
 
Trabajo de informatica.pptx yusssyy
Trabajo de informatica.pptx yusssyyTrabajo de informatica.pptx yusssyy
Trabajo de informatica.pptx yusssyy
 
Trabajo de informatica.pptx yusssyy
Trabajo de informatica.pptx yusssyyTrabajo de informatica.pptx yusssyy
Trabajo de informatica.pptx yusssyy
 
Trabajo de informatica.pptx yusssyy
Trabajo de informatica.pptx yusssyyTrabajo de informatica.pptx yusssyy
Trabajo de informatica.pptx yusssyy
 
Tabajo de base de datos
Tabajo de base de datosTabajo de base de datos
Tabajo de base de datos
 
Presentacion bases de datos pibd213 unidad i
Presentacion bases de datos pibd213 unidad iPresentacion bases de datos pibd213 unidad i
Presentacion bases de datos pibd213 unidad i
 
Base de datos 1
Base de datos 1Base de datos 1
Base de datos 1
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Una base de datos relacional
Una base de datos relacionalUna base de datos relacional
Una base de datos relacional
 
tema base de datos
 tema base de datos tema base de datos
tema base de datos
 
Manejadores de base de datos
Manejadores de base de datosManejadores de base de datos
Manejadores de base de datos
 
Manejador de base de datos
Manejador de base de datosManejador de base de datos
Manejador de base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos
Base de datos Base de datos
Base de datos
 
Aplicacion de base de datos
Aplicacion de base de datosAplicacion de base de datos
Aplicacion de base de datos
 
Unidad i bd
Unidad i bdUnidad i bd
Unidad i bd
 
Manejadores de base de datos
Manejadores de base de datosManejadores de base de datos
Manejadores de base de datos
 
Manejadores de base de datos
Manejadores de base de datosManejadores de base de datos
Manejadores de base de datos
 

DBMS: Sistemas de administración de bases de datos

  • 1. 1 - SISTEMAS DE ADMINISTRACIÓN DE BASES DE DATOS (DBMS) Un sistema de administración de bases de datos DBMS (Database Management System, por sus siglas en Inglés) es un sistema basado en computador (software) que maneja una base de datos, o una colección de bases de datos o archivos. La persona que administra un D0BMS es conocida como el DBA (DatabaseAdministrator, por sus siglas en ingles). USOS Y FUNCIONES DE UN DBMS Los sistemas de administración de bases de datos son usados para: • Permitir a los usuarios acceder y manipular la base de datos proveyendo métodos para construir sistemas de procesamiento de datos para aplicaciones que requieran acceso a los datos. • Proveer a los administradores las herramientas que les permitan ejecutar tareas de mantenimiento y administración de los datos. Algunas de las funciones de un DBMS son: • Definición de la base de datos - como la información va a ser almacenada y organizada. • Creación de la base de datos - almacenamiento de datos en una base de datos definida. • Recuperación de los datos - consultas y reportes. • Actualización de los datos - cambiar los contenidos de la base de datos. • Programación de aplicaciones de para el desarrollo de software.
  • 2. • Control de la integridad de la base de datos. • Monitoreo del comportamiento de la base de datos. 2 - CARACTERISTICAS DE UNA DBMS (DBMS) Control de la redundancia de datos Este consiste en lograr una mínima cantidad de espacio de almacenamiento para almacenar los datos evitando la duplicación de la información. De esta manera se logran ahorros en el tiempo de procesamiento de la información, se tendrán menos inconsistencias, menores costos operativos y hará el mantenimiento más fácil. Compartimiento de datos Una de las principales características de las bases de datos, es que los datos pueden ser compartidos entre muchos usuarios simultáneamente, proveyendo, de esta manera, máxima eficiencia. Mantenimiento de la integridad La integridad de los datos es la que garantiza la precisión o exactitud de la información contenida en una base de datos. Los datos interrelacionados deben siempre representar información correcta a los usuarios. Soporte para control de transacciones y recuperación de fallas. Se conoce como transacción toda operación que se haga sobre la base de datos. Las transacciones deben por lo tanto ser controladas de manera que no alteren la integridad de la base de datos. La
  • 3. recuperación de fallas tiene que ver con la capacidad de un sistema DBMS de recuperar la información que se haya perdido durante una falla en el software o en el hardware. Independencia de los datos. En las aplicaciones basadas en archivos, el programa de aplicación debe conocer tanto la organización de los datos como las técnicas que el permiten acceder a los datos. En los sistemas DBMS los programas de aplicación no necesitan conocer la organización de los datos en el disco duro. Este totalmente independiente de ello. Seguridad La disponibilidad de los datos puede ser restringida a ciertos usuarios. Según los privilegios que posea cada usuario de la base de datos, podrá acceder a mayor información que otros. Velocidad Los sistemas DBMS modernos poseen altas velocidades de respuesta y proceso. Independencia del hardware La mayoría de los sistemas DBMS están disponibles para ser instalados en múltiples plataformas de hardware. Los sistemas de bases de datos relacionales RDBMS (RelationalDatabase Management System, por sus siglas en Inglés) tales como Oracle, MySQL, SQL Server, PostgreSQL, Informix, entre otros, le permiten ejecutar las tareas que se mencionan a continuación, de una forma entendible y razonablemente sencilla: Le permiten ingresar datos al sistema. Le permiten almacenar los datos. Le permiten recuperar los datos y trabajar con ellos. Le proveen herramientas para capturar, editar y manipular datos.
  • 4. Le permiten aplicar seguridad. Le permiten crear reportes e informes con los datos. 3 - DEFINICIÓN Y TERMINOLOGÍA DE UN RDBMS Los sistemas de base de datos relacionales son aquellos que almacenan y administran de manera lógica los datos en forma de tablas. Una TABLA es, a su vez, un método para presentar los datos en la forma de filas y columnas. Cada columna representa un campo único de un registro. Varias de estas columnas o campo componen un registro, proveyendo información significativa e interrelacionada. Cada registro es representado en una fila. Una tabla puede consistir en varias columnas. Muchas de las tablas que poseen datos interrelacionados e interdependientes son agrupadas por medio de el establecimiento de relaciones entre ellas. Al administrar las tablas y sus relaciones, encontramos los medios para insertar, borrar, consultar y actualizar la información de un sistema RDBMS. En la tabla anterior, la tabla Empleados consiste en tres columnas y tres filas. Las columnas o campo conforman un registro lógico, correspondiente a un empleado. La tabla Empleados esta relacionada con la tabla de Departamentos por medio de una columna "Numero de Departamento" que aparece en ambas tablas. Llave Primaria Hemos visto que los datos son almacenados de manera lógica en tablas en la Bases de datos relacionales. Cada tabla tiene un nombre único. Para identificar una fila particular en una tabla, se usa una columna o combinación de columnas. Esta columna debe ser tal que identifique de manera única e inequívoca cada fila. No puede haber mas de dos filas (registros) en una tabla que tengan el mismo valor para la columna que haya sido elegida como llave primaria. Una columna identificada como la llave primaria no puede tener valores duplicados no nulos. Por ejemplo, considerando la tabla de Empleados presentada en la Figura No. 1, podemos ver que cada empleado tiene un único numero de empleado. La columna "NUM-EMP" puede ser escogida como la llave primaria. Similarmente, la columna "NUM-DEPT" en la tabla de Departamentos puede ser igualmente una llave primaria.
  • 5. Llave Foránea La llave primaria y la llave foránea son usadas para establecer relaciones entre tablas. En la Figura No. 1 el dominio de los valores de la columna "NUM-DEPT" de la tabla Empleados se encuentra dentro del rango de valores de la columna "NUM-DEPT" de la tabla Departamentos. Un empleado deber pertenecer a un Departamento que esté listado en la tabla Departamentos. Se considera entonces que la columna "NUM-DEPT" en la tabla Empleados es una llave foránea. De esta manera, la existencia de esta llave foránea en la tabla Empleados controla que no pueda ser ingresado un nuevo registro de un empleado si este no pertenece primero a un Departamento. Si el empleado que desea ingresarse a la tabla trabaja en un Departamento que no esta listado en la tabla Departamentos, primero debe crearse el registro del Departamento en su respectiva tabla, y luego si procedemos a ingresar al empleado. Este tipo de control que impone la asignación de una llave foránea en una tabla es de mucha utilidad para evitar la existencia de registros huérfanos y para evitar la incongruencia de datos, temas que veremos mas adelante. Además, como dijimos al principio, la llave foránea nos permite relacionar dos tablas, lo cual nos permite compartir y repartir la información de manera que no tengamos los mismos datos duplicados en varias tablas. Estos conceptos serán aterrizados en la sección de Normalización de tablas que se estudiará en un capitulo posterior. En la figura No. 2 hemos establecido la siguiente convención: En los esquemas de tablas, las llaves primarias están subrayadas. Igualmente diagramaremos restricciones de integridad referencial a través de líneas de conexión que van desde cada llave foránea hasta la llave primaria que referencie. Para que haya mejor claridad, la punta de la flecha deberá apuntar hacia la llave primaria de la tabla referenciada Nulos Un Nulo se puede interpretar como un valor indefinido o como ningún valor. Los nulos son usados en las columnas donde se desconozca su valor. Un nulo no significan espacios en blanco. Un valor "nulo" no puede ser usado para hacer ningún cálculo u operaciones de comparación. Un "nulo" puede ser comparable a un infinito. Un "nulo" no es igual a otro "nulo". Vistas
  • 6. Los RDBMS gestionan la estructura física de los datos y su almacenamiento. Con esta funcionalidad, el RDBMS se convierte en una herramienta de gran utilidad. Sin embargo, desde el punto de vista del usuario, se podría discutir que los RDBMS han hecho las cosas más complicadas, ya que ahora los usuarios ven más datos de los que realmente quieren o necesitan, puesto que ven la base de datos completa. Conscientes de este problema, los RDBMS proporcionan un mecanismo de vistas que permite que cada usuario tenga su propia vista o visión de la base de datos. El lenguaje de definición de datos permite definir vistas como subconjuntos de la base de datos. Las vistas, además de reducir la complejidad permitiendo que cada usuario vea sólo la parte de la base de datos que necesita, tienen otras ventajas: Las vistas proporcionan un nivel de seguridad, ya que permiten excluir datos para que ciertos usuarios no los vean. Las vistas proporcionan un mecanismo para que los usuarios vean los datos en el formato que deseen. d Una vista representa una imagen consistente y permanente de la base de datos, incluso si la base de datos cambia su estructura. Regla No. 4 - La regla de la descripción de la base de datos "La descripción de la base de datos es almacenada de la misma manera que los datos ordinarios, esto es, en tablas y columnas, y debe ser accesible a los usuarios autorizados". La información de tablas, vistas, permisos de acceso de usuarios autorizados, etc, debe ser almacenada exactamente de la misma manera: En tablas. Estas tablas deben ser accesibles igual que todas las tablas, a través de sentencias de SQL. Regla No. 5 - La regla del sub-lenguaje Integral. "Debe haber al menos un lenguaje que sea integral para soportar la definición de datos, manipulación de datos, definición de vistas, restricciones de integridad, y control de autorizaciones y transacciones". Esto significa que debe haber por lo menos un lenguaje con una sintaxis bien definida que pueda ser usado para administrar completamente la base de datos. Regla No. 6 - La regla de la actualización de vistas "Todas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema mismo". La mayoría de las RDBMS permiten actualizar vistas simples, pero deshabilitan los intentos de actualizar vistas complejas.
  • 7. Regla No. 7 - La regla de insertar y actualizar "La capacidad de manejar una base de datos con operandos simples aplica no solo para la recuperación o consulta de datos, sino también para la inserción, actualización y borrado de datos". Esto significa que las cláusulas SELECT, UPDATE, DELETE e INSERT deben estar disponibles y operables sobre los registros independientemente del tipo de relaciones y restricciones que haya entre las tablas. Regla No. 8 - La regla de independencia física "El acceso de usuarios a la base de datos, a través de terminales o programas de aplicación, debe permanecer consistente lógicamente cuando quiera que haya cambios en los datos almacenados, o sean cambiados los métodos de acceso a los datos". El comportamiento de los programas de aplicación y de la actividad de usuarios vía terminales debería ser predecible basados en la definición lógica de la base de datos, y este comportamiento debería permanecer inalterado, independientemente de los cambios en la definición física de ésta. Regla No. 9 - La regla de independencia lógica "Los programas de aplicación y las actividades de acceso por terminal deben permanecer lógicamente inalteradas cuando quiera que se hagan cambios (según los permisos asignados) en las tablas de la base de datos". La independencia lógica de los datos especifica que los programas de aplicación y las actividades de terminal deben ser independientes de la estructura lógica, por lo tanto los cambios en la estructura lógica no deben alterar o modificar estos programas de aplicación. Regla No. 10 - La regla de la independencia de la integridad "Todas las restricciones de integridad deben ser definibles in los datos, y almacenables en el catalogo, no n el programa de aplicación". Las reglas de integridad son: 1. Ningún componente de una llave primaria puede tener valores en blanco o nulos. (esta es la norma básica d integridad). 2. Para cada valor de llave foránea deberá existir una valor de llave primaria concordante. La combinación de estas reglas aseguran que haya Integridad referencial. Regla No. 11 - La regla de la distribución "El sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos esté distribuida físicamente en distintos lugares sin que esto afecte o altere a los programas de aplicación". El soporte para bases de datos distribuidas significa que una colección arbitraria de relaciones, bases de datos corriendo en una mezcla de distintas máquinas y distintos sistemas operativos y que este conectada por una variedad de redes, pueda funcionar como si estuviera disponible como una única base de datos en una sola máquina. Regla No. 12 - Regla de la no-subversión "Si el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser usados para violar la integridad de las reglas y restricciones expresadas en un lenguaje de alto
  • 8. nivel(como SQL)". Algunos productos solamente construyen una interfaz relacional para sus bases de datos No relacionales, lo que hace posible la subversión (violación) de las restricciones de integridad. Esto no debe ser permitido. RESUMEN TAL COMO LO ANUNCIAMOS, A CONTINUACIÓN PRESENTAREMOS UN RESUMEN EN TERMINOLOGÍA DE FÁCIL COMPRESNSION, QUE ILUSTRA LOS PRINCIPALES CONCEPTOS DE LAS BASES DE DATOS Y LAS REGLAS DE CODD LLEVADAS A LA PRACTICA. Un RDBMS debe proporcionar a los usuarios la capacidad de almacenar datos en la base de datos, acceder a ellos y actualizarlos. Esta es la función fundamental de un RDBMS y por supuesto, el RDBMS debe ocultar al usuario la estructura física interna (la organización de los archivos y las estructuras de almacenamiento). Un RDBMS debe proporcionar un catálogo en el que se almacenen las descripciones de los datos y que sea accesible por los usuarios. Este catálogo es lo que se denomina diccionario de datos y contiene información que describe los datos de la base de datos (metadatos). Normalmente, un diccionario de datos almacena: Nombre, tipo y tamaño de los datos, Nombre de las relaciones entre los datos. Un RDBMS debe proporcionar un mecanismo que garantice que todas las actualizaciones correspondientes a una determinada transacción se realicen, o que no se realice ninguna. Una transacción en el sistema informático de los empleados de una empresa (por ejemplo) sería dar de alta a un empleado o eliminar un cargo. Una transacción un poco más complicada sería eliminar un Departamento o división y reasignar todos sus empleados a otro Departamento. En este caso hay que realizar varios cambios sobre la base de datos. Si la transacción falla durante su realización, por ejemplo porque falla el hardware (o se va la energía eléctrica) , la base de datos quedará en un estado inconsistente. Algunos de los cambios se habrán hecho y otros no, por lo tanto, los cambios realizados deberán ser deshechos para devolver la base de datos a un estado consistente. Un RDBMS debe proporcionar un mecanismo capaz de recuperar la base de datos en caso de que ocurra algún suceso que la dañe. Como se ha comentado antes, cuando el sistema falla en medio de una transacción, la base de datos se debe devolver a un estado consistente. Este fallo puede
  • 9. ser a causa de un fallo en algún dispositivo hardware o un error del software, que hagan que el RDBMS aborte, o puede ser a causa de que el usuario detecte un error durante la transacción y la aborte antes de que finalice. En todos estos casos, el RDBMS debe proporcionar un mecanismo capaz de recuperar la base de datos llevándola a un estado consistente. Un RDBMS debe proporcionar un mecanismo que garantice que sólo los usuarios autorizados pueden acceder a la base de datos. La protección debe ser contra accesos no autorizados, tanto intencionados como accidentales. Un RDBMS debe ser capaz de integrarse con algún software de comunicación. Muchos usuarios acceden a la base de datos desde terminales. En ocasiones estos terminales se encuentran conectados directamente a la máquina sobre la que funciona el RDBMS. En otras ocasiones los terminales están en lugares remotos, por lo que la comunicación con la máquina que alberga al RDBMS se debe hacer a través de una red. En cualquiera de los dos casos, el RDBMS recibe peticiones en forma de mensajes y responde de modo similar. Todas estas transmisiones de mensajes las maneja el gestor de comunicaciones de datos. Aunque este gestor no forma parte del RDBMS, es necesario que el RDBMS se pueda integrar con él para que el sistema sea comercialmente viable. Un RDBMS debe proporcionar los medios necesarios para garantizar que tanto los datos de la base de datos, como los cambios que se realizan sobre estos datos, sigan ciertas reglas. La integridad de la base de datos requiere la validez y consistencia de los datos almacenados. Se puede considerar como otro modo de proteger la base de datos, pero además de tener que ver con la seguridad, tiene otras implicaciones. La integridad se ocupa de la calidad de los datos. Normalmente se expresa mediante restricciones, que son una serie de reglas que la base de datos no puede violar. Por ejemplo, se puede establecer la restricción de que el número de cédula de un empleado no puede tener caracteres alfanuméricos, o por ejemplo que para dar de alta un empleado éste debe pertenecer obligatoriamente a un Departamento. En este caso sería deseable que el RDBMS controlara que no se violen esas reglas cada vez que se ingresen los datos de un empleado a la base de datos de la empresa.
  • 10. MySQL El software MySQL® proporciona un servidor de base de datos SQL (StructuredQueryLanguage) muy rápido, multi-threaded, multi usuario y robusto. El servidor MySQL está diseñado para entornos de producción críticos, con alta carga de trabajo así como para integrarse en software para ser distribuido. MySQL es una marca registrada de MySQL AB. 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 PublicLicense (http://www.fsf.org/licenses/) o pueden adquirir una licencia comercial estándar de MySQL AB. Consulte http://www.mysql.com/company/legal/licensing/ para más información acerca de nuestras políticas de licencia. La siguiente lista describe algunas secciones de particular interés en este manual: Para una discusión acerca de las capacidades del servidor de base de datos MySQL consulte Sección 1.4.2, “Las principales características de MySQL”. Para instrucciones acerca de la instalación, consulte Capítulo 2, Instalar MySQL. Para consejos sobre portar el software MySQL a nuevas arquitecturas o sistemas operativos, consulteApéndice D, Portar a otros sistemas. Para información acerca de actualizar desde la versión 4.1, consulte Sección 2.10.1, “Aumentar la versión de 4.1 a 5.0”. Para un tutorial introductorio al servidor de base de datos MySQL, consulte Capítulo 3, Curso (tutorial) de MySQL. Para ejemplos de SQL e información de rendimiento, consulte el directorio de pruebas de rendimiento (sql-bench en la distribución). Para la historia de nuevas características y fallos arreglados, consulte Apéndice C, Historial de cambios de MySQL. Para una lista de fallos conocidos y características no implementadas, consulte Sección A.8, “Problemas conocidos en MySQL”. Para la lista de todos los que han contribuido a este proyecto, consulte Apéndice B, Credits.
  • 11. 1.4.2. Las principales características de MySQL La siguiente lista describe algunas de las características más importantes del software de base de datos MySQL. Consulte Sección 1.5, “Mapa de desarrollo de MySQL” para más información acerca de las características actuales y próximas. Interioridades y portabilidad  Escrito en C y en C++  Probado con un amplio rango de compiladores diferentes  Funciona en diferentes plataformas. Consulte Sección 2.1.1, “Sistemas operativos que MySQL soporta”.  Usa GNU Automake, Autoconf, y Libtool para portabilidad.  APIs disponibles para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, y Tcl. Consulte Capítulo 24, APIs de MySQL.  Uso completo de multi-threaded mediante threads del kernel. Pueden usarse fácilmente multipleCPUs si están disponibles.  Proporciona sistemas de almacenamiento transaccionales y no transaccionales.  Usa tablas en disco B-tree (MyISAM) muy rápidas con compresión de índice.  Relativamente sencillo de añadir otro sistema de almacenamiento. Esto es útil si desea añadir una interfaz SQL para una base de datos propia.  Un sistema de reserva de memoria muy rápido basado en threads.  Joins muy rápidos usando un multi-join de un paso optimizado.  Tablas hash en memoria, que son usadas como tablas temporales.  Las funciones SQL están implementadas usando una librería altamente optimizada y deben ser tan rápidas como sea posible. Normalmente no hay reserva de memoria tras toda la inicialización para consultas.  El código MySQL se prueba con Purify (un detector de memoria perdida comercial) así como con Valgrind, una herramienta GPL (http://developer.kde.org/~sewardj/).  El servidor está disponible como un programa separado para usar en un entorno de red cliente/servidor. También está disponible como biblioteca y puede ser incrustado (linkado) en aplicaciones autónomas. Dichas aplicaciones pueden usarse por sí mismas o en entornos donde no hay red disponible..
  • 12. Tipos de columnas  Diversos tipos de columnas: enteros con/sin signo de 1, 2, 3, 4, y 8 bytes de longitud, FLOAT, DOUBLE, CHAR,VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTA MP, YEAR, SET, ENUM, y tipos espaciales OpenGIS. Consulte Capítulo 11, Tipos de columna.  Registros de longitud fija y longitud variable. Sentencias y funciones  Soporte completo para operadores y funciones en las cláusulas de consultas SELECT y WHERE. Por ejemplo:  mysql> SELECT CONCAT(first_name, ' ', last_name)  -> FROM citizen -> WHERE income/dependents > 10000 AND age > 30;  Soportecompletoparalascláusulas SQL GROUP BY y ORDER BY. Soporte de funciones de agrupación (COUNT(),COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX(), MIN(), y GROUP_CONCAT()).  Soporte para LEFT OUTER JOIN y RIGHT OUTER JOIN cumpliendo estándares de sintaxis SQL y ODBC.  Soporte para alias en tablas y columnas como lo requiere el estándar SQL.  DELETE, INSERT, REPLACE, y UPDATE devuelven el número de filas que han cambiado (han sido afectadas). Es posible devolver el número de filas que serían afectadas usando un flag al conectar con el servidor.  El comando específico de MySQL SHOW puede usarse para obtener información acerca de la base de datos, el motor de base de datos, tablas e índices. El comando EXPLAIN puede usarse para determinar cómo el optimizador resuelve una consulta.  Los nombres de funciones no colisionan con los nombres de tabla o columna. Por ejemplo, ABS es un nombre válido de columna. La única restricción es que para una llamada a una función, no se permiten espacios entre el nombre de función y el '(' a continuación. Consulte Sección 9.6, “Tratamiento de palabras reservadas en MySQL”.  Puede mezclar tablas de distintas bases de datos en la misma consulta (como en MySQL 3.22). Seguridad
  • 13. Un sistema de privilegios y contraseñas que es muy flexible y seguro, y que permite verficación basada en el host. Las contraseñas son seguras porque todo el tráfico de contraseñas está cifrado cuando se conecta con un servidor. Escalabilidad y límites  Soporte a grandes bases de datos. Usamos MySQL Server con bases de datos que contienen 50 millones de registros. También conocemos a usuarios que usan MySQL Server con 60.000 tablas y cerca de 5.000.000.000.000 de registros.  Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice puede consistir desde 1 hasta 16 columnas o partes de columnas. El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2).Un índice puede usar prefijos de una columna para los tipos de columna CHAR, VARCHAR, BLOB, o TEXT. Conectividad  Los clientes pueden conectar con el servidor MySQL usando sockets TCP/IP en cualquier plataforma. En sistemas Windows de la familia NT (NT,2000,XP, o 2003), los clientes pueden usar named pipes para la conexión. En sistemas Unix, los clientes pueden conectar usando ficheros socket Unix.  En MySQL 5.0, los servidores Windows soportan conexiones con memoria compartida si se inicializan con la opción --shared-memory. Los clientes pueden conectar a través de memoria compartida usando la opción --protocol=memory.  La interfaz para el conector ODBC (MyODBC) proporciona a MySQL soporte para programas clientes que usen conexiones ODBC (Open DatabaseConnectivity). Por ejemplo, puede usar MS Access para conectar al servidor MySQL. Los clientes pueden ejecutarse en Windows o Unix. El código fuente de MyODBC está disponible. Todas las funciones para ODBC 2.5 están soportadas, así como muchas otras. Consulte Sección 25.1, “MySQLConnector/ODBC”.  La interfaz para el conector J MySQL proporciona soporte para clientes Java que usen conexiones JDBC. Estos clientes pueden ejecutarse en Windows o Unix. El código fuente para el conector J está disponible. ConsulteSección 25.4, “MySQLConnector/J”. Localización  El servidor puede proporcionar mensajes de error a los clientes en muchos idomas. Consulte Sección 5.9.2, “Escoger el idioma de los mensajes de error”.
  • 14. Soporte completo para distintos conjuntos de caracteres, incluyendo latin1 (ISO-8859- 1), german, big5, ujis, y más. Por ejemplo, los caracteres escandinavos 'â', 'ä' y 'ö' están permitidos en nombres de tablas y columnas. El soporte para Unicode está disponible  Todos los datos se guardan en el conjunto de caracteres elegido. Todas las comparaciones para columnas normales de cadenas de caracteres son case- insensitive.  La ordenación se realiza acorde al conjunto de caracteres elegido (usando colación Sueca por defecto). Es posible cambiarla cuando arranca el servidor MySQL. Para ver un ejemplo de ordenación muy avanzada, consulte el código Checo de ordenación. MySQL Server soporta diferentes conjuntos de caracteres que deben ser especificados en tiempo de compilación y de ejecución. Clientes y herramientas  MySQL server tiene soporte para comandos SQL para chequear, optimizar, y reparar tablas. Estos comandos están disponibles a través de la línea de comandos y el cliente mysqlcheck. MySQL también incluye myisamchk, una utilidad de línea de comandos muy rápida para efectuar estas operaciones en tablas MyISAM. ConsulteCapítulo 5, Administración de bases de datos.  Todos los programas MySQL pueden invocarse con las opciones --help o -? para obtener asistencia en línea.