Está en la página 1de 28

República Bolivariana de Venezuela

Ministerio del Poder Popular para la Educación


Universidad Alonso de Ojeda
Facultad de Ingeniería. Escuela de Computación
Ciudad Ojeda. Edo Zulia

UNIDAD II y III: SISTEMA Y GESTION DE BASE DE DATOS DISTRIBUIDAS Y


EL LENGUAJE ESTRUCTURADO DE CONSULTA (SQL)
AUTOR:
Cesar Mier- 27260473
PabloSoto- 29755265
Luis Manuel El Jurdi - 28409431
Juan Pablo Vargas - 26991559
SECCION:
ICO811

Ciudad Ojeda, 30 de Mayo de 2021


INDICE
Introducción
1. Sistemas manejadores de base de datos distribuidos.
2. Componentes y objetivos de un DDBMS.
3. Técnicas de fragmentación, replicación y concurrencia de datos.
4. Técnicas de Minería de datos.
5. ¿Qué es Datawarehouse?
6. Concepto de ACID.
7. Consultas multitablas.
8. Consultas de unión externas e internas.
Conclusión
Bibliografía
http://www.maestrosdelweb.com/tutsql9/
Introducción

Un Sistema de Gestión de Bases de Datos (SGBD) consiste en una colección de datos


interrelacionados y un conjunto de programas para acceder a los mismos. Esta definición
es prácticamente idéntica a la que se dio anteriormente de Sistema de Información, de
hecho normalmente en el núcleo de un SI se sitúa un SGBD. El caso de lo SIG es un
poco diferente ya que en principio las bases de datos espaciales no son adecuadas para
su manejo con SGBD tradicionales.

Un SGBD permite el almacenamiento, manipulación y consulta de datos pertenecientes a


una base de datos organizada en uno o varios ficheros. La base de datos consiste, de
cara al usuario, en un conjunto de tablas entre las que se establecen relaciones. A pesar
de sus semejanzas, ambos manejan conjuntos de tablas, existen una serie de diferencias
fundamentales entre un SGBD y un programa de hoja de cálculo
1. Sistemas Manejadores de Base de Datos Distribuidos.
Un sistema manejador de bases de datos (SGBD, por sus siglas en inglés)
o DataBase Management System (DBMS) es una colección de software muy
específico, orientado al manejo de base de datos, cuya función es servir de
interfaz entre la base de datos, el usuario y las distintas aplicaciones utilizadas.
Como su propio nombre indica, el objetivo de los sistemas manejadores de base
de datos es precisamente el de manejar un conjunto de datos para convertirlos en
información relevante para la organización, ya sea a nivel operativo o estratégico.
Lo hace mediante una serie de rutinas de software que permiten su uso de
una manera segura, sencilla y ordenada. Se trata, en suma, de un conjunto de
programas que realizan tareas de forma interrelacionada para facilitar la
construcción y manipulación de bases de datos, adoptando la forma de interfaz
entre éstas, las aplicaciones y los mismos usuarios.
Características y funcionalidad
Un sistema SGBD es sinónimo de independencia, una redundancia mínima,
consistencia de la información (control de la concurrencia), abstracción de la
información sobre su almacenamiento físico, así como un acceso seguro y la
adopción de las medidas necesarias para garantizar la integridad de los datos.
Los lenguajes más utilizados en un Manejador de Base de Datos (DBMS)
En lo que respecta a los lenguajes utilizados en un DBMS, cabe destacar el
Lenguaje de Manipulación de datos o Data ManipulationLanguage (DML) para la
realización de consultas y manipulación de datos. Especialmente, se utiliza el SQL
(StructuredQueryLanguage), el DML más utilizado para gestionar datos
relacionales, así como el Data DefinitionLanguage (DDL), utilizado para definir
estructuras y funciones en la realización de consultas.
2. Componentes y objetivos de un DDBMS.
DBMS realmente funciona mucho para dispositivos que son útil para
organizar recursos de datos en una empresa. Por lo tanto, hay varios objetivos de
usar un DBMS en una red informática en una empresa, a saber:
 El DBMS tiene como objetivo hacer que el proceso de acceso a los datos
sea más rápido y fácil.
 El DBMS tiene como objetivo eliminar y prevenir inconsistencias y
duplicaciones de datos.
 El DBMS tiene como objetivo ayudar a mantener la seguridad de los datos.
 El DBMS tiene como objetivo poder manejar una gran cantidad de datos.
 El DBMS tiene como objetivo ahorrar espacio en el almacenamiento de
datos.
 DBMS tiene como objetivo hacer que la base de datos se pueda usar en
conjunto.
Componentes
I. Administrador de base de datos
Este componente puede proporcionar una interfaz entre los datos de bajo
nivel que existen en cada base de datos con un programa de aplicación y también
en las consultas que se darán a un sistema.
En pocas palabras, este administrador de base de datos tiene la tarea de
poder probar externamente y aceptar consultas y esquemas conceptuales para
poder determinar si el registro de datos es necesario para cumplir con la solicitud.
II. Administrador de archivos
File Manager es un componente que puede administrar el espacio en el
disco y también en una estructura de datos que se puede usar para representar la
información que se ha almacenado en un disco. O también podría decirse que el
administrador de archivos se utiliza para manipular el almacenamiento en archivos
y administrar la asignación de espacio de almacenamiento en un disco. El
administrador de archivos también juega un papel importante y tiene la
responsabilidad de almacenar datos.
III. Procesador de consultas
En este componente DBMS, puede funcionar como traducir un comando al
lenguaje de consulta en una instrucción de bajo nivel y puede ser entendido por el
administrador de la base de datos.
IV. Compilador DDL
DDL Este compilador es un componente puede convertir varios comandos
DDL en una colección de tablas que ya contienen metadatos. En pocas palabras,
este compilador DDL tiene la tarea de poder cambiar un comando de alto nivel que
luego se convierte en un lenguaje de bajo nivel, que finalmente obtendrá una
colección de etiquetas que ya contienen metadatos.
V. Compilador DML
DML Compiler es un componente que puede convierte un comando de
DML, que luego se agregará a un programa de aplicación al reproductor de
procedimientos no nativo en el idioma principal. Y también se puede llamar DML
Compiler es un componente del DBMS que puede convertir comandos de DML
incrustado en un programa de aplicación en forma de funciones que se llamarán al
idioma del host.
VI. Administrador de diccionario
Este administrador de diccionarios es un componente del DBMS que puede
administrar el acceso y mantener los datos del diccionario.
3. Técnicas de fragmentación, replicación y concurrencia de datos.
Fragmentación:
La fragmentación es una característica de servidor de bases de datos que
le permite controlar dónde se almacenan los datos a nivel de tabla. La
fragmentación le permite definir grupos de filas o claves de índice dentro de una
tabla, según algún algoritmo o esquema.
Las técnicas de fragmentación se dividen en:
 Fragmentación vertical:
Divide la relación en conjuntos de columnas. Lafragmentación vertical se
basa en realizar una proyección, y emplea la siguiente notación: ri = Пi (r). Debe
cumplir que:
La unión de todas las proyecciones nos da todas las columnas de la relación.
Cada una de las proyecciones debe contener la clave de la relación global.
 Fragmentación horizontal:
Divide una relación en subconjuntos de tuplas o registros, cada uno de ellos
con un significado lógico. Se suele emplear para separar bloques completos de
datos y tenerlos en los lugares donde más se necesitan. Hay dos tipos de FH:
FH primaria:
Es una selección de la relación global y se realiza a partir de un predicado
(Pi) que establece la semántica de la fragmentación. Se denota por: Ri = σ Pi(R).
FH derivada:
Se realiza en función de los predicados definidos sobre otras relaciones o
fragmentos, porque la relación R depende de la relación Q. Esto se expresa como:
Ri = R α Qi, donde Qi es el conjunto de fragmentos en los que se ha dividido Q.
 Fragmentación mixta:
Es el resultado de aplicar un doble proceso de fragmentación. Hay varias
posibilidades:
Fragmentación VH:
Se aplica primero la vertical y luego la horizontal sobre cada fragmento.
Fragmentación HV:
En este caso es primero la horizontal y después la vertical a cada trozo.
Celdas: se aplican ambas fragmentaciones simultáneamente sobre la relación,
formando una red de celdas. Es la única en la que todos los fragmentos obtenidos
son iguales.
Replicación:
Una replicación de base de datos es una técnica mediante la cual copiamos
de forma exacta en otra ubicación una instancia de la base de datos. Se utiliza en
entornos distribuidos de Sistemas de Gestión de Bases de Datos donde una sola
base de datos tiene que ser utilizada y actualizada en varios lugares de forma
simultánea.
Tipos de replicación de base de datos
Podemos hablar al menos de 3 tipos de replicación de base de datos:
 Replicación Instantánea:
