sábado, 8 de octubre de 2016

1.3 Base de datos en un sitio electronico

1.3 Base de datos en un sitio electronico

SITIOS WEB VINCULADAS A BASES DE DATOS.

Unos de los tipos más comunes de páginas web dinámicas son los vinculados a bases de datos. Esto significa que usted tiene una página web que coge la información de una base de datos (la página web está conectado a la base de datos a través de la programación,) e inserta la información en la página web cada vez que esta se carga.
Si la información almacenada en la base de datos cambia, la página web conectada a la base de datos también cambiará en consecuencia (y automáticamente) sin intervención humana.
Esto es comúnmente visto en los sitios web de organizaciones bancarias en línea, donde se puede acceder (con su nombre de usuario y contraseña) y ver el saldo de su cuenta bancaria. La información de su cuenta bancaria se almacena en una base de datos que está conectada a la página web a través de la programación (por ejemplo: PHP, ASP), permitiéndole ver su información bancaria.

TECNOLOGÍAS USADAS EN SITIOS WEB VINCULADOS A BASES DE DATOS.

Sitios web vinculados a bases de datos pueden ser construidos usando algunas de las tecnologías disponibles, cada una con sus ventajas respectivas. Algunas de estas tecnologías/herramientas son:
  1. PHP
  2. JSP
  3. ASP
  4. PERL
  5. Cold Fusion
La programación de los sitios web vinculados a bases de datos también se puede llamar (o caracterizarse como): 'la programación en el lado del servidor.
La razón por la que es llamada de esta manera se debe a que la "acción" o la magia que le permite a la página web conectarse a la base de datos, en realidad, toma lugar en el servidor.
Esto es lo que sucede: cada vez que una página web dinámica está a punto de ser enviada al navegador, el servidor automáticamente crea la página y envía una página de HTML estándar al navegador.
El servidor "sabe" cómo construir la página siguiendo las instrucciones proporcionadas por el programador. Esto es diferente a JavaScript (piense en menús desplegables o cuadros de alerta,) que se ejecuta estrictamente en el navegador web.
En este momento muchas personas deben estar confundidas, la confusión radica en la diferencia entre la programación del lado del servidor (páginas web vinculadas a bases de datos) y frente a la programación del lado del cliente (JavaScript).

PROGRAMACIÓN DEL LADO DEL CLIENTE — El otro tipo de página web dinámica.

Del lado del cliente (es decir: en el navegador) o lo que comúnmente se llama DHTML ... HTML dinámico…
DHTML es básicamente tomar HTML y JavaScript (a veces VB script) para hacer que la página web cambie su propio contenido (desde el punto de vista del espectador) sin tener que recargar o cargar una nueva página.
Ejemplos de DHTML incluirían menús desplegables, 'flotantes' en los que las imagines se ciernen sobre el resto de la página, etc ... Si usted las busca, se encuentran en abundancia en la web.

¿Cómo lo hago?

Creación de la base de datos desde la línea de comandos

Para crear la base de datos en MySQL tienes diferentes alternativas. Por un lado, puedes acceder a MySQL a través de MySQL monitor que se encuentra en el directorio \xampp\mysql\bin. En la Figura 2 podemos ver una sesión de ejecución con los siguientes comandos:
  • mysql -u root: inicia la conexión a la base de datos con el usuario root.
  • show databases;: muestra las bases de datos que existen.
  • use library;: selecciona una base de datos.
  • show tables;: muestra las tablas que existen en la base de datos.
  • describe books;: muestra el esquema de la tabla.






Figura 2: Acceso a MySQL desde la línea de comandos
Para crear la base de datos debemos emplear el lenguaje de definición de datos (Data Definition Language, DDL) de SQL que permite definir las estructuras de la base de datos que almacenarán los datos. En concreto, los comandos SQL más importantes que se utilizan para crear y mantener una base de datos son:
  • CREATE DATABASE: crea una base de datos con el nombre dado.
  • DROP DATABASE: borra todas las tablas en la base de datos y borra la base de datos.
  • CREATE TABLE: crea una tabla con el nombre dado.
  • ALTER TABLE: permite cambiar la estructura de una tabla existente.
  • DROP TABLE: borra una o más tablas.
Además, MySQL es un sistema gestor de bases de datos que funciona con usuarios y permisos. Cuando se realiza una conexión a una base de datos desde una página web se debe emplear un usuario especial para reducir los riesgos de seguridad y evitar que un usuario malintencionado pueda modificar o incluso eliminar toda una base de datos. El usuario para conectarse desde una página web debe tener otorgados únicamente los permisos para manipular los datos (SELECT, INSERT, UPDATE y DELETE) y NO los permisos para cambiar la estructura (CREATE, ALTER, etc.) o administrar (GRANT, SHUTDOWN, etc.) la base de datos.
En MySQL se puede crear una cuenta de usuario de tres formas:
  • Usando el comando GRANT.
  • Manipulando las tablas de permisos de MySQL directamente.
  • Usar uno de los diversos programas proporcionados por terceras partes que ofrecen capacidades para administradores de MySQL, como phpMyAdmin.
Desde la línea de comandos el método preferido es usar el comando GRANT, ya que es más conciso y menos propenso a errores que manipular directamente las tablas de permisos de MySQL.
Por ejemplo, las siguientes instrucciones crean un nuevo usuario llamado wwwdata con contraseña abc, que sólo se puede usar cuando se conecte desde el equipo local (localhost) y le otorga únicamente los permisos SELECT, INSERT, UPDATE y DELETE sobre todas las bases de datos alojadas en el servidor:
# Crea un nuevo usuario 
CREATE USER 'wwwdata'@'localhost' IDENTIFIED BY 'abc'; 
# Otorga los permisos para poder manipular los datos 
# sobre todas las bases de datos (*.*) 
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'wwwdata'@'localhost' 
IDENTIFIED BY 'abc' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 
MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; 
# Recarga los permisos de las tablas (en principio, no es necesario porque 
# GRANT debe hacerlo de forma automática) 
FLUSH PRIVILEGES; 
Una ver creado un usuario, podemos consultar sus permisos con el comando SHOW GRANTS, tal como podemos ver en la Figura 3.

Creación de la base de datos desde phpMyAdmin

phpMyAdmin es una herramienta escrita en PHP que permite la administración de una base de datos de MySQL a través de páginas web, ya sea en local o de forma remota a través de Internet. Es un desarrollo de código abierto y está disponible bajo la licencia GPL.
En la Figura 4 podemos ver la pantalla principal de la aplicación. En el panel de la izquierda aparecen las bases de datos que existen y entre paréntesis se indica el número de tablas que posee cada base de datos. En la parte principal de la pantalla se indica la versión del servidor de MySQL y el usuario que se está empleando para conectarse. En XAMPP, por defecto se emplea el usuario "root" sin contraseña, lo que supone una vulnerabilidad del sistema ya que facilita un posible ataque. Para evitarlo, es conveniente asignar una contraseña al usuario "root" en MySQL y configurar la contraseña para phpMyAdmin en el fichero config.inc.php.






Figura 4: Página principal de phpMyAdmin
Además, en la página principal existen varias funciones, como crear una nueva base de datos, modificar los privilegios o importar y exportar el esquema y los datos de una base de datos.
Desde la pantalla principal se puede crear una nueva base de datos. Una vez creada, aparece la pantalla que podemos ver en la Figura 5; en esta pantalla se visualiza la sentencia SQL que ha creado la base de datos y se puede indicar el nombre para una nueva tabla en la base de datos recién creada. En este último caso, también hay que indicar el número de campos (columnas) que se quiere que tenga la tabla; más adelante se pueden añadir más campos en cualquier momento.






Figura 5: Creación de una nueva base de datos en phpMyAdmin
  Podemos ver la pantalla de creación de una nueva tabla con dos campos. En esta pantalla se tiene que indicar la definición de cada campo (columna) de la tabla, como el nombre del campo, el tipo de dato, si admite valor nulo, si es clave primaria, etc. Esta pantalla cambia de aspecto según el número de campos que tenga la tabla; por ejemplo, en la Figura 7 podemos ver la misma pantalla pero cuando una tabla posee siete campos, en vez de una disposición vertical la definición de los campos adquiere una disposición horizontal.






Figura 6: Creación de una nueva tabla en phpMyAdmin
Figura 7: Creación de una nueva tabla en phpMyAdmin
Además, se tiene que seleccionar el motor de almacenamiento para la tabla. MySQL permite seleccionar diferentes motores de almacenamiento. La principal diferencia entre los distintos motores reside en el soporte de las transacciones, el manejo de las claves ajenas y el particionamiento de las tablas.
En la Figura 8 podemos ver la pantalla de respuesta que aparece al crear una nueva tabla. En esta pantalla figura la sentencia SQL de creación de la tabla y también se puede modificar la estructura de la tabla recién creada.






Figura 8: Creación de una nueva tabla en phpMyAdmin
Una vez creada una tabla se pueden insertar datos en la misma. Para ello se emplea la opción Insertar que muestra un formulario como el de la Figura 9. En este formulario aparecen todos los campos que componen una tabla y para cada campo se indica su tipo de dato. Cuando un campo es de tipo autoincremento la base de datos le asignará un valor de forma automática, pero de todas formas aparecerá en el formulario de inserción, por lo que se debe dejar vacío.






Figura 9: Inserción de datos en una tabla en phpMyAdmin
Por último, y tal como se ha explicado en el apartado anterior, se debe emplear un usuario específico para conectarse desde una página web, que tenga otorgados únicamente los permisos para manipular los datos (SELECT, INSERT, UPDATE y DELETE). En la Figura 10 podemos ver la pantalla de la opción Privilegios, donde se muestran todos los usuarios que existen y los permisos que poseen.







Figura 10: Privilegios en phpMyAdmin
Figura 11: Agregar un nuevo usuario en phpMyAdmin

Acceso a la base de datos desde PHP

Desde PHP se puede acceder fácilmente a una base de datos en MySQL empleando las más de 50 funciones que existen. Las principales funciones que se emplean para acceder a una base de datos son:
  • mysql_connect(servidorBD, usuario, contraseña): abre una conexión con un servidor de bases de datos de MySQL, devuelve un identificador que se emplea en algunas de las siguientes funciones o FALSE en caso de error.
  • mysql_close(identificador): cierra una conexión con un servidor de MySQL, devuelve TRUE en caso de éxito y FALSE en caso contrario.
  • mysql_ping(identificador): verifica que la conexión con el servidor de bases de datos funciona, devuelve TRUE en caso de éxito y FALSE en caso contrario.
  • mysql_select_db(nombreBD, identificador): selecciona una base de datos, devuelve TRUE en caso de éxito y FALSE en caso contrario.
  • mysql_query(sentencia, identificador): ejecuta una sentencia SQL y devuelve un resultado (SELECT, SHOW, EXPLAIN o DESCRIBE, ...) o TRUE (INSERT, UPDATE, DELETE, ...) si todo es correcto, o FALSE en caso contrario.
  • mysql_fecth_array(resultado): recorre un resultado, devuelve un array que representa una fila (registro) o FALSE en caso de error (por ejemplo, llegar al final del resultado); al array se puede acceder de forma numérica (posición de la columna) o asociativa (nombre de la columna).
  • mysql_fetch_assoc(resultado) y mysql_fetch_row(resultado): ambas funciones son similares a la anterior mysql_fecth_array(resultado), pero sólo permiten el acceso como array asociativo o con índices numéricos respectivamente.
  • mysql_affected_rows(identificador): devuelve el número de filas (tuplas) afectadas por la última operación si fue del tipo INSERT, UPDATE, etc., que no devuelven un resultado.
  • mysql_num_rows(resultado): devuelve el número de filas (tuplas) afectadas por la última operación si fue del tipo SELECT.
  • mysql_free_result(resultado): libera la memoria ocupada por un resultado; en principio, se libera automáticamente al finalizar la página, es necesario si en una misma página se realizan varias consultas con resultados muy grandes.
El siguiente ejemplo muestra como visualizar todo el contenido de una tabla en una página web. En concreto, se conecta al servidor local con el usuario wwwdata sin contraseña, selecciona la base de datos biblioteca, recupera todo el contenido de la tabla libros y muestra los campos Titulo y Resumen:
<?xml version="1.0" encoding="iso-8859-1"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Prueba de SELECT y MySQL</title> 
</head> 
<body> 
<?php 
  // Se conecta al SGBD 
  if(!($iden = mysql_connect("localhost", "wwwdata", ""))) 
    die("Error: No se pudo conectar");
 
  // Selecciona la base de datos 
  if(!mysql_select_db("biblioteca", $iden)) 
    die("Error: No existe la base de datos");
 
  // Sentencia SQL: muestra todo el contenido de la tabla "books" 
  $sentencia = "SELECT * FROM libros"; 
  // Ejecuta la sentencia SQL 
  $resultado = mysql_query($sentencia, $iden); 
  if(!$resultado) 
    die("Error: no se pudo realizar la consulta");
 
  echo '<table>'; 
  while($fila = mysql_fetch_assoc($resultado)) 
  { 
    echo '<tr>'; 
    echo '<td>' . $fila['Titulo'] . '</td><td>' . $fila['Resumen'] . '</td>'; 
    echo '</tr>'; 
  } 
  echo '</table>';
  
  // Libera la memoria del resultado
  mysql_free_result($resultado);
  
  // Cierra la conexión con la base de datos 
  mysql_close($iden); 
?> 
</body> 
</html> 
¿Qué es un servidor de base de datos?
Un servidor de bases de datos se utiliza para almacenar, recuperar y administrar los datos de una base de datos. El servidor gestiona las actualizaciones de datos, permite el acceso simultáneo de muchos servidores o usuarios web y garantiza la seguridad y la integridad de los datos. Y cuando hablamos de datos, podemos estar hablando sobre millones de elementos a los que acceden al mismo tiempo miles de usuarios.
Así como sus funciones básicas, el software de servidores de bases de datos ofrece herramientas para facilitar y acelerar la administración de bases de datos. Algunas funciones son la exportación de datos, la configuración del acceso de los usuarios y el respaldo de datos.
¿Cómo se usan las bases de datos?
Las bases de datos tienen todo tipo de usos, como gestión de documentos, gestión de registros, índices de motores de búsqueda, para servidores de correo electrónico y para brindar contenido dinámico de páginas web. Una persona, aplicación o script de página web puede consultar la base de datos con el lenguaje SQL.
Los servidores de bases de datos se usan en el alojamiento de páginas web para insertar contenido en páginas web dinámicas. Las páginas dinámicas utilizan diseños de tipo estándar que son llenadas con información en función de la dirección URL de la página, o de otras variables como las credenciales de usuario o las acciones que se realicen en la página. Algunos ejemplos de páginas dinámicas que utilizan bases de datos son los siguientes:
  • Contenido en publicaciones de blogs o páginas de categoría de blogs
  • Anuncios clasificados de empleos o sitios web de clasificados
  • Información de directorios web y mapas
  • El contenido de su actividad en Facebook
  • Resultados de Google y otras búsquedas
  • Secciones de contenido administrable en sitios web
  • Listas de productos de sitios de comercio electrónico y detalles de procesos de compra
  • Detalles y configuración de la cuenta cuando inició sesión en un sitio web
¿Cuáles son los servidores de bases de datos más conocidos?
Los cinco servidores de base de datos de empresas más conocidos son:
1. Oracle
2. SQL Server
3. DB2
4. Sybase
5. MySQL
MySQL es la base de datos más famosa de alojamiento web. Se trata de una opción poderosa y también gratis (código abierto) diseñada para funcionar con el famoso lenguaje de programación PHP. Microsoft SQL Server es muy popular en sitios web, empresas y más, pues se integra fácilmente con otros servicios de Microsoft.
Cómo elegir el tamaño de un servidor para su base de datos
La elección de un servidor para su base de datos depende de muchos factores, como el tamaño de la base de datos y la frecuencia y la naturaleza de las consultas a la base de datos. No existen reglas rígidas y rápidas para determinar el tamaño ideal de un servidor para sus datos, pero algunos consejos que puede tener en cuenta son:
  • Analice y evalúe el rendimiento de su servidor de base de datos para poder tomar decisiones más informadas sobre sus requerimientos de informática y almacenamiento.
  • Asegúrese de que tenga suficiente espacio de almacenamiento para sus bases de datos, tanto para la actividad actual como para el futuro.
  • Mantenga sus índices en la memoria RAM para evitar la paginación (haga que su RAM disponible para el servidor de base de datos sea mayor en tamaño que el índice, para que solo se necesite una consulta).
  • Asegúrese de que su sistema operativo permita la memoria RAM que necesita (32 bits o 63 bits).
  • Si detecta presión de la CPU (alto consumo de la CPU, tareas en espera de la CPU), considere la posibilidad de agregar más CPU o más rápidas.
  • Use la tecnología RAID para mejorar la confiabilidad y el rendimiento de su servidor.
  • Haga una estimación del precio de la banda ancha, considere el alojamiento con tarifa plana como una opción.
Para ver una guía completa y detallada sobre cómo elegir el hardware, y también nuestra línea actual de servidores dedicados.
Alojamiento avanzado
Cuando el tiempo de inactividad no es una opción, cuando muchos servidores web necesitan acceder a una base de datos única, o cuando su aplicación o sitio web tiene que hacer frente a los niveles de tráfico altos (por citar algunos ejemplos), un clúster de servidores puede ser la solución.
Al implementar un servidor dedicado totalmente dedicado a su servidor de base de datos (en lugar de alojar servidores web o de datos en el mismo hardware), usted no solo aumentará los recursos disponibles para su servidor dedicado, sino que también será más fácil gestionar, evaluar y escalar sus servidores. Podrá entender y controlar el uso de los recursos. Además, las tareas como migrar su base de datos, configurar su servidor o añadir más recursos para sus bases de datos pueden realizarse por separado de los demás servicios, y así simplificar y acelerar el proceso.
Aún más, al implementar servidores de bases de datos dedicados activos y pasivos con replicación y recuperación ante fallos usted estará protegiéndose de las interrupciones producidas por fallos en la aplicación o el hardware. Y mediante una Red de área de almacenamiento, usted puede compartir datos de forma unificada entre varios servidores de bases de datos, sitios web o usuarios.

Integración de tu Base de Datos en tu Sitio Web

integracion-de-tu-base-de-datos-en-tu-sitio-web
A día de hoy hay muchas soluciones para tener tu tienda online o para gestionar los contenidos de tu sitio web, pero la mayoría absoluta de ellas son soluciones independientes a tu solución de gestión en tu oficina.
Habitualmente las empresas tienen una tienda online donde venden sus productos, sus clientes, sus facturas. Esto conlleva a que muchas tienen que mantener casi dos empresas separadas, incluso hasta numeración para las facturas independientes de las facturas que se emiten en la tienda física.
Hay algunas herramientas que permiten exportar los datos e integrarlos en la solución de gestión de la oficina. Pero no deja de ser una solución a medias por que lo ideal es que tu base de datos de gestión y tu web sean solo una.

Que es la integración de datos

La idea cuando tenemos cualquier aplicación o base de datos en nuestra empresa es que no tengamos datos duplicados en otra aplicación, que todos los datos del mismo tipo sean accesibles desde una sola herramienta y que sean accesibles por todos las personas que deben tener acceso a ellos.
Cuando tenemos una aplicación en nuestra oficina para gestionar todos nuestros datos y nuestra pagina web tiene una aplicación independiente, que lo más probable es que tenga el mismo tipo de datos, surgen duplicación de datos, discrepancias y errores de gestión.
Esto lleva a muchas empresas a mantener dos entornos completamente independientes, incluso hasta contabilidades diferentes para que no surjan errores, pero esto no hace más que complicar la gestión.
El objetivo final es que todos nuestros datos sean accesibles desde nuestra aplicación de gestión principal y así ahorrar tiempo y esfuerzos adicionales, mejorando la gestión de nuestros recursos.

Ejemplos de integración de datos

1 - Registros de usuarios/clientes

Si tu sitio web ofrece cualquier tipo de servicio añadido donde los clientes requieren registrarse para poder disfrutar de este servicio, lo ideal es que estos registros, con todos sus datos, se incorporen a tu base de datos de clientes.
Es fundamental que la sincronización de datos de clientes sea lo más rápida posible y 100% fiable. Por ejemplo, un usuario se registra y aparece automáticamente un tu base de datos de clientes, pero además es posible que el cliente cambie de dirección o teléfono, si puede cambiar sus datos por la web y que se actualice la información en tu base de datos ya están ahorrando tiempo y mejorando la gestión de los datos de tus clientes.

2 -  Actualización de contenidos o productos

A la hora de utilizar tu web tus clientes puede solicitar productos o información relacionada con los servicios que presta tu empresa. Si tienes integrada tu base de datos con tu web, a la hora de actualizar los datos de los productos o la información que solicita el cliente, se actualizará automáticamente en tu web y estará disponible de inmediato a tu cliente.
Esta rapidez y fiabilidad de los datos va a mejorar la satisfacción de tu cliente y por consiguiente sus futuras compras.

3 - Pedidos, Facturas.

Si tienes una tienda online, con la integración con tu base de datos de tu empresa, a la hora de que un cliente haga una compra, se genera un pedido, una factura que estará disponible desde la web pero con los datos que se indiquen en la base de datos de la oficina. Gracias a esto puedes mantener una contabilidad única y una coherencia de datos entre la web y las operaciones de tu oficina.

La solución: FileMaker

Evidentemente para que puedas tener una base de datos que se integre con tu web necesitas una herramienta que tenga esta capacidad. FileMaker te permite tener una base de datos a medida para todo el trabajo de gestión pero además permite integrar con tu base de datos MySQL de tu sitio Web incluso hablar el lenguaje PHP para poder recibir y mandar datos de tu web.

Qué es y para qué sirve una base de datos. Principales tipos Oracle, MySql, SqlServer, Postgre.




DEFINICIÓN Y CONCEPTO DE BASE DE DATOS
Una base de datos es un sistema informático a modo de almacén. En este almacén se guardan grandes volúmenes de información. Por ejemplo, imaginemos que somos una compañía telefónica y deseamos tener almacenados los datos personales y los números de teléfono de todos nuestros clientes, que posiblemente sean millones de personas.
Base de datos
Esta información es de gran volumen de tamaño: estamos hablando de veinte o treinta datos multiplicados por miles o millones de personas. La antigua gestión de datos se basaba en archivos informáticos, pero para las necesidades de hoy en día hacen falta sistemas más perfeccionados que son precisamente lo que se denomina sistema de base de datos. Llegamos a la conclusión de que necesitaríamos una base de datos para automatizar el acceso a la información y poder acceder a ella de manera rápida y fácil además de poder realizar cambios de una manera más eficiente.
Toda base de datos debe tener una serie de características tales como seguridad (sólo personas autorizadas podrán acceder a la información), integridad (la información se mantendrá sin pérdidas de datos), e independencia (esta característica es fundamental ya que una buena base de datos debería ser independiente del sistema operativo o programas que interactúen con ella). Hay más características que debe reunir una base de datos como ser consistente (es decir, que la información se guarde sin duplicidades y de manera correcta). Y finalmente, las bases de datos actuales permiten el manejo correcto de transacciones. Esto significa que se ha de permitir efectuar varias operaciones sobre la base de datos pero tratadas a modo de una sola. Es decir, si en el conjunto de las operaciones de una transacción se produce un error, entonces se deshacen todas las operaciones realizadas anteriormente y se cancela la transacción. Piensa en una transferencia bancaria que comprende varias operaciones como sacar dinero de una cuenta, anotarlo en el extracto de esta cuenta, añadirlo a otra cuenta y anotarlo en el extracto de esta otra cuenta. Supón ahora que después de sacar el dinero de la cuenta de origen se produce un error: la transacción (proceso completo) no se ha completado, y en este caso la base de datos revierte lo que se haya hecho y deja la situación tal y como estaba antes de comenzar la transacción. Otro factor importante en las bases de datos es el tiempo de respuesta, que evidentemente debe ser lo más rápido posible en devolver o anotar las informaciones. Piensa que una base de datos puede tener que estar enviando y anotando información correspondiente a decenas de personas conectadas a internet. Si la velocidad de respuesta no es buena, la página se quedaría “bloqueada”.
HISTORIA E INICIOS
Los inicios de las base de datos modernas se deben sobre todo al desarrollo realizado por el inglés Edgar Frank Codd, que propuso el primer modelo teórico relacional, es decir, definió cómo se debían relacionar los datos pertenecientes a una base de datos. Por otro lado IBM desarrolló la primera definición de lenguaje para base de datos (que definía cómo añadir y extraer información de una base de datos) llamado SEQUEL. Más tarde SEQUEL acabaría convirtiéndose en el lenguaje más utilizado hoy en día con bases de datos, el SQL.
SQL se ha convertido en un lenguaje estándar para todas las bases de datos. Hoy día es empleado por prácticamente todas las bases de datos existentes. Como en todo lenguaje ha habido mejoras y por tanto nuevas versiones a lo largo del tiempo, pero aunque cada sistema de base de datos tenga sus propias particularidades, todos comparten muchas características comunes.
DOS GRANDES ÁREAS
Dentro de SQL hay dos grandes áreas llamadas DDL y DML. DDL (en inglés Data Definition Language) es la parte del lenguaje que permite la definición de datos, por tanto son funciones que definen cómo van a ser los datos. Por ejemplo nosotros podemos definir que el dato de “edad” de una persona va a ser un número entero mientras que el dato “nombre” va a ser una cadena de texto. Los datos en una base de datos se almacenan en tablas formadas por filas y columnas. Las columnas nos indican el nombre de los datos y las las filas contendrán los valores de los datos propiamente dichos almacenados.
Así un ejemplo de tabla muy simple podría ser una tabla de usuarios, donde vamos a almacenar la información de su nombre y teléfono. Tendremos por tanto dos columnas y tantas filas como usuarios existan en nuestra base de datos
                Tabla Usuarios
NOMBRE
TELÉFONO
José
9434455444
Manuel
6578545458
Miguel
4987873487

Por otra parte está el área de DML (en inglés Data Manipulation Language) o Lenguaje de Manipulación de Datos, que como su nombre indica nos permite manipular la información y que básicamente se compone de estas instrucciones o funciones:
a) Select: función que permite solicitar que se nos devuelva un dato o serie de datos.
b) Insert: función para insertar nuevas filas de información en una tabla.
c) Update: función para modificar una o varias filas ya existentes previamente.
d) Delete: función que borra una fila o un conjunto de filas de una tabla.
TIPOS DE BASE DE DATOS
Hay diversos tipos de base de datos dependiendo de los objetivos de su uso. Por ejemplo, son distintos objetivos mantener el historial médico de los pacientes de un hospital o el registro de operaciones financieras de un banco. Pero en general los sistemas de bases de datos más populares son las bases de datos relacionales, aunque también se usan otros tipos de bases de datos, entre los que cabe destacar las denominadas “bases de datos orientadas a objetos”.
Las bases de datos relacionales se basan en la idea fundamental del uso de relaciones para definir los tipos de datos o información. Así en nuestro ejemplo anterior podemos ver que un usuario queda definido por un nombre y un teléfono es decir la relación de nombre y teléfono nos da un usuario.
SISTEMAS GESTORES DE BASES DE DATOS
Con el uso y el incremento del tipo de base de datos se desarrollaron sistemas informáticos que gestionan toda la funcionalidad de la base de datos propiamente dicha intentando que sea de la manera más clara, directa y sencilla.
Normalmente cada compañía de base de datos trae su propio SGBD (Sistema Gestor de Base de Datos). Aunque también los hay genéricos y muy buenos nosotros recomendamos que se utilice el propio de cada base de datos siempre que se pueda.
En la categoría de sistemas de bases de datos libres o gratuitos podemos citar como más importantes:
NOMBRE DE BASE DE DATOS
LOGOTIPO
PostgreSQL
logo postgresql
DB2-Express C
logo db2 express c base datos
MySQL (edición gratuita)
logo base datos mysql


