{"id":71,"date":"2014-09-17T13:37:04","date_gmt":"2014-09-17T13:37:04","guid":{"rendered":"https:\/\/www.uniessa.hiperlogic.com.br\/?p=71"},"modified":"2014-09-18T00:15:09","modified_gmt":"2014-09-18T00:15:09","slug":"projeto-e-normalizacao-do-banco-de-dados","status":"publish","type":"post","link":"https:\/\/www.uniessa.hiperlogic.com.br\/?p=71","title":{"rendered":"Projeto e Normaliza\u00e7\u00e3o do Banco de Dados"},"content":{"rendered":"<p>&#8220;O Objetivo b\u00e1sico do projeto de banco de dados \u00e9 possibilitar ao usu\u00e1rio obter a informa\u00e7\u00e3o exata em um limite aceit\u00e1vel de tempo, de maneira a executar sua tarefa dentro da organiza\u00e7\u00e3o&#8221; (Teorey e Fry)<br \/>\n&#8220;O Objetivo do projeto de um banco de dados relacional \u00e9 gerar um conjunto de esquemas relacionais que nos permita armazenar informa\u00e7\u00f5es sem redund\u00e2ncia desnecess\u00e1ria, apesar de nos permitir recuperar a informa\u00e7\u00e3o facilmente&#8221; (Korth e Silberschatz)<\/p>\n<ul>\n<li>Ciclo de vida para o Desenvolvimento de Sistemas de Bancos de Dados<\/li>\n<\/ul>\n<ol>\n<li>An\u00e1lise das Necessidades<\/li>\n<li>Projeto Conceitual (DER)<\/li>\n<li>Projeto F\u00edsico<\/li>\n<li>Implementa\u00e7\u00e3o<\/li>\n<li>Monitora\u00e7\u00e3o<\/li>\n<li>Sintoniza\u00e7\u00e3o<\/li>\n<li>(Manuten\u00e7\u00e3o -&gt; retorna ao 1)<\/li>\n<\/ol>\n<p>Sistemas de Gerenciamento de Base de Dados (SGBD) encapsulam do 3 ao 5 em um \u00fanico processo, necessitando apenas ser Sintonizado (ou configurado)<\/p>\n<ul>\n<li>Perigos potenciais no projeto de Banco de Dados Relacionais\n<ul>\n<li>Repeti\u00e7\u00e3o da informa\u00e7\u00e3o\n<ul>\n<li>Informa\u00e7\u00f5es repetidas consomem espa\u00e7o de armazenamento e dificultam a atualiza\u00e7\u00e3o<\/li>\n<\/ul>\n<\/li>\n<li>Incapacidade de representar parte da informa\u00e7\u00e3o\n<ul>\n<li>Por vezes h\u00e1 a necessidade de se incluir valores nulos<\/li>\n<\/ul>\n<\/li>\n<li>Perda de Informa\u00e7\u00e3o\n<ul>\n<li>Projetos mal elaborados sugerem a decomposi\u00e7\u00e3o de esquemas relacionais com muitos atributos<\/li>\n<\/ul>\n<\/li>\n<li><\/li>\n<li><\/li>\n<\/ul>\n<\/li>\n<li>Depend\u00eancias Funcionais\n<ul>\n<li>Dada uma rela\u00e7\u00e3o R, o atributo Y de R \u00e9 funcionalmente dependente do atributo X de R, ou:\n<ul>\n<li>R.X -&gt; R.Y<\/li>\n<\/ul>\n<\/li>\n<li>Se e somente se cada valor X em R for associado precisamente a um mesmo valor Y em R, a qualquer momento<\/li>\n<li>(Y e X podem ser compostos)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><b>Regras para encontrar Depend\u00eancias Funcionais<\/b><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><b>Separa\u00e7\u00e3o<\/b><br \/>\nA -&gt; BC ent\u00e3o A -&gt; B e A -&gt; C Exemplo:<br \/>\nCPF -&gt; nome, endere\u00e7o ent\u00e3o CPF -&gt; nome e CPF -&gt; endere\u00e7o<br \/>\nLeia o exemplo acima da seguinte maneira:<br \/>\nSe com um n\u00famero de CPF eu encontro o nome e o endere\u00e7o de uma pessoa, ent\u00e3o com este mesmo n\u00famero eu posso encontrar apenas o nome e com este mesmo n\u00famero eu posso encontrar apenas o endere\u00e7o.<\/p>\n<p><b>Acumula\u00e7\u00e3o<\/b><br \/>\nA -&gt; B ent\u00e3o AC -&gt; B<br \/>\nExemplo:<br \/>\nCPF -&gt; endere\u00e7o ent\u00e3o CPF, idade -&gt; endere\u00e7o<br \/>\nLeia o exemplo acima da seguinte maneira:<br \/>\nSe com um n\u00famero de CPF eu encontro o endere\u00e7o de uma pessoa, ent\u00e3o com este mesmo n\u00famero mais a idade da pessoa eu posso encontrar o endere\u00e7o tamb\u00e9m.<\/p>\n<p><b>Transitividade<\/b><br \/>\nA -&gt; B e B -&gt; C ent\u00e3o A -&gt; C<br \/>\nExemplo:<br \/>\nCPF -&gt; c\u00f3digo-cidade e c\u00f3digo-cidade -&gt; nome-cidade ent\u00e3o CPF -&gt; nome-cidade<br \/>\nLeia o exemplo acima da seguinte maneira:<br \/>\nSe com um n\u00famero de CPF eu encontro o c\u00f3digo da cidade de uma pessoa, e com o c\u00f3digo da cidade eu encontro o nome da cidade, ent\u00e3o com o n\u00famero do CPF eu posso encontrar o nome da cidade.<\/p>\n<p><b>Pseudo-Transitividade<\/b><br \/>\nA -&gt; B e BC -&gt; D ent\u00e3o AC -&gt; D<br \/>\nExemplo:<br \/>\nCPF -&gt; c\u00f3digo-funcion\u00e1rio e c\u00f3digo-funcion\u00e1rio, m\u00eas -&gt; sal\u00e1rio-funcion\u00e1rio ent\u00e3o CPF, m\u00eas -&gt; sal\u00e1rio-funcion\u00e1rio<br \/>\nLeia o exemplo acima da seguinte maneira:<br \/>\nSe com um n\u00famero de CPF eu encontro o c\u00f3digo do funcion\u00e1rio, e com o c\u00f3digo do funcion\u00e1rio mais um certo m\u00eas eu encontro o sal\u00e1rio que ele recebeu naquele m\u00eas, ent\u00e3o com o n\u00famero do CPF mais um certo m\u00eas eu posso encontrar o sal\u00e1rio que ele recebeu naquele m\u00eas.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Normaliza\u00e7\u00e3o<\/strong>\n<ul>\n<li>Processo de transforma\u00e7\u00f5es das rela\u00e7\u00f5es (tabelas representando entidades e relacionamentos) em novas rela\u00e7\u00f5es pela aplica\u00e7\u00e3o de proje\u00e7\u00f5es (quebra e granulariza\u00e7\u00e3o das tabelas)<\/li>\n<li>Consequ\u00eancias:\n<ul>\n<li>Diminuem problemas de anomalias e inconsist\u00eancias<\/li>\n<li>Rela\u00e7\u00f5es simplificadas e estrutura regular<\/li>\n<li>Aumento da integridade dos dados<\/li>\n<li>Necessidade de realiza\u00e7\u00e3o de agregamentos<\/li>\n<li>Eventual queda na performance<\/li>\n<\/ul>\n<\/li>\n<li>5 Formas normais<\/li>\n<li><strong>1a. Forma Normal:<\/strong>\n<ul>\n<li>Todos os atributos admitem apenas valores at\u00f4micos<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-72\" src=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/1ec455344c8a1517c98c97f5a583641e.png\" alt=\"1ec455344c8a1517c98c97f5a583641e\" width=\"295\" height=\"222\" \/><\/li>\n<\/ul>\n<\/li>\n<li><strong>2a. Forma Normal<\/strong>\n<ul>\n<li>Cada atributo n\u00e3o chave \u00e9 dependente de toda a chave prim\u00e1ria<a href=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/238e398f3558556612e5c8d287375225.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-73\" src=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/238e398f3558556612e5c8d287375225.png\" alt=\"238e398f3558556612e5c8d287375225\" width=\"298\" height=\"226\" \/><\/a><\/li>\n<li>Problemas Solucionados\n<ul>\n<li>Inser\u00e7\u00e3o\n<ul>\n<li>Fornecedor somente poder\u00e1 ser cadastrado quando fornecer pelo menos 1 pe\u00e7a<\/li>\n<\/ul>\n<\/li>\n<li>Remo\u00e7\u00e3o:\n<ul>\n<li>Ao se remover algum pedido remove-se tamb\u00e9m a informa\u00e7\u00e3o de localidadeassociadaao fornecedor a que se refere o pedido<\/li>\n<\/ul>\n<\/li>\n<li>Atualiza\u00e7\u00e3o\n<ul>\n<li>Redund\u00e2ncia de informa\u00e7\u00f5es em diversas tuplas. Ex: Mudan\u00e7a do endere\u00e7o de um fornecedor<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>3a. Forma Normal<\/strong>\n<ul>\n<li>Cada atributo chave \u00e9 dependente n\u00e3o transitivo da chave prim\u00e1ria<a href=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/c55fdeda421c251c152ab89f7ce9b8d0.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-74\" src=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/c55fdeda421c251c152ab89f7ce9b8d0-300x190.png\" alt=\"c55fdeda421c251c152ab89f7ce9b8d0\" width=\"300\" height=\"190\" srcset=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/c55fdeda421c251c152ab89f7ce9b8d0-300x190.png 300w, https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/c55fdeda421c251c152ab89f7ce9b8d0.png 349w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/li>\n<li>Problemas Solucionados 3a. FN\n<ul>\n<li>Inser\u00e7\u00e3o:\n<ul>\n<li>N\u00e3o se pode registrar o fato de uma cidade ter um determinado porte at\u00e9 que haja um fornecedor daquela cidade<\/li>\n<\/ul>\n<\/li>\n<li>Remo\u00e7\u00e3o:\n<ul>\n<li>Removendo-se o \u00faltimo fornecedor de uma cidade perde-se a informa\u00e7\u00e3o porte<\/li>\n<\/ul>\n<\/li>\n<li>Atualiza\u00e7\u00e3o:\n<ul>\n<li>Quando uma cidade muda de porte pode ser necess\u00e1rio atualizar diversas tuplas de fornecedor<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><\/li>\n<li><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-17-\u00e0s-20.35.10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-81\" src=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-17-\u00e0s-20.35.10-300x175.png\" alt=\"Captura de Tela 2014-09-17 \u00e0s 20.35.10\" width=\"300\" height=\"175\" srcset=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-17-\u00e0s-20.35.10-300x175.png 300w, https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-17-\u00e0s-20.35.10-1024x600.png 1024w, https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-17-\u00e0s-20.35.10.png 1069w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>\n<ul>\n<li>Restri\u00e7\u00f5es de Integridade\n<ul>\n<li>Integridade de Chave<\/li>\n<li>Integridade de Entidade<\/li>\n<li>Integridade Referencial<\/li>\n<\/ul>\n<\/li>\n<li>Tipos:\n<ul>\n<li>Restri\u00e7\u00f5es impl\u00edcitas<\/li>\n<li>Restri\u00e7\u00f5es Expl\u00edcitas\n<ul>\n<li>Especifica\u00e7\u00e3o procedimental<\/li>\n<li>Especifica\u00e7\u00e3o declarativa<\/li>\n<li>Especifica\u00e7\u00e3o de Triggers<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\u00a0<strong>Forma normal de Boyce-Codd &#8211; FNBC<\/strong><br \/>\nUma rela\u00e7\u00e3o R est\u00e1 na forma normal de Boyce-Codd<br \/>\nse para toda depend\u00eancia funcional X \u2192 Y associada<br \/>\ncom R uma das seguintes afirma\u00e7\u00f5es \u00e9 verdadeira:<\/p>\n<ul>\n<li>Y \u2286 X (i.e, X \u2192 Y \u00e9 DF trivial);ou<\/li>\n<li>\u00a0X \u00e9 superchave de R;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Exemplo:<br \/>\nEst\u00e1 na FNBC: emp(ecod, ename, title), pay(title, sal),<br \/>\n\u00c9 raro uma rela\u00e7\u00e3o estar na 3FN e n\u00e3o estar na<br \/>\nFNBC, mas vejamos dois exemplos.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Exemplo de normaliza\u00e7\u00e3o at\u00e9 a FNBC<\/strong><br \/>\nSeja o esquema de lotes a venda em um Estado:<br \/>\nlotes(propriedadeNum, cidade, loteNum, area, preco, imposto)<br \/>\nchaves prim\u00e1ria: propriedadeNum;<br \/>\nDF1: propriedadeNum \u00e9 chave prim\u00e1ria<br \/>\nDF2: (cidade, loteNum) \u00e9 chave candidata<br \/>\nDF3: cidade \u2192 imposto; % imposto fixo por cidade<br \/>\nDF4: area \u2192 preco; % pre\u00e7o por \u00e1rea independente<br \/>\n. \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 % dos demais atributos<br \/>\nDF5: area \u2192 cidade; % dom\u00ednio de tamanhos<br \/>\n. \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 % disjuntos por cidade<\/p>\n<p><strong><span style=\"color: #ff0000;\">Est\u00e1 na 1FN? E na 2FN? E na 3FN? E na FNBC?<\/span><\/strong><\/p>\n<p><span style=\"color: #00ffff;\"><strong>Exemplo lotes: 1FN <\/strong><\/span><\/p>\n<p>lotes(propriedadeNum, cidade, loteNum, area, preco, imposto)<br \/>\nEst\u00e1 na 1FN, mas n\u00e3o na 2FN, pois:<br \/>\nDF2: (cidade, loteNum) \u2192 propriedadeNum, area, preco, imposto<br \/>\nDF3: cidade \u2192 imposto<br \/>\nImposto \u00e9 parcialmente dependente da chave<br \/>\n(cidade, loteNum)<\/p>\n<p><strong><span style=\"color: #00ffff;\">Exemplo lotes1 e lotes2: 2FN<\/span><\/strong><br \/>\nlotes1(propriedadeNum, cidade, loteNum, area, preco)<br \/>\nlotes2(cidade, imposto)<br \/>\nlotes2 est\u00e1 na 3FN;<br \/>\nlotes1 est\u00e1 na 2FN, mas n\u00e3o na 3FN, pois:<br \/>\nDF4: area \u2192 preco;<br \/>\n&#8211; area n\u00e3o \u00e9 superchave e pre\u00e7o n\u00e3o \u00e9 atributo principal<\/p>\n<p><span style=\"color: #00ffff;\"><strong>Exemplo lotes1 e lotes2: 3FN<\/strong><\/span><br \/>\nlotes1a(propriedadeNum, cidade, loteNum, area)<br \/>\nlotes1b(area, preco)<br \/>\nlotes2(cidade, imposto)<br \/>\nLotes1a, lotes1b e lotes2 est\u00e3o na 3FN, mas<br \/>\nlotes1a n\u00e3o est\u00e1 na FNBC, pois:<br \/>\nDF5: area \u2192 cidade;<br \/>\nObserve que lotes1a est\u00e1 na 3FN porque, embora area<br \/>\nn\u00e3o seja superchave, cidade \u00e9 atributo principal.<br \/>\nEntretanto isso n\u00e3o \u00e9 relevante para a FNBC<\/p>\n<p>&nbsp;<\/p>\n<p><strong><span style=\"color: #00ffff;\">Exemplo lotes na FNBC<\/span><\/strong><br \/>\nlotes1ax(propriedadeNum, loteNum, area)<br \/>\nlotes1ay(area, cidade)<br \/>\nlotes1b(area, preco)<br \/>\nlotes2(cidade, imposto)<br \/>\nObserve que a DF2 foi perdida nesta decomposi\u00e7\u00e3o<\/p>\n<p><span style=\"color: #00ccff;\"><strong>Outro Exemplo de 3FN x FNBC<\/strong><\/span><br \/>\nensina(aluno, disciplina, professor)<br \/>\nDF1: {aluno, disciplina} \u2192 professor;<br \/>\nDF2: professor \u2192 disciplina; % cada professor<br \/>\n% leciona uma disciplina<br \/>\n1FN: atributos s\u00e3o at\u00f4micos? Sim<br \/>\n2FN: h\u00e1 depend\u00eancia parcial? N\u00e3o, logo est\u00e1 na 2FN<br \/>\n3FN: depend\u00eancias de superchaves ou apontando para<br \/>\natributos principais? sim, logo est\u00e1 na 3FN<br \/>\nFNBC: depend\u00eancias de superchaves? <span style=\"color: #ff0000;\">N\u00e3o, veja DF2<\/span><br \/>\n<span style=\"color: #ff0000;\">Como decompor ensina?<\/span><\/p>\n<p><span style=\"color: #00ccff;\">Alternativas de decomposi\u00e7\u00e3o na FNBC<\/span><br \/>\n1. (aluno, professor), (aluno, disciplina)<br \/>\n2. (disciplina, professor), (aluno, disciplina)<br \/>\n3. (disciplina, professor), (aluno, professor)<br \/>\nTodas perdem DF1, mas em 3. evitamos tuplas falsas ap\u00f3s<br \/>\numa jun\u00e7\u00e3o. Ex. de inst\u00e2ncia:<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-17-\u00e0s-21.10.571.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-85\" src=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-17-\u00e0s-21.10.571-300x112.png\" alt=\"Captura de Tela 2014-09-17 \u00e0s 21.10.57\" width=\"300\" height=\"112\" srcset=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-17-\u00e0s-21.10.571-300x112.png 300w, https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-17-\u00e0s-21.10.571-1024x385.png 1024w, https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-17-\u00e0s-21.10.571.png 1073w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Estudo para a Prova:<\/p>\n<p>Construa um Diagrama Modelo Entidade Relacionamento tabular (Relacional) agrupando os atributos nas tabelas que v\u00e3o representar as entidades e os relacionamentos do seu banco de dados<\/p>\n<p>Construa os diagramas de depend\u00eancias funcionais para as tabelas propostas (Diagrama relacional)<br \/>\nGaranta que cada atributo ser\u00e1 at\u00f4mico (isto, \u00e9, n\u00e3o pode ser dividido) para se obter um modelo na 1a. FN<br \/>\nElimine as depend\u00eancias parciais da chave prim\u00e1ria em suas tabelas para obter um projeto na 2a. FN<br \/>\nElimine as depend\u00eancias transitivas nas tabelas (se houver), obtendo um esquena na 3a. FN<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;O Objetivo b\u00e1sico do projeto de banco de dados \u00e9 possibilitar ao usu\u00e1rio obter a informa\u00e7\u00e3o exata em um limite aceit\u00e1vel de tempo, de maneira a executar sua tarefa dentro da organiza\u00e7\u00e3o&#8221; (Teorey e Fry) &#8220;O Objetivo do projeto de um banco de dados relacional \u00e9 gerar um conjunto de esquemas relacionais que nos permita [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[16],"class_list":["post-71","post","type-post","status-publish","format-standard","hentry","category-bd","tag-normalizacao"],"_links":{"self":[{"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/posts\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=71"}],"version-history":[{"count":4,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/posts\/71\/revisions"}],"predecessor-version":[{"id":86,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/posts\/71\/revisions\/86"}],"wp:attachment":[{"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}