28 oct 2016

Instalación de 2 servidores mySQL en un mismo equipo

INSTALACIÓN DEL PRIMER SERVIDOR
Ejecuto el asistente de instalación de mySQL:

Selecciono las carpetas donde instalar:

Se está descargando e instalando:


Ahora se configura (este va a ser el servidor MYSQL1):

Contraseña para el usuario root:

Configuración del servicio de Windows:


Y ahora se ejecuta la instalación:


INSTALACIÓN DEL SEGUNDO SERVIDOR
Para ello uso el mismo instalador de antes



Instalo otra versión de las disponibles:



Ahora se descarga y se instala:



Una vez completado se configura. Con el puerto distinto al principal:

Se establece la contraseña:



Se pone un nombre de servicio distinto al servidor principal:

Y se ejecutan las configuraciones:

Ahora están los dos servicios instalados y funcionando:

Desinstalación del servidor mySQL

Para desinstalar el servidor mysql se debe acceder a Desinstalar o cambiar un programa en Panel de Control:

Se deben desinstalar el servidor, MySQL Server 5.7  y tamnbien MySQL Installer - Community

Una vez desinstalado podemos ver que deja dos carpetas sin borrar: una es el que contiene el fichero de configuración my.ini y otro es el directorio de datos.

27 oct 2016

EJERCICIOS PROPUESTOS - Tema 2

1 - Vuelca en un fichero la ayuda del comando mysqld.

2 - Dentro del fichero my.ini ¿Para qué sirven las secciones mysqld y mysql?
En estas secciones se establecen las configuraciones de conexión con el servidor de base de datos. Se pueden configurar parámetros como el puerto, el id, el directorio de la base de datos, el directorio de datos, los tamaños de buffer, etc...

3 - ¿De qué manera piensas que podemos hacer que el servidor funcione sin que nadie pueda acceder a él de manera remota? ¿Y sin usar resolución de nombres de dominio?
Para bloquear el acceso de forma remota al servidor mysql hay que ir a la configuración del servidor, en el archivo my.ini, y descomentar lo siguiente: bind-address = 127.0.0.1.
Si no se usa la resolución de nombre de dominios el acceso al servidor se debe realizar mediante la ip.

Ejercicio resuelto con 1 tabla

1. Creación de la base de datos y las tablas:

2. Introducción de datos en la tabla productos:

3. Select para ver los datos de la tabla productos:

4. Select para ver qué productos se llaman "Afilador":

5. Ver que productos comienzan por S:

6. Ver los productos (solo nombre y precio) que tienen un precio superior a 22:

7. Precio medio de las sillas:

8. Añadir una nueva  columna llamada "categoría":

9. Select para mostrar todos los datos:

10. Dar el valor "utensilio" en la categoría de la tabla productos:

11. Se modifican los productos que comienzan por la palabra "Silla" para que tengan el valor "silla" en la categoría:

12. Ver la lista de categorías sin que aparezcan duplicadas:

13. Ver la cantidad de productos que tenemos por cada categoría:

20 oct 2016

14 oct 2016

EJERCICIOS PROPUESTOS - Tema 1

1. Comenta qué se entiende por software libre considerando aspectos como: gratuidad, código fuente y uso comercial.
Es el conjunto de software que por elección manifiesta de su autor puede ser copiado, estudiado, modificado, utilizado libremente con cualquier fin y redistribuido con o sin cambios o mejoras. Esto es gracias a que también se distribuye con el código fuente del programa.
Software libre proviene del término inglés free software que presenta ambigüedad entre los significados libre y gratis. No tiene por que ser gratis, aunque normalmente se distribuye de forma gratuita.

2. Lista al menos 3 ventajas e inconvenientes de los productos de pago respecto a los libres.
Algunas de sus ventajas son:
  • Fáciles de adquirir. Se pueden encontrar en prácticamente cualquier tienda de dispositivos y accesorios.
  • Las empresas de software comercial son grandes. Esto hace que las empresas saquen parches y actualizaciones de sus productos con mayor rapidez.
  • Suelen tener mejor interfaz.
  • Mayor compatibilidad. 
  • Soporte técnico.
Algunas de sus desventajas son: 
  • No se puede copiar. Es ilegal copiar y compartir software propietario  .
  • No es posible modificarlo ya que no incluye el código fuente.
  • Restricciones para usarse. La mayoria del software propietario solo se puede instalar en un equipo o en un número determinado.
  • Mayor costo.
