Diseño de Bases de Datos

10/06/2006 - 06:55 por Jano | Informe spam
Saludos Compañeros

Tengo el siguiente esquema

1- Microsoft SQL Server 2005 Standard Edition
2- Base de Datos 1, contiene todos los datos que seran comunes a otras bases
de datos (compañias). Tomemos un ejemplo, la tabla de Estados
3- Base de Datos 2, Base de Datos 3, Base de Datos 4, Base de Datos N, que
contienen todos los datos que afectan a una compañia en particular. Tomemos
como ejemplo la tabla de Empleados

El sustento para este modelo es:

1- No repetir la misma informacion en cada base de datos, pues los datos
comunes estan en BD1
2- Poder realizar backups (y restores) separados. Si necesito hacer un
backup o restore, podria hacerlo por separado y con frecuencias diferentes.
Si todo estuviera en una misma base de datos, para restaura una BD tendria
que hacerlo junto con todas las demas.
3- Podria montar cada base de datos en servidores de datos diferentes. Quiza
las operaciones de algunas compañias son reducidas, y podria tener la BD de
estas en un servidor con SQL Server Express 2005. Y las de mayor movimiento
tenerlas en un servidor mas potente, esto sugiere un ahorro en licencias.

En lo primero que me tope fue en establecer una relacion entre la tabla
Estados (BD1) y la tabla Empleados (BD2). Seguro que deben haber otras, que
personas con conocimientos mas avanzados podran visualizar.

Gracias de antemano por su atencion a la presente

Preguntas similare

Leer las respuestas

#1 Jano
10/06/2006 - 07:16 | Informe spam
Buscando en la red encontre esto:

http://www.mcse.ms/message594314.html

Algun comentario?



"Jano" wrote in message
news:
Saludos Compañeros

Tengo el siguiente esquema

1- Microsoft SQL Server 2005 Standard Edition
2- Base de Datos 1, contiene todos los datos que seran comunes a otras
bases de datos (compañias). Tomemos un ejemplo, la tabla de Estados
3- Base de Datos 2, Base de Datos 3, Base de Datos 4, Base de Datos N, que
contienen todos los datos que afectan a una compañia en particular.
Tomemos como ejemplo la tabla de Empleados

El sustento para este modelo es:

1- No repetir la misma informacion en cada base de datos, pues los datos
comunes estan en BD1
2- Poder realizar backups (y restores) separados. Si necesito hacer un
backup o restore, podria hacerlo por separado y con frecuencias
diferentes. Si todo estuviera en una misma base de datos, para restaura
una BD tendria que hacerlo junto con todas las demas.
3- Podria montar cada base de datos en servidores de datos diferentes.
Quiza las operaciones de algunas compañias son reducidas, y podria tener
la BD de estas en un servidor con SQL Server Express 2005. Y las de mayor
movimiento tenerlas en un servidor mas potente, esto sugiere un ahorro en
licencias.

En lo primero que me tope fue en establecer una relacion entre la tabla
Estados (BD1) y la tabla Empleados (BD2). Seguro que deben haber otras,
que personas con conocimientos mas avanzados podran visualizar.

Gracias de antemano por su atencion a la presente





Respuesta Responder a este mensaje
#2 Maxi
10/06/2006 - 15:05 | Informe spam
Hola, jano, yo soy un enemigo total de este tipo de diseños, luego para
hacer las relaciones y fk vas a tener serios problemas, entre otros. Ademas
todo lo que estas planteando como problemas se puede solucionar con otras
tecnicas de SQL, vamos al detalle:

1- No repetir la misma informacion en cada base de datos, pues los datos
comunes estan en BD1



Si tenes una sola BDD y ahi pones los clientes y la tenes bien normalizada
no vas a duplicar nada

2- Poder realizar backups (y restores) separados. Si necesito hacer un
backup o restore, podria hacerlo por separado y con frecuencias
diferentes. Si todo estuviera en una misma base de datos, para restaura
una BD tendria que hacerlo junto con todas las demas.



Si dividis las tablas en distintos Filegrouops podes hacer exactamente lo
mismo.

3- Podria montar cada base de datos en servidores de datos diferentes.
Quiza las operaciones de algunas compañias son reducidas, y podria tener
la BD de estas en un servidor con SQL Server Express 2005. Y las de mayor
movimiento tenerlas en un servidor mas potente, esto sugiere un ahorro en
licencias.



Esto ya es un poco mas complejo

