EJEMPLO 1
El siguiente paso del diseño nos obliga a elegir tipos para cada atributo de cada relación. Para el primer ejemplo teníamos el siguiente esquema:
PROVEEDOR(Codproveedor, ruc, razon, direccion) SUMINISTRO(codsuministro, descripcion, medida, stockactual, cuenta) CUENTA_CONTABLE(cuenta, subcta, clase, descripcion) INGRESO(numero, fecha, codprovedor, moneda, tipocambio) DETA_INGRESO(numero, codsuministro,cantidad, precio)
En MySQL, es importante, aunque no obligatorio, usar valores enteros como claves principales, ya que las optimizaciones que proporcionan un comportamiento mucho mejor para claves enteras.
Relación proveedor
Codproveedor: El codigo de un proveedor nos servirá para identificarlo, puede ser un INT. RUC: El RUC de una persona natural o jurídica está comprendida por 11 dígitos, para ello utilizaremos CHAR(15) Razón: Representa la razón social del proveedor, la que puede tomar el valor de VARCHAR(40). Dirección: Representa la dirección de un proveedor, la que también puede tomar el valor VARCHAR(50).
Relación suministro
Codsuministro: El código de suministro puede ser un INT Descripcion: La descripción de un suministro puede ser una tipo de dato VARCHAR(40). Medida: La medida de un suministro puede ser expresada como un CHAR(3), Stockactual: Muestra la cantidad actual de suministros que hay en el almacén, puede ser un FLOAT. Cuenta: Es la clave foránea y toma el mismo valor de la cuenta contable INT
Relación Cuenta_Contable
Cuenta: Representa la cuenta contable de un suministro, toma el valor de INT. Subcta: Representa la subcuenta contable, toma el valor INT. Clase: Indica a que clase pertenece un suministro, toma el valor de VARCHAR(30). Descripcion: Indica la descripción de la cuenta contable, toma el valor de VARCHAR(50).
Relación Ingreso
Numero: Representa el numero de ingreso de suministros al almacen, toma el valor de INT. Fecha: Representa la fecha de ingreso, toma el valor DATE. Moneda: Indica si es soles o dólares, toma el valor CHAR(1). Tipocambio: Indica el valor de dólar diario, toma el valor FLOAT. Codproveedor: Indica el codigo del proveedor, toma el valor INT
Relación Deta_Ingreso
Numero: Representa el numero de ingreso de suministros al almacen, toma el valor de INT. Codsuministro: Es el código de suministro, y toma el valor anterior INT. Cantidad: Es la cantidad de suministros ingresados al almacén INT. Precio: Es el precio con que ingresa al almacén FLOAT.
EJEMPLO 2
Trabajando con este nuevo esquema:
ALUMNO(Codalumno, Nombre, Escuela ,Ciclo) LIBRO(Codlibro, registro, titulo, paginas, codeditorial, codespecialidad) ESPECIALIDAD(codespecialidad, Nombre) AUTOR(Codautor, Nombre, email) EDITORIAL(codeditorial, Nombre, Dirección, Teléfono) PRESTA(numero, Codalumno, Fecha_presta,Fecha_devolución, observación) DETA_PRESTA(numero, codlibro) ESCRITO_POR(Codlibro, Codautor)
Relación Alumno
Codalumno: Código de un alumno, toma el valor INT. Nombre: Toma el valor VARCHAR(40) Escuela: Toma el valor VARCHAR(30) Ciclo: Toma el valor VARCHAR(3)
Relación Libro
Codlibro: Código de Libro, toma el valor INT. Registro: También toma el valor INT. Titulo: Puede tomar el valor VARCHAR(50) Paginas: Toma el valor INT Codeditorial: Código de Editorial, toma el valor INT. Codespecialidad: Es el codigo de la especialidad. Toma el valor INT
Relación Especialidad
Codespecialidad: Toma el valor INT Nombre: Puede tomar el valor VARCHAR(30)
Relación Autor
Codautor: Código de autor, toma el valor INT. Nombre: Puede tomar el valor VARCHAR(50) Email: Puede tomar el valor VARCHAR(30)
Relación Editorial
Codeditorial: Código de editorial, toma el valor INT. Nombre: Puede tomar el valor VARCHAR(50) Dirección: Puede tomar el valor VARCHAR(50) Teléfono: Puede tomar el valor VARCHAR(15)
Relación Presta
Numero: Es el número de préstamo INT
Codalumno: Toma el valor INT. Fecha_presta: Toma el valor DATE. Fecha_devolución: Toma el valor DATE. Observación: Se necesita espacio, VARCHAR(100)
Relación Deta_Presta
Numero: Es el número de préstamo INT Codlibro: Toma el valor INT.
Escrito_por
Codlibro: Toma el valor INT. Codautor: Toma el valor INT.
Crear una Base se datos
Para crear una base de datos, usamos el siguiente comando:
La base de datos se crea sólo una vez, pero debemos seleccionarla cada vez que iniciamos una sesión con MySql. Es recomendable que se indique la base de datos sobre la que vamos a trabajar al momento de invocar al monitor de MySQL. Por ejemplo:
Crear tablas
Por ejemplo vamos a crear una tabla alumno para la base de datos Biblioteca.
Ahora que se ha creado la tabla alumno, la sentencia SHOW TABLES, debe producir lo siguiente:
20 También podemos verificar la estructura de la tabla con la opción DESCRIBE.
Procedemos a crear nuevamente la tabla alumno con su clave primaria correspondiente (Primary Key), la cual puede ser autoincrementada (auto_increment), también puedes añadir un comentario con el comando comment.
Ahora veremos la nueva estructura de la tabla alumno.
PRIMARY KEY
61 CLAVES FORÁNEAS
Creamos las tablas tipo InnoDB edito y libros.
Insertamos registros en ambas tablas
Ahora vamos a probar la Integridad Referencial.
Por ejemplo vamos a tratar de eliminar la editorial Megabyte de la tabla Edito, la cual también se encuentra asignada en la tabla Libros.
El resultado que nos muestra es que no puede eliminar una fila, la cual está referenciada en otras tablas como clave foránea.
Consultar Registros
•
Selecciona los alumnos de la escuela de Medicina.
•
Selecciona los alumnos que estén estudiando Derecho o que cursen el I ciclo.
•
Selecciona los alumnos que estén estudiando Derecho y que no tengan datos de ciclo.
•
Selecciona los nombres de todos los alumnos.
•
Selecciona el nombre y la escuela de los alumnos que se encuentren en el III ciclo.
•
Selecciona el nombre, escuela y ciclo de los alumnos, y ordénalos por ciclo.
•
Selecciona el nombre, escuela y ciclo de los alumnos, y ordénalos por nombre.
•
Selecciona la cantidad de alumnos agrupados por ciclo.
Consulta de varias tablas
Eliminar Registros
SHOW COLUMNS: Lista las columnas de una tabla dada