Está en la página 1de 21

3.

Administracin de bases de datos


3.1 DBMS
3.1.1 Definicin
Es un sistema robusto que es capaz de emplear algoritmos de almacenamiento y recuperacin de informacin para poder implementar un modelo de datos de manera fsica garantizando que todas las transacciones que se realizan con respecto a dichos datos sean "cidas" (Atomicity, Consistency, Isolation, Duration).

3.1.2 Arquitectura de un manejador de bases de datos (DBMS)


Nota: Las partes utilizadas para ejemplificar la arquitectura se refieren a Oracle Una base de datos en ejecucin consta de 3 cosas: Archivos Control (ctl): almacenan informacin acerca de la estructura de archivos de la base. Rollback (rbs): cuando se modifica el valor de alguna tupla en una transaccin, los valores nuevos y anteriores se almacenan en un archivo, de modo que si ocurre algn error, se puede regresar (rollback) a un estado anterior. Redo (rdo): bitcora de toda transaccin, en muchos dbms incluye todo tipo de consulta incluyendo aquellas que no modifican los datos. Datos (dbf): el tipo ms comn, almacena la informacin que es accesada en la base de datos. Indices (dbf) (dbi): archivos hermanos de los datos para acceso rpido. Temp (tmp): localidades en disco dedicadas a operaciones de ordenamiento o alguna actividad particular que requiera espacio temporal adicional. Memoria Shared Global Area (SGA): es el rea ms grande de memoria y quizs el ms importante Shared Pool: es una cach que mejora el rendimiento ya que almacena parte del diccionario de datos y el parsing de algunas consultas en SQL

Redo Log Buffer: contiene un registro de todas las transacciones dentro de la base, las cuales se almacenan en el respectivo archivo de Redo y en caso de siniestro se vuelven a ejecutar aquellos cambios que an no se hayan reflejado en el archivo de datos (commit). Large Pool: espacio adicional, generalmente usado en casos de multithreading y esclavos de I/O. Java Pool: usado principalmente para almacenar objetos Java Program Global Area (PGA): informacin del estado de cursores/apuntadores User Global Area(UGA): informacin de sesin, espacio de stack Procesos Threading System Monitor: despierta peridicamente y realiza algunas actividades entre las que se encuentran la recuperacin de errores, recuperacin de espacio libre en tablespaces y en segmentos temporales. Process Monitor: limpia aquellos procesos que el usuario termina de manera anormal, verificando consistencias, liberacin de recursos, bloqueos. Database Writer: escribe bloques de datos modificados del buffer al disco, aquellas transacciones que llegan a un estado de commit. Log Writer: escribe todo lo que se encuentra en el redo log buffer hacia el redo file Checkpoint: sincroniza todo lo que se tenga en memoria, con sus correspondientes archivos en disco

Instancia de una bd en Oracle

Rotacin de segmentos de rollback

Rotacin de bitcoras de Redo

Ejemplo del esquema de una base de datos en Oracle

Utilizacin del Shared Pool

Ejemplo del control de transaccin

3.1.3 Tipos de instancias de un DBMS


Online Transaction Processing (OLTP): compra/venta, telemarketing Segmentos cortos de rollback Shared Pool muy largo Redo log suficiente Indices en discos separados Segmentos temporales pequeos Decision Support Systems (DSS): datawarehouse Segmentos largos de rollback

Shared Pool relativamente corto Redo log suficiente Indices apropiados Segmentos largos de temporal Parallel Query en la medida de lo posible (si est disponible)

3.1.4 Tipos de implementaciones


Por otro lado un dbms puede ser implantado de 2 formas: Cliente-Servidor Three tier

Implantacin Cliente-Servidor de un DBMS

Implantacin 3 Tier de un DBMS Finalmente, tambin se puede considerar la opcin de crear clusters de mquinas o discos para poder brindar disponibilidad y escalabilidad. Existen 2 tipos de clusters: SharedNothing: explota mejor hardware econmico casi ilimitada escalabilidad trabaja bien en ambientes r-w los datos estn particionados a travs del cluster

ShareNothing Cluster SharedDisk: adaptabilidad para el balance de cargas gran disponibilidad se desempea mejor en ambientes de solo r los datos no necesitan particionarse

