Proyecto de Base de Datos

UNIVERSIDAD NACIONAL AUTÓNOMA DE HONDURAS EN EL VALLE DE SULA Maestría en Gestión Informática Clase: Base de datos Cate

Views 114 Downloads 0 File size 4MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDAD NACIONAL AUTÓNOMA DE HONDURAS EN EL VALLE DE SULA

Maestría en Gestión Informática Clase: Base de datos Catedrática: Ing. Josué Bladimir Jiménez Castro PROYECTO Investigación de la administración de bases de datos en Ferretería Nacional Integrantes: Carol Argeñal Erika Girón Valladares Jajaira Escalante López Raúl Galeano Roberto Hernández Fecha: 20 agosto de 2016

CONTENIDO INTRODUCCIÓN....................................................................................... 3

I. II.

RESUMEN EJECUTIVO (1 PAGINA).........................................................4

III.

DESCRIPCIÓN GENERAL DE LA EMPRESA.............................................5

Historia......................................................................................................... 5 Misión.......................................................................................................... 6 Visión........................................................................................................... 6 Valores.......................................................................................................... 6 IV.

DEFINICIÓN DEL TEMA.........................................................................7 JUSTIFICACIÓN........................................................................................ 8

V. VI.

PUNTOS SELECCIONADOS.....................................................................9

1.

Administración de usuarios........................................................................9 Recomendaciones y observaciones...................................................................9 Perfiles de Usuarios.................................................................................... 10 Políticas de Seguridad de Perfiles..................................................................15

2.

Diagrama Entidad-Relación......................................................................17

3.

Índices.................................................................................................. 17

4.

Optimización de Consultas.......................................................................22

5.

Monitoreo de procesos de base de datos.......................................................30

IBSurgen..................................................................................................... 31 HQbird....................................................................................................... 31 Aggregated performance statistics for users attachments...................................32 Sequential reads / Indexed reads...................................................................32 Attachments............................................................................................. 33 Transactions............................................................................................. 33 Statements................................................................................................ 34 6.

Respaldos y restauración de la base de datos................................................34

VII.

CONCLUSIONES Y RECOMENDACIONES..............................................53

Recomendaciones.................................................................................. 53 Conclusiones.......................................................................................... 53 VIII.

BIBLIOGRAFÍA................................................................................. 54

I.

INTRODUCCIÓN

El presente informe muestra los resultados de una investigación a la base de datos realizada en la Ferretería Nacional, dicho análisis se efectuó como un proyecto educativo en la clase de Diseño y Administración de Base de Datos de la Maestría en Gestión Informática, el cual tiene como objetivo evaluar la confiabilidad e integridad de los datos, mediante aplicaciones de herramientas de auditoria de base de datos. Los resultados de la investigación son basados en el enfoque de mejores prácticas de un DBA los cuales forman parte del contenido de la clase y como estas estrategias llevan a una organización a tener su información ordenada, estable y segura.

II.

RESUMEN EJECUTIVO

El proyecto consiste en la evaluación del sistema de base de datos que utiliza Ferretería Nacional en su sistema de información para sus procesos de ventas, inventarios, cotizaciones y finanzas. Ferretería Nacional está compuesta por un equipo profesional multidisciplinario constituido por vendedores y personal administrativo dedicados a la distribución de equipo y materiales de construcción a través de su base de datos. Con el fin de cumplir con el requisito final de la clase de Diseño y administración de la base de datos en aplicar los conceptos de la clase para traer mejoras en la base de datos de una organización, se seleccionó Ferretería Nacional para analizar e identificar oportunidades y riesgos. El objetivo del presente documento es proponer los cambios necesarios en la base de datos de la organización enfocado en las mejores prácticas de gestión de bases de datos alrededor de seguridad y desempeño. Contamos con la total colaboración de Ferretería Nacional y sus líderes para el análisis exitoso de su base de datos.

III. DESCRIPCIÓN GENERAL DE LA EMPRESA Historia El fundador, D. Luis García San Miguel, con altas dotes emprendedoras inicia su actividad empresarial con una ferretería de barrio, en el este de la ciudad de San Pedro Sula en el año 1979 en un edificio modesto y dedicado exclusivamente al negocio de ventas de ferretería. Local que todavía hoy existe en funcionamiento. Y que sería el germen de lo que hoy es Ferretería Nacional. Cabe destacar que Ferreterías Nacional es una empresa comprometida con los clientes. En general, la empresa se caracteriza por buscar el desarrollo de la región y por ello explora constantemente con la incorporación de nuevos productos y/o nuevos negocios. Dentro de su esquema de funcionamiento, es una empresa familiar con más de 30 años de historia en la cual ya trabajan activamente tres generaciones de la familia.

