Bases de Datos
Definición: Es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso.
Características de las Bases de Datos
- Control centralizado de los datos
- Integridad de los datos
- Minimización de las redundancias
- Independencia de los datos y las aplicaciones
- Acceso concurrente a los datos
- Costo mínimo de almacenamiento y mantenimiento
- Versatilidad para la representación de relaciones
- Establecimiento de medidas de seguridad
- Facilidad para el cambio (hardware y software)
Ventajas de las Bases de Datos
Referidas a los Datos
- Independencia de estos respecto de los tratamientos
- Mejor disponibilidad de los mismos
- Mayor eficiencia en la recogida, codificación y entrada en el sistema
Referidas a los Resultados
- Mayor coherencia
- Mayor valor informativo
- Mejor y más normalizada documentación de la información
Referidas a los Usuarios
- Acceso más rápido y sencillo de los usuarios finales
- Más facilidad para compartir los datos con el conjunto de los usuarios
- Mayor flexibilidad para atender a demandas cambiantes
Objetivos de las Bases de Datos
El objetivo principal de un sistema de base de datos es proporcionar a los usuarios finales una visión abstracta de los datos. Esto se logra escondiendo ciertos detalles de cómo se almacenan y mantienen los datos.
Modelos de Bases de Datos
Se refiere a la estructura utilizada para expresar las relaciones existentes entre las diferentes unidades de datos que la constituyen. Existen tres modelos principales:
Modelo Jerárquico
Utiliza una estructura de árbol para establecer relaciones del tipo 1:N (uno a muchos). Una base de datos de este tipo consistirá en uno o varios árboles que expresarán las distintas agrupaciones entre los datos. Cada árbol tiene un nodo distinguido denominado raíz y, a partir de él, se establecen relaciones de sucesión, denominándose nodos hijos a los descendientes de otro.
Modelo en Red
Utiliza una estructura de red o grafo, que permite definir entre todos los nodos relaciones N:N (muchos a muchos). Mediante el establecimiento de apuntadores entre nodos se puede relacionar cualquier unidad de datos con cualquiera de las otras.
Modelo Relacional
Se basa en el álgebra relacional. Las relaciones entre las unidades de datos o entidades se expresan mediante tablas de dos dimensiones. Una base de datos de este tipo estará formada por varias de estas tablas, en las que una fila contiene una ocurrencia de valores interrelacionados y una columna contiene los diferentes valores posibles de cada atributo o campo.
Sistema Gestor de Bases de Datos (SGBD)
Es un sistema de software que permite a sus usuarios crear, mantener y controlar el acceso a una base de datos.
Entidad
Una entidad representa aquello de lo cual interesa guardar datos, por ejemplo: clientes, facturas, productos, empleados. En el Modelo Entidad-Relación, se observa que las entidades están formadas por atributos o campos referidos a un mismo tema que interesa almacenar.
Concurrencia en una Base de Datos
Los usuarios envían transacciones, y se puede considerar que cada transacción se ejecuta de forma independiente. La concurrencia se logra mediante el SGBD, que intercala las acciones (lectura/escritura de objetos de la BD) de las diversas transacciones.
Seguridad
Implica el control sobre el acceso a los datos particulares. El uso de bases de datos centralizadas también facilita la gestión de la seguridad y permite que los datos se almacenen minimizando la redundancia.
Clave Primaria
Si la clave primaria se compone de un solo atributo (situación muy habitual), entonces puede añadirse PRIMARY KEY
al final de la definición del atributo. Para definir una clave primaria compuesta por varios atributos, se utiliza la cláusula PRIMARY KEY
seguida de una lista de los atributos que la componen, separados por comas.
Claves Foráneas
Se define de forma similar a la clave primaria, indicando FOREIGN KEY
seguida de la lista de atributos (separados por comas) que componen la clave ajena. A continuación, se usa la palabra REFERENCES
seguida del nombre de la tabla referenciada (la tabla de la cual los atributos anteriores son clave primaria).
Tabla en las Bases de Datos
Se refiere al tipo de modelado de datos donde se almacenan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de hoja de cálculo.
Las tablas se componen de dos estructuras:
- Registro: Es cada una de las filas en que se divide la tabla. Cada registro contiene datos de los mismos tipos que los demás registros. Ejemplo: en una tabla de nombres y direcciones, cada fila contendrá un nombre y una dirección.
- Campo: Es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente a los de otros campos. En el ejemplo anterior, un campo contendrá un tipo de datos único, como una dirección, un número de teléfono, un nombre, etc.
SQL (Structured Query Language)
Los orígenes de SQL están ligados a los de las bases de datos relacionales. En 1970, E. F. Codd propone el modelo relacional y, asociado a este, un sublenguaje de acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL (Structured English Query Language) que más tarde sería ampliamente implementado por el sistema de gestión de bases de datos (SGBD) experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial.
Características de SQL
SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales y permite así gran variedad de operaciones.
Es un lenguaje declarativo de «alto nivel» o «de no procedimiento» que, gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros —y no a registros individuales— permite una alta productividad en codificación y orientación a objetos. De esta forma, una sola sentencia puede equivaler a uno o más programas que se utilizarían en un lenguaje de bajo nivel orientado a registros. SQL también posee las siguientes características:
- Lenguaje de Definición de Datos (DDL): El DDL de SQL proporciona comandos para la definición de esquemas de relación, borrado de relaciones y modificaciones de los esquemas de relación.
- Lenguaje Interactivo de Manipulación de Datos (DML): El DML de SQL incluye lenguajes de consultas basado tanto en álgebra relacional como en cálculo relacional de tuplas.
- Integridad: El DDL de SQL incluye comandos para especificar las restricciones de integridad que deben cumplir los datos almacenados en la base de datos.
- Definición de Vistas: El DDL incluye comandos para definir las vistas.
- Control de Transacciones: SQL tiene comandos para especificar el comienzo y el final de una transacción.
- SQL Incorporado y Dinámico: Esto significa que se pueden incorporar instrucciones de SQL en lenguajes de programación como C++, C, Java, COBOL, Pascal y Fortran.
- Autorización: El DDL incluye comandos para especificar los derechos de acceso a las relaciones y a las vistas.
Ventajas de SQL (específicas de SQL Server mencionadas)
- Es un Sistema de Gestión de Bases de Datos Relacionales (SGBDR).
- Puede ser útil para manejar y obtener datos de redes.
- Ofrece una forma potente de integrar SQL con aplicaciones web e Internet.
- Utiliza una extensión al SQL estándar denominada Transact-SQL (en el caso de Microsoft SQL Server).
- Seguridad: SQL permite administrar permisos detallados a nivel de servidor, base de datos, tablas (lectura, escritura, ejecución), procedimientos almacenados, etc. Permite configurar accesos granulares para diferentes usuarios o sistemas.
Desventajas (específicas de SQL Server mencionadas)
- Versiones anteriores (como la 6.5) presentaban limitaciones: bloqueo a nivel de página, dispositivos con crecimiento manual, un tamaño de página fijo y pequeño (2 KB), una implementación mejorable de tipos de datos variables como
VARCHAR
. - Una desventaja notable de Microsoft SQL Server es el consumo considerable de memoria RAM para su instalación y operación.
- Para fines puramente académicos o de aprendizaje inicial, algunas restricciones o la complejidad de la configuración podrían percibirse como una desventaja frente a alternativas como MySQL, que además es software libre.
- La relación calidad-precio puede ser menos favorable en comparación con Oracle, dependiendo del caso de uso y licenciamiento.
Tipos de Datos SQL
Cláusulas de SQL
Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular en las sentencias SQL.
Operadores SQL
Los operadores lógicos soportados por SQL incluyen: AND
, OR
, NOT
, y otros dependiendo del SGBD específico (algunos pueden incluir XOR
, Eqv
, Imp
, Is
). La sintaxis general para operadores binarios como AND
y OR
es: expresión1 OPERADOR expresión2
. Donde expresión 1
y expresión 2
son las condiciones a evaluar. El resultado de la operación varía según el operador lógico utilizado.
Funciones de Agregado SQL
Las funciones de agregado se usan dentro de una cláusula SELECT
en grupos de registros para devolver un único valor que aplica a dicho grupo.
- AVG: Utilizada para calcular el promedio de los valores de una columna numérica.
- COUNT: Utilizada para devolver el número de registros de la selección.
- SUM: Utilizada para devolver la suma de todos los valores de una columna numérica.
- MAX: Utilizada para devolver el valor más alto de un campo específico.
- MIN: Utilizada para devolver el valor más bajo de un campo especificado.
Comandos SQL
Existen principalmente dos tipos de comandos SQL:
- DDL (Data Definition Language): Permiten crear y definir nuevas bases de datos, tablas, campos, índices y otros objetos de la base de datos (Ej:
CREATE TABLE
,ALTER TABLE
,DROP TABLE
). - DML (Data Manipulation Language): Permiten generar consultas para ordenar, filtrar, insertar, actualizar, eliminar y extraer datos de la base de datos (Ej:
SELECT
,INSERT
,UPDATE
,DELETE
).