DiskShared Cluster

3.2 Administracin de un DBMS real


3.2.1 MySQL
MySQL (pronunciado mai-es-quiu-el), es una manejador de bases de datos relacional bastante robusto, de cdigo abierto bajo la licencia GPL el cual se ha convertido en el ms popular hoy en da. Su origen se debi a la bsqueda por parte de los fundadores de crear un manejador de bases de datos que fuera "rpido", todava ms rapido que mSQL. As surgi MySQL, primero como un producto de la empresa y despes como software de dominio pblico. El nombre de My se debe probablemente a que la hija del cofundador Monty Widenius reciba ese sobrenombre, aunque a ciencia cierta nunca se ha revelado el origen. Por otro lado en el ao 2002 MySQL tuvo un logo ms original que el simple nombre, incluyendo un delfn, el cual a travs de una encuesta en la pgina web recibi su nombre: "Sakila", de origen africano. 3.2.1.1 Por qu usar MySQL ?

Es importante resaltar que no se trata de una herramienta de juguete o aprendizaje, MySQL es un manejador que puede competir competir con sus famosas contrapartes comerciales: Oracle, DB2, Informix, Sybase. Bsicamente los motivos por los cuales se podra optar por usar MySQL en lugar de otro manejador seran: Es gratis Es extensible Es robusto Es rpido No requiere de una gran nmero de recursos para funcionar (obviamente para aplicaciones a gran escala es mejor contar con una buena infraestructura) Es fcil de administrar

3.2.1.2 Instalacin Bsica MySQL posee varias versiones 3, 4 y 5 siendo la 3 la ms estable y la 5 la ms experimental Los cambios en la versin 4 permiten tener mayor funcionalidad, teniendo por ejemplo queries anidados y bsquedas a texto completo. MySQL posee 4 tipos de tablas (y en consecuencia de ndices): Index MyISAM Heap BerkeleyDB Innodb Versin Standard, Max Standard, Max Max Max

Tabla 3.1 Indexamiento en MySQL

MyISAM se basa en un indexamiento por bloques, Heap es una tabla que existe solo en memoria, mientras que BDB e InnoDB utilizan BTrees. Se puede observar que existen 2 variantes del software, la Standard y la Max; la diferencia radica en el soporte de transacciones que es posible en la versin Max gracias a los mdulos de Berkeley DB e InnoDB incorporados en ella. Es importante resaltar que aunque esta funcionalidad esta disponible no es la configuracin por default, salvo que se indique lo contrario, siempre tipo de indexamiento por defecto ser MyISAM. El equipo MySQL recomienda bajar los binarios compilados por ellos para evitar cualquier tipo de problema, de manera que en la seccin de "Database Server" se puede bajar el binario de la versin deseada. Una vez descargado el software se procede a desempaquetarlo (.tgz, zip) o bien ejecutar el .exe correspondiente. Dichos directorios contenidos en un directorio que por lo general lleva el mismo nombre 'mysql' contiene una estructura de la siguiente manera: bin: programas ejecutables, mysql, mysqld, mysqldump, myisamchk, mysqlbinlog. include, lib, libexec: libreras y encabezados para programar en C/C++

mysql-test, sql-bench: pruebas y benchmarks var data: estructura de todas las bases y datos de las tablas tipo MyISAM y Berkeley DB. man: pginas de manual share: informacin en distintos idiomas support-files: archivos de configuracin y scripts de arranque automtico Antes de poder ejecutar el demonio (o guardin) del manejador, es conveniente realizar una configuracin, para ello se tiene que editar alguno de los archivos .cnf, los cuales se encuentran ubicados en el directorio raz de mysql o bien en el directorio support-files. El archivo elegido dependera de la configuracin de la mquina (small, medium, large, huge), cada archivo provee informacin acerca de la memoria apropiada para cada configuracin. La tabla 3.2 muestra un ejemplo de configuracin para una arquitectura media. Parte de la tarea de configuracin es habilitar el soporte de InnoDB, configurando cada una de las variables de acuerdo a lo propuesto en 3.2, desde luego los aspectos ms importantes sern los buffers
# E x a m p l em y s q lc o n f i gf i l ef o rm e d i u ms y s t e m s . # #T h i si sf o ras y s t e mw i t hl i t t l em e m o r y( 3 2 M-6 4 M )w h e r eM y S Q Lp l a y s #ai m p o r t a n tp a r ta n ds y s t e m su pt o1 2 8 Mv e r yM y S Q Li su s e dt o g e t h e rw i t h #o t h e rp r o g r a m s( l i k eaw e bs e r v e r ) # #Y o uc a nc o p yt h i sf i l et o #/ e t c / m f . c n ft os e tg l o b a lo p t i o n s , #m y s q l d a t a d i r / m y . c n ft os e ts e r v e r s p e c i f i co p t i o n s( i nt h i s #i n s t a l l a t i o nt h i sd i r e c t o r yi s/ c e n t i a 0 1 / d e v e l o p / d a t a b a s e / m y s q l / v a r )o r #~ / . m y . c n ft os e tu s e r s p e c i f i co p t i o n s . # #O n ec a ni nt h i sf i l eu s ea l ll o n go p t i o n st h a tt h ep r o g r a ms u p p o r t s . #I fy o uw a n tt ok n o ww h i c ho p t i o n sap r o g r a ms u p p o r t ,r u nt h ep r o g r a m #w i t hh e l po p t i o n . #T h ef o l l o w i n go p t i o n sw i l lb ep a s s e dt oa l lM y S Q Lc l i e n t s [ c l i e n t ] # p a s s w o r d=y o u r _ p a s s w o r d p o r t=3 3 0 6 s o c k e t=/ t m p / m y s q l . s o c k #H e r ef o l l o w se n t r i e sf o rs o m es p e c i f i cp r o g r a m s #T h eM y S Q Ls e r v e r [ m y s q l d ] p o r t=3 3 0 6 s o c k e t=/ t m p / m y s q l . s o c k s k i p l o c k i n g s e t v a r i a b l e=k e y _ b u f f e r = 6 4 M s e t v a r i a b l e=m a x _ a l l o w e d _ p a c k e t = 2 5 6 M s e t v a r i a b l e=t a b l e _ c a c h e = 6 4 s e t v a r i a b l e=s o r t _ b u f f e r = 5 1 2 K s e t v a r i a b l e=n e t _ b u f f e r _ l e n g t h = 8 K s e t v a r i a b l e=m y i s a m _ s o r t _ b u f f e r _ s i z e = 1 6 M s e t v a r i a b l e=m a x _ c o n n e c t i o n s = 5 0 0

s e t v a r i a b l e=i n t e r a c t i v e _ t i m e o u t = 6 0 4 8 0 0 s e t v a r i a b l e=w a i t _ t i m e o u t = 6 0 4 8 0 0 l o g b i n s e r v e r i d=1 s e t v a r i a b l e = d e f a u l t _ t a b l e _ t y p e = i n n o d b #P o i n tt h ef o l l o w i n gp a t h st od i f f e r e n td e d i c a t e dd i s k s t m p d i r=/ v a r / t m p / # l o g u p d a t e=/ m y s q l / v a r / l o g c a t a r i n a #U n c o m m e n tt h ef o l l o w i n gi fy o ua r eu s i n gB D Bt a b l e s s e t v a r i a b l e=b d b _ c a c h e _ s i z e = 4 M s e t v a r i a b l e=b d b _ m a x _ l o c k = 1 0 0 0 0 #U n c o m m e n tt h ef o l l o w i n gi fy o ua r eu s i n gI n n o b a s et a b l e s i n n o d b _ d a t a _ f i l e _ p a t h=i b d a t a 1 : 3 0 G : a u t o e x t e n d i n n o d b _ d a t a _ h o m e _ d i r=/ m y s q l / i n n o d b i n n o d b _ l o g _ g r o u p _ h o m e _ d i r=/ m y s q l / i n n o d b i n n o d b _ l o g _ a r c h _ d i r=/ m y s q l / i n n o d b s e t v a r i a b l e=i n n o d b _ m i r r o r e d _ l o g _ g r o u p s = 1 s e t v a r i a b l e=i n n o d b _ l o g _ f i l e s _ i n _ g r o u p = 3 s e t v a r i a b l e=i n n o d b _ l o g _ f i l e _ s i z e = 5 M s e t v a r i a b l e=i n n o d b _ l o g _ b u f f e r _ s i z e = 1 6 M i n n o d b _ f l u s h _ l o g _ a t _ t r x _ c o m m i t = 1 i n n o d b _ l o g _ a r c h i v e = 0 s e t v a r i a b l e=i n n o d b _ b u f f e r _ p o o l _ s i z e = 2 5 6 M s e t v a r i a b l e=i n n o d b _ a d d i t i o n a l _ m e m _ p o o l _ s i z e = 2 5 6 M s e t v a r i a b l e=i n n o d b _ f i l e _ i o _ t h r e a d s = 4 s e t v a r i a b l e=i n n o d b _ l o c k _ w a i t _ t i m e o u t = 5 0 # s e t v a r i a b l e=i n n o d b _ f o r c e _ r e c o v e r y = 3 [ m y s q l d u m p ] q u i c k s e t v a r i a b l e=m a x _ a l l o w e d _ p a c k e t = 2 5 6 M [ m y s q l ] p r o m p t = ( \ u )[ \ d ] > \ _ n o a u t o r e h a s h #R e m o v et h en e x tc o m m e n tc h a r a c t e ri fy o ua r en o tf a m i l i a rw i t hS Q L # s a f e u p d a t e s [ i s a m c h k ] s e t v a r i a b l e=k e y _ b u f f e r = 2 0 M s e t v a r i a b l e=s o r t _ b u f f e r = 2 0 M s e t v a r i a b l e=r e a d _ b u f f e r = 2 M s e t v a r i a b l e=w r i t e _ b u f f e r = 2 M [ m y i s a m c h k ] s e t v a r i a b l e=k e y _ b u f f e r = 2 0 M s e t v a r i a b l e=s o r t _ b u f f e r = 2 0 M s e t v a r i a b l e=r e a d _ b u f f e r = 2 M s e t v a r i a b l e=w r i t e _ b u f f e r = 2 M [ m y s q l h o t c o p y ] i n t e r a c t i v e t i m e o u t

Tabla 3.2 Archivo de Configuracin my.cnf, my.ini 3.2.1.2 Arranque y Terminacin Arranque del manejador Una vez configurado se puede iniciar el demonio del dbms a travs del comando "mysqld" o alguna de sus variantes "safe_mysqld",

"mysqld-max" Esto se puede hacer desde cualquier terminal y se pueden pasar como parametros algunas de las mismas variables disponibles para configuracin (en caso de necesitar alguna opcin particular) Terminacin del manejador Se puede hacer de 2 maneras a) Usando el comando "mysqladmin shutdown" b) Matando el proceso asociado 3.2.1.3 Creacin de bases y cuentas de usuario La tabla 3.3 muestra la manera en que cualquier usuario puede conectarse a la base llamada 'mysql' con el usuario 'root', para ello es indispensable contar con el password correspondiente; como se presentar ms adelante la cuenta del super usuario 'root' se administra de manera similar que los dems usuario.
[ d i g i t a l @ p c p r o a ld i g i t a l ] $m y s q lur o o tpm y s q l E n t e rp a s s w o r d :* * * * W e l c o m et ot h eM y S Q Lm o n i t o r .C o m m a n d se n dw i t h;o r\ g . Y o u rM y S Q Lc o n n e c t i o ni di s1t os e r v e rv e r s i o n :4 . 1 . 0 a l p h a l o g T y p e' h e l p ; 'o r' \ h 'f o rh e l p .T y p e' \ c 't oc l e a rt h eb u f f e r . ( r o o t )[ m y s q l ] >

Tabla 3.3 Conexin con el dbms La tabla 3.4 muestra las tablas correspondientes a la base principal y que administra todos los usuarios, mquinas y bases permitidas en el manejador, recordando que se trata de un esquema relacional en el cual por ejemplo los usuarios se encuentran vinculados son bases de datos, de manera que no pueden existir problemas de seguridad al haber algun usuario malintencionado que pretenda modificar una base a la cual no tenga acceso.

