domingo, 5 de junio de 2016

1. PRESENTACION




                                           

Catedrático:
LIC. Jesús Humberto Gómez Cano
Carrera:
Ing. En sistemas computacionales
Materia:
Administración De Base De Datos
Nombre Alumno(s):
Cesar Ángel Montejo
Harvey Dangelli García Echeverría
Fredy Omar Pérez barco
Edilberto Alfaro Morales
Proyecto:
Sistema de control de inventario
Núm. Control:
12700166
12700134
12700185
12700165
 
COMITÁN DE DOMÍNGUEZ, CHIAPAS, 06 DE JUNIO 2016.

                                                                                                                                                                                                            



INDICE

1. Presentación 
2. Introducción
3. Planteamiento del problema
4. Objetivos
5. Justificación
5.1 Marco teórico 
5.1.1 Sistemas Manejadores de Base de datos
5.1.1.2 tipos de manejadores de base de datos
5.1.2 Cuadro comparativo de DBMS
5.1.3 Lenguajes de programación

5.1.3.1 Tipos de lenguaje de programación
5.1.4 Elección del DBMS y Lenguaje de Programación
6. Conclusiones
7. Bibliografía

2. INTRODUCCIÓN

A medida que las tiendas crecen, se debe de administrar en forma cada vez, el control de los inventarios es unas de las actividades más complejas. Su planeación y ejecución implica la participación de integral de varios segmentos de la tienda, el principal problema de las ferreterías, es el no controlar en inventario la totalidad de los artículos existentes en la tienda ya que esto es necesario para mantenerse en el mercado con los competidores, al no tener en existencia esto provoca un mal servicio al no tener suficientes productos y esto provocaría una perdida para la tienda, el presente proyecto analiza la situación de la ferretería que se dedica a la venta de productos al público en general. Es por ello que la ferretería SAN JOSE se pretende implementar un sistema de control de inventario que permitirá generar resultados favorables los cuales se verán reflejados, en el manejo de inventario de la tienda, con la finalidad de ahorrar tiempo. El sistema les permitirá disponer de los formatos necesarios para realizar las operaciones que se requieren dentro de la tienda y tener la información disponible de una manera eficiente y organizada.

3. PLANTEAMIENTO DEL PROBLEMA

Uno de los aspectos más importantes a controlar son los inventarios, los cuales, representan costos críticos en las operaciones, y por lo tanto tienen un papel fundamental en la economía de la organización, ya que la administración de inventarios, representa un área crucial para el control de costos.

Desde este punto de vista, la ferretería SAN JOSE, la cual se dedica a la venta de productos al público en general. Su principal problema es la falta de un control eficiente de las entradas y salidas de productos. 

4. OBJETIVOS

OBJETIVO GENERAL

Automatizar el control de las entradas y salidas de productos de la ferretería SAN JOSE, para tener un mejor control de los inventarios, evitar pérdidas y aumente las ventas, mediante el diseño y desarrollo de un sistema de información a partir de 2016.

OBJETIVOS ESPECÍFICOS

Mantener una base de datos de productos para el control de entradas y salidas
Mantener un módulo de Ventas de los productos vendidos y su facturación. 
Mantener un módulo de Compras de productos
Mantener un módulo de Proveedores que se encargaran de surtir la tienda

Mantener un módulo de clientes

5. JUSTIFICACION

Con base a la problemática planteada, se pretende automatizar el control de las entradas y salidas de la ferretería SAN JOSE, para tener un mejor control de inventario y  un software que controle todos los productos teniendo como beneficios tener un mejor control de los inventarios que la tienda evite perdidas a falta de productos y asi poder estar pendiente cuando estén por agotarse, teniendo un impacto positivo, siendo que la tienda tenga un mejor sistemas de inventario y tenga un nivel más favorable antes las competencias que utilizan dicho sistemas, beneficiando a los clientes que lleguen a la espera de encontrar los productos que buscan, Todo esto mediante el sistema de control de inventario SAN JOSE.

5.1.1 SISTEMAS MANEJADORES DE BASE DE DATOS

Un sistema manejador de bases de datos (SGBD, por sus siglas en inglés) o DataBase Management System (DBMS) es una colección de software muy específico, cuya función es servir de interfaz entre la base de datos, el usuario y las distintas aplicaciones utilizadas. Como su propio nombre indica, el objetivo de los sistemas manejadores de base de datos es precisamente el de manejar un conjunto de datos para convertirlos en información relevalante para la organización, ya sea a nivel operativo o estratégico. Lo hace mediante una serie de rutinas de software para permitir su uso de una manera segura, sencilla y ordenada. Se trata, en suma, de un conjunto de programas que realizan tareas de forma interrelacionada para facilitar la construcción y manipulación de bases de datos, adoptando la forma de interfaz entre éstas, las aplicaciones y los mismos usuarios. Su uso permite realizar un mejor control a los administradores de sistemas y, por otro lado, también obtener mejores resultados a la hora de realizar consultas que ayuden a la gestión empresarial mediante la generación de la tan perseguida ventaja competitiva. 
Funciones Principales:
·      Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que  los                      datos puedan ser accesados rápidamente.
·      Manejar los datos de acuerdo a las peticiones de los usuarios.
·      Registrar el uso de las bases de datos.
·      Interacción con el manejador de archivos. Esto a través de las sentencias en DML al comando del sistema de archivos. Así el Manejador de base de datos es el responsable del verdadero almacenamiento de los datos. Respaldo y recuperación. 
Características:

• 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.
• Redundancia mínima. Un buen diseño de una base de datos logrará evitar la aparición de información repetida o redundante. De entrada, lo ideal es lograr una redundancia nula; no obstante, en algunos casos la complejidad de los cálculos hace necesaria la aparición de redundancias.
• Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, 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.
• 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 segurizada frente a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques que deseen manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado pero despistado. Normalmente, los SGBD disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.
• Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada.
• Respaldo y recuperación. Los SGBD deben proporcionar una forma eficiente de realizar copias de respaldo de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder.
• Control de la concurrencia. En la mayoría de entornos (excepto quizás el doméstico), lo más habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias.

5.1.1.2 TIPO DE MANEJADORES DE BASE DE DATOS

Mysql
Surgiendo como uno de los más grandes jugadores en el mercado de los RDBMS está Mysql. Que como otros productos RDBMS, Mysql provee un amplio conjunto de características que soportan un ambiente seguro para almacenar, mantener y acceder a los datos. Mysql es rápido, confiable y una alternativa escalable de los muchos RDBMS comerciales que existen en la actualidad. A continuación se mencionan de manera general algunas de las características que se encuentran en Mysql: v Escalabilidad: MySQL puede manejar grandes bases de datos, lo cual se ha demostrado con sus implementaciones en organizaciones como Yahoo!, Cox Communications, Google, Cisco, Texas Instruments, UPS, Sabré Holdings, HP y la prensa asociada. Incluso en la NASA y en los censos de Estados Unidos se han implementado soluciones MySQL. De acuerdo a la documentación MySQL, algunas de las soluciones empleadas por Mysql AB, la compañía creadora de MySQL, contiene más de 50 millones de registros, y algunos usuarios de Mysql han reportado que sus bases de datos contienen 60,00 tablas y 5 mil millones de columnas. v Portabilidad: MySQL corre sobre una variedad de sistemas operativos, incluyendo Unix, Linux, Windows, QS/2, Solaris y MacOS, MySQL puede también correr sobre diferentes arquitecturas, desde las PC de escritorio hasta los grandes Mainframes. v Conectividad: MySQL está totalmente orientado a las redes, soporta sockets TCP/IP, sockets Unix y las llamadas pipes. En adición, MySQL puede ser 12 v accesado desde cualquier lugar en internet, y múltiples usuarios pueden accesar a las bases de datos MySQL simultáneamente. MySQL además provee una gran variedad de interfaces para distintas aplicaciones de programación (APIs) para soportar la conectividad desde distintas aplicaciones escritas en lenguajes tales como C, C++, Perl, PHP, Java y Python. v Seguridad: MySQL incluye un poderoso sistema de control de acceso a los datos. El sistema utiliza una estructura basada en el anfitrión(host) y el usuario que controla quien puede accesar a la información específica y el nivel de acceso a esa información. MySQL también soporta el protocolo de capa segura de sockets(SSL) para poder permitir conexiones encriptadas. v Velocidad: MySQL fue desarrollado con la velocidad en mente. El monto de tiempo que toma a las bases de datos MySQL responder una petición de datos es tán rápido o más rápido que muchos de los otros RDBMS comerciales. El sitio v Facilidad de uso: MySQL es fácil de instalar e implementar. Un usuario puede tener una instalación MySQL lista y corriendo, minutos después de descargar los archivos. Incluso en un nivel administrativo, MySQL es relativamente fácil de optimizar, especialmente comparado con otros productos RDBMSv Código de fuente abierta: MySQL hace que el código fuente de MySQL esté disponible para cualquier persona para descargarlo y ocuparlo. La filosofía 13 v de código fuente abierto permite a una audiencia global participar en la revisión, pruebas y desarrollo del código. Como se puede observar MySQL es un RDBMS rápido y confiable que además implementa las ventajas y flexibilidad de los códigos de fuente abierta, es fácil de instalar e implementar, es gratuito y puede ser accesado desde cualquier lugar vía internet.

PostgreSQL

Es un DBMS que incorpora el modelo relacional para sus bases de datos y que se basa en el lenguaje estándar SQL. PostreSQL ha mostrado ser bastante capaz y confiable, tiene buenas características de rendimiento. Es un manejador multiplataformas, nativamente corre en UNIX, pero es capaz de correr en sistemas como Linux, freeBSD, y Mac OS X, también funciona en sistemas Windows NT/2000/2003 Server, o incluso en sistemas Windows XP. Además utiliza un código de fuente libre. PostreSQL puede ser comparado favorablemente contra otros DBMS, pues contiene las mismas características que los demás DBMS comerciales, además de algunos extras que no se encontrarán en otros lados. Las características de PostreSQL incluyen: · Transacciones · Subselecciones · Vistas · Llaves externas con integridad referencial · Bloqueo sofisticado · Tipos de usuarios definidos · Herencia · Reglas · Control de concurrencia de múltiples versiones Desde la versión 6.5, PostgreSQL se ha vuelto bastante estable, con cada gran serie de pruebas de regresión para asegurar una estabilidad muy superior en cada lanzamiento. A partir del lanzamiento 7.x se ha llegado a un acercamiento mayor que en ningún otro hacia lo que es el lenguaje SQL92 y una restricción en el tamaño 15 de las filas que fue removido. En lanzamiento de la versión 8 se han agregado características tales como: o Versión nativa de Microsoft Windows o Espacios de la tabla o Habilidad para alterar los tipos de columna o Recuperación en tiempo de punto PostgreSQL ha demostrado su confiabilidad en el uso. Cada lanzamiento ha sido controlado muy cuidadosamente, y los lanzamientos beta han sido sujetos de prueba al menos una vez al mes. Con una comunidad de usuarios más grande, con acceso al código fuente, los errores y problemas en el funcionamiento son reparados muy rápidamente. El rendimiento de PostgreSQL ha sido mejorado en cada lanzamiento, y las últimas pruebas de rendimiento contra otras marcas, muestran que, en algunas circunstancias, se compara muy bien contra los productos comerciales. Una de las fortalezas de PostgreSQL radica en su arquitectura, y es que es debido a esta, que se puede manejar en un entorno cliente/ servidor, el cual beneficia tanto a los desarrolladores como a los usuarios. El corazón de PostgreSQL radica en las instalaciones de bases de datos en los procesos de servidor. El cual corre en un solo servidor. Las aplicaciones que necesitan acceder a los datos almacenados dentro de la base de datos que requieren hacer vía el proceso de bases de datos. Los programas de tipo cliente no pueden acceder a los datos directamente, incluso si están corriendo en la misma máquina como el proceso servidor. Esta separación entre el cliente y el servidor permiten que las aplicaciones sean de tipo distribuidos. Se puede utilizar la red para poder realizar la separación de los 16 clientes de tu servidor y desarrollar aplicaciones de cliente en un entorno que se ajuste a las necesidades de los usuarios. Por ejemplo, se puede implementar la base de datos en UNIX y crear programas cliente que corren sobre Microsoft Windows. Con PostgreSQL, puedes accesar a tus datos en formas distintas: Usando una línea de comandos para ejecutar enunciados SQL. Montar SQL directamente sobre tu aplicación. Usar llamadas de funciones para preparar y ejecutar enunciado SQL, examinar el ajuste de resultados, y desarrollar actualizaciones de una gran variedad de lenguajes de programación diferentes. Acceder a la base de datos en PostgreSQL indirectamente utilizando como ODBC o el estándar JDBC, o bien utilizar una biblioteca estándar como PERL DBI.

Microsoft SQL Server

El primer lanzamiento de SQL Server ocurrió en 1989, fue un evento no muy notable en las bases de datos, las demás DBM eran superiores a este. Microsoft SQL Server 2000 fue, en contraste, el punto de partida o rival a vencer para los DBMS, al final de la década estaba listo para además de su desarrollo, dejar fuera del mercado a numerosos DBMS, considerando sus numerosas características: Máximo tamaño de sus bases de datos de 1 000 000 de terabytes. Como ejemplo, se podrían almacenar 100 megas de cada mujer, hombre, niño y perro en el planeta en un simple servidor de bases de datos SQL Server. Hasta 16 instancias simultaneas de SQL Server corriendo en una sola computadora. Soporta hasta 32 procesadores corriendo sobre una sola instancia. 17 Soporta hasta arriba de 64 gb en RAM de memoria física. Otras características son: § Construido con soporte para Lenguaje extensible de marcas XML § Vistas indexadas § Integridad de cascada referencial § Capacidad mejorada de solicitudes distribuidas § Soporte de servicios en análisis de minería de datos

Oracle


 El servidor Oracle tiene todas las características de un RDBMS y que tiene un soporte amplio para entornos sofisticados cliente/servidor. Muchas de las características internas de Oracle están diseñadas para proveer una alta disponibilidad, máximo rendimiento, seguridad y un uso eficiente de los de los recursos del cliente. Aunque estas características son arquitectónicamente importantes para un servidor de base de datos, Oracle también incluye características basadas en el lenguaje que aceleran el desarrollo y mejoran el rendimiento del lado del servidor. Ø Lenguaje PL/SQL: Un gran componente de Oracle es su máquina de procesamiento (Lenguaje de Procedimientos). PL/SQL está diseñado específicamente para procesos clientes/servidor en los que se activa un programa para bloquear la lógica que contiene la aplicación así como los enunciados que serán enviados al servidor en una sola petición. 18 Ø Procedimientos almacenados: Oracle permite la capacidad de de almacenar bloques de PL/SQL como objetos dentro de la base de datos en forma de procedimientos almacenados, funciones, y paquetes de la base de datos. Las porciones lógicas de la aplicación, especialmente aquellas que requieren acceso a la base de datos, pueden residir en donde son procesadas(en el servidor). Usar procedimientos almacenados incrementa la eficiencia de los sistemas cliente/servidor significativamente. Ø Activadores de la base de datos: Los activadores de la base de datos reensamblan los procedimientos almacenados que residen en los bloques PL/SQL de la base de datos; la diferencia entre los dos radica en que los activadores son disparados automáticamente por el kernel de la RDBMS en respuesta a que se cumpla un evento del tiempo (como alguna operación update, delete o insert) Ø Integridad declarativa: Cuando se define una tabla en Oracle, se puede incluir una restricción de integridad como parte de la definición de la tabla. Las restricciones son forzadas por el servidor cuando se insertan, actualizan o borran registros. En adición a las restricciones integrales referenciales que fuerzan las las relaciones entre las llaves primarias y foráneas, también se pueden definir las propias restricciones del usuario para controlar los valores del dominio de las columnas individuales de la tabla. Ø Funciones definidas por el usuario: También se encontrarán bloques PL/SQL de funciones definidas por el usuario. Estas son similares a los procedimientos almacenados y también reducen el monto de codificación de la porción del cliente en la aplicación. Estas funciones no solo se pueden 19 Ø llamar desde PL/SQL , sino que también se pueden extender al set estándar de las funciones Oracle SQL. Se pueden colocar funciones definidas por el usuario dentro de sentencias SQL justo como cualquier otra función de Oracle SQL.

5.1.2 CUADRO COMPARATIVO

MANEJADOR DE BASE DE DATOS

COSTO

SEGURIDAD

CAPACIDAD
VENTAJAS
DESVENTAJAS
REQUERIMIENTOS HARWARD
http://t2.gstatic.com/images?q=tbn:ANd9GcQz52QBfgIvcT-El6XbaG1sjQFztgze12P4mtST8TLzDQQM7euzmzVgDMWL
Versión
Precio
SQL Server 2008 Enterprise Edition
$24,999.00
SQL Server 2008 Standard Edition
$5,999.00
SQL Server 2008 Workgroup Edition
$3,899.00
SQL Server 2008 Developer Edition
$49.95
cuenta con un esquema de seguridad muy interesante tanto para la validación del usuario como la seguridad de los datos
SQL Server admite 25 instancias en un clúster de conmutación por error cuando se usa un disco de clúster compartido como opción de almacenamiento para la instalación del clúster; SQL Server admite 50 instancias en un clúster de conmutación por error si elige recursos compartidos de archivos SMB como opción de almacenamiento para la instalación del clúster.
ü  Administración  multi-servidor y con una sola consola.
ü  Ejecución y alerta de trabajos basadas en eventos.
ü  Seguridad integrada.
ü  Se ajusta muy bien a las necesidades cada vez mayores.
ü  Para las  bases de datos muy grandes.
ü  Ideal para sistemas de alta tecnología.
v  Gran cantidad de memoria RAM ara la instalación y utilización del software.
v  Costo  de actualizaciones.
v  La relación calidad-precio esta muy debajo comparado con Oracle.

