Companhia de Seguros PAGA & CALA

Tamanho: px
Começar a partir da página:

Download "Companhia de Seguros PAGA & CALA"

Transcrição

1 Departamento de Engenharia Electrotécnica e de Computadores Licenciatura em Engenharia Electrotécnica e de Computadores 5.º ANO 1.º SEMESTRE SISTEMAS DE INFORMAÇÃO 2001/2002 TRABALHO PRÁTICO Implementação de uma base de dados na Companhia de Seguros PAGA & CALA Trabalho elaborado por: Joel Pedro Peixoto de Carvalho Jorge Miguel Lopes Correia Turma: 5EEC12(T) Eng.ª Ana Paiva Dezembro 2001

2 INDÍCE : I II III IV V VI VII VII IX X XI Descrição do Problema Modelo Entidade-Associação Modelo Relacional Restrições de Integridade Criação da Instância Exemplo Os Forms criados Os Webforms criados Os Reports criados Elaboração das Perguntas à Base de Dados Estudo da Normalização Conclusões Joel Carvalho e Jorge Correia 2 / 21

3 I DESCRIÇÃO DO PROBLEMA A companhia de seguros Paga & Cala dedica-se única e exclusivamente à elaboração de seguros no ramo automóvel. tipo: O tipo de apólices celebradas entre a seguradora Paga & Cala e o segurado do seguinte Jota Bartolomeu, cliente do sexo Masculino, portador do B.I. nº e do numero de contribuinte , morador na Praceta Aqui do Lado n.º100, 4465 S. Mamede de Infesta, telefone segurou nesta companhia uma viatura automóvel de marca Porsche modelo Carrera 4 em 11 de Dezembro de Esta apólice fica registada com nº O seguro é do tipo A, para um montante máximo de $00, a que corresponde uma anuidade de $00. Os 4 tipos de seguros praticados pela companhia, respectivo montante coberto e anuidades a pagar encontram-se referidos na seguinte tabela: Categoria Montante Máximo Anuidade A $ $00 B $ $00 C $ $00 D $ $00 A Paga & Cala mantêm um registo actualizado dos acidentes que envolvem quaisquer viaturas seguradas por si. Esse registo assume a forma seguinte: A data do acidente; o nome, a data de nascimento, a morada, o numero do BI, o código postal, o número de contribuinte e o telefone do condutor da viatura na altura do acidente e o montante pago pela companhia para compensar os estragos causados. É também registada a matrícula da viatura. Joel Carvalho e Jorge Correia 3 / 21

4 II MODELO ENTIDADE-ASSOCIAÇÃO O primeiro passo da elaboração da base de dados da companhia de seguros Paga & Cala passa como é obvio pela criação do diagrama entidade associação no Oracle Designer 6i utilizando a ferramenta Entity Relationship Diagrammer. Os tipos de dados de cada atributo foram especificados tendo sido também também escolhidas as chaves de cada uma das entidades. As entidades geradas e a sua função na base de dados são as seguintes: TIPO1 - Entidade que especifica o tipo de apólice negociado pela companhia cujo conteúdo foi já referido acima, a chave desta entidade é obviamente à categoria da apólice (A,B,C ou D). APOLICE1 - Entidade onde estão registadas todos as apólices de seguro automóvel celebradas entre a Paga & Cala e determinado cliente. O numero de matricula (MATRICULA) é portanto a chave desta entidade vez que é uma forma de identificação única para um veiculo. È salientar o facto de uma apólice se referir apenas a um veículo, podendo no entanto o mesmo segurado possuir várias apólices. Os campos adicionais especificam os dados pessoais (NOME, MORADA, CODIGOPOSTAL, DATANASC,BI, NUMCONTRIB, SEXO, TELEFONE), alguns dados adicionais do veiculo (MARCA, MODELO) bem como a data de celebração de contrato (DATAINICIO). REGISTO1 - Esta entidade contem o registo de acidentes que envolveram quaisquer veículos segurados pela Paga & Cala. A data do acidente (DATA) é a chave, uma vez que através dela juntamente com a matricula do veículo, campo da entidade APOLICE1, fica especificado de forma única um acidente que tenha envolvido um veículo segurado. NOTA: De referir aqui uma das limitações da nossa base de dados, uma vez que assumimos que um veículo automóvel não sofre dois acidentes no mesmo dia e hora (o que na verdade também é extremamente improvável). Esta entidade contem uma outra série de campos que especificamos dados pessoais do condutor do veículo segurado (NOME, MORADA, CODPOSTAL, DATANASC, SEXO, TELEFONE, NUMCONTRIB, BI). Note-se que não necessariamente tem de ser o possuidor da apólice o condutor do automóvel segurado. Como era de esperar é também esta entidade que conterá o valor de compensação a atribuir ao/s veiculo/s danificado/s (MONTANTECOMP). PAGAMENTO1 Esta última entidade aqui referida refere-se aos pagamentos por parte dos segurados das respectivas apólices. A data (DATA) do saldar da divida para com a Paga & Cala, juntamente com a matrícula do veículo, campo da entidade APOLICE1, especificam univocamente o pagamento de uma apólice, daí que este campo seja a chave desta entidade. Para facilitar a compreensão das relações entre entidades é apresentado desde já o modelo entidade-associação que caracteriza a base de dados: Joel Carvalho e Jorge Correia 4 / 21

5 TIPO1 # CATEGORIA * ANUIDADE * MONTMAX a que pertence a do REGISTO1 # DATA * BI * CODIGOPOSTAL * DATANASC * MONTANTECOMP * MORADA * NOME * NUMCONTRIB * SEXO * TELEFONE que se refere a onde fica o APOLICE1 # MATRICULA * BI * CODIGOPOSTAL * DATAINICIO * DATANASC * MARCA * MODELO * MORADA * NOME * NUMCONTRIB * SEXO o NUMACID o TELEFONE a que se refere o da PAGAMENTO1 # DATA o PERCENTAGEMDESC o VALOR Os diversos tipos de atributos de cada instancia encontram-se referidos na tabela abaixo TIPO1 APOLICE1 REGISTO1 PAGAMENTO1 ATRIBUTOS TIPO ATRIBUTOS TIPO ATRIBUTOS TIPO ATRIBUTOS TIPO CATEGORIA CHAR MATRICULA CHAR DATA DATE DATA DATE ANUIDADE NUMBER BI NUMBER BI NUMBER PERCENTAGEMDESC CHAR MONTMAX NUMBER CODIGOPOSTAL NUMBER CODIGOPOSTAL NUMBER VALOR NUMBER DATAINICIO DATE DATANASC DATE DATANASC DATE MONTANTECOMP NUMBER MARCA CHAR MORADA CHAR MODELO CHAR NOME CHAR MORADA CHAR NUMCONTRIB NUMBER NOME CHAR SEXO CHAR NUMCONTRIB NUMBER TELEFONE NUMBER SEXO CHAR NUMACID NUMBER TELEFONE NUMBER Note-se que a designação not null à frente de cada atributo define o carácter de obrigatoriedade do atributo, isto é, todos os atributos distinguidos com not null devem ser obrigatoriamente preenchidos antes de serem inseridos na base de dados. Através do esquema entidade associação facilmente se verifica que todas as nossas relações entre entidades são de 1 para M (um para muitos). Um exemplo rápido explicita isto claramente: - Existem muitas apólices, mas apenas um tipo* é especificada por cada apólice**. - Existem muitos registos de acidentes*** mas cada registo só diz respeito a uma só apólice. - Os pagamentos**** também são inúmeros no entanto cada pagamento diz respeito a apenas uma apólice. Joel Carvalho e Jorge Correia 5 / 21