Misión Somos una empresa orientada a ofrecer la mejor calidad y variedad en productos, servicios de venta y distribución de material que satisfagan a nuestros clientes, brindándoles las mejores opciones de compra, con su personal calificado y dedicado al mejoramiento continuo, fomentando una relación exitosa junto a nuestros proveedores y clientes, con el mejor ambiente, para su confianza y lealtad.

Visión Ser una empresa líder en la venta de material de ferretería, orientado a satisfacer las necesidades y expectativas de nuestro mercado con eficiencia y eficacia, brindando

calidad en nuestros servicios con responsabilidad y compromiso de ofrecerle la mejor asistencia a nivel nacional.

Valores 

Excelencia: Creemos que el vivir y realizar nuestras labores diarias con



eficiencia, mejora continua y trabajo en equipo es la clave de nuestra excelencia. Integridad: Creemos que trabajar con ética, honradez y respeto a nosotros mismos, clientes, proveedores y accionistas son la base de nuestro éxito guiados



por una moral que garantiza nuestro sello distintivo. Compromiso: Creemos en nuestra capacidad para cumplir con nuestros deberes y responsabilidades, estando comprometidos con la organización, nuestros clientes y proveedores formando así parte del valioso recurso humano de nuestra



organización. Calidad y Servicio: Creemos en la calidad y servicio como la esencia de la organización brindándoles a nuestros clientes una atención personalizada satisfaciendo sus necesidades con productos de calidad con precios competitivos



y la mejor variedad de productos. Equidad: Creemos en nuestro valor individual y en ser tratados con igualdad y



justicia siendo indiferente nuestro género, raza, religión o escolaridad. Pasión y actitud: Creemos que nuestro talento personal nos motiva a mantener una actitud optimista llevándonos con determinación a cumplir nuestros objetivos y metas.

IV. DEFINICIÓN DEL TEMA Nuestro equipo se centró en investigar cinco puntos torales para el buen funcionamiento y buenas prácticas de bases de datos, estos puntos son los siguientes: 1. 2. 3. 4.

La administración de usuarios Índices Optimización de consultas Respaldos y restauración de la base de datos 5. Monitoreo de procesos de base de datos Con este estudio se pretende brindar a la Ferrería Nacional recomendaciones para mejorar el manejo de la información.

V.

JUSTIFICACIÓN

El almacenamiento de datos es de suma importancia para toda empresa ya que constituye uno de los soportes principales para ella. De ahí surge la necesidad que la información se resguarde de forma ordenada ya que hoy en día todas las empresas resguardan su información de diferentes formas y algunas utilizan métodos actualizados como son bases de datos que les permite mantener la información de forma segura y confiable. En esta investigación se tomó como objeto de estudio la Ferretería Nacional, ubicada en la ciudad de San Pedro Sula, con el objetivo de evaluar la administración de su base de datos, los perfiles de usuarios,

VI. PUNTOS SELECCIONADOS 1. Administración de usuarios La administración de usuarios es el proceso de controlar que usuarios están permitidos comunicación con la base de datos y que privilegios tienen en la misma. Esta gestión de privilegios es fundamental en la seguridad y el desempeño que tendrá la base de datos. Toda organización debe mantener una política de seguridad de cada base de datos orientada a proteger la información de que sea destruida de forma maliciosa o que se pueda dañar la infraestructura de la base de datos. Cada base de datos debe tener un administrador(DBA) el cual en muchos casos es asociado como un administrador de seguridad. El administrador es responsable de implementar y administrar las políticas de seguridad de la base de datos a través de la administración de usuarios. En base a la magnitud de una base de datos y la cantidad de bases de datos en una organización, se puede considerar estas responsabilidades a un grupo en vez de un individuo.

Recomendaciones y observaciones

En el caso de la base de datos de nuestro proyecto, no existe una administración de usuarios adecuada. La base de datos no cuenta con perfiles y usuarios definidos a nivel de base de datos. Las aplicaciones desarrolladas se conectan a través de un usuario con el máximo nivel de privilegios (sysdba). Los accesos a nivel de registros (datos) en la base de datos son determinados por una tabla del esquema:

La base de datos debe administrar la seguridad de todas las aplicaciones en vez de depender de una tabla que forma parte de la base de datos. Una tabla interna que sea responsable de las credenciales de usuarios y aplicaciones es una vulnerabilidad seria. Esta tabla no tiene ni siquiera el campo de la clave encriptado.

