Bases de Dados. Restrições de integridade. Restrições de integridade. As restrições de integridade garantem a consistência da BD exemplos

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

Download "Bases de Dados. Restrições de integridade. Restrições de integridade. As restrições de integridade garantem a consistência da BD exemplos"

Transcrição

1 Bases de Dados Restrições de integridade Restrições de integridade As restrições de integridade garantem a consistência da BD exemplos RI 1: o saldo de uma conta não pode ser null RI 2: nenhuma conta pode ter o mesmo número de outra RI 3: todos os números de conta em depositor tem que existir em account RI 4: o salário de um funcionário tem que ser pelo menos 5 /hora 2 1

2 Restrições numa relação Restrição not null o nome de uma agência não pode ser null branch_name char(15) not null uma quantia monetária não pode ser null create table loan (... amount numeric(12,2) not null 3 Restrições numa relação Restrição unique(c 1, c 2,, c m ) as colunas c 1, c 2,, c m formam uma chave 1 2 m estas colunas podem conter null porque null é diferente de qualquer outro valor se for preciso, impor not null create table fornecedores ( id integer,, nome varchar(255), primary key(id), unique(nome) ); 4 2

3 Restrições numa relação Restrição check(c) todos os tuplos da relação devem obedecer à condição C exemplo: activo de agência não pode ser negativo create table branch (branch_name char(15), branch_city char(30), assets integer, primary key (branch_name), check (assets >= 0)) 5 Restrições numa relação Restrição check(c) pode ser aplicada a valores de um atributo create table account ( balance numeric(5,2), check(balance > 0) ); pode envolver sub-perguntas check branch_name in (select branch_name from branch) 6 3

4 Integridade referencial Garantir que um valor que aparece numa relação também aparece noutra exemplo: a agência de cada conta (account) tem de existir na tabela de agências (branch) create table account (account_number char(10), branch_ name char(15), ( balance integer, primary key (account_number), foreign key (branch_name) references branch) 7 Integridade referencial Outro exemplo: create table depositor (customer_name char(20), account_number char(10), primary key (customer_name, account_number), foreign key (account_number) references account, foreign key (customer_name) references customer) customer depositor account 8 4

5 Integridade referencial Forma abreviada em vez de: branch_name char(15), foreign key (branch_name) references branch é possível usar simplesmente: branch_name char(15) references branch 9 Integridade referencial E se o registo for apagado ou modificado? (na outra tabela) create table account ( foreign key (branch_name) references branch on delete cascade on update cascade ) 10 5

6 Integridade referencial Forma geral on delete action on update action em que action é uma de: cascade apaga/actualiza registos que apontam para o tuplo em causa set null coloca os registos inconsistentes a null set default coloca os registos com o valor por omissão no action impede a remoção/actualização 11 Restrições de integridade Como impor restrições de integridade a uma tabela já criada? alter table tabela add restrição E se a tabela já tiver dados e estes não forem consistentes? a operação é rejeitada 12 6

7 Asserções Asserção é uma condição a que a BD deve obedecer forma geral create assertion nome check condição validade é testada na criação e em cada modificação à BD! impacto no desempenho asserções na forma for all X, C(X) must be true são implementadas com not exists X such that not C(X) 13 Asserções exemplo 1 Em cada agência, a soma de todas as quantias de empréstimo tem que ser inferior à soma de todos os saldos de conta create assertion sum_constraint check (not exists (select * from branch where (select sum(amount) from loan where loan.branch_name = branch.branch_name) >= (select sum(balance) from account where account.branch_name = branch.branch_name))) 14 7

8 Asserções exemplo 2 Todos os empréstimos têm de ter pelo menos um cliente com uma conta de saldo mínimo 1000 create assertion balance_constraint check (not exists (select * from loan where not exists (select * from borrower, depositor, account where loan.loan_number = borrower.loan_number and borrower.customer_name = depositor.customer_name and depositor.account_number = account.account_number and account.balance >= 1000))) 15 Bases de Dados Funções e Procedimentos 8

9 Introdução às funções e procedimentos SQL suporta funções e procedimentos com ciclos, if-then-else, declaração de variáveis, atribuição de valores a variáveis, etc. Alguns SGBDs suportam ainda funções que devolvem relações (SQL:2003) outras funcionalidades proprietárias 17 Funções exemplo (standard SQL) Definir uma função que, dado o nome de um cliente, devolve o número de contas desse cliente create function account_count (c_name varchar(255)) returns integer begin declare a_count integer; select count(*) into a_count from depositor where customer_name = c_name ; return a_count; end 18 9

10 Funções exemplo (Postgres) create function account_count (c_name varchar(255)) returns integer as $$ declare a_count integer; begin select count(*) into a_count from depositor where customer_name = c_name; return a_count; end $$ language plpgsql; "A CREATE FUNCTION command is defined in SQL:1999 and later. The PostgreSQL version is similar but not fully compatible. The attributes are not portable, neither are the different available languages." (Postgres manual) 19 Funções exemplo de utilização Nome, rua e cidade dos clientes com mais de uma conta select customer_name, customer_street, customer_city from customer where account_count (customer_name) >

11 Funções que devolvem relações (standard SQL) Devolver todas as contas de um dado cliente create function accounts_of f( (c_name varchar(255) ) returns table (account_number varchar(255), branch_name varchar(255), balance numeric(12,2) ) return table (select a.account_number, branch_name, balance from account as a, depositor as d where a.account_number = d.account_number and d.customer_name = c_name) 21 Funções que devolvem relações (Postgres) create function accounts_of ( varchar(255) ) returns setof account as $$ select a.account_number, branch_name, balance from account as a, depositor as d where a.account_number = d.account_number and d.customer_name = $1; $$ language sql; parâmetros anónimos 22 11

12 Funções que devolvem tipos complexos (Postgres) create type account_data as ( account_number varchar(255), branch_name varchar(255), balance numeric(12,2) ); create function accounts_of (varchar(255)) returns account_data as $$ select a.account_number, branch_name, balance from account as a, depositor as d where a.account_number = d.account_number and d.customer_name = $1; $$ language sql; 23 Funções que devolvem relações utilização Dados das contas do cliente Smith select * from accounts_of( Smith ); account_number branch_name balance A-215 Mianus A-444 North Town (2 rows) funções que devolvem tabelas são semelhantes a vistas com parâmetros 24 12

13 Procedimentos (standard SQL) A função account_count escrita como procedimento create procedure account_count_proc (in c_name varchar(255), out a_count integer) begin select count(* ) into a_count from depositor where depositor.customer_name = c_name end 25 Procedimentos utilização (standard SQL) Podem ser invocados com o comando call declare a_count integer; call account_count_proc( Smith, a_count); procedimentos podem ter nomes iguais, desde que sejam diferentes nos argumentos a sintaxe acima não funciona em Postgres 26 13

14 Procedimentos (Postgres) create function account_count_proc (in c_name varchar(255), out a_count integer) as $$ begin select count(*) into a_count from depositor where customer_name = c_name; end $$ language plpgsql; select * from account_count_proc ('Smith'); a_count (1 row) 27 Elementos procedimentais básicos (standard SQL) Blocos begin end podem conter múltiplos comandos SQL podem conter declarações de variáveis locais Declaração de variáveis declare <variable> <type> [default <value>] o âmbito da variável local está restrito ao bloco onde foi declarada 28 14

15 Elementos procedimentais básicos (standard SQL) Atribuição de valores set <variable> = expression a_count := 0; (Standard SQL) (Postgres) O comando select into select <columns> into <variable> from 29 Outros elementos procedimentais (standard SQL) O standard SQL prevê ainda vários outros elementos ciclos while e repeat ciclos for condições if then else condições case when excepções sintaxe é diferente em cada sistema 30 15

16 Elementos procedimentais ciclos (standard SQL) Ciclos while e repeat declare n integer default 0; while n < 10 do set n = n + 1 end while repeat set n = n 1 until n = 0 end repeat Elementos procedimentais ciclos (standard SQL) Ciclo for permite iterar pelos resultados de uma pergunta exemplo: saldo total das contas da agência de Perryridge declare n integer default 0; for r as select balance from account where branch_name = Perryridge do set n = n + r.balance end for

17 Elementos procedimentais condições Instruções condicionais if then else exemplo soma dos saldos das contas nas seguintes categorias: saldo <1000, >=1000 and <5000, >= 5000 if r.balance < 1000 then set l = l + r.balance elseif r.balance < 5000 then set m = m + r.balance else set h = h + r.balance end if Ciclos e condições (Postgres) if condition then <statements1> else <statements2> end if; while condition loop <statements> end loop; for variable in select_clause loop <statements> end loop; 34 17

18 Cursores exemplo (Postgres) create or replace function average_balance() returns real as $$ declare cursor_account cursor for select balance from account; balance real; sum_balance real := 0.0; 0; count_balance integer := 0; begin open cursor_account; loop fetch cursor_account into balance; if not found then exit; end if; sum_balance = sum_balance + balance; count_ balance = count_ balance + 1; end loop; close cursor_account; return sum_balance / count_balance; end $$ language plpgsql; 35 Bases de Dados Triggers 18

19 Introdução aos triggers Um trigger é uma instrução executada em reacção a uma modificação na BD Para especificar um trigger é necessário saber: as condições em que o trigger é disparado as acções a fazer quando o trigger é executado Ti Triggers são um conceito antigo, mas só apareceu na norma SQL: Necessidade dos triggers Cenário: o cliente levanta um quantia superior ao saldo Em vez de resultar num saldo negativo, o banco: cria um empréstimo igual à quantia em falta dá ao empréstimo o mesmo número que a conta coloca o saldo da conta a zero Condição de disparo: um update que resulte em saldo negativo na conta 38 19

20 Exemplo Levantamento de 500 da conta A-102 account Exemplo Levantamento de 500 da conta A-102 loan account 0 A-102 Perryridge 100 depositor borrower Hayes A

21 Exemplo (standard SQL) create trigger overdraft_trigger after update on account referencing new row as nrow for each row when nrow.balance <0 begin atomic insert into loan values (nrow.account_number, nrow.branch_name, nrow.balance); insert into borrower (select customer_name, account_number from depositor where nrow.account_number =depositor.account_number ); end update account set balance = 0 where account.account_number = nrow.account_number; 41 Exemplo (Postgres) Criação da função que implementa o trigger create or replace function overdraft_trigger_proc() returns trigger as $$ begin if new.balance < 0 then insert into loan values (new.account_number, new.branch_name, (-1)*new.balance); insert into borrower (select customer_name, account_number from depositor where depositor.account_number = new.account_number); update account set balance = 0 where account.account_number = new.account_number; end if; return new; end $$ language plpgsql; 42 21

22 Exemplo (Postgres) Criação do trigger opções: before after opções: insert update delete create trigger overdraft_trigger after update on account for each row execute procedure overdraft_trigger_proc(); opções: for each row for each statement Ver manual do Postgres: 43 Outro exemplo (Postgres) Trigger que cancela uma acção create or replace function cancel_overdraft_proc() returns trigger as $$ begin if new.balance < 0 then raise exception 'A conta % tem saldo insuficiente.', new.account_number; end if; return new; end $$ language plpgsql; create trigger cancel_overdraft after update on account for each row execute procedure cancel_overdraft_proc(); update account set balance = balance 500 where account_number = 'A-102'; 44 22

23 Quando não usar triggers Actualizar um total quando se insere/actualiza um registo usar vistas em vez de triggers Replicação de BDs usar mecanismos próprios do SGBD Execuções não intencionadas p.ex. quando a BD está a ser reposta a partir de backup Ocorrência de erros se o trigger falha, toda a operação falha Efeitos imprevistos cadeias de eventos imprevisíveis ou intermináveis 45 Bases de Dados Autorização 23

24 Formas de autorização Formas de autorização sobre o conteúdo da BD: leitura de dados, sem modificação inserção de dados, sem modificação modificação de dados, sem remoção remoção de dados Formas de autorização sobre o esquema da BD: criação de novas relações adição e remoção de atributos em relações remoção de relações 47 Concessão de privilégios Comando grant permite conceder privilégios grant <lista de privilégios> on <nome da relação ou vista> to <lista de utilizadores ou public> public significa dar os privilégios a todos os utilizadores privilégio sobre uma vista não implica privilégios sobre as relações constituintes quem concede o privilégio tem que o possuir 48 24

25 Concessão de privilégios Exemplo grant select on account to john, mary Tipos de privilégios select insert( ) lista opcional de atributos update( ) lista opcional de atributos delete all privileges 49 Concessão de privilégios Permissão para criar chaves estrangeiras grant references(branch_name) on branch to user Permissão para conceder privilégio por omissão não está autorizada grant select on branch to user with grant option 50 25

26 Concessão de privilégios O administrador da BD possui todos os privilégios outros utilizadores só os possuem se lhes forem concedidos U 1 U 4 DBA U 2 U 5 U 3 51 Revogação de privilégios Comando revoke permite retirar privilégios revoke <lista de privilégios ou all> on <nome da relação ou vista> from <lista de utilizadores ou public> all significa retirar todos os privilégios public retira privilégio aos utilizadores que não o receberam explicitamente se o privilégio foi dado por 2 utilizadores diferentes, o utilizador mantém-no 52 26

27 Revogação de privilégios U 1 U 4 DBA U 2 U 5 U 3 Se o DBA revogar um privilégio de U 1 U 4 fica sem esse privilégio U 5 só fica sem o privilégio se for retirado também a U 2 53 Revogação de privilégios U 1 DBA U 2 U 3 U 2 e U 3 tentam manter privilégio em todo o caso concedem privilégios mutuamente mas se for tirado a ambos ficam sem ele 54 27

28 Revogação de privilégios em cascata Comando revoke permite retirar privilégios em cascata revoke <lista de privilégios ou all> on <nome da relação ou vista> from <lista de utilizadores ou public> [ cascade restrict ] cascade comportamento por omissão restrict a operação de revoke falha se entretanto o privilégio já tiver sido concedido a outros 55 Revogação de permissão de concessão Retirar a um utilizador a possibilidade de passar o privilégio a outros revoke grant option for select on branch from U

29 Papéis (roles) Papéis estabelecem os privilégios comuns a um tipo de utilizadores privilégios podem ser concedidos e revogados a roles create role caixa create role gestor grant select on account to caixa grant update(balance) on account to caixa grant all privileges on account to gestor 57 Papéis (roles) papéis podem ser atribuídos a utilizadores e a outros papéis grant caixa to alice, jorge grant gestor to susana grant caixa to gestor 58 29

30 Privilégios resultantes Privilégios totais de um utilizador/papel todos os concedidos directamente ao utilizador todos os concedidos aos papéis atribuídos a esse utilizador/papel Concessão de privilégios via utilizador ou via papéis se for dado por utilizador pode ser removido em cascata grant select on account to jorge se for dado por papel não será removido em cascata grant select on account to jorge granted by current_role 59 Limitações da autorização em SQL Não há autorização ao nível dos tuplos p.ex. funcionários que podem ver apenas os seus salários Nas aplicações Web, os acessos vem da camada de aplicação é comum todos os utilizadores fazerem uso do mesmo utilizador da BD autorização não tira partido de SQL é possível implementar outros mecanismos de autorização mas mecanismos de autorização dispersos pelo código; dificuldade em garantir segurança 60 30

31 Bases de Dados Outros tipos de dados Tipos de data/hora Data e hora date data de calendário com ano, mês e dia exemplo: time hora do dia em horas, minutos e segundos exemplos: 11:07:14, 11:07: timestamp data e hora exemplo: :07: outras opções: timestamp(m) e with timezone M é o número de dígitos na parte decimal dos segundos 62 31

32 Conversão de data/hora Conversão de string para data/hora cast(value( as type) ) em que type pode ser date, time, timestamp, etc. exemplos select cast('november 3, 2010' as date); select cast('11:14' as time); select cast('tomorrow' as date); date (1 row) time :14:00 (1 row) date (1 row) 63 Conversão de data/hora Extracção de valores extract(field( from value) ) em que field pode ser year, month, day, hour, minute, second exemplos select extract(year from current_date); date_part (1 row) select extract(hour from localtime) ':' extract(minute from localtime) as hora; hora :55 (1 row) 64 32

33 Funções de data/hora Como obter a data/hora actual current_ date,, current_ time,, current_ timestamp com informação de zona (08:53: ) localtime, localtimestamp sem informação de zona (08:53: ) exemplo now :53: (1 row) select current_timestamp; insert into eventos values('acordei', localtime); 65 Intervalos de data/hora Para operações aritméticas com data/hora interval subtracção de um valor data/hora de outro dá um intervalo é possível adicionar ou subtrair intervalos a valores de data/hora n_dias (1 row) exemplos select cast('today' ( y as date) ) cast('yesterday' (y y as date) ) as n_dias; select localtimestamp + cast('72:00:00' as interval) as prazo; prazo :06: (1 row) 66 33

34 Objectos grandes Tipos de dados para objectos grandes p.ex. fotos, vídeos, ficheiros, etc. clob para caracteres (text em Postgres) blob para objectos binários interpretados por outra aplicação quando o resultado é um objecto grande, a query devolve um apontador ou exporta os dados book_review clob(10kb) image blob(10mb) movie blob(2gb) 67 Domínios Domínios definidos pelo utilizador create domain euros numeric(12,2) check(value >= 0) exemplo de aplicação: create table employee (employee_id employee_name salary integer, varchar(255), euros) 68 34

35 Tipos de dados Tipos de dados definidos pelo utilizador create type euros as (quantia numeric(12,2)) tipos e domínios são semelhantes domínios podem ter restrições (e.g. not null), tipos não tipos só são compatíveis com eles próprios, domínios não operações com tipos diferentes exigem cast (valor as tipo) 69 Tipos de dados exemplos create type complexo as (a real, b real); create function obtemtodos() returns setof complexo as $$ select preal, pimag from complexos $$ language sql; create type sinal as enum ( aberto, fechado, volto já ); create table loja ( numero integer, nome varchar(255), ( estado sinal ); 70 35

As restrições de integridade garantem a consistência da BD exemplos

As restrições de integridade garantem a consistência da BD exemplos Bases de Dados Restrições de integridade Restrições de integridade As restrições de integridade garantem a consistência da BD exemplos RI 1: os números de conta são únicos RI 2: a cidade de uma agência

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 Funções e procedimentos 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 de

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

Bases de Dados. Restrições de integridade. Restrições de integridade. As restrições de integridade garantem a consistência da BD exemplos

Bases de Dados. Restrições de integridade. Restrições de integridade. As restrições de integridade garantem a consistência da BD exemplos Bases de Dados Restrições de integridade Restrições de integridade As restrições de integridade garantem a consistência da BD exemplos RI 1: o saldo de uma conta não pode ser null RI 2: nenhuma conta pode

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

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers Sistemas de Informação e Bases de Dados 2012/2013 Stored Procedures e Triggers Alberto Sardinha Bibliografia MSDN http://msdn.microsoft.com 1 Funções e Procedimentos SQL suporta funções e procedimentos

Leia mais

Sistemas de Informação e Bases de Dados 2012/2013. Restrições de Integridade em SQL

Sistemas de Informação e Bases de Dados 2012/2013. Restrições de Integridade em SQL Sistemas de Informação e Bases de Dados 2012/2013 Restrições de Integridade em SQL Alberto Sardinha Bibliografia Raghu Ramakrishnan, Database Management Systems, Cap. 3 e 5 1 Captura e Tratamento das RIs

Leia mais

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL Sistemas de Informação e Bases de Dados 2012/2013 Linguagem SQL Alberto Sardinha Bibliografia Raghu Ramakrishnan, Database Management Systems, Cap. 3 e 5 1 Sumário Linguagem SQL 2 História Princípio dos

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações Capítulo 5: Integridade e Segurança Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações 1 Triggers Um trigger é um comando que é executado automaticamente pelo sistema,

Leia mais

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações Capítulo 5: Integridade e Segurança Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações 1 Restrições ao Domínio As restrições de integridade impõem-se para garantir

Leia mais

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge Bases de Dados Elementos da linguagem SQL Ordenação de tuplos orderby A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de

Leia mais

Ordenação de tuplos order by

Ordenação de tuplos order by Bases de Dados Elementos da linguagem SQL Ordenação de tuplos order by A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de

Leia mais

Bases de Dados. Junção de relações. Junção de relações

Bases de Dados. Junção de relações. Junção de relações Bases de Dados Junção de relações Junção de relações Tipicamente usadas na cláusula from SQL oferece várias possibilidades condição da junção determina quais são os atributos a comparar tipo de junção

Leia mais

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL Sistemas de Informação e Bases de Dados 2012/2013 Linguagem SQL Alberto Sardinha Sumário Linguagem SQL 1 Operações com strings operador like Exemplo: nomes dos clientes cuja rua possui a sequência Main

Leia mais

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 20. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 20. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 20 Escola Politécnica da Universidade de São Paulo 1 PROCEDIMENTOS TRIGGER STORED PROCEDURE Regras de Negócio controladas pelo SGBD SGDB Relacional dispoõe

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

Bases de Dados. Revisão da matéria. Programa

Bases de Dados. Revisão da matéria. Programa Bases de Dados Revisão da matéria Programa Modelação modelo Entidade Associação modelo e álgebra relacionais Implementação SQL básico e avançado desenvolvimento de aplicações normalização Optimização ficheiros

Leia mais

Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas

Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas Capítulo 4: SQL Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas Junções Vistas Modificação da Base

Leia mais

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge Bases de Dados Álgebra Relacional Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge σ branch_name = Perryridge (loan) 2 1 Outros exemplos de

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

Restrições de Integridade Semântica

Restrições de Integridade Semântica Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade

Leia mais

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi Programando em SQL Triggers, Stored Procedures e funções Objetivo Descrever as funcionalidades de triggers, store procedures e funções; Apresentar vantagens e benefícios; Criação e Gerenciamento de Store

Leia mais

Linguagem SQL Restrições, Triggers e Views

Linguagem SQL Restrições, Triggers e Views FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação Linguagem SQL Restrições, Triggers e Views Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre

Leia mais

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova Ciência da Computação GBC043 Sistemas de Banco de Dados Programando com SQL s Avisos Vista da segunda prova Data: 03/06 das 13:40 às 15:00h Local: sala 1B137 Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br

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 / 21 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

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

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

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD. Definição do esquema da base de dados o esquema da BD é composto pelas definições de todas as tabelas da BD. existem outros elementos (views, índices, triggers) que também fazem parte do esquema e que

Leia mais

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco 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

Leia mais

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010 Sumário SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto October 18, 2010 1 Introdução 2 Tabelas 3 Colunas 4 5 Modificação de Tabelas 6 Domínios André Restivo (FEUP)

Leia mais

Aula 12 Revisão. Prof. Filipe Wall Mutz

Aula 12 Revisão. Prof. Filipe Wall Mutz Aula 12 Revisão Prof. Filipe Wall Mutz Tópicos Operadores para Consultas Consultas Aninhadas Restrições Views Controle de Acesso Stored Procedures Triggers Operadores Avançados: Consultas com Operadores

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

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I Considere o diagrama relacional da Figura 1 e escreva os comandos SQL para executar os exercícios abaixo. Figure 1 Diagrama relacional.

Leia mais

BD II (SI 587) Procedimentos Armazenados

BD II (SI 587) Procedimentos Armazenados BD II (SI 587) Procedimentos Armazenados Josenildo Silva jcsilva@ifma.edu.br MOTIVAÇÃO Contexto: Sistemas em 2 camadas Contexto: Sistemas em 3 camadas Problema 1: Alto volume de dados na rede Como reduzir

Leia mais

Linguagens Procedurais no PostgreSQL: Funcoes. Linguagens Procedurais no PostgreSQL: Funcoes

Linguagens Procedurais no PostgreSQL: Funcoes. Linguagens Procedurais no PostgreSQL: Funcoes Linguagens Procedurais no PostgreSQL: Funcoes Introdução à programação procedural no servidor e linguagem plpgsql para implementação de funções. ARQUITETURA/PROCESSOS postmaster: (Host, único, aguardando

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Revisão de Arquitetura C/S BD Cliente-Servidor com função distribuída Cliente Servidor Aplicativo

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

SQL Básica. Andre Noel

SQL Básica. Andre Noel SQL Básica Andre Noel Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Se tornou

Leia mais

ACH2025. Laboratóriode Bases de Dados. SQL Oracle Asserçõese gatilhos. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

ACH2025. Laboratóriode Bases de Dados. SQL Oracle Asserçõese gatilhos. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO ACH2025 Laboratóriode Bases de Dados Aula10 SQL Oracle Asserçõese gatilhos Professora: Fátima L. S. Nunes REGRAS DE INTEGRIDADE (RI) garantem que mudanças feitas no BD não resultem em inconsistência de

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

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva. Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva. Seja então o conjunto de entidades pessoa, com os atributos bi_pessoa, nome_pessoa e morada_pessoa,

Leia mais

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Segurança em Sistemas de Banco de Dados César Alberto da Silva Presidente Epitácio, 18 de Setembro de 2013 Agenda Por que proteger os dados?

Leia mais

Instrução Create Table

Instrução Create Table Tipos em SQL char(n): cadeia de caracteres de comprimento fixo n varchar(n): cadeia de caracteres de comprimento variável, com o máximo n especificado pelo utilizador int: inteiro (um subconjunto finito

Leia mais

Bases de Dados. Conversão para Modelo Relacional. Diagrama E-A. IST DEI Bases de Dados

Bases de Dados. Conversão para Modelo Relacional. Diagrama E-A. IST DEI Bases de Dados Bases de Dados Conversão para Modelo Relacional Diagrama E-A 2 1 Conversão de entidades Entidade forte converte-se numa tabela loan (loan_number, amount) atributos simples mantêm-se chave da tabela é a

Leia mais

Álgebra Relacional operações adicionais. Encontrar tuplos que obedecem a uma dada relação questões do tipo: quem já leu todos os livros que eu já li?

Álgebra Relacional operações adicionais. Encontrar tuplos que obedecem a uma dada relação questões do tipo: quem já leu todos os livros que eu já li? Bases de Dados Álgebra Relacional operações adicionais Divisão ( ) Encontrar tuplos que obedecem a uma dada relação questões do tipo: quem já leu todos os livros que eu já li? exemplo: nomes dos clientes

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

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003 Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS. Prof. Erinaldo Sanches Nascimento

FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS. Prof. Erinaldo Sanches Nascimento FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre o banco de dados. Especificar regras

Leia mais

Tarefa Orientada 17 Scripts

Tarefa Orientada 17 Scripts Tarefa Orientada 17 Scripts Objectivos: Declaração de variáveis escalares Declaração de variáveis do tipo tabela Tabelas temporárias Estruturas Condicionais Estruturas de Repetição Tratamento de erros

Leia mais

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. MODELAGEM DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br INTRODUÇÃO AO SQL Ferramentas brmodelo Ferramenta Case PostgreSQL versão 8 ou superior SGBD Em 1986 o

Leia mais

Funções Definidas pelo Usuário

Funções Definidas pelo Usuário BD II (SI 587) Funções Definidas pelo Usuário Prof. Josenildo Silva jcsilva@ifma.edu.br Funções definidas pelo usuário Funções precisam obrigatoriamente retornar um valor Somente aceitam parâmetros do

Leia mais

SQL. Linguagem de Definição de Dados (DDL) Tipos em SQL. Tipos Data/Tempo em SQL (cont.)

SQL. Linguagem de Definição de Dados (DDL) Tipos em SQL. Tipos Data/Tempo em SQL (cont.) SQL Linguagem de Definição de Dados (DDL) Linguagem de Definição dos Dados Tipos em SQL Manipular Tabelas (relações) Integridade e Segurança Linguagem de Manipulação dos Dados Estrutura básica Operações

Leia mais

Introdução a SQL (parte 2)

Introdução a SQL (parte 2) Introdução a SQL (parte 2) Bases de Dados (CC2005) Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Eduardo R. B. Marques DCC/FCUP Introdução a SQL parte 2 Tipos,

Leia mais

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80

Leia mais

PSI Linguagem de Definição de dados. Módulo 15

PSI Linguagem de Definição de dados. Módulo 15 PSI Linguagem de Definição de dados Módulo 15 Objetivos de aprendizagem No final deste módulo os alunos devem ter adquirido conhecimentos, procedimentos e atitudes que lhe permitam: Criação, alteração

Leia mais

f. Exemplo: verificar condição de aprovação de alunos

f. Exemplo: verificar condição de aprovação de alunos Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Semana 17 1) Expressões CASE a. Tem a mesma finalidade que nas linguagens

Leia mais

BANCO DE DADOS WEB AULA 9. concessão e revogação de privilégios. professor Luciano Roberto Rocha.

BANCO DE DADOS WEB AULA 9. concessão e revogação de privilégios. professor Luciano Roberto Rocha. BANCO DE DADOS WEB AULA 9 concessão e revogação de privilégios professor Luciano Roberto Rocha www.lrocha.com O que são privilégios Quem cria o objeto no banco de dados se torna o seu dono. Por padrão,

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

Subsistema de Integridade Semântica

Subsistema de Integridade Semântica Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade

Leia mais

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas Banco de dados Conteúdo: DDL Prof. Patrícia Lucas O mysql MySQL Workbench é uma ferramenta de design de banco de dados visual que integra o desenvolvimento SQL, administração, design de banco de dados,

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Views. uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. CREATE VIEW <nome> AS <query>;

Views. uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. CREATE VIEW <nome> AS <query>; Views uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. sintaxe: CREATE VIEW AS ; 1 Exemplo Criar uma view que dá o nome, ano e duração

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

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL. Banco de Dados II PL/SQL - Procedures -Cursor - Funções Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa

Leia mais

SQL Linguagem de Definição de Dados

SQL Linguagem de Definição de Dados SQL Linguagem de Definição de Dados Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais

Leia mais

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre

Leia mais

BD II (SI 587) Segurança em Banco de Dados. Josenildo Silva.

BD II (SI 587) Segurança em Banco de Dados. Josenildo Silva. BD II (SI 587) Segurança em Banco de Dados Josenildo Silva jcsilva@ifma.edu.br Nota Estes slides são baseados nos slides disponibilizados pelos autores ELMASRI e NAVATHE, para o livro Sistemas de Banco

Leia mais

DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados

DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Programa Introdução Conceitos

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

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com SQL Procedural Josino Rodrigues Neto josinon@gmail.com SQL Procedural Agregada em SQL-92 As ferramentas têm nomes para suas linguagens SQL procedurais/embutidas Oracle : PL/SQL Postgres PL/Pgsql SQL Server

Leia mais

Bases de Dados. DDL Data Definition Language

Bases de Dados. DDL Data Definition Language Bases de Dados DDL Data Definition Language SQL SQL = Structured Query Language Foi originalmente criada pela IBM nos anos 70 como parte de um protótipo de sistema relacional Posteriormente foi implementada

Leia mais

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os tuplos que satisfazem uma condição. exemplo: empréstimos da agência de Perryridge

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os tuplos que satisfazem uma condição. exemplo: empréstimos da agência de Perryridge Bases de Dados Álgebra Relacional Selecção (σ) Seleccionar os tuplos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge σ branch_name = Perryridge (loan) 2 1 Outros exemplos de selecção

Leia mais

SQL: Vistas, Indices, Autorização, Restrições

SQL: Vistas, Indices, Autorização, Restrições SQL: Vistas, Indices, Autorização, Restrições Fernando Lobo Base de Dados, Universidade do Algarve 1 / 20 Vistas Uma vista (view em inglês) é uma tabela virtual. Não existe fisicamente na BD. É definida

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

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe A Linguagem SQL Tecnologia de Base de Dados MSc. Eugénio. Macumbe A Linguagem SQL As raízes da linguagem SQL remontam a 1974, altura em que na IBM corp. se desenvolvia o protótipo de um sistema relacional

Leia mais

Subsistema de Integridade Semântica

Subsistema de Integridade Semântica Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade

Leia mais

Aula 12 Revisão. Prof. Filipe Wall Mutz

Aula 12 Revisão. Prof. Filipe Wall Mutz Aula 12 Revisão Prof. Filipe Wall Mutz Operadores Avançados: Consultas com Operadores Aritméticos SQL permite o uso de operadores aritméticos (+, -, *, /) tanto na cláusula WHERE como nos resultados da

Leia mais

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação SQL Básica DDL Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 21 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 21 de outubro de 2015 1 / 28 1 Introdução 2 SQL DDL CREATE Criar Banco

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Marcos André Gonçalves - UFMG Parte 3 Aula

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

Bancos (Bases) de Dados

Bancos (Bases) de Dados Bancos (Bases) de Dados Aula #8 SQL Prof. Eduardo R. Hruschka * Slides baseados no material elaborado pelas professoras: Cristina D. A. Ciferri Elaine P. M. de Souza SQL (Structured Query Language) Linguagem

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

Banco de Dados. Linguagem SQL

Banco de Dados. Linguagem SQL Banco de Dados Linguagem SQL 1 A linguagem SQL: história Em junho de 1970, o matemático Edgar Frank Codd, publicou o artigo "A Relational Model of Data for Large Shared Data Banks" na revista "Communications

Leia mais

Banco de Dados I Introdução SQL

Banco de Dados I Introdução SQL Banco de Dados I Introdução SQL Frederico Queiroga fredericoqueiroga@gmail.com https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada

Leia mais

Triggers(Gatilhos) Tiago Alves de Oliveira

Triggers(Gatilhos) Tiago Alves de Oliveira Triggers(Gatilhos) Tiago Alves de Oliveira tiago.alves@uemg.br Triggers (Gatilhos) Um TRIGGER ou gatilho associado a uma tabela, definido para ser disparado, respondendo a um evento em particular; Comandos

Leia mais

Exemplos de Vistas SQL. Tipos em SQL. Linguagem de Definição de Dados (DDL) CREATE VIEW todososclientes As

Exemplos de Vistas SQL. Tipos em SQL. Linguagem de Definição de Dados (DDL) CREATE VIEW todososclientes As Exemplos de Vistas SQL Considere-se a vista (com o nome todososconsumidores) contento os nomes das agências e seus clientes CREATE VIEW todososclientes As Π nomebalcao,nomecliente (temconta conta) Π nomebalcao,nomecliente

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED

Leia mais

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 16 Escola Politécnica da Universidade de São Paulo 1 SQL - STRUCTURED QUERY LANGUAGE SQL - Structured Query Language Linguagem de acesso a Banco de Dados

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

Linguagem de Definição de Dados (DDL)

Linguagem de Definição de Dados (DDL) Modelagem de Banco de Dados Linguagem de Definição de Dados (DDL) Professor: Anderson D. Moura Março, 2009 Linguagem de Definição de Dados Linguagem para especificar a informação acerca de cada tabela,

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

Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas

Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas Capítulo 4: SQL Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas Junções Vistas Modificação da Base

Leia mais

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU Aula 6 BD1 Modelo Relacional Profa. Elaine Faria UFU - 2017 Introdução Modelo Relacional Proposto por Codd em 1970 Revolucionou a área de banco de dados É o modelo dominante base para os SGBDs líderes

Leia mais