Los datos de un servidor son simplemente copiados a otro servidor o a otra
base de datos dentro del mismo servidor. Al copiarse todo no necesitas un control
de cambios. Se suele utilizar cuando los datos cambian con muy poca frecuencia.
• Replicación Transaccional:
Primero se envía una copia completa de la base de datos y luego se van
enviando de forma periódica (o a veces continua) las actualizaciones de los datos
que cambian. Se utiliza cuando necesitas que todos los nodos con todas las
instancias de la base de datos tengan los mismos datos a los pocos segundos de
realizarse un cambio.
• Replicación de mezcla:
Los datos de dos o más bases de datos se combinan en una sola base de
datos. En primer lugar se envía una copia completa de la base de datos. Luego el
Sistema de Gestión de Base de Datos va comprobando los cambios que van
apareciendo en los distintos nodos y a una hora programada o a petición los datos
se sincronizan. Es sobre todo útil cuando cada nodo suele utilizar solo los datos
que se actualizan allí pero que por circunstancias necesita tener también los datos
de los otros sitios.
Concurrencia:
Concurrencia se refiere al hecho de que los Sistemas Administradores de
Base de Datos permiten que muchas transacciones accedan a una misma Base
de Datos a la vez. Los procesos concurrentes pueden ser ejecutados realmente de
forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores.
4. Técnicas de Minería de
Datos
La minería de datos es el
conjunto de técnicas y
tecnologías que permiten explorar grandes bases de datos, de manera automática
o semiautomática, con el objetivo de encontrar patrones repetitivos, tendencias o
reglas que expliquen el comportamiento de los datos en un determinado contexto.
Básicamente, la minería de datos surge para intentar ayudar a comprender
el contenido de un repositorio de datos. Con este fin, hace uso de prácticas
estadísticas y, en algunos casos, de algoritmos de búsqueda próximos a la
Inteligencia Artificial y a las redes neuronales.
Las técnicas de minería de datos provienen de la inteligencia artificial y de
la propia estadística. Se trata de algoritmos que se aplican sobre un conjunto de
datos con el objetivo de obtener resultado.
Las técnicas de minería de datos más representativas que se utilizan son:
 Las redes neuronales
Se trata de un paradigma de aprendizaje y de un procesamiento
automatizado que se encuentra inspirado en la manera que funciona el sistema
nervioso de los animales.
Es un sistema que permite interconectar las neuronas en una red (red
neuronal) que presta colaboración para la producción de estímulos de salida.
Entre los ejemplos de las redes neuronales se pueden mencionar:
La perceptrón (tipo de red neuronal artificial)
La perceptrón multicapas
Los mapas auto organizados
La regresión lineal
Es una de las técnicas más utilizadas para la formación de relaciones entre
datos. Se trata de un sistema rápido y eficaz pero que a su vez cuenta con
insuficiencias en los espacios multidisciplinarios donde puedan relacionarse más
de 2 variables.
 Los árboles de decisión
Se trata de un modelo de predicción que se utiliza en el campo de la
inteligencia artificial a partir de una base de datos en donde se construyen
losdiagramas de construcciones lógicas. Es un sistema similar a la predicción que
está basado en reglas que sirven para la representación de una serie de
condiciones que se presentan de manera sucesiva en la resolución de problemas.
 Los modelos estadísticos
Se trata de una expresión simbólica en forma de igualdad que es empleada
en los diseños experimentales y en la regresión, con la intención de identificar los
factores que modifican la variable de respuesta
 El agrupamiento
Consiste en la agrupación de una serie de vectores según determinados
criterios que habitualmente son a distancia. Se trata de la disposición de los
vectores de entrada de manera que estén más cercanos a los que tengan
características comunes.
Según el objetivo que tenga la realización del análisis los algoritmos se
pueden clasificar como algoritmos supervisados, que predicen un dato
desconocido inicialmente a partir de otros datos que son de conocimiento previo. Y
los algoritmos no supervisados, los cuales descubren patrones y tendencias que
se presentan los datos.
 Extracción de reglas de asociación
La extracción de reglas de asociación como técnica de minería de datos
persigue la inferencia de silogismos del tipo si…/entonce a partir de conjuntos de
registros. Esta búsqueda de regularidades nos permite discriminar y conocer mejor
a una muestra, y establecer qué atributo o combinación de atributos es probable
que traiga consigo una determinada consecuencia.
 Redes bayesianas
Las redes bayesianas son representaciones gráficas de relaciones de
dependencia probabilística entre distintas variables. Sirven para dar solución tanto
a problemas descriptivos como predictivos. Entre sus aplicaciones se incluyen el
diagnóstico médico o el cálculo del riesgo en el sector financiero y asegurador.
 Regresión
La regresión como técnica de minería de datos toma como punto de partida
una serie histórica para, a partir de ella, predecir qué sucederá a continuación. De
manera resumida, podemos decir que, a través de este método, se localizan
regularidades dentro de los datos que permiten trazar una línea de evolución
extrapolable al futuro.
5. ¿Qué es Datawarehouse?
Es una base de datos corporativa que se caracteriza por integrar y depurar
información de una o más fuentes distintas, para luego procesarla permitiendo su
análisis desde infinidad de perspectivas y con grandes velocidades de respuesta.
La creación de un Datawarehouse representa en la mayoría de las ocasiones el
primer paso, desde el punto de vista técnico, para implantar una solución completa
y fiable de Business Intelligence.

La ventaja principal de este tipo de bases de datos radica en las estructuras


