{"id":4517,"date":"2022-08-30T17:55:11","date_gmt":"2022-08-30T17:55:11","guid":{"rendered":"https:\/\/filememo.info\/tech\/understanding-foreign-keys-in-database-management-systems\/"},"modified":"2022-08-30T17:55:11","modified_gmt":"2022-08-30T17:55:11","slug":"understanding-foreign-keys-in-database-management-systems","status":"publish","type":"post","link":"https:\/\/filememo.info\/tech\/understanding-foreign-keys-in-database-management-systems\/","title":{"rendered":"Understanding Foreign Keys in Database Management Systems"},"content":{"rendered":"<div class=\"orig\">\n<div class=\"origqestion\">O que \u00e9 chave estrangeira exemplo?<\/div>\n<div class=\"origanswer\">\n<div><span><span>Uma chave estrangeira \u00e9 chamada quando h\u00e1 o relacionamento entre duas tabelas. Sempre em chave estrangeira vai haver relacionamentos entre tabelas, por exemplo, se uma tabela que tem uma chave prim\u00e1ria de outra tabela.<\/span><\/span><\/div>\n<\/div>\n<div class=\"origurl\">\n\t\t\t\t<span> Aprender mais sobre<\/span> <a href=\"https:\/\/pt.wikipedia.org\/wiki\/Chave_estrangeira\">pt.wikipedia.org<\/a>\n\t\t\t<\/div>\n<\/p><\/div>\n<div class=\"articlecontent\">\n<div class=\"newlinediv\"><\/div>\n<p> As chaves estrangeiras s\u00e3o um conceito essencial nos sistemas de gest\u00e3o de bases de dados (SGBD), que s\u00e3o utilizados para ligar tabelas numa base de dados relacional. Uma chave estrangeira \u00e9 um campo ou uma combina\u00e7\u00e3o de campos numa tabela que se refere \u00e0 chave prim\u00e1ria de outra tabela. Esta rela\u00e7\u00e3o entre tabelas \u00e9 utilizada para criar uma liga\u00e7\u00e3o entre elas, permitindo que os dados sejam partilhados e acedidos entre tabelas. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Numa base de dados relacional, cada tabela tem uma chave prim\u00e1ria (PK), que \u00e9 um identificador \u00fanico para cada linha da tabela. A PK \u00e9 utilizada para garantir a integridade dos dados e para assegurar que cada linha da tabela pode ser identificada de forma exclusiva. Uma chave estrangeira (FK), por outro lado, \u00e9 utilizada para ligar as tabelas entre si. A FK \u00e9 um campo ou combina\u00e7\u00e3o de campos numa tabela que se refere \u00e0 PK de outra tabela. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Por exemplo, considere uma base de dados para uma biblioteca. A biblioteca tem duas tabelas, uma para livros e outra para mutu\u00e1rios. A tabela de livros tem uma PK de book_id, que \u00e9 um identificador \u00fanico para cada livro. A tabela de mutu\u00e1rios tem uma PK de borrower_id, que \u00e9 um identificador \u00fanico para cada mutu\u00e1rio. Para ligar essas tabelas, a tabela de mutu\u00e1rios poderia ter um FK de book_id, que se refere ao PK da tabela de livros. Essa rela\u00e7\u00e3o permite que a biblioteca rastreie quais livros foram emprestados por quais mutu\u00e1rios. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> A FK geralmente est\u00e1 localizada na tabela filha, que \u00e9 a tabela que se refere \u00e0 PK da tabela pai. No exemplo acima, a tabela de mutu\u00e1rios \u00e9 a tabela filha e a tabela de livros \u00e9 a tabela pai. A FK book_id est\u00e1 localizada na tabela de mutu\u00e1rios e se refere \u00e0 PK book_id na tabela de livros. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Adicionar uma FK a uma tabela existente pode ser feito usando comandos SQL. Primeiro, a coluna FK precisa ser adicionada \u00e0 tabela filha usando o comando ALTER TABLE. Em seguida, a FK precisa ser definida usando a restri\u00e7\u00e3o FOREIGN KEY, que especifica a tabela pai e a coluna PK. Por exemplo, o seguinte comando SQL adiciona uma FK book_id \u00e0 tabela de mutu\u00e1rios que faz refer\u00eancia \u00e0 PK book_id na tabela books: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8220;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ALTER TABLE borrowers <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ADD COLUMN book_id INT; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ALTER TABLE borrowers <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ADD CONSTRAINT fk_borrowers_books <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> FOREIGN KEY (book_id) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> REFERENCES books(book_id); <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8220;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Em resumo, uma chave estrangeira \u00e9 um campo ou combina\u00e7\u00e3o de campos em uma tabela que se refere \u00e0 chave prim\u00e1ria de outra tabela. A FK \u00e9 utilizada para ligar tabelas e criar rela\u00e7\u00f5es entre elas. A FK est\u00e1 normalmente localizada na tabela filha e \u00e9 adicionada utilizando comandos SQL. Compreender as chaves estrangeiras \u00e9 essencial para conceber e gerir bases de dados relacionais.<\/p><\/div>\n<div class=\"questions\">\n<div class=\"questionstitle\">FAQ<\/div>\n<div class=\"question\">\n<div class=\"qtitle\"> Relacionado com isto, como criar uma chave estrangeira no sql server?<\/div>\n<p> Para criar uma chave estrangeira no SQL Server, \u00e9 necess\u00e1rio seguir os seguintes passos: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> 1. Identificar a chave prim\u00e1ria da tabela referenciada (tabela pai). <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> 2. Criar a coluna da chave estrangeira na tabela de refer\u00eancia (tabela filha) com o mesmo tipo de dados que a coluna da chave prim\u00e1ria. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Use a instru\u00e7\u00e3o ALTER TABLE para adicionar uma restri\u00e7\u00e3o de chave estrangeira \u00e0 tabela de refer\u00eancia, especificando as tabelas de refer\u00eancia e referenciada, e as colunas que formam o relacionamento. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Aqui est\u00e1 um exemplo de c\u00f3digo SQL para criar uma restri\u00e7\u00e3o de chave estrangeira: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8220;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ALTER TABLE tabela_filho <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ADD CONSTRAINT fk_nome <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> FOREIGN KEY (coluna_filho) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> REFERENCES tabela_pai (coluna_pai); <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> &#8220;` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Neste exemplo, `tabela_filho` \u00e9 a tabela de refer\u00eancia, `nome_fk` \u00e9 o nome da restri\u00e7\u00e3o de chave estrangeira, `coluna_filho` \u00e9 a coluna de chave estrangeira na tabela de refer\u00eancia, `tabela_pai` \u00e9 a tabela referenciada e `coluna_pai` \u00e9 a coluna de chave prim\u00e1ria na tabela referenciada. <\/p>\n<\/div>\n<div class=\"question\">\n<div class=\"qtitle\"> A este respeito, qual \u00e9 a rela\u00e7\u00e3o entre chave estrangeira e integridade referencial?<\/div>\n<p> Nos sistemas de gest\u00e3o de bases de dados, uma chave estrangeira \u00e9 uma coluna ou um conjunto de colunas numa tabela que se refere \u00e0 chave prim\u00e1ria de outra tabela. A integridade referencial, por outro lado, \u00e9 um conjunto de regras que garante que os dados na(s) coluna(s) de chave externa de uma tabela se referem sempre a uma linha v\u00e1lida na(s) coluna(s) de chave prim\u00e1ria da tabela referenciada. Por outras palavras, a integridade referencial garante que a rela\u00e7\u00e3o entre as tabelas \u00e9 mantida e que n\u00e3o existem linhas \u00f3rf\u00e3s ou dados inv\u00e1lidos na(s) coluna(s) de chave estrangeira. Por conseguinte, as chaves estrangeiras e a integridade referencial s\u00e3o conceitos estreitamente relacionados nos sistemas de gest\u00e3o de bases de dados. <\/p>\n<\/div>\n<div class=\"question\">\n<div class=\"qtitle\"> O que \u00e9 uma chave prim\u00e1ria de uma tabela?<\/div>\n<p> Uma chave prim\u00e1ria de uma tabela \u00e9 um identificador \u00fanico para cada registo na tabela. \u00c9 uma coluna ou uma combina\u00e7\u00e3o de colunas que identifica exclusivamente cada linha na tabela e garante que duas linhas n\u00e3o tenham os mesmos valores para a chave prim\u00e1ria. A chave prim\u00e1ria \u00e9 utilizada para impor a integridade referencial e para estabelecer rela\u00e7\u00f5es com outras tabelas na base de dados.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>O que \u00e9 chave estrangeira exemplo? Uma chave estrangeira \u00e9 chamada quando h\u00e1 o relacionamento entre duas tabelas. Sempre em chave estrangeira vai haver relacionamentos entre tabelas, por exemplo, se uma tabela que tem uma chave prim\u00e1ria de outra tabela. Aprender mais sobre pt.wikipedia.org As chaves estrangeiras s\u00e3o um conceito essencial nos sistemas de gest\u00e3o &#8230; <a title=\"Understanding Foreign Keys in Database Management Systems\" class=\"read-more\" href=\"https:\/\/filememo.info\/tech\/understanding-foreign-keys-in-database-management-systems\/\" aria-label=\"Read more about Understanding Foreign Keys in Database Management Systems\">Ler mais<\/a><\/p>\n","protected":false},"author":1767,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[333],"tags":[],"class_list":["post-4517","post","type-post","status-publish","format-standard","hentry","category-sistemas-de-gestao-de-bases-de-dados"],"_links":{"self":[{"href":"https:\/\/filememo.info\/tech\/wp-json\/wp\/v2\/posts\/4517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/filememo.info\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/filememo.info\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/filememo.info\/tech\/wp-json\/wp\/v2\/users\/1767"}],"replies":[{"embeddable":true,"href":"https:\/\/filememo.info\/tech\/wp-json\/wp\/v2\/comments?post=4517"}],"version-history":[{"count":0,"href":"https:\/\/filememo.info\/tech\/wp-json\/wp\/v2\/posts\/4517\/revisions"}],"wp:attachment":[{"href":"https:\/\/filememo.info\/tech\/wp-json\/wp\/v2\/media?parent=4517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/filememo.info\/tech\/wp-json\/wp\/v2\/categories?post=4517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/filememo.info\/tech\/wp-json\/wp\/v2\/tags?post=4517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}