6 - O facto de alguns campos serem iguais deve-se a servirem para trabalharem com os triggers e serem de informação, com excepção da PERCENTAGEMDESC que foi introduzido mas não chegou a ser utilizado. Notas: *Tipo: Um tipo pode ter várias apólices, porém não é obrigatório que isso aconteça. **Apólice: Uma apólice tem muitos pagamentos e refere-se a vários tipos. Porém esta relação é obrigatória, ou seja, uma apólice não tem que ter obrigatoriamente registos assim como não tem que ter obrigatoriamente pagamentos. ***Registo: Um registo tem que ter obrigatoriamente uma apólice. A relação entre a associação registo e a entidade apólice é M para 1. ****Pagamento: Um pagamento é feito obrigatoriamente para uma apólice. A relação de M to 1 de pagamento para apólice representa isso mesmo. Joel Carvalho e Jorge Correia 6 / 21

7 III MODELO RELACIONAL Este modelo relacional é gerado através do Design Editor do Oracle Designer 6i. Pela análise do esquema relacional podemos verificar que a transformação do modelo entidade-associação num modelo relacional resulta na herança de atributos por parte algumas entidades. Este fenómeno resulta das relações que existem entre as entidades. A base de dados referente á companhia de seguros Paga & Cala é então composta pelas seguintes tabelas: - TIPOS1 (CATEGORIA, ANUIDADE, MONTMAX) - APOLICES1 (MATRICULA, TIP1_CATEGORIA, BI, CODIGOPOSTAL, DATAINICIO, DATANASC, MARCA, MODELO, NUMCONTRIB, SEXO, NUMACID, TELEFONE) - REGISTOS1 (APO1_MATRICULA, DATA, BI, CODIGOPOSTAL, DATANASC, MONTANTECOMP, MORADA, NOME, NUMCONTRIB, SEXO, TELEFONE) - PAGAMENTOS1 (DATA, AP01_MATRICULA, VALOR, PERCENTAGEMDESC) Torna-se então bem evidente, através do modelo relacional criado, o facto dos atributos chave de uma entidade serem nalguns casos parcialmente herdados doutra entidade. No nosso caso: - a chave de APOLICES1 é (MATRICULA, TIP1_CATEGORIA) é parcialmente herdada de TIPOS1 - a chave de REGISTOS1 é (APO1_MATRICULA, DATA) é parcialmente herdada de APOLICES1 Joel Carvalho e Jorge Correia 7 / 21

8 - a chave de PAGAMENTOS1 (DATA, AP01_MATRICULA) é parcialmente herdada de APOLICES1 Com este modelo todas as entidades se encontram relacionadas, ou seja, através de alguns dos seus atributos podemos alcançar a informação contida noutras as tabelas. Joel Carvalho e Jorge Correia 8 / 21

9 IV RESTRIÇÕES DE INTEGRIDADE As restrições de integridade podem ser obtidas de várias formas, como por exemplo através de triggers ou através da implementação de chaves primárias ou chaves estrangeiras. Todas as restrições de integridade foram obtidas recorrendo a triggers. De seguida são apresentados os códigos fonte dos 5 triggers que foram implementados: trigger 10, trigger 12, trigger 13, trigger 14, trigger 15, trigger 19, trigger 23, trigger 25. EVITA A INSERÇÃO DE MONTANTES COMPENSADOS COM VALORES NEGATIVOS CREATE or replace TRIGGER trigger10 BEFORE INSERT or UPDATE ON registos1 for each row BEGIN IF (:new.montantecomp <= 0) THEN RAISE_APPLICATION_ERROR(-20210,'O VALOR DO MONTANTE COMPENSADO NÃO PODE TOMAR VALORES NEGATIVOS!!!'); END IF; END; EVITA A INSERÇÃO DE REGISTOS DE ACIDENTES COM DATA INFERIOR À DE HOJE create or replace trigger trigger12 BEFORE INSERT OR UPDATE on registos1 for each row begin if (:new.data < sysdate) then raise_application_error (-20210,'Inseriu uma data inválida'); end if; end; EVITA A INSERÇÃO DE APOLICES COM DATA INFERIOR À DE HOJE create or replace trigger trigger13 BEFORE INSERT OR UPDATE on apolices1 for each row begin if (:new.datainicio < sysdate) then raise_application_error (-20210,'Inseriu uma data inválida'); end if; end; EVITA A INSERÇÃO DE PAGAMENTOS COM DATA INFERIOR À DE HOJE create or replace trigger trigger14 BEFORE INSERT OR UPDATE on pagamentos1 for each row begin if (:new.data < sysdate) then raise_application_error (-20210,'Inseriu uma data inválida'); end if; end; Joel Carvalho e Jorge Correia 9 / 21