en las que se almacena la información (modelos de tablas en estrella, en copo de
nieve, cubos relacionales, etc). Este tipo de persistencia de la información es
homogénea y fiable, y permite la consulta y el tratamiento jerarquizado de la
misma (siempre en un entorno diferente a los sistemas operacionales).
6. Concepto de ACID.
Es un conjunto de características o propiedades que garantizan que las
transacciones en una base de datos son fiables. En el contexto de bases de datos,
una transacción es una única operación sobre los datos.
Propiedades ACID
 Atomicidad:
Cualquier cambio de estado
que produce una transacción es
atómico. Es decir, ocurren todos o no
ocurre ninguno. En otras palabras, esta propiedad asegura que una operación se
realiza o no se realiza, por lo tanto no puede quedar el sistema a medias.
 Consistencia:
Propiedad que asegura que una transacción no romperá con la integridad
de una base de datos, pues respeta todas las reglas y directrices de ésta.
 Aislamiento:
Propiedad que asegura que no se afectarán entre sí las transacciones. En
otras palabras, dos o más transacciones sobre los mismos datos no generarán un
problema.
 Durabilidad:
Propiedad que asegura la persistencia de una transacción, es decir, una
vez que la transacción quedó aceptada no podrá deshacerse aunque falle el
sistema.
7. Consultas Multitablas
Las consultas multitablas llamadas así porque están basadas en más de
una tabla.
El SQL de Microsoft Jet 4.x soporta dos grupos de consultas multitablas:
 la unión de tablas
 la composición de tablas
La unión de tablas
Esta operación se utiliza cuando tenemos dos tablas con las mismas
columnas y queremos obtener una nueva tabla con lasfilas de la primera y las filas
de la segunda. En este caso la tabla resultante tiene las mismas columnas que la
primera tabla
Por ejemplo tenemos una tabla de libros nuevos y una tabla de libros
antiguos y queremos una lista con todos los libros que tenemos. En este caso las
dos tablas tienen las mismas columnas, lo único que varía son las filas, además
queremos obtener una lista de libros con las filas que están tanto en libros nuevos
como las que están en libros antiguos, en este caso utilizaremos este tipo de
operación.
Cuando hablamos de tablas pueden ser tablas reales almacenadas en la
base de datos o tablas lógicas, esto nos permite utilizar la operación con más
frecuencia ya que pocas veces tenemos en una base de datos tablas idénticas en
cuanto a columnas. El resultado es siempre una tabla lógica.
Por ejemplo queremos en un sólo listado los productos cuyas existencias
sean iguales a cero y también los productos que aparecen en pedidos del año 90.
En este caso tenemos unos productos en la tabla de productos y los otros en la
tabla de pedidos, las tablas no tienen las mismas columnas no se puede hacer
una unión de ellas pero lo que interesa realmente es el identificador del producto
(idfab,idproducto), luego por una parte sacamos los códigos de los productos con
existencias cero, por otra parte los códigos de los productos que aparecen en
pedidos del año 90, y luego unimos estas dos tablas lógicas.
El operador que permite realizar esta operación es el operador UNION.

La composición de tablas
La composición de tablas consiste en concatenar filas de una tabla con filas
de otra. En este caso obtenemos una tabla con lascolumnas de la primera tabla
unidas a las columnas de la segunda tabla, y las filas de la tabla resultante son
concatenacionesde filas de la primera tabla con filas de la segunda tabla.
El ejemplo anterior quedaría de la siguiente forma con la composición:
A diferencia de la unión la composición permite obtener una fila con datos
de las dos tablas, esto es muy útil cuando queremos visualizar filas cuyos datos se
encuentran en dos tablas.
Por ejemplo queremos listar los pedidos con el nombre del representante
que ha hecho el pedido, pues los datos del pedido los tenemos en la tabla de
pedidos pero el nombre del representante está en la tabla de empleados y además
queremos que aparezcan en la misma línea; en este caso necesitamos componer
las dos tablas.

Existen distintos tipos de composición, aprenderemos a utilizarlos todos y a


elegir el tipo más apropiado a cada caso.
Los tipos de composición de tablas son:
 El producto cartesiano
 El INNER JOIN
 El LEFT / RIGHT JOIN
El producto cartesiano
El producto cartesiano es un tipo de composición de tablas, aplicando el
producto cartesiano a dos tablas se obtiene una tabla con las columnas de la
primera tabla unidas a las columnas de la segunda tabla, y las filas de la tabla
resultante son todas las posibles concatenaciones de filas de la primera tabla con
filas de la segunda tabla.
La sintaxis es la siguiente:

 El producto cartesiano se indica poniendo en la FROM las tablas que


queremos componer separadas por comas, podemos obtener así el
producto cartesiano de dos, tres, o más tablas.
 nbtabla puede ser un nombre de tabla o un nombre de consulta. Si todas
