Requisito previo: dependencia funcional , normalización de la base de datos , formas normales
Si dos o más relaciones independientes se mantienen en una sola relación o podemos decir que la dependencia multivalor ocurre cuando la presencia de una o más filas en una tabla implica la presencia de una o más filas en esa misma mesa. Dicho de otra manera, dos atributos (o columnas) en una tabla son independientes entre sí, pero ambos dependen de un tercer atributo. Una dependencia multivaluada siempre requiere al menos tres atributos porque consta de al menos dos atributos que dependen de un tercero.
Para una dependencia A -> B, si para un solo valor de A, existe un valor múltiple de B, entonces la tabla puede tener una dependencia de varios valores. La tabla debe tener al menos 3 atributos y B y C deben ser independientes para la dependencia multivaluada A ->> B. Por ejemplo,
Persona | Móvil | Comida_Me gusta |
---|---|---|
Mahesh | 9893/9424 | hamburguesa/pizza |
Ramesh | 9191 | Pizza |
Person->-> mobile, Person ->-> food_likes
Esto se lee como «persona multideterminada móvil» y «persona multideterminada food_likes».
Tenga en cuenta que una dependencia funcional es un caso especial de dependencia multivaluada. En una dependencia funcional X -> Y, cada x determina exactamente una y, nunca más de una.
Cuarta forma normal (4NF):
La cuarta forma normal (4NF) es un nivel de normalización de la base de datos en el que no hay dependencias multivaluadas no triviales que no sean una clave candidata. Se basa en las primeras tres formas normales (1NF, 2NF y 3NF) y la forma normal de Boyce-Codd (BCNF). Establece que, además de una base de datos que cumpla con los requisitos de BCNF, no debe contener más de una dependencia multivaluada.
Propiedades: una relación R está en 4NF si y solo si se cumplen las siguientes condiciones:
- Debe estar en la forma normal de Boyce-Codd (BCNF).
- la tabla no debe tener ninguna dependencia de varios valores.
Una tabla con una dependencia multivaluada viola el estándar de normalización de la Cuarta Forma Normal (4NK) porque crea redundancias innecesarias y puede contribuir a la inconsistencia de los datos. Para llevar esto a 4NF, es necesario dividir esta información en dos tablas.
Ejemplo: considere la tabla de la base de datos de una clase que tiene dos relaciones: R1 contiene la identificación del estudiante (SID) y el nombre del estudiante (SNAME) y R2 contiene la identificación del curso (CID) y el nombre del curso (CNAME).
Tabla: R1 (SID, SNAME)
S.I.D. | NOMBRE DE |
---|---|
S1 | A |
S2 | B |
Tabla: R2 (CID, CNAME)
CID | CNOMBRE |
---|---|
C1 | C |
C2 | D |
Cuando se realiza un producto cruzado, se generan dependencias multivaluadas:
Tabla – R1 X R2
S.I.D. | NOMBRE DE | CID | CNOMBRE |
---|---|---|---|
S1 | A | C1 | C |
S1 | A | C2 | D |
S2 | B | C1 | C |
S2 | B | C2 | D |
Las dependencias multivaluadas (MVD) son:
SID->->CID; SID->->CNAME; SNAME->->CNAME
Dependencia conjunta: la descomposición conjunta es una generalización adicional de las dependencias multivaluadas. Si la unión de R1 y R2 sobre C es igual a la relación R entonces podemos decir que
existe una dependencia de unión (JD), donde R1 y R2 son la descomposición R1(A, B, C) y R2(C, D) de unas relaciones dadas R (A, B, C, D). Alternativamente, R1 y R2 son una descomposición sin pérdidas de R. Se dice que A JD ⋈ {R1, R2, …, Rn} mantiene una relación R si R1, R2, ….., Rn es una descomposición sin pérdidas. El *(A, B, C, D), (C, D) será un JD de R si el atributo join de join es igual a
la relación R. Aquí, *(R1, R2, R3) se usa para indicar esa relación R1, R2, R3 y así sucesivamente son una JD de R.
Sea R un esquema de relación R1, R2, R3……..Rn sea la descomposición de R. Se dice que r( R ) satisface la dependencia de unión si y solo si
Ejemplo –
Mesa – R1
Compañía | Producto |
---|---|
C1 | memoria USB |
C1 | micrófono |
C2 | altavoz |
C2 | altavoz |
Company->->Product
Tabla – R2
Agente | Compañía |
---|---|
Un hombre | C1 |
Un hombre | C2 |
mohán | C1 |
Agent->->Company
Mesa – R3
Agente | Producto |
---|---|
Un hombre | memoria USB |
Un hombre | micrófono |
Un hombre | altavoz |
mohán | altavoz |
Agent->->Product
Tabla – R1⋈R2⋈R3
Compañía | Producto | Agente |
---|---|---|
C1 | memoria USB | Un hombre |
C1 | micrófono | Un hombre |
C2 | altavoz | altavoz |
C1 | altavoz | Un hombre |
Agent->->Product
Quinta Forma Normal / Forma Normal Proyectada (5NF):
Una relación R está en 5NF si y solo si cada dependencia de unión en R está implícita en las claves candidatas de R. Una relación descompuesta en dos relaciones debe tener la propiedad de unión sin pérdidas, lo que garantiza que no se generen tuplas espurias o adicionales, cuando las relaciones se reencuentran a través de una unión natural.
Propiedades: una relación R está en 5FN si y solo si cumple las siguientes condiciones:
- R debería estar ya en 4NF.
- No se puede descomponer más sin pérdida (dependencia de unión)
Ejemplo: considere el esquema anterior, con un caso como «si una empresa fabrica un producto y un agente es un agente para esa empresa, entonces siempre vende ese producto para la empresa». Bajo estas circunstancias, la tabla ACP se muestra como:
Mesa – ACP
Agente | Compañía | Producto |
---|---|---|
A1 | PQR | Nuez |
A1 | PQR | Tornillo |
A1 | XYZ | Nuez |
A1 | XYZ | Tornillo |
A2 | PQR | Nuez |
La relación ACP se descompone nuevamente en 3 relaciones. Ahora, la unión natural de las tres relaciones se mostrará como:
Mesa – R1
Agente | Compañía |
---|---|
A1 | PQR |
A1 | XYZ |
A2 | PQR |
Tabla – R2
Agente | Producto |
---|---|
A1 | Nuez |
A1 | Tornillo |
A2 | Nuez |
Mesa – R3
Compañía | Producto |
---|---|
PQR | Nuez |
PQR | Tornillo |
XYZ | Nuez |
XYZ | Tornillo |
El resultado de la combinación natural de R1 y R3 sobre ‘Compañía’ y luego la combinación natural de R13 y R2 sobre ‘Agente’ y ‘Producto’ será la tabla ACP .
Por lo tanto, en este ejemplo, se eliminan todas las redundancias y la descomposición de ACP es una descomposición conjunta sin pérdidas. Por lo tanto, la relación está en 5NF ya que no viola la propiedad de unión sin pérdidas .
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA