base de datos ll mysql

36
Base de datos ll Materia: Base de datos ll Instructor: M.T.I Blanqueto Estrada Melissa Alumno: De Jesús Pérez Emmanuel Matricula: 12E-00112 Trabajo: Investigación

Upload: kathiacasavantes

Post on 04-Aug-2015

40 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Base de Datos Ll MySql

Base de datos ll

Materia: Base de datos ll

Instructor: M.T.I Blanqueto Estrada Melissa

Alumno: De Jesús Pérez Emmanuel

Matricula: 12E-00112

Trabajo: Investigación

Page 2: Base de Datos Ll MySql

Base de datos ll

2

Tabla de contenido

Introducción……………………………………………………………………………………………………………………… 6

Problemática…………………………………………………………………………………………………………………….. 6

Justificación. ………………………………………………………………………………………………………………………6

Objetivos generales…………………………………………………………………………………………………………. 7

Objetivos específicos. ………………………………………………………………………………………………………7

I. Diseño de base de datos.

1. Reglas del negocio…………………………………………………………………………………………………. 8

2. Diagrama entidad-relación………………………………………………………………………………………9

3. Proceso de normalización de la base de datos…………………………………………………….10

1. Scripts de la base de datos biblioteca UAEH

2. Estructura de tabla para tabla „alumno‟……………………………………………………………… 11

3. Estructura de tabla para tabla „carrera‟……………………………………………………………….11

4. Estructura de tabla para la tabla „cuentausuario‟………………………………………………..12

5. Estructura de tabla para la tabla „docente‟………………………………………………………….12

6. Estructura de tabla para la tabla „libro‟………………………………………………………………..13

7. Estructura de tabla para la tabla „préstamo‟……………………………………………………….13

8. Filtros para la tabla „alumno‟…………………………………………………………………………………14

9. Filtros para la tabla „docente‟……………………………………………………………………………….14

10.Filtros para la tabla „préstamo‟…………………………………………………………………………….14

II. Describir los procedimientos para realizar tareas de importación y exportación de la

base de datos.

1. Exportar una base de datos………………………………………………………………………………….15

Método de exportación rápida…………………………………………………………………...17

Modo de exportación personalizada…………………………………………………………..18

2. Importar una base de datos………………………………………………………………………………...21

III. Describir los procedimientos para llevar a cabo la administración de usuarios.

Page 3: Base de Datos Ll MySql

Base de datos ll

3

IV. Describir que tipo de privilegios sobre la base de datos administra un DBMS,

describir como otorgar y revocar privilegios.

1. La sentencia GRANT……………………………………………………………………………………………..27

2. Tipos de privilegios……………………………………………………………………………………………….27

3. Eliminar privilegios………………………………………………………………………………………………..29

4. Eliminar usuarios…………………………………………………………………………………………………..29

5. La base de datos de privilegios: mysql………………………………………………………………..30

V. Elaborar un ejemplo de auditoría a la base de datos.

1. Consultar procedimientos mysql almacenados con phpMyAdmin……………………..…33

Bibliografía…………………………………………………………………………………………………………………..36

Page 4: Base de Datos Ll MySql

Base de datos ll

4

Índice de figuras

Diagrama de Entidad-Relación

Figura 1……………………………………………………………………………………………………..…………….9

Proceso de Normalización de la base de datos

Figura 2………………………………………………………………………………………………………………….10

Exportar una base de datos

Figura 3………………………………………………………………………………………………………………….15

Figura 4………………………………………………………………………………………………………………...16

Figura 5………………………………………………………………………………………………………………….16

Método de exportación rápida.

Figura 6………………………………………………………………………………………………………………….17

Figura 7………………………………………………………………………………………………………………….17

Modo de exportación personalizada.

Figura 8………………………………………………………………………………………………………………….18

Figura 9………………………………………………………………………………………………………………….18

Figura 10……………………………………………………………………………………………………………….19

Figura 11……………………………………………………………………………………………………………….19

Figura 12……………………………………………………………………………………………………………….19

Figura 13……………………………………………………………………………………………………………….20

Figura 14……………………………………………………………………………………………………………….20

Importar una base de datos.

Figura 15……………………………………………………………………………………………………………….21

Figura 16……………………………………………………………………………………………………………….21

Figura 17……………………………………………………………………………………………………………....22

Figura 18……………………………………………………………………………………………………………….22

Figura 19……………………………………………………………………………………………………………….23

Page 5: Base de Datos Ll MySql

Base de datos ll

5

Describir los procedimientos para llevar a cabo la administración de usuarios.

Figura 20……………………………………………………………………………………………………………….24

Figura 21……………………………………………………………………………………………………………….24

Figura 22……………………………………………………………………………………………………………….25

Figura 23……………………………………………………………………………………………………………….25

Tipos de privilegios.

Figura 24……………………………………………………………………………………………………………….28

La base de datos de privilegios: mysql

Figura 25……………………………………………………………………………………………………………….30

Elaborar un ejemplo de auditoría a la base de datos.

Figura 26……………………………………………………………………………………………………………….31

Figura 27……………………………………………………………………………………………………………….31

Figura 28……………………………………………………………………………………………………………….32

Consultar procedimientos mysql almacenados con phpMyAdmin

Figura 29……………………………………………………………………………………………………………….33

Figura 30……………………………………………………………………………………………………………….34

Figura 31……………………………………………………………………………………………………………….34

Figura 32……………………………………………………………………………………………………………….35

Page 6: Base de Datos Ll MySql

Base de datos ll

6

INTRODUCCIÓN

La característica principales de esta base de datos es que es muy fácil de elaborar sin

presentar tantas dificultades en resolver algún problema durante la elaboración de esta

y haciéndola así mucho más interesante y confiable una vez ya elaborada y llevándola

a su aplicación. Además, con ayuda de esta base de datos completa definitivamente el

proyecto total del sistema de biblioteca ya que dentro de este contendrá la base de

datos que respectivamente tendrá todos los libros existentes de esta área el cual es de

gran importancia ya que sin estos el proyecto del sistema estaría incompleto y no

podría tener el funcionamiento que se requiere.

De esta manera las prestaciones de los libros se hace mucho más factible ya que con

ayuda de esta base de datos en un sistema será de gran beneficio para la institución

en general implementando también el uso de la tecnología para un mejor aprendizaje y

desempeño académico.

PROBLEMÁTICA

La base de datos que se presenta surge de acuerdo a la problemática que se encuentra

en la biblioteca escolar de la Escuela Superior Huejutla, ya que aun en estos tiempos la

encargada de dicha área tiene que realizar las prestaciones de los respectivos libros a

los diferentes alumnos y docentes manualmente haciendo así su trabajo más pesado,

tedioso y que aun mas es de mucha pérdida de tiempo tanto para él quien da el

servicio como para los que solicitan las prestaciones de dichos libros.

JUSTIFICACIÓN

De esta manera como alumno al observar esta situación me di a la tarea de elaborar

un proyecto que abarcara todas las problemáticas que se presentan en esta área de

biblioteca comenzando principalmente y primordialmente con la base de datos, para

que una vez realizado y finalizado dicho proyecto se diera una solución completa

abarcando todas las necesidades de los usuarios y prestadores de servicios teniendo

con esto una satisfacción total de estos en este centro que es de suma importancia

para su aprendizaje y desarrollo escolar profesionalmente.

Page 7: Base de Datos Ll MySql

Base de datos ll

7

Dicha base de datos la cual contiene todos los libros existentes en el área de biblioteca,

será de gran ayuda ya que los alumnos como docentes podrán realizar prestaciones de

los libros que deseen ya sea estando en dicha biblioteca o en cualquier centro donde

puedan tener acceso al sistema que complementara esta base de datos para realizar la

prestación haciendo así sus peticiones y prestaciones mas practicas y fáciles.

OBJETIVOS GENERALES

Lo que se pretende al crear una Base de Datos para la Biblioteca de la Escuela Superior

Huejutla, es tener un más rápido acceso al realizar la búsqueda de los libros para que

al momento de que el Alumno requiera de la prestación de uno de ellos sea más Fácil

encontrarlo.

OBJETIVOS ESPECIFICOS

Tener un rápido acceso a la Base de Datos de los Libros.

Hacer más rápido el préstamo del Libro al Alumno.

Tener un mejor control de Libros.

Que los Libros estén ordenados de manera correcta para que la Búsqueda sea

más rápida.

Page 8: Base de Datos Ll MySql

Base de datos ll

8

Diseño de base de datos.

Reglas de negocio

En la biblioteca de la UAEH se está desarrollando un sistema bibliotecario para tener

mayor control en los préstamos de los libros, cada libro tienen una clave de libro,

Nombre del libro, Autor, Edición y la cantidad en existencia, Un libro puede tener un

préstamo a la vez.

Claramente los libros pueden ser prestados bajo un formato de préstamo el cual

contiene el número de préstamo, la clave del libro, el número de préstamo, fecha de

préstamo, fecha de entrega, multa si este no se regresa en tiempo y forma, además el

número de cuenta del usuario, la cuenta de usuario que tiene número de cuenta y Nip

de un alumno y un docente (en este caso ellos son los usuarios); un alumno tiene

ligado un número de cuenta de cuenta de usuario, nombre del alumno, apellido

materno y apellido paterno del alumno, semestre que cursa y la carrera en la que se

encuentra el alumno, la carrera tiene clave de carrera y nombre de la carrera. Un

alumno solo puede cursar una carrera y ser de un solo semestre.

El docente tiene una cuenta de usuario; nombre, apellido paterno y materno; y

estudios; un alumno y un docente pueden pedir varios préstamos de libros.

Un alumno y un docente solo tienen una cuenta de usuario.

Page 9: Base de Datos Ll MySql

Base de datos ll

9

Diagrama Entidad-Relación

Figura 1.

Page 10: Base de Datos Ll MySql

Base de datos ll

10

Proceso de Normalizacion de la base de datos

Figura 2.

Page 11: Base de Datos Ll MySql

Base de datos ll

11

Scripts de la base de datos Biblioteca UAEH

Estructura de tabla para la tabla `alumno`

CREATE TABLE IF NOT EXISTS `alumno` (

`numcuenta` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT

NULL,

`nombrealumno` text CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,

`apmalumno` text CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,

`appalumno` text CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,

`semestre` int(10) NOT NULL,

`clavecarrera` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT

NULL,

KEY `numcuenta` (`numcuenta`,`clavecarrera`),

KEY `clavecarrera` (`clavecarrera`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Estructura de tabla para la tabla `carrera`

CREATE TABLE IF NOT EXISTS `carrera` (

`clavecarrera` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT

NULL,

`nombrecarrera` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci

NOT NULL,

PRIMARY KEY (`clavecarrera`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Page 12: Base de Datos Ll MySql

Base de datos ll

12

Estructura de tabla para la tabla `cuentausuario`

CREATE TABLE IF NOT EXISTS `cuentausuario` (

`numcuenta` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT

NULL,

`nip` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,

PRIMARY KEY (`numcuenta`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Estructura de tabla para la tabla `docente`

CREATE TABLE IF NOT EXISTS `docente` (

`numcuenta` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT

NULL,

`nombredocente` text CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,

`apmdocente` text CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,

`appdocente` text CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,

KEY `numcuenta` (`numcuenta`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Page 13: Base de Datos Ll MySql

Base de datos ll

13

Estructura de tabla para la tabla `libro`

CREATE TABLE IF NOT EXISTS `libro` (

`clavelibro` varchar(10) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT

NULL,

`nombrelibro` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT

NULL,

`autor` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,

`edicion` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci DEFAULT

NULL,

`cantidad` int(100) NOT NULL,

PRIMARY KEY (`clavelibro`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Estructura de tabla para la tabla `prestamo`

CREATE TABLE IF NOT EXISTS `prestamo` (

`numprestamo` int(100) NOT NULL,

`clavelibro` varchar(10) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT

NULL,

`numcuenta` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT

NULL,

`fechaprestamo` date NOT NULL,

`fechaentrega` date NOT NULL,

`multa` varchar(100) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,

PRIMARY KEY (`numprestamo`),

KEY `clavelibro` (`clavelibro`,`numcuenta`),

KEY `numcuenta` (`numcuenta`)

Page 14: Base de Datos Ll MySql

Base de datos ll

14

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Filtros para la tabla `alumno`

ALTER TABLE `alumno`

ADD CONSTRAINT `alumno_ibfk_1` FOREIGN KEY (`numcuenta`)

REFERENCES `cuentausuario` (`numcuenta`) ON DELETE CASCADE ON UPDATE

CASCADE,

ADD CONSTRAINT `alumno_ibfk_2` FOREIGN KEY (`clavecarrera`) REFERENCES

`carrera` (`clavecarrera`) ON DELETE CASCADE ON UPDATE CASCADE;

Filtros para la tabla `docente`

ALTER TABLE `docente`

ADD CONSTRAINT `docente_ibfk_1` FOREIGN KEY (`numcuenta`)

REFERENCES `cuentausuario` (`numcuenta`) ON DELETE CASCADE ON UPDATE

CASCADE;

Filtros para la tabla `préstamo`

ALTER TABLE `préstamo`

ADD CONSTRAINT `prestamo_ibfk_1` FOREIGN KEY (`clavelibro`) REFERENCES

`libro` (`clavelibro`) ON DELETE CASCADE ON UPDATE CASCADE,

ADD CONSTRAINT `prestamo_ibfk_2` FOREIGN KEY (`numcuenta`) REFERENCES

`cuentausuario` (`numcuenta`) ON DELETE CASCADE ON UPDATE CASCADE;

Page 15: Base de Datos Ll MySql

Base de datos ll

15

Describir los procedimientos para realizar tareas de importación y

exportación de la base de datos.

Exportar una base de datos

Usaremos esta opción cuando deseemos migrar un alojamiento y tengamos que

importar nuestra base de datos en el nuevo alojamiento o simplemente para

guardarnos una copia de seguridad.

La herramienta que vamos a utilizar es el phpMyAdmin misma donde se creó la base

de datos.

1.- Primero tienes que ingresar a phpMyAdmin.

Figura 3.

Page 16: Base de Datos Ll MySql

Base de datos ll

16

2.-Una vez dentro del phpMyAdmin, debemos seleccionar la base de datos que

deseamos exportar a un archivo, el cual en este caso seleccionamos bibliotecauaeh.

Figura 4.

3.- Seleccionada la base de datos debe hacer clic en el enlace "Exportar", como se

muestra en la imagen.

Figura 5.

Page 17: Base de Datos Ll MySql

Base de datos ll

17

Método de exportación rápida.

1.-Le aparecerá una nueva ventana. Aquí deberemos configurar las opciones para

poder Exportar la base de datos, lo más común es seleccionar el método de

exportación Rápido pero lo aremos por los métodos y claro el formato en *.SQL, ahora

continuamos.

Figura 6.

2.- Ahora solo aceptamos la descarga, guardamos el archivo y listo.

Figura 7.

Page 18: Base de Datos Ll MySql

Base de datos ll

18

Modo de exportación personalizada.

Figura 8.

1.- Haga clic en Seleccionar todo, de esta manera se importarán todas las tablas.

Figura 9.

2.- El archivo tendrá el nombre que especifiquemos en "Plantilla del nombre del

archivo". El "conjunto de caracteres del archivo" es importante, puede dejar UTF-8 si lo

desea, si lo modifica deberá recordar cuál eligió, el formato que se secciona es que

acuerdo a su criterio pero el formato adecuado es SQL.

Page 19: Base de Datos Ll MySql

Base de datos ll

19

Figura 10.

3.- Seleccione las opciones siguientes en el apartado "Opciones especificas al formato":

Figura 11.

4.-Aquí seleccionamos Opciones de creacion de objetos.

Figura 12.

Page 20: Base de Datos Ll MySql

Base de datos ll

20

5.- Procedemos a seleccionar opciones de volcado de datos y continuamos.

Figura 13.

6.- Ahora solo aceptamos la descarga, guardamos el archivo y listo.

Figura 14.

Page 21: Base de Datos Ll MySql

Base de datos ll

21

Importar una base de datos

Debemos importar un archivo que se ha generado previamente. Si usted está

migrando su base de datos de otro alojamiento a , deberá tener la copia de la base de

datos en un archivo con extensión .sql, .zip, .tar.gz o .tgz. y tendrá que crear una base

de datos con el mismo nombre que la que va a importar.

1.- Primero tienes que ingresar a phpMyAdmin.

Figura 15.

2.-Una vez dentro del phpMyAdmin, debemos seleccionar la base de datos que

acabamos de crear para importar la base de datos a esa nueva.

Figura 16.

Page 22: Base de Datos Ll MySql

Base de datos ll

22

3.- Seleccionada la base de datos debe hacer clic en el enlace "Importar", como se

muestra en la imagen.

Figura 17.

4.- Buscamos el archivo que se va a importar, y algo importante en la selección de

"Conjunto de caracteres del archivo" debería seleccionar la misma opción que eligió

cuando exportó la base de datos. Habitualmente se utiliza UTF-8.

Figura 18.

:

Page 23: Base de Datos Ll MySql

Base de datos ll

23

5.-Ahora seleccionamos el formato en que se encuentra nuestra base de datos y

opciones específicas al formato, después de esto solo nos queda hacer clic en

"Continuar" y esperar que se cargue el archivo. Tardará más o menos dependiendo del

tamaño del archivo.

Figura 19.

Page 24: Base de Datos Ll MySql

Base de datos ll

24

Describir los procedimientos para llevar a cabo la administración de usuarios.

1.- Primero tienes que ingresar a phpMyAdmin.

Figura 20.

2.-Una vez dentro del phpMyAdmin, debemos seleccionar la pestaña de usuarios.

Figura 21.

Page 25: Base de Datos Ll MySql

Base de datos ll

25

3.- aquí agregaremos un nuevo usuario, asi que ingresaremos a “Agregar nuevo

usuario”.

Aquí ingresamos el nombre de usuario, le servidor y contraseña, esta información es

cada quien a su criterio.

Figura 22.

4.- aquí agregamos los privilegios que queremos que tenga ese usuario si va a hacer el

administrador o quiere que ese usuario tenga todos los privilegios solo marcamos

todos, aceptamos al nuevo usuario y listo.

Figura 23.

Page 26: Base de Datos Ll MySql

Base de datos ll

26

Describir que tipos de privilegios sobre la base de datos administra un DBMS,

describir como otorgar y revocar privilegios

El acceso al servidor MySQL está controlado por usuarios y privilegios.

Los usuarios del servidor MySQL no tienen ninguna correspondencia con los

usuarios del sistema operativo. Aunque en la práctica es común que algún

administrador de MySQL asigne los mismos nombres que los usuarios tienen en el

sistema, son mecanismos totalmente independientes y suele ser aconsejable en

general.

El usuario administrador del sistema MySQL se llama root. Igual que el súper usuario

de los sistemas tipo UNIX.

Además del usuario root, las instalaciones nuevas de MySQL incluyen el usuario

anónimo, que tiene permisos sobre la base de datos test.

Si queremos, también podemos restringirlo asignándole una contraseña además el

usuario anónimo de MySQL se representa por una cadena vacía.

Vemos otra forma de asignar contraseñas a un usuario, desde el cliente de MySQL y

como usuario root:

mysql> set password for ''@'localhost' = password(‟nuevapasswd‟);

La administración de privilegios y usuarios en MySQL se realiza a través de las

sentencias:

• GRANT. Otorga privilegios a un usuario, en caso de no existir, se creará el usuario.

• REVOKE. Elimina los privilegios de un usuario existente.

• SET PASSWORD. Asigna una contraseña.

• DROP USER. Elimina un usuario.

Page 27: Base de Datos Ll MySql

Base de datos ll

27

La sentencia GRANT

La sintaxis simplificada de grant consta de tres secciones. No puede omitirse ninguna,

y es importante el orden de las mismas:

• grant lista de privilegios

• on base de datos.tabla

• to usuario

Ejemplo

Creación de un nuevo usuario al que se otorga algunos privilegios:

En la primera línea se especifican los privilegios que serán otorgados, en este caso se

permite actualizar (update), insertar (insert) y consultar (select).

La segunda línea específica que los privilegios se aplican a la tabla precios de la base

de datos demo. En la última línea se encuentra el nombre del usuario y el equipo desde

el que se va a permitir la conexión.

mysql> set password for ''@'localhost' = password(‟nuevapasswd‟);

mysql> grant update, insert, select

-> on demo.precios

-> to visitante@localhost ;

Tipos de privilegios

MySQL proporciona una gran variedad de tipos de privilegios.

• Privilegios relacionados con tablas: alter, create, delete, drop, index, insert, select,

update

• Algunos privilegios administrativos: file, proccess, super reload,

Replication client, grant option, shutdown

Page 28: Base de Datos Ll MySql

Base de datos ll

28

• Algunos privilegios para fines diversos: lock tables, show databases, créate

temporary tables.

El privilegio all otorga todos los privilegios exceptuando el privilegio grant

Option, y el privilegio usage no otorga ninguno, lo cual es útil cuando se desea, por

ejemplo, simplemente cambiar la contraseña:

grant usage

on *.*

to visitante@localhost identified by ‟secreto‟;

Figura 24.

Page 29: Base de Datos Ll MySql

Base de datos ll

29

En entornos grandes, es frecuente encontrarse en la necesidad de delegar el trabajo de

administrar un servidor de bases de datos para que otros usuarios, además del

administrador, puedan responsabilizarse de otorgar privilegios sobre una base de datos

particular. Esto se puede hacer en MySQL con el privilegio

grant option:

mysql> grant all, grant option

-> on demo.*

-> to operador@localhost;

Eliminar privilegios

El comando revoke permite eliminar privilegios otorgados con grant a los usuarios.

Veamos un ejemplo representativo:

revoke all

on *.*

from visitante@localhost;

Al ejecutar este comando se le retiran al usuario visitante todos sus privilegios sobre

todas las bases de datos, cuando se conecta desde localhost.

El comando anterior no retira todos los privilegios del usuario visitante, sólo se los

retira cuando se conecta desde localhost. Si el usuario se conecta desde otra localidad

(y tenía permiso para hacerlo) sus privilegios permanecen intactos.

Eliminar usuarios

Antes de proceder a la eliminación de un usuario, es necesario asegurarse de que se le

han quitado primero todos sus privilegios. Una vez asegurado este detalle, se procede

a eliminarlo mediante el comando drop user:

mysql> drop user visitante;

Page 30: Base de Datos Ll MySql

Base de datos ll

30

La base de datos de privilegios: mysql

MySQL almacena la información sobre los usuarios y sus privilegios en una

base de datos como cualquier otra, cuyo nombre es mysql. Si exploramos su

estructura, entenderemos la manera como MySQL almacena la información de sus

usuarios y privilegios:

Figura 25.

Page 31: Base de Datos Ll MySql

Base de datos ll

31

Elaborar un ejemplo de auditoria a la base de datos.

PhpMyAdmin en una aplicación que puede optimizar y reparar bases de datos.

Las bases de datos se organizan en tablas y no es de extrañar que en algún momento

se produzcan errores de escritura de los datos debido a que los registros no se guarden

en su lugar dentro de las tablas correspondientes o por averías en el servidor. Aquí

mostraremos como optimizar y reparar una base de datos dañada.

Para ello promeri tendremos que entrar a phpMyAdmin para acceder a nuestras bases

de datos MySql. Una vez introducimos el usuario y contraseña se nos abre la

aplicación. En la columna de la izquierda vemos una o varias bases de datos según sea

el caso con el número de tablas que contienen entre paréntesis. Seleccionamos la que

deseemos y se nos abre una ventana. En la columna de la izquierda aparecen ahora las

tablas de la base de datos:

Figura 26.

En la columna Residuo a depurar (Overhead) se indica el exceso de datos incorrectos

en las diferentes tablas de la base de datos. Esto incrementa el tamaño de la base de

datos. Antes de hacer una copia de seguridad o respaldo necesitamos optimizar la base

de datos para deshacernos de este sobre exceso de datos.

Al final de la estructura de la base de datos mostrada podemos leer:

“Marcar todos/as / Desmarcar todos / Marcar las tablas con residuo a depurar”

Figura 27.

Page 32: Base de Datos Ll MySql

Base de datos ll

32

Podemos seleccionar la tabla o tablas que deseemos manualmente con la casilla de

selección de la izquierda que existe en cada una o pulsar en “Marcar todos”

seleccionando todas las tablas automáticamente. De la misma forma “Desmarcar

todos” hará que se desmarquen todas las tablas que estuvieran marcadas

previamente. La opción “Marcar las tablas con residuo a depurar” sólo marca las tablas

con Overhead, las que aparecen en la columna de la derecha con exceso de datos

incorrectos.

Figura 28.

Si lo prefieres marca todas las tablas y abre el desplegable “Para los elementos que

están marcados”

Ahí aparecen varias opciones:

Vaciar (Empty): vacía o elimina el contenido de las tablas seleccionadas.

Eliminar (Drop): elimina las tablas seleccionadas.

Vista de Impresión (Print View): genera una lista detallada de las tablas para poder

imprimirla.

Revisar la tabla (Check table): comprueba la estructura de las tablas seleccionadas,

muestra OK si todo está bien.

Optimizar la tabla (Optimize table): optimiza las tablas seleccionadas eliminando el

residuo que pudiera existir ocasionado por múltiples borrados y escrituras. Es como

una especie de desfragmentación de las tablas.

Page 33: Base de Datos Ll MySql

Base de datos ll

33

Reparar la tabla (Repair table): repara las tablas corruptas y elimina residuo.

Analizar la tabla (Analyze table): analiza las tablas actualizando las claves que se usan

para las consultas.

Hay ciertas consideraciones a tener en cuenta. Las bases de datos pueden estar

constantemente cambiando de contenido, es decir escribiendo datos en ellas así que

hay que realizar esta.

Consultar procedimientos mysql almacenados, con phpMyAdmin

Dentro de phpMyAdmin, seleccionamos nuestra base de datos y vamos a consultas

SQL, ejecutamos “SHOW PROCEDURE STATUS”.

Figura 29.

Page 34: Base de Datos Ll MySql

Base de datos ll

34

Inmediatamente nos arroga un estatus sobre la base de datos.

Figura 30.

Muestra todos los procedimientos de la base de datos. De esta consulta se toma el

nombre del procedimiento de la columna Name y, el nombre de la base de datos de la

columna Db. Posteriormente para conocer todos los detalles de algun procedimiento se

ejecuta :

“SHOW CREATE PROCEDURE basededatos.nombre_procedimiento”

Figura 31.

Page 35: Base de Datos Ll MySql

Base de datos ll

35

Los resultados de este código serán así:

Figura 32.

Page 36: Base de Datos Ll MySql

Base de datos ll

36

Bibliografía:

CAMPOAMOR, Clara. Bases de datos relacionales con MySQL. 24 de octubre de 2012.

Disponible en:

https://tecnoclara.wikispaces.com/file/view/Bases+de+Datos+Relacionales+con+MyS

QL.pdf

CASILLAS, Luis, GILBERT, Marc y PEREZ, Oscar. Bases de datos en MySQL.24 de

octubre de 2012. Disponible en: http://www.uoc.edu/masters/oficiales/img/913.pdf

Creative Commons Attribution. 30 de octubre de 2012. Disponible en:

http://www.ite.educacion.es/formacion/materiales/99/cd/modulo_02/phpmyadmin_cre

acin_base_de_datos_y_usuario_mysql.html

GOMEZ, Cristian y MONTOYA, Silvana. Auditoria bases de datos. 30 de octubre de

2012. Disponible en:

http://auditoria20101.wikispaces.com/file/detail/AuditoriaBasesDatos20101G08.pdf

MySQL hispano .Normalización de bases de datos. 30 de octubre de 2012. Disponible

en: www.myhispano.org

SILVERSCHATZ, Abraham, KORTH, Henry y SUDARSHAN, S. Fundamentos de bases de

datos. Cuarta edición. España. McGraw-Hill/Interamericana de España.2002.