¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. SQL
  3. Introducción
Extrait - SQL Fundamentos del lenguaje (con ejercicios corregidos) (3ª edición)
Extractos del libro
SQL Fundamentos del lenguaje (con ejercicios corregidos) (3ª edición)
1 opinión
Volver a la página de compra del libro

Introducción

Un poco de historia

Las bases de datos son indispensables en cualquier desarrollo informático. En la mayoría de casos los datos se almacenan en una estructura de datos.

Se habla de BBDD para designar el almacenamiento de los datos y de SGBD para designar los elementos que se ponen a disposición del desarrollador para manipular estos datos.

Existen diferentes tipos de bases de datos.

De tipo jerárquico, como IMS/DL1, que se encuentran mayoritariamente en los Mainframes. Estos elementos se organizan como un árbol con un nivel de jerarquía y de punteros entre registros.

De datos en red (o Codasyl) como IDS2 o SOCRATE que prácticamente no se utilizan en la actualidad, y que utilizan un poco el modelo jerárquico, pero permiten navegar entre los elementos y no solo de forma descendente.

Desde hace algunos años, han aparecido otros tipos de bases de datos con los sitios de Internet utilizados por millones de usuarios:

  • Bases de datos que manejan la información en columnas y no en registros para gestionar enormes cantidades de datos, como Bigtable, desarrollado por Google, o Cassandra, utilizado por Facebook.

  • Bases de datos NoSQL, como Redis, más flexible con un esquema definido de manera no precisa, que se preocupa por la coherencia final.

  • Bases de datos de documentos, similar al tipo de base NoSQL. La más conocida y utilizada es MongoDB.

El sitio web db-engines.com actualiza periódicamente...

Las normas SQL

La primera versión de SQL normalizada por ANSI data de 1986.

Más tarde se sucedieron versiones más o menos importantes.

La norma SQL2 o SQL92 es la más importante. La mayoría de los SGBDR existentes implementan esta versión.

A continuación siguieron otras evoluciones SQL-3, SQL:2003, SQL:2008 y SQL:2011 que aportan algunas funciones complementarias.

Cada proveedor de SGBDR ha implementado a su manera el lenguaje SQL y ha agregado sus propias extensiones. Los ejemplos que se ofrecen en este libro para ilustrar los conceptos pueden no ser compatibles con todos los SGBDR.

Los ejemplos mostrados en este libro se crearon principalmente para las bases de datos más utilizadas: Oracle, SQL Server, PostgreSQL y MySQL.

Norma

Nombre

Comentarios

ISO/CEI 9075:1986

SQL-86 o SQL-87

Editada por ANSI y adoptada por ISO en 1987.

ISO/CEI 9075:1989

SQL-89 o SQL-1

Revisión menor.

ISO/CEI 9075:1992

SQL-92 o SQL2

Revisión mayor.

ISO/CEI 9075:1999

SQL-99 o SQL3

Expresiones racionales, consultas recursivas, disparadores, tipos no escalares y algunas funciones orientadas a objetos.

ISO/CEI 9075:2003

SQL:2003

Introducción de funciones para la manipulación de XML, « window functions », comandos estandarizados y columnas con valores automáticos (incluyendo columnas de identidad).

ISO/CEI 9075:2008

SQL:2008

Se añaden algunas funciones de ventanas...

Descripción rápida del modelo relacional

El modelo relacional fue creado, como decíamos anteriormente, por un investigador, Edgard Codd, que trabajaba en IBM a principios de los años 70. Trabajó a partir de principios matemáticos simples, la teoría de conjuntos y la lógica de predicados.

El modelo relacional se basa en el concepto de conjunto. Esquemáticamente el modelo relacional se puede representar a través de una tabla (una tabla igualmente se puede llamar una relación).

Este conjunto tiene atributos (las columnas) y líneas que contienen los valores (los registros). La forma más comúnmente utilizada para representar una tabla es esta:

images/1.png

El modelo relacional presenta los datos de forma lógica, es totalmente independiente del modelo físico. Es el proveedor el que decide el modo de almacenamiento físico de las tablas. Esta es la mayor ventaja de las bases de datos relacionales, la independencia entre lo lógico y lo físico.

Una vez se han definido las tablas, hay que disponer de un lenguaje para manipularlas, se trata del álgebra relacional. También lo inventó Edgard Codd. Con la ayuda de estos comandos, se pueden consultar las relaciones existentes y crear nuevas relaciones. Hablamos de operadores de unión, intersección, diferencia, producto cartesiano, división y composición.

SQL implementa el álgebra relacional y los sistemas de gestión de bases de datos relacionales (SGBDR) implementan el modelo relacional.

1. Principales conceptos del modelo relacional

Los tres principales conceptos del modelo relacional son el dominio, el producto cartesiano y las relaciones.

Dominio

Es un conjunto de valores representado por un nombre.

Por ejemplo:

El tipo de baño es un dominio que comprende los valores D, DW o BW para las duchas, duchas con WC separado o bañeras con WC separado.

El tipo de cama es otro dominio (individual, doble, XL, etc.).

El número de ocurrencias de cada uno de los dominios da la cardinalidad.

Para los tipos de cama, la cardinalidad es 3.

Producto cartesiano

Representa la unión entre dos dominios. Si, por ejemplo, se realiza el producto cartesiano entre los tipos de baño y los tipos de cama, se obtienen registros R1, R2.

En nuestro ejemplo, el producto...

El álgebra relacional

1. Aspectos generales

El álgebra relacional ha llevado al desarrollo de SQL que se ha convertido en el estándar en lo que respecta a la gestión de datos.

Es un método de extracción que permite la manipulación de tablas y columnas. Se basa en la creación de nuevas tablas (tablas resultantes) a partir de tablas existentes. Estas nuevas tablas se convierten en objetos que se pueden utilizar inmediatamente.

Los operadores del álgebra relacional que permiten crear las tablas resultantes se basan en la teoría de conjuntos.

La sintaxis y la notación utilizadas aquí son las que más se usan.

2. Los operadores

a. Unión

La unión entre dos relaciones de igual estructura (grado y dominios) da una tabla resultante de la misma estructura que tiene como elementos el conjunto de los diferentes elementos de las dos relaciones iniciales.

Notación: Rx = R1 images/signe1.png R2

Ejemplos:

Consideremos las relaciones HOTELES_EUROPA y HOTELES_AFRICA

RELACIÓN HOTELES_EUROPA

idHotel

Etiqueta

Estrella

1

Ski Hotel

*

2

Art Hotel

**

RELACIÓN HOTELES_AFRICA

idHotel

Etiqueta

Estrella

1

Ski Hotel

*

2

Lions Hotel

****

UNIÓN DE LAS DOS RELACIONES

idHotel

Etiqueta

Estrella

1

Ski Hotel

*

2

Art Hotel

**

4

Lions Hotel

****

b. Intersección

La intersección entre dos relaciones de igual estructura (grado y dominios) da una tabla resultante de igual estructura que tiene como elementos el conjunto de elementos comunes a las dos relaciones iniciales.

Notación: Rx = R1 images/signe2.png R2

Ejemplo:

RELACIÓN HOTELSKI_TIPOHABITACION

NumHabitacion

Descripcion

1

1 cama individual con ducha

4

1 cama doble con ducha

6

1 cama doble con baño y WC separados

RELACIÓN ARTHOTEL_TIPOHABITACION

NumHabitacion

Descripcion

1

1 cama individual con ducha

4

1 cama doble con ducha

6

1 cama doble con baño y WC separados

7

1 cama doble grande con baño y WC separados

TIPOHABITACION comunes a las dos relaciones:

NumHabitacion

Descripcion

1

1 cama individual con ducha

4

1 cama doble con ducha

6

1 cama doble con baño y WC separados

c. Diferencia

La diferencia entre dos relaciones de igual estructura (grado y dominio) da una tabla resultante de igual estructura que tiene como elementos el conjunto de elementos de la primera relación que no están en la segunda. 

Notación: Rx = R2 - R1

Ejemplo:

TIPOHABITACION presente...

Los sistemas de gestión de bases de datos que utilizan SQL

Los SGBDR en el mercado son bastante numerosos. Los más utilizados son Oracle, MySQL, SQL Server (Microsoft), PostgreSQL y DB2 (IBM) especialmente en empresas que tienen volúmenes de datos importantes y grandes restricciones de rendimiento transaccionales.

Aquí no vamos a poder comparar todas las características, ventajas e inconvenientes de todos estos SGBDR. La elección de una base de datos es una decisión que se debe reflexionar bien, en función de criterios como el volumen de datos, los tipos de datos, las restricciones de rendimiento, los costes de compra y mantenimiento, los conocimientos de los programadores, etc.