DATOS
OPTIMIZA TU BD
Logra mejorar el rendimiento de tus consultas con los mejores tips
COMIENZA A SIMPLIFICAR TU BD
Usa las mejores técnicas para simplificar tu base de datos
TOP
SENTENCIAS
JOIN www.basededatos.com
Conoce las tendencias y el uso de las sentencias joins
JUN 2023
Tabla de Contenido
¿
La ciencia de hoy es la tecnología del mañana BASE DE DATOS Sección 1 Sección 2
Qué es la normalización? Características de la normalización Razones para implementar la normalización Procedimiento a seguir para aplicar la normalización Formas normales de la normalización Desnormalización
¿
Qué son las sentencias joins? Características de las sentencias joins Ventajas de las joins Desventajas de las joins Tipos de sentencias joins 01 01 01 02 02 04 05 05 06 07 07 Sección 3 Ejercicio de Normalización Ejercicio de Sentencias Joins 10 12 Sección 4 Entretenimiento 18
NORMALIZACIÓN
El proceso de normalización consiste en verificar el cumplimiento de ciertas reglas que aseguran la eliminación de redundancias e inconsistencias, con el objetivo de conseguir tablas con una estructura óptima y eficaz. Esto se hace mediante la aplicación de ciertos procedimientos y en ocasiones se traduce en la separación de los datos en diferentes relaciones
Cada tabla debe tener su nombre único.
No puede haber dos filas iguales. No se permiten los datos duplicados.
Todos los datos en una columna deben ser del mismo tipo
CARACTERÍSTICAS RAZONES PARA IMPLEMENTARLAS
Estructurar los datos de forma que se puedan representar las relaciones pertinentes entre los datos.
Permitir la recuperación sencilla de los datos en respuesta a las solicitudes de consultas y reportes
Simplificar el mantenimiento de los datos actualizándolos, insertándolos y borrándolos.
Reducir la necesidad de reestructurar o reorganizar los datos cuando surjan nuevas aplicaciones
Evitar la redundancia de los datos.
Proteger la integridad de los datos
No abuses de la normalización, ya que esta crea más tablas al avanzar hacia formas normales más altas y puede llegar a afectar el rendimiento de las consultas
1
PROCEDIMIENTO A SEGUIR PARA APLICAR LA NORMALIZACIÓN
Identifica una clave primaria para la entidad sin normalizar (antes de iniciar el proceso).
Identifica y resuelve las violaciones a la primera forma normal (1FN), removiendo todos los grupos repetitivos
Identifica y resuelve las violaciones a la segunda forma normal (2FN), asegurándote de que cada atributo que no sea clave dependa de la totalidad de la clave primaria.
Identifica y resuelve las violaciones a la tercera forma normal (3FN), asegurándote de que cada atributo no clave no dependa de otro atributo que no sea la clave primaria.
FORMAS DE LA NORMALIZACIÓN DE RELACIONES
L a s f o r m a s n o r m a l e s s o n u s a d a s p a r a m e j o r a r e l d e s e m p e ñ o d e u n a b a s e d e d a t o s , c o n e l f i n d e e v i t a r r e d u n d a n c i a e n l a i n f o r m a c i ó n q u e c o n t i e n e ; y g e n e r a n d o c o n d i c i o n e s p a r a u n m e j o r d i s e ñ o a t r a v é s d e l a s i m p l i f i c a c i ó n a c u m u l a t i v a d e l a s d e p e n d e n c i a s e n t r e c o l u m n a s
2
Primera forma normal (1FN):
• Todos los atributos, valores almacenados en las columnas, deben ser indivisibles
• No deben existir grupos de valores repetidos.
• Los Campos no clave deben identificarse por la clave (Dependencia Funcional)
Segunda forma normal (2FN):
• Está en 1FN.
• No deben existir dependencias funcionales parciales(Todos los atributos deben de ser dependientes solo de la llave primaria).
Cabe recalcar que una tabla 1FN automáticamente está en 2FN si su clave primaria está basada solamente en un atributo simple.
Como norma general debemos volver a aplicar la primera y segunda forma normal, cuando: La primera sólo en el caso de que hallamos añadido nuevas columnas, la segunda siempre.
Tercera forma normal (3 FN):
• Está en 2FN
• No deben existir dependencias transitivas (las columnas que no forman parte de la clave primaria deben depender sólo de la clave, nunca de otra columna no clave).
Forma Normal de Boyce - Codd:
• La tabla se encuentra en FNBC si cada determinante, atributo que determina completamente a otro, es clave candidata Es decir, que una relación está en FNBC si cualquier atributo sólo facilita información sobre claves candidatas, y no sobre atributos que no formen parte de ninguna clave candidata.
Formalmente, un esquema de ón está en FNBC, si y sólo si, toda dependencia funcional en , se cumple que: es lave o clave Esto significa no deben existir elaciones entre atributos de las claves candidatas ta forma, todo esquema que e FNBC, está además en sin embargo, no todo ma que cumple con 3FN, n FNBC.
3
FORMAS NORMALES DE ALTO NIVEL
Cuarta forma normal (4 FN):
• Una tabla se encuentra en 4FN si, y sólo si, para cada una de sus dependencias múltiples no funcionales X->->Y, siendo X una super-clave que, X es o una clave candidata o un conjunto de claves primarias. En otras palabras, la cuarta forma normal (4FN) tiene por objetivo eliminar las dependencias multivaluadas.
Quinta forma normal (5 FN):
• Una tabla se encuentra en 5FN si:
• La tabla esta en 4FN
• No existen relaciones de dependencias no triviales que no siguen los criterios de las claves Es decir, una tabla que se encuentra en la 4FN se dice que esta en la 5FN si, y sólo si, cada relación de dependencia se encuentra definida por las claves candidatas En otras palabras, las únicas dependencias que existen son las denominadas dependencias de Join de una tabla con sus proyecciones, relacionándose entre sí mediante la clave primaria, o cualquier clave alternativa.
DESNORMALIZACIÓN DE LAS RELACIONES
La desnormalización es la duplicación intencionada de columnas en varias tablas, lo cual aumenta la redundancia de datos. Esto se hace para mejorar el rendimiento, ya que las reglas de normalización no consideran el rendimiento.
4
SENTENCIAS JOINS
Las operaciones JOIN son un conjunto de cláusulas SQL utilizadas para combinar filas de dos o más tablas relacionadas basándose en un atributo o columna compartida. Por ende, permiten recuperar datos de múltiples tablas como si vinieran de una sola tabla
CARACTERÍSTICAS
El principio de las sentencias SQL JOIN se basa en la operación homónima del álgebra relacional, una combinación entre producto cartesiano y selección Mediante la selección del tipo de JOIN y de la definición de una condición de selección, el usuario puede establecer qué datos de las tablas originales aparecerán en la tabla de resultados
Las sentencias Joins se caracterizan por estar enfocados en la combinación de dos aspectos del álgebra relacional para poder funcionar:
Producto cartesiano: es una operación de la teoría de conjuntos en la que dos o más conjuntos se combinan entre sí.
Selección: es la operación del álgebra relacional que permite seleccionar unas tuplas determinadas de un conjunto inicial y mostrarlas como conjunto de resultados
5
VENTAJAS
Obtener una visión completa de los datos: Al combinar información de tablas relacionadas, nos permite obtener una visión completa y coherente de los datos. Podemos acceder a múltiples atributos y propiedades de diferentes tablas en una sola consulta, lo que nos brinda información valiosa y detallada para nuestros análisis y decisiones.
Realizar consultas más sofisticadas: Nos permite realizar consultas más complejas y sofisticadas en pudiendo aplicar filtros, condiciones y criterios específicos para seleccionar y combinar los registros que nos interesan. Esto nos brinda flexibilidad y precisión en nuestras consultas, lo que resulta fundamental para obtener resultados específicos y relevantes
Relacionar y vincular información relevante: Nos permite establecer relaciones y vínculos entre datos relacionados Podemos acceder a atributos y propiedades relacionadas de diferentes tablas y utilizar esta información para generar informes, realizar análisis y tomar decisiones fundamentadas
Optimizar el rendimiento de las consultas: Al combinar datos en una sola consulta en lugar de realizar múltiples consultas separadas, reducimos la carga en el servidor y mejoramos la eficiencia de nuestras operaciones Esto es especialmente importante cuando trabajamos con grandes volúmenes de datos o consultas complejas.
6
Desventajas de las sentencias JOIN
Rendimiento: En bases de datos grandes con muchas tablas y relaciones complejas, el uso excesivo de sentencias JOIN puede afectar el rendimiento de las consultas. Una mala implementación o falta de índices adecuados puede provocar un tiempo de ejecución más lento
Mayor complejidad de consulta: Las sentencias JOIN pueden requerir una comprensión sólida de las relaciones entre tablas y cómo combinar los datos correctamente. Consultas complejas con múltiples JOINs pueden ser difíciles de entender y mantener
TIPOS
I N N E R J O I N : D e v u e l v e ú n i c a m e n t e l o s r e g i s t r o s q u e t i e n e n a l m e n o s u n a c o i n c i d e n c i a e n a m b a s t a b l a s q u e s e e s t á n c o m b i n a n d o .
S E L E C T n o m b r e C o l u m n a ( s )
F R O M t a b l a 1
I N N E R J O I N t a b l a 2
O N
t a b l a 1 . n o m b r e C o l u m n a = t a b l e 2 . n o m b r e C o l u m n a ;
7
L E F T J O I N : D e v u e l v e t o d o s l o s r e g i s t r o s d e l a p r i m e r a t a b l a
( t a b l a i z q u i e r d a ) y l o s r e g i s t r o s
c o i n c i d e n t e s d e l a s e g u n d a t a b l a
(
t a b l a d e r e c h a ) . S i n o h a y
c o i n c i d e n c i a s e n l a s e g u n d a
t a b l a , l o s v a l o r e s d e e s a s
c o l u m n a s s e r á n N U L L .
S E L E C T n o m b r e C o l u m n a ( s )
F R O M t a b l a 1
L E F T J O I N t a b l a 2
O N
t a b l a 1 n o m b r e C o l u m n a = t a b l a 2 n o m b r e C o l u m n a ;
R I G H T J O I N : F u n c i o n a d e m a n e r a s i m i l a r a L E F T J O I N , p e r o d e v u e l v e
t o d o s l o s r e g i s t r o s d e l a s e g u n d a
t a b l a ( t a b l a d e r e c h a ) y l o s r e g i s t r o s c o i n c i d e n t e s d e l a p r i m e r a t a b l a ( t a b l a i z q u i e r d a ) S i n o h a y c o i n c i d e n c i a s e n l a p r i m e r a t a b l a , l o s v a l o r e s d e e s a s
c o l u m n a s s e r á n N U L L .
S E L E C T n o m b r e C o l u m n a ( s )
F R O M t a b l a 1
R I G H T J O I N t a b l a 2
O N
t a b l a 1 . n o m b r e C o l u m n a = t a b l a 2 . n o
m b r e C o l u m n a ;
F U L L J O I N : d e v u e l v e f i l a s c u a n d o h a y c o i n c i d e n c i a s e n u n a , a m b a s o n i n g u n a t a b l a .
S E L E C T n o m b r e C o l u m n a ( s )
F R O M t a b l a 1
F U L L J O I N t a b l a 2
O N
t a b l a 1 n o m b r e C o l u m n a = t a b l a 2 n o
m b r e C o l u m n a ;
W H E R E c o n d i t i o n ;
8
N A T U R A L J O I N e s u n t i p o e s p e c i a l d e J O I N q u e j u n t a d o s t a b l a s u s a n d o c o l u m n a s c o n e l m i s m o n o m b r e . A s i m i s m o , b u s c a a u t o m á t i c a m e n t e c o l u m n a s c o n e l m i s m o n o m b r e e n t r e d o s t a b l a s , n o r e q u i e r e e s p e c i f i c a r l a s c o l u m n a s e n l a c l á u s u l a O N y e s u n a f o r m a s i m p l i f i c a d a d e h a c e r J O I N S .
S E L E C T *
F R O M t a b l a 1
N A T U R A L J O I N t a b l a 2 ;
S E L F J O I N c o n s i s t e e n u n a
c o n s u l t a e n l a q u e u n a
t a b l a s e u n e c o n s i g o m i s m a . P o r l o q u e , e s ú t i l c u a n d o l a t a b l a t i e n e u n a c o l u m n a q u e h a c e r e f e r e n c i a a s í m i s m a , p e r m i t i e n d o v i n c u l a r l o s r e g i s t r o s d e l a t a b l a
S E L E C T c o l u m n n a m e ( s )
F R O M t a b l e 1 T 1 , t a b l e 1 T 2
W H E R E c o n d i t i o n ;
C R O S S J O I N g e n e r a t o d a s l a s c o m b i n a c i o n e s p o s i b l e s e n t r e d o s c o n j u n t o s d e d a t o s , s i n a p l i c a r n i n g u n a c o n d i c i ó n d e u n i ó n . C o m o r e s u l t a d o , e l n ú m e r o d e f i l a s e n e l r e s u l t a d o d e l c r o s s j o i n e s i g u a l a l p r o d u c t o d e l n ú m e r o d e f i l a s e n l a p r i m e r a t a b l a y e l n ú m e r o d e f i l a s e n l a s e g u n d a t a b l a .
S E L E C T c o l u m n a s
F R O M t a b l a 1
C R O S S J O I N t a b l a 2 ;
9
Ejercicio de Norm
Aplicar las reglas de normalizac
FACTURA DE COMPRA VENTA: L COLOMBIAN SYSTEMS lo ha con “Ingeniero Encargado” para siste facturación En la siguiente factu usted debe analizar toda la inform aplique el proceso de normalizació
Tercera Forma Normal. Se pide rea justificación detallada de cada uno conduzcan al resultado final
Factura( NUM FAC,FECHA FAC,NOM CLIENTE, DIR CLIENTE, RIF CLIENTE, CIUDAD CLIENTE, TELEF CLIENTE, CATEGORIA, COD PROD, DESP PROD, VAL UNIT, CANT PROD)
La 1era forma normal(1FN), prohibe los grupos repetidos en una tabla, por ende, queda de la siguiente forma, al dividir los datos en grupos ( repetidos (CATEGORIA, COD PROD, DESP PROD, VAL UNIT, CANT PROD)y no repetidos (NUM FAC,FECHA FAC,NOM CLIENTE, DIR CLIENTE, RIF CLIENTE, CIUDAD CLIENTE, TELEF CLIENTE,) ) y luego colocando esos mismo datos repetidos en una tabla aparte con la misma PK de la tabla original (base):
10
La 2da forma normal (2FN), implica que hay que eliminar cualquier columna no clave, que no dependa de la clave primaria de la tabla. Para hacer esto, se tiene que determinar cuales columnas no son clave y no dependan de la PK (CATEGORIA, COD PROD, DESP PROD, VAL UNIT), para luego eliminar esas columnas en la tabla que se detecten (Detalle Factura) y luego agregarlas nuevamente, pero en otra tabla (Producto) con su propia PK de la que si dependan. En este caso queda de la siguiente forma:
Factura( NUM _ FAC,FECHA FAC,NOM CLIENTE, DIR CLIENTE, RIF CLIENTE, CIUDAD CLIENTE, TELEF CLIENTE)
Detalle _ Factura( NUM _ FAC,COD PROD, CANT PROD)
Producto( COD _ PROD,CATEGORIA, DESP PROD, VAL UNIT)
La 3era forma normal(3FN), implica que hay que eliminar cualquier columna no clave que sea dependiente de otra columna no clave en una tabla Para lograr esto, se tiene que determinar las columnas que son dependientes de otra columna no clave (NOM CLIENTE, DIR CLIENTE, CIUDAD CLIENTE, TELEF CLIENTE), para así poder eliminarlas,y posteriormente agregarlas en una nueva tabla (Cliente), junto con la columna no clave de la cual son dependientes (RIF CLIENTE).
Cliente (RIF _ CLIENTE,NOM CLIENTE, DIR CLIENTE, CIUDAD CLIENTE, TELEF CLIENTE)
Factura( NUM _ FAC,FECHA FAC,RIF CLIENTE)
Detalle Factura( NUM FAC,COD PROD, CANT PROD)
Producto( COD _ PROD,CATEGORIA, DESP PROD, VAL UNIT)
11
Ejercicio de Sentencias Joins
Desarrollar Base de datos para El Control de Stock y Facturación de una Determinada Empresa. Con las Siguientes Tablas:
Tabla Estados (codest, nombre)
Tabla Ciudad (codciudad, nombre, codest)
Tabla clientes (codcli, nombre, dirección, codpostal, codciudad)
Tabla vendedores (codven, nombre, direccion, codpostal, codest, codjefe)
Tabla Articulos (codart, descrip, precio, stock, stock min )
Tabla facturas (codfac, fecha, codcli, codven, iva, descuento )
Tabla lineas fac( codfac, linea, cant, codart, precio, descuento )
12
Datos que contienen las tablas
13
Mostrar El Nombre de cada Ciudad
Junto al Estado donde Pertenece
14
Mostrar el código de la factura, la fecha y nombre del cliente destinatario de la factura
Mostrar el código de la factura, la fecha y nombre del vendedor
15
Mostrar Producto Cartesiano de la Tabla
Clientes y Vendedores
Mostrar el código de factura, el número de línea, el código del artículo, la descripción del artículo, y el número de unidades vendidas en dicha línea para todas las líneas de la factura cuyo código es 15
16
Mostrar Nombre del Vendedor y el Nombre del Estado en el que reside, para aquellos vendedores cuyo código se encuentre entre 100 y 200 inclusive.
Mostrar Código y fecha de cada factura junto al nombre del cliente y el nombre del vendedor de la factura
17
SOPA DE LETRAS
Base de datos Desnormalizar Joins MySql Normalizacion 1 2. 3. 4 5. 6 SelfJoin 7. Servidor 8. SqlServer 9 CrossJoin 10. Inner Join 18 11 Left Join 12. Natural Join 13. Right Join 14 Sentencia 15. Sql
las palabras
Encuentra
1. Permite combinar registros de una o más tablas en una base de datos
6 Aparato informático que almacena, distribuye y suministra información
8 Se usa para generar una combinación emparejada de cada fila de la primera tabla con cada fila de la segunda tabla
2. Recopilación organizada de información o datos estructurados
3. Se usa cuando los campos por los cuales se enlazan las tablas tienen el mismo nombre
4. Permite unir una tabla a sí misma
5. Proceso importante en el diseño de bases de datos 7. permiten a los usuarios realizar consultas, modificaciones, inserciones y procesos de eliminación de los datos que se hayan g
9. Devuelve todas las fila tabla de la derecha, se utilizan NULL
10 Se utiliza esta sentencia para unir las filas de una tablas con todas las filas de otra tabla
11 Comienza a seleccionar datos de la tabla de la derecha y a coincidir con las filas de la tabla de la izquierda
1 9 7 11 4 2 5 8 3 10 6
Vertical
Horizontal
19
Crucigrama Complete el crucigrama