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

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

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

Transcrição

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

2 1. Criação da base de dados De seguida vem escrito um script com as instruções necessárias para a base de dados, escolheu-se os tipos mais apropriados tais como, integer, varchar, numeric, date, time. Vem também definido as restrições de integridade correspondentes às primary key e foreign key patentes em cada tabela. create table Banda ( idb integer not null unique, nome varchar(255) not null, cidade varchar(255) not null, país varchar(255) not null, ano integer not null, primary key (idb)) create table Edicao ( idb integer not null, tituloe varchar(255) not null, ano integer not null, editora varchar(255) not null, primary key (idb, tituloe), foreign key (idb) references Banda on delete cascade on update cascade) create table Musica ( idb integer not null, titulom varchar(255) not null, duracao numeric(2,2) not null, primary key (idb, titulom), foreign key (idb) references Banda on delete cascade on update cascade) create table Album ( idb integer not null, tituloe varchar(255) not null, primary key (idb, tituloe), foreign key (idb, tituloe) references Edicao on delete cascade on update cascade)

3 create table Faixa ( idb integer not null, tituloe varchar(255) not null, numero integer not null, titulom varchar(255) not null, primary key (idb, tituloe, numero), foreign key (idb, tituloe) references Album on delete cascade on update cascade, foreign key (idb, titulom) references Musica on delete cascade on update cascade) create table Single ( idb integer not null, tituloe varchar(255) not null, titulom varchar(255) not null, primary key (idb, tituloe), foreign key (idb, tituloe) references Edicao on delete cascade on update cascade, foreign key (idb, titulom) references Musica on delete cascade on update cascade) create table Concerto ( idb integer not null, data date not null, hora time not null, local varchar(255) not null, primary key (idb, data, hora), foreign key (idb) references Banda on delete cascade on update cascade) create table Original ( idb integer not null, titulom varchar(255) not null, primary key (idb, titulom), foreign key (idb, titulom) references Musica on delete cascade on update cascade)

4 create table Live ( idb integer not null, titulom varchar(255) not null, data date not null, hora time not null, titulomo varchar(255) not null, primary key (idb, titulom), foreign key (idb, titulom) references Musica on delete cascade on update cascade, foreign key (idb, data, hora) references Concerto on delete cascade on update cascade, foreign key (idb, titulomo) references Original on delete cascade on update cascade) 2. Consultas SQL Nesta secção é apresentada uma consulta por cada alinea. a) select Banda.nome,Edicao.tituloE,count(numero),sum(duracao) from Faixa,Edicao,Banda,Musica where Faixa.idB = Banda.idB and Faixa.idB = Musica.idB and Faixa.idB = Edicao.idB and Musica.tituloM = Faixa.tituloM and Edicao.ano = 2011 and Edicao.tituloE = Faixa.tituloE group by Banda.idB,Banda.nome,Edicao.tituloE; b) select Banda.nome,Faixa.tituloE,count(numero) from Faixa,Single,Banda where Faixa.Idb = Single.Idb and Faixa.tituloM = Single.tituloM and Banda.Idb = Faixa.Idb group by Banda.idB,Banda.nome,Faixa.tituloE having count(numero) >= all (select count(numero) from Faixa,Single,Banda where Banda.idB = Faixa.idB

5 and Single.idB = Faixa.idB and Faixa.tituloM = Single.tituloM group by Banda.idB,Banda.nome,Faixa.tituloE); c) (select nome, tituloe from Banda natural join Faixa) except (select nome, tituloe from Banda natural join Faixa natural join Live) d) select idb,nome,tituloe from Banda natural inner join (select idb,tituloe from (Live natural inner join Faixa) as newalbum where not exists ((select idb,titulom from Faixa where newalbum.idb = Faixa.idB and newalbum.tituloe = Faixa.tituloE) except (select idb,titulom from live where Live.idB = newalbum.idb))) as Albuns_Live group by idb,nome,tituloe; 3. Restrições de integridade Teve-se em conta os mecanismos suportados pelo sistema Postgres, exemplo disso foi a utilização do trigger em vez de assertion, o que dificultou a resolução da implementação das seguintes restrições de integridade. a) Só pode haver uma versão live da mesma música original create table Live ( idb integer, titulom varchar(255), data date not null, hora time not null, titulomo varchar(255) not null,

6 primary key (idb, titulom), foreign key (idb, titulom) references Musica, foreign key (idb, data, hora) references Concerto, foreign key (idb, titulomo) references Original, unique(idb, data, hora, titulomo)) b) Todos os títulos de um album têm de ser o título de uma das faixas com uma faixa já publicada como single /***************TRIGGERS*********************************************/ /*******VERIFICA O ALBUM CRIADO************************/ create or replace function verifica_titulo_album() returns trigger as $$ declare id banda.idb%type; musica single.titulom%type; begin end select banda.idb into id from banda where banda.idb = new.idb; select single.titulom into musica from single where new.idb = single.idb and single.titulom = new.tituloe; if(id is null or musica is null) then delete from edicao where edicao.idb = new.idb and edicao.tituloe = new.tituloe; raise exception 'O titulo do album % deve ser o titulo de uma música já existente',new.tituloe; end if; insert into Faixa values (new.idb,new.tituloe,1,new.tituloe); return new; $$ language plpgsql; create trigger verifica_titulo_album_trigger after insert on Album for each row execute procedure verifica_titulo_album(); /********************************************************************/

