Diapositivas Temas I y II: Lenguaje de consultas SQL y Administración de bases de datos PDF

Title Diapositivas Temas I y II: Lenguaje de consultas SQL y Administración de bases de datos
Course Base de Datos I
Institution Universidad Michoacana de San Nicolás de Hidalgo
Pages 36
File Size 1.3 MB
File Type PDF
Total Downloads 62
Total Views 151

Summary

Download Diapositivas Temas I y II: Lenguaje de consultas SQL y Administración de bases de datos PDF


Description

1. 2.

Lenguaje de Definición de Datos Lenguaje de Manipulación de Datos

M. C. Gustavo Alfonso Gutiérrez Carreón

 Los

'sistemas de gestión de bases de datos (en inglés database management system, abreviado DBMS) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan.

M.C. Gustavo A. Gutiérrez Carreón

mar-10

M.C. Gustavo A. Gutiérrez Carreón

mar-10



Existen distintos objetivos que deben cumplir los SGBD: 

Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción.



Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.



Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones. M.C. Gustavo A. Gutiérrez Carreón

mar-10

Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.  Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos.  Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos la información solicitada y en almacenar los cambios realizados. 

M.C. Gustavo A. Gutiérrez Carreón

mar-10

El lenguaje de consulta estructurado SQL (por sus siglas en inglés: Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas.  Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella.  Es un lenguaje de cuarta generación (4GL). 

M.C. Gustavo A. Gutiérrez Carreón

mar-10

 El

lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos.  Existen cuatro operaciones básicas:    

CREATE ALTER DROP TRUNCATE

M.C. Gustavo A. Gutiérrez Carreón

mar-10

 Este

comando crea un objeto dentro de la base de datos.  Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte.  Ejemplo (crear una tabla) CREATE TABLE 'TABLA_NOMBRE' ( 'CAMPO_1' INT, 'CAMPO_2' STRING )

M.C. Gustavo A. Gutiérrez Carreón

mar-10

 CREATE

TABLE tabla (campo1 tipo (tamaño) índice1 , campo2 tipo (tamaño) índice2 , ..., índice multicampo , ... ) Parte tabla campo1 campo2 tipo tamaño índice1 índice2

índice multicampos

M.C. Gustavo A. Gutiérrez Carreón

Descripción Es el nombre de la tabla que se va a crear. Es el nombre del campo o de los campos que se van a crear en la nueva tabla. La nueva tabla debe contener, al menos, un campo. Es el tipo de datos de campo en la nueva tabla. (Ver Tipos de Datos) Es el tamaño del campo sólo se aplica para campos de tipo texto. Es una cláusula CONSTRAINT que define el tipo de indice a crear. Esta cláusula en opcional. Es una cláusula CONSTRAINT que define el tipo de indice multicampos a crear. Un índice multi campo es aquel que está indexado por el contenido de varios campos. Esta cláusula en opcional. mar-10

Tipo de Indice UNIQUE

PRIMARY KEY

FOREIGN KEY

M.C. Gustavo A. Gutiérrez Carreón

Descripción Genera un índece de clave única. Lo que implica que los registros de la tabla no pueden contener el mismo valor en los campos indexados. Genera un índice primario el campo o los campos especificados. Todos los campos de la clave principal deben ser únicos y no nulos, cada tabla sólo puede contener una única clave principal. Genera un índice externo (toma como valor del índice campos contenidos en otras tablas). Si la clave principal de la tabla externa consta de más de un campo, se debe utilizar una definición de índice de múltiples campos, listando todos los campos de referencia, el nombre de la tabla externa, y los nombres de los campos referenciados en la tabla externa en el mismo orden que los campos de referencia listados. Si los campos referenciados son la clave principal de la tabla externa, no tiene que especificar los campos referenciados, predeterminado por valor, el motor Jet se comporta como si la clave principal de la tabla externa fueran los campos referenciados. mar-10

 Este

comando permite modificar la estructura de un objeto.  Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.  Ejemplo (agregar columna a una tabla) ALTER TABLE 'TABLA_NOMBRE' ( ADD NUEVO_CAMPO INT )

M.C. Gustavo A. Gutiérrez Carreón

mar-10

ALTER TABLE tabla {ADD {COLUMN tipo de campo[(tamaño)] [CONSTRAINT índice] CONSTRAINT índice multicampo} | DROP {COLUMN campo I CONSTRAINT nombre del índice} } 

Parte tabla campo tipo tamaño

índice

índice multicampo

Descripción Es el nombre de la tabla que se desea modificar. Es el nombre del campo que se va a añadir o eliminar. Es el tipo de campo que se va a añadir. El el tamaño del campo que se va a añadir (sólo para campos de texto). Es el nombre del índice del campo (cuando se crean campos) o el nombre del índice de la tabla que se desea eliminar. Es el nombre del índice del campo multicampo (cuando se crean campos) o el nombre del índice de la tabla que se desea eliminar.

M.C. Gustavo A. Gutiérrez Carreón

mar-10

Operación

ADD COLUMN

ADD

DROP COLUMN

DROP

M.C. Gustavo A. Gutiérrez Carreón

Descripción Se utiliza para añadir un nuevo campo a la tabla, indicando el nombre, el tipo de campo y opcionalmente el tamaño (para campos de tipo texto). Se utliza para agregar un índice de multicampos o de un único campo. Se utliza para borrar un campo. Se especifica únicamente el nombre del campo. Se utiliza para eliminar un índice. Se especifica únicamente el nombre del índice a continuación de la palabra reservada CONSTRAINT.

mar-10

 Este

comando elimina un objeto de la base de datos.  Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte.  Se puede combinar con la sentencia ALTER.  Ejemplo ALTER TABLE ''TABLA_NOMBRE'' ( DROP COLUMN ''CAMPO_NOMBRE1'' ) M.C. Gustavo A. Gutiérrez Carreón

mar-10

 







Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción. Ejemplo TRUNCATE TABLE ''TABLA_NOMBRE1'' M.C. Gustavo A. Gutiérrez Carreón

mar-10

Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.  El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional.  Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras. 

M.C. Gustavo A. Gutiérrez Carreón

mar-10

 



Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado. La sintaxis básica de una consulta de selección es la siguiente: SELECT Campos FROM Tabla Puede contener alguna de las siguientes clausulas:     

FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar GROUP BY Utilizada para separar los registros seleccionados en grupos específicos HAVING Utilizada para expresar la condición que debe satisfacer cada grupo ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico M.C. Gustavo A. Gutiérrez Carreón

mar-10

Predicado ALL TOP

DISTINCT

DISTINCTROW

Descripción Devuelve todos los campos de la tabla Devuelve un determinado número de registros de la tabla Omite los registros cuyos campos seleccionados coincidan totalmente Omite los registros duplicados basandose en la totalidad del registro y no sólo en los campos seleccionados.

M.C. Gustavo A. Gutiérrez Carreón

mar-10





  



Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional. Forma básica INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...'']) Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le será asignado el valor por omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error. M.C. Gustavo A. Gutiérrez Carreón

mar-10

 Una

sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.  Forma básica UPDATE ''tabla'' SET ''columna1'' = ''valor1'' ,''columna2'' = ''valor2'',... WHERE ''columnaN = ''valorN''

M.C. Gustavo A. Gutiérrez Carreón

mar-10

 Una

sentencia DELETE de SQL borra uno o más registros existentes en una tabla,  Forma básica DELETE FROM ''tabla'' WHERE ''columna1'' = ''valor1''

M.C. Gustavo A. Gutiérrez Carreón

mar-10

1.

2. 3.

Administración básica Copias de seguridad de bases de datos Duplicación de base de datos

M. C. Gustavo Alfonso Gutiérrez Carreón

 El

administrador de base de datos (DBA) es la persona responsable de los aspectos ambientales de una base de datos. En general esto incluye:  Respaldo

y Recuperación de datos Crear y probar Respaldos  Integridad - Verificar o ayudar a la verificación en la integridad de datos

M.C. Gustavo A. Gutiérrez Carreón

abr-10

 Seguridad

- Definir o implementar controles de acceso a los datos  Disponibilidad - Asegurarse del mayor tiempo de encendido  Desempeño - Asegurarse del máximo desempeño incluso con las limitaciones  Desarrollo y soporte a pruebas - Ayudar a los programadores e ingenieros a utilizar eficientemente la base de datos M.C. Gustavo A. Gutiérrez Carreón

abr-10

MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones.  MySQL AB —desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual.  Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso.  Está desarrollado en su mayor parte en ANSI C. 

M.C. Gustavo A. Gutiérrez Carreón

abr-10

Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y el copyright del código está en poder del autor individual, MySQL es propietario y está patrocinado por una empresa privada, que posee el copyright de la mayor parte del código.  Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios.  Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet.  MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius. 

M.C. Gustavo A. Gutiérrez Carreón

abr-10

 Como

administrador, necesitara saber mucho mas sobre el funcionamiento de MySQL que como un simple ejecutor de consultas .  Deberá familiarizarse con las utilidades que incorpora la distribución de MySQL, así como con su forma de configurar el servidor.  A continuación se describen las principales  utilidades dirigidas a 10s administradores:

M.C. Gustavo A. Gutiérrez Carreón

abr-10







 

 

mysqladmin: Se trata probablemente de la utilidad administrativa mas util. Permite crear y eliminar bases de datos, detener el servidor, visualizar variables de servidor, visualizar y anular procesos de MySQL, establecer contraseñas y vaciar archivos de registros, entre otras cosas. mysqld: No se trata de una utilidad en realidad, ya que es el servidor de MySQL. Es probable que se tope con terminos como las variables de mysqld, que no son otra cosa que variables de servidor. mysqldump. Permite hacer respaldos de la estrucura y datos de nuestra base de datos. mysqlimport: Importa archivos de texto a tablas de base de datos. mysqlcheck: Comprueba, analiza y repara bases de datos. mysqlhotcopy: Una secuencia de comandos de Per1 que hace volcados de tablas de base de datos rapidamente. myisampack: Comprime tablas MyIS AM.

M.C. Gustavo A. Gutiérrez Carreón

abr-10

 











mysqladmin Mysqladmin es una utilidad para realizar tareas de mantenimiento de nuestras bases de datos, que viene incluida en la distribución de mysql. Su sintaxis es: prompt> mysqladmin [OPCIONES] comando [opciones de comando] comando2 ... Puedes obtener una lista de las opciones disponibles en tu versión de mysql tecleando mysqladmin --help|more A continuación una lista de las opciones mas corrientes. Primero vemos su denominación abreviada, y separado con una barra vertical | su nombre completo: -p|--password [=pwd] La contraseña para conectar con el server. Si usamos --p sin proporcionar la contraseña, mysql nos la preguntará antes de ejecutar el comando. -u|--user [=nombre de usuario] El nombre de usuario. Es necesario especificarlo si no hemos hecho aun log en el server -h|--host=hostname Conecta al servidor. Si no lo especificamos, intentará localhost

M.C. Gustavo A. Gutiérrez Carreón

abr-10





  

 

-P|--port=pnum Especifica el puerto por el que conectara al server. Si no se especifica usará el puerto por defecto -f|--force Mediante esta opción podemos hacer drop en una base de datos (eliminarla) sin que pida confirmación. Si usamos esta opción en una orden que incluya varios comandos, obligamos a la ejecución de todos ellos incluso aunque haya algun error. -?|--help muestra la ayuda y sale de la ejecución -s|--silent Cierra la ejecución si no puede conectar con el server -v|--verbose Especifica que el server debe contestar con toda la información disponible a cada comando que ejecutemos -V|--version Muestra la versión y sale -w|--wait [=num de intentos] Reintenta la conexión si el server esta caído M.C. Gustavo A. Gutiérrez Carreón

abr-10





   

create nombre_base_datos Crea una nueva base de datos con el nombre proporcionado. drop nombre_base_datos Elimina la base de datos especificada (y todas sus tablas). status proporciona un mensaje con el status del server. extended-status Mensaje con información extendida sobre el server. version Ofrece la version del servidor. flush-hosts Vacía los servidores almacenados en cache. M.C. Gustavo A. Gutiérrez Carreón

abr-10

          

flush-logs Vacia los archivos de registro flush-tables Vacía todas las tablas. flush-privileges Recarga las tablas con los permisos de usuario (igual que reload). kill id,id,... Elimina los subrprocesos especificados. password Especifica una nueva contraseña ping Comprueba si mysqld se está ejecutando. processlist Muestra los subprocesos abiertos en el server. reload Recarga los permisos de usuario. refresh Vacía las tablas de permisos, cierra y abre los archivos de registro. shutdown Apaga el server. variables Muestra las variables disponibles. M.C. Gustavo A. Gutiérrez Carreón

abr-10

 Con

mysqldump puedes obtener copias de la estructura y datos de las tablas.  Con la copia de la estructura podrás recrear tus tablas (vacías de datos) mientras que con la copia completa de estructura y datos obtendrás una copia espejo de tu base de datos.  Este es también el método lógico si lo que quieres es pasar tu base de datos de un servidor a otro, por ejemplo de tu servidor local de pruebas al servidor en la red. M.C. Gustavo A. Gutiérrez Carreón

abr-10

 Veamos

algunos ejemplos:  Copia de estructura y datos: c:\mysql\bin>mysqldump -u root -p --opt nombre_de_mi_db_a_copiar > nombre_copia.sql

 Copia

solo datos:

c:\mysql\bin>mysqldump -u root -p --no-create-info nombre_de_mi_db_a_copiar > nombre_copia.sql

 Copia

solo estructura:

c:\mysql\bin>mysqldump -u root -p --no-data nombre_de_mi_db_a_copiar > nombre_copia.sql

M.C. Gustavo A. Gutiérrez Carreón

abr-10

 Como

no hemos indicado ruta ninguna, los archivos resultantes aparecerán en bin.  Para cargar el respaldo de nuevo en el server, simplemente: el proceso a la inversa: c:\mysql\bin>mysql -u root -pcontraseña base_a_cargar < copia_respaldo.sql.

M.C. Gustavo A. Gutiérrez Carreón

abr-10


Similar Free PDFs