58
Modelagem e Projeto de Banco de Dados Rilmar Gomes BANCO DE DADOS

Aulas de banco de dados

Embed Size (px)

Citation preview

Modelagem e Projeto de Banco de Dados

Rilmar Gomes

BANCO DE DADOS

OBJETIVOS:

Modelagem de dados de sistemas típicos através do Modelo Entidade Relacionamento.

Conceitos e projeto lógico do Modelo Relacional

Práticas de Modelagem e Projeto

BIBLIOGRAFIA Fundamentals of Database Systems

Elmasri, R; Navathe, SBenjamin Cummings, 1994

Sistemas de banco de DadosKorth, H. F.; Silberschatz, A; Sudarshan, SMakkron Books, 1999

Introdução a Sistemas de Bancos de DadosDate, C. J. , Editora Campus, 2000

BANCO DE DADOS “É uma coleção de dados inter-relacionados, representando

informações sobre um domínio específico (conceito geral). Representa aspectos do mundo real. Mudanças no mundo

real são refletidas no BD É projetado, construído, e mantido para uma proposta

específica. É direcionado a um grupo de usuários/aplicação Pode ter qualquer tamanho/complexidade

MODELOS DE DADOS

Mundo Real SoluçãoProcesso de Solução

Modelo

Modelo é a representação abstrata e simplificada de uma determinada realidade. É um conjunto de conceitos para descrever os dados, de restrições e relacionamento entre esses dados.

SGBD Sistema Gerenciador de Bancos de Dados (SGBD):Software construído para facilitar as atividades de definição,construção e manipulação de bancos de dados;

Consistem em uma coleção de dados inter-relacionadose de um conjunto de programas para acessá-los

Sistema de Bancos de Dados: Banco de Dados + Softwareque o manipula

BANCO DADOS

Objetivos do SGBDProver um ambiente que seja conveniente e eficiente para recuperar e

armazenar informações de Bancos de Dados.Eliminar ou Reduzir

Redundância e inconsistência de dadosDificuldade no acesso aos dadosIsolamento dos dados Anomalias de acesso concorrenteProblemas de segurança

Abstração de dadosSimplifica a interação do usuário com o Sistema

MODELOS DE DADOS

Modelo dosistema na mente do cliente

Modelo de Entidade do Modelo do cliente

Representação Tabular do modelode entidade

Server

Tabelas no disco

Níveis de Abstração de BD

Modelo Entidade Relacionamento

Modelo Relacional-Objeto Relacional

Mundo Real

Nível Conceitual

nível lógico

nível físico

Modelo Entidade Relacionamento - MER

Proporciona uma visão lógica de alto nível dos dados

É uma descrição abstrata de uma porção do mundo real

Todos os dados são visualizados como fatos específicos sobre entidades, relacionamentos e atributos

Através do MER, podemos ter uma fotografia do sistema

As entidades, relacionamentos e atributos descrevem as regras de negócio da empresa

Modelo Entidade Relacionamento - MER

Definição: modelo baseado na percepção do mundo real que consiste em um conjunto de objetos básicos, chamados entidades, e nos relacionamentos entre esses objetos.

Objetivo: facilitar o projeto de banco de dados, possibilitando especificar a estrutura lógica geral.

Modelo Entidade Relacionamento - MER

FUNCIONÁRIO

DEPENDENTE

PROJETO

DEPARTAMENTOendereço

nome

número

salário

supervisor

1 N

possuir

trabalhar

gerenciar

N

1

horas

DataIni

nomenúmero

1

participar

N1

DataNivernome

N

parentesco

controlar

nomenúmero

1

N

1

N

localização

Relacionamento

Entidade

Atributo

Modelo Entidade Relacionamento - Convenções

Entidade Fraca

Entidade

Relacionamento

Atributo

Atributo Identificador

Atributo Multivalorado

Relacionamento Identificador

z

Modelo Entidade Relacionamento - Convenções

Atributo Composto...

Atributo Derivado

Participação total de E2 em RE1 R E2

Cardinalidade 1:N para E1:E2 em RE1 R E21 N

Constraint (min,max) de E em RR E2(min,max)E1

FUNCIONARIO

STATUS CLIENTE

CLIENTE

ATOR

GENERO

FILME

FITA

endereçonomecódigo

salário

supervisor

4,N

1,1

possui

aluguelpossui

classifica

possui1,1

código descrição

0,N

nome endereço

1,N

1,N

dt alugueldt prev ret

dt retornovalor

previsto

1,N

multavalor pago

*

2,N 1,N

1,1

1,N

0,N

1,1

código nomeprincipal

código descrição

nome

qtde fitas

preço

condição

código

código

código

COMPONENTES DO MER

ENTIDADE Qualquer coisa para a qual desejamos guardar informação Conjunto de objetos individuais chamados instâncias Uma instância deve ter uma identidade distinta de todas as

outras

TIPOS DE ENTIDADES INDEPENDENTES (FORTES)

▪ entidade que existe por si só▪ NOTAÇÃO : retângulo

RESTRIÇÕES Não pode existir duas entidades no mesmo model

DICA:

Geralmente tem mais de um atributo O nome = substantivo

TIPOS DE ENTIDADES

DEPENDENTES(FRACAS)▪ Entidades que dependem de outras para sua existência

(dependência por existência)▪ Entidades que dependem de outras para sua identificação

(dependência por identificação)▪ NOTAÇÃO: Retângulo duplo

RESTRIÇÕES Só existe enquanto a entidade forte existir

Entidades Fortes e Fracas

FuncionárioDependente

Departamento

EndereçoNomeIdFunc

Salário

Tem

Trabalho1

Nome

NomeIdDeptoP-20

1 N

Entidade Independente

Entidade Dependente

MER - Atributos

Atributo- serve para qualificar a entidade

Simples Multivalorado Determinante ou Identificador Composto Derivado ou Calculado

MER - Atributos

Simples só pode assumir um único valor elementar Exemplo: Nome, Idade, Data de Nascimento

Notação

IdadeNumRua

CEP

Endereço

Fone

Nome

PESSOAS

MER - Atributos REGRAS

Começar o nome do atributo com uma inicial maiúscula e estar no singular

Distinção entre conjunto de entidades e atributo. ▪ Exemplo: AUTOR para livro de uma biblioteca▪ AUTOR para uma editora

Se um conjunto de entidades tem um único atributo, provavelmente aquele conjunto é atributo de um outro conjunto de entidades.

Cada atributo deve ocorrer uma única vez em apenas um conjunto de entidades.

Desconfiar da modelagem de um conjunto de entidades que tem um só atributo. Provavelmente, ele é um atributo de outro conjunto.

MER - Atributos

Multivalorado só pode assumir mais de uma valor Exemplo: Fones

NotaçãoIdade

NumRua

CEP

Endereço

Nome

Fones

PESSOAS

MER - Atributos

Determinante Identifica unicamente uma entidade da outra Lembra o conceito de Chave

NotaçãoIdade

NumRua

CEP

Endereço

NomeFones

PESSOASCódigo

MER - Atributos

Determinante Identifica unicamente uma entidade da outra Lembra o conceito de Chave

NotaçãoFones

Idade NumRua

CEP

Endereço

Nome

PESSOASCPF

IdPessoa

MER - Atributos

Composto Pode ser dividido em sub atributos Exemplo: Endereço

NotaçãoIdade NumRua

CEP

Endereço

NomeFones

PESSOASCódigo

MER - Atributos

Derivado ou Calculado Seu valor é gerado a partir do valor de outro

atributo Exemplo: Data de Nascimento e Idade

Notação

PACIENTES

IdadeDataNasc Nome

Sexo

*

COMPONENTES DO MER RELACIONAMENTO

É uma ligação entre duas ou mais entidades É representado por um losango

