Base de datos: Lenguaje SQL
¿Qué es una base de datos y un Sistema Gestor de Base de datos (SGBD)?
Un sistema gestor de base de datos (SGBD) consiste en una colección interrelacionada de datos y un conjunto de programas para acceder a dichos datos. La colección de datos la cual se denomina base de datos, contiene información relevante para una empresa. El objetivo principal del SGBD es poder proporcionar una forma en la cual se puede almacenar y recuperar la información que se encuentra en una base de datos de manera que esto sea de una forma práctica y eficiente.
![](https://steemitimages.com/DQmdodvBhzmmzewcxYQB75fKtjEZ6QhURvwcDhNw3Gzd6nT/der-base-de-datos-en-perspectiva.jpg)
¿Cuáles son las aplicaciones de un sistema de base de datos?
Las bases de datos se usan ampliamente, a continuación se presentarán algunas aplicaciones representativas:
- Banca: Para la información de los clientes, ya sea cuentas, préstamos, transferencias bancarias, etc.
- Líneas aéreas: Se usan para reservas y el manejo de los horarios. Estas fueron las primeras en usar las bases de datos de forma distribuida geográficamente.
- Universidades: Se usan para manejar la información de los estudiantes como por ejemplo: las matrículas en las asignaturas, cursos, etc.
- Transacciones de tarjetas de crédito: Se usan para todo lo que tiene que ver con la compra mediante tarjetas de créditos y también para la generación de los extractos mensuales.
- Telecomunicaciones: Ayuda a guardar un registro de llamadas realizadas, generar las facturas mensuales, mantener el saldo en las tarjetas telefónicas de prepago y para almacenar información sobre las redes de comunicaciones.
- Finanzas: Se usa para almacenar información de compañías tenedoras, compras y ventas de productos financieros como por ejemplo acciones y bonos; y también para almacenar datos del mercado en tiempo real para permitir a los clientes la compraventa en línea.
- Ventas: Para almacenar la información de los clientes, productos y compras.
Como se puede observar en esta lista, las bases de datos forman una parte esencial de casi todas las empresas actualmente. Durante las cuatros últimas décadas del siglo XX el uso de las bases de datos crecieron de una manera significativa en las empresas. Al principio las personas no interactuaban directamente con los sistemas de base de datos, pero sin darse cuenta interactuaban indirectamente con informes impresos como los extractos de las tarjetas de crédito, o mediante agentes como los cajeros de los bancos y los agentes de reservas de las líneas aéreas.
![](https://steemitimages.com/640x0/https://steemitimages.com/DQmdEvhhYZzEe7MbjZuUs6vh95NLP4QSW3knNAHL2TVs5r6/bases-de-datos.jpg)
Lenguaje SQL
El Structured Query Language, conocido como SQL es el lenguaje estándar utilizado para interactuar con sistemas de base de datos relacionales. El SQL fue desarrollado por IBM en la década de 1970 con la finalidad de implantar el manejo y almacenamiento de grandes bancos de datos desarrollado años antes por E. F. Codd.
Modelo relacional
El modelo relacional fue propuesto por E. F. Codd entre 1969 y 1979, introdujo cambios importantes en la manera en la que estaban concebidas las bases de datos. Esta propuesta causó revuelo en el momento y treinta años después es el pilar de la mayoría de los gestores de bases de datos.
El modelo relacional representa a las bases de datos como una agrupación de relaciones, es decir, cada relación es similar a una tabla, o, en el peor de los casos a un archivo independiente. Si visualizamos una relación como una tabla, cada fila de ésta representa combinaciones de datos relacionados entre sí. Estos datos están definidos en forma de columnas.
En términos del modelo relacional una fila se le conoce como tupla, una cabecera de columna es un atributo y la tabla es una relación. El tipo de dato que describe los valores que una columna pueda almacenar se le denomina dominio. A continuación se describen cada uno de los términos con mayor detalle:
- Dominio: Es el rango de los valores a los cuales está limitado un objeto. Ejemplo de dominio: caracteres, números con punto flotante, números enteros o valores lógicos.
- Atributos: Son aquellos objetos que pueden almacenar los valores restringidos por el dominio, es decir, pertenece exclusivamente a un dominio particular. Ejemplo de atributos: fecha, nombre, apellido. Los atributos también son conocidos como columnas.
- Relación: es una correspondencia entre grupos de atributos. Por ejemplo la siguiente relación se define como usuario(nombre, apellido, fecha de nacimiento) e identifica una correspondencia entre dichos atributos. Cuando hay muchas relaciones esto se denomina conjunto de relaciones, las cuales deben poseer nombres únicos que las identifiquen.
- Grados de una relación: El grado de la relación hace referencia a la cantidad de atributos que existen en una relación.
- Tuplas: Serie de registros que se almacenan en las relaciones.
![](https://steemitimages.com/DQmXVBgmoGnM4xwDihPRzwyV26AKNQVdBmgUugKkxRBzAC6/m2_p1_f1.gif)
Claves
Una clave es una combinación de uno o más atributos que identifica sin ambigüedades los registros que se encuentran en una tabla.
Es recomendable que las claves posean las siguientes características:
- Minimalismo: Esto ocurre cuando la clave posee la cantidad mínima de atributos.
- Estabilidad: Los valores de los atributos que conforman las claves no deben estar cambiando constantemente.
- Familiaridad: Las claves deben estar compuestas por atributos que tengan sentido para los usuarios.
Es recomendable que una clave sea simple, o dicho de otra manera, que la longitud de los atributos de una clave sea mínima. Desde el punto de vista computacional, la comparación y el almacenamiento de los números son más eficiente que la de los caracteres, esto quiere decir que la búsqueda de los registros que posean una clave compuesta por atributos numéricos va a ser más veloz que una cuyos atributos sean de tipo alfanuméricos.
Tipos de claves
- Claves candidatas: Conjunto de atributos que identifican sin ambigüedad los registros de una tabla. Ejemplo: si ponemos como ejemplo la identificación de un automóvil podremos notar que tenemos tres claves candidatas: número de matrícula, serial del motor y el serial de carrocería. Al definirse cuál de las tres identificará los registros, ésta se convierte en la clave primaria y las demás serían claves secundarias.
- Clave primaria: Es aquella que es seleccionado por el diseñador de la base de datos para identificar unívocamente los registros de una tabla.
- Clave secundaria: Conjuntos de atributos que identifican unívocamente los registros de una tabla pero que no fueron seleccionadas como clave primaria.
Las claves a su vez se pueden dividir en simples y compuestas. Las simples son aquellas que están compuestas por un atributo (cumplen con la condición de minimalismo). Las compuestas están conformadas por más de un atributo.
Valor Nulo
El valor nulo es un valor soportado por el modelo relacional. Cuando se dice que un valor es “nulo” se refiere a que dicha información es desconocida.
El valor nulo no es igual a cero o caracteres en blancos. Comparar un valor cualquiera con un valor nulo trae una respuesta indefinida ya que no es igual o distinto a otro valor, incluso a sí mismo.
Clave Foránea
Es una columna o conjuntos de columnas de una tabla que contiene valores que coinciden con los valores de la clave primaria de otra tabla y son utilizadas para unir dos tablas. Ejemplo:
![](https://steemitimages.com/640x0/https://steemitimages.com/DQmZonBEdKaieLkzSAiPFAAxm8jLdvnQq23NrGahGhQvJu5/Tabla%20departamento.png)
![](https://steemitimages.com/DQmNe2G1cAB3jY6aS6hDWmCaPBQXP3Py1LTeU1WLJ9NRnBx/Tabla%20empleado.png)
Figura 1. Claves Primaria y Foránea de las relaciones de Departamento y Empleado.Fuente Propia
![](https://steemitimages.com/640x0/https://steemitimages.com/DQmbTkKKEhssiaEjxXFe4joA5BoGnbKSTMAbLVD5PCBb7SC/Separador-1.png)
Espero que esta información haya sido de su agrado, muy pronto estaré publicando más contenido sobre SQL y sus funcionalidades. Muchas gracias por haber leído y compartir.
- Sitio Web: https://es.wikipedia.org/wiki/Base_de_datos
- Sitio Web: https://es.wikipedia.org/wiki/SQL
- Sitio Web: https://www.ibm.com/support/knowledgecenter/es/SSGU8G_11.50.0/com.ibm.ddi.doc/ids_ddi_183.htm
- Libro: Fundamentos de base de datos. Quinta Edición. ABRAHAM SILBERSCHATZ.
- Libro: Introducción al SQL Teoría y Práctica. Olinto Rodríguez Atencio.