Diferencia entre revisiones de «Mod BD UD3 Deseño Lóxico»
Línea 10: | Línea 10: | ||
= Normalización de modelos relacionais: dependencias funcionais; formas normais = | = Normalización de modelos relacionais: dependencias funcionais; formas normais = | ||
+ | Codd fixo a definición dunhas normas que evitan as redundancias de información nunha solución relacional cando son aplicadas. A técnica de seguemento de esas normas é coñecida como '''normalización''', e consiste en levar todas as relacións a determinados estados chamados formas normales. | ||
+ | |||
+ | O inglés Edgar Frank “Ted” Codd é o pai das bases de datos relacionales. A mediados dos anos oitenta aportou as definicións coñecidas como “as 12 regras de Codd“ (aínda que son trece, numeradas do cero ó doce) que todo SGBDR debe cumplir. Buscaba revertir a tendencia dos fabricantes de SGBDR a obviar elementos fundamentais da súa proposta de modelo relacional,Algunhas delas son moi complexas de seguir e son máis estudadas desde o punto de vista teórico; pero a mera existencia das 12 regras supuxo unha declaración de intencións sobre o camiño que debía tomar o mundo das bases de datos. | ||
+ | |||
+ | == Primeira forma normal (1FN) == | ||
+ | Unha relación está en primera forma normal (1FN) se todos os seus valores son atómicos; isto é, cada valor dos dominios de todos os atributos é único. | ||
+ | |||
+ | No seguinte exemplo (clave primaria en '''grosa''') vemos un atributo, ''Teléfono'', que ten valores que no son repetitivos e non atómicos: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+Relación sen normalizar | ||
+ | ! NIF | ||
+ | ! Nome | ||
+ | ! Primeiro Apelido | ||
+ | ! Segundo Apelido | ||
+ | ! Teléfono | ||
+ | |- | ||
+ | | 11111111H | ||
+ | | María Xosé | ||
+ | | López | ||
+ | | Pérez | ||
+ | | 666321555 <br/> 677876432 | ||
+ | |- | ||
+ | | 123222333V | ||
+ | | Brais | ||
+ | | García | ||
+ | | Xermade | ||
+ | | 611222333 <br/> 981333222 <br/> 982444333 | ||
+ | |- | ||
+ | | 39653802P | ||
+ | | Alba | ||
+ | | Pereira | ||
+ | | Pereira | ||
+ | | 912300141 | ||
+ | |} | ||
+ | |||
+ | Unha primeira solución para alcanzar a 1FN consiste en atomizar o atributo ''Teléfono'' do seguinte modo: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+Relación en 1FN | ||
+ | ! NIF | ||
+ | ! Nome | ||
+ | ! Primeiro Apelido | ||
+ | ! Segundo Apelido | ||
+ | ! Teléfono | ||
+ | |- | ||
+ | | 11111111H | ||
+ | | María Xosé | ||
+ | | López | ||
+ | | Pérez | ||
+ | | 666321555 | ||
+ | |- | ||
+ | | 11111111H | ||
+ | | María Xosé | ||
+ | | López | ||
+ | | Pérez | ||
+ | | 677876432 | ||
+ | |- | ||
+ | | 123222333V | ||
+ | | Brais | ||
+ | | García | ||
+ | | Xermade | ||
+ | | 611222333 | ||
+ | |- | ||
+ | | 123222333V | ||
+ | | Brais | ||
+ | | García | ||
+ | | Xermade | ||
+ | | 981333222 | ||
+ | |- | ||
+ | | 123222333V | ||
+ | | Brais | ||
+ | | García | ||
+ | | Xermade | ||
+ | | 982444333 | ||
+ | |- | ||
+ | | 39653802P | ||
+ | | Alba | ||
+ | | Pereira | ||
+ | | Pereira | ||
+ | | 912300141 | ||
+ | |} | ||
+ | |||
+ | Esta solución implica unha forte redundancia (''Nome'', '' e '' repítense por cada teléfono), e invalida a ''NIF'' como clave primaria, obrigando a ampliar dita clave primaria co atributo ''Teléfono''. Por ese motivo proponse unga solución máis elaborada consistente en dividir a relación orixinal en dúas (unha coas persoas e outra cos teléfonos), vinculándoas mediante os valores da clave primaria orixinal: | ||
= Xustificación da desnormalización = | = Xustificación da desnormalización = |
Revisión del 13:18 13 sep 2021
Sumario
Modelo lóxico de datos: metodoloxía
Modelo relacional: terminoloxía e características
Claves primarias e alleas
Paso do diagrama E-R ao modelo relacional
Álxebra relacional. Cálculo relacional
Normalización de modelos relacionais: dependencias funcionais; formas normais
Codd fixo a definición dunhas normas que evitan as redundancias de información nunha solución relacional cando son aplicadas. A técnica de seguemento de esas normas é coñecida como normalización, e consiste en levar todas as relacións a determinados estados chamados formas normales.
O inglés Edgar Frank “Ted” Codd é o pai das bases de datos relacionales. A mediados dos anos oitenta aportou as definicións coñecidas como “as 12 regras de Codd“ (aínda que son trece, numeradas do cero ó doce) que todo SGBDR debe cumplir. Buscaba revertir a tendencia dos fabricantes de SGBDR a obviar elementos fundamentais da súa proposta de modelo relacional,Algunhas delas son moi complexas de seguir e son máis estudadas desde o punto de vista teórico; pero a mera existencia das 12 regras supuxo unha declaración de intencións sobre o camiño que debía tomar o mundo das bases de datos.
Primeira forma normal (1FN)
Unha relación está en primera forma normal (1FN) se todos os seus valores son atómicos; isto é, cada valor dos dominios de todos os atributos é único.
No seguinte exemplo (clave primaria en grosa) vemos un atributo, Teléfono, que ten valores que no son repetitivos e non atómicos:
NIF | Nome | Primeiro Apelido | Segundo Apelido | Teléfono |
---|---|---|---|---|
11111111H | María Xosé | López | Pérez | 666321555 677876432 |
123222333V | Brais | García | Xermade | 611222333 981333222 982444333 |
39653802P | Alba | Pereira | Pereira | 912300141 |
Unha primeira solución para alcanzar a 1FN consiste en atomizar o atributo Teléfono do seguinte modo:
NIF | Nome | Primeiro Apelido | Segundo Apelido | Teléfono |
---|---|---|---|---|
11111111H | María Xosé | López | Pérez | 666321555 |
11111111H | María Xosé | López | Pérez | 677876432 |
123222333V | Brais | García | Xermade | 611222333 |
123222333V | Brais | García | Xermade | 981333222 |
123222333V | Brais | García | Xermade | 982444333 |
39653802P | Alba | Pereira | Pereira | 912300141 |
Esta solución implica unha forte redundancia (Nome, e repítense por cada teléfono), e invalida a NIF como clave primaria, obrigando a ampliar dita clave primaria co atributo Teléfono. Por ese motivo proponse unga solución máis elaborada consistente en dividir a relación orixinal en dúas (unha coas persoas e outra cos teléfonos), vinculándoas mediante os valores da clave primaria orixinal: