Os comandos SQL utilizados nas aulas práticas e mostrados aqui foram feitos num interpretador de comandos: psql

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

Download "Os comandos SQL utilizados nas aulas práticas e mostrados aqui foram feitos num interpretador de comandos: psql"

Transcrição

1 Bases de Dados PostgreSQL e Php Transacções Joins, agregações, vistas P. Serendero,

2 PostgreSQLe Php: transacções Os comandos SQL utilizados nas aulas práticas e mostrados aqui foram feitos num interpretador de comandos: psql Para desenvolver aplicações os comandos de SQL aparecem misturados numa linguagem de programação Neste módulo mostramos como fazer chamados sqldesde a linguagem Php 2

3 PostgreSQLe Php: transacções O Php é uma linguagem interpretada. scripting language PHP, é a sigla de Hypertext Preprocessor, Lerdorf 1995 Uma linguagem open-sourcepara utilização geral, especialmente adaptada para desenvolvimento Web Pode ser embebida em HTML. Uma linguagem que funciona no lado do servidor Interpretada no web server com um processador A sintaxe vem de C, C, Java, e Perl O principal objectivo desta linguagem é permitir escrever páginas web dinamicamente geradas Manual. 3

4 PostgreSQLe Php: transacções scriptinglanguage: uma linguagem de programação que permite o controlo de uma ou mais aplicações Os chamados a SQL são interpretados previamente por um pre-processador Consultar o Manual do PostreSQL: Programer s Guide Client Interfaces Em php existem extensões do PostgreSQL. Incluem sql embebido Ver / 4

5 PostgreSQLe Php: transacções ANTES de utilizar a BD é preciso abrir. No fim devemos fechar Abrir a base de dados desde php <?php include'/dir1/dir11/bibliotecas/biblio-1.php'; $db= dbconnect(); //ligar a bdde dcbm if(!$db) { printf("<p>erro ao abrir a Base de Dados. Contactar o Administrador da BD :).</p> \n"); exit(); } pg_close($db); // fechar a bdno fim?> 5

6 PostgreSQLe Php: transacções <?php function dbconnect() // { $hostname="localhost"; $db_name= nome-bd"; $db_user = postgres"; $user_psw= lasdflakjasdfj"; $connection_string ="host=$hostname dbname = $db_name user =$db_user password = $user_psw"; $db = pg_connect($connection_string); // abrir a BD desde php if(!$db) { printf("<p> Nãohá ligaçãocom a base de dados. Ensaiar mais tarde. </p>\n"); exit(); } return $db; }?> 6

