chequear - ¿Cómo implementar un catálogo para metadatos y automatizar SQL en una base de datos?
chequear base de datos sql server (1)
He leído aquí las discusiones sobre 5NF, EAV y 6NF y la necesidad de un catálogo para manejar los metadatos y el complejo SQL "automáticamente". ¿Cómo se implementa eso en la práctica?
PerformanceDBA escribió varias respuestas en 6NF y EAV que mencionan catálogos, por ejemplo, en las siguientes preguntas:
y especialmente Múltiples tablas fijas vs tablas abstractas flexibles , donde escribió PerformanceDBA
"Por ejemplo, para las bases de datos de 6NF con un catálogo, tengo un conjunto de procesos que [re] generarán el SQL requerido para realizar todos los SELECT, y proporciono Vistas en 5NF para todos los usuarios, por lo que no necesitan saber ni entender el "Estructura subyacente 6NF. Se eliminan del catálogo. Por lo tanto, los cambios son fáciles y automatizados. Los tipos de EAV lo hacen manualmente, debido a la ausencia del catálogo".
Primero, con LedgerSMB reutilizamos los catálogos del sistema y el esquema de información siempre que podemos. Esto significa que la aplicación realmente pasa algún tiempo consultando los catálogos del sistema. También tenemos algunos cálculos de metadatos para atributos extendidos. No hacemos EAV aquí. Más bien, tenemos relaciones reales y metadatos sobre estos que nos permiten crear consultas relacionales en el lado del cliente. Estos se cargan en un punto y se almacenan en caché. El catálogo se parece mucho a un catálogo de EAV, pero el almacenamiento subyacente es en realidad relacional y las funciones que mantienen estas tablas subyacentes. Esto le da la flexibilidad de EAV sin las dificultades subyacentes.
Es probable que en futuras versiones pasemos a un menor número de catálogos de aplicaciones y a un mayor uso de los catálogos del sistema Pg y del esquema de información, y nuestra interfaz será más sencilla desde la perspectiva de la aplicación.