Perfiles de Usuarios

Uno de los cambios que se tiene que gestionar en la base de datos es la creación de los siguientes perfiles: 1. 2. 3. 4. 5.

Cajeros Vendedores DespachoBodega Administrador Contador

Al crear estos perfiles, el DBA solo asignara los privilegios necesarios. Luego los usuarios creados serán asignados a los perfiles de acuerdo a las necesidades de información que tienen y en base a los alcances definidos por la organización. Inevitablemente las aplicaciones desarrolladas se tendrán que actualizar en términos del usuario que utilizan para las transacciones retirando por completo el uso del usuario sysdba a nivel de aplicaciones.

Los accesos por perfil a nivel de tablas serán los siguientes: Perfil Cajero

Tabla Clientes

Acceso Escritura

Compra

Escritura

Compra_C

Escritura

Compra_Cot

Escritura

Cotizacion

Escritura

Credito

Lectura

Deposito

Escritura

Detalle_C

Escritura

Detalle_COM

Escritura

Detalle_Coti

Escritura

Detalle_DC

Escritura

Vendedores

Detalle_DP

Escritura

Detalle_V

Escritura

Devolucion_C

Escritura

Devolucion_P

Escritura

Factura_C

Escritura

Factura_V

Escritura

Orden

Escritura

Orden_Detalle

Escritura

Recibo

Escritura

Tipo_Cliente Bodega

Lectura Lectura

Cheques

Lectura

Cierre

Lectura

Clientes

Escritura

Compra

Escritura

Compra_C

Escritura

Compra_Cot

Escritura

Cotizacion

Escritura

Credito

Lectura

Defectuoso

Lectura

Deposito

Lectura

Detalle_C

Escritura

Detalle_Com

Escritura

Detalle_Coti

Escritura

Detalle_DC

Escritura

Detalle_DP

Escritura

Detalle_V

Escritura

Devolucion_C

Escritura

Devolucion_P

Escritura

Empleado

Lectura

Estante

Lectura

Factura_C

Escritura

Factura_V

Escritura

Gasto_V

Lectura

Grupo

Lectura

Inventario

Lectura

Nivel

Lectura

Orden

Escritura

DespachoBodega

Administrador

Orden_Detalle

Escritura

Producto

Lectura

Prod_R_Prov

Lectura

Proveedor

Lectura

Recibo

Lectura

Retiro

Lectura

Retiros

Lectura

Sub_Grupo

Lectura

Tipo_Cliente Bodegas

Lectura Escritura

Cierre

Lectura

Compra

Lectura

Compra_C

Lectura

Compra_Cot

Lectura

Congelar

Lectura

Cotizacion

Lectura

Defectuoso

Escritura

Devolucion_C

Escritura

Devolucion_P

Escritura

Estante

Escritura

Factura_C

Lectura

Factura_V

Lectura

Inventario

Escritura

Nivel

Lectura

Orden

Lectura

Orden_Detalle

Lectura

Producto

Escritura

Prod_R_Prov

Escritura

Proveedor

Escritura

Provee_Conta

Escritura

Recibo

Escritura

Retiro

Escritura

Retiros

Escritura

Sub_Grupo Bancos

Escritura Escritura

Bodega

Escritura

Cheques

Escritura

Cierre

Escritura

Clientes

Escritura

Compra

Escritura

Compra_C

Escritura

Compra_Cot

Escritura

Congelar

Escritura

Cotizacion

Escritura

Credito

Escritura

Cuenta

Escritura

Defectuoso

Escritura

Departamento

Escritura

Deposito

Escritura

Detalle_C

Escritura

Detalle_Com

Escritura

Detalle_Coti

Escritura

Detalle_DC

Escritura

Detalle_DP

Escritura

Detalle_V

Escritura

Devolucion_C

Escritura

Devolucion_P

Escritura

Empleado

Escritura

Estante

Escritura

Factura_C

Escritura

Factura_V

Escritura

Gasto_V

Escritura

Grupo

Escritura

Inventario

Escritura

Nivel

Escritura

Orden

Escritura

Orden_Detalle

Escritura

Prestamo

Escritura

Producto

Escritura

Prod_R_Prov

Escritura

Proveedor

Escritura

Provee_Conta

Escritura

Recibo

Escritura

Retiro

Escritura

Retiros

Escritura

Sub_Grupo

Escritura

Contador

Tipo_Cliente

Escritura

Vinetas_Conf

Escritura