las tablas están en una base de datos externa, añadiremos la cláusula IN
basedatosexterna después de la última tabla. Pero para mejorar el
rendimiento y facilitar el uso, se recomienda utilizar una tabla vinculada en
lugar de la cláusula IN.
 Hay que tener en cuenta que el producto cartesiano obtiene todas las
posibles combinaciones de filas por lo tanto si tenemos dos tablas de 100
registros cada una, el resultado tendrá 100x100 filas, si el producto lo
hacemos de estas dos tablas con una tercera de 20 filas, el resultado
tendrá 200.000 filas (100x100x20) y estamos hablando de tablas pequeñas.
Se ve claramente que el producto cartesiano es una operación costosa
sobre todo si operamos con más de dos tablas o con tablas voluminosas.
 Se puede componer una tabla consigo misma, en este caso es obligatorio
utilizar un nombre de alias por lo menos para una de las dos. Por ejemplo:
SELECT * FROM empleados, empleados emp.
En este ejemplo obtenemos el producto cartesiano de la tabla de
empleados con ella misma. Todas las posibles combinaciones de empleados con
empleados
 Para ver cómo funciona el producto cartesiano cogemos las consultas
[existencias cero] y [pedidos 90] creadas en la página anterior, y creamos
una consulta que halle el producto cartesiano de las dos.
SELECT *
FROM [existencias cero], [pedidos 90]
Obtenemos la siguiente tabla:

Se observa que tenemos las dos filas de la primera consulta combinadas


con las dos filas de la segunda.
 Esta operación no es de las más utilizadas, normalmente cuando queremos
componer dos tablas es para añadir a las filas de una tabla, una fila de la
otra tabla, por ejemplo añadir a los pedidos los datos del cliente
correspondiente, o los datos del representante, esto equivaldría a un
producto cartesiano con una selección de filas:
SELECT *
FROM pedidos, clientes
WHERE pedidos.clie=clientes.numclie
Combinamos todos los pedidos con todos los clientes pero luego
seleccionamos los que cumplan que el código de cliente de la tabla de pedidos
sea igual al código de cliente de la tabla de clientes, por lo tanto nos quedamos
con los pedidos combinados con los datos del cliente correspondiente.
 Las columnas que aparecen en la cláusula WHERE de nuestra consulta
anterior se denominan columnas de emparejamiento ya que permiten
emparejar las filas de las dos tablas. Las columnas de emparejamiento no
tienen por qué estar incluidas en la lista de selección.
 Normalmente emparejamos tablas que están relacionadas entre sí y una de
las columnas de emparejamiento es clave principal, pues en este caso,
cuando una de las columnas de emparejamiento tienen un índice definido
es más eficiente utilizar otro tipo de composición, el INNER JOIN.
El InnerJoin
Es otro tipo de composición de tablas, permite emparejar filas de distintas
tablas de forma más eficiente que con el producto cartesiano cuando una de las
columnas de emparejamiento está indexada. Ya que en vez de hacer el producto
cartesiano completo y luego seleccionar la filas que cumplen la condición de
emparejamiento, para cada fila de una de las tablas busca directamente en la otra
tabla las filas que cumplen la condición, con lo cual se emparejan sólo las filas que
luego aparecen en el resultado.
La sintaxis es la siguiente:

Ejemplo:
SELECT *
FROM pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie
 tabla1 y tabla2 son especificaciones de tabla (nombre de tabla con alias o
no, nombre de consulta guardada), de las tablas cuyos registros se van a
combinar.
Pueden ser las dos la misma tabla, en este caso es obligatorio definir al menos
un alias de tabla.
 col1, col2 son las columnas de emparejamiento.
Observar que dentro de la cláusula ON los nombres de columna deben ser
nombres cualificados (lleva delante el nombre de la tabla y un punto).
 Las columnas de emparejamiento deben contener la misma clase de datos,
las dos de tipo texto, de tipo fecha etc... los campos numéricos deben ser
de tipos similares. Por ejemplo, se puede combinar campos AutoNumérico
y Long puesto que son tipos similares, sin embargo, no se puede combinar
campos de tipo Simple y Doble. Además las columnas no pueden ser de
tipo Memo ni OLE.
 comp representa cualquier operador de comparación (=, <, >, <=, >=, o <>)
y se utiliza para establecer la condición de emparejamiento.
Se pueden definir varias condiciones de emparejamiento unidas por los
operadores AND y OR poniendo cada condición entre paréntesis. Ejemplo:
SELECT *
FROM pedidos INNER JOIN productos ON (pedidos.fab = productos.idfab) AND
(pedidos.producto = productos.idproducto)
 Se pueden combinar más de dos tablas