10 EVITAR A INTRODUÇÃO DE APOLICES COM MATRICULAS IGUAIS CREATE or replace TRIGGER trigger15 BEFORE INSERT or UPDATE ON apolices1 FOR EACH ROW DECLARE times number(3); BEGIN times:= 0; SELECT COUNT(*) INTO times FROM apolices1 WHERE matricula = :new.matricula; IF (times!= 0) THEN RAISE_APPLICATION_ERROR(-20210,'Matricula já tem apólice!'); END IF; END; NAO PODE HAVER MAIS QUE UM PAGAMENTO POR ANO CREATE or replace TRIGGER trigger21 before INSERT or UPDATE ON pagamentos1 FOR EACH ROW DECLARE contagem number(1); BEGIN select count(data) into contagem from pagamentos1 where to_char(pagamentos1.data,'yy')=to_char(:new.data,'yy') and apo1_matricula=:new.apo1_matricula; if(contagem=1) then raise_application_error(-20210,'já pagou este ano'); end if; END; ACTUALIZA OS VALORES SEGURADOS E A PAGAR AQUANDO DE NOVA APOLICE CREATE or replace TRIGGER trigger19 AFTER INSERT or UPDATE ON apolices1 FOR EACH ROW BEGIN if :new.tip1_categoria='a' then update tipos1 set anuidade=35 where categoria='a'; update tipos1 set montmax= where categoria='a'; end if; if :new.tip1_categoria='b' if :new.tip1_categoria='c' if :new.tip1_categoria='d' END; then update tipos1 set anuidade=20 where categoria='b'; update tipos1 set montmax=50000 where categoria='b'; end if; then update tipos1 set anuidade=10 where categoria='c'; update tipos1 set montmax=20000 where categoria='c'; end if; then update tipos1 set anuidade=7 where categoria='d'; update tipos1 set montmax=10000 where categoria='d'; end if; CALCULA O VALOR DE ANUIDADE A PAGAR DE ACORDO COM OS ACIDENTES EXISTENTES OU NÃO CREATE or replace TRIGGER trigger25 BEFORE INSERT or UPDATE ON pagamentos1 FOR EACH ROW DECLARE times number(3); times2 number(3); xpto number(15); xpto2 number(15); BEGIN times:= 0; Joel Carvalho e Jorge Correia 10 / 21

11 times2:=0; SELECT COUNT(*) INTO times FROM registos1 WHERE to_number(to_char(data,'yy'))=to_number(to_char(:new.data))-1 and :new.apo1_matricula=apo1_matricula; SELECT COUNT(*) INTO times2 FROM registos1 WHERE to_number(to_char(data,'yy'))=to_number(to_char(:new.data))-2 and :new.apo1_matricula=apo1_matricula; select tip1_categoria into xpto2 from apolices1 where matricula=:new.apo1_matricula; select anuidade into xpto from tipos1 where categoria=xpto2; if (times=0) then elsif (times=1) then elsif (times=2) then elsif (times=3) then elsif (times>3) then end if; end if; update pagamentos1 set valor=xpto; update pagamentos1 set valor=xpto+15000; update pagamentos1 set valor=xpto+35000; update pagamentos1 set valor=xpto+65000; raise_application_error(-20210,'comece a deixar o carro em casa...'); update pagamentos1 set valor=xpto ; if (times2=0) then update pagamentos1 set valor=xpto-2000; END; Joel Carvalho e Jorge Correia 11 / 21

12 V SCRIPTS DE INICIALIZAÇÃO DAS INSTANCIAS Instancia TIPOS1 insert into tipos1 values ('A', ' ', '35000'); insert into tipos1 values ('B', ' ', '20000'); insert into tipos1 values ('C', ' ', '10000'); insert into tipos1 values ('D', ' ', '7000'); Instancia APOLICES1* ATAINICIO,SEXO,NOME,TELEFONE) values ('15-25-AB','C','4465',' ',' ','127','rua das couves 11','fiat',' ',' ','Masculino','Chico Santola',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('25-25-AD','A','4465',' ',' ','wdm','rua dos nabos 12','porsche',' ',' ','Feminino','Xuana Molinha',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('35-25-AG','D','4465',' ',' ','xl','rua das pencas 13','fiat',' ',' ','Masculino','Bigodalho Sapudo',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('45-25-AV','A','4466',' ',' ','xs','rua das cenouras 14','ferrari',' ',' ','Feminino','Carlota das Neves',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('55-25-AK','A','5466',' ',' ','hh','rua dos tomates 15','bmw',' ',' ','Masculino','Rain Men',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('65-25-AL','D','6479',' ',' ','pico','praceta do manjericao 16','ford',' ',' ','Feminino','Urina Pacova',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('75-25-AE','B','7489',' ',' ','mk','praceta dos espinafres 17','citroen',' ',' ','Masculino','Jota Carvalho',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('85-26-AQ','D','8455',' ',' ','xpto','avenida dos agrioes 18','ford',' ',' ','Masculino','Faria Asakebrada',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('95-17-AP','A','9433',' ',' ','toto','travessa das ervilhas 19','vw',' ',' ','Masculino','Postas de Pescada',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('15-28-AU','A','4132',' ',' ','mac','rua da beterraba 20','vw',' ',' ','Feminino','Susanita Santos',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('15-29-GG','D','4212',' ',' ','ttl','rua das vagens 21','fiat',' ',' ','Feminino','Little Debbie',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('15-35-JK','D','4211',' ',' ','tt','rua das vagens 22','vw',' ',' ','Feminino','Marina Xau',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('15-45-AH','D','4245',' ',' ','sos','rua das vagens 23','opel',' ',' ','Masculino','Joalho Pi',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('15-75-AK','A','4245',' ',' ','civic','rua das vagens 24','honda',' ',' ','Feminino','Martina Silves',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('15-85-AL','D','4245',' ',' ','hh','rua das couves 21','bmw',' ',' ','Masculino','Tó Carro',' '); Joel Carvalho e Jorge Correia 12 / 21

13 ATAINICIO,SEXO,NOME,TELEFONE) values ('15-95-AZ','C','4246',' ',' ','vi','rua das pencas 21','seat',' ',' ','Feminino','Lia Ontem',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('15-15-AX','D','4744',' ',' ','clio','rua das tomates 21','renault',' ',' ','Masculino','Lio travasso',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('15-25-AC','C','4744',' ',' ','vi','rua das nabos 21','seat',' ',' ','Feminino','Andrea Kappa',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('15-35-AV','D','4944',' ',' ','sos','rua das jarras 21','opel',' ',' ','Masculino','Marito Jó',' '); ATAINICIO,SEXO,NOME,TELEFONE) values ('18-38-BV','D','4944',' ',' ','sos','rua das jarras 22','opel',' ',' ','Masculino','Marisa Chata',' '); Instancia REGISTOS1 insert into registos1 values ('15-25-AB',' ','1444',' ','100000','Masculino',' ',' ','rua das couves 11','Chico Santola',' '); insert into registos1 values ('15-25-AB',' ','1474',' ','400000','Feminino',' ',' ','rua do xilindro','gina da Bouça',' '); insert into registos1 values ('15-25-AB',' ','1445',' ','250000','Masculino',' ',' ','rua das couves 11','Chico Santola',' '); insert into registos1 values ('15-95-AZ',' ','4246',' ','250000','Feminino',' ',' ','rua das pencas 21','Lia Ontem',' '); insert into registos1 values ('15-15-AX',' ','4744',' ','400000','Masculino',' ',' ','rua das tomates 21','Lio travasso',' '); insert into registos1 values ('15-25-AC',' ','4744',' ','500000','Feminino',' ',' ','rua das nabos 21','Andrea Kappa',' '); insert into registos1 values ('15-35-AV',' ','4944',' ','100000','Masculino',' ',' ','rua das jarras 21','Marito Jó',' '); Instancia PAGAMENTOS1* insert into pagamentos1 (DATA,APO1_MATRICULA,VALOR) values (' ','15-25-AB','4465'); insert into pagamentos1 (DATA,APO1_MATRICULA,VALOR) values (' ','25-25-AD','4465'); insert into pagamentos1 (DATA,APO1_MATRICULA,VALOR) values (' ','15-25-AC','4744'); insert into pagamentos1 (DATA,APO1_MATRICULA,VALOR) values (' ','15-35-AV','4944'); insert into pagamentos1 (DATA,APO1_MATRICULA,VALOR) values (' ','18-38-BV','4944'); insert into pagamentos1 (DATA,APO1_MATRICULA,VALOR) values (' ','15-15-AX','4744'); insert into pagamentos1 (DATA,APO1_MATRICULA,VALOR) values (' ','15-95-AZ','4246'); Nota: Tanto a entidade APOLICES1 como PAGAMENTOS1 necessitam aquando da geração de dados que se mencionem os nomes dos seus campos uma vez que alguns destes são optativos. Joel Carvalho e Jorge Correia 13 / 21

14 VI OS FORMS CRIADOS Joel Carvalho e Jorge Correia 14 / 21

15 VII OS WEBFORMS CRIADOS Joel Carvalho e Jorge Correia 15 / 21

16 VIII OS REPORTS CRIADOS Joel Carvalho e Jorge Correia 16 / 21

17 IX ELABORAÇÃO DAS PERGUNTAS A BASE DE DADOS 1. Indique os nomes dos condutores que não têm acidentes há 2 anos ou mais. Álgebra relacional: [ ( REGISTOS1) >< APOLICES1] NOME SYSDATE > ( YY ) DATA( YY ) 2, AP01_ MATRICULA Linguagem SQL: select nome from apolices1 where matricula in ( select apo1_matricula from registos1 where to_number(to_char(data,'yy')) not in ( to_number(to_char(sysdate,'yy')),to_number(to_char(sysdate,'yy'))-1,to_number(to_char(sysdate,'yy'))-2) ); Resposta da BD: NOME Chico Santola Andrea Kappa Marito Jó 2. Qual o nome e o valor do último pagamento de apólice efectuado, pelo possuidor da apólice do último veículo a ter um acidente? Álgebra relacional: VALOR [ σ MAX ( DATA ( PAGAMENTOS1) >< APOLICES1] NOME, ) Linguagem SQL: select nome,valor,data from apolices1,pagamentos1 where matricula=apo1_matricula and data in (select max(data) from pagamentos1); Resposta da BD: NOME VALOR DATA Marito Jó Qual foi o lucro (ou prejuízo, se negativo) da seguradora com os seguros efectuados no ano 2000? 4. Álgebra relacional: [ σ ( REGISTOS1) >< σ ( PAGAMENTOS1 ] (, ) ( ) = 00 ( ) = 01 ) SUM MONTANTECOMP VALOR DATA YY DATA YY Joel Carvalho e Jorge Correia 17 / 21

18 Linguagem SQL: select sum(-soma_comp+soma_pagamentos) Balanço2000 from ( select sum(montantecomp) soma_comp,sum(valor) soma_pagamentos from registos1 r,pagamentos1 p where to_number(to_char(r.data,'yy'))=00 and to_number(to_char(p.data,'yy'))=01 ); Resposta da BD: BALANÇO Qual a matrícula, marca e modelo do veículo que regista mais acidentes no último ano? Álgebra relacional: [ σ ( REGISTOS1) >< σ ( REGISTOS1 ] MATRICULA, MARCA, MODELO MAX ( COUNT ( AP01_ MATRICULA)) DATA( YY ) = SYSDATE ( YY ) 1 ) Linguagem SQL: select matricula,marca,modelo from apolices1 where matricula=( select apo1_matricula from (select apo1_matricula,count(*) n from registos1 where to_number(to_char(data,'yy'))=(select (to_number(to_char(sysdate,'yy')))-1 from dual) group by apo1_matricula) where n=(select max(n) from ( select apo1_matricula,count(*) n from registos1 group by apo1_matricula )) ); Resposta da BD: não foram seleccionadas linhas Nota: por lapso esquecemo-nos de inserir valores que nos permitissem obter resposta obvia a esta pergunta. No entanto parece-nos obvia a boa formulação da mesma, não tendo sido obtido qualquer resultado uma vez que na nossa base de dados não existem veículos que tenham sofrido ou estado envolvidos em mais do que um acidente durante o ultimo ano 5. Quais os veículos que tiveram um acidente no ano de 1999? Álgebra relacional: [ σ 1 ] MATRIOCULA ( YY ) = 99, COUNT ( DATA) = DATA 1( REGISTO ) Linguagem SQL: select apo1_matricula from (select apo1_matricula,data,count(*) n from registos1 group by apo1_matricula,data) where to_number(to_char(data,'yy'))=99 and n=1; Resposta da BD: APO1_MATRICULA AC Joel Carvalho e Jorge Correia 18 / 21

19 X NORMALIZAÇÃO Ao construirmos o modelo entidade-associação, tivemos o cuidado de não termos redundância. O esquema está na forma normalizada. Vamos seguir os passos necessários para o estudo da normalização. O método da normalização compreende 5 passos: 1- Determinar as dependências funcionais aplicáveis na relação. 2- Determinar as chaves a partir das dependências funcionais. 3- Reduzir o conjunto de dependências funcionais a uma forma minimal. 4- Verificar se a relação está normalizada ou, se pelo contrário, tem dependências funcionais que causam redundância. 5- No caso de não estar normalizado, decompor a relação em duas ou mais relações normalizadas. De seguida seguiremos estes passos para as nossas tabelas: Tabela TIPOS1 TIPOS1 (CATEGORIA,ANUIDADE,MONTMAX) 1- CATEGORIA ANUIDADE MONTMAX 2- Chave CATEGORIA, como é evidente. 3- O conjunto de dependências funcionais já esta na forma minimal (ver ponto 1) 4- Verificação da forma normal de Boyce-Cood (BCNF), que diz que uma relação R está na BCNF quando não tem nenhuma DF não trivial X A, em que X não contém uma chave. Como podemos constatar a nossa relação esta na forma BCNF. CATEGORIA ANUIDADE MONTMAX 5- Visto que a relação esta na forma BCNF, não é necessário decompor-se em várias relações. Assim este ponto não se pode aplicar. Tabela PAGAMENTOS1 PAGAMENTOS1 (DATA, APO1_MATRICULA, PERCENTAGEMDESC, VALOR) 1- DATA APO1_MATRICULA, PERCENTAGEMDESC, VALOR 2- Chave DATA, como é evidente. 3- O conjunto de dependências funcionais já esta na forma minimal (ver ponto 1) 4- Verificação da forma normal de Boyce-Cood (BCNF), que diz que uma relação R está na BCNF quando não tem nenhuma DF não trivial X A, em que X não contém uma chave. Como podemos constatar a nossa relação esta na forma BCNF. Joel Carvalho e Jorge Correia 19 / 21

20 DATA APO1_MATRICULA, PERCENTAGEMDESC, VALOR: Obedece à BCNF 5- Visto que a relação esta na forma BCNF, não é necessário decompor-se em várias relações. Assim este ponto não se pode aplicar. Tabela REGISTOS1 REGISTOS1 (DATA, APO1_MATRICULA, BI, CODIGOPOSTAL, DATANASC, MONTANTECOMP, MORADA, NOME, NUMCONTRIB, SEXO,TELEFONE) 1- DATA MATRICULA BI CODIGOPOSTAL DATANASC MONTANTECOMP MORADA NOME NUMCONTRIB SEXO TELEFONE 2- Chave DATA MATRICULA, como é evidente. 3- O conjunto de dependências funcionais já esta na forma minimal. DATA MATRICULA BI CODIGOPOSTAL DATANASC MONTANTECOMP MORADA NOME NUMCONTRIB SEXO TELEFONE 4- Verificação da forma normal de Boyce-Cood (BCNF), que diz que uma relação R está na BCNF quando não tem nenhuma DF não trivial X A, em que X não contém uma chave. Como podemos constatar a nossa relação esta na forma BCNF. COD_CUR TIPO_CUR DESIGN_CUR: Obedece à BCNF 5- Visto que a relação esta na forma BCNF, não é necessário decompor-se em várias relações. Assim este ponto não se pode aplicar. Tabela APOLICES1 APOLICES1 (MATRICULA, TIP1_CATEGORIA, BI, CODIGOPOSTAL, DATAINICIO, DATANASC, MARCA, MODELO, MORADA, NOME, NUMCONTRIB, SEXO, NUMACID, TELEFONE) 1- MATRICULA TIP1_CATEGORIA BI CODIGOPOSTAL DATAINICIO DATANASC MARCA MODELO MORADA NOME NUMCONTRIB SEXO NUMACID TELEFONE 2- Chave MATRICULA, como é evidente. 3- O conjunto de dependências funcionais já esta na forma minimal. MATRICULA TIP1_CATEGORIA BI CODIGOPOSTAL DATAINICIO DATANASC MARCA MODELO MORADA NOME NUMCONTRIB SEXO NUMACID TELEFONE 4- Verificação da forma normal de Boyce-Cood (BCNF), que diz que uma relação R está na BCNF quando não tem nenhuma DF não trivial X A, em que X não contém uma chave. Como podemos constatar a nossa relação esta na forma BCNF. MATRICULA TIP1_CATEGORIA BI CODIGOPOSTAL DATAINICIO DATANASC MARCA MODELO MORADA NOME NUMCONTRIB SEXO NUMACID TELEFONE 5- Visto que a relação esta na forma BCNF, não é necessário decompor-se em várias relações. Assim este ponto não se pode aplicar. Joel Carvalho e Jorge Correia 20 / 21

21 XI CONCLUSÕES Todo o trabalho efectuado na elaboração da base de dados da seguradora Paga & Cala permitiu-nos adquirir alguma experiência na formulação e técnicas de projecto de uma base de dados. Devemos no entanto reconhecer que o nosso trabalho contem algumas limitações, sendo que uma verdadeira base de dados de uma também verdadeira companhia de seguros devesse ser manifestamente mais complexa. Um esquema entidade-associação anterior da nossa base de dados era o seguinte: TIPO # CATEGORIA * ANUIDADE * MONTMAX do a que pertence a APOLICE # MATRICULA * DATAINICIO onde fica o * MARCA * MODELO o NUMACID a que se refere o que se refere a da REGISTO # DATA que pertence a PAGAMENTO * DATA * MONTANTECOMP do que efectuou CONDUTOR # BI * DATANASC * PERCENTAGEMDESC o VALOR * MORADA * NOME * SEXO * TELEFONE efectuado pelo titular da SEGURADO # NUMCONTRIB a que se refere o * CODIGOPOSTAL No entanto, já numa fase avançada do nosso projecto não nos foi possível garantir, inexplicavelmente, a manutenção da relação ISA entre CONDUTOR e SEGURADO. Apartir daí(noite de terça-feira_11.12) refizemos a base de dados optando por um esquema mais simples mas adequado ao que era pretendido por este projecto. Os constantes erros do servidor blaster_db limitaram em muito o percurso normal deste projecto, a criação por vezes inexplicável de tabelas desconhecidas é um exemplo claro disso. No entanto a perseverança em busca de um resultado satisfatório, que fomos obrigados a demonstrar, permitiu-nos obter alguma prática de manuseamento do Oracle 6i. O nosso login A nossa password sinf24 jota Joel Carvalho - ee97041@fe.up.pt Jorge Correia - ee97078@fe.up.pt Dezembro 2001 FEUP Joel Carvalho e Jorge Correia 21 / 21

Tarefa Orientada 19 Triggers

Tarefa Orientada 19 Triggers Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma

Leia mais

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais

TRABALHO PRÁTICO. Sistema de Gestão de Bases de Dados. Doenças. Alunos: Filipe Alexandre da Silva Vila Real Nuno José Morais Felicio

TRABALHO PRÁTICO. Sistema de Gestão de Bases de Dados. Doenças. Alunos: Filipe Alexandre da Silva Vila Real Nuno José Morais Felicio FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Licenciatura em Engenharia Electrotécnica e de Computadores 5º Ano, 1º Semestre Sistemas de Informação - 2000/2001 TRABALHO PRÁTICO Sistema de Gestão de

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

Desenvolvimento de uma base de dados. Relação. Modelo lógico: SGBD relacional

Desenvolvimento de uma base de dados. Relação. Modelo lógico: SGBD relacional Desenvolvimento de uma base de dados Realidade Bases de dados relacionais e SQL Conceitos básicos de bases de dados relacionais A 3ª forma normal Structured Query Language (SQL) Modelo conceptual (e.g.

Leia mais

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04 BD Oracle SGBD Oracle Licenciatura em Engenharia Informática e Computação Bases de Dados 2003/04 BD Oracle Introdução aos SGBD Base de Dados Colecção de dados que descrevem alguma realidade Sistema de

Leia mais

Banco de Dados Avançados Banco de Dados Ativo

Banco de Dados Avançados Banco de Dados Ativo Universidade Federal de Pernambuco Centro de Informática Banco de Dados Avançados Banco de Dados Ativo Equipe: Felipe Cavalcante Fernando Kakimoto Marcos Corrêa Sumário 1. Mini-Mundo... 3 1.1 Entidades...

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. Triggers um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. o evento pode ser INSERT, UPDATE, ou DELETE. o trigger pode ser accionado imediatamente

Leia mais

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a

Leia mais

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prova de Fundamentos de Bancos de Dados 2 a Prova Prova de Fundamentos de Bancos de Dados 2 a Prova Prof. Carlos A. Heuser Novembro de 2007 Prova com consulta duas horas de duração 1 Base de dados para as questões (Esta é a mesma base de dados que foi

Leia mais

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04 BD SQL Server SGBD SQL Server Licenciatura em Engenharia Informática e Computação Bases de Dados 2003/04 BD SQL Server Criação da Ligação ao SGBD Entrar no Microsoft SQL Server / Enterprise Manager Criar

Leia mais

Bases de Dados I LEI/2

Bases de Dados I LEI/2 SQL hugomcp@di-ubi.pt, 2009 UNIVERSIDADE DA BEIRA INTERIOR Departamento de Informática Bases de Dados I LEI/2 1- Mediante o seguinte conjunto de relações: A R S T B C C D D E d 1 d 1 e 1 a 2 d 2 d 2 e

Leia mais

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve Triggers e Regras Fernando Lobo Base de Dados, Universidade do Algarve 1 / 14 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Leia mais

Rock In Rio - Lisboa

Rock In Rio - Lisboa Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem

Leia mais

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores Trabalhos Práticos Programação II Curso: Engª Electrotécnica - Electrónica e Computadores 1. Objectivos 2. Calendarização 3. Normas 3.1 Relatório 3.2 Avaliação 4. Propostas Na disciplina de Programação

Leia mais

EXAME DE 1ª ÉPOCA Semestre de Verão 2004/2005 20 Junho 2005 duração: 2h30m

EXAME DE 1ª ÉPOCA Semestre de Verão 2004/2005 20 Junho 2005 duração: 2h30m ISEL DEETC SSIC EXAME DE 1ª ÉPOCA Semestre de Verão 2004/2005 20 Junho 2005 duração: 2h30m Introdução aos Sistemas de Informação Engenharia Informática e Computadores Ano Lectivo: 2004 / 2005 2º Sem. Docente:

Leia mais

Integridade dos Dados

Integridade dos Dados 1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições

Leia mais

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as: Curso Profissional Técnico de Informática de Gestão 10ºB Prof. Pedro Lopes S i s t e m a s d e I n f o r m a ç ã o M ó d u l o : L i n g u a g e m S Q L T e s t e s u m a t i v o d u r a ç ã o 8 0 m i

Leia mais

Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de

Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de Capítulo 8: BDs Objecto-Relacional Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de Objectos e Referência

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Prof. Marcelo Siedler Objetivos do documento: Apresentar os conceitos de stored procedutes e funções. Exercícios. Referência: http://dev.mysql.com/doc/refman/4.1/pt/stored-procedures.html

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prova de Fundamentos de Bancos de Dados 2 a Prova Prova de Fundamentos de Bancos de Dados 2 a Prova Prof. Carlos A. Heuser Novembro de 2006 Prova com consulta duas horas de duração 1 Base de dados para as questões (Esta é a mesma base de dados que foi

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Programação SQL. Manipulação de Dados. DML Data Manipulation Language Programação SQL Manipulação de Dados DML Data Manipulation Language Manipulação de Dados (DML) Os comandos INSERT, UPDATE, DELETE, são normalmente classificados como pertencendo a uma sublinguagem da linguagem

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

Leia mais

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos Modelo Relacional Uma base de dados é uma colecção de uma ou mais relações com nomes distintos Uma relação é uma tabela com linhas e colunas Esquema da Relação Descreve as colunas da tabela Especifica

Leia mais

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas. MySQL 101 Recapitulando Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas. As bases de dados são úteis quando necessitamos

Leia mais

Base de Dados para Administrações de Condomínios

Base de Dados para Administrações de Condomínios Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt

Leia mais

4.6. SQL - Structured Query Language

4.6. SQL - Structured Query Language 4.6. SQL - Structured Query Language SQL é um conjunto de declarações que é utilizado para acessar os dados utilizando gerenciadores de banco de dados. Nem todos os gerenciadores utilizam SQL. SQL não

Leia mais

Banco de Dados Lista de Exercícios 01

Banco de Dados Lista de Exercícios 01 Banco de Dados Lista de Exercícios 01 Prof. Anderson Rocha & Prof. André Santanché Campinas, 24 de Setembro de 2012 Nome: RA: 1 Observações Este lista contem 20 exercícios e contempla os seguintes assuntos

Leia mais

Bancos de Dados I. Integridade semântica

Bancos de Dados I. Integridade semântica Bancos de Dados I PUC-Rio Departamento de Informática (DI) Eng./Ciência da Computação e Sist. Informação Contrôle de Integridade em SGBDs: procedimentos armazenados, gatilhos e funções Prof. sergio@inf.puc-rio.br

Leia mais

Computadores e Sistemas de Informação. Bases de Dados Relacionais (linguagem SQL)

Computadores e Sistemas de Informação. Bases de Dados Relacionais (linguagem SQL) Computadores e Sistemas de Informação Bases de Dados Relacionais (linguagem SQL) 2004/2005 Utilidade das Bases de Dados Recolha e processamento de dados que possuem um volume significativo, que são interrelacionados,

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

Leia mais

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO 2ª. Avaliação de Banco de Dados 1º. Sem de 2008 Prof.: Carlos Bazilio

Leia mais

Tarefa Orientada 13 Agrupamento e sumário de dados

Tarefa Orientada 13 Agrupamento e sumário de dados Tarefa Orientada 13 Agrupamento e sumário de dados Objectivos: Funções de agregação Agrupamento e sumário de dados Funções de agregação Nesta tarefa orientada iremos formular consultas que sumariam os

Leia mais

Disciplina: Unidade III: Prof.: E-mail: Período:

Disciplina: Unidade III: Prof.: E-mail: Período: Encontro 08 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM Relembrando... Necessidade de Dados Projeto

Leia mais

Bases de Dados. DML Data Manipulation Language Parte 1

Bases de Dados. DML Data Manipulation Language Parte 1 Bases de Dados DML Data Manipulation Language Parte 1 DML Data Manipulation Language Diz respeito à manipulação dos dados. É utilizada para: Inserir dados numa tabela(tuplos) Remover dados de uma tabela(tuplos)

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Modelo de Entidade e Relacionamento (MER) - Parte 07

Modelo de Entidade e Relacionamento (MER) - Parte 07 Modelo de Entidade e Relacionamento (MER) - Parte 07 7.1 Definição Consiste em mapear o mundo real do sistema em um modelo gráfico que irá representar o modelo e o relacionamento existente entre os dados.

Leia mais

MC536 Bancos de Dados: Teoria e Prática

MC536 Bancos de Dados: Teoria e Prática Universidade Estadual de Campinas - UNICAMP Instituto de Computação - IC MC536 Bancos de Dados: Teoria e Prática Aula #3 : MER e MER Estendido Profs. Anderson Rocha e André Santanchè Campinas, 1 de Agosto

Leia mais

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK

Leia mais

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Uma expressão básica em SQL consiste em três cláusulas: select, from e where. Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra

Leia mais

Modelagem de Banco de Dados através do ERwin

Modelagem de Banco de Dados através do ERwin Modelagem de Banco de Dados através do ERwin Introdução O Erwin é uma ferramenta CASE para a modelagem de banco de dados através do modelo ER (Entidade-Relacionamento). Possibilita uma maior concentração

Leia mais

UML (Unified Modelling Language) Diagrama de Classes

UML (Unified Modelling Language) Diagrama de Classes UML (Unified Modelling Language) Diagrama de Classes I Classes... 2 II Relações... 3 II. Associações... 3 II.2 Generalização... 9 III Exemplos de Modelos... III. Tabelas de IRS... III.2 Exames...3 III.3

Leia mais

SQL Gatilhos (Triggers)

SQL Gatilhos (Triggers) SQL Gatilhos (Triggers) Laboratório de Bases de Dados Gatilho (trigger) Bloco PL/SQL que é disparado de forma automática e implícita sempre que ocorrer um evento associado a uma tabela INSERT UPDATE DELETE

Leia mais

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prova de Fundamentos de Bancos de Dados 2 a Prova Prova de Fundamentos de Bancos de Dados 2 a Prova Prof. Carlos A. Heuser Maio de 2006 Prova com consulta duas horas de duração 1 Base de dados para as questões (Esta é a mesma base de dados que foi usada

Leia mais

Profa. Daniela Barreiro Claro

Profa. Daniela Barreiro Claro Profa. Daniela Barreiro Claro Modelar é criar representações do mundo real A modelagem relacional pode ser representada via MER (Modelo de Entidade Relacionamento) O MER define estruturas e restrições

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira MICROSOFT ACCESS MICROSOFT ACCESS Professor Rafael Vieira Professor Rafael Vieira - Access - Programa de base de dados relacional funciona em Windows Elementos de uma Base de Dados: Tabelas Consultas Formulários

Leia mais

Definida pelo American National Standard Institute (ANSI) em 1986

Definida pelo American National Standard Institute (ANSI) em 1986 2.3. Linguagens Relacionais SQL Structured Query Language Linguagem para o modelo relacional: Definida pelo American National Standard Institute (ANSI) em 1986 Adoptada em 1987 como um standard internacional

Leia mais

Tarefa Orientada 11 Junção Interna

Tarefa Orientada 11 Junção Interna Tarefa Orientada 11 Junção Interna Objectivos: Junção Interna (INNER JOIN) Junção Interna A operação de junção interna (INNER JOIN) é utilizada para combinar colunas de duas ou mais tabelas. O resultado

Leia mais

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL PL/SQL Laboratório de Bases de Dados PL/SQL Program Language SQL linguagem de programação da Oracle que permite processar dados armazenados no banco de dados Exemplos de operações permitidas alterar, remover,

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Bases de Dados 2007/2008 Exame

Bases de Dados 2007/2008 Exame Exame 11 de Janeiro de 2008 Instituto Superior Técnico Departamento de Engenharia Informática Regras O exame tem a duração de 2h30m. A folha de capa deve ser identificada com o nome e número do aluno.

Leia mais

Microsoft Access 2010. Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento

Microsoft Access 2010. Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento Microsoft Access 2010 Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento 1 Principais objetos do Access Tabelas Guardam a informação da BD (Base de Dados)

Leia mais

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo

Leia mais

Databases. Dependências Funcionais

Databases. Dependências Funcionais Databases Dependências Funcionais P. Serendero, 2011-13 Referências e exemplos tirados de diversas fontes, excetuando aqueles relacionados com embarcações Dependências Funcionais (DF) Uma Base de Dados,

Leia mais

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Consistem num conjunto de apontadores para instâncias especificas de cada relação. Mecanismo usado para mais fácil e rapidamente aceder à informação existente numa base de dados. Bases de Dados de elevadas dimensões. Consistem num conjunto de apontadores para instâncias especificas de

Leia mais

Introdução às Bases de Dados

Introdução às Bases de Dados Introdução às Bases de Dados Chave primária Domínios Relação F# F Nome Estado Cidade F1 José 20 Braga F2 João 10 Faro F3 Luís 30 Lisboa F4 Rui 30 Setúbal Atributos Tuplas Introdução às Bases de Dados Modelo

Leia mais

SQL: Definição de tabelas, Modificações à Base de Dados

SQL: Definição de tabelas, Modificações à Base de Dados SQL: Definição de tabelas, Modificações à Base de Dados Fernando Lobo Base de Dados, Universidade do Algarve 1 / 24 Definição do esquema da base de dados O esquema da BD é composto pelas definições de

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

1. Domínio dos Atributos

1. Domínio dos Atributos Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando

Leia mais

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados.

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados. Fases do Projeto de um Banco de Dados Modelo ER O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados. É um modelo baseado na percepção

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

Exercícios de Lógica Exercícios de Fixação 08

Exercícios de Lógica Exercícios de Fixação 08 Exercícios Exercícios de Lógica Exercícios de Fixação 08 1. A linguagem SQL apresenta uma série de comandos que permitem a definição dos dados, chamada de DDL (Data Definition Language). Assinale a alternativa

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS Unidade 1 - Introdução Dados; Banco de Dados; Base de Dados; Projeto de Banco de Dados.

Leia mais

Bases de Dados 2007/2008 Exame

Bases de Dados 2007/2008 Exame Exame 11 de Janeiro de 2007 Instituto Superior Técnico Departamento de Engenharia Informática Regras O exame tem a duração de 2h30m. A folha de capa deve ser identificada com o nome e número do aluno.

Leia mais

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

Técnicas e Linguagens para Banco de Dados I

Técnicas e Linguagens para Banco de Dados I Técnicas e Linguagens para Banco de Dados I Prof. Eduardo Ribeiro www.eduardo.trisolution.com.br eduardo@ trisolution.com.br Introdução Banco de Dados Dados x Informações Dados = É um elemento que mantém

Leia mais

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL PROF. MS C. RICARDO ANTONELLO WWW.ANTONELLO.COM.B R PORQUE SER RELACIONAL? Hoje, há um claro predomínio dos SGBD relacionais, principalmente

Leia mais

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia Bases de Dados 2012/2013 Restrições de Integridade em SQL Helena Galhardas Bibliografia Raghu Ramakrishnan, Database Management Systems, Cap. 3 e 5 1 1 Sumário Restrições de Integridade (RIs) em SQL Chave

Leia mais

Tarefa Orientada 14 Subconsultas

Tarefa Orientada 14 Subconsultas Tarefa Orientada 14 Subconsultas Objectivos: Subconsultas não correlacionadas Operadores ALL, SOME e ANY Subconsultas correlacionadas Operador EXISTS Subconsultas incluídas na cláusula FROM de uma consulta

Leia mais

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão. GesStock. Engenharia Informática. Base de Dados II

Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão. GesStock. Engenharia Informática. Base de Dados II Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão GesStock Aplicação para Gestão de Stocks Engenharia Informática Base de Dados II Docente: Artur Lança Isabel Sofia Brito Nuno Gonçalo

Leia mais

Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes

Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes Modelos de banco de dados Modelo de banco de dados é uma descrição dos tipos de informações que estão armazenadas

Leia mais

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477 Relatório Projecto de Base de Dados Parte 2 Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477 1. Criação da base de dados De seguida vem escrito um script

Leia mais

Ciclo de vida de um banco de dados relacional

Ciclo de vida de um banco de dados relacional Ciclo de vida de um banco de dados relacional 1. Formulação e análise de requisitos: a) Relacionamentos naturais entre os dados (independentes de processo). b) Requisitos de uso (dependentes de processo).

Leia mais

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1. Departamento de Engenharia Informática 2008/2009 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Objetivos: Criar restrições para atributos, chaves primárias e estrangeiras; Explorar consultas SQL com uso de

Leia mais

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Definição do Esquema da Base de Dados Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL - Esquema da base de dados Definição das tabelas Definição das chaves primárias Definição

Leia mais

Tabelas vista de estrutura

Tabelas vista de estrutura Tabelas vista de estrutura A vista de estrutura permite definir a configuração dos dados Vamos adicionar os restantes campos à tabela carros, de acordo com o modelo de dados feito no papel 47 Tabelas vista

Leia mais

Exercício de Normalização Escola Secundária de Emídio Navarro 2002/2003 Aplicações Informáticas 11º ano

Exercício de Normalização Escola Secundária de Emídio Navarro 2002/2003 Aplicações Informáticas 11º ano Neste exercício propõe-se realizar a informatização de uma livraria. Assim, o primeiro passo a realizar será começarmos por definir as entidades que poderemos encontrar na livraria: Livros Fornecedores

Leia mais

EXERÍCIOS DE MODELAGEM DE BANCO DE DADOS

EXERÍCIOS DE MODELAGEM DE BANCO DE DADOS EXERÍCIOS DE MODELAGEM DE BANCO DE DADOS Exercício 1 Construa o modelo Entidades-Relacionamentos a partir da seguinte descrição do sistema: Uma empresa de venda de automóveis retende implementar um sistema

Leia mais

Bases de Dados 2007/2008. Aula 9

Bases de Dados 2007/2008. Aula 9 Bases de Dados 2007/2008 Aula 9 1. T-SQL TRY CATCH 2. TRATAMENTO ERROS RAISERROR 3. TRIGGERS 4. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

Leia mais

Depois de obtido o diagrama E/A há que estabelecer o esquema relacional correspondente.

Depois de obtido o diagrama E/A há que estabelecer o esquema relacional correspondente. 4. Modelo Entidade Associação 4.1. Introdução 4.2. Propriedades das associações 4.3. Decomposição de Associações vários : vários (M:N) 4.4. Associações Complexas 4.5. Situações Ambíguas 4.6 Esquema Relacional

Leia mais

Índice. Introdução 31. Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais 35

Índice. Introdução 31. Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais 35 Introdução 31 1. Bases de Dados Relacionais 31 2. Modelação de Bases de Dados 31 3. Modelo de Classes UML 32 4. Linguagem SQL 32 5. Sobre o Microsoft" Access" 32 Tutorial 1: O Microsoft Access como Sistema

Leia mais

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DML Frederico D. Bortoloti freddb@ltc.ufes.br SQL - DML Os exemplos da aula serão elaborados para o esquema de dados a seguir: Empregado(matricula, nome, endereco, salario, supervisor,

Leia mais

Figura 1. Figura 2. Prova Escrita de Base de Dados 5 Novembro 2005 - V2 Número do Aluno: Nome do Aluno: 1º Teste (90 Minutos)

Figura 1. Figura 2. Prova Escrita de Base de Dados 5 Novembro 2005 - V2 Número do Aluno: Nome do Aluno: 1º Teste (90 Minutos) Prova Escrita de Base de Dados 5 Novembro 2005 - V2 Número do Aluno: Nome do Aluno: 1º Teste (90 Minutos) Identifique esta prova preenchendo o seu nome e número nesta página, e o número em todas as restantes.

Leia mais

Bases de Dados. Parte III: O Modelo Relacional

Bases de Dados. Parte III: O Modelo Relacional Bases de Dados MI / LCC / LEG / LERSI / LMAT Parte III O Modelo Relacional 1 O Modelo Relacional Foi introduzido em 1970 por Ted Codd da IBM Research. É baseado no conceito de relação, onde uma relação

Leia mais

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

Leia mais

OBJETIVOS. Orientações para Projetos de BD; Dependências Funcionais (DFs): Definição de DF; Regras de inferência para DFs.

OBJETIVOS. Orientações para Projetos de BD; Dependências Funcionais (DFs): Definição de DF; Regras de inferência para DFs. BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br OBJETIVOS Orientações

Leia mais

EAmb V.1 ESPOSENDE AMBIENTE. GestProcessos Online. Manual do Utilizador

EAmb V.1 ESPOSENDE AMBIENTE. GestProcessos Online. Manual do Utilizador EAmb V.1 ESPOSENDE AMBIENTE GestProcessos Online Manual do Utilizador GestProcessos Online GABINETE DE SISTEMAS DE INFORMAÇÃO E COMUNICAÇÃO EAmb Esposende Ambiente, EEM Rua da Ribeira 4740-245 - Esposende

Leia mais

Utilização do SOLVER do EXCEL

Utilização do SOLVER do EXCEL Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de

Leia mais

Introdução à Manipulação de Dados

Introdução à Manipulação de Dados Introdução à Manipulação de Dados Licenciatura em Economia Trabalho Prático 2004 2005 Manutenção de Aviões Depois de várias reclamações feitas no aeroporto por falta de organização, a administração decidiu

Leia mais