( r o o t )[ m y s q l ] >s h o wd a t a b a s e s ; + + |D a t a b a s e | + + |m y s q l | + + 1r o w si ns e t( 0 . 1 2s e c ) ( r o o t )[ m y s q l ] >s h o wt a b l e s ; + + |T a b l e s _ i n _ m y s q l| + + |c o l u m n s _ p r i v | |d b | |f u n c | |h e l p _ c a t e g o r y | |h e l p _ r e l a t i o n | |h e l p _ t o p i c | |h o s t | |t a b l e s _ p r i v | |u s e r | + + 9r o w si ns e t( 0 . 1 0s e c )

Tabla 3.4 Tablas de administracin del dbms Para cada tabla se puede emplear el comando 'desc' o 'describe' para analizar la estructura de cada tabla y apreciar la relacin que tiene con las dems. Para dar de un alta un usuario, ejemplo de la tabla 3.5, se debe crear el usuario dentro de la tabla 'user', crear la base de datos y posteriormente asociar dicho usuario con la base en la tabla 'bd', todo lo anterior utilizando instrucciones de SQL tradicionales.

( r o o t )[ m y s q l ] >d e s cu s e r ; + + + + + + + + |F i e l d |T y p e |C o l l a t i o n |N u l l|K e y|D e f a u l t|E x t r a| + + + + + + + + |H o s t |v a r c h a r ( 6 0 )b i n a r y |b i n a r y | |P R I| | | |U s e r |v a r c h a r ( 1 6 )b i n a r y |b i n a r y | |P R I| | | |P a s s w o r d |v a r c h a r ( 4 5 )b i n a r y |b i n a r y | | | | | |S e l e c t _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |I n s e r t _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |U p d a t e _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |D e l e t e _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |C r e a t e _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |D r o p _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |R e l o a d _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |S h u t d o w n _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |P r o c e s s _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |F i l e _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |G r a n t _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |R e f e r e n c e s _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |I n d e x _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | |

|A l t e r _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |S h o w _ d b _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |S u p e r _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |C r e a t e _ t m p _ t a b l e _ p r i v|e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |L o c k _ t a b l e s _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |E x e c u t e _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |R e p l _ s l a v e _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |R e p l _ c l i e n t _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |s s l _ t y p e |e n u m ( ' ' , ' A N Y ' , ' X 5 0 9 ' , ' S P E C I F I E D ' )|l a t i n 1 _ s w e d i s h _ c i| | | | | |s s l _ c i p h e r |b l o b |b i n a r y | | | | | |x 5 0 9 _ i s s u e r |b l o b |b i n a r y | | | | | |x 5 0 9 _ s u b j e c t |b l o b |b i n a r y | | | | | |m a x _ q u e s t i o n s |i n t ( 1 1 )u n s i g n e d |b i n a r y | | |0 | | |m a x _ u p d a t e s |i n t ( 1 1 )u n s i g n e d |b i n a r y | | |0 | | |m a x _ c o n n e c t i o n s |i n t ( 1 1 )u n s i g n e d |b i n a r y | | |0 | | + + + + + + + + 3 1r o w si ns e t( 0 . 0 0s e c ) ( r o o t )[ m y s q l ] >d e s cd b ; + + + + + + + + |F i e l d |T y p e |C o l l a t i o n |N u l l|K e y|D e f a u l t|E x t r a| + + + + + + + + |H o s t |c h a r ( 6 0 )b i n a r y|b i n a r y | |P R I| | | |D b |c h a r ( 6 4 )b i n a r y|b i n a r y | |P R I| | | |U s e r |c h a r ( 1 6 )b i n a r y|b i n a r y | |P R I| | | |S e l e c t _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |I n s e r t _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |U p d a t e _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |D e l e t e _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |C r e a t e _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |D r o p _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |G r a n t _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |R e f e r e n c e s _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |I n d e x _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |A l t e r _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |C r e a t e _ t m p _ t a b l e _ p r i v|e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | |L o c k _ t a b l e s _ p r i v |e n u m ( ' N ' , ' Y ' ) |l a t i n 1 _ s w e d i s h _ c i| | |N | | + + + + + + + + ( r o o t )[ m y s q l ] >i n s e r ti n t ou s e r( h o s t , u s e r , p a s s w o r d )v a l u e s( ' % ' , ' c a r l o s ' , p a s s w o r d ( ' l o l o ' ) ) ; Q u e r yO K ,1r o wa f f e c t e d( 0 . 0 7s e c ) ( r o o t )[ m y s q l ] >s e l e c t*f r o mu s e rw h e r eu s e r = ' c a r l o s ' ; + + + + + + + + |H o s t|U s e r |P a s s w o r d |S e l e c t _ p r i v|I n s e r t _ p r i v|U p d a t e _ p r i v|D e l e t e _ p r i v| + + + + + + + + |% |c a r l o s|* 8 7 f 0 2 1 2 a f 7 4 2 0 c e 3 e 0 b 2 b 8 9 9 2 e b 4 2 d d a 4 b e 5 4 c 9 1 2 5 b 3|N |N |N |N | + + + + + + + + 1r o wi ns e t( 0 . 0 0s e c ) ( r o o t )[ m y s q l ] >c r e a t ed a t a b a s ep r u e b a ; Q u e r yO K ,1r o wa f f e c t e d( 0 . 0 0s e c ) ( r o o t )[ m y s q l ] >i n s e r ti n t od bv a l u e s( ' % ' , ' p r u e b a ' , ' c a r l o s ' , ' Y ' , ' Y ' , ' Y ' , ' Y ' , ' Y ' , ' Y ' , ' Y ' , ' Y ' , ' Y ' , ' Y ' , ' Y ' , ' Y ' ) ; Q u e r yO K ,1r o wa f f e c t e d( 0 . 0 0s e c ) ( r o o t )[ m y s q l ] >s e l e c t*f r o md bw h e r eu s e r = ' c a r l o s ' ; + + + + + + + + |H o s t|D b |U s e r |S e l e c t _ p r i v|I n s e r t _ p r i v|U p d a t e _ p r i v|D e l e t e _ p r i v|

+ + + + + + + + |% |p r u e b a|c a r l o s|Y |Y |Y |Y | + + + + + + + + 1r o wi ns e t( 0 . 0 9s e c ) ( r o o t )[ m y s q l ] >f l u s hp r i v i l e g e s ; Q u e r yO K ,0r o w sa f f e c t e d( 0 . 0 7s e c )

Tabla 3.5 Creacin de una cuenta de usuario 3.2.1.4 Utilizacin de la base de datos SQL MySQL cumple con el estndar SQL92. Es importante resaltar que aunque no implementa todas las funciones que otros manejadores poseen, es posible realizar cualquier consulta usando los distintos tipos de joins o inclusive a travs de tablas temporales.
[ d i g i t a l @ p c p r o a ld i g i t a l ] $m y s q luc a r l o spp r u e b a E n t e rp a s s w o r d : W e l c o m et ot h eM y S Q Lm o n i t o r . C o m m a n d se n dw i t h;o r\ g . Y o u rM y S Q Lc o n n e c t i o ni di s3t os e r v e rv e r s i o n :4 . 1 . 0 a l p h a l o g T y p e' h e l p ; 'o r' \ h 'f o rh e l p .T y p e' \ c 't oc l e a rt h eb u f f e r . ( c a r l o s )[ p r u e b a ] >s h o wt a b l e s ; E m p t ys e t( 0 . 0 0s e c )

( c a r l o s )[ p r u e b a ] >c r e a t et a b l ea u s e r( i di n tp r i m a r yk e y ,l a s t _ n a m ec h a r ( 2 5 5 ) , f i r s t _ n a m ec h a r ( 2 5 5 ) ) ; Q u e r yO K ,0r o w sa f f e c t e d( 0 . 0 7s e c ) ( c a r l o s )[ p r u e b a ] >s h o wt a b l e s ; + + |T a b l e s _ i n _ p r u e b a| + + |a u s e r | + + 1r o wi ns e t( 0 . 0 0s e c ) ( c a r l o s )[ p r u e b a ] >i n s e r ti n t oa u s e rv a l u e s( 1 , ' p r o a l ' , ' c a r l o s ' ) ; Q u e r yO K ,1r o wa f f e c t e d( 0 . 0 0s e c ) ( c a r l o s )[ p r u e b a ] >s e l e c t*f r o ma u s e r ; + + + + |i d|l a s t _ n a m e|f i r s t _ n a m e| + + + + | 1|p r o a l |c a r l o s | + + + + 1r o wi ns e t( 0 . 0 8s e c )