Bancos

Escritura

Bodega

Escritura

Cheques

Escritura

Cierre

Escritura

Clientes

Lectura

Compra

Escritura

Compra_C

Escritura

Compra_Cot

Escritura

Congelar

Escritura

Cotizacion

Escritura

Credito

Escritura

Cuenta

Escritura

Departamento

Lectura

Deposito

Escritura

Detalle_C

Escritura

Detalle_Com

Escritura

Detalle_Coti

Escritura

Detalle_DC

Escritura

Detalle_DP

Escritura

Detalle_V

Escritura

Devolucion_C

Escritura

Devolucion_P

Escritura

Empleado

Lectura

Factura_C

Escritura

Factura_V

Escritura

Gasto_V

Escritura

Grupo

Escritura

Inventario

Escritura

Nivel

Escritura

Orden

Escritura

Orden_Detalle

Escritura

Prestamo

Escritura

Producto

Escritura

Prod_R_Prov

Escritura

Proveedor

Escritura

Provee_Conta

Escritura

Recibo

Escritura

Retiro

Escritura

Retiros

Escritura

Sub_Grupo

Escritura

Tipo_Cliente

Escritura

Vinetas_Conf

Escritura

Políticas de Seguridad de Perfiles 1) El DBA será la única persona autorizada para la creación, edición, debilitación y eliminación de perfiles. 2) El DBA será la única persona autorizada a crear, editar, deshabilitar y eliminar usuarios. 3) Todo usuario creado debe formar parte de por lo menos un perfil. 4) La clave inicial de cada usuario es definida por el DBA pero el usuario lo tendrá que actualizar el día que reciba sus credenciales. 5) Ningún usuario está permitido en divulgar sus credenciales. 6) La contraseña de todo usuario expira cada 30 días. Todo usuario podrá actualizar su clave antes de los 30 días si se requiere. 7) La clave de todo usuario debe tener una longitud mínima de 8 caracteres consistiendo de por lo menos una letra mayúscula, un número y un símbolo. No se permitirán claves parecidas a claves usadas en el pasado por el mismo usuario. 8) Toda gestión asociada con la crear, editar, deshabilitar y eliminar perfiles o usuarios debe quedar documentada con los siguientes datos: a. ¿Quién solicita la gestión? b. Fecha de solicitud c. Usuario o Perfil d. Tipo de gestión (crear, editar, deshabilitar, eliminar) e. Duración de acción (temporal o permanente) f. Firma de Jefe de área g. Firma de DBA h. Firma de Jefe de RRHH i. Motivo detrás de la gestión 9) Toda transacción realizada por cada usuario quedara registrada en los logs de la base de datos. 10) El DBA recibirá un correo después de que un usuario realice tres intentos fallidos en validar sus credenciales. 11) Se realizará una auditoria de los accesos de cada perfil y los usuarios que forman parte de los perfiles cada seis meses para asegurar que los accesos definidos en el perfil NO son una violación a los datos confidenciales que deben acceder y para validar que los usuarios que forman parte de cada perfil son las personas

que realmente deben estar en dichos grupos. Los hallazgos de la auditoria serán comunicados a la gerencia general y a la gerencia de recursos humanos. 12) Cada perfil tendrá un horario definido de acceso a la base de datos y un tiempo de sesión establecido el cual al vencerse exige que se vuelvan a ingresar las credenciales del usuario de la sesión.

2. Diagrama Entidad-Relación Los datos se estructuran en una o varias tablas donde relacionan uno o varios conjuntos de datos. Las tablas se pueden modificar fácilmente siguiendo un diseño preestablecido por los programadores buscando la mejor manera posible de obtener una integridad total de la información. Las bases de datos con relaciones establecidas entre tablas son más rápidas y la facilidad con la que permite transformar el modelo de datos es rápido, la sencillez de la propia estructura física de este tipo de bases de datos y la posibilidad de adaptación a una serie de entornos de datos más amplia. La base datos de Ferretería Nacional no tiene casi ninguna relación entre sus tablas, salvo la relación que existen entre la tabla Factura_C y la tabla Producto. Por lo que las consultas a las tablas son lentas. Además, el usuario, podría eliminar registros sin tener ningún tipo de restricción.