3.  ¿Qué tiene que ver la administración SGBD con el diseño de bases de datos?
El administrador de la base de datos se encarga del diseño físico de la base de datos y de su implementación, realiza el control de la seguridad y de la concurrencia, mantiene el sistema para que siempre se encuentre operativo y se encarga de que los usuarios y las aplicaciones obtengan buenas prestaciones.

Los diseñadores realizan el diseño lógico de la base de datos, debiendo identificar los datos, las relaciones entre datos y las restricciones sobre los datos y sus relaciones. El diseñador de la base de datos debe tener un profundo conocimiento de los datos de la empresa y también debe conocer sus reglas de negocio.

4. Cita al menos 3 ventajas de usar bases de datos frente a los tradicionales sistemas de ficheros.
  • En una base de datos existe mayor disponibilidad y capacidad de transferencia.
  • Los resultados son mas coherentes y comparables.
  • Mayor eficiencia en la captura, validación e ingreso de datos al sistema.
  • Reducción del espacio de almacenamiento.
  • Acceso más rapido y sencillo de los usuarios finales.
  • Aumento de la concurrencia, a diferencia de los ficheros, en una base de datos puede haber más usuarios y no ocurrirán fallas. 
5.  Enumera al menos tres objetos típicos de una base de datos indicando su función.
 Los objetos de una base de datos relacinal son los siguientes:
  • Columna: cada fila proporciona un valor de datos para cada columna. No es correcto intercambiar columna con campo.
  • Cursor: estructura de control utilizada para el recorrido de los registros del resultado de una consulta.
  • Índice: estructura que mejora la velocidad de las operaciones, por medio de identificador único de cada fila de una tabla, permitiendo un rápido acceso a los registros.
  • Procedimiento almacenado: es un programa (o procedimiento) almacenado físicamente en una base de datos.
  • Registro: (también llamado fila o tupla) representa un objeto único de datos implícitamente estructurados en una tabla.
  • Tabla: donde se guardan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de hoja de cálculo.
  • Trigger: (o disparadores) objetos que se asocian con tablas y se almacenan en la base de datos que se ejecuta cuando sucede algún evento en la tabla (inserción, borrado o actualización).
6. ¿Qué es una base de datos distribuida?
Una Base de Datos Distribuida (BDD) es una colección de datos distribuidos en diferentes nodos de una red de computadoras. Cada sitio de la red es autónomo, puede ejecutar aplicaciones locales y al menos una aplicación global, lo cual requiere el acceso a datos, ubicados en varios sitios, usando un subsistema de comunicación.

7. Indica resumidamente las fases involucradas en el desarrollo de una base de datos desde su concepción hasta su puesta en marcha.
Las fases de desarrollo de una base de datos son las siguientes:
  • Análisis: conocer el sistema y analizar los requerimientos. En esta fase tiene lugar la comunicación con el cliente para conocer el sistema de información e identificar las necesidades (requerimientos).
  • Esquema: se realiza el diseño conceptual  o esquema de la base de datos. Para ello se utiliza el modelo Entidad-Relación con el que se identifican y detallan las entidades del sistema y las relaciones entre ellas.
  • Tablas: conocida como diseño lógico. En esta fase se definen con un SGBD las tablas y campos de la BD.
  • Datos: se introducen los datos en los registros de las tablas.
  • Consultas: se diseñan los formularios de acceso a los datos y los informes, para realizar consultas concretas a la BD.
8.  ¿Para qué sirve un disparador en un SGBD?
Los triggers o disparadores son objetos que se asocian con tablas y se almacenan en la base de datos que se ejecuta cuando sucede algún evento en la tabla (inserción, borrado o actualización).

9. Explica con tus palabras qué es el diccionario de datos en un SGBD.
Es un conjunto de metadatos. Es información guardada, características, sobre los datos que están almacenados en la base de datos.

10. Eres el administrador de la base de datos. Indica un problema y su posible solución que te pueda surgir considerando dos casos: una base de datos con miles de usuarios y centrada en consultas como un buscador, y otra de venta online con miles de usuarios y operaciones por segundo.
Uno de los problemas comunes que puede haber en los dos casos es un problema de concurrencia. Cuando los usuarios hace una consulta a la base de datos, los datos consultados se bloquean, y no pueden ser modificados por el resto de usuarios. Esto puede causar que algunos usuarios no vean los datos actualizados o no puedan acceder a ellos porque han sido borrados, etc.

13 oct 2016

Haz un listado de al menos tres gestores de bases de datos libres y tres comerciales, indicando tres de sus características principales

Entre los sistemas gestores de bases de datos libres se encuentran:
  • MySQL:
      • Velocidad al realizar las operaciones.
      • Bajo costo en requerimientos para la elaboración de bases de datos.
      • Facilidad de configuración o instalación.
      • Soporta gran variedad de sistemas operativos.
  • ProstgreSQL:
      • Soporta distintos tipos de datos.
      • Completa documentación.
      • Es una base de datos 100% ACID.
      • Múltiples métodos de autenticación.
  • ApacheDerby:
      • Tamaño del programa muy reducido.
      • Fácil manejo e instalación.
      • Controla la redundancia de datos.
      • Cuenta con una plataforma independiente. Se puede mover la base de datos sin modificarla.
  • SQLITE:
      •  No requiere configuración.
      • Permite bases de datos de hasta 2 Terabytes de tamaño.
      • Transaccional (ACID).
      • Facilmente portable (multiplataforma).
Entre los sistemas gestores de bases de datos no libres se encuentran por ejemplo:
  • Microsoft SQL Server:
      • Soporte de transacciones.
      • Escalabilidad, estabilidad y seguridad.
      • Soporta procedimientos almacenados.
      • Incluye un potente entorno gráfico de administración.
  • Oracle:
      • Gestor de bases de datos relacional más usado a nivel mundial.
      • Soporta todas las funciones que se esperan de un servidor de bases de datos.
      • Es multiplataforma.
      • Tiene un aceptable soporte.
  • IBM Informics:
      • Multiplataforma.
      • Dispone de herramientas gráficas.
      • Gestiona múltiples bases de datos.
      •  Capacidad de relación de datos.
  • Microsoft Access: 
      • Tablas para almacenar datos.
      • Consultas.
      • Páginas de acceso a datos para ver, actualizar o analizar los datos de la base de datos desde Internet o una intranet.
      • Formularios para ver, agregar y actualizar datos de tablas.

Averigua el significado de DNS y LDAP. ¿Con qué tipos de bases de datos está relacionado (relacional, jerárquica o en red)?

DNS (Sistema de Nombres de Dominio por sus siglas en inglés) es un sistema de nomenclatura jerárquico descentralizado para dispositivos conectados a redes IP como Internet o una red privada. Este sistema asocia información variada con nombres de dominios asignado a cada uno de los participantes. Su función más importante es "traducir" nombres inteligibles para las personas en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente.

Un servidor DNS utiliza una base de datos jerárquica y distribuida que almacena la información asociada a nombres de dominio en redes.

LDAP (Protocolo Ligero de Acceso a Directorios). Es un protocolo de nivel de aplicación que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red.

LDAP también puede ser considerado una base de datos ya que los objetos con atributos están organizados de una manera lógica y jerárquica.

7 oct 2016

¿Qué lenguaje específico usa SQL Server para implementar el lenguaje SQL?

El lenguaje que usa SQL Server para implementar SQL es llamado Transact-SQL.

Transact-SQL (T-SQL) es una extensión al SQL de Microsoft y Sybase. SQL, que frecuentemente se dice ser un Lenguaje de Búsquedas Estructurado (por sus siglas en inglés), lenguaje de cómputo estandarizado, desarrollado originalmente por IBM para realizar búsquedas, alterar y definir bases de datos relacionales utilizando sentencias declarativas. T-SQL expande el estándar de SQL para incluir programación procedural, variables locales, varias funciones de soporte para procesamiento de strings, procesamiento de fechas, matemáticas, etc, y cambios en las sentencias DELETE y UPDATE.

¿Qué limitaciones tiene la versión Oracle Express Edition respecto a la extendida?

La diferencia principal entre estas dos versiones es que la Express Edition es ideal para desarrollo de pequeñas webs. Es la versión gratuita de Oracle Database por lo que tiene las siguientes limitaciones:
  • sólo aprovecha 1 cpu del servidor.
  • sólo se puede asignar 1 Gb de memoria a la instancia.
  • el tamaño máximo de la BD no puede superar los 4 Gb.
 En cambio en las versiones extendidas aunque siguen teniendo limitaciones según la versión son más permisivas, tienen más funcionalidades. Estas versiones son de pago: 
  • Oracle Database Standard Edition One: pensada para pequeñas empresas. A partir de 5 usuarios nominales se puede disponer de una base de datos potente con una gran funcionalidad. Tiene toda la funcionalidad de la versión Standard Edition pero a un precio inferior. Las limitaciones son que sólo puede ser utilizada en servidores con un máximo de 2 sockets y que no se puede instalar Oracle RAC (Real Application Cluster).
  • Oracle Database Standard Edition: Es la más común entre medianas empresas. Soporta servidores con hasta 4 sockets y nos permite adentrarnos en el mundo del Grid con Oracle Database RAC (distribución de carga de trabajo entre nodos y alta disponibilidad en caso de caída de un nodo). Con esta versión se puede montar un cluster Oracle RAC activo-activo sencillo de 2 nodos y un máximo de 4 sockets en total; si se necesitan más nodos o nodos con más de 2 procesadores entonces se deberá migrar a la versión Enterprise Edition, reconociéndose la inversión.
  • Oracle Database Enterprise Edition: Esta es la versión adecuada cuando necesitamos un servidor con más de 4 sockets o cuando surge la necesidad de usar opciones avanzadas tales como: gestionar información de geolocalización muy precisa con Oracle Spatial, mantener una tabla con muchos millones de filas con Oracle Partitioning, aumentar nuestro cluster Oracle RAC hasta 64 nodos,  tener una base de datos replicada con Oracle Data Guard, etc. Cada una de las opciones de esta versión se licencian por separado y  existen más de 40.

