Apresentação Final de banco de dados.pptx

laurinhamakers 14 views 52 slides Sep 07, 2025
Slide 1
Slide 1 of 52
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52

About This Presentation

banco de dados


Slide Content

7. Projeto de banco de dados relacionais e Modelo Relacional Análise, Estrutura e Manipulação de Dados – EDITAL Nº 90/2024 Prof. Me. Caio César de Freitas Dantas

Objetivos Compreender os conceitos fundamentais do Modelo Relacional. Aprender as etapas do projeto de um banco de dados relacional. Entender como projetar um banco de dados relacional. Conhecer ferramentas e boas práticas para modelagem de bancos de dados. 2

Introdução O que é Banco de Dados? Segundo ELMASRI e NAVATHE (2011, p. 3) “Um banco de dados representa algum aspecto do mundo real, às vezes chamado de minimundo ou de universo de discurso ( UoD – Universe of Discourse ). As mudanças no minimundo são refletidas no Banco de Dados. Um banco de dados e uma coleção logicamente coerente de dados com algum significado inerente. Uma variedade aleatória de dados não pode ser corretamente chamada de banco de dados.” 3

Introdução O que é Banco de Dados? Segundo ELMASRI e NAVATHE (2011, p. 3) “ Um banco de dados representa algum aspecto do mundo real, às vezes chamado de minimundo ou de universo de discurso ( UoD – Universe of Discourse ) . As mudanças no minimundo são refletidas no Banco de Dados. Um banco de dados e uma coleção logicamente coerente de dados com algum significado inerente. Uma variedade aleatória de dados não pode ser corretamente chamada de banco de dados.” 4

Introdução O que é Banco de Dados? Segundo ELMASRI e NAVATHE (2011, p. 3) “Um banco de dados representa algum aspecto do mundo real, às vezes chamado de minimundo ou de universo de discurso ( UoD – Universe of Discourse ). As mudanças no minimundo são refletidas no Banco de Dados . Um banco de dados e uma coleção logicamente coerente de dados com algum significado inerente. Uma variedade aleatória de dados não pode ser corretamente chamada de banco de dados.” 5

Introdução O que é Banco de Dados? Segundo ELMASRI e NAVATHE (2011, p. 3) “Um banco de dados representa algum aspecto do mundo real, às vezes chamado de minimundo ou de universo de discurso ( UoD – Universe of Discourse ). As mudanças no minimundo são refletidas no Banco de Dados. Um banco de dados e uma coleção logicamente coerente de dados com algum significado inerente. Uma variedade aleatória de dados não pode ser corretamente chamada de banco de dados. ” 6

Introdução Um banco de dados é um conjunto estruturado de dados armazenados para serem acessados e gerenciados eficientemente. Ele pode assumir várias formas, dependendo da maneira como os dados são organizados. Bancos de dados relacionais Um banco de dados relacional é um conjunto de tabelas que se relacionam entre si, onde os dados são armazenados de forma estruturada. 7

Introdução – Banco de Dados Relacionais Organiza os dados em tabelas interligadas por meio de relações. R esolver o problema de várias estruturas de dados arbitrárias. 8

Introdução Qual a relação entre os dois conceitos? O Modelo Relacional define a teoria e estrutura dos dados. O Projeto de Banco de Dados Relacional aplica essa teoria para criar um banco funcional e eficiente. 9

Modelo Relacional Proposto por Edgar F. Codd em 1970. "A Relational Model of Data for Large Shared Data Banks". System R (IBM) O modelo relacional é uma forma de estruturar dados usando tabelas (relações). Organizar dados de maneira eficiente, garantindo integridade e facilitando consultas. Componentes Básicos; Restrições; Operações; 10

Modelo Relacional – Componentes Básicos Segundo SILBERSCHATZ, A.; SUDARSHAN, 2006 Relações (Tabelas) Atributos (Colunas) Domínios (Tipos de dados permitidos em um atributo) Tuplas (Linhas de uma tabela) Chaves: Chave Primária Chave Estrangeira Chaves Candidatas 11

Modelo Relacional – Componentes Básicos Relações (Tabelas) Atributos (Colunas) Domínios (Tipos de dados permitidos em um atributo) Tuplas (Linhas de uma tabela) 12 Matricula Nome Curso 00001111 João Computação 00002222 Maria Engenharia 00003333 Carlos Matemática ALUNOS Nome da Relação Atributos Tuplas Relação

Modelo Relacional – Chaves Chave Candidata: Qualquer conjunto de atributos que pode servir como chave primária. Chave Primária:  Identifica exclusivamente uma tupla. Chave Estrangeira: Relaciona tabelas. 13 Id_Professor Nome CPF departamento 01 João 111111 Matemática 02 Maria 22222 Computação Codigo_Disciplina Nome_Disciplina Carga_Horaria Id_Professor 001 Álgebra 60 01 002 Algoritmos 60 02

Modelo Relacional – Restrições de Integridade Condição especificada no esquema do BD e restringe os dados que podem ser armazenados em uma instância do BD Se uma instância satisfaz todas as restrições de integridade essa instância é válida. Integridade da entidade. Integridade referencial. Restrições de domínio. R estrições de checagem. R estrições de unicidade. R estrições de valores nulos. 14

Carga_Horaria INT CHECK ( Carga_Horario > 20), Codigo_Disciplina INT PRIMARY KEY, CPF VARCHAR (20) UNIQUE, Nome_Disciplina VARCHAR (50) NOT NULL, FOREIGN KEY ( I d_Professor ) REFERENCES Professor( Id_Professor ) 15 Modelo Relacional – Restrições de Integridade Id_Professor Nome CPF departamento 01 João 111111 Matemática 02 Maria 22222 Computação Codigo_Disciplina Nome_Disciplina Carga_Horaria Id_Professor 001 Álgebra 60 01 002 Algoritmos 60 02

Modelo Relacional – Operações Seleção (σ) – Filtra linhas de uma tabela. Projeção (π) – Escolhe colunas específicas. União (∪) – Combina os dados de duas tabelas. Interseção (∩) – Mantém apenas os dados comuns entre duas tabelas. Diferença (-) – Exclui os dados de uma tabela que também estão em outra. Produto Cartesiano (×) – Combinação de todas as linhas de duas tabelas. 16

Modelo Relacional – Operações Seleção (σ) – Filtra linhas de uma tabela. Projeção (π) – Escolhe colunas específicas. União (∪) – Combina os dados de duas tabelas. Interseção (∩) – Mantém apenas os dados comuns entre duas tabelas. Diferença (-) – Exclui os dados de uma tabela que também estão em outra. Produto Cartesiano (×) – Combinação de todas as linhas de duas tabelas. 17 ID Nome Idade Departamento 1 João 30 Vendas 2 Maria 25 RH 3 Pedro 35 Vendas

Modelo Relacional – Operações Seleção (σ): Filtra linhas de uma tabela. σ < Departamento = 'Vendas'> (Funcionários) SELECT * FROM Funcionários WHERE Departamento = ‘ Vendas ’; Projeção (π): Retorna um subconjunto das colunas de uma tabela. π < Nome, Departamento> (Funcionários) SELECT Nome, Departamento FROM Funcionários; 18 σ condicão ​ (R) π atributos ​(R)

Modelo Relacional – Operações Seleção (σ): Filtra linhas de uma tabela. σ < Departamento = 'Vendas'> (Funcionários) SELECT * FROM Funcionários WHERE Departamento = ‘ Vendas ’; Projeção (π): Retorna um subconjunto das colunas de uma tabela. π < Nome, Departamento> (Funcionários) SELECT Nome, Departamento FROM Funcionários; 19 σ condicão ​ (R) π atributos ​(R) ID Nome Idade Departamento 1 João 30 Vendas 3 Pedro 35 Vendas

Modelo Relacional – Operações Seleção (σ): Filtra linhas de uma tabela. σ < Departamento = 'Vendas'> (Funcionários) SELECT * FROM Funcionários WHERE Departamento = ‘ Vendas ’; Projeção (π): Retorna um subconjunto das colunas de uma tabela. π < Nome, Departamento> (Funcionários) SELECT Nome, Departamento FROM Funcionários; 20 σ condicão ​ (R) π atributos ​(R) Nome Departamento João Vendas Maria RH Pedro Vendas ID Nome Idade Departamento 1 João 30 Vendas 3 Pedro 35 Vendas

Modelo Relacional – Operações União (∪): Combina os dados de duas tabelas. R ∪ S SELECT coluna1, coluna2 FROM Tabela1 UNION SELECT coluna1, coluna2 FROM Tabela2; Interseção (∩): Mantém apenas os dados comuns entre duas tabelas. R ∩ S SELECT coluna1, coluna2 FROM Tabela1 INTERSECT SELECT coluna1, coluna2 FROM Tabela2; 21 A B 1 X 2 Y A B 2 Y 3 Z R S A B 1 X 2 Y A B 2 Y 3 Z R S

Modelo Relacional – Operações União (∪): Combina os dados de duas tabelas. R ∪ S SELECT coluna1, coluna2 FROM Tabela1 UNION SELECT coluna1, coluna2 FROM Tabela2; Interseção (∩): Mantém apenas os dados comuns entre duas tabelas. R ∩ S SELECT coluna1, coluna2 FROM Tabela1 INTERSECT SELECT coluna1, coluna2 FROM Tabela2; 22 A B 1 X 2 Y A B 2 Y 3 Z A B 1 X 2 Y 3 Z R S A B 1 X 2 Y A B 2 Y 3 Z R S

Modelo Relacional – Operações União (∪): Combina os dados de duas tabelas. R ∪ S SELECT coluna1, coluna2 FROM Tabela1 UNION SELECT coluna1, coluna2 FROM Tabela2; Interseção (∩): Mantém apenas os dados comuns entre duas tabelas. R ∩ S SELECT coluna1, coluna2 FROM Tabela1 INTERSECT SELECT coluna1, coluna2 FROM Tabela2; 23 A B 1 X 2 Y A B 2 Y 3 Z A B 1 X 2 Y 3 Z R S A B 2 Y A B 1 X 2 Y A B 2 Y 3 Z R S

Modelo Relacional – Operações Diferença (-): Exclui os dados de uma tabela que também estão em outra. R−S SELECT coluna1, coluna2 FROM Tabela1 EXCEPT SELECT coluna1, coluna2 FROM Tabela2; Produto Cartesiano (×): Combinação de todas as linhas de duas tabelas. R×S SELECT * FROM Tabela1, Tabela2; 24 A B 1 X 2 Y A B 2 Y 3 Z R S A B 1 X 2 Y C D 10 W 20 Z R S

Modelo Relacional – Operações Diferença (-): Exclui os dados de uma tabela que também estão em outra. R−S SELECT coluna1, coluna2 FROM Tabela1 EXCEPT SELECT coluna1, coluna2 FROM Tabela2; Produto Cartesiano (×): Combinação de todas as linhas de duas tabelas. R×S SELECT * FROM Tabela1, Tabela2; 25 A B 1 X A B 1 X 2 Y A B 2 Y 3 Z R S A B 1 X 2 Y C D 10 W 20 Z R S

Modelo Relacional – Operações Diferença (-): Exclui os dados de uma tabela que também estão em outra. R−S SELECT coluna1, coluna2 FROM Tabela1 EXCEPT SELECT coluna1, coluna2 FROM Tabela2; Produto Cartesiano (×): Combinação de todas as linhas de duas tabelas. R×S SELECT * FROM Tabela1, Tabela2; 26 A B 1 X A B 1 X 2 Y A B 2 Y 3 Z R S A B C D 1 X 10 W 1 X 20 Z 2 Y 10 W 2 Y 20 Z A B 1 X 2 Y C D 10 W 20 Z R S

Modelo Relacional – Vantagens Redução de redundância de dados. Integridade e consistência garantidas. Suporte a consultas complexas via SQL. Organização estruturada dos dados. Facilidade na manutenção e atualização. 27

Projeto de Banco de Dados Relacional É Processo de transformar os requisitos de um negocio em um banco de dados estruturado. Cria uma estrutura lógica para organizar dados de modo eficiente. Transformar um modelo relacional em um banco de dados funcional e eficiente. O que é o Projeto de Banco de Dados? É o processo de modelar, estruturar e implementar um banco de dados. Seguindo os princípios do modelo relacional, proposto por Edgar F. Codd . Envolve etapas bem definidas para garantir consistência e eficiência. 28

Projeto de Banco de Dados Relacional – Etapas Principais Levantamento de Requisitos: Entender as necessidades do sistema. Modelagem Conceitual: Representação Abstrata - Criar um diagrama ER (Entidade-Relacionamento). Modelagem Lógica: Transformar o Modelo Conceitual em esquema relacional (Tabelas e Atributos). Modelagem Física: Implementar o banco de dados em um SGBD. 29

Levantamento de Requisitos Identificação dos objetivos do banco de dados. Entrevistas com stakeholders. Identificar entidades, atributos e relacionamentos. Identificar quais informações precisam ser armazenadas. Entender as necessidades do sistema e seus usuários. 30

Modelagem Conceitual Representar a estrutura dos dados de forma abstrata. Independente do SGBD. Identificação das entidades, atributos e relacionamentos. Foco nos Requisitos de Negócio – Reflete o que será armazenado. Uso de Diagramas – Diagrama Entidade-Relacionamento (DER). 31

O diagrama facilita ainda a comunicação entre os integrantes da equipe. Sistema de Biblioteca 32 Empréstimo id_emprestimo (PK) id_usuario (FK - chave estrangeira para Usuário) id_livro (FK - chave estrangeira para Livro) data_emprestimo data_devolucao Livro id_livro (PK) titulo autor ano_publicacao Usuário id_usuario (PK) nome email telefone Modelagem Conceitual

N otação original, proposta por Peter Chen. 33 Modelagem Conceitual

Modelagem Lógica Independente do SGBD. Conversão do Modelo Conceitual → Elementos do modelo entidade-relacionamento (MER) são transformados em tabelas e relacionamentos no modelo relacional. Normalização → Eliminação de redundâncias e anomalias através da aplicação de formas normais. Definição de Restrições → Inclui chaves primárias, chaves estrangeiras, restrições de integridade referencial e domínios de atributos. 34

A conversão do Modelo Entidade-Relacionamento (MER) para o Modelo Relacional Conversão de Entidades Fortes; Conversão de Atributos; Conversão de Chaves Primárias; Conversão de Entidades Fracas; Conversão de Relacionamentos → Relacionamentos 1:1, 1:N, N:N; 35 Modelagem Lógica – Conversão

A conversão do Modelo Entidade-Relacionamento (MER) para o Modelo Relacional 36 Codigo_CRM Nome ID_Consulta Codigo_CRM CPF Data CPF Nome Telefone Modelagem Lógica – Conversão

A normalização é o processo de organização das tabelas de um banco de dados para eliminar redundâncias e garantir a integridade dos dados. 1ª Forma Normal (1FN) → Garante que cada célula contenha um único valor. 2ª Forma Normal (2FN) → Remove dependências parciais, garantindo que atributos não-chave dependam da chave primária. 3ª Forma Normal (3FN) → Elimina dependências transitivas. Um atributo não pode depender de outro que não seja a chave primária. 37 Modelagem Lógica – Normalização

38 Modelagem Lógica – Normalização Pedido_Id Cliente Produtos Quantidade Endereço Preço_Total 1 Ana Celular, Fone de Ouvido 1, 2 aaaaaaa 2000, 100 2 João Notebook 1 bbbbbb 4000 3 Ana Teclado, Mouse 1, 1 ccccccc 150, 50

Modelagem Física Transforma o modelo lógico em uma implementação real dentro de um SGBD. Define a estrutura exata das tabelas, tipos de dados, restrições e otimizações para melhorar a performance. Considera aspectos técnicos: Chaves primárias e estrangeiras para garantir integridade. Dependente do SGBD Especificação dos Tipos de Dados Definição de Restrições. Índices. 39

Projeto de Banco de Dados Relacional – Ferramentas Ferramentas de Modelagem: MySQL Workbench, Lucidchart , DbSchema , ER/Studio. SGBDs Populares: MySQL, PostgreSQL, Oracle, SQL Server. Benefícios: Facilidade na criação de diagramas ER. Geração automática de scripts SQL. 40

