propositionjoe Posted May 30, 2013 at 03:31 PM Report #509901 Posted May 30, 2013 at 03:31 PM Viva, Tenho um modelo de dados desenvolvido, e como tal existem as ligações entre as tabelas através de chaves estrangeiras certo ? Estas ligações são apenas conceptuais e a nível de desenho, ou é importante que estejam ligadas como chave estrangeira também no SQLserver ? Pois não relacionando os campos nas tabelas do SQLServer, tudo funciona na mesma. Qual a importância ?
Rechousa Posted May 30, 2013 at 03:49 PM Report #509911 Posted May 30, 2013 at 03:49 PM (edited) Olá, As chaves estrangeiras fazem parte da normalização de uma base de dados. A sua utilização é essencial e elas devem ser criadas pois garantem integridade de dados. Imagina: Tens uma bd de Automóveis. Tens uma tabela de Marcas, com 30 marcas: idMarca | Marca 1 | Audi 2 | Fiat .... 30 | Volkswagen E uma tabela de Modelos (que contêm uma relação entre a marca e o modelo): idModelo | Modelo | Marca 1 | A3 | 1 2 | A4 | 1 3 | A5 | 1 4 | A6 | 1 5 | 127 | 2 6 | 500 | 2 7 | Uno | 2 8 | Punto | 2 Ao usares uma chave estrangeira entre Modelos e Marcas estás a garantir que os valores que colocas em idMarca da Tabela modelos existem na tabela Marcas. Ao tentares eliminar o registo da Audi na Marcas ou dá erro ou elimina os modelos associados (CASCADE DELETE). Se, por sua vez não usares chaves estrangeiras entre Modelos e Marcas, nada te garante chegares à tabela de Modelos e mudares os valores dos campos idMarca, exemplo: UPDATE idModelos SET idMarca = idMarca + 30; Com as chaves estrangeiras, não seria possível, iria dar erro ou actualizava os valores do campo idMarca na tabela Modelos (CASCADE UPDATE). Sem chaves estrangeiras, não dava erro, mas os dados deixariam de ficar íntegros. Espero ter ajudado, Edited May 30, 2013 at 03:52 PM by Rechousa 1 Report Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
propositionjoe Posted May 30, 2013 at 04:13 PM Author Report #509926 Posted May 30, 2013 at 04:13 PM Muito obrigado caro Rechousa. Consegui perceber. Além de manter essa integridade tem mais alguma função ?
Rechousa Posted May 30, 2013 at 04:18 PM Report #509931 Posted May 30, 2013 at 04:18 PM Assim, de repente... que me lembre não tem 😛 1 Report Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now