Donde trabajo tenemos un ESBa las cuales están conectadas 6 aplicaciones diferentes (o debería decir "puntos finales"). Esas 6 aplicaciones funcionan con 3 esquemas de Oracle diferentes en 2 instancias de bases de datos. Algunas de estas aplicaciones coexisten en el mismo esquema no porque estén relacionadas, sino porque nuestra infraestructura de base de datos es administrada por un proveedor externo y obtener un nuevo esquema solo lleva una eternidad (además, por supuesto, no tenemos acceso a DBA) ... Realmente lleva tanto tiempo que en un momento pensamos en reutilizar un esquema existente "temporalmente" para poder continuar el desarrollo. Para imponer la "separación" de datos, los nombres de las tablas tienen el prefijo, por ejemplo, "CST_" para el cliente. Además, tenemos que trabajar con un esquema que, por algunas razones válidas, no podemos cambiar absolutamente ... Es extraño, lo sé. Por supuesto, como siempre sucede, "temporalmente"
Nuestras diferentes aplicaciones se conectan a sus respectivos esquemas de bases de datos y trabajan con sus propios paquetes PL / SQL y nos prohibimos absolutamente interactuar directamente con tablas / datos que están fuera del dominio de nuestra aplicación.
Cuando una de las aplicaciones conectadas al ESB necesita información fuera de su dominio, llama al servicio relacionado en el ESB para obtener los datos, incluso si esa información está de hecho en el mismo esquema, lo que requiere en teoría solo una pequeña declaración de unión en Una de las solicitudes SQL .
Hacemos eso para poder dividir el dominio de nuestra aplicación en diferentes esquemas / bases de datos, y para que los servicios en el ESB sigan funcionando correctamente cuando suceda (es Navidad pronto, estamos entrecruzados)
Ahora, esto puede parecer extraño y horrible desde el exterior, pero hay razones para eso y solo quería compartir esta experiencia concreta para mostrarle que una o más bases de datos no son tan importantes. ¡Espera, lo es! , por muchas razones (+1 para Scott Whitlock, vea el último párrafo sobre copia de seguridad y tal que pueda llevarlo a problemas) Pero es igualmente importante que creo que sus servicios SOA estén diseñados correctamente, al menos esa es mi opinión, y yo No soy un DBA. En definitiva, todas sus bases de datos pertenecen a su "datawarehouse empresarial", ¿verdad?
Finalmente, no voy a reformular el último párrafo de Scott Whitlock, particularmente este
No separaría las tablas en diferentes bases de datos físicas solo por las preocupaciones de separación.
Es realmente super importante. No lo hagas si no hay razón.