EXEMPLOK

Propaganda
Exemplo Hospitalar
Exemplo: BD para uma realidade hospitalar
Médicos
Med_Amb
Ambulatórios
Consultas
Pacientes
a) Esquema Conceitual
Criação de uma tabela
Create table nome_tabela
( nome_atributo 1
domínio 1,
...
...
nome_atributo n
domínio n,
[ constraint nome_ri primary key (lista_atributos), ]
[constraint nome_ri foreign key (nome_atributo) references
nome_tabela]
);
Serão especificadas tantas chaves estrangeiras (foreign key) quantos forem os
atributos que expressam relacionamentos entre tabelas.
CRIAÇÃO DAS TABELAS
Ambulatórios [ nroa, andar, capacidade ]
Pacientes [ codp, nomep, idade, cidade , problema ]
Médicos [codm, nomem, idade, especialidade, salario,nroa ]
Consultas [ codm, codp, data_hora ]
Linguagem de Definição de Dados
create table ambulatorios
( nroa
integer,
andar
integer,
capacidade
integer,
constraint a1 primary key(nroa) );
create table pacientes
(
codp
integer,
nomep
varchar(20),
idade
integer,
cidade
varchar(20),
problema varchar(20),
constraint p1 primary key(codp));
Linguagem de Definição de Dados
create table medicos
( codm
integer,
nomem
text,
idade
integer,
especialidade
text,
salario
money,
nroa
integer ,
constraint m1 primary key(codm) ,
constraint ce1 foreign key(nroa) references ambulatorios );
create table consultas
( codm
integer,
codp
integer,
data_hora
date time,
constraint c1 primary key(codm,codp,data_hora),
constraint ce2 foreign key(codm) references medicos,
constraint ce3 foreign key(codp) references pacientes
);
b) Esquemas Externos
Visão: relação virtual derivada a partir das relações presentes no
BD (transparente para a aplicação)
Exemplo de visão: O setor de tratamento de câncer do Hospital
lida apenas com dados de pacientes que têm esta doença
Criação de uma visão
Create View nome_visão (lista de atributos) as
Select lista de atributos
from nome_relação e/ou visão
[ where qualificação] ;
Linguagem de Definição de Dados
Esquema Externo 1
Criação de uma Visão (SQL):
Create View PacCâncer (código, paciente, idade) as
Select codp, nomep, idade
from Pacientes
where problema = ‘Câncer’;
Definições recursivas
Create View PacCanJovens
as
Select * From PacCâncer Where idade < 21;
Nível Externo
Select *
from PacCâncer
where paciente like ‘J%’;
Nível Conceitual
Select codp, nomep, idade
from Pacientes
where problema = ‘câncer’
and nomep like ‘J%’;
LMD:
Update PacCâncer
set idade = idade + 1
where código = 1;
Update Pacientes
set idade = idade + 1
where problema = ‘câncer’
and codp = 1;
Esquema Externo 2
Create View DescontosMed (código, nome, desconto)
as Select codm, nomem, salário * 0.15 + 80
from Médicos;
Esquema Externo 3
Create View ConsultasMP (códigoMédico, especialidade,
códigoPaciente, data)
as Select médicos.codm, especialidade, codp, data_hora
from Médicos, Consultas
where Médicos.codm = Consultas.codm;
Esquema Externo 4
Create View DadosMed as
Select codm, nome, especialidade
from Médicos;
Create View Horários
as Select codm,data_hora
from Consultas;
Ambulatório
nroa
1
2
3
4
5
andar
1
1
2
2
2
capacidade
30
50
40
25
50
Pacientes
codp
nomep idade cidade
problema
1
2
3
4
5
Ana
Paulo
Lúcia
Mário
Raul
gripe
fratura
tendinite
sarampo
câncer
20
24
30
22
19
Fpolis
Palhoça
Fpolis
Blumenau
Blumenau
Consultas
codm
1
1
2
2
2
2
3
3
4
codp
1
4
1
2
3
4
3
4
4
data
12/10/04
13/10/04
13/10/04
13/10/04
14/10/04
14/10/04
12/10/04
15/10/04
16/10/04
hora
14:00
10:00
9:00
11:00
14:00
17:00
10:00
13:00
13:00
Médicos
codm nomem idade
1
João 20
2
Maria 20
3
Pedro 25
4
Carlos 28
especialidade
ortopedia
traumatologia
pediatria
ortopedia
nroa
1
2
2
salario
1000,00
2000,00
500,00
1500,00
Visão Externa 1- PacCâncer
codigo paciente
5
Raul
idade
19
Visão Externa 2- DescontosMed
codigo
1
2
3
4
nomem
João
Maria
Pedro
Carlos
desconto
230
380
155
305
Visão Externa 4
DadosMed
codm
1
2
3
4
nomem
João
Maria
Pedro
Carlos
especialidade
ortopedia
traumatologia
pediatria
ortopedia
Download