Una vista SQL es una tabla global y lógica que puede o no ser persistente. Pero sigue siendo una mesa. Por lo tanto, ¿debe una VISIÓN siempre adherirse a la primera forma normal (1NF)? es decir, no hay filas duplicadas, solo tipos escalares, no ordena de arriba hacia abajo o de izquierda a derecha, etc. ¿Qué pasa con las formas normales más altas?¿Debería una SQL VIEW estar siempre en 1NF?
Para mí, mis aplicaciones 'consumen' los resultados de los procesos almacenados, mis VIEW son 'consumidas' por consultas SQL, y estos dos usos son mutuamente excluyentes (es decir, no consulto los conjuntos de resultados de los procesos almacenados usando SQL y mis aplicaciones no contienen código SQL). He visto a otros usar una VISTA para 'concatenar' múltiples valores en una columna en una sola fila, generalmente en formato separado por comas. Escribir predicados en una consulta SQL contra una columna de este tipo requiere un kludges similares a esta:
',' + concat_col + ',' LIKE '%' + ',' + search_value + ',' + '%'
Por lo tanto, me parece razonable esperar que todas las tablas que se pueden consultar a consistir sólo los tipos escalares. ¿Estoy siendo demasiado "purista" al pensar esto?
Mi opinión ha sido 'consumido' por sólo consultas SQL. Si mi programa necesita un conjunto de resultados en un formato 'especial', entonces lo haría en un proceso almacenado o en el nivel medio. No estoy sugiriendo que la salida de cada proceso almacenado deba estar en 1NF, solo que la salida sea en forma de * tabla * (y supongo que eso incluiría variables de tabla cuando corresponda). – onedaywhen
Obviamente, ha creado reglas para su propia aplicación (sin SQL en los clientes, por ejemplo) que le resulten útiles. Son más restrictivos de lo que consideraría mejores prácticas, pero lo bueno de ser demasiado restrictivo es que siempre es fácil cambiar de opinión más adelante y estar más relajado, no tan fácil de ir para el otro lado. Pero en general, el resultado de las vistas puede violar 1NF (aunque las filas dupe son inútiles, AFAIK). De hecho, el uso de vistas desagradables es una de las mejores formas de migrar un diseño feo a un diseño limpio: necesita las vistas para admitir clientes heredados hasta que también puedan corregirse. –