AULAS RESUMO

Propaganda
BANCO DE DADOS

Março 2013 - FUCAPI
Marcelo Mendes

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
Fucapi
 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
Fucapi

“É 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
Fucapi
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.
Fucapi
É 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.
Fucapi
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.
Fucapi
 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
Fucapi
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
Fucapi
Fucapi
1.Controle de Redundância;
2. Compartilhamento de Dados;
3. Controle de Acesso aos Dados;
4. Múltiplas Interfaces;
5. Representação de associações complexas;
6. Garantia de restrições de Integridade;
7. Recuperação de falhas
Fucapi
Modelo de Entidade
do
Modelo do
cliente
Modelo do
sistema na
mente do
cliente
Representação
Tabular do modelo
de entidade
Server
Tabelas no
disco
Fucapi a1
Mundo Real
Modelo Entidade Relacionamento
Nível Conceitual
Modelo Relacional-Objeto Relacional
nível lógico
nível físico
Fucapi
Modelo conceitual
É a descrição do BD de maneira independente ao SGBD, ou seja, define quais os dados
que aparecerão no BD, mas sem se importar com a implementação que se dará ao BD.
Desta forma, há uma abstração em nível de SGBD.
Uma das técnicas mais utilizadas dentre os profissionais da área é a abordagem
entidade-relacionamento (ER), onde o modelo é representado graficamente através do
diagrama entidade-relacionamento (DER) .
Fucapi
Modelo Lógico
Descreve o BD no nível do SGBD, ou seja, depende do tipo particular de SGBD que
será usado. Não podemos confundir com o Software que será usado. O tipo de SGBD
que o modelo lógico trata é se o mesmo é relacional, orientado a objetos, hierárquico,
etc.
Abordaremos o SGBD relacional, por serem os mais difundidos. Nele, os dados são
organizados em tabelas.
Fucapi
Fucapi
O modelo lógico do BD relacional deve definir quais as tabelas e o nome das colunas
que compõem estas tabelas.
Para o nosso exemplo, poderíamos definir nosso modelo lógico conforme o seguinte:
Aluno(mat_aluno, nome, endereco)
Turma (cod_turma, sala, periodo)
É importante salientar que os detalhes internos de armazenamento, por exemplo, não
são descritos no modelo lógico, pois estas informações fazem parte do modelo físico,
que nada mais é que a tradução do modelo lógico para a linguagem do software
escolhido para implementar o sistema.
Fucapi
Nível físico: o nível mais baixo de abstração descreve como os dados estão realmente
armazenados. No nível físico, complexas estruturas de dados de baixo nível são
descritas em detalhes;
É importante salientar que os detalhes internos de armazenamento, por exemplo, não
são descritos no modelo lógico, pois estas informações fazem parte do modelo físico,
que nada mais é que a tradução do modelo lógico para a linguagem do software
escolhido para implementar o sistema.
Fucapi
Projeto de Banco de Dados
NOME: Funcionários
OBJETIVO: Armazena informações referentes aos funcionários.
Nome
Tipo
Tam
PK
FK
Referência
Null
Descrição
FUN_CODIGO
INTEGER
10
S
-
-
-
Atributo único gerado
automaticamente para
identificar o
funcionário.
FUN_NOME
VARCHAR
50
-
-
-
-
Nome do funcionário
FUN_DATA_NASCIMEN
TO
DATE
-
-
-
-
-
Data de nascimento
do funcionário.
Fucapi
Conceito
A Álgebra Relacional é uma linguagem de consulta formal, porém
procedimental, ou seja, o usuário dá as instruções ao sistema para que o
mesmo realize uma seqüência de operações na base de dados para
calcular o resultado desejado.
Fucapi
A discussão sobre algumas operações básicas de álgebra relacional
realizada a seguir considera um banco de dados composto pelas
seguintes relações:
funcionário (NrMatric, NmFunc, DtAdm, Sexo, CdCargo, CdDepto)
cargo (CdCargo, NmCargo, VrSalario)
depto (CdDepto, NmDepto, Ramal)
Os atributos sublinhados com linha contínua indicam a chave primária de
cada relação enquanto que aqueles sublinhados com linha pontilhada
constituem chaves estrangeiras.
Fucapi
Fucapi
Estamos interessados em obter informações armazenadas nesse banco de dados,
e para isso deveremos formular expressões em álgebra relacional combinando
apenas algumas operações primitivas clássicas, que serão apresentadas uma a
uma de forma implificada em termos de seu significado prático e notação.
Toda operação relacional opera (age) sobre um ou mais conjuntos de dados e
fornece como resultado um novo conjunto. Devido a essa característica,
podemos combinar mais de uma operação relacional em uma única expressão
algébrica, fazendo com que o resultado de uma operação seja utilizado como
entrada para outra operação, aumentando com isso grandemente o poder dessa
linguagem de consulta.
Suponha que, inicialmente, precisamos obter o nome completo de todos os
funcionários de nosso banco de dados. Para isso será necessário executar uma
operação chamada Projeção.
Fucapi
Geralmente indicada na literatura por (a letra grega pi) produz um conjunto onde
há um elemento para cada elemento do conjunto de entrada, sendo que a estrutura dos
membros do conjunto resultante é definida nos argumentos da operação. Pode ser
entendida como uma operação que filtra as colunas de uma tabela. Por operar sobre
apenas um conjunto de entrada, a projeção é classificada como uma operação unária.
Ex.: NmFunc (funcionário)
essa expressão produz um conjunto contendo um elemento para cada funcionário, e
cada elemento contém apenas a informação referente a NmFunc da relação funcionário
original.
Fucapi
Fucapi
Agora estamos interessados em identificar todos os funcionários de sexo masculino
existentes no banco de dados. É uma situação que não podemos resolver com projeções
apenas, uma vez que deveremos descartar elementos do conjunto inicial. Para casos
desse tipo existe uma operação relacional chamada Seleção.
Seleção (ou Restrição)
Indicada por s (a letra grega sigma), é uma operação que para um conjunto inicial
fornecido como argumento, produz um subconjunto estruturalmente idêntico, mas
apenas com os elementos do conjunto original que atendem a uma determinada
condição (também chamada de predicado). A seleção pode ser entendida como uma
operação que filtra as linhas de uma tabela, e é também uma operação unária, já que
opera sobre um único conjunto de dados.
Ex.: Sexo = ‘M’ (funcionário)
produz o conjunto dos elementos de funcionário que atendem ao predicado [Sexo =
‘M’], ou seja, representa um subconjunto dos funcionários para o qual essa condição é
avaliada como verdadeira.
Fucapi
Fucapi
No caso de querermos descobrir o nome completo e a data de admissão
de todos os funcionários do sexo feminino existentes na empresa, será
necessário combinar uma projeção com uma seleção. Isso porque se
decidirmos projetar as colunas desejadas diretamente a partir da relação
funcionário, estaremos considerando também os elementos do sexo
masculino, o que não queremos. Como a projeção não permite descartar
linhas, apenas colunas, deveremos fornecer a essa operação o
subconjunto resultante de uma filtragem (seleção) da relação de
funcionários original, como mostram as duas figuras a seguir, que
representam as relações e as operações de duas maneiras diferentes.
Fucapi
Fucapi
Assim, a expressão que atende nossos objetivos nesse caso é
cabendo observar que devido ao alinhamento das operações está
implícito que primeiro será executada a seleção e depois a projeção,
sendo que nesse exemplo não poderíamos inverter essa ordem (você
poderia explicar porquê?).
Por esse motivo, dizemos que a álgebra relacional é uma linguagem
procedural, já que requer alguma definição quanto à ordem em que as
operações serão realizadas. Linguagens em que apenas mencionamos o
resultado desejado, sem fazer menção alguma à forma como isso deve
ser feito são chamadas de linguagens não-procedurais.
Fucapi
Suponha agora que precisamos obter o nome completo, a data de admissão e o salário
de cada funcionário cadastrado. Para essa consulta temos um fato novo, que é a
referência a colunas de mais de uma tabela, uma vez que o nome e a data de admissão
fazem parte da relação funcionário, enquanto que o salário existe apenas em cargos.
Isso é problemático, pois as duas operações que conhecemos até o momento são
unárias, e temos necessidade de combinar os dados de mais de uma relação. Para
situações como essa existe uma operação chamada Produto Cartesiano.
Fucapi
A notação geralmente adotada (na forma ‘conjunto1 x conjunto2’) para representar essa
operação binária indica bem a sua natureza: o resultado do produto cartesiano de duas
tabelas é uma terceira tabela contendo todas as combinações possíveis entre os elementos
das tabelas originais. Essa tabela resultante possuirá um número de colunas que é igual à
soma das quantidades de colunas das duas tabelas iniciais, e um número de linhas igual ao
produto do número de suas linhas. Portanto, se fizermos o produto cartesiano de uma tabela
A que possua 4 colunas e 10 linhas com uma tabela B onde existem 3 colunas e 7 linhas, a
tabela resultante terá 4+3= 7 colunas e 10*7= 70 linhas. Assim, cada linha dessa tabela
corresponderá à concatenação de uma linha da primeira tabela com uma linha da segunda.
O produto cartesiano não é muito usado como um fim em si mesmo, ou seja, dificilmente
estaremos interessados em saber quais são todas as combinações possíveis entre as linhas de
duas tabelas, pois a utilidade prática desse tipo de conhecimento é muito discutível.
Entretanto, é a única forma primitiva de que dispomos para fundir informações de duas
tabelas heterogêneas para posterior processamento. Nesse caso, tipicamente será necessário
executar uma Seleção sobre o resultado do Produto Cartesiano, de maneira a descartar as
combinações inválidas entre as linhas das tabelas originais.
Fucapi
observe que primeiro é produzido o produto cartesiano correspondente a todas as
combinações possíveis entre funcionários e cargos. Essa relação vai conter linhas onde
um funcionário estará associado a cargos que não são o seu, e devemos então aplicar
um filtro (uma seleção) para gerar um subconjunto apenas com as combinações
logicamente válidas (aquelas em que a chave estrangeira CdCargo de funcionário tem
valor igual á chave primária CdCargo de cargo). Como temos nesse subconjunto duas
colunas com o mesmo nome (CdCargo que veio de funcionário e CdCargo proveniente
de cargo), sempre que precisarmos mencionar uma delas será necessário especificar
exatamente a qual das duas colunas estamos nos referindo, senão teremos uma situação
ambígua, formalmente inaceitável. Dizemos, nesse caso, que é necessário qualificar a
coluna, e isso é feito escrevendo o nome da relação original antes do nome da coluna,
separando-os por um ponto, ou seja, <nome-da-relação>.<nome-da-coluna>. É por esse
motivo que escrevemos o predicado da seleção como sendo funcionário.CdCargo =
cargo.CdCargo. Finalmente, a projeção é realizada a partir desse subconjunto,
fornecendo os dados inicialmente desejados.
Fucapi
Fucapi
Fucapi
Fucapi
Fucapi
Caso desejemos obter uma variação ligeiramente diferente dessa
consulta, acrescentando a restrição de que precisamos dos dados apenas
dos funcionários do sexo masculino, teríamos a seguinte expressão
algébrica:
onde o símbolo Ù presente no predicado representa o conectivo lógico
“E”. Portanto, com apenas 3 operações relacionais básicas foi possível
extrair do banco de dados de exemplo várias informações importantes,
representativas de uma grande parcela das consultas que um sistema
gerenciador de bancos de dados deve processar.
Fucapi
As consultas realizadas foram:
1. obter o nome completo de todos os funcionários;
2. identificar todos os funcionários do sexo masculino;
3. obter o nome completo e a data de admissão de todos os funcionários
do sexo feminino;
4. obter o nome completo, a data de admissão e o salário de todos os
funcionários;
5. descobrir o nome completo, a data de admissão e o salário de todos os
funcionários do sexo masculino.
Fucapi

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
Fucapi
Modelo Entidade-Relacionamento (MER) Original:








– Fases do Projeto de Bases de Dados
– Definição e Objetivo do Modelo ER
– Entidades e Conjuntos-Entidade
– Atributos e Domínio de um Atributo
– Relacionamentos e Conjuntos-Relacionamento
– Projeto de Chaves
– Grau de um Relacionamento
– Restrições de Cardinalidade e Integridade
Referencial
Fucapi





Extensões e Variações do MER :
– Agregação
– Generalização/Especialização
– Notação, Variações e Exemplos
– Dicas para Elaboração de Modelos E-R
Fucapi

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
Atributo
DataIni
supervisor
Relacionamento
gerenciar
1
número
endereço
N
1
1
N
trabalhar
FUNCIONÁRIO
1
DEPARTAMENTO
N
nome
1
1
salário
localização
participar
possuir
controlar
horas
N
N
nome
DataNiver
número
nome
N
DEPENDENTE
parentesco
Fucapi
PROJETO
número
nome
Entidade
Entidade
Entidade Fraca
Relacionamento
Relacionamento Identificador
Atributo
Atributo Identificador
z
Atributo Multivalorado
Fucapi
...
Atributo Composto
Atributo Derivado
E1
E1
E1
E2
R
1
Ex: Agência e Conta Corrente
N
R
R
Participação total de E2 em R
(min,max)
Fucapi
Cardinalidade 1:N para E1:E2 em R
E2
E2
Constraint (min,max) de E em R
código
código
nome
GENERO
endereço
1,1
salário
4,N
descrição
FUNCIONARIO 1,N
classifica
1,1
código
nome
código
principal
0,N
supervisor
ATOR
código
1,1
possui
1,N
STATUS
CLIENTE
qtde fitas
preço
possui
possui
valor pago
aluguel
dt retorno
valor
previsto
1,N
0,N
CLIENTE
nome
FILME
1,1
descrição
dt prev ret
dt aluguel
código
2,N
nome
endereço
Fucapi
*
multa
1,N
1,N
FITA
condição
código

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

INDEPENDENTES (FORTES)
▪ entidade que existe por si só
▪ NOTAÇÃO : retângulo

RESTRIÇÕES


Não pode existir duas entidades com mesmo nome no modelo
DICA:
 Geralmente tem mais de um atributo




O nome = substantivo
Substantivo é tudo o que nomeia as "coisas" em geral.
Substantivo é tudo o que pode ser visto, pego ou sentido.
Substantivo é tudo o que pode ser precedido de artigo.
Fucapi
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
Entidade
Dependente
IdFunc
Nome
Endereço
Nome
Salário
1
N
Funcionário
Tem
IdDepto
P-20
1
Trabalho
Entidade
Independente
Fucapi
Dependente
Nome
Departamento

Atributo- serve para qualificar a entidade





Simples
Multivalorado
Determinante ou Identificador
Composto
Derivado ou Calculado
Fucapi

Simples
 só pode assumir um único valor elementar
 Exemplo: Nome, Idade, Data de Nascimento

Notação
Nome
Rua
Idade
Num
CEP
Fone
PESSOAS
Fucapi
Endereço

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

Multivalorado
 pode assumir mais de uma valor
 Exemplo: Fones

Notação
Rua
Nome
Num
Idade
Fones
CEP
PESSOAS
Fucapi
Endereço

Determinante
 Identifica unicamente uma entidade da outra
 Lembra o conceito de Chave

Notação
Nome
Rua
Idade
Num
Fones
Código
CEP
PESSOAS
Fucapi
Endereço

Determinante
 Identifica unicamente uma entidade da outra
 Lembra o conceito de Chave

Notação
Fones
Nome
Idade
Rua
Num
CEP
CPF
PESSOAS
IdPessoa
Fucapi
Endereço

Composto
 Pode ser dividido em sub atributos
 Exemplo: Endereço

Notação
Nome
Idade
Rua
Num
Fones
Código
Fucapi
CEP
PESSOAS
Endereço

Derivado ou Calculado
 Seu valor é gerado a partir do valor de outro atributo
 Exemplo: Data de Nascimento e Idade

Notação
DataNasc
Nome
Idade
Sexo
*
PACIENTES
Fucapi

RELACIONAMENTO
 É uma ligação entre duas ou mais entidades
 É representado por um losango

xx
RESTRIÇÕES
▪ Não se pode repetir nomes de relacionamentos
▪ O relacionamento deve ligar, no mínimo, duas
entidades
Fucapi a7

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
Entidade
Independente
Entidade
Dependente
Código
Nome
Identificador
Endereço
Salário
1
Código
1
N
É de
Funcionário
possui
Tem
N
Dependente
ÉC
N
Nome
om
po
sto
de
Supervisor
Código
Trabalho
Trabalha no
Nome
1
Departamento
Não Identificador
Papel do
Relacionamento
Fucapi
CARDINALIDADE 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
Fucapi
CARDINALIDADE 1:1
Médicos
MÉDICOS
Especialidades
1:1
M1
E1
M2
E2
M3
.
.
.
Mn
E3
.
.
.
En
1
Fucapi
possuem
1
ESPECIALIDADES
CARDINALIDADE 1:N
Médicos
Especialidades
1:N
E1
M1
E2
M2
M3
.
.
.
Mn
MÉDICOS
N
Fucapi
E3
E4
.
.
.
En
possuem
1
ESPECIALIDADES
CARDINALIDADE 1:N
Pacientes
Médicos
N:N
P1
M1
P2
M2
P3
M3
P4
.
.
.
Pn
M4
.
.
.
Mn
MÉDICOS
MÉDICOS
N
(0,1)
Fucapi
consultas
possuem
N
(1,N)
PACIENTES
ESPECIALIDADES
PARTICIPAÇÃO DO RELACIONAMENTO
• É 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)
Fucapi
PARTICIPAÇÃO DO RELACIONAMENTO:
TOTAL e PARCIAL
MÉDICOS
N
Fucapi
consultas
N
PACIENTES

Situação em que uma entidade se relaciona com outra do mesmo conjunto
Código
Nome
Endereço
Salário
1
Funcionário
Supervisionado
Supervisor
Supervisão
Fucapi
N
É dado pelo total de entidades envolvidas no relacionamento
• Binário, ternário, etc.
MÉDICOS
N
VENDEDORES
consultas
N
vendas
N
CLIENTES
Fucapi
N
PACIENTES
N
PRODUTOS
• É definido pela regra de negócio
VENDEDORES
N
N
vendas
N
N
N
vendem
PRODUTOS
N
CLIENTES
compram
VENDEDORES
N
vendas
N
CLIENTES
Fucapi
N
PRODUTOS
AGREGAÇÃO
MÉDICOS
N
consultas
N
PACIENTES
• Supondo que um médico faz consultas a pacientes.
Fucapi
AGREGAÇÃO
MÉDICOS
N
N
consultas
N
PACIENTES
N
N
solicita
N
EXAMES
faz
• Supondo também que nessas consultas o médico pode
fazer solicitações de exames.
• Vários binários = inconsistência
Fucapi
AGREGAÇÃO
MÉDICOS
N
consultas
N
PACIENTES
N
EXAMES
• O ternário obriga que em toda consulta o médico
solicite um exame.
Fucapi
AGREGAÇÃO
MÉDICOS
N
consultas
N
PACIENTES
N
solicita
N
EXAMES
• O MER não permite relacionamento entre relacionamento
Fucapi
AGREGAÇÃO
• 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
Fucapi
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
AGREGAÇÃO
N
MÉDICOS
consultas
N
PACIENTES
N
MÉDICOS
solicitações
N
N
solicitações
EXAMES
N
EXAMES
Fucapi
N
consultas
N
PACIENTES
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
HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO
• É a forma de agrupar um conjunto de entidades que
compartilham características comuns.
IdTitulação
IdPessoa
Nome
Descrição
Endereço
TITULAÇÕES
PESSOAS
CGC
CPF
NomeFantasia
DtaNasc
PESSOAS
FÍSICAS
PESSOAS
JURÍDICAS
ESPECIALISTA
Fucapi
MESTRE
HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO
• É a forma de agrupar um conjunto de entidades que
compartilham características comuns.
IdTitulação
IdPessoa
Nome
Descrição
Diagnóstico
TITULAÇÕES
PESSOAS
CGC
CPF
NomeFantasia
DtaNasc
PESSOAS
FÍSICAS
PESSOAS
JURÍDICAS
ESPECIALISTA
Fucapi
MESTRE
HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO
• É 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
Fucapi
HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO
Código
Nome
Sexo
Endereço
Tipo
Funcionário
Total
d
Consultor
Terceiro
Generalização
Horas
Fucapi
Tx hora
Salário
Especialização
HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO
Código
Nome
Sexo
Endereço
Tipo
Funcionário
Parcial
0
Consultor
Terceiro
Generalização
Horas
Fucapi
Tx hora
Salário
Especialização
HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO
código
nome
endereço
tipo
sexo
FUNCIONARIO
mostra a direção do
relacionamento
superclasse/subclasse
generalização
CONSULTOR
horas
Fucapi
tx hora
especialização
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
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.
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.
Fucapi
Download