Vous êtes sur la page 1sur 6

Roco Romero BASES DE DATOS

1. Identifica un problema de tu entorno que pueda resolverse a travs de la implementacin de una base de datos. 2. Una vez identificado el problema, disea el diagrama de la base de datos, el cual debe contener cuando menos cuatro tablas. 3. Despus de disear el diagrama, crea el esquema en MySQL, que contenga los siguientes aspectos: Al menos dos tablas tipo MyISAM. Al menos dos tablas tipo InnoDB. Llaves primarias y llaves forneas. Al menos 6 tipos de datos distintos, de los soportados por MySQL. 1.- En la oficina donde desempeo mis labores, trabaja una seora que se llama Vernica Valerio, es una secretaria que trabaja como secretaria y para obtener ingresos adicionales vende una gran cantidad de productos como Amway, Tupperware, Bestware, etc. El problema es que las ventas las lleva en una libreta que no tiene pies ni cabeza, el proyecto que decid hacer es ayudarle con los registros de sus clientes y las ventas. Para ordenarle su mundo necesitamos cuatro tablas: La tabla de clientes: Nombre (obligatorio) Apellido Paterno (obligatorio) Apellido Materno (no obligatorio) Fecha Nacimiento (Felicitarlo en su cumpleaos) Direcccin Telfono Comentario TEXT (para cualquier aclaracin o referencia) Motor de almacenamiento: InnoDB Para crear la tabla: CREATE TABLE Clientes ( IdCliente INT NOT NULL AUTO_INCREMENT, Nombre VARCHAR(50) NOT NULL, ApellidoP VARCHAR(20) NOT NULL, ApellidoM VARCHAR(20), Fecha_Nacimiento DATE NOT NULL, Direccion VARCHAR(100), Telefono VARCHAR(15), Comentario TEXT, PRIMARY KEY (IdCliente) ) ENGINE= InnoDB;

La tabla de Ventas: Cliente (obligatorio, se liga con la tabla clientes) Fecha (obligatorio) Producto (se detalla en la tabla detalle_ventas) Motor de almacenamiento: MyISAM

Para crear la tabla: CREATE TABLE Ventas ( IdVenta INT NOT NULL AUTO_INCREMENT, Fecha DATE, IdCliente INT NOT NULL, PRIMARY KEY (IdVenta), CONSTRAINT IdCliente FOREIGN KEY (IdCliente) REFERENCES Clientes (IdCliente) ) ENGINE= MyISAM; La tabla de Productos: Nombre del producto (obligatorio) Precio (obligatorio) Motor de almacenamiento: InnoDB Para crear la tabla: CREATE TABLE Productos ( IdProducto INT NOT NULL AUTO_INCREMENT, Nombre VARCHAR(50) NOT NULL, Precio DECIMAL(10 , 2 ) NOT NULL, PRIMARY KEY (IdProducto) ) ENGINE= InnoDB; La tabla de Detalle_Ventas: Venta (Relaciona con la tabla Ventas) Producto (relaciona con la tabla productos) Cantidad (obligatorio) Descuento (no obligatorio) Motor de almacenamiento: MyISAM Para crear la tabla: CREATE TABLE Detalle_Ventas ( IdDetalle INT NOT NULL AUTO_INCREMENT , IdCliente INT NOT NULL, IdVenta INT NOT NULL , IdProducto INT NOT NULL , Cantidad INT NOT NULL , Descuento DECIMAL(10,2), PRIMARY KEY (IdDetalle) ,

CONSTRAINT IdVenta FOREIGN KEY (IdVenta) REFERENCES Ventas (IdVenta), CONSTRAINT IdProducto FOREIGN KEY (IdProducto) REFERENCES Productos (IdProducto) ) ENGINE=MyISAM; Cabe mencionar que si bien se usaron como motores de almacenamiento MyISAM e InooDB, por cuestiones de la actividad, en la prctica se podra utilizar solamente InooDB ya que si bien es ms lento, con los adelantos en las tecnologas para los procesadores, sera prcticamente imperceptible la diferencia.

4. Una vez creado el esquema define 4 usuarios, que cumplan con las siguientes caractersticas: La funcin GRANT Se utiliza para crear usuarios y concederle previlegios. La sintaxis general del comando GRANT es: GRANT privilegios (columnas) ON base/tabla TO nombre_usuario IDENTIFIED BY 'contrasea'; La funcin REVOKE se utiliza para retirar privilegios a los usuarios. Su sintaxis es muy similar a la de GRANT: REVOKE privilegios ON base/tabla FROM nombre_usuario As quitaramos todos los permisos del usuario REVOKE ALL ON BD.* from USER@localhost

El usuario 1 slo podr consultar informacin de las tablas. GRANT SELECT ON Ventas_Veronica.* TO Usuario1@localhost' IDENTIFIED BY 11111;

El usuario 2 slo podr insertar y consultar informacin de las tablas. GRANT SELECT,INSERT ON Ventas_Veronica.* TO Usuario2@localhost' IDENTIFIED BY 22222;

El usuario 3 slo podr eliminar y consultar informacin de las tablas. GRANT SELECT, DELETE ON Ventas_Veronica.* TO Usuario3@localhost' IDENTIFIED BY 33333;

El usuario 4 podr realizar todas las operaciones. GRANT ALL PRIVILEGES ON Ventas_Veronica.* IDENTIFIED BY 44444;

TO

USUARIO4@localhost

Vous aimerez peut-être aussi