7 PostgreSQLe Php: interrogar $OK = pg_query($db, $instrução-sql); Executa o query indicado na string $instrução-sql na base de dados indicada na ligação prévia a base de dados representada aqui pela variável $db Em caso de erro, devolve NULL (pode-se verificar sempre o $OK Pormenores do erro se podem encontrar na função pg_last_error() se a ligação a bd era válida O primeiro parâmetro é opcional, mas não recomendável não incluir 7

8 PostgreSQLe Php: SELECT if($tripulante) { $query_tripulante = "SELECT* FROM tripulante WHERE nif = $tripulante "; $res = pg_query($conexao, $query_tripulante); if($res) { $c=pg_fetch_array($res); echo$c[0]."<-nome\n"; echo$c[1]."<-morada\n"; } elseerror pg_fetch_array Carrega um tuplo como um array. parareferenciaroselementosdo array, podem-se utilizar indices ou os nomes dos atributos da tabela 8

9 PostgreSQLe Php: SELECT function valida_chave($db, $tabela, $campo, $chave) {// $instr= "SELECT* FROM $tabelawhere $campo= '$chave'"; $id = pg_query($db, $instr); $row = pg_fetch_row($id); if($row[0]!= $chave) return 0; elsereturn1; }// pg_fetch_row:semelhante a pg_fetch_arraysó que apenas refere os elementos utilizando índices Isto é, devolve um arranjo numerado com índices 9

10 PostgreSQLe Php: SELECT // function get_nome_disciplina($db, $id_disciplina) { $query = "SELECT* FROM grupo_curricular WHERE id= '$id_disciplina' "; $resultado = pg_query($db, $query); if($resultado) { $r = pg_fetch_array($resultado); return$r['nome']; } else return NULL: } //

11 INSERIRtuplos tuplosdinamicamente: HTML <html> Iniciar um bloco de html <head> <title>deei-ualg</title> <link rel="shortcut icon" href= /deei/icon.ico" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <formname= utilizador" action= validar-user.php" method="post" enctype="application/x-www-form-urlencoded"> Nome Utilizador: <INPUT TYPE = "text" value="" name="usuario /> Password: <INPUT TYPE = PASSWORD value ="" name="passwd /> <p> <input type="submit" value ="Validar" name = "go"></p> </form> </html> Após submit, HTML carrega todos os dados de <input> no array $_POST 11

12 INSERIRtuplos tuplosdinamicamente ***** este é o programa validar-user.php <?php $usuario = $_POST['usuario']; $passw = $_POST['passw']; $nivel= $_POST['nivel']; $data= $_POST['data']; date_default_timezone_set("europe/lisbon"); $data = date(); if (verifica_utilizador($db, $usuario)) //verifica se utilizador existe show_error("já existe um usuariocom este nome. Favor trocar por um outro.",1); $sqlcmd= "INSERT INTO utilizador ( usuario, passw, data) VALUES ('$usuario', '$passw', '$data')"; $OK = pg_query($db, $sqlcmd); //inserir registo na bd. pg_close($db); //após inserção, fechar a BD if(!$ok) show_error(1); else mandar_aviso("novo Utilizador(a): $usuario- criado(a)", 4);?> 12

13 PostgreSQLe Php: UPDATE SQL: UPDATE utilizador SET passw = D67N9#%BB, data = 11/ , WHERE usuario = patricio ; Php $usuario = $_POST['usuario']; $passw1 = $_POST['passw1']; $passw2 = $_POST['passw2']; if($passw1!= passw2) show_error( password incorrecto. Repetir sff",1); $cmd= "UPDATE utilizador SET passw='$passw1', WHERE usuario= '$usuario' "; If( pg_query($db, $cmd)) echo user alterado com sucesso ; 13

14 PostgreSQLe Php: APAGAR SQL DELETEFROM climatologiawhere city = London ; Php function apagar_registo($db, $bi) { $apagar= "DELETE FROM sociowhere bi= '$bi'"; $OK = pg_query($db, $apagar); if($ok) return("registo sócio nº BI: $bi apagado. \n"); else return( erro: Registo socio nº BI: $bi NÃO apagado\n"); 14

15 SQL : Transacções Uma Base de Dados tem sempre acessos concorrentes: muitos utilizadores que estão fazer insert, update, delete simultaneamente Para cada utilizador, o SGBD abre um novo processo. Uma nova sessão até este sair da BD. (fechar) Como assegurar a integridade e coerência da BD? Exemplos críticos: reservas bilhetes online, bancos, bolsa, 15

16 SQL : Transacções O que se passa quando o acesso é concorrente e a um mesmo registo da BD? Por exemplo, a sua conta bancária: Você anda a tirar 30 da sua conta, mas o seu pai ainda não fez depósito também na sua conta Como deveríam acontecer as coisas? Qual transacção primeiro? A conta do seu pai é actualizada depois de lhe depositar os 30 Que se passa se a sua irmã sabe a sua conta e está intentar retirar 20 no mesmo momento que você pretende levantar os 30 que precisa? Que se passa se a BD do banco crasha no meio disto tudo? 16

17 SQL : Transacções Uma transacção é uma sequência de operações SQL Esta sequência é tratada como um todo Por defeito, uma instrucção de SQL é uma transacção As transacções obedecem as propriedades ACID": Atomicity Consistency Isolation Durability (Ver na introdução) 17

18 SQL : Transacções Atomicidade: A transacção é um todo. Toda a transacção completada ou nada feito Consistência Os dados devem sempre cumprir as restrições impostas sobre eles no fim, mesmo que transitoriamente estas possam serem violadas Isolamento Duas transacções a correr simultaneamente: os seus efeitos devem ficar isolados. Deve acontecer tal como se só uma transacção tivesse ocorrido. Transparente ao utilizador Durable Terminada uma transacção, os seus efeitos devem perdurar, mesmo se o sistema crachar (system crash) 18

19 SQL : Transacções em SQL BEGIN WORK inicia uma transacção COMMIT WORK termina uma transacção. BD actualizada ROLLBACK WORK igualmente termina uma transacção. Semelhante a fazer um undo Por defeito, uma instrução SQL é uma transacção 19

20 SQL : Transacções em SQL Numa operação de inserção fazer LOCK na tabela: BEGIN WORK; LOCK TABLE tripulante IN SHARE MODE; SELECT id_tripulante FROM tripulante WHERE nome = Alberto Martins Lopes ; INSERT INTO folha_tripulante VALUES ( _id_, ); COMMIT WORK; Isolara tabela com a chaveprimáriano modoshare, quando se pretendeactualizarumatabelaondeala é foreign key Atenção: no standard SQlnãohálock table set transaction 20

21 SQL : Transacções em SQL Numa operação de apagar fazer LOCK na tabela com a chave primária: BEGIN WORK; LOCK TABLE filmes IN SHARE ROW EXCLUSIVE MODE; DELETE FROM commentarios_filmes WHERE id IN (SELECT id FROM filmeswhere nivel< 5); DELETE FROM filmeswhere nivel< 5; COMMIT WORK; 21

22 SQL : Transacções em SQL No standard SQL Por exemplo para a conta do seu pai no depósito dos 30 para sim, o banco terá as instruções: BEGIN WORK; UPDATE conta SET saldo = saldo -30 WHERE numero = 333; //a conta do seu pai UPDATE conta SET saldo = saldo + 30 WHERE numero = 888; // a sua conta COMMIT WORK; Se algo correr mal, o dinheiro não será posto na sua conta, mas também não será levantado da conta do seu pai 22

23 SQL : Transacções em SQL Os utilizadores (programas) só vem resultados de transacções que fizeram COMMIT E que acontece se no meio da transacção do seu pai, a sua mãe que também tem acesso a conta do seu pai fazer uma transacção e o programa de aplicação no processo dela utiliza igualmente o COMMIT? SQL tem 4 níveis de isolamento das transacções: 1. SERIALIZABLE 2. REPEATABLE READ 3. READ COMMITTED 4. READ UNCOMMITTED Compete ao programador especificar o nível de isolamento pretendido 23

24 SQL : Transacções em SQL Nível: 1. SERIALIZABLE 2. REPEATABLE READ 3. READ COMMITTED 4. READ UNCOMMITTED Escrevemos: SET TRANSACTION ISOLATION LEVEL <nivel> 24

25 SERIALIZABLE SQL : Transacções em SQL Se o programa da sessão do seu pai está a correr com o nível de isolamento SERIALIZABLE, só vai ver o seu saldo final depois a sessão da sua mãe que entrou pelo meio terminar pela sua vez. No meio delas não vai ver nada diferente do estado anterior da sua conta antes do inicio destas duas transacções feitas por dois processos concorrentes 25

26 READ COMMITTED SQL : Transacções em SQL Neste caso, é possível ver o estado parcial da conta após a primeira destas transacções serem tratadas REPETEABLE READ semelhante ao anterior a diferencia é que se um tuploé lido uma vez, então terá de ser forçosamente devolvido se a leitura for repetida 26

27 SQL : Transacções em SQL READ UNCOMMITTED Se a transacção utilizar esta opção então pode ler os dados transitórios que possam ter sido escritos por outras transacções Por exemplo, poderá ler um saldo inferior na conta, mesmo se a transacção concorrente que levantava dinheiro crashar no meio e a aplicação fazer um ROLLBACK 27

28 SQL : Transacções em SQL No caso do PostgreSQLsó existem as opções SERIALIZABLE e READ COMMITTED SERIALIZABLE Oferece um maior nível de isolamento. Faz como se as transacções tivessem sido feitas sequencialmente e não concorrentemente. READ COMMITTEDdá menos isolamento, mas é mais eficiente de implementar pelo SGBD. Pretende manter a consistência dos dados Ler sobre concurrency control no manual do PostreSQL 28

29 PostgreSQLe Php Transacções fim do módulo 29

Bases de Dados. PostgreSQL, MySQL e Php Transações. P. Serendero, 2011-13

Bases de Dados. PostgreSQL, MySQL e Php Transações. P. Serendero, 2011-13 Bases de Dados PostgreSQL, MySQL e Php Transações P. Serendero, 2011-13 PostgreSQL e Php: transações Os comandos SQL utilizados nalgumas aulas práticas e mostrados aqui foram feitos num interpretador de

Leia mais

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo CONCORRÊNCIA 1. Introdução Recursos exclusivos Não necessita controle Abundância de recursos compartilhados Controle necessário mas mínimo Harmonia, provavelmente não haverá conflito Recursos disputados

Leia mais

CONCORRÊNCIA. Buscando aumentar os níveis de concorrência redução da espera em detrimento do isolamento, a SQL definiu alguns níveis de isolamento.

CONCORRÊNCIA. Buscando aumentar os níveis de concorrência redução da espera em detrimento do isolamento, a SQL definiu alguns níveis de isolamento. CONCORRÊNCIA 1. Introdução O termo concorrência se refere ao fato de que os SGBDs em geral permitem que muitas transações tenham acesso ao mesmo banco de dados ao mesmo tempo. Em um sistema desse tipo,

Leia mais

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

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

Leia mais

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

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

Leia mais

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Transações Ver conjunto de slides na opção Transações

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

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

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

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

Leia mais

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

PHP. Hypertext Pre-Processor

PHP. Hypertext Pre-Processor PHP Hypertext Pre-Processor O que é o PHP? Uma linguagem de scripting é uma linguagem cujo código não tem de ser compilado para ser executado! O código escrito é interpretado em tempo de execução para

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

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

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

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Java na Web. Aplicações Web

Java na Web. Aplicações Web Montando o ambiente com HSQLDB JSP com um conteúdo de banco de dados: JDBC Integre JSPs com servlets aplicando o Modelo-Visualização- Controle Montando o ambiente com HSQLDB Faça a transferênci da página

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

SQL Structured Query Language

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

Leia mais

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

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

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

Apresentação de REDES DE COMUNICAÇÃO

Apresentação de REDES DE COMUNICAÇÃO Apresentação de REDES DE COMUNICAÇÃO Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos MÓDULO VII Acesso a Bases de Dados via Web Duração: 50 tempos Conteúdos (1) Conceitos

Leia mais

Sumário. Introdução a Transações

Sumário. Introdução a Transações Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos

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

Banco de Dados. Maurício Edgar Stivanello

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

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

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

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

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

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

Oracle PL/SQL Overview

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

Leia mais

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

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

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

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

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) 8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras

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

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

Bases de Dados. Parte VII Interface PHP ao MySQL

Bases de Dados. Parte VII Interface PHP ao MySQL Bases de Dados MI / LCC / LEG / LERSI / LMAT Parte VII Interface PHP ao MySQL 1 O Que é o PHP? O PHP é uma linguagem de programação especialmente desenhada para servidores web (server-side scripting language).

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

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

P L A N I F I C A Ç Ã O A N U A L

P L A N I F I C A Ç Ã O A N U A L P L A N I F I C A Ç Ã O A N U A L DEPARTAMENTO: MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS ÁREA DISCIPLINAR: 550 - INFORMÁTICA DISCIPLINA: PSI CURSO: Profissional DE: Téc. de Gestão e Programação de Sist. Informáticos

Leia mais

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos.

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. 1. Introdução aos Sistemas de Bases de Dados Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. O conceito de base de dados faz hoje parte do nosso

Leia mais

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados. PLANIFICAÇÃO DA DISCIPLINA DE SISTEMAS DE INFORMAÇÃO 12.ºH CURSO PROFISSIONAL DE TÉCNICO MULTIMÉDIA ANO LECTIVO 2013/2014 6. LINGUAGENS DE PROGRAMAÇÃO IV Pré-requisitos: - Planificar e estruturar bases

Leia mais

Programação para Android. Aula 08: Persistência de dados SQL

Programação para Android. Aula 08: Persistência de dados SQL Programação para Android Aula 08: Persistência de dados SQL Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados. Para guardar informações de forma persistente

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

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

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

Leia mais

C A P I T U L O 10 F U N Ç Õ E S I N T E R N A S P H P P A R A B A N C O D E D A D O S

C A P I T U L O 10 F U N Ç Õ E S I N T E R N A S P H P P A R A B A N C O D E D A D O S C A P I T U L O 10 F U N Ç Õ E S I N T E R N A S P H P P A R A B A N C O D E D A D O S Para desenvolver um sistema que utilizará um banco de dados, precisamos estabelecer uma conexão entre a linguagem

Leia mais

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso):

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso): TRANSAÇÕES 1. Introdução Transação Uma transação é uma unidade lógica de trabalho (processamento), formada por um conjunto de comando SQL, que tem por objetivo preservar a integridade e a consistência

Leia mais

Controle de transações em SQL

Controle de transações em SQL Transações Controle de transações em SQL Uma transação é implicitamente iniciada quando ocorre uma operação que modifica o banco de dados (INSERT, UPDATE ou DELETE). Uma transação pode terminar normalmente

Leia mais

Hugo Pedro Proença, 2007

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

Leia mais

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

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

Informática para Ciências e Engenharias 2012/13. Teórica 10

Informática para Ciências e Engenharias 2012/13. Teórica 10 Informática para Ciências e Engenharias 2012/13 Teórica 10 Na aula de hoje... Introdução aos sistemas de bases de dados (parte 2): Combinar MATLAB e SQL Um exemplo prático 2 MATLAB + SQL 3 MATLAB + SQL

Leia mais

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho. Universidade do Minho Departamento de Informática Camada de Dados - JDBC Aula 1 António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.pt 2 Camada de Dados A camada

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

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

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

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

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

Leia mais

PHP. SQL / MySQL Ligação a base de dados Selecção e visualização de registos Adicionar, Eliminar, Pesquisar e Editar registos

PHP. SQL / MySQL Ligação a base de dados Selecção e visualização de registos Adicionar, Eliminar, Pesquisar e Editar registos PHP SQL / MySQL Ligação a base de dados Selecção e visualização de registos Adicionar, Eliminar, Pesquisar e Editar registos Acesso a bases de dados com PHP 1.º - Captar os dados 2.º - Estabelecer a ligação

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

Internet e Programação Web

Internet e Programação Web COLÉGIO ESTADUAL PEDRO MACEDO Ensino Profissionalizante Internet e Programação Web 3 Técnico Prof. Cesar 2014 1 SUMÁRIO Criar sites dinâmicos em PHP --------------------------------------------------------

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

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

Passos Preliminares: Acessando a máquina virtual via ssh.

Passos Preliminares: Acessando a máquina virtual via ssh. CIn/UFPE Sistemas de Informação Redes de Computadores Professor: Kelvin Lopes Dias Monitor: Edson Adriano Maravalho Avelar {kld,eama@cin.ufpe.br Instalando o APACHE, PHP (PHPADMIN), MySQL. Este tutorial

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

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

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

Programação de Servidores CST Redes de Computadores. Marx Gomes Van der Linden

Programação de Servidores CST Redes de Computadores. Marx Gomes Van der Linden Programação de Servidores CST Redes de Computadores Marx Gomes Van der Linden Programação de Servidores Aplicações cliente/servidor para web. Fundamentos de HTML+CSS. Linguagem de programação de servidor:

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

CAPITULO 5 COMANDO DE FLUXO IF

CAPITULO 5 COMANDO DE FLUXO IF CAPITULO 5 COMANDO DE FLUXO IF Sempre que for necessária a tomada de decisão dentro de um programa, você terá que utilizar um comando condicional, pois é por meio dele que o PHP decidirá que lógica deverá

Leia mais

Programação web Prof. Wladimir

Programação web Prof. Wladimir Programação web Prof. Wladimir Linguagem PHP Cookie e Sessão @wre2008 1 Sumário Header; Cookie; Sessão; Exemplos. @wre2008 2 Header Esta função permite que um script php redirecione para outra página.

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 2

PHP INTEGRAÇÃO COM MYSQL PARTE 2 ABRIR CONEXÃO PHP INTEGRAÇÃO COM MYSQL PARTE 2 Professor: Leonardo Pereira Email: leongamerti@gmail.com Facebook: leongamerti Material de Estudo: http://www.leonti.vv.si Antes de podermos acessar informações

Leia mais

Transações Seguras em Bancos de Dados (MySQL)

Transações Seguras em Bancos de Dados (MySQL) Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o

Leia mais

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan 1 Unidade 2 Introdução a SQL 2 Leitura Obrigatória ELMASRI,

Leia mais

Oracle Comandos para Processamento de Transações

Oracle Comandos para Processamento de Transações Oracle Comandos para Processamento de Transações Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Transação Unidade lógica de trabalho contém um ou mais comandos SQL para manipulação

Leia mais

13 Conectando PHP com MySQL 13.1 Introdução

13 Conectando PHP com MySQL 13.1 Introdução 13 Conectando PHP com MySQL 13.1 Introdução Agora que você já tem uma idéia básica de comandos MySQL, poderemos ver como a linguagem PHP pode interagir com este banco de dados através de inúmeras funções.

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

SQL. Ambientes de programação O catálogo do sistema. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL. Ambientes de programação O catálogo do sistema. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Ambientes de programação O catálogo do sistema Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Usar SQL em aplicações Nas aplicações que acedem a bases e dados as instruções

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

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas; Conjunto de informações relacionadas entre si; Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas; Conjunto de Tabelas onde cada linha é um vetor de dados específico;

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais