Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
3.4 RESTRICCIONES.pdf
1.
2. Erahin Pacheco Luna
3.4 Restricciones
Una vez definida la estructura de datos del modelo relacional, pasamos a
estudiar las reglas de integridad que los datos almacenados en dicha estructura
deben cumplir para garantizar que son correctos.
Al definir cada atributo sobre un dominio se impone una restricción sobre el
conjunto de valores permitidos para cada atributo. A este tipo de restricciones
se les denomina restricciones de dominios.
Hay además dos reglas de integridad muy importantes que son restricciones
que se deben cumplir en todas las bases de datos relacionales y en todos sus
estados (las reglas se deben cumplir todo el tiempo). Estas reglas son la regla
de integridad de entidades y la regla de integridad referencial.
3. Erahin Pacheco Luna
3.4 Restricciones (Valores nulos)
Cuando en una fila un atributo es desconocido, se dice que es nulo.
Un nulo no representa el valor cero ni la cadena vacía ya que éstos son valores que tienen
significado. El nulo implica ausencia de información, bien porque al insertar la fila se
desconocía el valor del atributo, o bien porque para dicha tupla el atributo no tiene sentido. Ya
que los nulos no son valores, deben tratarse de modo diferente, lo que causa problemas de
implementación.
4. Erahin Pacheco Luna
3.4 Restricciones (Valores nulos)
Control Nombre Apellido RFC
02298676 Javier López LOPJ230484JLR
02598872 María Antonieta null
02298623 Tania López LOTA120989DF4
02298232 Sandra Pérez null
5. Erahin Pacheco Luna
3.4.1 Integridad de entidad
Integridad: Consiste en conservar la seguridad en un sistema que se permite a
múltiples usuarios el acceso al sistema y compartir la base de datos. Tiene
como función proteger la base de datos contra operaciones que introduzcan
inconsistencias en los datos. Se habla de integridad en el sentido de corrección,
validez o precisión de los datos. Un control de integridad o restricciones es
aquel que nos permite definir con precisión el rango de valores validos para un
elemento y/o las operaciones que serán consideraciones validas en la relación
de tales elementos.
6. Erahin Pacheco Luna
3.4.1 Integridad de entidad
La primera regla de integridad se aplica a las claves primarias de las
relaciones base:
➢ ninguno de los atributos que componen la clave primaria puede ser nulo, ya que la
clave primaria debe permitirnos identificar unívocamente cada tupla de la relación.
➢ Por definición, una clave primaria es una clave irreducible (si se elimina alguno de
los atributos deja de ser única) que se utiliza para identificar de modo único las
tuplas (filas).
Que es irreducible significa que ningún subconjunto de la clave primaria sirve para identificar las
tuplas de modo único. Si se permitiera que parte de la clave primaria fuera nula, se estaría
diciendo que no todos sus atributos son necesarios para distinguir las tuplas, con lo que se
estaría contradiciendo la irreducibilidad.
7. Erahin Pacheco Luna
3.4.1 Integridad de entidad
Claves candidatas (pk)
Fecha_nac Nombre Apellido
04/05/1999 Javier López
11/10/2000 María Antonieta
04/05/1999 Tania López
13/04/2001 Sandra Pérez
Clave primaria Irreducible
Nótese que esta
regla sólo se
aplica a las
relaciones(tablas)
base y a las
claves primarias,
no a las claves
alternativas.
8. Erahin Pacheco Luna
3.4.2 Integridad Referencial
La segunda regla de integridad se aplica a las claves ajenas:
➢ si en una relación hay alguna clave ajena, sus valores deben coincidir con
valores de la clave primaria a la que hace referencia, o bien, deben ser
completamente nulos.
9. Erahin Pacheco Luna
3.4.2 Integridad Referencial
➢ Toda clave foránea es parte de una llave primaria en otra tabla.
➢ Una clave ajena dada y la clave primaria correspondiente deben definirse
sobre el mismo dominio.
Control int
Control int
10. Erahin Pacheco Luna
3.4.2 Integridad Referencial
Para hacer respetar la integridad referencial se debe contestar, para cada clave
ajena, a las tres preguntas que se plantean a continuación y que determinarán
su comportamiento:
➢ Regla de los nulos: ¿Tiene sentido que la clave ajena acepte nulos?
null
11. Erahin Pacheco Luna
3.4.2 Integridad Referencial
➢ Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por
la clave ajena?
a) Restringir (restrict): no se permite borrar la tupla referenciada (viene
por defecto).
1
2
13. Erahin Pacheco Luna
3.4.2 Integridad Referencial
b) Propagar (cascade): se borra la tupla referenciada y se propaga el borrado
a las tuplas que la referencian mediante la clave ajena.
14. Erahin Pacheco Luna
3.4.2 Integridad Referencial
c) Anular: se borra la tupla referenciada y las tuplas que la referenciaban ponen
a nulo la clave ajena (sólo si acepta nulos).
constraint fk foreign key(claveJefe) references AlumnosBase(control)
on delete set null
15. Erahin Pacheco Luna
3.4.2 Integridad Referencial
d) Valor por defecto: se borra la tupla referenciada y las tuplas que la
referenciaban ponen en la clave ajena el valor por defecto establecido para la
misma. Esta acción es reconocida por el procesador de sentencias (parser), pero
InnoDB rechaza definiciones de tablas que contengan ON DELETE SET DEFAULT u ON
UPDATE SET DEFAULT.
constraint fk foreign key(claveJefe) references AlumnosBase(control)
on delete set default
16. Erahin Pacheco Luna
3.4.2 Integridad Referencial
e) Ningúna acción (no action): las claves foráneas no se modifican, ni se
eliminan filas en la tabla que las contiene, funciona igual que restrict.
constraint fk foreign key(claveJefe) references AlumnosBase(control)
on delete no action
18. Erahin Pacheco Luna
3.4.2 Integridad Referencial
a) Restringir: no se permite modificar el valor de la clave primaria de la tupla
referenciada.
b) Propagar: se modifica el valor de la clave primaria de la tupla referenciada y
se propaga la modificación a las tuplas que la referencian, mediante la clave
ajena.
c) Anular: se modifica la tupla referenciada y las tuplas que la referenciaban
ponen a nulo la clave ajena (sólo si acepta nulos).
d) Valor por defecto: se modifica la tupla referenciada y las tuplas que la
referenciaban ponen en la clave ajena el valor por defecto establecido para
la misma.
➢ Regla de modificación: ¿Qué ocurre si se intenta modificar el valor de la
clave primaria de la tupla referenciada por la clave ajena?