Otras bases de datos requieren pagar para poder utilizarlas. Entre ellas tenemos:
NOMBRE DE BASE DE DATOS
LOGOTIPO
MySQL (ediciones de pago)
logo base datos mysql
dBase
logo base de datos dbase
IBM Informix
logo base de datos informix software
Microsoft SQL SERVER
logo base de datos microsoft sql server
Oracle
logo base de datos oracle
Sybase
logo base de datos sybase


De todas estas bases de datos la que ha conseguido mayor uso ha sido y sigue siendo Oracle, ya que desde 1979 ha sido líder indiscutible como base de datos para empresas de mediano y gran tamaño. Ahora bien, Oracle es una base de datos con buenas herramientas, potentísima, efectiva y como buen sistema de base de datos trae muchos programas variados que permiten hacer de todo en el terreno de las bases de datos: consultas, informes, análisis de datos, etc. Además Oracle cumple íntegramente con el estándar SQL y suele ser el referente a la hora de aprender a programar bases de datos.
Pero hay muchas ocasiones en las que no se utiliza un sistema Oracle por varios motivos: por un lado, es un sistema bastante “pesado” lo que significa que requiere disponer de servidores (grandes ordenadores) casi en dedicación exclusiva para este sistema de base de datos. Por otro lado, Oracle es una base de datos por cuyo uso hay que pagar y muchos usuarios y pequeñas empresas prefieren usar bases de datos de uso gratuito o de menor coste. Como alternativa a Oracle de coste más reducido y también muy efectiva, muchas empresas utilizan SQLServer, suministrada por Microsoft.
SQLServer es una solución de coste y rendimiento medio. Suelen usarlo empresas que tienen un volumen de información elevado, pero sin llegar a ser excesivo, sobre todo si utilizan un servidor dedicado de Microsoft. SQL Server ha estado creciendo aunque quizás no con la proyección que se esperaba. Sin embargo, le ha ido comiendo terreno a las demás compañías en el sector medio de las bases de datos.
En el desarrollo web donde los sistemas de hosting o alojamiento de páginas web suelen ser compartidos para ahorrar costes, el sistema de bases de datos más utilizado es quizás Mysql por su carácter de software libre de distribución gratuita. Sobre todo esto también se debe a que la mayoría de sitios web con hosting compartido son pequeñas o medianas webs que no mueven grandísimos volúmenes de datos, ya que suelen ser pequeñas o como mucho medianas empresas.
CONSEJOS PARA APRENDER PROGRAMACIÓN CON BASES DE DATOS
A la hora de aprender a programar con bases de datos, una buena opción es aprender con Oracle y su lenguaje SQL. Oracle facilita versiones de prueba (académicas o de estudio) gratuitas que pueden servir para aprender. Aunque tengamos que instalarlo en nuestro ordenador y nos consuma recursos, podemos trabajar a pequeña escala y aprender todas las funcionalidades sin grandes desventajas. Por el contrario, tendremos una gran ventaja, y es que una vez hayamos aprendido con Oracle la adaptación a cualquier otra base de datos es relativamente sencilla.
Otra alternativa interesante para aprender es utilizar MySql, ya que es un sistema gratuito que nos vamos a encontrar en la mayor parte de los servidores compartidos de páginas web. En este caso podremos trabajar usando un servidor (incluso un servidor gratuito) sin necesidad de instalar software en nuestro computador.
Finalmente, indicar que antes de aprender programación con bases de datos, es conveniente conocer los fundamentos de programación (algoritmia) así como uno o varios lenguajes de programación. Trabajar con bases de datos debe ser un paso “avanzado” dentro del proceso de aprendizaje de la programación, nunca el primer paso.



 Referencias
http://www.ingenieriasystems.com/2014/07/introduccion-php-y-mysql.html
https://www.nerion.es/soporte/como-subir-una-pagina-web-con-base-de-datos/
http://www.maestrosdelweb.com/que-son-las-bases-de-datos/

Albert Espinosa. (1993). Introduccion al XHTML. MEXICO D.F: Oreilly.
Lucía Etxebarría. (1998). La Web del programador. MEXICO D.F: Venus.

No hay comentarios:

Publicar un comentario