En lo primero que me tope fue en establecer una relacion entre la tabla
Estados (BD1) y la tabla Empleados (BD2). Seguro que deben haber otras,
que personas con conocimientos mas avanzados podran visualizar.

Gracias de antemano por su atencion a la presente



Mira, hay grandes sistemas ERP que funcionan en corporaciones donde tienen
mas de una unidad de negocio, pueden ser tan distintas que las podrias
considerar empresas separadas, y tienen una sola bdd.
Lo bueno de tener una bdd es que se te hara la vida mas simple a la hora por
ej de generar reportes, imaginate que alguien te pide: traeme todas las
ventas de todas las empresas? si lo tenes en una tabla donde hay una columna
empresa la cosa es simple, si lo tenes en distintas bdd vas a tener cada X
tiempo que revisar el programa de informe para ver si esta contemplando todo
o sino vas a tener que saltar a usar SQL-dinamico y un monton mas de malas
practicas.

Yo en motores como SQL u Oracle ni pensaria en dividir la bdd por negocio,
eso es un dato mas de tu tabla.

Un abrazo


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Jano" escribió en el mensaje
news:
Saludos Compañeros

Tengo el siguiente esquema

1- Microsoft SQL Server 2005 Standard Edition
2- Base de Datos 1, contiene todos los datos que seran comunes a otras
bases de datos (compañias). Tomemos un ejemplo, la tabla de Estados
3- Base de Datos 2, Base de Datos 3, Base de Datos 4, Base de Datos N, que
contienen todos los datos que afectan a una compañia en particular.
Tomemos como ejemplo la tabla de Empleados

El sustento para este modelo es:

1- No repetir la misma informacion en cada base de datos, pues los datos
comunes estan en BD1
2- Poder realizar backups (y restores) separados. Si necesito hacer un
backup o restore, podria hacerlo por separado y con frecuencias
diferentes. Si todo estuviera en una misma base de datos, para restaura
una BD tendria que hacerlo junto con todas las demas.
3- Podria montar cada base de datos en servidores de datos diferentes.
Quiza las operaciones de algunas compañias son reducidas, y podria tener
la BD de estas en un servidor con SQL Server Express 2005. Y las de mayor
movimiento tenerlas en un servidor mas potente, esto sugiere un ahorro en
licencias.

En lo primero que me tope fue en establecer una relacion entre la tabla
Estados (BD1) y la tabla Empleados (BD2). Seguro que deben haber otras,
que personas con conocimientos mas avanzados podran visualizar.

Gracias de antemano por su atencion a la presente





Respuesta Responder a este mensaje
#3 Antonio Ortiz
12/06/2006 - 06:18 | Informe spam
Como indica Maxi, yo recomendaria visualizar el modelo desde un nivel mas
alto, en una sola base de datos.

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Jano" escribió en el mensaje
news:
Saludos Compañeros

Tengo el siguiente esquema

1- Microsoft SQL Server 2005 Standard Edition
2- Base de Datos 1, contiene todos los datos que seran comunes a otras
bases de datos (compañias). Tomemos un ejemplo, la tabla de Estados
3- Base de Datos 2, Base de Datos 3, Base de Datos 4, Base de Datos N, que
contienen todos los datos que afectan a una compañia en particular.
Tomemos como ejemplo la tabla de Empleados

El sustento para este modelo es:

1- No repetir la misma informacion en cada base de datos, pues los datos
comunes estan en BD1
2- Poder realizar backups (y restores) separados. Si necesito hacer un
backup o restore, podria hacerlo por separado y con frecuencias
diferentes. Si todo estuviera en una misma base de datos, para restaura
una BD tendria que hacerlo junto con todas las demas.
3- Podria montar cada base de datos en servidores de datos diferentes.
Quiza las operaciones de algunas compañias son reducidas, y podria tener
la BD de estas en un servidor con SQL Server Express 2005. Y las de mayor
movimiento tenerlas en un servidor mas potente, esto sugiere un ahorro en
licencias.

En lo primero que me tope fue en establecer una relacion entre la tabla
Estados (BD1) y la tabla Empleados (BD2). Seguro que deben haber otras,
que personas con conocimientos mas avanzados podran visualizar.

Gracias de antemano por su atencion a la presente





Respuesta Responder a este mensaje
#4 qwalgrande
13/06/2006 - 08:04 | Informe spam
Hola.

Aunque en muchos de los puntos coincido con tu opinión, creo que la
arquitectura que se plantea puede presentar alguna ventaja que, si lo
incluimos en una única BD no tendríamos. He introducido mis comentarios tras
cada cuestión.