En este caso hay que sustituir en la sintaxis una tabla por un INNER JOIN
completo.
Por ejemplo:
SELECT *
FROM (pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie) INNER
JOIN empleados ON pedidos.rep = empleados.numemp
En vez de tabla1 hemos escrito un INNER JOIN completo, también
podemos escribir:
SELECT *
FROM clientes INNER JOIN (pedidos INNER JOIN empleados ON pedidos.rep =
empleados.numemp) ON pedidos.clie = clientes.numclie
En este caso hemos sustituido tabla2 por un INNER JOIN completo.
El Left Join y Right Join
El LEFT JOIN y RIGHT JOIN son otro tipo de composición de tablas,
también denominada composición externa. Son una extensión del INNER JOIN.
Las composiciones vistas hasta ahora (el producto cartesiano y el INNER
JOIN) son composiciones internas ya que todos los valores de las filas del
resultado son valores que están en las tablas que se combinan.
Con una composición interna sólo se obtienen las filas que tienen al menos
una fila de la otra tabla que cumpla la condición, veamos un ejemplo:
Queremos combinar los empleados con las oficinas para saber la ciudad de
la oficina donde trabaja cada empleado, si utilizamos un producto cartesiano
tenemos:
SELECT empleados.*, ciudad
FROM empleados, oficinas
WHERE empleados.oficina = oficinas.oficina
Observar que hemos cualificado el nombre de columna oficina ya que ese
nombre aparece en las dos tablas de la FROM.
Con esta sentencia los empleados que no tienen una oficina asignada (un valor
nulo en el campo oficina de la tabla empleados) no aparecen en el resultado ya
que la condición empleados.oficina = oficinas.oficina será siempre nula para esos
empleados.
Si utilizamos el INNER JOIN:
SELECT empleados.*, ciudad
FROM empleados INNER JOIN oficinas ON empleados.oficina = oficinas.oficina
Nos pasa lo mismo, el empleado 110 tiene un valor nulo en el campo oficina
y no aparecerá en el resultado.
Pues en los casos en que queremos que también aparezcan las filas que no
tienen una fila coincidente en la otra tabla, utilizaremos el LEFT o RIGHT JOIN.
 La sintaxis del LEFT JOIN es la siguiente:

La descripción de la sintaxis es la misma que la del INNER JOIN (ver


página anterior), lo único que cambia es la palabra INNER por LEFT (izquierda en
inglés).
Esta operación consiste en añadir al resultado del INNER JOIN las filas de
la tabla de la izquierda que no tienen correspondencia en la otra tabla, y rellenar
en esas filas los campos de la tabla de la derecha con valores nulos.
Ejemplo:
SELECT *
FROM empleados LEFT JOIN oficinas ON empleados.oficina = oficinas.oficina
Con el ejemplo anterior obtenemos una lista de los empleados con los datos
de su oficina, y el empleado 110 que no tiene oficina aparece con sus datos
normales y los datos de su oficina a nulos.
 La sintaxis del RIGHT JOIN es la siguiente:

La sintaxis es la misma que la del INNER JOIN (ver página anterior), lo


único que cambia es la palabra INNER por RIGHT (derecha en inglés).
Esta operación consiste en añadir al resultado del INNER JOIN las filas de
la tabla de la derecha que no tienen correspondencia en la otra tabla, y rellenar en
esas filas los campos de la tabla de la izquierda con valores nulos.
Ejemplo:
SELECT *
FROM empleados RIGHT JOIN oficinas ON empleados.oficina = oficinas.oficina
Con el ejemplo anterior obtenemos una lista de los empleados con los datos
de su oficina, y además aparece una fila por cada oficina que no está asignada a
ningún empleado con los datos del empleado a nulos.
 Una operación LEFT JOIN o RIGHT JOIN se puede anidar dentro de una