7 create or replace function verifica_update_album() returns trigger as $$ begin raise exception 'Não é possivel actualizar um album, dada a complexidade da operação' ; end $$ language plpgsql; create trigger verifica_update_album_trigger before update on Album for each row execute procedure verifica_update_album(); /**********VERIFICA O SINGLE*****************************************/ create or replace function verifica_apagar_single() returns trigger as $$ declare titulo album.tituloe%type; begin select album.tituloe into titulo from album where idb = old.idb and tituloe = old.titulom; if(titulo is not null) then raise exception 'Não se pode apagar este single que é titulo de um álbum, primeiro apague o album %',titulo; end end if; return old; $$ language plpgsql; create trigger verifica_apagar_single_trigger after delete on Single for each row execute procedure verifica_apagar_single(); /********************************************************************/ create or replace function verifica_update_single() returns trigger as $$ begin raise exception 'Não se pode actualizar simplesmente um single, é muito complexo';

8 end $$ language plpgsql; create trigger verifica_update_single_trigger before update on Single for each row execute procedure verifica_update_single(); /********************************************************************/ 4. Desenvolvimento da aplicação A aplicação pode ser acedida através do url: //web.ist.utl.pt/ist168477/home.html home.html( homepage )

9 bandas.php <html> <body> <?php $user = "ist168477"; $host = "db.ist.utl.pt"; $port = 5432; $password = "vpbo0929"; $dbname = $user; $connection = pg_connect("host=$host port=$port user=$user password=$password dbname=$dbname") or die(pg_last_error()); $sql = "SELECT * FROM Banda;"; $result = pg_query($sql) or die('error: '. pg_last_error()); echo("tabela das Bandas:"); echo('<table border="10">'); echo("<tr><td>id_banda</td><td>nome</td><td>cidade</td><td>pais</td><td>ano de Criacao</td></tr>"); while ($row = pg_fetch_assoc($result)) { echo("<tr><td>"); echo($row["idb"]); echo("</td><td>"); echo($row["nome"]); echo("</td><td>"); echo($row["cidade"]); echo("</td><td>"); echo($row["pais"]); echo("</td><td>"); echo($row["ano"]); echo("</td></tr>"); } echo("</table>"); $result = pg_free_result($result) or die('error: '. pg_last_error()); pg_close($connection);?> </body> </html>

