OS RELACIONAMENTOS SAO OBRIGATORIOS?

MARCOS 16/08/2010 10:54:15
#350358
Prezados colegas,
Sei que a pergunta parece ingenua,mas mesmo
assim por ser uma dúvida, a farei:

Imagine que criei uma base de dados no Sql Server.
Digamos que a modelei, seguindo as regras de modelagem,etc...
Se eu não criar os relacionamentos, no Sql Server o que acontece???

Pergunto isto, pois até onde pude perceber minha consulta, ou insert ou mesmo
Updade, irá funcionar do mesmo jeito. (Contanto é claro, que a instrução Sql
faça os devidos relacionamentos ) . Ou seja, na prática, porque tenho de
explicitamente fazer o diagrama de relacionamento da BD no Sql Server?

Agradeço qualquer orientação.
GUIMORAES 16/08/2010 11:18:29
#350360
Bom, não é necessário realizar o relacionamento.
Vamos supor que tenho duas tabelas, Tabela.Cliente e outra, Tabela.Cliente_adicionais, na qual eu relacionei o campo codigo.
Quando eu tentar excluir uma informação da tabela.Cliente, a mesma retornara um erro, pois tem uma dependencia a tabela.cliente_adicionais.

Esta é uma das vantagens dentre outras.
Mais não é necessário, você pode criar uma procedure para isto.
No caso de consultas, não preciso relaciona-las, mas no codigo, eu posso relacionar os campos na qual os valores são iguais.

(Se eu estiver errado, por favor, me corrijam.)
Abraços.
MARCOSLING 16/08/2010 11:27:41
#350361
Eu acho essencial, pois os relacionamentos garantem a integridade dos dados.

Imgine se acontece um registro filho sem pai?![Ô]
A sua aplicação pode tratar disso, mas e se alguém, por dentro do banco de dados excluir o registro pai e esquecer de apagar o registro filho?! Ou se uma aplicação externa tiver que interagir com o seu sistema.

FEDERHEN 16/08/2010 11:48:59
#350366
Resposta escolhida
A ausencia dos relacionamentos não vai afetar em nada a execução dos comandos.
Os relacionamentos apenas vão garantir a integridade dos dados gravados em teu DB.

Já ví muitas empresas desenvolver software sem se preocupar com os relacionamentos, mas eu recomendo usar...
DIOGOMUNARIN 16/08/2010 12:00:22
#350368
O conceito de relacionamento existe com o objetivo de fazer com que o SGBD entenda que um determinado registro possue outro registro como pai, sendo que, o filho só poderá existir a partir do momento que o pai existir também, garantindo assim a integridade.
Atraves do relacionamento tbm vc pode especificar caso altere algum dado no pai, q reflita no filho, e ate mesmo ao excluir o pai, q exclua o filho.

Um banco de dados q nao tenha relacionamento nao quer dizer que ele nao esteja normalizado, mas acredito que a possibilidade disso ocorrer caso nao tenha aumente

Se os seus indices estiverem corretos, acredito que nao vai haver grande diferenca de desempenho com o uso de relacionamentos por constraints, mas o nao uso do mesmo, acredito que vc nao podera garantir 100% a integridade do banco.
AJSO 16/08/2010 12:43:20
#350372

Se vc parte de uma Modelagem de dados vc vai seguir alguns critérios para obter performance de seu banco e escalabilidade.
Referências de Integridade e Normalização tbem faz parte de melhores práticas de seu projeto de banco.
O problema não é criar um Banco mas torná-lo viável para a sua manutenção e desenvolvimento ao longo da vida útil do banco e confiável e dinâmico para seu cliente.
Sem os relacionamentos como fica o crescimento e segurança de seu banco de dados.
MARCOS 16/08/2010 13:52:42
#350382
Pessoal,
Se eu entendi.
Para resumir os argumentos dos colegas, eu poderia dizer que
o único objetivo de criar os relacionamentos numa BD é garanrir
a integridade referencial do Banco. Esta correto?
DIOGOMUNARIN 16/08/2010 14:13:00
#350384
Sinceramente, desde que vc tenha criado os index correto acredito que SIM.
FEDERHEN 16/08/2010 14:19:02
#350385
MARCOS!!!
SIM, é EXATAMENTE ISSO.
GUIMORAES 16/08/2010 17:57:53
#350410
Bom, Como Profissionais, devemos sempre criar um Bd com a maior segurança possivel.
Neste caso a integridade é indispensável, tanto para as manutenções futuras.
Vale ter mais trabalho para criar um Bd com seus relacionamentos e ter um melhor desempenho, do que você criar um Bd sem integridade e sem segurança e com o desempenho comprometido.

Abraços.

Tópico encerrado , respostas não são mais permitidas