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 - Jorge Correia - Dezembro 2001 FEUP Joel Carvalho e Jorge Correia 21 / 21

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Oracle 10g: SQL e PL/SQL

Oracle 10g: SQL e PL/SQL Oracle 10g: SQL e PL/SQL PL/SQL: Visão Geral Enzo Seraphim Visão Geral Vantagens de PL/SQL Suporte total à linguagem SQL Total integração com o Oracle Performance Redução da comunicação entre a aplicação

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 Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura

Leia mais

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais. Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais. A instrução SELECT As consultas a uma base de dados relacional fazem-se

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

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

Triggers e mais... Instituto Militar de Engenharia IME 1o. Semestre/2005 Triggers Propósito mais amplo que restrições Restrições onde se explicita o evento Regras event-condition-action (ECA) Eventos:

Leia mais

Linguagem PL/SQL e Triggers

Linguagem PL/SQL e Triggers TECNOLOGIA DE BASES DE DADOS Linguagem PL/SQL e Triggers António Manuel Silva Ferreira UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA asfe@di.fc.ul.pt Sumário Linguagem PL/SQL

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

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

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

trigger insert, delete, update

trigger insert, delete, update 1 Um trigger é um conjunto de instruções SQL armazenadas no catalogo da BD Pertence a um grupo de stored programs do MySQL Executado quando um evento associado com uma tabela acontece: insert, delete,

Leia mais

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Banco de Dados II Triggers e Functions Prof. Moser Fagundes Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Sumário da aula Functions (funções) Triggers (gatilhos) Atividades Functions

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

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

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Store 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

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

Leia mais

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Página 2 Prgrama Teórico/Prático - SQL Linguagem

Leia mais

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl AVALIAÇÃO DA QUALIDADE DO CÓDIGO FONTE ESCRITO EM PL/SQL Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

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

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

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

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

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 1 1- Bancos de dados compreendem desde agendas telefônicas até sistemas computadorizados. (Sim) 2- Só podemos instalar o SQL Server Express se tivermos

Leia mais

Capítulo 6 Regras de Integridade. Murilo S. de Camargo (Modificações M.A R. Dantas)

Capítulo 6 Regras de Integridade. Murilo S. de Camargo (Modificações M.A R. Dantas) Capítulo 6 Regras de Integridade Murilo S. de Camargo (Modificações M.A R. Dantas) 1 Restrições de Integridade ❾ Restrições de Domínio ❾ Integridade Referencial ❾ Asserções ❾ Gatilhos (Triggers) ❾ Dependências

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

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

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) Conceitos sobre a versão ANSI da SQL, a sublinguagem de definição de dados (DDL) e a sublinguagem de manipulação de dados (DML) Prof. Flavio Augusto C. Correia 1

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

2. Criar um bloco PL/SQL anônimo para imprimir as tabuadas abaixo: 5 X 10 = 50 5 X 2 = 10... 10 X 10 = 100 1 X 2 = 2...

2. Criar um bloco PL/SQL anônimo para imprimir as tabuadas abaixo: 5 X 10 = 50 5 X 2 = 10... 10 X 10 = 100 1 X 2 = 2... 1. Criar um bloco PLSQL anônimo para imprimir a tabuada abaixo: 5 X 1 = 5 5 X 2 = 10... 5 X 10 = 50 V_N CONSTANT NUMBER(2) := 5; FOR I IN 1..10 LOOP DBMS_OUTPUT.PUT_LINE(V_N ' X ' I ' = ' V_N*I); 2. Criar

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

Programação SQL. INTRODUÇÃO II parte

Programação SQL. INTRODUÇÃO II parte Programação SQL INTRODUÇÃO II parte Programação SQL SELECT; INSERT; UPDATE; DELETE. Este conjunto de comandos faz parte da sublinguagem denominada por DML Data Manipulation Language (Linguagem de manipulação

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

Monitoria GDI Aula Prática. DML + PL/SQL parte 1

Monitoria GDI Aula Prática. DML + PL/SQL parte 1 Monitoria GDI Aula Prática DML + PL/SQL parte 1 DML linguagem de manipulação de dados SQL Estrutura básica de uma consulta SQL SELECT Coluna1[,Coluna2[,Coluna3[,...]]] FROM Tabela1[,Tabela2[,...]] WHERE

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

MANUAL INSTALAÇÃO WEB SERVICE

MANUAL INSTALAÇÃO WEB SERVICE MANUAL INSTALAÇÃO WEB SERVICE Recebimento de dados pelo Hospital Versão 1.1 2/9/2014 Contato suporte@gtplan.com.br Índice Introdução... 2 Requerimentos para instalação do Web Service... 2 Instalação...

Leia mais

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos Bases de Dados Stored procedures e triggers Introdução às funções e procedimentos SQL suporta funções e procedimentos úteis com tipos de dados específicos p.ex. objectos geométricos, imagens intersecção

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

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

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br PostgreSQL www.postgresql.org André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br Características Licença BSD (aberto, permite uso comercial) Multi-plataforma (Unix, GNU/Linux,

Leia mais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

PL/pgSQL por Diversão e Lucro

PL/pgSQL por Diversão e Lucro PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas - 2009 1 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do

Leia mais

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL Bases de Dados 2012/2013 Funções/procedimentos e triggers em PostgreSQL Helena Galhardas Bibliografia Manual referência PostgreSQL http://www.postgresql.org/docs/9.2/static/ plpgsql.html http://www.postgresql.org/docs/9.2/static/

Leia mais

Reforçando conceitos de SQL Estudo de Caso: Agenciamento de Corridas de Táxis

Reforçando conceitos de SQL Estudo de Caso: Agenciamento de Corridas de Táxis Reforçando conceitos de SQL Estudo de Caso: Agenciamento de s de Táxis 1 Algumas Entidades existentes Estudo de Caso Cliente Agendada Fila Logradouro Zona Motorista Efetivada Táxi 2 Consulta Básica SQL

Leia mais

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados SQL (Structured Querie Language) SQL é mais que uma linguagem de interrogação estruturada. Inclui características para a definição da estrutura de dados, para alterar os dados de uma base de dados, e para

Leia mais

EXERCÍCIOS PRÁTICOS. Banco de Dados

EXERCÍCIOS PRÁTICOS. Banco de Dados EXERCÍCIOS PRÁTICOS Banco de Dados Introdução ao uso do SQL Structured Query Language, considerando tanto DDL Data Definition Language quanto DML Data Manipulation Language. Banco de Dados selecionado:

Leia mais

Triggers no PostgreSQL

Triggers no PostgreSQL Triggers no PostgreSQL Traduzido do manual do PostgreSQL Pode-se utilizar PL/pqSQL para a definição de triggers (gatilhos). Um procedimento do tipo trigger é criado com o comando CREATE FUNCTION, declarando

Leia mais

Banco de Dados I. Linguagem de Consulta (parte I) DDL DML

Banco de Dados I. Linguagem de Consulta (parte I) DDL DML Banco de Dados I Linguagem de Consulta (parte I) DDL DML Linguagem de Consulta:SQL contéudo Structured Query Language Originalmente SEQUEL Structured English Query Language Projeta e Implementada pela

Leia mais

Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição.

Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição. Conceitos PL/Sql Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição. Sintaxe CREATE SEQUENCE [schema.]sequence [INCREMENT BY

Leia mais

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

Leia mais

Minicurso3 Introdução ao Banco de Dados MySQL

Minicurso3 Introdução ao Banco de Dados MySQL I Workshop de Informática INFO-BAIANO 12 a 13 de nov. de 2011 Minicurso3 Introdução ao Banco de Dados MySQL Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados -

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados - Banco de Dados Aula 02 Modelagem de Dados Roteiro Definição Evolução Projeto de BD Abstração Esquema e Instância Definição É uma representação, normalmente gráfica, de estruturas de dados reais. Auxilia

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas 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

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

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

Hugo Pedro Proença, 2007

Hugo Pedro Proença, 2007 Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações

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

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

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

SQL DDL Criando Tabelas e Restrições

SQL DDL Criando Tabelas e Restrições SQL DDL Criando Tabelas e Restrições Fernanda Baião UNIRIO Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Rocha e Maria Cláudia Cavalcanti Comandos de Definição

Leia mais

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real. PROGRAMA ANO LECTIVO: 2005/2006 CURSO: LICENCIATURA BI-ETÁPICA EM INFORMÁTICA ANO: 2.º DISCIPLINA: BASE DE DADOS DOCENTE RESPONSÁVEL PELA REGÊNCIA: Licenciado Lino Oliveira Objectivos Gerais: Aquisição

Leia mais

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida UFCD 787 Administração de base de dados Elsa Marisa S. Almeida 1 Objectivos Replicação de base de dados Gestão de transacções Cópias de segurança Importação e exportação de dados Elsa Marisa S. Almeida

Leia mais

Bancos de Dados Objeto-Relacionais

Bancos de Dados Objeto-Relacionais CEFET-PI Pós-graduação Lato Sensu Especialização em Banco de Dados Bancos de Dados Objeto-Relacionais Prof. Ricardo Ramos BDOR Abril 2008 1 Evolução dos SGBDs Sistemas de Arquivos SGBD Hierárquico (1ª

Leia mais

PROGRAMA. Objectivos Gerais :

PROGRAMA. Objectivos Gerais : PROGRAMA ANO LECTIVO : 2005/2006 CURSO : ENGENHARIA MULTIMÉDIA ANO: 2.º DISCIPLINA : SISTEMA DE GESTÃO DE BASE DE DADOS DOCENTE RESPONSÁVEL PELA REGÊNCIA : Licenciado Lino Oliveira Objectivos Gerais :

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

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

FUNCTION ) RETURNS INTEGER AS $$ DECLARE PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos

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

Tópicos Avançados de Bases de Dados Instituto Politécnico da Guarda, Escola Superior de Tecnologia e Gestão, 2005/2006

Tópicos Avançados de Bases de Dados Instituto Politécnico da Guarda, Escola Superior de Tecnologia e Gestão, 2005/2006 Programa de TABD 2004/2005 Componente teórica Tópicos Avançados de Bases de Dados Revisão e complemento de bases de dados relacionais Revisão de conceitos básicos Transacções e controlo de concorrência

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

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL Complementos da Linguagem SQL - Eliminando Tuplas Repetidas Exemplo: Obter o código das editoras que têm livros publicados CodEditora Titulo Publicacao... 04 Banco de Dados 1989 02 Análise 2000 01 XML

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

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