{"id":6549,"date":"2026-02-05T09:36:46","date_gmt":"2026-02-05T01:36:46","guid":{"rendered":"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/"},"modified":"2026-02-05T09:36:46","modified_gmt":"2026-02-05T01:36:46","slug":"designing-a-library-system-from-erd-to-normalization-to-database-schema","status":"publish","type":"post","link":"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/","title":{"rendered":"Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados"},"content":{"rendered":"<h2>Introdu\u00e7\u00e3o<\/h2>\n<p>Projetar um sistema de banco de dados robusto e eficiente \u00e9 um passo fundamental no desenvolvimento de um sistema de gest\u00e3o de biblioteca. Esse processo envolve v\u00e1rias etapas, come\u00e7ando pelo design do Diagrama Entidade-Relacionamento (ERD), seguido pela normaliza\u00e7\u00e3o e, finalmente, pela cria\u00e7\u00e3o do esquema de banco de dados. Neste artigo, percorreremos cada uma dessas etapas, demonstrando como transformar um conceito em um banco de dados para sistema de biblioteca bem estruturado e otimizado.<\/p>\n<h2>Processo de Modelagem de Dados a partir do ERD, Normaliza\u00e7\u00e3o e Esquema de Banco de Dados<\/h2>\n<ol>\n<li>Diagrama Entidade-Relacionamento (ERD)<\/li>\n<\/ol>\n<p>O primeiro passo no projeto de um banco de dados para um sistema de biblioteca \u00e9 criar um Diagrama Entidade-Relacionamento (ERD). Um ERD \u00e9 uma representa\u00e7\u00e3o visual das entidades de dados e de suas rela\u00e7\u00f5es dentro do sistema. Aqui est\u00e3o alguns componentes principais a considerar:<\/p>\n<p>a. Entidades: Identifique as entidades principais no seu sistema de biblioteca. Elas podem incluir livros, autores, usu\u00e1rios, funcion\u00e1rios e transa\u00e7\u00f5es.<\/p>\n<p>b. Atributos: Para cada entidade, defina os atributos ou propriedades. Por exemplo, uma entidade \u201cLivro\u201d pode ter atributos como ISBN, t\u00edtulo, autor, data de publica\u00e7\u00e3o, entre outros.<\/p>\n<p>c. Rela\u00e7\u00f5es: Determine as rela\u00e7\u00f5es entre entidades. Por exemplo, uma entidade \u201cUsu\u00e1rio\u201d pode ter uma rela\u00e7\u00e3o \u201cEmprestar\u201d com uma entidade \u201cLivro\u201d para representar o empr\u00e9stimo de livros.<\/p>\n<p>d. Cardinalidade: Especifique a cardinalidade das rela\u00e7\u00f5es, indicando quantas inst\u00e2ncias de uma entidade est\u00e3o associadas a outra. Por exemplo, um usu\u00e1rio pode emprestar m\u00faltiplos livros, mas cada livro pode ser emprestado por apenas um usu\u00e1rio por vez.<\/p>\n<ol start=\"2\">\n<li>Normaliza\u00e7\u00e3o<\/li>\n<\/ol>\n<p>A normaliza\u00e7\u00e3o \u00e9 o processo de organizar os dados em um banco de dados para eliminar redund\u00e2ncias e melhorar a integridade dos dados. O objetivo \u00e9 minimizar a duplica\u00e7\u00e3o de dados e garantir que cada pe\u00e7a de informa\u00e7\u00e3o seja armazenada no local mais apropriado. Aqui est\u00e3o os passos envolvidos na normaliza\u00e7\u00e3o de um banco de dados para sistema de biblioteca:<\/p>\n<p>a. Identificar Depend\u00eancias Funcionais: Analise os atributos nas suas entidades e determine quais atributos dependem de outros. Por exemplo, na entidade \u201cLivro\u201d, o nome do autor depende do ISBN do livro.<\/p>\n<p>b. Aplicar as Regras de Normaliza\u00e7\u00e3o: Use as regras de normaliza\u00e7\u00e3o (por exemplo, Primeira Forma Normal, Segunda Forma Normal, Terceira Forma Normal) para dividir entidades complexas em entidades mais simples e criar tabelas separadas para informa\u00e7\u00f5es relacionadas.<\/p>\n<p>c. Criar Rela\u00e7\u00f5es: Estabele\u00e7a rela\u00e7\u00f5es entre as tabelas normalizadas usando chaves prim\u00e1rias e chaves estrangeiras para manter a integridade dos dados.<\/p>\n<p>d. Eliminar Redund\u00e2ncia: Certifique-se de que cada pe\u00e7a de dados seja armazenada em apenas um local. Por exemplo, as informa\u00e7\u00f5es do autor devem ser armazenadas em uma tabela separada chamada \u201cAutor\u201d, em vez de serem duplicadas em cada entrada de livro.<\/p>\n<ol start=\"3\">\n<li>Esquema de Banco de Dados<\/li>\n<\/ol>\n<p>Uma vez que o seu banco de dados esteja totalmente normalizado, voc\u00ea pode prosseguir para criar o esquema do banco de dados. O esquema define a estrutura do banco de dados, incluindo tabelas, colunas, tipos de dados e restri\u00e7\u00f5es. Aqui est\u00e3o os passos para criar um esquema de banco de dados para um sistema de biblioteca:<\/p>\n<p>a. Definir Tabelas: Crie tabelas com base nas entidades que voc\u00ea identificou no ERD e nos dados normalizados. Cada tabela deve representar uma entidade espec\u00edfica (por exemplo, \u201cLivros\u201d, \u201cAutores\u201d, \u201cUsu\u00e1rios\u201d).<\/p>\n<p>b. Definir Colunas: Especifique as colunas para cada tabela, representando os atributos identificados no ERD. Certifique-se de que os tipos de dados e restri\u00e7\u00f5es (por exemplo, chaves prim\u00e1rias, chaves estrangeiras, restri\u00e7\u00f5es \u00fanicas) sejam definidos corretamente.<\/p>\n<p>c. Estabelecer Rela\u00e7\u00f5es: Use chaves estrangeiras para estabelecer rela\u00e7\u00f5es entre tabelas, ligando dados relacionados. Por exemplo, a tabela \u201cLivros\u201d pode ter uma chave estrangeira que referencia a tabela \u201cAutores\u201d.<\/p>\n<p>d. Indexa\u00e7\u00e3o: Implemente indexa\u00e7\u00e3o em colunas frequentemente usadas para busca, a fim de melhorar o desempenho das consultas.<\/p>\n<h2>Estudo de Caso: Sistema de Biblioteca<\/h2>\n<h3>Diagrama de Relacionamento de Entidades<\/h3>\n<p>Definimos quatro tabelas: Autores, Livros, Usu\u00e1rios e Transa\u00e7\u00f5es. Aqui est\u00e1 o que cada tabela representa:<\/p>\n<ol>\n<li>Autores: Cont\u00e9m informa\u00e7\u00f5es sobre os autores dos livros. Possui um AuthorID como chave prim\u00e1ria e um atributo Nome.<\/li>\n<li>Livros: Representa os detalhes do livro. Inclui ISBN (Chave Prim\u00e1ria), T\u00edtulo, Data de Publica\u00e7\u00e3o e um AuthorID como chave estrangeira, referenciando a tabela Autores para estabelecer uma rela\u00e7\u00e3o entre livros e autores.<\/li>\n<li>Usu\u00e1rios: Armazena informa\u00e7\u00f5es sobre os usu\u00e1rios da biblioteca. Possui um PatronID como chave prim\u00e1ria e um atributo Nome.<\/li>\n<li>Transa\u00e7\u00f5es: Esta tabela registra as transa\u00e7\u00f5es quando os usu\u00e1rios emprestam livros. Inclui um TransactionID (Chave Prim\u00e1ria), BookID (chave estrangeira que referencia Livros), PatronID (chave estrangeira que referencia Usu\u00e1rios) e DueDate.<\/li>\n<\/ol>\n<p>As rela\u00e7\u00f5es entre essas tabelas s\u00e3o representadas da seguinte forma:<\/p>\n<ul>\n<li>Autores e livros est\u00e3o ligados por uma rela\u00e7\u00e3o um-para-muitos, indicando que um autor pode escrever v\u00e1rios livros.<\/li>\n<li>Livros e transa\u00e7\u00f5es est\u00e3o ligados, representando o fato de que cada livro pode fazer parte de m\u00faltiplas transa\u00e7\u00f5es, mas cada transa\u00e7\u00e3o corresponde a um \u00fanico livro.<\/li>\n<li>Leitores e transa\u00e7\u00f5es est\u00e3o conectados, indicando que cada leitor pode ter m\u00faltiplas transa\u00e7\u00f5es, mas cada transa\u00e7\u00e3o pertence a um \u00fanico leitor.<\/li>\n<\/ul>\n<h3>Processo de Normaliza\u00e7\u00e3o<\/h3>\n<p>Vamos percorrer o processo de normaliza\u00e7\u00e3o para o banco de dados do nosso sistema de biblioteca usando tabelas. Vamos come\u00e7ar com um conjunto inicial de tabelas e normaliz\u00e1-las progressivamente pela Primeira Forma Normal (1FN), Segunda Forma Normal (2FN) e Terceira Forma Normal (3FN).<\/p>\n<p><strong>Tabelas Iniciais:<\/strong><\/p>\n<ol>\n<li>Livros\n<ul>\n<li>ISBN (PK)<\/li>\n<li>T\u00edtulo<\/li>\n<li>Data de Publica\u00e7\u00e3o<\/li>\n<li>AuthorID (FK)<\/li>\n<\/ul>\n<\/li>\n<li>Autores\n<ul>\n<li>AuthorID (PK)<\/li>\n<li>Nome<\/li>\n<\/ul>\n<\/li>\n<li>Leitores\n<ul>\n<li>PatronID (PK)<\/li>\n<li>Nome<\/li>\n<\/ul>\n<\/li>\n<li>Transa\u00e7\u00f5es\n<ul>\n<li>TransactionID (PK)<\/li>\n<li>BookID (FK)<\/li>\n<li>PatronID (FK)<\/li>\n<li>Data de Vencimento<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><strong>Primeira Forma Normal (1FN):<\/strong><\/p>\n<p>Na Primeira Forma Normal, cada tabela deve ter uma chave prim\u00e1ria, e n\u00e3o deve haver grupos repetidos ou arrays em nenhuma coluna. Nossas tabelas iniciais j\u00e1 satisfazem a 1FN porque possuem chaves prim\u00e1rias e cada c\u00e9lula cont\u00e9m um \u00fanico valor.<\/p>\n<p><strong>Segunda Forma Normal (2FN):<\/strong><\/p>\n<p>Para alcan\u00e7ar a 2FN, precisamos garantir que os atributos n\u00e3o-chave dependam da chave prim\u00e1ria inteira. Nas nossas tabelas iniciais, a tabela Livros possui depend\u00eancia parcial, pois T\u00edtulo e Data de Publica\u00e7\u00e3o dependem apenas do ISBN, e n\u00e3o da chave prim\u00e1ria inteira. Vamos dividir a tabela Livros em duas tabelas:<\/p>\n<p><strong>Livros (2FN):<\/strong><\/p>\n<ul>\n<li>ISBN (PK)<\/li>\n<li>AuthorID (FK)<\/li>\n<\/ul>\n<p><strong>Detalhes do Livro (2FN):<\/strong><\/p>\n<ul>\n<li>ISBN (FK)<\/li>\n<li>T\u00edtulo<\/li>\n<li>Data de Publica\u00e7\u00e3o<\/li>\n<\/ul>\n<p>Agora, cada tabela tem atributos que dependem da chave prim\u00e1ria inteira.<\/p>\n<p><strong>Terceira Forma Normal (3FN):<\/strong><\/p>\n<p>Na 3FN, eliminamos as depend\u00eancias transitivas. A tabela de Patr\u00f5es n\u00e3o possui depend\u00eancias transitivas, mas a tabela de Transa\u00e7\u00f5es possui uma depend\u00eancia transitiva sobre Livros atrav\u00e9s do BookID. Para remover essa depend\u00eancia, criaremos uma nova tabela para transa\u00e7\u00f5es:<\/p>\n<p><strong>Transa\u00e7\u00f5es (3FN):<\/strong><\/p>\n<ul>\n<li>ID da Transa\u00e7\u00e3o (PK)<\/li>\n<li>ID do Patr\u00e3o (FK)<\/li>\n<li>Data de Vencimento<\/li>\n<\/ul>\n<p><strong>Livros Emprestados (3FN):<\/strong><\/p>\n<ul>\n<li>ID da Transa\u00e7\u00e3o (FK)<\/li>\n<li>ID do Livro (FK)<\/li>\n<\/ul>\n<p>Agora, a tabela de Transa\u00e7\u00f5es depende apenas do ID do Patr\u00e3o, e a tabela de Livros Emprestados gerencia a rela\u00e7\u00e3o entre transa\u00e7\u00f5es e livros.<\/p>\n<p>Nossas tabelas normalizadas na 3FN s\u00e3o as seguintes:<\/p>\n<p><strong>Livros (3FN):<\/strong><\/p>\n<ul>\n<li>ISBN (PK)<\/li>\n<li>ID do Autor (FK)<\/li>\n<\/ul>\n<p><strong>Detalhes do Livro (3FN):<\/strong><\/p>\n<ul>\n<li>ISBN (FK)<\/li>\n<li>T\u00edtulo<\/li>\n<li>Data de Publica\u00e7\u00e3o<\/li>\n<\/ul>\n<p><strong>Autores (3FN):<\/strong><\/p>\n<ul>\n<li>ID do Autor (PK)<\/li>\n<li>Nome<\/li>\n<\/ul>\n<p><strong>Patr\u00f5es (3FN):<\/strong><\/p>\n<ul>\n<li>ID do Patr\u00e3o (PK)<\/li>\n<li>Nome<\/li>\n<\/ul>\n<p><strong>Transa\u00e7\u00f5es (3FN):<\/strong><\/p>\n<ul>\n<li>ID da Transa\u00e7\u00e3o (PK)<\/li>\n<li>PatronID (FK)<\/li>\n<li>DataDeVencimento<\/li>\n<\/ul>\n<p><strong>LivrosEmprestados (3FN):<\/strong><\/p>\n<ul>\n<li>TransactionID (FK)<\/li>\n<li>BookID (FK)<\/li>\n<\/ul>\n<p>Ao seguir o processo de normaliza\u00e7\u00e3o at\u00e9 a 3FN, melhoramos a integridade dos dados, reduzimos a redund\u00e2ncia e eliminamos depend\u00eancias indesejadas, resultando em um banco de dados bem estruturado e normalizado para o sistema de biblioteca.<\/p>\n<h3>Esquema do Banco de Dados<\/h3>\n<p>\u2014 Tabela para Autores<br \/>\nCREATE TABLE Autores (<br \/>\nAuthorID INT PRIMARY KEY,<br \/>\nNome VARCHAR(255)<br \/>\n);<\/p>\n<p>\u2014 Tabela para Livros<br \/>\nCREATE TABLE Livros (<br \/>\nISBN VARCHAR(13) PRIMARY KEY,<br \/>\nAuthorID INT,<br \/>\nFOREIGN KEY (AuthorID) REFERENCES Autores(AuthorID)<br \/>\n);<\/p>\n<p>\u2014 Tabela para Detalhes do Livro<br \/>\nCREATE TABLE DetalhesDoLivro (<br \/>\nISBN VARCHAR(13),<br \/>\nT\u00edtulo VARCHAR(255),<br \/>\nDataDePublica\u00e7\u00e3o DATE,<br \/>\nFOREIGN KEY (ISBN) REFERENCES Livros(ISBN)<br \/>\n);<\/p>\n<p>\u2014 Tabela para Leitores<br \/>\nCREATE TABLE Leitores (<br \/>\nPatronID INT PRIMARY KEY,<br \/>\nNome VARCHAR(255)<br \/>\n);<\/p>\n<p>\u2014 Tabela para Transa\u00e7\u00f5es<br \/>\nCREATE TABLE Transa\u00e7\u00f5es (<br \/>\nIDTransa\u00e7\u00e3o INT PRIMARY KEY,<br \/>\nIDLeitor INT,<br \/>\nDataDeVencimento DATE,<br \/>\nCHAVE ESTRANGEIRA (IDLeitor) REFERENCIA Leitores(IDLeitor)<br \/>\n);<\/p>\n<p>\u2014 Tabela para LivrosEmprestados (para representar a rela\u00e7\u00e3o muitos-para-muitos entre Transa\u00e7\u00f5es e Livros)<br \/>\nCREATE TABLE LivrosEmprestados (<br \/>\nIDTransa\u00e7\u00e3o INT,<br \/>\nISBN VARCHAR(13),<br \/>\nCHAVE ESTRANGEIRA (IDTransa\u00e7\u00e3o) REFERENCIA Transa\u00e7\u00f5es(IDTransa\u00e7\u00e3o),<br \/>\nCHAVE ESTRANGEIRA (ISBN) REFERENCIA Livros(ISBN)<br \/>\n);<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Projetar um banco de dados para um sistema de gest\u00e3o de biblioteca \u00e9 uma tarefa complexa, mas essencial. Ao come\u00e7ar com um diagrama ERD, normalizar os dados e, em seguida, criar um esquema de banco de dados bem estruturado, voc\u00ea pode garantir a integridade dos dados, reduzir a redund\u00e2ncia e otimizar o desempenho do banco de dados. Essa abordagem estruturada estabelece a base para um sistema de biblioteca confi\u00e1vel e eficiente que pode gerenciar de forma eficaz livros, autores, leitores e transa\u00e7\u00f5es.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o Projetar um sistema de banco de dados robusto e eficiente \u00e9 um passo fundamental no desenvolvimento de um sistema de gest\u00e3o de biblioteca. Esse processo envolve v\u00e1rias etapas, come\u00e7ando pelo design do Diagrama Entidade-Relacionamento (ERD), seguido pela normaliza\u00e7\u00e3o e, finalmente, pela cria\u00e7\u00e3o do esquema de banco de dados. Neste artigo, percorreremos cada uma dessas etapas, demonstrando como transformar um conceito em um banco de dados para sistema de biblioteca bem estruturado e otimizado. Processo de Modelagem de Dados a partir do ERD, Normaliza\u00e7\u00e3o e Esquema de Banco de Dados Diagrama Entidade-Relacionamento (ERD) O primeiro passo no projeto de um banco de dados para um sistema de biblioteca \u00e9 criar um Diagrama Entidade-Relacionamento (ERD). Um ERD \u00e9 uma representa\u00e7\u00e3o visual das entidades de dados e de suas rela\u00e7\u00f5es dentro do sistema. Aqui est\u00e3o alguns componentes principais a considerar: a. Entidades: Identifique as entidades principais no seu sistema de biblioteca. Elas podem incluir livros, autores, usu\u00e1rios, funcion\u00e1rios e transa\u00e7\u00f5es. b. Atributos: Para cada entidade, defina os atributos ou propriedades. Por exemplo, uma entidade \u201cLivro\u201d pode ter atributos como ISBN, t\u00edtulo, autor, data de publica\u00e7\u00e3o, entre outros. c. Rela\u00e7\u00f5es: Determine as rela\u00e7\u00f5es entre entidades. Por exemplo, uma entidade \u201cUsu\u00e1rio\u201d pode ter uma rela\u00e7\u00e3o \u201cEmprestar\u201d com uma entidade \u201cLivro\u201d para representar o empr\u00e9stimo de livros. d. Cardinalidade: Especifique a cardinalidade das rela\u00e7\u00f5es, indicando quantas inst\u00e2ncias de uma entidade est\u00e3o associadas a outra. Por exemplo, um usu\u00e1rio pode emprestar m\u00faltiplos livros, mas cada livro pode ser emprestado por apenas um usu\u00e1rio por vez. Normaliza\u00e7\u00e3o A normaliza\u00e7\u00e3o \u00e9 o processo de organizar os dados em um banco de dados para eliminar redund\u00e2ncias e melhorar a integridade dos dados. O objetivo \u00e9 minimizar a duplica\u00e7\u00e3o de dados e garantir que cada pe\u00e7a de informa\u00e7\u00e3o seja armazenada no local mais apropriado. Aqui est\u00e3o os passos envolvidos na normaliza\u00e7\u00e3o de um banco de dados para sistema de biblioteca: a. Identificar Depend\u00eancias Funcionais: Analise os atributos nas suas entidades e determine quais atributos dependem de outros. Por exemplo, na entidade \u201cLivro\u201d, o nome do autor depende do ISBN do livro. b. Aplicar as Regras de Normaliza\u00e7\u00e3o: Use as regras de normaliza\u00e7\u00e3o (por exemplo, Primeira Forma Normal, Segunda Forma Normal, Terceira Forma Normal) para dividir entidades complexas em entidades mais simples e criar tabelas separadas para informa\u00e7\u00f5es relacionadas. c. Criar Rela\u00e7\u00f5es: Estabele\u00e7a rela\u00e7\u00f5es entre as tabelas normalizadas usando chaves prim\u00e1rias e chaves estrangeiras para manter a integridade dos dados. d. Eliminar Redund\u00e2ncia: Certifique-se de que cada pe\u00e7a de dados seja armazenada em apenas um local. Por exemplo, as informa\u00e7\u00f5es do autor devem ser armazenadas em uma tabela separada chamada \u201cAutor\u201d, em vez de serem duplicadas em cada entrada de livro. Esquema de Banco de Dados Uma vez que o seu banco de dados esteja totalmente normalizado, voc\u00ea pode prosseguir para criar o esquema do banco de dados. O esquema define a estrutura do banco de dados, incluindo tabelas, colunas, tipos de dados e restri\u00e7\u00f5es. Aqui est\u00e3o os passos para criar um esquema de banco de dados para um sistema de biblioteca: a. Definir Tabelas: Crie tabelas com base nas entidades que voc\u00ea identificou no ERD e nos dados normalizados. Cada tabela deve representar uma entidade espec\u00edfica (por exemplo, \u201cLivros\u201d, \u201cAutores\u201d, \u201cUsu\u00e1rios\u201d). b. Definir Colunas: Especifique as colunas para cada tabela, representando os atributos identificados no ERD. Certifique-se de que os tipos de dados e restri\u00e7\u00f5es (por exemplo, chaves prim\u00e1rias, chaves estrangeiras, restri\u00e7\u00f5es \u00fanicas) sejam definidos corretamente. c. Estabelecer Rela\u00e7\u00f5es: Use chaves estrangeiras para estabelecer rela\u00e7\u00f5es entre tabelas, ligando dados relacionados. Por exemplo, a tabela \u201cLivros\u201d pode ter uma chave estrangeira que referencia a tabela \u201cAutores\u201d. d. Indexa\u00e7\u00e3o: Implemente indexa\u00e7\u00e3o em colunas frequentemente usadas para busca, a fim de melhorar o desempenho das consultas. Estudo de Caso: Sistema de Biblioteca Diagrama de Relacionamento de Entidades Definimos quatro tabelas: Autores, Livros, Usu\u00e1rios e Transa\u00e7\u00f5es. Aqui est\u00e1 o que cada tabela representa: Autores: Cont\u00e9m informa\u00e7\u00f5es sobre os autores dos livros. Possui um AuthorID como chave prim\u00e1ria e um atributo Nome. Livros: Representa os detalhes do livro. Inclui ISBN (Chave Prim\u00e1ria), T\u00edtulo, Data de Publica\u00e7\u00e3o e um AuthorID como chave estrangeira, referenciando a tabela Autores para estabelecer uma rela\u00e7\u00e3o entre livros e autores. Usu\u00e1rios: Armazena informa\u00e7\u00f5es sobre os usu\u00e1rios da biblioteca. Possui um PatronID como chave prim\u00e1ria e um atributo Nome. Transa\u00e7\u00f5es: Esta tabela registra as transa\u00e7\u00f5es quando os usu\u00e1rios emprestam livros. Inclui um TransactionID (Chave Prim\u00e1ria), BookID (chave estrangeira que referencia Livros), PatronID (chave estrangeira que referencia Usu\u00e1rios) e DueDate. As rela\u00e7\u00f5es entre essas tabelas s\u00e3o representadas da seguinte forma: Autores e livros est\u00e3o ligados por uma rela\u00e7\u00e3o um-para-muitos, indicando que um autor pode escrever v\u00e1rios livros. Livros e transa\u00e7\u00f5es est\u00e3o ligados, representando o fato de que cada livro pode fazer parte de m\u00faltiplas transa\u00e7\u00f5es, mas cada transa\u00e7\u00e3o corresponde a um \u00fanico livro. Leitores e transa\u00e7\u00f5es est\u00e3o conectados, indicando que cada leitor pode ter m\u00faltiplas transa\u00e7\u00f5es, mas cada transa\u00e7\u00e3o pertence a um \u00fanico leitor. Processo de Normaliza\u00e7\u00e3o Vamos percorrer o processo de normaliza\u00e7\u00e3o para o banco de dados do nosso sistema de biblioteca usando tabelas. Vamos come\u00e7ar com um conjunto inicial de tabelas e normaliz\u00e1-las progressivamente pela Primeira Forma Normal (1FN), Segunda Forma Normal (2FN) e Terceira Forma Normal (3FN). Tabelas Iniciais: Livros ISBN (PK) T\u00edtulo Data de Publica\u00e7\u00e3o AuthorID (FK) Autores AuthorID (PK) Nome Leitores PatronID (PK) Nome Transa\u00e7\u00f5es TransactionID (PK) BookID (FK) PatronID (FK) Data de Vencimento Primeira Forma Normal (1FN): Na Primeira Forma Normal, cada tabela deve ter uma chave prim\u00e1ria, e n\u00e3o deve haver grupos repetidos ou arrays em nenhuma coluna. Nossas tabelas iniciais j\u00e1 satisfazem a 1FN porque possuem chaves prim\u00e1rias e cada c\u00e9lula cont\u00e9m um \u00fanico valor. Segunda Forma Normal (2FN): Para alcan\u00e7ar a 2FN, precisamos garantir que os atributos n\u00e3o-chave dependam da chave prim\u00e1ria inteira. Nas nossas tabelas iniciais, a tabela Livros possui depend\u00eancia parcial, pois T\u00edtulo e Data de Publica\u00e7\u00e3o dependem apenas do ISBN, e n\u00e3o da chave prim\u00e1ria inteira. Vamos dividir a tabela Livros em duas tabelas: Livros (2FN): ISBN (PK) AuthorID (FK) Detalhes do Livro (2FN): ISBN (FK) T\u00edtulo Data de Publica\u00e7\u00e3o<a href=\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\" rel=\"bookmark\"><span class=\"screen-reader-text\">Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_eb_attr":"","neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[17],"tags":[],"class_list":["post-6549","post","type-post","status-publish","format-standard","hentry","category-data-modeling-database"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados - Visual Paradigm Guides Portuguese<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados - Visual Paradigm Guides Portuguese\" \/>\n<meta property=\"og:description\" content=\"Introdu\u00e7\u00e3o Projetar um sistema de banco de dados robusto e eficiente \u00e9 um passo fundamental no desenvolvimento de um sistema de gest\u00e3o de biblioteca. Esse processo envolve v\u00e1rias etapas, come\u00e7ando pelo design do Diagrama Entidade-Relacionamento (ERD), seguido pela normaliza\u00e7\u00e3o e, finalmente, pela cria\u00e7\u00e3o do esquema de banco de dados. Neste artigo, percorreremos cada uma dessas etapas, demonstrando como transformar um conceito em um banco de dados para sistema de biblioteca bem estruturado e otimizado. Processo de Modelagem de Dados a partir do ERD, Normaliza\u00e7\u00e3o e Esquema de Banco de Dados Diagrama Entidade-Relacionamento (ERD) O primeiro passo no projeto de um banco de dados para um sistema de biblioteca \u00e9 criar um Diagrama Entidade-Relacionamento (ERD). Um ERD \u00e9 uma representa\u00e7\u00e3o visual das entidades de dados e de suas rela\u00e7\u00f5es dentro do sistema. Aqui est\u00e3o alguns componentes principais a considerar: a. Entidades: Identifique as entidades principais no seu sistema de biblioteca. Elas podem incluir livros, autores, usu\u00e1rios, funcion\u00e1rios e transa\u00e7\u00f5es. b. Atributos: Para cada entidade, defina os atributos ou propriedades. Por exemplo, uma entidade \u201cLivro\u201d pode ter atributos como ISBN, t\u00edtulo, autor, data de publica\u00e7\u00e3o, entre outros. c. Rela\u00e7\u00f5es: Determine as rela\u00e7\u00f5es entre entidades. Por exemplo, uma entidade \u201cUsu\u00e1rio\u201d pode ter uma rela\u00e7\u00e3o \u201cEmprestar\u201d com uma entidade \u201cLivro\u201d para representar o empr\u00e9stimo de livros. d. Cardinalidade: Especifique a cardinalidade das rela\u00e7\u00f5es, indicando quantas inst\u00e2ncias de uma entidade est\u00e3o associadas a outra. Por exemplo, um usu\u00e1rio pode emprestar m\u00faltiplos livros, mas cada livro pode ser emprestado por apenas um usu\u00e1rio por vez. Normaliza\u00e7\u00e3o A normaliza\u00e7\u00e3o \u00e9 o processo de organizar os dados em um banco de dados para eliminar redund\u00e2ncias e melhorar a integridade dos dados. O objetivo \u00e9 minimizar a duplica\u00e7\u00e3o de dados e garantir que cada pe\u00e7a de informa\u00e7\u00e3o seja armazenada no local mais apropriado. Aqui est\u00e3o os passos envolvidos na normaliza\u00e7\u00e3o de um banco de dados para sistema de biblioteca: a. Identificar Depend\u00eancias Funcionais: Analise os atributos nas suas entidades e determine quais atributos dependem de outros. Por exemplo, na entidade \u201cLivro\u201d, o nome do autor depende do ISBN do livro. b. Aplicar as Regras de Normaliza\u00e7\u00e3o: Use as regras de normaliza\u00e7\u00e3o (por exemplo, Primeira Forma Normal, Segunda Forma Normal, Terceira Forma Normal) para dividir entidades complexas em entidades mais simples e criar tabelas separadas para informa\u00e7\u00f5es relacionadas. c. Criar Rela\u00e7\u00f5es: Estabele\u00e7a rela\u00e7\u00f5es entre as tabelas normalizadas usando chaves prim\u00e1rias e chaves estrangeiras para manter a integridade dos dados. d. Eliminar Redund\u00e2ncia: Certifique-se de que cada pe\u00e7a de dados seja armazenada em apenas um local. Por exemplo, as informa\u00e7\u00f5es do autor devem ser armazenadas em uma tabela separada chamada \u201cAutor\u201d, em vez de serem duplicadas em cada entrada de livro. Esquema de Banco de Dados Uma vez que o seu banco de dados esteja totalmente normalizado, voc\u00ea pode prosseguir para criar o esquema do banco de dados. O esquema define a estrutura do banco de dados, incluindo tabelas, colunas, tipos de dados e restri\u00e7\u00f5es. Aqui est\u00e3o os passos para criar um esquema de banco de dados para um sistema de biblioteca: a. Definir Tabelas: Crie tabelas com base nas entidades que voc\u00ea identificou no ERD e nos dados normalizados. Cada tabela deve representar uma entidade espec\u00edfica (por exemplo, \u201cLivros\u201d, \u201cAutores\u201d, \u201cUsu\u00e1rios\u201d). b. Definir Colunas: Especifique as colunas para cada tabela, representando os atributos identificados no ERD. Certifique-se de que os tipos de dados e restri\u00e7\u00f5es (por exemplo, chaves prim\u00e1rias, chaves estrangeiras, restri\u00e7\u00f5es \u00fanicas) sejam definidos corretamente. c. Estabelecer Rela\u00e7\u00f5es: Use chaves estrangeiras para estabelecer rela\u00e7\u00f5es entre tabelas, ligando dados relacionados. Por exemplo, a tabela \u201cLivros\u201d pode ter uma chave estrangeira que referencia a tabela \u201cAutores\u201d. d. Indexa\u00e7\u00e3o: Implemente indexa\u00e7\u00e3o em colunas frequentemente usadas para busca, a fim de melhorar o desempenho das consultas. Estudo de Caso: Sistema de Biblioteca Diagrama de Relacionamento de Entidades Definimos quatro tabelas: Autores, Livros, Usu\u00e1rios e Transa\u00e7\u00f5es. Aqui est\u00e1 o que cada tabela representa: Autores: Cont\u00e9m informa\u00e7\u00f5es sobre os autores dos livros. Possui um AuthorID como chave prim\u00e1ria e um atributo Nome. Livros: Representa os detalhes do livro. Inclui ISBN (Chave Prim\u00e1ria), T\u00edtulo, Data de Publica\u00e7\u00e3o e um AuthorID como chave estrangeira, referenciando a tabela Autores para estabelecer uma rela\u00e7\u00e3o entre livros e autores. Usu\u00e1rios: Armazena informa\u00e7\u00f5es sobre os usu\u00e1rios da biblioteca. Possui um PatronID como chave prim\u00e1ria e um atributo Nome. Transa\u00e7\u00f5es: Esta tabela registra as transa\u00e7\u00f5es quando os usu\u00e1rios emprestam livros. Inclui um TransactionID (Chave Prim\u00e1ria), BookID (chave estrangeira que referencia Livros), PatronID (chave estrangeira que referencia Usu\u00e1rios) e DueDate. As rela\u00e7\u00f5es entre essas tabelas s\u00e3o representadas da seguinte forma: Autores e livros est\u00e3o ligados por uma rela\u00e7\u00e3o um-para-muitos, indicando que um autor pode escrever v\u00e1rios livros. Livros e transa\u00e7\u00f5es est\u00e3o ligados, representando o fato de que cada livro pode fazer parte de m\u00faltiplas transa\u00e7\u00f5es, mas cada transa\u00e7\u00e3o corresponde a um \u00fanico livro. Leitores e transa\u00e7\u00f5es est\u00e3o conectados, indicando que cada leitor pode ter m\u00faltiplas transa\u00e7\u00f5es, mas cada transa\u00e7\u00e3o pertence a um \u00fanico leitor. Processo de Normaliza\u00e7\u00e3o Vamos percorrer o processo de normaliza\u00e7\u00e3o para o banco de dados do nosso sistema de biblioteca usando tabelas. Vamos come\u00e7ar com um conjunto inicial de tabelas e normaliz\u00e1-las progressivamente pela Primeira Forma Normal (1FN), Segunda Forma Normal (2FN) e Terceira Forma Normal (3FN). Tabelas Iniciais: Livros ISBN (PK) T\u00edtulo Data de Publica\u00e7\u00e3o AuthorID (FK) Autores AuthorID (PK) Nome Leitores PatronID (PK) Nome Transa\u00e7\u00f5es TransactionID (PK) BookID (FK) PatronID (FK) Data de Vencimento Primeira Forma Normal (1FN): Na Primeira Forma Normal, cada tabela deve ter uma chave prim\u00e1ria, e n\u00e3o deve haver grupos repetidos ou arrays em nenhuma coluna. Nossas tabelas iniciais j\u00e1 satisfazem a 1FN porque possuem chaves prim\u00e1rias e cada c\u00e9lula cont\u00e9m um \u00fanico valor. Segunda Forma Normal (2FN): Para alcan\u00e7ar a 2FN, precisamos garantir que os atributos n\u00e3o-chave dependam da chave prim\u00e1ria inteira. Nas nossas tabelas iniciais, a tabela Livros possui depend\u00eancia parcial, pois T\u00edtulo e Data de Publica\u00e7\u00e3o dependem apenas do ISBN, e n\u00e3o da chave prim\u00e1ria inteira. Vamos dividir a tabela Livros em duas tabelas: Livros (2FN): ISBN (PK) AuthorID (FK) Detalhes do Livro (2FN): ISBN (FK) T\u00edtulo Data de Publica\u00e7\u00e3oProjetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados\" \/>\n<meta property=\"og:url\" content=\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\" \/>\n<meta property=\"og:site_name\" content=\"Visual Paradigm Guides Portuguese\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-05T01:36:46+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"vpadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\"},\"headline\":\"Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados\",\"datePublished\":\"2026-02-05T01:36:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\"},\"wordCount\":1558,\"commentCount\":0,\"articleSection\":[\"Data Modeling \/ Database\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\",\"url\":\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\",\"name\":\"Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados - Visual Paradigm Guides Portuguese\",\"isPartOf\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/pt\/#website\"},\"datePublished\":\"2026-02-05T01:36:46+00:00\",\"author\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/pt\/#\/schema\/person\/292e97a06c90d6d605ddfd451bfdfe6f\"},\"breadcrumb\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/guides.visual-paradigm.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data Modeling \/ Database\",\"item\":\"https:\/\/guides.visual-paradigm.com\/pt\/category\/data-modeling-database\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/pt\/#website\",\"url\":\"https:\/\/guides.visual-paradigm.com\/pt\/\",\"name\":\"Visual Paradigm Guides Portuguese\",\"description\":\"Smart guides for an AI-driven world\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/guides.visual-paradigm.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados - Visual Paradigm Guides Portuguese","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/","og_locale":"pt_PT","og_type":"article","og_title":"Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados - Visual Paradigm Guides Portuguese","og_description":"Introdu\u00e7\u00e3o Projetar um sistema de banco de dados robusto e eficiente \u00e9 um passo fundamental no desenvolvimento de um sistema de gest\u00e3o de biblioteca. Esse processo envolve v\u00e1rias etapas, come\u00e7ando pelo design do Diagrama Entidade-Relacionamento (ERD), seguido pela normaliza\u00e7\u00e3o e, finalmente, pela cria\u00e7\u00e3o do esquema de banco de dados. Neste artigo, percorreremos cada uma dessas etapas, demonstrando como transformar um conceito em um banco de dados para sistema de biblioteca bem estruturado e otimizado. Processo de Modelagem de Dados a partir do ERD, Normaliza\u00e7\u00e3o e Esquema de Banco de Dados Diagrama Entidade-Relacionamento (ERD) O primeiro passo no projeto de um banco de dados para um sistema de biblioteca \u00e9 criar um Diagrama Entidade-Relacionamento (ERD). Um ERD \u00e9 uma representa\u00e7\u00e3o visual das entidades de dados e de suas rela\u00e7\u00f5es dentro do sistema. Aqui est\u00e3o alguns componentes principais a considerar: a. Entidades: Identifique as entidades principais no seu sistema de biblioteca. Elas podem incluir livros, autores, usu\u00e1rios, funcion\u00e1rios e transa\u00e7\u00f5es. b. Atributos: Para cada entidade, defina os atributos ou propriedades. Por exemplo, uma entidade \u201cLivro\u201d pode ter atributos como ISBN, t\u00edtulo, autor, data de publica\u00e7\u00e3o, entre outros. c. Rela\u00e7\u00f5es: Determine as rela\u00e7\u00f5es entre entidades. Por exemplo, uma entidade \u201cUsu\u00e1rio\u201d pode ter uma rela\u00e7\u00e3o \u201cEmprestar\u201d com uma entidade \u201cLivro\u201d para representar o empr\u00e9stimo de livros. d. Cardinalidade: Especifique a cardinalidade das rela\u00e7\u00f5es, indicando quantas inst\u00e2ncias de uma entidade est\u00e3o associadas a outra. Por exemplo, um usu\u00e1rio pode emprestar m\u00faltiplos livros, mas cada livro pode ser emprestado por apenas um usu\u00e1rio por vez. Normaliza\u00e7\u00e3o A normaliza\u00e7\u00e3o \u00e9 o processo de organizar os dados em um banco de dados para eliminar redund\u00e2ncias e melhorar a integridade dos dados. O objetivo \u00e9 minimizar a duplica\u00e7\u00e3o de dados e garantir que cada pe\u00e7a de informa\u00e7\u00e3o seja armazenada no local mais apropriado. Aqui est\u00e3o os passos envolvidos na normaliza\u00e7\u00e3o de um banco de dados para sistema de biblioteca: a. Identificar Depend\u00eancias Funcionais: Analise os atributos nas suas entidades e determine quais atributos dependem de outros. Por exemplo, na entidade \u201cLivro\u201d, o nome do autor depende do ISBN do livro. b. Aplicar as Regras de Normaliza\u00e7\u00e3o: Use as regras de normaliza\u00e7\u00e3o (por exemplo, Primeira Forma Normal, Segunda Forma Normal, Terceira Forma Normal) para dividir entidades complexas em entidades mais simples e criar tabelas separadas para informa\u00e7\u00f5es relacionadas. c. Criar Rela\u00e7\u00f5es: Estabele\u00e7a rela\u00e7\u00f5es entre as tabelas normalizadas usando chaves prim\u00e1rias e chaves estrangeiras para manter a integridade dos dados. d. Eliminar Redund\u00e2ncia: Certifique-se de que cada pe\u00e7a de dados seja armazenada em apenas um local. Por exemplo, as informa\u00e7\u00f5es do autor devem ser armazenadas em uma tabela separada chamada \u201cAutor\u201d, em vez de serem duplicadas em cada entrada de livro. Esquema de Banco de Dados Uma vez que o seu banco de dados esteja totalmente normalizado, voc\u00ea pode prosseguir para criar o esquema do banco de dados. O esquema define a estrutura do banco de dados, incluindo tabelas, colunas, tipos de dados e restri\u00e7\u00f5es. Aqui est\u00e3o os passos para criar um esquema de banco de dados para um sistema de biblioteca: a. Definir Tabelas: Crie tabelas com base nas entidades que voc\u00ea identificou no ERD e nos dados normalizados. Cada tabela deve representar uma entidade espec\u00edfica (por exemplo, \u201cLivros\u201d, \u201cAutores\u201d, \u201cUsu\u00e1rios\u201d). b. Definir Colunas: Especifique as colunas para cada tabela, representando os atributos identificados no ERD. Certifique-se de que os tipos de dados e restri\u00e7\u00f5es (por exemplo, chaves prim\u00e1rias, chaves estrangeiras, restri\u00e7\u00f5es \u00fanicas) sejam definidos corretamente. c. Estabelecer Rela\u00e7\u00f5es: Use chaves estrangeiras para estabelecer rela\u00e7\u00f5es entre tabelas, ligando dados relacionados. Por exemplo, a tabela \u201cLivros\u201d pode ter uma chave estrangeira que referencia a tabela \u201cAutores\u201d. d. Indexa\u00e7\u00e3o: Implemente indexa\u00e7\u00e3o em colunas frequentemente usadas para busca, a fim de melhorar o desempenho das consultas. Estudo de Caso: Sistema de Biblioteca Diagrama de Relacionamento de Entidades Definimos quatro tabelas: Autores, Livros, Usu\u00e1rios e Transa\u00e7\u00f5es. Aqui est\u00e1 o que cada tabela representa: Autores: Cont\u00e9m informa\u00e7\u00f5es sobre os autores dos livros. Possui um AuthorID como chave prim\u00e1ria e um atributo Nome. Livros: Representa os detalhes do livro. Inclui ISBN (Chave Prim\u00e1ria), T\u00edtulo, Data de Publica\u00e7\u00e3o e um AuthorID como chave estrangeira, referenciando a tabela Autores para estabelecer uma rela\u00e7\u00e3o entre livros e autores. Usu\u00e1rios: Armazena informa\u00e7\u00f5es sobre os usu\u00e1rios da biblioteca. Possui um PatronID como chave prim\u00e1ria e um atributo Nome. Transa\u00e7\u00f5es: Esta tabela registra as transa\u00e7\u00f5es quando os usu\u00e1rios emprestam livros. Inclui um TransactionID (Chave Prim\u00e1ria), BookID (chave estrangeira que referencia Livros), PatronID (chave estrangeira que referencia Usu\u00e1rios) e DueDate. As rela\u00e7\u00f5es entre essas tabelas s\u00e3o representadas da seguinte forma: Autores e livros est\u00e3o ligados por uma rela\u00e7\u00e3o um-para-muitos, indicando que um autor pode escrever v\u00e1rios livros. Livros e transa\u00e7\u00f5es est\u00e3o ligados, representando o fato de que cada livro pode fazer parte de m\u00faltiplas transa\u00e7\u00f5es, mas cada transa\u00e7\u00e3o corresponde a um \u00fanico livro. Leitores e transa\u00e7\u00f5es est\u00e3o conectados, indicando que cada leitor pode ter m\u00faltiplas transa\u00e7\u00f5es, mas cada transa\u00e7\u00e3o pertence a um \u00fanico leitor. Processo de Normaliza\u00e7\u00e3o Vamos percorrer o processo de normaliza\u00e7\u00e3o para o banco de dados do nosso sistema de biblioteca usando tabelas. Vamos come\u00e7ar com um conjunto inicial de tabelas e normaliz\u00e1-las progressivamente pela Primeira Forma Normal (1FN), Segunda Forma Normal (2FN) e Terceira Forma Normal (3FN). Tabelas Iniciais: Livros ISBN (PK) T\u00edtulo Data de Publica\u00e7\u00e3o AuthorID (FK) Autores AuthorID (PK) Nome Leitores PatronID (PK) Nome Transa\u00e7\u00f5es TransactionID (PK) BookID (FK) PatronID (FK) Data de Vencimento Primeira Forma Normal (1FN): Na Primeira Forma Normal, cada tabela deve ter uma chave prim\u00e1ria, e n\u00e3o deve haver grupos repetidos ou arrays em nenhuma coluna. Nossas tabelas iniciais j\u00e1 satisfazem a 1FN porque possuem chaves prim\u00e1rias e cada c\u00e9lula cont\u00e9m um \u00fanico valor. Segunda Forma Normal (2FN): Para alcan\u00e7ar a 2FN, precisamos garantir que os atributos n\u00e3o-chave dependam da chave prim\u00e1ria inteira. Nas nossas tabelas iniciais, a tabela Livros possui depend\u00eancia parcial, pois T\u00edtulo e Data de Publica\u00e7\u00e3o dependem apenas do ISBN, e n\u00e3o da chave prim\u00e1ria inteira. Vamos dividir a tabela Livros em duas tabelas: Livros (2FN): ISBN (PK) AuthorID (FK) Detalhes do Livro (2FN): ISBN (FK) T\u00edtulo Data de Publica\u00e7\u00e3oProjetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados","og_url":"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/","og_site_name":"Visual Paradigm Guides Portuguese","article_published_time":"2026-02-05T01:36:46+00:00","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"vpadmin","Tempo estimado de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#article","isPartOf":{"@id":"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/"},"headline":"Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados","datePublished":"2026-02-05T01:36:46+00:00","mainEntityOfPage":{"@id":"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/"},"wordCount":1558,"commentCount":0,"articleSection":["Data Modeling \/ Database"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/","url":"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/","name":"Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados - Visual Paradigm Guides Portuguese","isPartOf":{"@id":"https:\/\/guides.visual-paradigm.com\/pt\/#website"},"datePublished":"2026-02-05T01:36:46+00:00","author":{"@id":"https:\/\/guides.visual-paradigm.com\/pt\/#\/schema\/person\/292e97a06c90d6d605ddfd451bfdfe6f"},"breadcrumb":{"@id":"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/guides.visual-paradigm.com\/pt\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/guides.visual-paradigm.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Data Modeling \/ Database","item":"https:\/\/guides.visual-paradigm.com\/pt\/category\/data-modeling-database\/"},{"@type":"ListItem","position":3,"name":"Projetando um Sistema de Biblioteca: Do Diagrama Entidade-Relacionamento \u00e0 Normaliza\u00e7\u00e3o ao Esquema de Banco de Dados"}]},{"@type":"WebSite","@id":"https:\/\/guides.visual-paradigm.com\/pt\/#website","url":"https:\/\/guides.visual-paradigm.com\/pt\/","name":"Visual Paradigm Guides Portuguese","description":"Smart guides for an AI-driven world","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/guides.visual-paradigm.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"}]}},"_links":{"self":[{"href":"https:\/\/guides.visual-paradigm.com\/pt\/wp-json\/wp\/v2\/posts\/6549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guides.visual-paradigm.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/guides.visual-paradigm.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/pt\/wp-json\/wp\/v2\/comments?post=6549"}],"version-history":[{"count":0,"href":"https:\/\/guides.visual-paradigm.com\/pt\/wp-json\/wp\/v2\/posts\/6549\/revisions"}],"wp:attachment":[{"href":"https:\/\/guides.visual-paradigm.com\/pt\/wp-json\/wp\/v2\/media?parent=6549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/pt\/wp-json\/wp\/v2\/categories?post=6549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/pt\/wp-json\/wp\/v2\/tags?post=6549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}