Introdução a banco de dados à modelagem e

57
Rilmar Gomes BANCO DE DADOS

Transcript of Introdução a banco de dados à modelagem e

Page 1: Introdução a banco  de dados à modelagem e

Rilmar Gomes

BANCO DE DADOS

Page 2: Introdução a banco  de dados à modelagem e

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

Page 3: Introdução a banco  de dados à modelagem e

Fundamentals of Database Systems

Elmasri, R; Navathe, S

Benjamin Cummings, 1994

Sistemas de banco de Dados

Korth, H. F.; Silberschatz, A; Sudarshan, S

Makkron Books, 1999

Introdução a Sistemas de Bancos de Dados

Date, C. J. , Editora Campus, 2000

Page 4: Introdução a banco  de dados à modelagem e

“É 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

É uma coleção lógica e coerente de dados com

relacionamentos intrínsecos;

É projetado, construído, e mantido para uma proposta

específica. É direcionado a um grupo de usuários/aplicação

Pode ter qualquer tamanho/complexidade

Page 5: Introdução a banco  de dados à modelagem e

Mundo Real Solução

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.

Page 6: Introdução a banco  de dados à modelagem e

É um conjunto de registros dispostos em estrutura regular que

possibilita a reorganização dos mesmos e produção

de informação.

Um banco de dados normalmente agrupa registros utilizáveis

para um mesmo fim.

Um banco de dados é usualmente mantido e acessado por meio

de um software conhecido como Sistema Gerenciador de Banco

de Dados (SGBD).

Normalmente um SGBD adota um modelo de dados, de forma

pura, reduzida ou estendida. Muitas vezes o termo banco de

dados é usado, de forma errônea, como sinônimo de SGDB.

Page 7: Introdução a banco  de dados à modelagem e

Os sistemas de gestão de banco de dados possuem

características especiais para o armazenamento, classificação,

gestão da integridade e recuperação dos dados.

Com a evolução de padrões de conectividade entre as tabelas de

um banco de dados e programas desenvolvidos em linguagens

como Java, Delphi, Visual Basic, C++ etc.

Como hoje em dia a maioria das linguagens de programação

fazem ligações a bancos de dados, a apresentação destes tem

ficado cada vez mais a critério dos meios de programação,

fazendo com que os bancos de dados deixem de restringir-se às

pesquisas básicas, dando lugar ao compartilhamento, em tempo

real, de informações, mecanismos de busca inteligentes e

permissividade de acesso hierarquizada.

Page 8: Introdução a banco  de dados à modelagem e

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-relacionados

e de um conjunto de programas

para acessá-los

Sistema de Bancos de Dados: Banco de Dados + Software

que o manipula

Page 9: Introdução a banco  de dados à modelagem e

Prover 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 dados

Dificuldade no acesso aos dados

Isolamento dos dados

Anomalias de acesso concorrente

Problemas de segurança

Abstração de dados

Simplifica a interação do usuário com o Sistema

Page 10: Introdução a banco  de dados à modelagem e

Fucapi

Page 11: Introdução a banco  de dados à modelagem e

1.Controle de Redundancia;

2. Compartilhamento de Dados;

3. Controle de Acesso aos Dados;

4. Multiplas Interfaces;

5. Representação de associacoes complexas;

6. Garantia de restrições de Integridade;

7. Recuperação de falhas

Page 12: Introdução a banco  de dados à modelagem e

Modelo do

sistema na

mente do

cliente

Modelo de Entidade

do Modelo do

cliente

Representação

Tabular do modelo

de entidade

Server

Tabelas no

disco

Page 13: Introdução a banco  de dados à modelagem e

Modelo Entidade Relacionamento

Modelo Relacional-Objeto Relacional

Mundo Real

Nível Conceitual

nível lógico

nível físico

Page 14: Introdução a banco  de dados à modelagem e

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

Page 15: Introdução a banco  de dados à modelagem e

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.

Fucapi

Page 16: Introdução a banco  de dados à modelagem e

FUNCIONÁRIO

DEPENDENTE

PROJETO

DEPARTAMENTOendereço

nome

número

salário

supervisor

1 N

possuir

trabalhar

gerenciar

N

1

horas

DataIni

nome

número

1

participar

N

1

DataNiver

nome

N

parentesco

controlar

nome

número

1

N

1

N

localização

Fucapi

Relacionamento

Entidade

Atributo

Page 17: Introdução a banco  de dados à modelagem e

Fucapi

Entidade Fraca

Entidade

Relacionamento

Atributo

Atributo Identificador

Atributo Multivalorado

Relacionamento Identificador

z

Page 18: Introdução a banco  de dados à modelagem e

Fucapi

Atributo Composto

...

Atributo Derivado

Participação total de E2 em R

Ex: Agência e Conta CorrenteE1 R E2

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

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

Page 19: Introdução a banco  de dados à modelagem e

FUNCIONARIO

STATUS

CLIENTE

CLIENTE

ATOR

GENERO

FILME

FITA

endereçonome

có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 aluguel

dt prev ret

dt retornovalor

previsto

1,N

multa

valor pago

*

2,N 1,N

1,1

1,N

0,N

1,1

código nome

principal

código descrição

nome

qtde fitas

preço

condição

código

código

código

Fucapi

Page 20: Introdução a banco  de dados à modelagem e

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

Fucapi

Page 21: Introdução a banco  de dados à modelagem e

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

Fucapi

Page 22: Introdução a banco  de dados à modelagem e

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

Fucapi

Page 23: Introdução a banco  de dados à modelagem e

Funcionário

Dependente

Departamento

EndereçoNome

IdFunc

Salário

Tem

Trabalho1

Nome

NomeIdDeptoP-20

1 N

Fucapi

Entidade

Independente

Entidade

Dependente

Page 24: Introdução a banco  de dados à modelagem e

Atributo- serve para qualificar a entidade

Simples Multivalorado Determinante ou Identificador Composto Derivado ou Calculado

Fucapi

Page 25: Introdução a banco  de dados à modelagem e

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

Notação

Fucapi

IdadeNumRua

CEP

Endereço

Fone

Nome

PESSOAS

Page 26: Introdução a banco  de dados à modelagem e

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.

Fucapi

Page 27: Introdução a banco  de dados à modelagem e

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

Notação

Fucapi

IdadeNum

Rua

CEP

Endereço

Nome

Fones

PESSOAS

Page 28: Introdução a banco  de dados à modelagem e

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

Notação

Fucapi

IdadeNumRua

CEP

Endereço

Nome

Fones

PESSOASCódigo

Page 29: Introdução a banco  de dados à modelagem e

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

Notação

Fucapi

FonesIdade

NumRua

CEP

Endereço

Nome

PESSOASCPF

IdPessoa

Page 30: Introdução a banco  de dados à modelagem e

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

Notação

Fucapi

Idade NumRua

CEP

Endereço

Nome

Fones

PESSOASCódigo

Page 31: Introdução a banco  de dados à modelagem e

Derivado ou Calculado Seu valor é gerado a partir do valor de outro atributo Exemplo: Data de Nascimento e Idade

Notação

Fucapi

PACIENTES

IdadeDataNasc Nome

Sexo

*

Page 32: Introdução a banco  de dados à modelagem e

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

Fucapi

Page 33: Introdução a banco  de dados à modelagem e

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

Fucapi

Page 34: Introdução a banco  de dados à modelagem e

Funcionário

Dependente

Departamento

EndereçoNome

Código

Salário

Supervisor

1

N

Tem

Trabalho1

Nome

NomeCódigo

Código

N

1 NÉ de

É C

om

posto

de

Trabalha no

possui

Fucapi

Entidade

Independente

Identificador

Entidade

Dependente

Não IdentificadorPapel do

Relacionamento

Page 35: Introdução a banco  de dados à modelagem e

• É 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

Fucapi