operación INNER JOIN, pero una operación INNER JOIN no se puede
anidar dentro de LEFT JOIN o RIGHT JOIN. Los anidamientos de JOIN de
distinta naturaleza no funcionan siempre, a veces depende del orden en
que colocamos las tablas, en estos casos lo mejor es probar y si no permite
el anudamiento, cambiar el orden de las tablas ( y por tanto de los JOINs)
dentro de la cláusula FROM.
Por ejemplo podemos tener:
SELECT *
FROM clientes INNER JOIN (empleados LEFT JOIN oficinas ON
empleados.oficina = oficinas.oficina) ON clientes.repclie = empleados.numclie
Combinamos empleados con oficinas para obtener los datos de la oficina de
cada empleado, y luego añadimos los clientes de cada representante, así
obtenemos los clientes que tienen un representante asignado y los datos de la
oficina del representante asignado.
Si hubiéramos puesto INNER en vez de LEFT no saldrían los clientes que
tienen el empleado 110 (porque no tiene oficina y por tanto no aparece en el
resultado del LEFT JOIN y por tanto no entrará en el cálculo del INNER JOIN con
clientes).
8. Consultas de unión externas e internas.
Consultas de Unión Internas.
Las vinculaciones entre tablas se realizan mediante la cláusula INNER que
combina registros de dos tablas siempre que haya concordancia de valores en un
campo común.
Su sintaxis es:
SELECT campos FROM tb1 INNER JOIN tb2
ON tb1.campo1 comp tb2.campo2
En donde:
tb1, tb2:Son los nombres de las tablas desde las que se combinan los registros.
campo1, campo2: Son los nombres de los campos que se combinan. Si noson
numéricos, los campos deben ser del mismo tipo de datos y contener el mismo
tipo de datos, pero no tienen que tener el mismo nombre.
Comp: Es cualquier operador de comparación relacional: =, <, >, <=, >=, o <>.
Se puede utilizar una operación INNER JOIN en cualquier cláusula FROM.
Esto crea una combinaciónpor equivalencia, conocida también como unión interna.
Las combinaciones Equi son las más comunes; éstas combinan los registros de
dos tablas siempre que haya concordancia de valores en un campo común a
ambas tablas. Se puede utilizar INNER JOINcon las tablas Departamentos y
Empleados para seleccionar todos los empleados de cada departamento. Por el
contrario, para seleccionar todos losdepartamentos (incluso si alguno de ellos no
tiene ningún empleado asignado) se emplea LEFT JOIN o todos los empleados
(incluso si alguno no está asignado a ningún departamento), en este caso RIGHT
JOIN.
Si se intenta combinar campos que contengan datos Memo u Objeto OLE,
se produce un error. Se pueden combinar dos campos numéricos cualesquiera,
incluso si son de diferente tipo de datos. Por ejemplo, puede combinar un campo
Numérico para el que la propiedad Sizede su objeto Field está establecida como
Entero, y un campo Contador.
El ejemplo siguiente muestra cómo podría combinar las tablas Categorías y
Productos basándose en el campo IDCategoria:
SELECT Nombre_Categoría, NombreProducto
FROM Categorias INNER JOIN Productos
ON Categorias.IDCategoria = Productos.IDCategoria;
En el ejemplo anterior, IDCategoria es el campo combinado, pero no está
incluido en la salida de la consultaya que no está incluido en la instrucción
SELECT.
Para incluir el campo combinado, incluir el nombre del campo en la
instrucción SELECT, en este caso, Categorias.IDCategoria.
También se pueden enlazar varias cláusulas ON en una instrucción JOIN,
utilizando la sintaxis siguiente:
SELECT campos
FROM tabla1 INNER JOIN tabla2
ON tb1.campo1 comp tb2.campo1 AND
ON tb1.campo2 comp tb2.campo2) OR
ON tb1.campo3 comp tb2.campo3)];
También puede anidar instrucciones JOIN utilizando la siguiente sintaxis:
SELECT campos
FROM tb1 INNER JOIN
(tb2 INNER JOIN [( ]tb3
[INNER JOIN [( ]tablax [INNER JOIN ...)]
ON tb3.campo3 comp tbx.campox)]
ON tb2.campo2 comp tb3.campo3)
ON tb1.campo1 comp tb2.campo2;
Un LEFT JOIN o un RIGHT JOIN puede anidarse dentro de un INNER
JOIN,pero un INNER JOIN no puede anidarse dentro de un LEFT JOIN o un
RIGHT JOIN.
Ejemplo:
SELECT DISTINCTROW Sum([Precio unidad]
* [Cantidad]) AS [Ventas],
[Nombre] & " " & [Apellidos] AS [Nombre completo] FROM
[Detalles de pedidos],
Pedidos, Empleados, Pedidos INNER JOIN [Detalles de pedidos] ON Pedidos.
[ID de pedido] = [Detalles de pedidos].[ID de pedido], Empleados INNER JOIN
Pedidos ON Empleados.[ID de empleado] = Pedidos.[ID de empleado] GROUP BY
[Nombre] & " " & [Apellidos];
Crea dos combinaciones equivalentes: unaentre las tablas Detalles de
pedidos y Pedidos, y la otra entre las tablas Pedidos y Empleados. Esto es
necesario ya que la tablaEmpleados no contiene datos de ventas y la tabla
Detallesde pedidos no contiene datos de los empleados. La consulta produce una
lista de empleados y sus ventas totales.
Si empleamos la cláusula INNER en la consulta se seleccionarán sólo
aquellos registros de la tabla de la que hayamos escrito a la izquierda de INNER
JOIN que contengan al menos un registro de la tabla que hayamos escrito a la
derecha. Para solucionar esto tenemos dos cláusulas que sustituyen a la palabra
clave INNER, estas cláusulas son LEFT y RIGHT. LEFT toma todos los registros
de la tabla de la izquierda aunque no tengan ningúnregistro en la tabla de la
izquierda. RIGHT realiza la misma operación pero al contrario, toma todos los
registrosde la tabla de la derecha aunque no tenga ningún registro en la tabla de la
izquierda.
Consultas de Unión Externas
Se utiliza la operación UNION para crear una consulta de unión,
combinando los resultados de dos o más consultas o tablas independientes. Su
sintaxis es:
[TABLE] consulta1 UNION [ALL] [TABLE]
consulta2 [UNION [ALL] [TABLE] consultan[ ... ]]
En donde:
consulta1, consulta2, consultan: Son instrucciones SELECT, el nombre de una
consulta almacenada o el nombre de una tabla almacenada precedido por la
palabra clave TABLE.
Puede combinar los resultados de dos omás consultas, tablas e
instrucciones SELECT, en cualquier orden, en una única operación UNION.
El ejemplo siguiente combina una tabla existente llamada Nuevas Cuentas
y una instrucción SELECT:
TABLE [NuevasCuentas] UNION ALL SELECT
* FROM Clientes
WHERE [Cantidad pedidos] > 1000;
Si no se indica lo contrario, no se devuelvenregistros duplicados cuando se
utiliza la operación UNION, no obstante puede incluir el predicado ALL para
asegurar que se devuelven todos los registros. Esto hace que la consulta se
ejecute más rápidamente. Todas las consultas en una operación UNION deben
pedir el mismo número de campos, no obstante los campos no tienen por qué
tener el mismo tamaño o el mismo tipo de datos.
Se puede utilizar una cláusula GROUP BY y/o HAVING en cada argumento
consulta para agrupar los datos devueltos. Puede utilizar una cláusula ORDER BY
alfinal del último argumento consulta para visualizar los datos devueltosen un
orden específico.
SELECT [Nombre de compañía],
Ciudad FROM Proveedores WHERE
País = 'Brasil' UNION SELECT [Nombre de compañía],
Ciudad FROM Clientes
WHERE País = "Brasil"
Recupera los nombres y las ciudades detodos proveedores y clientes de
Brasil.
SELECT [Nombre de compañía],
Ciudad FROM Proveedores WHERE País = 'Brasil'
UNION SELECT [Nombre de compañía], Ciudad FROM Clientes WHERE
País = 'Brasil' ORDER BY Ciudad
Recupera los nombres y las ciudades detodos proveedores y clientes
radicados en Brasil, ordenados por el nombre de la ciudad.
SELECT [Nombre de compañía],
Ciudad FROM Proveedores WHERE País = 'Brasil'
UNION SELECT [Nombre de compañía], Ciudad FROM Clientes WHERE
País = 'Brasil' UNION SELECT [Apellidos], Ciudad FROM Empleados WHERE
Región = 'América del Sur
Recupera los nombres y las ciudades detodos los proveedores y clientes de
Brasil y los apellidos y las ciudades de todos los empleados de América del Sur.
TABLE [Lista de clientes] UNION TABLE
[Lista de proveedores]
Recupera los nombres y códigosde todos los proveedores y clientes.
Conclusión

Aparte de las Bases de Datos Relacional existe también las Bases de Datos Orientadas
Objetos, este tipo de Bases de Datos implementan otros métodos para hacer de cierto
modo más sencilla las relaciones entre las tablas, como lo son la herencia, la cual
consiste en definir una entidad padre que contendrá los atributos principales que se le van
a heredar a las otras entidades que dependerán de esta entidad

El uso de las Bases de Datos tienen una gran ventaja y utilidad hoy en día, pues facilitan
la manipulación de la información, nos permiten realizar algunas consultas detalladas de
esta información y nos permiten tomar decisiones precisas.
Bibliografía
http://www.maestrosdelweb.com/tutsql9/
http://www.maestrosdelweb.com/tutsql10/
https://www.datahack.es/blog/big-data/tecnicas-mineria-datos/
https://www.netec.com/post/mineria-de-datos-que-es-importancia-y-tecnicas-de-
su-implementacion
https://www.sinnexus.com/business_intelligence/datawarehouse.aspx
http://katyygaby.blogspot.com/p/consultas-multitabla.html
https://www.aulaclic.es/sql/index.htm
https://blog.powerdata.es/el-valor-de-la-gestion-de-datos/bid/406549/qu-es-el-
sistema-manejador-de-bases-de-datos
https://altitudetvm.com/es/database/662-6-komponen-dbms-beserta-fungsinya-
masing-masing-dibahas-lengkap.html
https://ikastaroak.birt.eus/edu/argitalpen/backupa/20200331/1920k/es/ASIR/ASGB
D/ASGBD05/es_ASIR_ASGBD05_Contenidos/website_2_tcnicas_de_fragmentaci
n.html
https://www.um.es/geograf/sigmur/sigpdf/temario_9.pdf
https://blog.powerdata.es/el-valor-de-la-gestion-de-datos/beneficios-de-la-
replicacion-de-base-de-datos
https://es.slideshare.net/joseguadalupecouohdzul/invetigacion-base-de-datos-dis-
para-subir

También podría gustarte