RESTRIÇÕES▪ Não se pode repetir nomes de relacionamentos▪ O relacionamento deve ligar, no mínimo, duas

entidades

xx

TIPOS DE RELACIONAMENTOS

DEPENDENTES (FORTES) o conceito de entidade dependente e independente é

reforçado pelo tipo de relacionamento quando se quer que uma entidade se torne dependente,

cria-se um relacionamento identificador

INDEPENDENTES (FRACOS)▪ Conecta entidades fortes e fracas

Relacionamento Fraco e Forte

FuncionárioDependente

Departamento

EndereçoNomeCódigo

Salário

Supervisor

1

N

Tem

Trabalho 1

Nome

NomeCódigo

Código

N

1 NÉ de

É Composto de

Trabalha no

possui

Entidade Independente

Identificador

Entidade Dependente

Não IdentificadorPapel do

Relacionamento

• É a propriedade do relacionamento que define exatamente com quantas instâncias uma entidade de um conjunto pode se relacionar com outras entidades de outro conjunto;

• PODE SER:• um para um• um para muitos; e• muitos para muitos

CARDINALIDADE DO RELACIONAMENTO

CARDINALIDADE 1:1

E1

E2

E3

.

.

.En

M1

M2

M3

.

.

.Mn

1 : 1Médicos Especialidades

MÉDICOS ESPECIALIDADESpossuem1 1

CARDINALIDADE 1:N

E1

E2

E3

E4

.

.

.En

M1

M2

M3

.

.

.Mn

1 : NMédicos Especialidades

CARDINALIDADE 1:N

P1

P2

P3

P4

.

.

.Pn

M1

M2

M3

M4

.

.

.Mn

N : N

Médicos Pacientes

MÉDICOS PACIENTESconsultasN N

• É a propriedade do relacionamento que define a obrigatoriedade ou não de uma entidade participar (se relacionar) de um relacionamento.

• Pode ser: • total (obrigatória) ou • parcial (opcional)

PARTICIPAÇÃO DO RELACIONAMENTO

PARTICIPAÇÃO DO RELACIONAMENTO: TOTAL e PARCIAL

AUTO RELACIONAMENTO Situação em que uma entidade se relaciona com outra do mesmo conjunto

Funcionário

EndereçoNomeCódigo

Salário

Supervisão

1 N

Supervisionado Supervisor

Grau do Relacionamento

VENDEDORES vendas PRODUTOSN N

CLIENTES

N

É dado pelo total de entidades envolvidas no relacionamento• Binário, ternário, etc.

MÉDICOS PACIENTESconsultasN N

RELACIONAMENTO n-ÁRIOS

VENDEDORES vendas PRODUTOSN N

CLIENTES

N

• É definido pela regra de negócio

VENDEDORES PRODUTOSvendasN N

CLIENTESvendem compram

N

N N

N

AGREGAÇÃO

• Supondo que um médico faz consultas a pacientes.

MÉDICOS PACIENTESconsultasN N

AGREGAÇÃO

• Supondo também que nessas consultas o médico pode fazer solicitações de exames.

• Vários binários = inconsistência

MÉDICOS PACIENTESconsultasN N

EXAMESsolicita faz

N

N N

N

AGREGAÇÃO

• O ternário obriga que em toda consulta o médico solicite um exame.

• Todas as entidades devem se relacionar .• No ternário há a obrigatoriedade das entidades se relacionarem.

MÉDICOS PACIENTESconsultasN N

EXAMES

N

AGREGAÇÃO

• O MER não permite relacionamento entre relacionamento

MÉDICOS PACIENTESconsultasN N

EXAMES

N

solicita

N

• O melhor modo para representar a situação anterior é usando a agregação.

• Na agregação não existe obrigatoriedade na entrevista para encaminhar um candidato a um cargo

AGREGAÇÃO

AGREGAÇÃO

• A agregação é a abstração que transforma um relacionamento em uma entidade;

• Evita inconsistências• Só pode ser em relacionamentos de cardinalidade N:N• Não possui atributos

AGREGAÇÃO

MÉDICOS PACIENTESconsultasN N

EXAMES

solicitações

N

N

A Clínica Salva Vidas, atua na área de saúde disponibilizando à sua clientela serviços médicos de consultas e realização de exames.

Para melhor atender seus clientes, a clínica deseja informatizar seus serviços de forma a gerar controle sobre os agendamentos e realização de consultas, solicitação e realização de exames. Para isso, é necessário cadastrar os dados sobre os pacientes, exames, médicos, especialidades dos médicos e funcionários, entre outros.

Sobre os médicos é necessário que o sistema armazene o CRM, nome, endereço, fones (residencial e celular) e as especialidades em que atua (oftalmologista, ortopedista, etc). Cada especialidade também pode ter mais de um médico atuando.

Sobre os pacientes deve-se armazenar o nome, endereço, fones (residencial, celular e contato). Para se consultar o paciente pode agendar a data e hora da consulta e o nome do médico. Durante uma consulta o médico captura e repassa ao sistema os sintomas do paciente e o diagnóstico e ao final desta, ele pode fazer a solicitação de um exame, para que o paciente faça. É necessário que o sistema mantenha o controle sobre qual médico solicitou e qual realizou o exame (já que o médico que realiza não é o mesmo que solicita). Além disso, o paciente pode fazer o exame em outras clínicas. Nesses casos, para a clínica não interessa em qual clínica foi feito o exame, bastando apenas a informação se foi feito ou não na mesma. Sobre a realização do exame deve-se guardar a data da realização e o resultado. Um outro ponto importante, é que o paciente pode ter uma consulta de retorno e tal fato também deve ser controlado pelo sistema.

Com base nas informações descritas faça a modelagem de dados para o sistema. Se necessário complemente ou incremente a descrição.

• É a forma de agrupar um conjunto de entidades que compartilham características comuns.

HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

ESPECIALISTA MESTRE

IdTitulação Descrição

TITULAÇÕES

PESSOAS FÍSICAS

PESSOAS JURÍDICAS

IdPessoa Endereço

PESSOAS

Nome

CPF CGC

DtaNasc NomeFantasia

• É a forma de agrupar um conjunto de entidades que compartilham características comuns.

HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

PESSOAS FÍSICAS

PESSOAS JURÍDICAS

IdPessoa Diagnóstico

PESSOAS

Nome

CPF CGC

DtaNasc NomeFantasia

• É a forma de agrupar um conjunto de entidades que compartilham características comuns. Restrições:

d: mutuamente exclusivo - quando uma instância da entidade generalização só pode estar em uma entidade de especialização o: sobrepostos - quando uma instância da entidade generalização pode estar em duas ou mais entidade de especialização total: cada entidade da generalização deve pertencer a pelo menos uma entidade de especialização parcial: cada entidade da generalização pode ou não pertencer a uma entidade de especialização

HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

Funcionário

EndereçoNomeCódigo

SexoTipo

Consultor

Horas Tx hora

Terceiro

Salário

d

Especialização

Generalização

Total

HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

Funcionário

EndereçoNomeCódigo

SexoTipo

Consultor

Horas Tx hora

Terceiro

Salário

0

Especialização

Generalização

Parcial

HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO

FUNCIONARIO

nomecódigo endereço

sexo

CONSULTOR

horas tx hora

tipo

especialização

generalização

mostra a direção do relacionamento

superclasse/subclasse

METODOLOGIA PARA PROJETO DE BANCO DE DADOS

• Requerimentos e análise• Projeto conceitual do banco de dados• Escolha de um SGBD• Mapeamento do modelo de dados• Projeto físico do banco de dados• Implementação e configuração do banco de dados