Alberto López Grande (qwalgrande)


"Maxi" escribió en el mensaje
news:
Hola, jano, yo soy un enemigo total de este tipo de diseños, luego para
hacer las relaciones y fk vas a tener serios problemas, entre otros.
Ademas todo lo que estas planteando como problemas se puede solucionar con
otras tecnicas de SQL, vamos al detalle:

1- No repetir la misma informacion en cada base de datos, pues los datos
comunes estan en BD1



Si tenes una sola BDD y ahi pones los clientes y la tenes bien normalizada
no vas a duplicar nada



Sin embargo, complicas la gestión de permisos y la recuperación en caso de
fallo de una de las compañías.


2- Poder realizar backups (y restores) separados. Si necesito hacer un
backup o restore, podria hacerlo por separado y con frecuencias
diferentes. Si todo estuviera en una misma base de datos, para restaura
una BD tendria que hacerlo junto con todas las demas.



Si dividis las tablas en distintos Filegrouops podes hacer exactamente lo
mismo.



No creo que tenga nada que ver una cosa con la otra. Si has de restaurar por
separado, se verían afectadas compañías que no hubieran sufrido el percance.
Podrías hacerlo compatible, pero con un coste de administración bastante
superior.


3- Podria montar cada base de datos en servidores de datos diferentes.
Quiza las operaciones de algunas compañias son reducidas, y podria tener
la BD de estas en un servidor con SQL Server Express 2005. Y las de mayor
movimiento tenerlas en un servidor mas potente, esto sugiere un ahorro en
licencias.



Esto ya es un poco mas complejo

En lo primero que me tope fue en establecer una relacion entre la tabla
Estados (BD1) y la tabla Empleados (BD2). Seguro que deben haber otras,
que personas con conocimientos mas avanzados podran visualizar.

Gracias de antemano por su atencion a la presente



Mira, hay grandes sistemas ERP que funcionan en corporaciones donde tienen
mas de una unidad de negocio, pueden ser tan distintas que las podrias
considerar empresas separadas, y tienen una sola bdd.
Lo bueno de tener una bdd es que se te hara la vida mas simple a la hora
por ej de generar reportes, imaginate que alguien te pide: traeme todas
las ventas de todas las empresas? si lo tenes en una tabla donde hay una
columna empresa la cosa es simple, si lo tenes en distintas bdd vas a
tener cada X tiempo que revisar el programa de informe para ver si esta
contemplando todo o sino vas a tener que saltar a usar SQL-dinamico y un
monton mas de malas practicas.

Yo en motores como SQL u Oracle ni pensaria en dividir la bdd por negocio,
eso es un dato mas de tu tabla.



Sin embargo, hay otras ocasiones en las que el negocio es parecido e
independiente. Tienes una base de datos común y otras que por autonomía es
mejor tenerlas aparte. Cada caso, un mundo. Y si ya quieres balancear carga,
distribuir costes, tener más de un servidor es más que interesante.


Un abrazo


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Jano" escribió en el mensaje
news:
Saludos Compañeros

Tengo el siguiente esquema

1- Microsoft SQL Server 2005 Standard Edition
2- Base de Datos 1, contiene todos los datos que seran comunes a otras
bases de datos (compañias). Tomemos un ejemplo, la tabla de Estados
3- Base de Datos 2, Base de Datos 3, Base de Datos 4, Base de Datos N,
que contienen todos los datos que afectan a una compañia en particular.
Tomemos como ejemplo la tabla de Empleados

El sustento para este modelo es:

1- No repetir la misma informacion en cada base de datos, pues los datos
comunes estan en BD1
2- Poder realizar backups (y restores) separados. Si necesito hacer un
backup o restore, podria hacerlo por separado y con frecuencias
diferentes. Si todo estuviera en una misma base de datos, para restaura
una BD tendria que hacerlo junto con todas las demas.
3- Podria montar cada base de datos en servidores de datos diferentes.
Quiza las operaciones de algunas compañias son reducidas, y podria tener
la BD de estas en un servidor con SQL Server Express 2005. Y las de mayor
movimiento tenerlas en un servidor mas potente, esto sugiere un ahorro en
licencias.

En lo primero que me tope fue en establecer una relacion entre la tabla
Estados (BD1) y la tabla Empleados (BD2). Seguro que deben haber otras,
que personas con conocimientos mas avanzados podran visualizar.

Gracias de antemano por su atencion a la presente









email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida