¿Qué significa este punto sobre la primera forma normal?

7

Estoy leyendo la página de Wikipedia en la primera forma normal, y estoy confundido sobre el último punto:

  

5) Todas las columnas son regulares [es decir, las filas no tienen componentes ocultos, como los ID de fila, los ID de objeto o las marcas de tiempo ocultas].

¿Significa esto que "toda la información sobre una fila está contenida en sus valores" (mis palabras)?

Entiendo el resto de los puntos sobre 1NF; es solo en este sobre el que estoy confundido.

    
pregunta 28.02.2012 - 19:50

2 respuestas

2

Creo que eso es básicamente cierto. El núcleo de 1NF es que una tabla es estrictamente relacional, es decir, todos los valores de la tabla son algunas descripciones de lo que identifica la clave principal. Muchos RDBMS utilizan columnas 'ocultas' que no describen la relación, existen para algún tipo de limpieza interna, pero son parte de la tabla en lugar de mantenerse en otra parte del esquema (o algún otro mecanismo que pueda usar el motor DB) . Oracle, por ejemplo, tiene ID de fila 'ocultos' en todas partes.

El problema con esto, como lo entiendo, es que debido a que tiene datos no relacionales que ocultan sus relaciones (es decir, tablas), crea la posibilidad de razonar sobre sus datos (es decir, creando sentencias de SQL) que no No se ajusta al álgebra relacional.

    
respondido por el Jason Lewis 28.02.2012 - 20:02
3

La primera forma normal significa que cada columna tiene exactamente una cosa significativa en ella. Una forma fácil de saberlo es si: los datos de una sola columna se dividen en varios valores antes de usarlos; o, a la inversa, si se concatenan varios valores y luego se almacenan en una columna, la primera forma normal se rompe.

Este es un ejemplo un tanto pobre, pero estoy atascado en pensar en uno mejor. El almacenamiento de nombres como una sola columna que es el primer nombre y el apellido concatenados se rompería 1NF, porque está almacenando más de un solo valor significativo en esa columna. Sin embargo, este es un mal ejemplo porque no es 100% verdadero, si los nombres siempre se usan como primer + último juntos, entonces no se rompería 1NF, aunque generalmente este no es el caso.

Para abordar este punto específicamente, no es parte de la definición original de Codd, es una adición que Date considera importante y se explica con más detalle en su libro Fecha en la base de datos. Básicamente, esto significa que el espíritu de los puntos 1-4 no se viola con métodos especiales para acceder a información adicional sobre una fila. Los RDMS han comenzado a agregar funciones que pueden violar este punto si se usan.

    
respondido por el Ryathal 28.02.2012 - 20:04

Lea otras preguntas en las etiquetas