Está en la página 1de 19

Diseo y Administracin de Bases de Datos II

Ing. Luis Reyes


Objetivos
Consolidar los conceptos de los tres objetos de
las bases de datos mas importantes
Conocer caractersticas de MySQL
Explotar el uso de herramientas relacionadas
Ventajas de MySQL?
Es un Sistema Gestor de Bases de Datos disponible
en la mayora de plataformas.
El servidor de Bases de Datos Open Source ms
popular.
Liviano y rpido: adecuado para aplicaciones Web.
Cuenta con APIs disponibles para C, C++, Perl,
PHP, Python, Java, .NET
Novedades de la Base de Datos
Mltiples Instancias del Servidor
Stored Procedures (Procedimientos Almacenados)
Triggers (Disparadores)
Views (Vistas)
Acceso al Metadata de las BD
Configuracin de Mltiples Instancias
Archivo my.ini
#######################################
# Servidor 1 #
######################################
[mysqld1]
datadir = "C:/mydata1/"
port = 3307
enable-named-pipe
socket = pipe1
#######################################
# Servidor 2 #
#######################################
[mysqld2]
datadir = "c:/mydata2/"
port = 3308
enable-named-pipe
socket = pipe2
Configuracin de Mltiples Instancias
Instalacin de las instancias como servicios de
windows:
mysqld-nt - -install mysqld1
mysqld-nt - -install mysqld2
Arranque de las Instancias del servidor:
NET START mysqld1
NET START mysqld2
Stored Procedures
Un procedimiento almacenado es una rutina
(procedimiento o funcin) que es almacenada
dentrode la base de datos.
Sentencias:
CREATE PROCEDURE/FUNCTION
ALTER PROCEDURE/FUNCTION
DROP PROCEDURE/FUNCTION
Stored Procedures: Sintaxis
Sintaxis de Creacin:
CREATE PROCEDURE nombre_proc
([parametro ])
[caracterstica ]
cuerpo_proc
CREATE FUNCTION nombre_func
([parametro ])
RETURNS tipo_dato
[caracterstica ]
cuerpo_func
Stored Procedures
Cuerpo de la Rutina
Especifica que es lo que har la rutina
Puede contener una o ms sentencias SQL
Puede incluir sentencias DECLARE
Sintaxis del cuerpo
BEGIN
[DECLARE variables, cursores, condiciones]
[Sentencias SQL]
END
Stored Procedures: Ejemplos
CREATE PROCEDURE p1 ()
BEGIN
DECLARE v1 INT DEFAULT 10;
SET v1 = 5;
INSERT INTO t VALUES (v1);
END;
Stored Procedures: Ejemplos
CREATE PROCEDURE copiar () BEGIN
DECLARE var1 VARCHAR(34);
DECLARE c1 CURSOR FOR SELECT name FROM test.t;
OPEN c1;
REPEAT
FETH c1 INTO var1;
.
END;
Stored Procedures
CREATE FUNCTION saludar (nombre CHAR(20)) RETURNS
CHAR (40)
BEGIN
DECLARE saludo CHAR(40);
SET saludo = CONCAT('Hola, ,UPPER(nombre), ', como
estas?');
RETURN saludo;
END
Stored Procedures
Invocar a un Procedimiento almacenado:
call nombre_proc([params, ])
Ejemplo:
CALL proc1( );
Invocar a una funcin almacenada:
Generalmente: select nombre_func([params, ])
Ejemplo:
SELECT saludar(Enrique);
Stored Procedures: Sentencias de Control
IF si <condicion> hacer <accin>
CASE seleccin alternativa, dependiente
LOOP hacer <accin> repetidamente
LEAVE terminacin de un bucle o bloque
ITERATE reinicia un bucle
REPEAT repetir <accin> hasta
<condicin> sea verdadera
WHILE repetir <action> mientras
<condicin> sea verdadera
Stored Procedures
Ventajas:
Mejorar el Desempeo
Ahorrar tiempo, dinero y recursos
Triggers
Un Trigger es una accin en cadena que empieza
cuando un evento especfico ocurre sobre una
tabla especfica.
Triggers: Sintaxis
CREATE TRIGGER nombre_trigger
{BEFORE | AFTER}
{INSERT | UPDATE | DELETE} ON nombre_table
FOR EACH ROW accin_trigger | sentencias SQL
Triggers: Usos
Registrar, auditar y monitorear la actividad de cambio
de datos
Validar datos, cambiando o negando acciones como
INSERT, UPDATE, DELETE en una tabla
Preservar la consistencia y claridad de los datos
ejecutando acciones relacionadas en tablas
relacionadas
Triggers: Ejemplos
CREATE TRIGGER info
AFTER INSERT ON test.t
FOR EACH ROW
SET @ultimo = NEW.id;
Triggers: Ejemplos
CREATE TRIGGER update_check
BEFORE UPDATE ON test.t
FOR EACH ROW
BEGIN
IF LENGTH(NEW.name) = 0 THEN
SET NEW.name = 'Nombres';
END IF;
END;
Vistas
Una Vista es una tabla virtual
Provee otra manera de buscar en los datos existentes
No usan espacio extra en disco
La sintaxis de las Vistas MySQL son 100% compatibles
con el SQL standard.
Vistas: Sintaxis
CREATE [OR REPLACE]
VIEW nombre_vista
[(lista_columnas)]
AS sentencia_select
[WITH [CASCADED | LOCAL] CHECK OPTION]
Vistas: Ejemplos
Vistas: Ejemplos
WITH CHECK OPTION
CREATE VIEW v1 AS
SELECT col1 FROM t1 WHERE col1 <> 'A'
WITH CHECK OPTION;
mysql> UPDATE v1 SET col1 = 'A';
ERROR 1369 (HY000): CHECK OPTION failed test.v1'
Vistas: Ejemplos
WITH LOCAL CHECK OPTION
CREATE VIEW v2 AS
SELECT * FROM v1 WHERE col1 <> 'B'
WITH LOCAL CHECK OPTION;
mysql> INSERT INTO v2 VALUES ('B');
ERROR 1369 (HY000): CHECK OPTION failed test.v2'
mysql> INSERT INTO v2 VALUES ('A');
Query OK, 1 row affected (0.01 sec)
Vistas: Ejemplos
WITH CASCADED CHECK OPTION
CREATE VIEW v3 AS
SELECT * FROM v2 WHERE col1 <> 'C'
WITH CASCADED CHECK OPTION;
mysql> INSERT INTO v3 VALUES ('B');
ERROR 1369 (HY000): CHECK OPTION failed test.v3'
-- porque las condiciones de v2 no permiten 'B' y v3 depende de v2
mysql> INSERT INTO v3 VALUES ('A');
ERROR 1369 (HY000): CHECK OPTION failed test.v3'
-- porque las condiciones de v1 no permiten 'A' and v3 depende de v1 y
v2
Vistas: Actualizacin
Una Vista actualizable puede aceptar sentencias
UPDATE, DELETE
Algunas vistas pueden permitir INSERT
Los cambios de los datos se propagan
automticamente a la tabla base.
Vistas: Usos
Las vistas pueden ser usadas en lugar de definir
restricciones utilizando por ejemplo NOT NULL,
BETWEEN, etc.
Pueden usarse en la reestructuracin de tablas,
ocultando o moviendo columnas.
Permiten implementar seguridad en los datos al
ocultar registros.
INFORMATION_SCHEMA
El Esquema de Informacin es la forma SQL
standard para acceder el metadata de la base de
datos.
Contiene una serie de tablas que describen los objetos de
la base de datos
Es una base de datos virtual visible a travs de sentencias
SELECT
INFORMATION_SCHEMA
Ventajas:
Standarizacin del manejo del metadata, quedando
atrs el uso de comandos SHOW especficos de MySQL
No se necesita aprender un nuevo conjunto de
comandos para acceder el metadata.
INFORMATION_SCHEMA
Visualizacin:
INFORMATION_SCHEMA
Objetos mas importantes:
SCHEMA
TABLES
VIEWS
ROUTINES
COLUMNS
INFORMATION_SCHEMA
Objetos mas importantes:
MySQL Tips
Mostrar resultados verticalmente: \G
MySQL Tips
Prevenir resultados inesperados al usar sentencias
de modificacin:
Usar la opcin -Ual conectarse
C:>mysql u usuario p U
Obliga a usar la clusula WHERE al realizar un
UPDATE O DELETE.
MySQL Tips
Cambiar la contrasea del superusuario root y
renombrar el usuario
c:> mysqladmin -u root password nueva_clave
mysql> update mysql.user
-> set user = admin
-> where user = root
MySQL Tips
Proteger el directorio de instalacin del acceso de
otros usuarios.
Apegarse al ANSI SQL si se requiere portabilidad
No mezclar el cdigo de la interfaz del usuario con
cdigo de bases de datos.
Usar pool de conexiones en Servidores Web y
Servidores a Aplicaciones
MySQL Tips
Ejecutar sentencias sin entrar al cliente mysql
C:> mysql u root p e select * from test.t
Exportar a XML
C:> mysql u user p e sentencias X > archivo.xml
Exportar a HTML
C:> mysql u user p e sentencias H > archivo.html

También podría gustarte