10 seleccionabanda.php <html> <body> <?php $user = "ist168477"; $host = "db.ist.utl.pt"; $port = 5432; $password = "vpbo0929"; $dbname = $user; $connection = pg_connect("host=$host port=$port user=$user password=$password dbname=$dbname") or die(pg_last_error()); echo("<h1><b>seleccao de uma Banda</b></h1>"); echo("<hr>"); echo("<p><b>para criar um album deve executar os seguintes passos:</b></p>"); echo("<p>1 - Escolher uma Banda</p>"); $sql = "SELECT idb,nome FROM Banda;"; $result = pg_query($sql) or die('error: '. pg_last_error()); $aux = pg_query($sql) or die('error: '. pg_last_error()); echo("tabela das Bandas disponiveis:"); echo('<table border="2">'); echo("<tr><td>id_banda</td><td>nome</td></tr>"); while ($row = pg_fetch_assoc($result)) { echo("<tr><td>"); echo($row["idb"]); echo("</td><td>"); echo($row["nome"]); echo("</td></tr>"); } echo("</table>"); echo("<form action='criaralbum.php' method='post' name='bandas'>"); echo("<p>seleccione a banda: <select name='id_banda'>"); while($row = pg_fetch_assoc($aux)) { echo("<option value={$row['idb']}>".$row["idb"]."</option>"); } echo("</select> </p>"); echo("<input type='submit' name='sub' value='continuar'>"); echo("</form>"); $result = pg_free_result($result) or die('error: '. pg_last_error()); $aux = pg_free_result($aux) or die('error: '. pg_last_error()); pg_close($connection);?> </body> </html>

11 criaralbum.php <?php session_start();?> <html> <body> <?php $user = "ist168477"; $host = "db.ist.utl.pt"; $port = 5432; $password = "vpbo0929"; $dbname = $user; $connection = pg_connect("host=$host port=$port user=$user password=$password dbname=$dbname") or die(pg_last_error()); $id_banda = $_REQUEST["id_banda"]; $idb = "idb"; $_SESSION['idb'] = $id_banda; echo("<h1><b>criacao de um Album</b></h1>"); echo("<hr>"); $obtem_banda = "SELECT nome FROM Banda where idb = '$id_banda' ;" ; $nome_banda = pg_query($obtem_banda) or die('error: '. pg_last_error()); $row = pg_fetch_assoc($nome_banda); $_SESSION['nome'] = $row["nome"]; $nome_banda_aux = $row["nome"]; $sql = "SELECT tituloe,titulom FROM Single where idb = '$id_banda' ;"; $result = pg_query($sql) or die('error: '. pg_last_error()); $aux = pg_query($sql) or die('error: '. pg_last_error()); echo("musicas dos Singles da Banda $nome_banda_aux :"); echo('<table border="2">'); echo("<tr><td>titulo do Single</td><td>Musica</td></tr>"); while ($row = pg_fetch_assoc($result)) { echo("<tr><td>"); echo($row["tituloe"]); echo("</td><td>"); echo($row["titulom"]); echo("</td></tr>"); } echo("</table>"); echo("<p>2 - Seleccione o nome de uma das musicas para o nome do álbum </p>"); echo("<form action='inseriralbumbd.php' name='criaralbum' method='post'>"); echo("<p>seleccione o titulo do album: <select name='titulo_album'>");

12 while($row = pg_fetch_assoc($aux)) { echo("<option value={$row['titulom']}>".$row["titulom"]."</option>"); } echo("</select> </p>"); echo("<p>3 - Preencher os campos em branco com os dados necessários para a criacao de um album </p>"); echo("<p>nome da Editora:<input type='text' name='editora'></p>"); echo("<p>ano de edicao : <input type='text' name='ano'> </p>"); echo("<p>4 - Clicar o botao continuar</p>"); echo("<input type='submit' name='album' value='ir para seleccionar Faixas'>"); echo("</form>"); $result = pg_free_result($result) or die('error: '. pg_last_error()); $aux = pg_free_result($aux) or die('error: '. pg_last_error()); $nome_banda = pg_free_result($nome_banda) or die('error: '. pg_last_error()); pg_close($connection);?> </body> </html> inseriralbumbd.php <?php session_start();?> <html> <body> <?php $user = "ist168477"; $host = "db.ist.utl.pt"; $port = 5432; $password = "vpbo0929"; $dbname = $user; $connection = pg_connect("host=$host port=$port user=$user password=$password dbname=$dbname") or die(pg_last_error()); $idb = $_SESSION['idb']; $nome_album = $_REQUEST["titulo_album"]; $editora = $_REQUEST["editora"]; $ano = $_REQUEST["ano"]; $int_ano = intval($ano); if($editora!= '' and int_ano >= 0000 and int_ano <= 9999) { com os dados preenchidos //Inserir a edição criada na base de dados, de acordo

13 $insert_album = "INSERT INTO EDICAO VALUES('$idb', '$nome_album', '$int_ano','$editora');"; $result_insert = pg_query($insert_album) or die('error: '. pg_last_error()); VALUES('$idb', '$nome_album');"; die('error: '. pg_last_error()); $insert_album = "INSERT INTO ALBUM $result_insert = pg_query($insert_album) or $_SESSION['n_faixa'] = 2; //inicialização do numero da faixa do album $_SESSION['tituloe'] = $nome_album; echo("<h1><b>insercao do Album</b></h1>"); echo("<hr>"); sucesso</p>"); value='adicionar Faixas'>"); echo("<p>album $nome_album criado com echo("<form action='menumusica.php'>"); echo("<input type='submit' name='menumusica' echo("</form>"); correctamente"); } else { } echo("erro: Algum campo nao foi preenchido pg_close($connection);?> </body> </html> menumusica.php <?php session_start();?> <html> <p><h1>menu da Musica:</h1></p> <hr> <p>menu de opcoes:</p> <form action="seleccionarfaixa.php">

14 </body> </html> <input type="submit" name="seleccionarfaixas" value="seleccionar uma Faixa"> </form> <form action="criarmusica.php"> <input type="submit" name="criarmusica" value="criar uma Musica"> </form> seleccionarfaixa.php <?php session_start();?> <html> <body> <?php $user = "ist168477"; $host = "db.ist.utl.pt"; $port = 5432; $password = "vpbo0929"; $dbname = $user; $connection = pg_connect("host=$host port=$port user=$user password=$password dbname=$dbname") or die(pg_last_error()); $idb = $_SESSION['idb']; $nome_banda = $_SESSION['nome']; $sql = "SELECT * FROM Musica where idb = '$idb';"; pg_last_error()); pg_last_error()); $result = pg_query($sql) or die('error: '. $result2 = pg_query($sql) or die('error: '. echo("musicas da Banda $nome_banda :"); echo('<table border="2">'); Musica</td><td>Duracao</td></tr>"); echo("<tr><td>titulo da while ($row = pg_fetch_assoc($result)) {

15 echo("<tr><td>"); echo($row["titulom"]); echo("</td><td>"); echo($row["duracao"]); echo("</td></tr>"); } echo("</table>"); echo("<form action='inserefaixabd.php' method='post' name='musicas'>"); echo("<p>seleccione a musica: <select name='musica'>"); while($row = pg_fetch_assoc($result2)) { echo("<option value={$row['titulom']}>".$row["titulom"]."</option>"); } echo("</select> </p>"); echo("<input type='submit' name='sub' value='inserir'>"); echo("</form>"); pg_last_error()); pg_last_error()); $result = pg_free_result($result) or die('error: '. $result2 = pg_free_result($result2) or die('error: '. pg_close($connection);?> </body> </html> inserefaixabd.php <?php session_start();?> <html> <h1><b>insercao de uma Faixa na Base de Dados</b></h1> <hr> <body> <?php

16 $user = "ist168477"; $host = "db.ist.utl.pt"; $port = 5432; $password = "vpbo0929"; $dbname = $user; $connection = pg_connect("host=$host port=$port user=$user password=$password dbname=$dbname") or die(pg_last_error()); $nome_musica = $_REQUEST["musica"]; $id_banda = $_SESSION['idb']; $titulo_album = $_SESSION['tituloe']; $faixa = $_SESSION['n_faixa']; $sql = "INSERT INTO FAIXA VALUES('$id_banda','$titulo_album','$faixa','$nome_musica');"; $result = pg_query($sql) or die('error: '. pg_last_error()); para a pŕoxima musica $_SESSION['n_faixa']++; //incremento o numero da faixa pg_last_error()); $result = pg_free_result($result) or die('error: '. pg_close($connection);?> <p>se quiser inserir mais fixas clique no botao +:</p> value="+"> <form action="menumusica.php"> <input type="submit" name="mais_faixas" </form> <p>se tiver terminado de inserir todas as faixas clique em Concluir</p> value="concluir"> </body> </html> <form action="visualizarnovoalbum.php"> <input type="submit" name="concluido" </form> criarmusica.php <?php session_start();?> <html> <body> <p><h1>criacao de uma Musica</h1></p> <hr>

17 name='criarmusica'> name='nome_musica'> </p> name='duracao_musica'> </p> <form action='inseremusicabd.php' <p> "Nome da nova musica: <input type='text' <p> "Duracao da nova musica: <input type='time' name='criarmusica' value='criar Nova Musica'> </form> <input type='submit' </body> </html> inseremusicabd.php <?php session_start();?> <html> <body> <h1><b>criacao de uma Musica</b></h1> <hr> <?php $user = "ist168477"; $host = "db.ist.utl.pt"; $port = 5432; $password = "vpbo0929"; $dbname = $user; $connection = pg_connect("host=$host port=$port user=$user password=$password dbname=$dbname") or die(pg_last_error()); $nome_musica = $_REQUEST["nome_musica"]; $duracao = $_REQUEST["duracao_musica"]; $id_banda = $_SESSION['idb']; $faixa = $_SESSION['n_faixa']; $titulo_album = $_SESSION['tituloe']; $sql1 = "INSERT INTO MUSICA VALUES('$id_banda', '$nome_musica', '00:$duracao');"; $sql2 = "INSERT INTO FAIXA VALUES('$id_banda', '$titulo_album', '$faixa', '$nome_musica');"; $result1 = pg_query($sql1) or die('error: '. pg_last_error());

18 $result2 = pg_query($sql2) or die('error: '. pg_last_error()); para a pŕoxima musica $_SESSION['n_faixa']++; //incremento o numero da faixa pg_last_error()); pg_last_error()); $result1 = pg_free_result($result1) or die('error: '. $result2 = pg_free_result($result2) or die('error: '.?> pg_close($connection); <p>se quiser inserir mais fixas clique no botao +:</p> value="+"> <form action="menumusica.php"> <input type="submit" name="mais_faixas" </form> <p>se tiver terminado de inserir todas as faixas clique em Concluir</p> value="concluir"> <form action="visualizarnovoalbum.php"> <input type="submit" name="concluido" </form> </body> </html> visualizarnovoalbum.php <?php session_start();?> <html> <body> <?php $user = "ist168477"; $host = "db.ist.utl.pt"; $port = 5432; $password = "vpbo0929"; $dbname = $user; $connection = pg_connect("host=$host port=$port user=$user password=$password dbname=$dbname") or die(pg_last_error()); $id_banda = $_SESSION['idb']; $nome_album = $_SESSION['tituloe'];

19 echo("<p><h1>album criado: $nome_album </h1></p>"); echo("<hr>"); $sql = "SELECT * FROM FAIXA WHERE FAIXA.idB = '$id_banda' and FAIXA.tituloE = '$nome_album';"; $result = pg_query($sql) or die('error: '. pg_last_error()); echo("tabela das Faixas do album $nome_album :"); echo('<table border="10">'); echo("<tr><td>id_banda</td><td>titulo do Album</td><td>Numero da Faixa</td><td>Titulo da Musica</td></tr>"); while ($row = pg_fetch_assoc($result)) { } echo("</table>"); echo("<tr><td>"); echo($row["idb"]); echo("</td><td>"); echo($row["tituloe"]); echo("</td><td>"); echo($row["numero"]); echo("</td><td>"); echo($row["titulom"]); echo("</td></tr>"); pg_last_error()); $result = pg_free_result($result) or die('error: '. pg_close($connection);?> HomePage"> <form action="home.html"> <input type="submit" name="homepage" value="ir para

20 </body> </html> </form>

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

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

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

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

Leia mais

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

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

Leia mais

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

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

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

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

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

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

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

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

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

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS Na grande maioria dos sistemas, faz-se necessário utilizar informações que estão armazenadas em uma determinada

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

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

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

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

Linguagem SQL. Comandos Básicos

Linguagem SQL. Comandos Básicos Linguagem SQL Comandos Básicos Caetano Traina Júnior Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.sc.usp.br Comando

Leia mais

Bases de Dados. Lab 7: Desenvolvimento de aplicações com PHP

Bases de Dados. Lab 7: Desenvolvimento de aplicações com PHP Departamento de Engenharia Informática 2013/2014 Bases de Dados Lab 7: Desenvolvimento de aplicações com PHP 1º semestre Este lab é uma continuação dos anteriores. Se realizou os labs anteriores, a base

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

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

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

Sistema de Controle de Estoque

Sistema de Controle de Estoque FACULDADE DE TECNOLOGIA SENAC GOIAS GESTÃO EM TECNOLOGIA DA INFORMÇÃO TÓPICOS AVANÇADOS EM BANCO DE DADOS Professor: Olegário Correia Neto Alunos: Marcelo Gonçalves, Juliano Pirozelli, João Lucas Pecin,

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

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

Linguagem SQL (Parte II)

Linguagem SQL (Parte II) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: contato@itatechjr.com.br Linguagem SQL (Parte II Introdução

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

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 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas

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

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

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

SISTEMA GERENCIAMENTO DE PRODUTOS PHP E MySQL 1. APRESENTAÇÃO

SISTEMA GERENCIAMENTO DE PRODUTOS PHP E MySQL 1. APRESENTAÇÃO SISTEMA GERENCIAMENTO DE PRODUTOS PHP E MySQL 1. APRESENTAÇÃO Este é um sistema de controle de produtos, onde o usuário irá entrar com o login e a senha, e se ele for um usuário cadastrado na tabela usuários

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

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

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

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios Laboratório de Banco de Dados Exercicios Modelo conceitual segundo notação de Peter Chen cliente (1,1) realizacao (1,n) venda (0,n) produto (1,1) contem Modelo conceitual gerado pela CASE Dezign for Database

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

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

Consultoria e Treinamento em Bancos de Dados Relacionais

Consultoria e Treinamento em Bancos de Dados Relacionais Tabela de conteúdos CREATE TABLE AS...1 CREATE DOMAIN...1 Funções de dados...2 Funções de data e hora...2 Funções de agregação...3 Expressões condicionais...4 CASE...4 COALESCE...4 NULLIF...4 Controle

Leia mais

PostgreSQL 8.0. Diogo Biazus

PostgreSQL 8.0. Diogo Biazus PostgreSQL 8.0 Diogo Biazus PostgreSQL 7.X Totalmente ACID MVCC Tipos e operadores customizáveis Diversas linguagens procedurais Hot backup Código aberto (BSD) Facilidade de extensão PL/pgSQL, PL/Python,

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

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) ) TADS Exercício Laboratório I Analise o modelo de banco de dados abaixo: MUSICA FAIXA Codigo_Musica: INTEGER Nome_Musica: VARCHAR(60) Duracao: NUMERIC(6,2) Codigo_Musica: INTEGER (FK) Codigo_CD: INTEGER

Leia mais

Logado no OracleXE vamos acessar a opção:

Logado no OracleXE vamos acessar a opção: Tutorial PL/SQL O PL/SQL é uma linguagem procedural que roda diretamente no núcleo do SGBD Oracle. O objetivo deste tutorial é mostrar a criação de funções e procedimentos em PL/SQL, interagindo com comandos

Leia mais

Bases de Dados 1º semestre

Bases de Dados 1º semestre DepartamentodeEngenhariaInformática 2008/2009 BasesdeDados1ºsemestre Lab1:Introduçãoaoambiente O ficheiro create bank.sql contém um conjunto de instruções SQL para criar a base de dadosdeexemploilustradanafigura1.

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

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

PL/pgSQL. Introdução. Introdução. Introdução

PL/pgSQL. Introdução. Introdução. Introdução Introdução PL/pgSQL Banco de Dados II Prof. Guilherme Tavares de Assis PL/pgSQL (Procedural Language for the PostgreSQL) é uma linguagem procedural carregável desenvolvida para o SGBD PostgreSQL, que possui

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

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

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

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

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

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

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

Projeto de Banco de Dados

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

Leia mais

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

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

Correção da 1a Prova de GBD1 2010/1. Profa. Sandra de Amo

Correção da 1a Prova de GBD1 2010/1. Profa. Sandra de Amo Correção da 1a Prova de GBD1 2010/1 Profa. Sandra de Amo 1. Você foi contratado para fazer o projeto de um banco de dados para a Auto-Escola Ideal. Seu cliente (o dono da auto-escola) deseja estocar e

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

RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS

RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS No Instituto Federal do Paraná tounou-se necessário o armazenamento de certas informações para controle de pessoal. Para armazenar tais dados é necessário saber que:

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo Departamento de Engenharia Informática 2012/2013 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

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

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS Exemplos de Scripts SQL (PostgreSQL) Pizzaria 1 2 Criação de BANCO DE DADOS CREATE DATABASE nome_do_banco; CREATE DATABASE pizzaria; Criação de TABELAS SOMENTE COM CHAVE PRIMÁRIA CREATE TABLE nome_da_tabela

Leia mais

Regras de Negócios é com o Elefante!

Regras de Negócios é com o Elefante! Regras de Negócios é com o Elefante! HARDWARE SOFTWARE Pesquisa Quantas camadas? Regras na Aplicação? Regras numa Camada Intermediária? Regras no Banco de Dados? Explain / Plano de Consulta? E as minhas

Leia mais

JDBC. Prof. Márcio Bueno (poonoite@marciobueno.com)

JDBC. Prof. Márcio Bueno (poonoite@marciobueno.com) JDBC Prof. Márcio Bueno (poonoite@marciobueno.com) JBDC Java Database Connectivity ou JDBC é um conjunto de classes e interfaces (API) escritas em Java que faz o envio de instruções SQL para qualquer banco

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

GUIA PHP com MYSQL Autor: Everton Mendes Messias

GUIA PHP com MYSQL Autor: Everton Mendes Messias PHP (Hypertext Preprocessor) : Linguagem de programação interpretada. Tags PHP: phpinfo(); Comentários: //, # - comentário de uma linha /* comentário de várias linhas */ GUIA PHP com MYSQL Autor: Everton

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

Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO.

Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO. Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Curso Oracle 10g Prof. MSc. Luciano Blomberg lblomberg@uol.com.br 2011/1

Leia mais

Treinamento em PHP. Aula 7. Ari Stopassola Junior stopassola@acimainteractive.com

Treinamento em PHP. Aula 7. Ari Stopassola Junior stopassola@acimainteractive.com Treinamento em PHP Aula 7 Ari Stopassola Junior stopassola@acimainteractive.com Banco de Dados Robustes no armazenamento Segurança, velocidade e facilidade na manipulação dos dados Controle e escalabilidade

Leia mais

SQL - Criação de Tabelas

SQL - Criação de Tabelas SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25 Sumário 1 Introdução 2 Tabelas

Leia mais

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013 Aplicações - SQL Banco de Dados: Teoria e Prática André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013 Picture by Steve Kelley 2008 SQL SQL Structured Query Language Originalmente:

Leia mais

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

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

Leia mais

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível

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

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

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL SQL Structured Query Language Linguagem de Consulta Estruturada; Originou-se da linguagem SEQUEL (1974); Revisada e chamada de SQL em 1976/77; Em 1986, padronizada pelo ANSI/ISO - chamada SQL-86; Em 1987

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

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs? BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Um Banco

Leia mais

Projeto de Banco de Dados: Empresa X

Projeto de Banco de Dados: Empresa X Projeto de Banco de Dados: Empresa X Modelo de negócio: Empresa X Competências: Analisar e aplicar o resultado da modelagem de dados; Habilidades: Implementar as estruturas modeladas usando banco de dados;

Leia mais

Desenvolvimento de Sistemas Web Prof. Leandro Roberto. Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete)