Projeto de Banco de Dados Relacional Boas Práticas Normalização: Evitar redundâncias. Escolher Tipos de Dados Apropriados. Definir Restrições de Integridade. Criar Índices para Consultas Frequentes – Índices ajudam a acelerar as consultas. Desafios Complexidade na modelagem de relacionamentos muitos-para-muitos. Balanceamento entre normalização e performance. 41

Projeto de Banco de Dados Relacional – Exemplo Prático Criar um banco de dados para um sistema de vendas online. O sistema deve permitir o cadastro de clientes, produtos e pedidos. 42

Requisitos Básicos Armazenar informações do cliente (nome, e-mail, telefone). Armazenar informações dos produtos (nome, preço, categoria). Pedido deve ter uma data de criação e um status (pendente, pago, enviado). Clientes podem fazer múltiplos pedidos. Cada pedido pode conter vários produtos. Cada produto pode estar em vários pedidos. 43 Projeto de Banco de Dados Relacional – Exemplo Prático

Modelo Conceitual Cliente (ID, Nome, Email, Telefone) Produto (ID, Nome, Preço, Categoria) Pedido (ID, ID_Cliente , Data, Status) Pedido_Produto ( ID_Pedido , ID_Produto , Quantidade) Um cliente pode fazer vários pedidos (1:N). Um pedido pode ter vários produtos e um produto pode estar em vários pedidos (N:N ) 44 Cliente Produto Pedido_Produto Pedido Email Telefone ID_Clie Nome Preço Catego . ID_prod Nome Quant. Data ID_prod ID_pedid Status ID_pedid ID_Clie Projeto de Banco de Dados Relacional – Exemplo Prático

Modelo Lógico Cliente ( id_cliente , nome, email , telefone) Produto ( id_produto , nome, preco , categoria) Pedido ( id_pedido , id_cliente , data_pedido , status) Pedido_Produto ( id_pedido , id_produto , quantidade) Chave primária (PK): id_cliente (Cliente), id_produto (Produto), id_pedido (Pedido), ( id_pedido , id_produto ) em Pedido_Produto . Chaves estrangeiras (FK): id_cliente em Pedido referencia Cliente. id_pedido em Pedido_Produto referencia Pedido. id_produto em Pedido_Produto referencia Produto. 45 Restrições e Normalização Id_Cliente Nome Email Telefone Id_Produto Nome Preço Categoria Id_Pedido Id_cliente Data_Pedido Status Id_Pedido Id_Produto Quantidade Projeto de Banco de Dados Relacional – Exemplo Prático

Modelo Físico 46 Projeto de Banco de Dados Relacional – Exemplo Prático

Modelo Físico 47 Projeto de Banco de Dados Relacional – Exemplo Prático

Modelo Físico 48 Projeto de Banco de Dados Relacional – Exemplo Prático

49 Listar todos os clientes Listar os produtos de um pedido específico Listar apenas os produtos da categoria "Acessórios“ Contar quantos pedidos cada cliente já fez Modelo Físico Projeto de Banco de Dados Relacional – Exemplo Prático

Conclusão São fundamentais para a organização, gerenciamento e consulta de dados em sistemas modernos. O modelo relacional oferece a base teórica para a estrutura de tabelas. O projeto de banco de dados relacionais garante que essas tabelas sejam organizadas de forma eficiente, consistente e de acordo com as necessidades dos usuários. Um bom design de banco de dados relacional pode levar a sistemas mais robustos, escaláveis e fáceis de manter. 50

Referências SILBERSCHATZ, A.; SUDARSHAN, S. Sistema de banco de dados. Campus, 2006. ISBN: 9788535211078. ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 6 ed. Pearson/Addison-Wesley, 2011. ISBN: 9788579360855. HEUSER, C. A. Projeto de banco de dados. 6 ed. Bookman, 2009. ISBN: 9788577803828. DATE, C.J. Introdução a Sistemas de Banco de Dados. 8 ed. Campus, 2004. ISBN. 9788535212730. 51

FIM! 52