Autor Tópico: Multiplas bases de dados  (Lida 3750 vezes)

kmerlotti

  • Novato
  • *
  • Mensagens: 4
    • Email
Multiplas bases de dados
« Online: Junho 22, 2010, 11:18:23 pm »
Olá pessoal, boa noite!

Estou iniciando um projeto que será multi-empresas e, neste cenário, tenho duas possibilidades: uma única base com um atributo ID_EMPRESA em todas as tabelas ou, o que estou pretendendo: um BD para cada empresa.

Para esta segunda opção eu teria um sistema central (conectado a um BD central) que, ao efetuar o login do usuário, identificaria qual seria o BD que o segundo sistema (multi-empresas) se conectaria e chamaria este segundo sistema já passando os parametros da conexão a ser realizada.

Como é possível fazer este tipo de situação? Seria possível fazer tudo em um único sistema ou realmente tem de ser projetos separados?

Desde já, muito obrigado.
Kelver Merlotti.

Haroldo

  • Expert
  • *****
  • Mensagens: 6276
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re: Multiplas bases de dados
« Responder #1 Online: Junho 24, 2010, 08:53:52 pm »
em banco de dados separado vc não vai conseguir consolidar os dados das empresas e relatórios únicos.
e
Mas no caso da segunda opção:
Um banco de dados com os dados das empresas, usuarios e usuariosxempresas, após o login, vc terá que alimentar as váriasveis de sessão que guardam o host name do banco, sugiro que cada banco tenha uma usuário padrão e senha igual a todos.

Outra dificuldade que eu vejo, é na parametrização de cada nova empresa, que terá que criar o banco de dados novo e todas as tabelas.

Vai ter perda de performance assim e usar muito mais processamento doque ter um banco único, e os recursos de memória vão ser cada vez mais altos a cada banco criado e com cursor aberto.

Vai perder o reaproveitamento de cache de i-o, pois cada banco vai criar o seu.

Outra:  A manuteneção e melhorias no sistema com ele em produção vai dar muitomais mão de obra.

Eu poderia juntar aqui uma lista enorme negativa ao uso dessa metodologia (segundo formato)





kmerlotti

  • Novato
  • *
  • Mensagens: 4
    • Email
Re: Multiplas bases de dados
« Responder #2 Online: Junho 24, 2010, 11:11:02 pm »
Boa noite Harold!

Muito obrigado pela sua atenção e opinião. Já me convenci da inviabilidade. :)

Pensei nesta "segunda opção" imaginando o cenário que terei em breve: serão cerca de 100 empresas diferentes, com seus cadastros de clientes, fornecedores, produtos e movimentações financeiras independentes. A preocupação em deixar tudo em uma base é que, no momento em que 1 empresa estiver emitindo relatórios pesados, por exemplo, 99 sentirão a lentidão no sistema, não é mesmo?

Se eu tivesse uma base pra cada empresa, seria possível, por exemplo, distribuir os bancos em servidores de dados diferentes, dando fôlego ao sistema. Você concorda com esta questão?

De qualquer forma, esta precaução com a performance futura vai "encarecer" muito o projeto. Vou arriscar em uma única base mesmo.

Mais uma vez obrigado e até mais!
Kelver Merlotti.

Haroldo

  • Expert
  • *****
  • Mensagens: 6276
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re: Multiplas bases de dados
« Responder #3 Online: Junho 24, 2010, 11:59:03 pm »
Nada impede de vc ter o banco em servidores diferentes, existem recursos de replicação, alta disponibilidade compartilhando hardwares diferentes. Se por exemplo perceber gargalo na decima quinta empresa, crie a decima sexta em outro banco em outro servidor, tipo 15 num servidor + 15 em outro, o login centrado num unico lugar e redirecionando conforme a empresa, mas eu faria um sistema multiempresas, não um sistema multibancos.

Boa noite Harold!

Muito obrigado pela sua atenção e opinião. Já me convenci da inviabilidade. :)

Pensei nesta "segunda opção" imaginando o cenário que terei em breve: serão cerca de 100 empresas diferentes, com seus cadastros de clientes, fornecedores, produtos e movimentações financeiras independentes. A preocupação em deixar tudo em uma base é que, no momento em que 1 empresa estiver emitindo relatórios pesados, por exemplo, 99 sentirão a lentidão no sistema, não é mesmo?

Se eu tivesse uma base pra cada empresa, seria possível, por exemplo, distribuir os bancos em servidores de dados diferentes, dando fôlego ao sistema. Você concorda com esta questão?

De qualquer forma, esta precaução com a performance futura vai "encarecer" muito o projeto. Vou arriscar em uma única base mesmo.

Mais uma vez obrigado e até mais!
Kelver Merlotti.

kmerlotti

  • Novato
  • *
  • Mensagens: 4
    • Email
Re: Multiplas bases de dados
« Responder #4 Online: Junho 25, 2010, 08:34:38 am »
Nada impede de vc ter o banco em servidores diferentes, existem recursos de replicação, alta disponibilidade compartilhando hardwares diferentes. Se por exemplo perceber gargalo na decima quinta empresa, crie a decima sexta em outro banco em outro servidor, tipo 15 num servidor + 15 em outro, o login centrado num unico lugar e redirecionando conforme a empresa, mas eu faria um sistema multiempresas, não um sistema multibancos.

Não entendi muito bem este seu post.

Ao mesmo tempo que falou ser possível escalar o sistema com bases em máquinas diferentes, falou que faria multiempresas.

A idéia de separar 15 bases por servidor (por exemplo) cairia nos mesmos problemas que você mesmo levanto no início, não cairia?

Poderia me dar uma opinião mais clara da possibilidade do escalonamento futuro, considerando que o sistema será desenvolvido com o atributo ID_EMPRESA em todas as tabelas, como comentado na "primeira opção"?

Mais uma vez, muito obrigado pela atenção.
Kelver Merlotti

Haroldo

  • Expert
  • *****
  • Mensagens: 6276
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re: Multiplas bases de dados
« Responder #5 Online: Junho 25, 2010, 10:38:23 am »
No meu ver, eu prefiro multiempresas, e todas num servidor único, se der gargalo investir em hardware e alta disponibilidade. Mas caso você não tenha condições de investir na infra, nada impede de dividir as empresas entre servidores, mesmo assim, eu não colocaria 15 bancos por sevidor (por exemplo), colocaria um banco só com 15 empresas. Um servidor de banco de dados, é muito mais requisitado  quando o número de bancos aumenta sob sua responsabilidade, assim como os recursos de memória, e para dar manutenção em  100 bancos de dados, seria melhor dar manutenção em 5 bancos não acha?


kmerlotti

  • Novato
  • *
  • Mensagens: 4
    • Email
Re: Multiplas bases de dados
« Responder #6 Online: Junho 25, 2010, 01:53:45 pm »
Agora entendi a sua opinião e concordo plenamente.
Muito obrigado pela atenção.
Um abraço!
Kelver Merlotti.

Haroldo

  • Expert
  • *****
  • Mensagens: 6276
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re: Multiplas bases de dados
« Responder #7 Online: Junho 26, 2010, 05:07:34 pm »
Assunto interessante:
Trabalhando com particionamento de tabelas
SQL Magazine edições 75 e 76.