Desenvolvimento de Sistemas Web Prof. Leandro Roberto. Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete) Desenvolvimento de Sistemas Web Prof. Leandro Roberto Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete) JavaScript Eventos Alguns eventos de uma página HTML podem ser interceptados e programados

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

Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL.

Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL. Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL. Procuraremos mostrar os principais procedimentos para fazer um cadastro de registros numa base de dados MySQL utilizando a linguagem

Leia mais

Bases de Dados 2005/2006. Aula 5

Bases de Dados 2005/2006. Aula 5 Bases de Dados 2005/2006 Aula 5 Sumário -1. (T.P.C.) Indique diferenças entre uma tabela e uma relação. 0. A base de dados Projecto 1. SQL Join (variantes) a. Cross Join b. Equi-Join c. Natural Join d.

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

1 R$ 50,00 R$ 50,00 reusable object-oriented software 2 Utilizando UML e padrões: uma

1 R$ 50,00 R$ 50,00 reusable object-oriented software 2 Utilizando UML e padrões: uma AUTOR: CESAR AUGUSTO TACLA CRIAÇÃO: 20/5/200 8:24 ÚLTIMA ALTERAÇÃO: 2/5/20 5: TRABALHO DE PADRÕES DE PROJETO ESPECIALIZAÇÃO JAVA 20 INSTRUÇÕES. O trabalho será feito aula a aula de acordo com a matéria