3. Índices Un índice como bien se sabe, es una estructura de disco asociada con una tabla o una vista que acelera la recuperación de filas de la tabla o de la vista. Un índice contiene claves generadas a partir de una o varias columnas de la tabla o la vista. Dichas claves están almacenadas en una estructura (árbol b) que permite que SQL Server busque de forma rápida y eficiente la fila o filas asociadas a los valores de cada clave. Los índices mal diseñados y la falta de índices constituyen las principales fuentes de atascos en aplicaciones de base de datos. El diseño eficaz de los índices tiene gran importancia para conseguir un buen rendimiento de una base de datos y una aplicación. La selección de los índices apropiados para una base de datos y su carga de trabajo es una compleja operación que busca el equilibrio entre la velocidad de la consulta y el costo de actualización. Los índices estrechos, o con pocas columnas en la clave de índice, necesitan menos espacio en el disco y son menos susceptibles de provocar sobrecargas debido a su mantenimiento. Por otra parte, la ventaja de los índices anchos es que cubren más consultas. Puede que tenga que experimentar con distintos diseños antes de encontrar el índice más eficaz. Es posible agregar, modificar y quitar índices sin que esto afecte al esquema de la base de datos o al diseño de la aplicación. Por lo tanto, no debe dudar en experimentar con índices diferentes. A continuación, se muestra todas las llaves primarias que posee la base de datos, como se puede observar en la figura, en la cual se ve claramente que solo existen dos índices, los cuales corresponden a la tabla FACTURA_C (factura de caja), estos índices corresponden a los campos COD_EMPLEADO Y COD_CLIENTE.

Por otra parte, la figura muestra la tabla FACTURA_C, tiene 16 campos, donde se pude observar claramente que la clase primaria es el campo factura_v. Así mismo, se observa que esta tabla contiene dos campos índices por medio de los cuales se puede acceder a la tabla empleado y cliente. En esta tabla se almacena información sobre la factura final, es por ello que existe un índice cod_empleado ya que cada factura emitida por un empleado le genera comisión al empleado. Por otro lado, el cod_cliente se utiliza para verificar compras del cliente.

Partiendo de lo anterior, se procede a crear índices en tablas que generan el mayor número de transacciones, y por ende el mayor número de información. Estas tablas son las siguientes:    

DETALLE_C FACTURA_V CLIENTE PRODUCTO

TABLA: DETALLE_C

En esta tabla se procede a crear dos índices por un lado el cod_facrura y por otro el cod_producto), con el fin de optimizar las consultas en estas dos tablas. A continuación, la figura muestra el script para la creación de estos índices.

|

TABLA FACTURA_V La figura muestra la estructura de la tabla FACTURA_V, la cual muestra los campos de la misma, así mismo, se observa que no tiene ningún campo índice. Por lo que se procede a crearlos.

A continuación, la figura muestra el script para la creación de estos índices. TABLA CLIENTES

La figura, muestra la estructura de la tabla CLIENTES la cual muestra los campos de la misma, así mismo, se observa que no tiene ningún campo índice. Por lo que se procede a crearlos.

A continuación, la figura muestra el script para la creación de estos índices.

TABLA PRODCUTOS

La figura, muestra la estructura de la tabla PRODCUTOS la cual muestra los campos de la misma, así mismo, se observa que no tiene ningún campo índice. Por lo que se procede a crearlos

A continuación, la figura muestra el script para la creación de estos índices.

4. 4. 4. Optimización de Consultas Los índices bien diseñados pueden reducir las operaciones de E/S de disco y consumen menos recursos del sistema, con lo que mejoran el rendimiento de la consulta. Los índices pueden ser útiles para diversas consultas que contienen instrucciones SELECT, UPDATE, DELETE o MERGE. Cuando se ejecuta la consulta, el optimizador de

consultas evalúa cada método disponible para recuperar datos y selecciona el método más eficiente. El método puede ser un recorrido de la tabla o puede ser recorrer uno o más índices si existen. A continuación, se explica el antes y después de algunos de los procedimientos más importantes

Procedure Cliente_Venta ANTES FOR SELECT CLIENTES.cod_cliente,factura_c.nombre, DETALLE_C.cod_produc,DETALLE_C.descripcion,detalle_c.cantidad, DETALLE_C.precio,DETALLE_C.descuento,DETALLE_C.impuesto, DETALLE_C.total,detalle_c.precio_compra,factura_C.cod_factv, factura_c.total,detalle_c.cantidad*detalle_c.precio_compra as toti, factura_c.fecha FROM factura_c, clientes,detalle_c where

factura_c.cod_cliente=clientes.cod_cliente

factura_c.cod_factv=detalle_c.cod_factc

and

factura_c.fecha>=:fecha1

factura_c.fecha=:fecha1 and factura_c.fecha=:fecha1 and factura_c.fecha