CHAPTER 4. EXPERIMENTAL PROGRAM
4.3. Material Preparation
4.3.3. Coating
En los sistemas de gestión de bases de datos actuales existen diferentes categorías de usuarios. Consideramos tres grandes clases de usuarios:
• Los usuarios de la categoría DBA (Database Administrator), cuya función es precisamente administrar la base, y que tienen él ni el más alto de privilegios.
• Los usuarios de la categoría RESOURCE, que pueden crear sus propios objetos, y tienen acceso a los objetos para los que se les ha concedido permiso.
• Los usuarios del tipo CONNECT, que solamente pueden aquellos objetos para los que se les ha concedido permiso de acceso. (RAMOS MARTIN & RAMOS MARTIN, 2011)
2.4.6.2. Arquitectura del SGBD
En 1975, el comité ANSI-SPARC (American National Standard Institute - Standards Planning and Requirements Committee) propuso una arquitectura de tres niveles para los SGBD, cuyo objetivo principal es separar los programas de aplicación de la base de datos física.
En esta arquitectura, el esquema de una BD se define en tres niveles de abstracción distintos: • Nivel interno o físico: es el nivel más bajo de abstracción: describe cómo se almacena real- mente los datos.
• Nivel lógico o conceptual: describe los datos que se almacenan en la BD y sus relaciones, es decir, los objetos del mundo real, sus atributos y sus propiedades y las relaciones entre ellos.
42
• Nivel externo o (le vistas: describe la parte de BD a la que los usuarios pueden acceder. (RAMOS MARTIN & RAMOS MARTIN, 2011)
Gráfico 7: Niveles de la arquitectura
Fuente: (DATE, 2005)
2.4.6.3. Objetivos del SGBD
Abstracción de la información
El primer objetivo de un SGBD es proporcionar a los usuarios una visión abstracta de la información, es decir, el sistema ahorra al usuario la necesidad de conocer los detalles de cómo se almacena los datos. Para ocultar estos detalles, se definen varios niveles de abstracción tal y como se verá más adelante.
Independencia.
Es la capacidad para modificar un esquema de definición sin afectar a los programas de aplicación. Existen dos niveles de independencia:
1. Independencia Física. Es posible modificar el esquema físico sin afectar a las aplicaciones que los utilizan.
2. Independencia lógica. Cuando es posible modificar el esquema conceptual sin obligar a escribir de nuevo las aplicaciones. (COBO, 2007)
43 Redundancia mínima
Consiste en evitar el almacenamiento múltiple de una misma información para uso de distintas aplicaciones. En principio puede parecer que lo más conveniente es una redundancia nula, pero, en la práctica es mejor mantener ciertos duplicados a efectos de realizar búsquedas más rápidas. (COBO, 2007)
Consistencia.
Consiste en impedir que exista información inconsistente o contradictoria en la base de datos.
La inconsistencia surge cuando existen varias copias del mismo dato y tras la modificación de una de ellas, las demás no son actualizadas, o sí lo son pero de forma incorrecta.
Si existen datos duplicados, en la actualización de esos datos, el SGBD debe garantizar la adecuada actualización de los datos en todos los ficheros donde se encuentre. (COBO, 2007)
Seguridad
El SGBD debe garantizar la protección de la información, controlando el acceso y la manipulación de las distintas aplicaciones y usuarios.
El SGBD debe disponer de un robusto subsistema de seguridad y autorización, mediante el cual el Administrador pueda:
1. Crear cuentas de usuario protegidas con contraseñas (para asegurar que sólo acceden a los datos los usuarios que tengan permiso para ello).
44 a) A qué datos tiene acceso el usuario
b) El tipo de operaciones que puede realizar sobre esos datos (es decir, si puede verlos o modificarlos o crear nuevos o eliminarlos). (COBO, 2007)
Integridad
Mantener la integridad es asegurar que la información almacenada y utilizada por una aplicación es correcta, es decir refleja fielmente la realidad
Evitar las violaciones de reglas de integridad es crucial en los sistemas de BD multiusuario, en los que muchos usuarios acceden a la misma información: el que uno de ellos modifique un dato o introduzca información errónea, afecta al resto de usuarios del sistema. Será necesario verificar el cumplimiento de las restricciones de integridad en cada actualización (introducción. modificación o eliminación) de datos. (COBO, 2007)
2.4.6.4. El modelo entidad-relación
El modelo de datos entidad-relación (E-R) fue propuesto por Peter Chen en 1976 para la representación conceptual de los problemas del mundo real. Es un modelo muy extendido y potente para la representación de los datos: es la referencia que se utiliza para el diseño de modelos racionales. Se simboliza haciendo uso de gráficos en los que se representan las entidades y las relaciones entre ellas. (RAMOS MARTIN & RAMOS MARTIN, 2011)
Elementos del modelo E-R
Entidad: es un objeto del mundo real, que tiene interés para la empresa, Cada entidad se identifica por su nombre.
45
o Entidad fuerte: es aquella que no depende de otra entidad para su existencia.
o Entidad débil: es aquella que necesita a otra entidad para
existir. Las entidades débiles se relacionan con la entidad fuerte con una relación uno a varios.
Componentes de las entidades:
o Atributos o campos: son las unidades de información que describen propiedades de las entidades. El conjunto de valores permitido para cada atributo se denomina dominio: por ejemplo, el dominio del atributo nombre puede ser el conjunto de cadenas de texto de una longitud determinada.
o Clave primaria o principal (primary key): es el conjunto de atributos que identifican de forma única a cada entidad. No puede contener valores nulos, ha de ser sencilla de crear y no ha de variar con el tiempo.
o Clave ajena o foránea (foreign key): es el atributo o conjunto de atributos de una cantidad que forman la clave primaria en otra entidad. Las claves ajenas van a representar las relaciones entre tablas.
Relación: es la asociación entre dos o más entidades. Tienen nombre de verbo que las identifica con respecto a las otras relaciones (BERNABE, 2015)
2.4.6.5. Arquitectura cliente-servidor
Gráfico 8: Representación de una entidad fuerte y débil.
46
Un sistema de base de datos puede ser visto como un sistema que tiene una estructura muy sencilla de dos partes, las cuales consisten en: un servidor y un
conjunto de clientes:
El servidor es precisamente el propio DBMS. Soporta todas las funciones básicas del DBMS: definición de datos, manipulación de datos, seguridad e integridad de los datos, etcétera.
Los clientes son las diversas aplicaciones que se ejecutan sobre el DBMS, tanto aplicaciones escritas por el usuario como aplicaciones integradas (es decir, aplicaciones proporcionadas por el fabricante del DBMS o por alguna otra compañía). (DATE, 2005)
2.4.6.6. Mysql
MySQL es un sistema de administración de bases de datos relacionales rápido, sólido y flexible que utiliza el lenguaje SQL (Structured Query Language Lenguaje de Consulta Estructurado. Se trata de un SBD de código abierto. Es ideal para crear bases de datos con acceso desde páginas web dinámicas, para la creación de sistemas de transacciones on-line o para cualquier otra solución profesional que implique almacenar datos, teniendo la posibilidad de realizar múltiples y rápidas consultas. (COBO, GOMEZ, & PEREZ, 2014)
Es el más célebre SGBDR del mundo Open Source, en particular gracias a su compatibilidad con el servidor de páginas Web Apache y el lenguaje de páginas Web dinámicas PHP.
En ciertos casos, es práctico o necesario adquirir una licencia comercial. Los casos prácticos reflejan la necesidad de un soporte por parte del editor o la voluntad de apoyar el trabajo de la empresa MySQL AB en el desarrollo y el soporte de MySQL.
MySQL pone a disposición de los usuarios dos tipos de licenciamiento:
Gráfico 9: Arquitectura cliente- servidor Fuente: (DATE, 2005)
47
Una licencia comercial.
Una licencia GPL (General Public Denise).
La compra de una licencia permite instalar una o más instancias de en un mismo equipo. El número de microprocesadores no influye en el precio de las licencias y las conexiones clientes al servidor tampoco están limitadas.
Si se utiliza MySQL con un servidor Web como Apache o Internet Information Server (IIS), no se requiere ninguna licencia aunque el servidor Web sea un sistema comercial. Esta cláusula es vigente aunque el sitio Web albergado sea un sitio comercial. (MINERA, 2011)
2.4.6.6.1. Ventajas
MySQL ofrece varias ventajas respecto a otros sistemas gestores de bases de datos:
Tiene licencia pública, permitiendo no solo la utilización del programa sino también la consulta y modificación de su código fuente. Resulta por tanto fácil de personalizar y adaptar a las necesidades concretas.
El programa está desarrollado en C y C++, lo que facilita su integración en otras aplicaciones desarrolladas igualmente en esos lenguajes.
Puede ser descargado gratuitamente de Internet (http://www.mysql.com) haciendo uso de su licencia GPL.
Para aquellos que deseen que sus desarrollos basados en MySQL no sean "código abierto" existe también una licencia comercial.
MySQL utiliza el lenguaje SQL (Structured Query Languaje - Lenguaje de Consulta Estructurado) que es el lenguaje de consulta más usado y estandarizado para acceder a
48
bases de datos relacionales. Soporta la sintaxis estándar del lenguaje SQL para la realización de consultas de manipulación, creación y de selección de datos.
Es un sistema cliente/servidor, permitiendo trabajar como servidor multiusuario y de subprocesamiento múltiple, es decir, cada vez que se establece una conexión con el servidor, el programa servidor crea un subproceso para manejar la solicitud del cliente, controlando el acceso simultáneo de un gran número de usuarios a los datos y asegurando el acceso solo a usuarios autorizados.
MySQL dispone de un sistema sencillo de ayuda en línea, y de un monitor que permite realizar todas las operaciones desde la línea de comandos del sistema, sin necesitar ningún tipo de interfaze de usuario gráfica. Esto facilita la administración remota del sistema utilizando telnet.
Es portable, es decir, puede ser llevado a cualquier plataforma informática. MySQL está disponible en más de veinte plataformas diferentes incluyendo las distribuciones más usadas de Linux, sistema operativo Mac X, UNIX y Microsoft Windows.
Es posible encontrar gran cantidad de software desarrollado sobre MySQL o que soporte MySQL. (COBO, GOMEZ, & PEREZ, 2014)
2.4.6.6.2. Características
La lista siguiente presenta las principales características del servidor MySQL:
Está escrito en C/C++ y probado con numerosos compiladores. Funciona en muchos sistemas operativos.
Soporta muchas API como C, C++, PHP, Perl, Eiffel, Python, Java, Tcl.
Las utilidades clientes y de administración utilizan los sockets TCP/IP, los sockets Unix o los canales con nombre NT (Named Pipes).
49
Dispone de un driver ODBC (Open DataBase Connectivity) para Windows lo que le aporta compatibilidad con la mayoría de lenguajes disponibles en este sistema operativo. Es totalmente multithread, lo que aumenta enormemente el rendimiento del servidor. MySQL está previsto para funcionar en entornos multiprocesador.
Dispone de un sistema de administración de la memoria extremadamente potente. La cantidad de memoria tiene una incidencia directa sobre el rendimiento de MySQL. Si un servidor presenta fallos de rendimiento,
Se puede interrogar con el lenguaje SQL, lo que garantiza una mejor compatibilidad con otros SGBDR. Todos los scripts SQL escritos para otro SGBDR que respeten el SQL estándar pueden utilizarse con MySQL. (THIBAUD, 2006)
2.4.6.7. Base de datos
Según (RUIZ FAUDÓN & LOPÉZ GAMINO, 2010)Una base de datos BDD, es un conjunto de datos persistentes que es utilizado por los sistemas de aplicación de alguna empresa dada.
Algunas de las ventajas específicas:
Los datos pueden compartirse.- Compartir no solo significa que las aplicaciones existentes puedan compartir la información de la base de datos, sino también que sea posible desarrollar nuevas aplicaciones para operar sobre los mismos datos. En otras palabras, es posible satisfacer los requerimientos de datos de aplicaciones nuevas sin tener que agregar información a la base de datos.
Es posible reducir la redundancia.- En sistemas que no son de bases de datos, cada aplicación tiene sus propios archivos exclusivos. A menudo este hecho puede conducir a una redundancia considerable de los datos almacenados, con el consecuente desperdicio de espacio de almacenamiento.
50
Es posible (hasta cierto grado) evitar la inconsistencia. Entonces necesariamente habrá ocasiones en las que las dos entidades no coincidan: digamos, cuando una de ellas ha sido actualizada y la otra no. En esos momentos, decimos que la base de datos es inconsistente. Resulta claro que una base de datos en un estado inconsistente es capaz de proporcionar a sus usuarios información incorrecta o contradictoria.
Es posible brindar un manejo de transacciones: Una transacción es una unidad de trabajo Lógica, que por lo regular comprende varias operaciones de la base de datos (en particular, varias operaciones de actualización).
Es posible mantener la integridad: El problema de la integridad es el de asegurar que los datos de la base de datos estén correctos.
Es posible hacer cumplir la seguridad: Al tener la compleja jurisdicción sobre la base de datos, el DBA (por supuesto, bajo la dirección apropiada del administrador de datos) puede asegurar que el único medio de acceso a la base de datos sea a través de los canales adecuados y por lo tanto puede definir las reglas o restricciones de seguridad que serán verificadas siempre que se interne acceder a datos sensibles.
Es posible equilibrar los requerimientos en conflicto: Al conocer los requerimientos generales de la empresa (a diferencia de los requerimientos de los usuarios individuales), el DBA puede estructurar los sistemas de manera que ofrezcan un servicio general.
Es posible hacer cumplir los estándares: Con el control central de la base de datos, el DBA (bajo la dirección del administrador de datos) puede asegurar que todos los estándares aplicables en la representación de los datos sean observados. (DATE, 2005)
2.4.7. Servidor web
Un servidor web es un programa diseñado para aceptar peticiones HTTP del navegador y servir las páginas web que tiene alojadas. Para navegar a un sitio web se necesita saber la dirección web exacta del sitio.
51 Cada sitio web tiene una dirección
única conocida como URL (Unlform Resource Locator -Localizador Uniforme de Recursos). En una URL se pueden distinguir tres partes: el protocolo, el nombre de dominio del ordenador servidor y la ruta en el servidor.
El protocolo que se utiliza para servir páginas web es el HTTP, el nombre de dominio indica el ordenador de Internet que nos va a dar la in-formación solicitada y la ruta indica la ubicación del archivo solicitado dentro del servidor. (RAMOS MARTIN & RAMOS MARTIN, 2011)
Antes de ver cómo funciona el acceso a un sitio web conviene tener claros los siguientes conceptos:
Direcciones IP o Direcciones Internet: son las direcciones que utiliza el protocolo IP (Internet Protocol - Protocolo de Internet) para identificar de forma única un dispositivo en Internet. Este protocolo permite que se comuniquen los dispositivos conectados a la red.
Los dominios: son los nombres de los sitios web que visitamos. En lugar de utilizar las direcciones IP para acceder a los sitios web, utilizaremos los nombres de dominio, ya que es más sencillo recordar el nombre de un sitio que su dirección IP El servidor de las aplicaciones web está formada por:
o Páginas estáticas (documentos HTML) que siempre muestran el mismo contenido. Gráfico 10: Estructura de una Dirección Web Fuente: (RAMOS MARTIN & RAMOS MARTIN, 2011)
52
o Recursos adicionales (multimedia, documentos adicionales, etc.) que se pueden emplear dentro de las páginas o estar disponibles para ser descargados y ejecutados (visualizados) en el diente.
o Programas o scripts que son ejecutados por el servidor web cuando el navegador del cliente solicita algunas páginas. En algunos casos pueden acceder a bases de datos. (MORA, 2006)
Así pues, existen tres elementos indispensables en Internet para que sea posible la conexión:
1. Servidor web. Es un servidor que está preparado para servir páginas web las 24 horas del día. Se está ejecutando continuamente y atiende a las peticiones que hacen los clientes desde los navegadores.
2. Dominio. Es el sitio web al que queremos acceder. Se introduce en la barra de direcciones del navegador.
3. Servidor DNS. Es el encargado de transformar el nombre del dominio de un servidor web en la dirección IP. (RAMOS MARTIN & RAMOS MARTIN, 2011)
El proyecto se realizó con un servidor web local XAMPP
2.4.7.1. Xampp (servidor)
Según (AUBRY, 2015) xampp es el entorno más popular de desarrollo con PhP, siendo una distribución de Apache completamente gratuita y fácil de instalar que contiene Mysql, Php y Perl.
Gráfico 11: Búsqueda de la IP en el servidor Fuente: (RAMOS MARTIN & RAMOS MARTIN, 2011)
53 Ventajas al utilizar Xampp:
El entorno de desarrollo PhP es más popular.
Es multiplataforma: Windows, Mac OS X y Linux
Fácil de instalar y configurar. Completamente gratuito.