Leia mais

#nao fazer #Só pode fazer para testar... drop database if exists modelo4; create database modelo4; use modelo4; #Auto_relacionamento #Pessoa = Conjuge = filho #Observar para Criticar #O que achou? # Deixando

Leia mais

PHP e MySQL Autenticação de Usuários

PHP e MySQL Autenticação de Usuários PHP e MySQL Autenticação de Usuários Programação de Servidores Marx Gomes Van der Linden http://marx.vanderlinden.com.br/ Controle de Acesso A maioria das aplicações web envolve em algum ponto um mecanismo

Leia mais

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

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

Leia mais

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela Certamente você já ouviu falar muito sobre triggers. Mas o quê são triggers? Quando e como utilizá-las?

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

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

Structured Query Language (SQL) Aula Prática

Structured Query Language (SQL) Aula Prática Structured Query Language (SQL) Aula Prática Linguagens de SGBD Durante o desenvolvimento do sistema R, pesquisadores da IBM desenvolveram a linguagem SEQUEL, primeira linguagem de acesso para Sistemas

Leia mais

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010 BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010 índice 1 Introdução 2 3 Introdução SQL - Structured Query Language

Leia mais

22/05/2012 CRIANDO UM PROJETO COM TELAS ESTRUTURA DA APLICAÇÃO LOGIN BANCO DE DADOS TAREFAS PHP MYSQL PARTE 2

22/05/2012 CRIANDO UM PROJETO COM TELAS ESTRUTURA DA APLICAÇÃO LOGIN BANCO DE DADOS TAREFAS PHP MYSQL PARTE 2 CRIANDO UM PROJETO COM TELAS Páginas com formulário Acesso ao banco de dados PHP MYSQL PARTE 2 Luciana Balieiro Cosme ESTRUTURA DA APLICAÇÃO LOGIN BANCO DE DADOS # Coluna Nome e Tipo 1 codigo int(11) AUTO_INCREMENT

Leia mais