Codificación aprenderaprogramar.com: DV00204A
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.
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 |
|
DB2-Express C |
|
MySQL (edición gratuita) |
Otras bases de datos requieren pagar para poder utilizarlas. Entre ellas tenemos:
NOMBRE DE BASE DE DATOS |
LOGOTIPO |
MySQL (ediciones de pago) |
|
dBase |
|
IBM Informix |
|
Microsoft SQL SERVER |
|
Oracle
|
|
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.
SABER MÁS
Si estás interesado en formarte en programación con bases de datos consulta la oferta formativa del portal web aprenderaprogramar.com en: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=57&Itemid=86
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.