Bases de datos ¿Qué son las restricciones o constraint?
Enviado por santiagot2003 • 7 de Diciembre de 2022 • Informe • 1.562 Palabras (7 Páginas) • 31 Visitas
[pic 1]
Bases de datos
MATERIA: Bases de datos
SEMANA 7
TEMAS SEMANA 7:
- Restricciones o constraint
- Joins entre tablas.
- Vistas.
- Triggers o disparadores.
¿Qué son las restricciones o constraint?
Son reglas o condiciones de obligado cumplimiento por las tuplas de las tablas de una base de datos. Cuando se construye una tabla en un sistema gestor de base de datos, al momento de crear las columnas también se deben crear sus restricciones.
[pic 2]Hay tres tipos principales de restricciones:
[pic 3]
Integridad de dominio: La integridad de dominio (o columna) especifica un conjunto de valores de datos que son válidos para una columna y determina si se permiten valores nulos.
Integridad de entidad: La integridad de entidad (o tabla) requiere que todas las filas de una tabla tengan un identificador exclusivo, conocido como clave principal o primaria (PK).
Integridad referencial (entre tablas). La integridad referencial asegura que siempre se mantienen las relaciones entre las claves principales (en la tabla a la que se hace referencia) y las claves externas (en las tablas que hacen referencia).
[pic 4]
A continuación, se muestra el código de la creación de una tabla con ejemplos de los diferentes tipos de restricciones:
[pic 5]
Cuando se establece si un valor puede admitir nulos o no, (null, not null), se considera como una restricción de DOMINIO. Esta restricción se establece de forma OBLIGATORIA en cada columna.
Es importante mencionar que una columna que es LLAVE PRIMARIA por definición NO DEBE ADMITIR VALORES NULOS, es decir, es una columna que se debe llenar de forma OBLIGATORIA.
Si una columna ADMITE VALORES NULOS, significa que la columna se puede o no llenar, es decir es opcional su llenado.
¿Qué son los JOINS?
Es la unión o combinación de dos o más tablas. Dicha combinación, permite mostrar columnas de varias tablas como si se tratase de una sola.
Existen muchos tipos de JOIN en SQL. Veamos un ejemplo sencillo de los más importantes.
Full Join.
[pic 6]
Da como resultado la unión de dos o más tablas, donde por cada conjunto de la tabla A, le corresponde una tupla de B. Este tipo de unión se le conoce también como “Producto cartesiano” lo cual, SE DEBE EVITAR LO MÁS POSIBLE.
Ejemplo:
Tenemos dos tablas: “Country” y “CountryLanguage”. Si hacemos una instrucción SELECT con proyección de algunos campos de la tabla Country y condiciones en la sentencia “where”:
[pic 7]
Se obtiene:
[pic 8]
Si hacemos una instrucción SELECT con proyección de algunos campos de la tabla Countrylanguage:
[pic 9]
Se obtiene:
[pic 10]
Ahora, si unimos las dos tablas con la sentencia JOIN:
[pic 11]
Se obtienen todas las tublas de la tabla b por cada registro de la tabla a:
[pic 12]
Lo anterior es debido a que:
[pic 13]
Se puede observar que este tipo de JOIN provoca duplicación de datos por el producto cartesiano, por lo tanto, no se recomienda usarlo.
Inner Join.
[pic 14]
Este tipo de unión es el más utilizado. Obtiene los registros coincidentes entre una tabla y otra.
Volviendo al ejemplo del JOIN anterior con las tablas “Country” y “Countrylanguage” tenemos:
[pic 15]
Se obtiene:
[pic 16]
Si hacemos una instrucción SELECT con proyección de algunos campos de la tabla Countrylanguage:
[pic 17]
Se obtiene:
[pic 18]
Si hacemos el inner join:
[pic 19]
En el código se muestra después del FROM “country a inner join countrylanguage b on(a.code)=b.countrucode)”. La cláusual inner join, une las dos tablas y los campos dentro del paréntesis son coincidentes en ambas, por lo tanto, se deben igualar para solo obtener los registros que son coincidentes las dos tablas, esto garantiza que no haya datos repetidos y solo aparecen los registros correspondientes a ‘MEX’ y ‘CAN’:
Se obtiene:
[pic 20]
Es importante mencionar, que se pueden unir DOS O MÁS TABLAS en un join.
Por ejemplo:
[pic 21]
El código SQL:
Select a.Id_Invitado, a.Nombre b.id_invitación, b.id_evento
c.nombre, c.fecha, c.ubicación
FROM invitado a inner join invitacion b on(a.id_invitado = b.id_invitado) inner join on(b.id_evento=c.id_evento)
Aquí se unen las tres tablas donde primero, se resuelve el primer inner join, y el resultado de éste, se compara con el segundo inner join.
¿Qué son las VISTAS?
...