Averigua en qué consiste y para qué sirve la minería de datos

La minería de datos o exploración de datos es un campo de la estadística y las ciencias de la computación referido al proceso que intenta descubrir patrones en grandes volúmenes de conjuntos de datos. Utiliza los métodos de la inteligencia artificial, aprendizaje automático, estadística y sistemas de bases de datos. El objetivo general del proceso de minería de datos consiste en extraer información de un conjunto de datos y transformarla en una estructura comprensible para su uso posterior.

¿Qué diferencias principales piensas que hay entre administrar bases de datos y administrar un SGBD?

Administrar una base de datos se realiza mediante un gestor de bases de datos, es este gestor el que se encarga de la comunicacion con la base de datos y asegura el acceso seguro a la información. Permite crear, eliminar y/o modificar la base de datos.

Y administrar el gestor de bases de datos es como administar el sistema que gestiona la base de datos.

Busca al menos tres diferencias importantes entre Access y MySLQ

La diferencia principal es que MySQL es un servidor de base de datos en el que se puede acceder mediante usuario y contraseña e introducirse al sistema desde otro computador de forma remota si es que el administrador del servidor con MySQL lo permite. Y el Access es una base de datos que consta de un archivo independiente donde en él se almacena la información sin las ventajas que ofrece todo un servidor completo. Es decir Access es un programa y MySQL es un servidor de bases de datos.

Otra de las diferencias es que Access es software de pago que se incluye con la suite ofímática de Microsoft (excepto la opcion Basic) y MySQL es software libre licenciado bajo GNU/GPL.

Access es una base de datos más amigable y menos profesional. Está orientada a particulares o pequeñas empresas. MySQL mientras es un sistema que se puede implementar para trabajar con grandes cantidades de datos donde múltiples usuarios accedan a ellos.

Averigua y explica el significado del término ACID en el contexto de los sistemas gestores de based de datos

ACID es un acrónimo de Atomicity, Consistency, Isolation and Durability: Atomicidad (o ocurren todos los pasos o ninguno), Consistencia (integridad, solo se empieza aquello que se puede acabar), Aislamiento (una operación no puede afectar a otras) y Durabilidad (una vez realizada la operación, esta persistirá) en español.

En bases de datos se denomina ACID a las características de los parámetros que permiten clasificar las transacciones de los sistemas de gestión de bases de datos. Cuando se dice que es ACID compliant se indica -en diversos grados- que éste permite realizar transacciones.

Resumen de las características de los principales SGBD

Los principales gestores de bases de datos son:
  • MySQL: gestor de bases de datos relacional, multihilo y multiusuario. Es software libre. Tiene gran velocidad al realizar las operaciones, bajo costo en requerimientos para la elaboración de bases de datos, y facilidad de configuración e instalación. Por otra parte un gran porcentaje de las utilidades de mySQL no están documentadas y no es intuitivo como por ejemplo el Acess.

  • ORACLE: sistema de gestión de bases de datos relacional fabricado por Oracle corporation. Es considerado como uno de los sistema de bases de datos más completos destacando su soporte de transacciones, estabilidad, escalabilidad y por estar disponible para varias plataformas. Su mayor defecto es su enorme precio.

  • Microsoft SQL Server: SGBD relacionales basado en el lenguaje Transact-SQL, capaz de poner a distribucion de muchos usuarios grandes cantidades de datos de manera simultanea. Sus ventajas son que soporta transacciones, tiene gran escalabilidad, estabilidad y seguridad y soporta procedimientos almacenados. Entre sus desventajas están que consume mucha RAM y la relación calidad-precio esta muy por debajo comparando con Oracle.

  • Microsoft Access: está pensado para uso personal de pequeñas organizaciones. Una posibilidad adicional es la de crear ficheros con bases de datos que pueden ser consultados por otros programas. Utiliza tablas para almacenar los datos, permite consultas para buscar y recuperar los datos que se necesitan y se pueden crear formularios para ver, agregar y actualizar los datos de las tablas. Está limitado en el procesamiento de las búsquedas.

  • PostgreSQL: es uns sistema de gestión de bases de datos relacional orientada a objetos y libre, publicado bajo licencias BSD. Tiene una alta concurrencia, amplia variedad de tipos nativos (provee varios soportes), y tiene gran estabilidad y confiabilidad. Por otra parte, consume más recursos que mySQL y la sintaxis de algunos de sus comandos o sentencias no es nada intuitiva.

  • Apache Derby: es uns SGBD relacional escrito en java que puede ser empotrado en aplicaciones java y utilizado para procesos de transacciones online. Se puede configurar como cliente-servidor. Pero es tedioso y se necesitan codigos para crear la bases de datos.

  • DB2: es una marca comercial, propiedad de IBM, bajo la cual se comercializa el sistema gestor de bases de datos. Utiliza xml como motor, además el modelo que utiliza es el jerárquico en lugar del modelo relacional que utilizan otros gestores. Permite el manejo de objetos grandes, permite agilizar el tiempo de respuestas de la consulta, recuperación utilizando accesos de solo índices, predicados correccionales, tablas resumen, tablas replicadas, uniones hash.

  • SQLite: sistema gestor de bases de datos relacionales compatible con ACID contenida en una relativamente pequeña biblioteca escrita en C. Es un proyecto de dominio público. Entre sus ventajas están el rendimiento, las interfaces y el pequeño costo. Pero no tiene claves foráneas ni documentación en español.

Resumen de los componentes de un SXBD y la utilidad de cada uno de ellos

Los componentes de un Sistema Gestor de Bases de datos son los siguientes:
  • Lenguajes del SGBD:
    • Lenguage de definición de datos (DDL): permite llevar a cabo todas las tareas de definición de las estructuras que almacenarán los datos, así como los métodos o funciones que permitan consultarlos.
    • Lenguaje de manipulación de datos (DML): permite consultar o manipular los datos, organizados por el modelo adecuado. El más popular es el SQL.

  • Motor de la base de datos: se encarga de las tareas de evalucación de consultas ejecutando las instrucciones creadas, gestiona la seguridad y las autorizaciones, comprueba las restricciones de integridad cada vez que se va a hacer una actualización y se encarga de la interacción con el manejador de ficheros.

  • Gestor de memoria intermedia: pasa los datos de los dispositivos de almacenamiento secundario a la memoria principal.

  • Gestor de transacciones: verifica que la base de datos este siempre en un estado consciente a pesar de los errores al guardar los nuevos datos y tambien se encarga de los accesos concurrentes a los datos.

  • Ficheros de datos: es donde se guardan los datos.

  • Diccionario de datos: es el lugar donde seguarda toda la información de todos los datos que forman la base de datos. Dentro de él se encuentra la lista de todos los elementos que forman parte del flujo de datos de todo el sistema. En su contenido estan las descripciones de todos los demás objetos que existen en el sistema.

  • Índices: estructuras que permiten acceder rapidamente a los datos.

Resumen de las funciones de un SXBD y la utilidad de cada una de ellas

Las principales funciones de un Sistema Gestor de Bases de Datos son:
  • La definición de datos.
      • Se refiere a describir y definir el equema de la base de datos. Es decir, crear objetos conceptuales, describir estructuras físicas y las vistas.

  • La manipulación de los datos.
      • Se refiere a la las operaciones de intercambio de datos entre los usuarios y la base de datos: la consulta, la insercción, la modificación y el borrado de los datos.

  • Garantizar la seguridad e integridad de los datos.
      • Se trata de garantizar la coherencia y validez de los datos y que solo los usuarios puedan efectuar las operaciones correctas sobre la base de datos.

  • La gestión de transacciones y el acceso concurrente.
      • Uno de los objetivos de la implantación de una base de datos es poner la información a disposición de un gran número de usuarios. Estos datos tienen que poder ser consultados y manipulados por los diferentes usuarios y el SGBD debe garantizar la coherencia de los datos después de las diversas manipulaciones.

  • Garantizar el tiempo de respuesta idóneo
      • Para el diálogo entre los usuarios y la base de datos en los procesos en línea.

  • Capacidad de auditoría.
      • Debe proporcionar la información para que el administrador de la base de datos pueda conocer quien accede a la base de datos y que operaciones realiza.