INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
BAHIA
Banco de Dados
Prf. Msc. Igor de Oliveira Costa
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
Projeto de Banco de Dados
• O projeto de Banco de Dados visa a criação de um Banco de Dados que atenda as
necessidades de uma determinada empresa; • O projeto de Banco de Dados envolve
principalmente a criação do esquema de Banco de Dados;
• Todo o bom sistema deve apresentar um bom projeto de Banco de Dados.
Projeto de Banco de Dados
• O projeto de Banco de Dados se dá em duas fases:
– Modelagem Conceitual; – Projeto Lógico.
• A modelagem conceitual fornece ao projetista de banco de dados uma estrutura conceitual, exibindo de uma maneira sistemática quais são as reais necessidades de um usuário de banco de dados;
Projeto de Banco de Dados
• Desta forma, a fase inicial de um projeto de
Banco de Dados é caracterizar as necessidades do usuário em potencial do banco de dados; • Para isso, ele vai criar o que podemos chamar
de Minimundo, ou domínio da aplicação.
• Um minimundo consiste em contextualizar as necessidades do usuário.
Projeto de banco de dados
• Exemplo de MiniMundo 1 • Oficina Auto-Car
• A oficina Auto-Car, é uma empresa prestadora de serviço que atua na área de mecânica de automóveis, trabalhando com: injeção
eletrônica, suspensão, freios, consertos e regulagem de motores, alinhamento e
balanceamento, vendas de peças e produtos para autos.
• O sistema criado para a empresa terá um cadastro de clientes que deverá ter nome, rg, logradouro e CPF. Cadastro de funcionários com nome, rg, logradouro, CPF e função. Cadastro de veículos que deverá ser identificado pela placa, mas deverá também conter,
nome do proprietário, ano de fabricação, modelo. Um cadastro com os serviços oferecidos pela empresa, cadastro de produtos e peças que serão vendidos e também utilizados na oficina.
• A parte financeira será composta pelas vendas onde contaram os itens dos produtos vendidos na oficina e quem realizou a venda. Orçamento onde o cliente poderá fazer um levantamento das
despesas necessárias ao conserto ou manutenção do seu veículo. Ordem de Serviço que será utilizado na oficina onde contaram os serviços e peças utilizados nos consertos e manutenção dos
automóveis.
Projeto de Banco de Dados
• Exemplo de Minimundo2:
• O Instituto Federal de Educação, Ciência e Tecnologia da Bahia – IFBA, necessita de um canal de comunicação com os alunos, servidores e público alvo, onde possam ser feitos elogios, reclamações e sugestões. Para que isso seja possível será
necessária criação de um sistema de ouvidoria, onde o mesmo terá que controlar todas as mensagens enviadas a instituição, dando a possibilidade de resposta por parte do IFBA.
• Basicamente, este sistema deverá ter um cadastro de usuários, com nome,
telefone, departamento, email, senha e nível de acesso, onde o email será o login do sistema, também um cadastro dos departamentos do IFBA com o nome do departamento, e descrição da atividade realizada pelo departamento, terá que ter um cadastro dos tipos de mensagens com a descrição deste tipo e um cadastro de mensagens que será utilizado pelos alunos, servidores e público alvo, este cadastro deverá ter nome, email, departamento, tipo da mensagem, mensagem e resposta, esta reposta só será visível pelo usuário com login do sistema, para cadastrar uma mensagem não será necessário o login no sistema, porém, para fazer todo controle do sistema será necessário o login.
Projeto de Banco de Dados
• Após a definição do minimundo, o projetista irá definir um modelo de dados, no nosso
caso, o modelo relacional, e aplicando os
conceitos do modelo traduzir as necessidades para um esquema de Banco de Dados;
• Modelo Entidade Relacionamento
– O modelo de dados de entidade e relacionamento (E/R) é baseado em uma percepção do mundo
real que consiste em uma coleção de objetos
básicos, chamados entidades, e de relações entre esses objetos;
• Entidades
– é um objeto ou evento do mundo real sobre o qual desejamos manter um registro.
– Ex.: Aluno, Carro, Produto, Vendedor, etc.
• Atributo
– é uma propriedade ou característica que descreve uma entidade. Também é chamado de campo. Ex.: Atributos da entidade ALUNO: nome, data de
nascimento, telefone, endereço, etc;
• Atributo chave (Primary Key - PK)
– é um atributo que deve possuir um valor único em todo o conjunto de entidades. Este atributo é usado para identificar unicamente um registro da tabela; – Pode ser representado por * ou ____
• Atributo chave Estrangeira (Foreign Key - FK):
– É um atributo que faz referência a chave primária de outra tabela ou da própria tabela;
– Ou seja, a chave estrangeira nunca fará referência a um atributo que não seja o atributo chave de uma outra tabela, ou da própria tabela;
• A chave estrangeira é o que garante o
relacionamento entre as tabelas, no exemplo anterior, é através da chave estrangeira que
consigo identificar qual é o proprietário de um dado carro;
• Desta forma, a chave estrangeira garante a
integridade referencial do modelo, ou seja, ela garante que não se faça referencia a valores
que não existam na base de dados.
• Podemos dividir os atributos em:
– Multivalorados: São atributos no qual o conteúdo é formado por mais de um valor;
• Ex: Telefone;
– Compostos: São atributos que são formados por vários números menores;
• Ex: Endereço;
– Determinantes: São os atributos que identificam de forma única uma entidade, ou seja, não existe repetição.
• No diagrama ER a entidade pode ser representada das seguintes formas:
Projeto de Banco de Dados
Pessoa
codigo nome
Pessoa
codigo nome
• Relacionamentos
– É uma associação entre várias entidades;
– No mundo real as entidades não existem sozinhas; – Assim como no mundo real, para que as
informações sejam coerentes e tenham sentido é necessário um relacionamento entre as entidades;
Projeto de Banco de Dados
• Podemos definir relacionamento como uma relação entre uma, duas ou várias entidades. Geralmente associados através de uma ação (verbo) entre as entidades.
• Exemplo:
– Paciente – consulta - Médico; – Lote – tem – Jazigos;
• Grau de Relacionamento:
– É a quantidade de Entidades Ligadas a um relacionamento;
• Relacionamento Unário = É quando uma entidade se relaciona com ela mesmo;
Projeto de Banco de Dados
• Relacionamento Binário: É o relacionamento que liga duas entidades;
Projeto de Banco de Dados
• Relacionamento ternário: É o relacionamento em que três entidades estão interligadas por um relacionamento;
Projeto de Banco de Dados
Paciente Consulta Médico
• Os relacionamentos podem ser:
– Identificados;
– Não-identificados;
O que seria Cardinalidade?
• Cardinalidade indica a quantidade de
ocorrências mínimas e máximas de uma Entidade em um determinado
relacionamento;
• Podendo ser divida em:
• Cardinalidade mínima: Define se o
relacionamento entre duas entidades é obrigatório ou não;
• Representação
– Um país pode ter no mínimo zero estado;
Projeto de Banco de Dados
• Cardinalidade Máxima: Defini a quantidade de ocorrência máxima que uma entidade pode
participar em um relacionamento;
• Ex.: Um vendedor pode vender apenas um tipo de produto? Ou dois? Ou três?
Projeto de Banco de Dados
País Estado
• Relacionamento um para um (1:1): Indica que uma ocorrência da entidade A pode se
relacionar exclusivamente com uma ocorrência da entidade B e vice versa;
• Nesta relação, a chave primária irá para o lado opcional
Projeto de Banco de Dados
Proprietário 1 Tem 1 Jazigo
• Relacionamento um para muitos (1:n): uma ocorrência da entidade A pode se relacionar com várias ocorrências da entidade B, porém o inverso não é permitido;
Projeto de Banco de Dados
• Relacionamento muitos para muitos (n:n): uma ocorrência da entidade A pode se
relacionar com muitas ocorrências da unidade B e vice versa;
Projeto de Banco de Dados
• No entanto, quando ocorre um
relacionamento n:n, este é dividido em dois relacionamento 1:n, onde a relação entre eles se tornará uma entidade:
Projeto de Banco de Dados
• Formas de representação
Projeto de Banco de Dados
Paciente * Consulta * Médico
DER
Projeto de Banco de Dados
MySQL Workbench
• É uma ferramenta para modelagem e
• Para criar um modelo, clica no botão “File” e clica em New Model
• Na tela que abrir, clica duas vezes em “Add Diagram”;
• Barra de ferramentas
MySQL Workbench
Seleção Mover tela Apagar Inserir camadaInserir nota de texto Inserir imagem
Nova tabela Nova visão
MySQL Workbench
Relacionamento 1:1 sem identificação; Relacionamento 1:n sem identificação;
Relacionamento 1:1 identificado; Relacionamento 1:n identificado; Relacionamento n:m identificado;