2da charla - introduccion a bd

29
BASES DE DATOS BASES DE DATOS INTRODUCCIÓN A MYSQL INTRODUCCIÓN A MYSQL

Upload: marielis-de-drakes

Post on 10-Jul-2016

223 views

Category:

Documents


1 download

DESCRIPTION

Administración de Base de Datos

TRANSCRIPT

Page 1: 2da Charla - Introduccion a Bd

BASES DE DATOSBASES DE DATOS

INTRODUCCIÓN A MYSQLINTRODUCCIÓN A MYSQL

Page 2: 2da Charla - Introduccion a Bd

Creación de Bases de DatosSentencia CREATE DATABASE.

Esta sentencia crea una base de datos.

Ejemplos: Crear una base llamada “BasePrueba”:CREATE DATABASE BasePrueba

Crear una base de datos llamada Base2CREATE DATABASE Base2

Crear una base de datos llamada “Base_Tres”CREATE DATABASE BaseTres

SintaxisCREATE DATABASE NOMBRE_BASE

Importante.

Los nombres de las base de datos y así como también los nombre de las tablas de la base de datos no deben contener espacios en blanco.

Page 3: 2da Charla - Introduccion a Bd

TablaCREATE TABLE crea una tabla con el nombre dado. Se debe

poseer el privilegio CREATE para la tabla.

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(definición_create,...)] [opciones_tabla] [sentencia_select]

Page 4: 2da Charla - Introduccion a Bd

Crear Tablas Sentencia CREATE TABLE. Construye una tabla

Ejemplo:CREATE TABLE TABLA1 (

Campo1 int,Campo2 int,Campo3 char(3))

CREATE TABLE Proveedores ( ClaveProveedor int, Nombre char(40))

SintaxisCREATE TABLE nombreDeTabla (

Campo1 tipo de dato ,Campo2 Tipo de dato,Campo2 Tipo de dato,…

)

Page 5: 2da Charla - Introduccion a Bd

AlumnosMatricula: int

Nombre: char(20)Apellidos: varchar(50)Fecha_Nac: datetimeTelefono: char(18)Direccion: text

CREATE TABLE Alumnos (

Matricula INT,

Nombre VARCHAR (20),

Apellidos VARCHAR(50),

Fecha_Nac DATE,Telefono CHAR (18),

Direccion TEXT

)

Page 6: 2da Charla - Introduccion a Bd

ALTER TABLE Permite modificar la estructura de una tabla existente. Por ejemplo, se pueden añadir o eliminar columnas, crear y destruir índices, cambiar el tipo de una columna existente o renombrar columnas o la propia tabla. También es posible modificar el comentario y el tipo de la tabla.ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification ...]

ANALYZE TABLE Analiza y almacena la distribución de claves de una tabla. Durante el análisis, la tabla se bloquea para lectura. Funciona con tablas MyISAM y BDB.ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name[,tbl_name...]

Page 7: 2da Charla - Introduccion a Bd

BACKUP TABLE Copia al directorio de copia de seguridad el número

mínimo de ficheros de tablas necesarios para restaurar la tabla, después de escribir cualquier cambio al disco.

BACKUP TABLE tbl_name [, tbl_name] ... TO '/path/to/backup/directory'

DELETE Elimina columnas desde "table_name" que satisfagan la

condición dada por la "where_definition", y devuelve el número de registros borrados.DELETE [LOW_PRIORITY] [QUICK] [IGNORE]

FROM table_name[.*] [, table_name[.*] ...] USING table-references [WHERE where_definition]

Page 8: 2da Charla - Introduccion a Bd

DROP DATABASE Elimina todas las tablas de la base de datos y borra la base de datos. DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

UPDATE Actualiza columnas de filas existentes de una tabla con nuevos valores.UPDATE [LOW_PRIORITY] [IGNORE] tbl_name [, tbl_name ...]SET col_name1=expr1 [, col_name2=expr2 ...][WHERE where_definition]

Page 9: 2da Charla - Introduccion a Bd

Integridad de Datos

La exigencia de integridad de los datos garantiza la calidad de los datos de la base de datos. Dos pasos importantes en el diseño de las tablas son la identificación de valores válidos para una columna y la determinación de cómo forzar la integridad de los datos en la columna. La integridad de datos pertenece a una de las siguientes categorías:

Integridad de entidadIntegridad de dominioIntegridad referencialIntegridad definida por el usuario

Page 10: 2da Charla - Introduccion a Bd

Integridad de DatosTIPOS DE INTEGRIDAD DE DATOS

 Integridad de entidad:La integridad de entidad define una fila como entidad única para una tabla determinada. La integridad de entidad exige la integridad de las columnas de los identificadores o la clave principal de una tabla, mediante índices y restricciones UNIQUE, o restricciones PRIMARY KEY. Integridad de dominio:La integridad de dominio viene dada por la validez de las entradas para una columna determinada. Puede exigir la integridad de dominio para restringir el tipo mediante tipos de datos, el formato mediante reglas y restricciones CHECK, o el intervalo de valores posibles mediante restricciones FOREIGN KEY, restricciones CHECK, definiciones DEFAULT, definiciones NOT NULL y reglas.

Page 11: 2da Charla - Introduccion a Bd

Integridad de DatosTIPOS DE INTEGRIDAD DE DATOS

Integridad referencial :La integridad referencial protege las relaciones definidas entre las tablas cuando se crean o se eliminan filas. En SQL Server 2005 la integridad referencial se basa en las relaciones entre claves externas y claves principales o entre claves externas y claves exclusivas, mediante restricciones FOREIGN KEY y CHECK. La integridad referencial garantiza que los valores de clave sean coherentes en las distintas tablas. Para conseguir esa coherencia, es preciso que no haya referencias a valores inexistentes y que, si cambia el valor de una clave, todas las referencias a ella se cambien en consecuencia en toda la base de datos.

 

Page 12: 2da Charla - Introduccion a Bd

Integridad de DatosTIPOS DE INTEGRIDAD DE DATOS

Integridad referencial :Cuando se exige la integridad referencial, SQL Server impide a los usuarios: Agregar o cambiar filas en una tabla relacionada si no hay ninguna fila asociada en la tabla principal.Cambiar valores en una tabla principal que crea filas huérfanas en una tabla relacionada.Eliminar filas de una tabla principal cuando hay filas relacionadas coincidentes.

 

Por ejemplo, en las tablas Sales.SalesOrderDetail y Production.Product de la base de datos AdventureWorks, la integridad referencial se basa en la relación entre la clave externa (ProductID) de la tabla Sales.SalesOrderDetail y la clave principal (ProductID) de la tabla Production.Product. Esta relación garantiza que un pedido de ventas no pueda nunca hacer referencia a un producto que no existe en la tabla Production.Product.

Page 13: 2da Charla - Introduccion a Bd

Integridad de Datos

TIPOS DE INTEGRIDAD DE DATOS  Integridad definida por el usuario La integridad definida por el usuario permite definir reglas de empresa específicas que no pertenecen a ninguna otra categoría de integridad. Todas las categorías de integridad admiten la integridad definida por el usuario. Esto incluye todas las restricciones de nivel de columna y nivel de tabla en CREATE TABLE, procedimientos almacenados y desencadenadores.

Page 14: 2da Charla - Introduccion a Bd

Integridad de Datos

EXIGIR LA INTEGRIDAD DE LOS DATOS

Planear y crear tablas requiere identificar los valores válidos para las columnas y decidir cómo exigir la integridad de los datos en las columnas. SQL 2005 proporciona los siguientes mecanismos para exigir la integridad de los datos en una columna:

Restricciones PRIMARY KEY Restricciones FOREIGN KEY Restricciones UNIQUE Restricciones CHECK Definiciones DEFAULT Permitir valores NULL

Page 15: 2da Charla - Introduccion a Bd

Integridad de Datos RESTRICCIONES

Restricciones PRIMARY KEY :Si se define una restricción PRIMARY KEY para más de una columna, puede haber valores duplicados dentro de la misma columna, pero cada combinación de valores de todas las columnas de la definición de la restricción PRIMARY KEY debe ser única. Como se muestra en la siguiente ilustración, las columnas ProductID y VendorID de la tabla Purchasing.ProductVendor forman una restricción PRIMARY KEY compuesta para esta tabla. Así se garantiza que la combinación de ProductID y VendorID es única.

Page 16: 2da Charla - Introduccion a Bd

Integridad de DatosRESTRICCIONES

Restricciones FOREIGN KEY:La tabla Sales.SalesOrderHeader de la base de datos AdventureWorks tiene un vínculo a la tabla Sales.SalesPerson porque existe una relación lógica entre pedidos de ventas y personal de ventas. La columna SalesPersonID de la tabla SalesOrderHeader coincide con la columna de clave principal de la tabla SalesPerson. La columna SalesPersonID de la tabla SalesOrderHeader es la clave externa para la tabla SalesPerson.

Page 17: 2da Charla - Introduccion a Bd

Creación de Vistas• Seguridad: visualizamos solo una parte de la información que

existe

• Comodidad: el modelo relacional no es cómodo para visualizar, tener una vista nos simplifica esta tarea

Page 18: 2da Charla - Introduccion a Bd

Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida.

CREATE VIEW <nombre_vista>

AS (<sentencia_select>);

Creación de Vistas

Ejemplo: Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el nombre y apellidos del cliente en lugar de su código.

CREATE VIEW vAlquileresAS(SELECT nombre,         apellidos,  matriculaFROM tAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )

Page 19: 2da Charla - Introduccion a Bd

Si queremos, modificar la definición de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma muy parecida a como lo hacíamos con las tablas. En este caso queremos añadir los campos fx_alquiler y fx_devolucion a la vista.

ALTER VIEW vAlquileresAS(SELECT nombre,         apellidos,         matricula,       fx_alquiler,        fx_devolucion 

FROM tAlquileres, tClientes 

WHERE ( tAlquileres.codigo_cliente = tClientes.codigo ))

Modificación de Vistas

Page 20: 2da Charla - Introduccion a Bd

Por último podemos eliminar la vista a través de la sentencia DROP VIEW. Para eliminar la vista que hemos creado anteriormente se utilizaría:

DROP VIEW vAlquileres;

Eliminación de Vistas

Page 21: 2da Charla - Introduccion a Bd

VISTAS EN MYSQLVISTAS EN MYSQL

Page 22: 2da Charla - Introduccion a Bd

Una vista de base de datos es un resultado de una consulta SQL de una o varias tablas; también se le puede considerar una tabla virtual.

Tienen la misma estructura que una tabla: filas y columnas.

Sólo almacenan la definición, no los datos.

Los datos que se recuperan mediante una consulta a una vista se presentarán igual que los de una tabla.

Se especifican a través de una expresión de consulta (una sentencia SELECT) que la calcula y que puede realizarse sobre una o más tablas.

La mayoría de los DBMS soportan la creación y manipulación de vistas.

Page 23: 2da Charla - Introduccion a Bd

En general: información derivada de consultas complejas a la que se accede con frecuencia.

Obtención de información derivada de la relación entre varias tablas y estadísticas.

Como mecanismo de seguridad: creación de vistas con, únicamente, los atributos de las tablas a los cuales se desea permitir acceder a determinados usuarios.

Para la creación de esquemas externos

Page 24: 2da Charla - Introduccion a Bd

Existen 3 comandos principales:

Creación o modificación de vistas con CREATE VIEW o ALTER VIEW

Eliminación de vistas con DROP VIEW

Obtención de información de definición de una vista (metadatos) con SHOW CREATE VIEW

Page 25: 2da Charla - Introduccion a Bd

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW nombre_vista [(columnas)] AS sentencia_select [WITH [CASCADED | LOCAL] CHECK OPTION]

Esta sentencia crea una vista nueva o reemplaza una existente si se incluye la cláusula OR REPLACE.

Las tablas y las vistas comparten el mismo espacio de nombres en la base de datos, por eso, una base de datos no puede contener una tabla y una vista con el mismo nombre.

Page 26: 2da Charla - Introduccion a Bd

ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW nombre_vista [(columnas)] AS sentencia_select [WITH [CASCADED | LOCAL] CHECK OPTION]

Esta sentencia modifica la definición de una vista existente. La sintaxis es semejante a la empleada en CREATE VIEW.

Page 27: 2da Charla - Introduccion a Bd

SHOW CREATE VIEW nombre_vista

Muestra la sentencia CREATE VIEW que se utilizó para crear la vista

Page 28: 2da Charla - Introduccion a Bd

DROP VIEW [IF EXISTS] nombre_vista [, nombre_vista] ... [RESTRICT | CASCADE]

DROP VIEW elimina una o más vistas de la base de datos. Se debe poseer el privilegio DROP en cada vista a eliminar.

Page 29: 2da Charla - Introduccion a Bd