Tabla 3.6 Ejemplos de SQL Creacin de ndices La sintxis de creacin de ndices no est considerada como un estndar, as que vara en cada dbms, ej. create index index_name on table_name (atrib_1,..atrib_n); En el caso partcular de MySQL toda llave primaria est asociada a un ndice, as que no se requiere crear un ndice adicional para dicho propsito. Por otro lado si se crea un ndice X que contiene a los atributos (a,b,c) ya no es necesario crear un ndice para el caso de hacer una consulta que slo involucre a (a) o (a,b) ya que se emplear el mismo ndice X; para saber con certeza qu ndices de estn empleando en una consulta se puede recurrir a la expresin de 'explain'.

( c a r l o s )[ p r u e b a ] >c r e a t ei n d e xi n a m eo na u s e r ( l a s t _ n a m e , f i r s t _ n a m e ) ; Q u e r yO K ,1r o wa f f e c t e d( 0 . 1 5s e c ) R e c o r d s :1 D u p l i c a t e s :0 W a r n i n g s :0 ( c a r l o s )[ p r u e b a ] >s h o wi n d e xf r o ma u s e r ; + + + + + + + + + + + + + |T a b l e|N o n _ u n i q u e|K e y _ n a m e|S e q _ i n _ i n d e x|C o l u m n _ n a m e|C o l l a t i o n|C a r d i n a l i t y|S u b _ p a r t|P a c k e d|N u l l|I n d e x _ t y p e|C o m m e n t| + + + + + + + + + + + + + |a u s e r| 0|P R I M A R Y | 1|i d |A | 1| N U L L|N U L L | |B T R E E | | |a u s e r| 1|i n a m e | 1|l a s t _ n a m e |A | 1| N U L L|N U L L |Y E S |B T R E E | | |a u s e r| 1|i n a m e | 2|f i r s t _ n a m e |A | 1| N U L L|N U L L |Y E S |B T R E E | | + + + + + + + + + + + + + 3r o w si ns e t( 0 . 0 0s e c ) ( c a r l o s )[ p r u e b a ] >e x p l a i ns e l e c t*f r o ma u s e rw h e r el a s t _ n a m e = ' a g u i l a r ' ; + + + + + + + + + + + |i d|s e l e c t _ t y p e|t a b l e|t y p e|p o s s i b l e _ k e y s|k e y |k e y _ l e n|r e f |r o w s|E x t r a | + + + + + + + + + + + | 1|S I M P L E |a u s e r|r e f |i n a m e |i n a m e| 2 5 6|c o n s t| 1|U s i n gw h e r e ;U s i n gi n d e x| + + + + + + + + + + + 1r o wi ns e t( 0 . 0 8s e c )

Tabla 3.7 Empleo de ndices Mantenimiento y monitoreo de la base Actividad Revisar el estado de las tablas Los procesos que estn ejecutndose Comando show table status; show processlist;

Variables con las que se est ejecutando la instancia Estado actual de innodb; Respaldos

show variables; show innodb status;

La manera usual de hacer un respaldo es usando el comando mysqldump, que posee muchas opciones que permiten duplicar todas las base, una base en particular, una tabla, solo los datos, solo la estructura, etc. Para obtener un respaldo completo de una base
[ d i g i t a l @ p c p r o a ld i g i t a l ] $m y s q l d u m po p tuc a r l o spp r u e b a>p r u e b a . b a k

Para restaurar un respaldo completo de una base


[ d i g i t a l @ p c p r o a ld i g i t a l ] $m y s q luc a r l o spp r u e b a<p r u e b a . b a k

Otra manera de hacer respaldos es atravs del comando "select into" y restaurar los datos con "mysqlimport" o "load data infile".

También podría gustarte