Page 36: Introdução a banco  de dados à modelagem e

CARDINALIDADE 1:1

E1

E2

E3

.

.

.

En

M1

M2

M3

.

.

.

Mn

1 : 1Médicos Especialidades

MÉDICOS ESPECIALIDADESpossuem1 1

Fucapi

Page 37: Introdução a banco  de dados à modelagem e

CARDINALIDADE 1:N

E1

E2

E3

E4

.

.

.

En

M1

M2

M3

.

.

.

Mn

1 : NMédicos Especialidades

MÉDICOS ESPECIALIDADESpossuemN 1

Fucapi

Page 38: Introdução a banco  de dados à modelagem e

CARDINALIDADE 1:N

P1

P2

P3

P4

.

.

.

Pn

M1

M2

M3

M4

.

.

.

Mn

N : N

Médicos Pacientes

MÉDICOS PACIENTESconsultasN N

MÉDICOS ESPECIALIDADESpossuem(0,1) (1,N)

Fucapi

Page 39: Introdução a banco  de dados à modelagem e

• É 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

Fucapi

Page 40: Introdução a banco  de dados à modelagem e

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

Funcionário

EndereçoNome

Código

Salário

Supervisão

1 N

Supervisionado Supervisor

Fucapi

Page 41: Introdução a banco  de dados à modelagem e

Fucapi

VENDEDORES vendas PRODUTOSN N

CLIENTES

N

É dado pelo total de entidades envolvidas no relacionamento

• Binário, ternário, etc.

MÉDICOS PACIENTESconsultasN N

Page 42: Introdução a banco  de dados à modelagem e

Fucapi

VENDEDORES vendas PRODUTOSN N

CLIENTES

N

• É definido pela regra de negócio

VENDEDORES PRODUTOSvendasN N

CLIENTESvendem compram

N

N N

N

Page 43: Introdução a banco  de dados à modelagem e

AGREGAÇÃO

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

MÉDICOS PACIENTESconsultasN N

Fucapi

Page 44: Introdução a banco  de dados à modelagem e

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

Fucapi

Page 45: Introdução a banco  de dados à modelagem e

AGREGAÇÃO

• O ternário obriga que em toda consulta o médico

solicite um exame.

MÉDICOS PACIENTESconsultasN N

EXAMES

N

Fucapi

Page 46: Introdução a banco  de dados à modelagem e

AGREGAÇÃO

• O MER não permite relacionamento entre relacionamento

MÉDICOS PACIENTESconsultasN N

EXAMES

N

solicita

N

Fucapi

Page 47: Introdução a banco  de dados à modelagem e

• 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

Fucapi

Page 48: Introdução a banco  de dados à modelagem e

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

Fucapi

Page 49: Introdução a banco  de dados à modelagem e

AGREGAÇÃO

MÉDICOS PACIENTESconsultasN N

EXAMES

solicitações

N

N

MÉDICOS PACIENTESconsultasN N

EXAMES

solicitações

N

N

Fucapi

Page 50: Introdução a banco  de dados à modelagem e

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.

Fucapi

Page 51: Introdução a banco  de dados à modelagem e

• É 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

Fucapi

Page 52: Introdução a banco  de dados à modelagem e

• É 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

ESPECIALISTA MESTRE

IdTitulação Descrição

TITULAÇÕES

Fucapi

Page 53: Introdução a banco  de dados à modelagem e

• É 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 podeestar em duas ou mais entidade de especialização

total: cada entidade da generalização deve pertencer a pelo menos umaentidade de especialização

parcial: cada entidade da generalização pode ou não pertencer a umaentidade de especialização

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

Fucapi

Page 54: Introdução a banco  de dados à modelagem e

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

Fucapi

Page 55: Introdução a banco  de dados à modelagem e

Fucapi

Uma 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.

Page 56: Introdução a banco  de dados à modelagem e

Fucapi

Uma 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.

Page 57: Introdução a banco  de dados à modelagem e

Fucapi

Uma 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.