190 likes | 314 Views
Exemplo : BD para uma realidade hospitalar Médicos Consultas Med_Amb Pacientes Ambulatórios . Exemplo Hospitalar. a) Esquema Conceitual. Criação de uma tabela Create table nome_tabela ( nome_atributo 1 domínio 1 ,
E N D
Exemplo: BD para uma realidade hospitalar Médicos Consultas Med_Amb Pacientes Ambulatórios Exemplo Hospitalar
a) Esquema Conceitual • Criação de uma tabela • Create table nome_tabela • ( nome_atributo 1 domínio 1, • ... ... • nome_atributo n domínio n, • [ constraintnome_riprimary key (lista_atributos), ] • [constraintnome_riforeign key (nome_atributo) referencesnome_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 Nível Conceitual • Select * Select codp, nomep, idade • from PacCâncer from Pacientes • where paciente like ‘J%’; where problema = ‘câncer’ • and nomep like ‘J%’;
LMD: Update PacCâncer Update Pacientes set idade = idade + 1 set idade = idade + 1 where código = 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 andar capacidade 1 1 30 2 1 50 3 2 40 4 2 25 5 2 50
Pacientes codp nomep idade cidade problema 1 Ana 20 Fpolis gripe 2 Paulo 24 Palhoça fratura 3 Lúcia 30 Fpolis tendinite 4 Mário 22 Blumenau sarampo 5 Raul 19 Blumenau câncer
Consultas codm codp data hora 1 1 12/10/04 14:00 1 4 13/10/04 10:00 2 1 13/10/04 9:00 2 2 13/10/04 11:00 2 3 14/10/04 14:00 2 4 14/10/04 17:00 3 3 12/10/04 10:00 3 4 15/10/04 13:00 4 4 16/10/04 13:00
Médicos codm nomem idade especialidade nroa salario 1 João 20 ortopedia 1 1000,00 2 Maria 20 traumatologia 2 2000,00 3 Pedro 25 pediatria 2 500,00 4 Carlos 28 ortopedia 1500,00
Visão Externa 1- PacCâncer codigo paciente idade 5 Raul 19 Visão Externa 2- DescontosMed codigo nomem desconto 1 João 230 2 Maria 380 3 Pedro 155 4 Carlos 305
Visão Externa 4 DadosMed codm nomem especialidade 1 João ortopedia 2 Maria traumatologia 3 Pedro pediatria 4 Carlos ortopedia