ExercíciosUma empresa de TV à cabo necessita informatizar alguns dos seus serviços de forma a atender as seguintes necessidades: O sistema deverá controlar o cadastro dos clientes, pacotes (família, adulto, infantil, cinema, etc), da programação (filmes, horários, etc) e do pagamento de mensalidades.Cada pacote possui um preço e o cliente pode escolher uma combinação dos mesmos, podendo mais tarde adicionar mais pacotes se assim o desejar. O valor de sua mensalidade corresponde ao valor total dos pacotes e seu vencimento será todos os meses no dia em que comprou o primeiro pacote. O cliente poderá também escolher a quantidade de tv's para instalação do cabo, e a cada 2 tv's ele paga um adicional em sua mensalidade.Cada pacote possui um conjunto de canais exclusivos. Um canal é identificado por um número e seu nome (33- HBO2, por exemplo). A programação é composta de todos os filmes que serão exibidos, além de seus horários e datas de exibição. Vale ressaltar que, um filme pode ser exibido em mais de um horário e em várias datas diferentes.

ExercíciosUma empresa de TV à cabo necessita informatizar alguns dos seus serviços de forma a atender as seguintes necessidades: O sistema deverá controlar o cadastro dos clientes, pacotes (família, adulto, infantil, cinema, etc), da programação (filmes, horários, etc) e do pagamento de mensalidades.Cada pacote possui um preço e o cliente pode escolher uma combinação dos mesmos, podendo mais tarde adicionar mais pacotes se assim o desejar. O valor de sua mensalidade corresponde ao valor total dos pacotes e seu vencimento será todos os meses no dia em que comprou o primeiro pacote. O cliente poderá também escolher a quantidade de tv's para instalação do cabo, e a cada 2 tv's ele paga um adicional em sua mensalidade.Cada pacote possui um conjunto de canais exclusivos. Um canal é identificado por um número e seu nome (33- HBO2, por exemplo). A programação é composta de todos os filmes que serão exibidos, além de seus horários e datas de exibição. Vale ressaltar que, um filme pode ser exibido em mais de um horário e em várias datas diferentes.

ExercíciosUma loja de CDs deseja informatizar suas transações de venda e de aluguel de títulos, mantendo cadastros atualizados de clientes, balconistas, títulos, dos distribuidores que os fornecem e dos gêneros musicais em que estes se classificam. Entre o cliente e o balconista, as vendas e locações de títulos de CD devem ser armazenadas na base de dados juntamente com a data em que houve a transação (data de venda e data de locação, respectivamente). Somente para a locação, o sistema deverá também armazenar a data prevista para a devolução do titulo alugado (data de devolução). É de interesse da loja, saber, através das informações armazenadas na base de dados, que balconista vendeu ou alugou determinado titulo para qual cliente.Eventualmente, um cliente também pode solicitar a encomenda de um CD que não esteja disponível na loja. As encomendas feitas desta forma são pedidas diretamente para o balconista, mas para a loja somente é interessante saber qual cliente encomendou determinado titulo e em que data (data da encomenda). Note que um cliente pode encomendar vários títulos e um título pode ser encomendado por vários clientes. Normalmente, o processo de encomenda é seguido por uma transação de venda (mas nunca de locação), caso o(s) pedido(s) do cliente seja(m) atendido(s).Cada título de CD é classificado somente num gênero musical (pelo menos, aquele gênero que predomina) dentre os vários que a base de dados mantêm como disponíveis na loja. Além disso, cada título de CD é fornecido por apenas uma dentre as várias distribuidoras com a qual a loja obedece a contratos de revenda. Para cada distribuidora é imprescindível, além de outras informações, o nome do vendedor intermediário e dos telefones para contato.Um título pode estar disponível somente para venda ou somente para locação. E não se esqueça que, somente quando da disponibilidade de um CD ser para venda, o seu preço unitário, a quantidade de unidades vendidas no ato da transação e a sua quantidade, remanescente no estoque, são informações importantíssimas, além do que, no caso de um título disponível exclusivamente para locação, a sua venda não é permitida e vice-versa.