Вы находитесь на странице: 1из 17

BASES DE DATOS

AVANZADAS
Sesión 12 – Formatos de tablas, localización e
internacionalización
Formatos de tablas
 Hasta ahora hemos visto 2 formatos de tablas
principales
 MyISAM
 Sin transacciones
 Búsquedas rápidas

 InoDB
 Transacciones
 Llaves foráneas
 Bloqueos a nivel registro
 Búsquedas no tan rápidas
Formatos de tablas
 Existen muchos más formatos de tablas...
 Algunas tienen soporte para transacciones y
otras no
 Para determinar que formatos de tablas
soporta un servidor de mysql se puede
emplear el comando
 Show Engines;
Formatos de tablas
Formatos de tablas
● InnoDB ● Memory
● Compatible con ACID ● Almacena toda la
● Bloqueo a nivel información en
registro RAM
● MyISAM ● Perfecto para
● Usado comunmente búsquedas rápidas,
en aplicaciones web con pocos datos
● Búsquedas rápidas
● Los datos se
● No compatible con eliminan al detener
ACID
el servidor
Formatos de tablas
● Merge ● Federated
● Permite tener ● Permite tener tablas
redundancia de tablas distribuidas en
tipo MyISAM para múltiples servidores
ambientes con alta como si estuviesen
demanda localmente
● Archive ● CSV
● Permite almacenar ● Almacena la
datos históricos que no información en
son de uso frecuente, archivos de texto plano
en modo comprimido ● Se puede usar para
intercambiar
información con otras
aplicaciones
Formatos de tablas
● Blackhole ● Example
● Literalmente, todo ● No tiene uso
lo que se le manda, práctico
se destruye ● Solo sirve como
● Usado en ejemplo para
aplicaciones desarrollar otros
distribuidas con formatos de tablas
replicación
Formatos de tablas
Característica MyISAM Memory InnoDB Archive
Capacidad de 256TB RAM 64TB Sin límite
almacenamiento
Transacciones No No Sí No
Granularidad de Tabla Tabla Registro Tabla
bloqueos
Llaves foráneas No No Sí No
Índices FULL Sí No No No
TEXT
Formatos de tablas
● Crear una tabla con un formato de tabla
determinado
● CREATE TABLE <nombre> (<campos>) ENGINE
= <formato de tabla>
● Cambiar el formato de tabla de una existente
● ALTER TABLE <nombre de tabla> ENGINE =
<nuevo formato>;
Localización e internacionalización
Localización e internacionalización
● Internacionalización
● La capacidad de MySQL para ser usado en diferentes
países
– Japon
– China
– Rusia
– México
● Localización
● Emplear convenciones locales
– Formatos de fecha / hora
– Formatos de moneda
Localización e internacionalización

● Sets de caracteres
● Ejemplos son
– UTF8
– ISO-8859-1
● Especifican cómo se almacenará y representará
un caracter físicamente
● MySQL puede emplear difierentes sets de
caracteres
– Para la comunicación entre el cliente y el servidor
– Para almacenar texto dentro de un registro
Localización e internacionalización

● Para establecer el set de caracteres para la


comunicación entre cliente/servidor:
● SET NAMES 'utf8';
● Establecer el set de caracteres para una base
de datos
● CREATE DATABASE db_name
CHARACTER SET charset_name
COLLATE collation_name
● CREATE DATABASE db_name CHARACTER
SET latin1 COLLATE latin1_swedish_ci
Localización e internacionalización

● A nivel tabla
● CREATE TABLE t1 ( ... ) CHARACTER SET latin1
COLLATE latin1_danish_ci
● A nivel columna
● CREATE TABLE t1 (col1 VARCHAR(5)
CHARACTER SET latin1 COLLATE
latin1_german1_ci );
Localización e internacionalización

● Localización
● Afecta despliegue de formato de fechas, nombres
de días de la semana, meses...
● Para averiguar el formato de localización actual
– SELECT @@lc_time_names;
Localización e internacionalización

● Ejemplos de despliegue de formatos de


localización
● SELECT DAYNAME('2010-01-01'),
MONTHNAME('2010-01-01');
● SELECT DATE_FORMAT('2010-01-01','%W %a
%M %b');
● Para cambiar la localización
● SET lc_time_names = 'es_MX';
● Intente los mismos ejemplos
Localización e internacionalización

● Lista completa de localizaciones soportadas


● http://dev.mysql.com/doc/refman/5.5/en/locale-
support.html