RAM: Mínimo: 512 MB
Recomendado: 2,048 GB o más


Tipo de procesador:
Procesador Itanium o más rápido

Velocidad de procesador:
Recomendado: 1,0 GHz o más




http://t2.gstatic.com/images?q=tbn:ANd9GcQ4L9Tua8FNTt31sY5aHbPCrXNYDXIA_8Aa23e-qy3bZjKb3DyC94Gd6-hp

80 y 400 dólares dependiendo del tipo de licencia de usuario

Oracle pone al alcance del DBA varios niveles de seguridad:
-Seguridad de cuentas para la validación de usuario.
- Seguridad en el acceso a los objetos de la base de datos.
- Seguridad a nivel de sistema para la gestión de privilegios globales. 

La capacidad de BDD es alta ya que soporta hasta 4 peta bytes de información.
ü  Suite de productos que ofrece una gran variedad de herramientas.
ü  Oracle corre en computadoras personales, microcomputadoras, mainframes y computadoras con procesamientos paralelo masivo.
ü  Soporta unos 17 idiomas.
ü  Corre automáticamenteen mas de 80 arquitecturas de hardware y software distinto sin tener la necesidad de cambiar una sola línea de código.
ü  Oracle es la base de datos con más orientación hacia internet.
v  Sucedieron varias versiones con correcciones, hasta alcanzar la estabilidad en la 8.0.3.
v  Oracle mal configurado puede ser desesperantemente lento


RAM :256MB mínimo



MEMORIA VIRTUAL : doble de la cantidad de RAM

Espacio de disco duro: se especificara a continuación
Espacio para archivos temporales :100 Mb

Adaptadores de video :256 colores
Procesador: 200 MHz mínimo


Protocolo de red TCP/IP
http://t3.gstatic.com/images?q=tbn:ANd9GcQBTWHYh3SCsrbs5KLoKltGzkmuJUzHop53Xg5dTPBex8u5p0ValI1UHQ




Sin costo. 

Para encontrar información específica sobre el sistema de control de accesos que MySQL. Utiliza para crear cuentas de usuarios y comprobar el acceso a la base de datos.











Win32 w/ FAT/FAT32 2GB/4GB 
Win32 w/ NTFS 2TB
Linux 2.2-Intel 32-bit 2GB (LFS: 4GB)
Linux 2.4+ (usando ext3 filesystem) 4TB
Solaris 9/10 16TB
MacOS X w/ HFS+ 2TB
NetWare w/NSS filesystem 8TB


ü  Buen rendimiento, buena velocidad a la hora de conectar con el servidor y de respuesta a consultas.
ü  Registros sin límite de tamaño.
ü  Control de acceso: qué usuarios tienen acceso a qué tablas y con qué permisos.



v  No soporta vistas (entre otras cosas).








RAM :512 MB


Memoria virtual1: 1024 MB

Protocolo de red TCP/IP
Protocolo de red TCP/IP con SSL





https://raw.githubusercontent.com/docker-library/docs/01c12653951b2fe592c1f93a13b4e289ada0e3a1/postgres/logo.png


















Sin costo






















Un sistema de gestión de base de datos relacional orientado a objetos.



















Win32 w/ FAT/FAT32 2GB/4GB 
Win32 w/ NTFS 2TB
Linux 2.2-Intel 32-bit 2GB (LFS: 4GB)
Linux 2.4+ (usando ext3 filesystem) 4TB
Solaris 9/10 16TB
MacOS X w/ HFS+ 2TB







ü  Ampliamente popular - Ideal para tecnologias Web.
ü  Fácil de Administrar.
ü  Su sintaxis SQL es estándar y fácil de aprender.
ü  Footprint bajo de memoria, bastante poderoso con  una configuración adecuada.
ü  Multiplataforma.
ü  Capacidades de replicación de datos.
ü  Soporte empresarial disponible.













v  Es fácil de vulnerar sin proteccion adecuada.
v   El motor MyISAM es instalado por defecto y carece de capacidades de integridad relacional.
v  InnoDB genera mucho footprint en memoria al indizar.
v  Realizar revisiones llegar a ser una labor manual y tediosa para el DBA.
v  Reducida cantidad de tipos de datos.















Tipo de procesador:
Procesador Itanium o más rápido

Velocidad de procesador:
Recomendado: 1,0 GHz o más