Banco de Dados para Web
|
|
- Estela Vilalobos Tavares
- 6 Há anos
- Visualizações:
Transcrição
1 Banco de Dados para Web Profa. Dra. Ligia Flávia Antunes Batista 1
2 Tópicos da aula Stored procedures Triggers Índices, otimização Transações, concorrência Segurança 2
3 Stored procedure São programas armazenados no servidor Chamados de forma explícita para executar alguma lógica de manipulação de dados Podem retornar ou não algum valor Create function possui uma cláusula RETURNS Create procedure não possui 3
4 Sintaxe CREATE [DEFINER = { user CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic...] routine_body CREATE [DEFINER = { user CURRENT_USER }] FUNCTION sp_name ([func_parameter[,...]]) RETURNS type [characteristic...] routine_body proc_parameter: [ IN OUT INOUT ] param_name type 4
5 Exemplo de procedure Chamada: call teste2('c', 1); 5
6 Restrições em stored procedures LOCK TABLES e UNLOCK TABLES. ALTER VIEW. LOAD DATA and LOAD TABLE. BEGIN [WORK] é entendido como início de um bloco BEGIN... END. Para iniciar uma transação neste contexto, use START TRANSACTION. 6
7 Triggers (gatilhos) Monitora mudanças no banco de dados Verifica condições e inicia ações Event-Condition-Action Rules Quando um evento ocorre, a condição é verificada; se for verdadeira, a ação é iniciada Transfere a regra de negócio para o SGBD 7
8 Trigger Para bancos de dados relacionais Padrão SQL; sistemas variam consideravelmente Possível uso: Manutenção de integridade Create Trigger name Before After Instead Of events [ referencing-variables ] [ For Each Row ] When ( condition ) action 8
9 Trigger Nenhum SGBD implementa o padrão exato Alguns desviam consideravelmente tanto na sintaxe quanto no comportamento MySQL Apenas Row-level Não há old/new table Apenas uma trigger por tipo de evento Problemas com encadeamento 9
10 Encadeamento: Erro de execução 10
11 Trigger Mysql Referência oficial CREATE [DEFINER = { user CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_body DDL, fica associada a uma tabela 11
12 Trigger Mysql trigger_time: Pode ser BEFORE or AFTER ativação antes ou depois da linha ser modificada. trigger_event: tipo de comando que ativa a trigger INSERT: disparado pelos comandos INSERT, LOAD DATA, e REPLACE UPDATE DELETE: comandos DELETE e REPLACE. DROP TABLE e TRUNCATE TABLE não ativam esta trigger Truncate: apaga todas as linhas de uma tabela Replace: extensão do Mysql, que pode ter o efeito apenas de insert ou também de delete se a PK já existe. 12
13 Old e new Pode-se usar as cláusulas OLD e NEW para se referir à linha que disparou a trigger; OLD.coluna refere-se a uma coluna da tabela existente antes de ser apagada ou atualizada NEW.coluna refere-se a uma coluna de uma nova linha a ser inserida ou de uma linha existente após ser atualizada Não são sensíveis ao caso 13
14 Corpo da trigger trigger_body: instruções a serem executadas quando a trigger é ativada Para vários comandos: BEGIN... END, que permitem o uso dos mesmos comandos de stored procedures Restrições em triggers:
15 Restrições em triggers Não são ativadas por ações de chave estrangeira (CASCADE) Caso de replicação baseada em linha não dispara trigger se o comando foi iniciado no mestre. Rep. Baseada em comando dispara trigger. Rep. Baseada em linha: propaga os valores alterados em cada linha Rep. Baseada em comando: repassa o comando que gerou a alteração 15
16 Restrições em triggers Comando RETURN não é permitido em triggers. Para sair de uma trigger imediatamente, deve-se usar o comando LEAVE Triggers não são permitidas em tabelas do banco mysql A trigger não detecta alterações nos metadados. A trigger opera nesse caso, com o que estava em cache, com metadados desatualizados. 16
17 Declare e Set Comando DECLARE: usado para definir variáveis em um programa local; DECLARE var_name [, var_name]... type [DEFAULT value] SET variable_assignment [, variable_assignment]... variable_assignment: user_var_name = expr [GLOBAL SESSION] system_var_name = = expr 17
18 SELECT INTO Resultados de consultas podem ser armazenados diretamente em variáveis ou pelo uso de cursor SELECT... INTO var_list Pode ser usado para gerar arquivo: SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table; Cursor: FETCH... INTO var_list. 18
19 if IF search_condition THEN statement_list [ELSEIF search_condition THEN statement_list]... [ELSE statement_list] END IF; 19
20 Exemplo A cada voto inserido na tabela votação, as colunas qtde_favor, qtde_contra e qtde_abstenções são atualizadas 20
21 Código 21
22 Exercício venda(nf, data, valor_total) itens_venda(cod, qtde, valor_item) Produto (cod, valor_unitario, descricao) Escreva 2 triggers: 1 para preencher a data atual ao inserir uma linha em venda e atribuir 0 ao valor_total 22
23 Exercício 2- Para calcular valor do item em itens_venda, buscando valor unitário em produto e multiplicando pela quantidade de itens_venda. Além disso, deve somar o valor_item de itens_venda com valor_total em venda. 23
24 Índices, Desempenho 24
25 Identificação do baixo desempenho Buscar consultas lentas Executar Profile/Explain Alterar consultas (reescrevê-las) Adicionar índices Adicionar tabelas sumário 25
26 Principais problemas Full table scans (no index) Pode ser corrigido com a criação de um índice na coluna que está sendo utilizada no where Temporary tables Filesort 26
27 Explain explain select g1.nome_col, sub.cont from coligacao g1, (select count(*) as cont, g.cod_coligacao as cod from congressista c, partido p, coligacao g where c.partido_cod_partido = p.cod_partido and p.coligacao_cod_coligacao = g.cod_coligacao group by g.cod_coligacao ) as sub where g1.cod_coligacao = sub.cod order by 2 limit
28 Detalhes do explain Tabelas são acessadas de cima para baixo Saída do explain Select Type SELECT, Union, Subquery Table Type Tipo de junção. Possible Keys Índices que o otimizador pode considerar Key = O índice que o otimizador escolheu 28
29 Detalhes do explain Ref qual coluna em qual tabela é referenciada pelo índice Rows Número de linhas verificadas para executar a consulta A multiplicação das linhas gera uma estimativa de custo da consulta 29
30 Custo 30
31 O que observar Uso de índices Coluna extra: Using filesort: para reordenar a tabela é varrida novamente Using temporary: cria uma tabela temporária para apresentar o resultado. Normalmente quando GROUP BY e ORDER by são usados com lista de colunas diferentes 31
32 Profile 32
33 Profile 33
34 Subconsulta SELECT (SELECT max(s1) FROM t2),... FROM t1 where mydate>now(); Substituir por join Outra alternativa: SELECT max(s1) FROM t2 FROM t1 where... 34
35 Desempenho Uso de INT em chaves primárias e em junções ao invés de VARCHAR Funções provocam maior lentidão 35
36 Funções 36
37 Funções 37
38 Tabelas sumário Muito usadas em data warehouse 38
39 39
40 40
41 41
42 Tabelas sumário Vantagens Significativamente mais rápidas Menor número de linhas Desvantagens Devem ser atualizadas continuamente Mais dados para armazenar 42
43 Monitoramento de consulta 43
44 Índices 44
45 Índices em Mysql Permitem acesso mais rápido aos dados Unique ou Primary Refere-se a apenas uma linha Non-Unique - Refere-se a mais de uma linha Pode ter uma ou mais colunas CREATE INDEX IDX ON TAB1(col1,col2,col3) ; Pode usar subconjunto ou substring (primeiros caracteres) CHAR, VARCHAR, BINARY, and VARBINARY CREATE INDEX PRE ON TAB1(COL1(10)) ; 45
46 Uso O índice não é usado se: A tabela tem poucas linhas O número total de linhas do índice é maior que ~10% da tabela É mais rápido fazer um full table scan sem o índice 46
47 Como índices são usados - ordenação SELECT Name from TAB1 ORDER By NAME Um índice em name pode ser usado para ordenação SELECT NAME FROM TAB WHERE NAME BETWEEN AAA and CCC ORDER By NAME ; Um índice em name pode ainda ser usado para ordenação SELECT NAME FROM TAB WHERE NAME_CITY = MIAMI ORDER By NAME ; O índice não pode ser usado Requer ordenação Às vezes é mais rápido ordenar do que usar o índice 47
48 Melhores práticas - índices Muitos índices podem tornar inserts/deletes mais lentos Para verificar: mysql>show create table tabname ; Não duplique índices em chaves compostas index key123 (col1,col2,col3) index key12 (col1,col2) <- Not needed! index key1 (col1) <-- Not needed! Use prefixos (subconjuntos) em chaves longas Melhores índices tem 16 bytes/chars ou menos Para strings longas que precisam ser indexadas, utilizarmysql MD5 para criar uma hash key e um índice na hash key MD5(str): Calculates an MD5 128-bit checksum for the string 48
49 Hash Estrutura de dados para facilitar a busca de valores longos. Pode usar lista encadeada em cada bucket 49
50 Exercício Importar tabelas do banco world Fazer consulta na tabela City Ver explain Ver: set profiling = 1; Select... show profile; 50
51 Consulta O nome das cidades que têm população > 10000, da região % Asia, que falam a língua Russian, em ordem alfabética A quantidade de cidades, agrupadas por distrito, que têm população > 10000, da região % Asia, que falam a língua Russian, em ordem de quantidade Executar com explain e show profile; 51
52 Consulta (cont.) Criar os índices abaixo: create index idx_regiao on Country (region); create index idx_language on CountryLanguage(language); Executar novamente com explain e show profiles; Verificar se o custo da 2a. Consulta mudou 52
53 TRANSAÇÕES LOCKS NÍVEIS DE ISOLAMENTO 53
54 Situação problema Saldo inicial = R$ 1000 Saldo inicial = R$ 2000 Conta C1 Conta C2 Transferência consiste em: C1 = C > DÉBITO C2 = C > CRÉDITO O que fazer quando o sistema falhar antes de completar a segunda operação (crédito)? 54
55 55
56 56
57 ACID Para assegurar a integridade dos dados, exige-se que o BD tenha as seguinte propriedades: ATOMICIDADE: Executar todas as operações ou nenhuma CONSISTÊNCIA: Execução de transação isolada preserva a consistência do BD (soma de valores preservada) 57
58 ACID ISOLAMENTO: Execução de uma transação não é afetada pela execução de outras concorrentes (como se não existissem) componente de controle de concorrência DURABILIDADE: Quando completada com sucesso, as mudanças persistem no BD mesmo se ocorrerem falhas componente de gerenciamento de recuperação Acrônimo ACID 58
59 Diferença de engine - InnoDB Transacional, implementa ACID Comportamento semelhante aos SGBD's Oracle, DB2, SQL Server, etc. Tamanho normalmente 2-3 X MyISAM, mas não com versão 5.5 do servidor MVCC (Multi-version concurrent control) = Non-blocking reads in most cases Consultas rápidas na chave primária e com range 59
60 MyISAM Forma de armazenamento mais rápido somente leitura Maioria das aplicações Web Excelente para bancos de dados de buscas na web 80/20 read/modify or higher Sem transações 60
61 MyISAM BD de relatórios / Data Warehouse Most compact data of all non-compressed engines Não implementa ACID 61
62 Transações START TRANSACTION BEGIN [WORK] COMMIT [WORK] ROLLBACK [WORK] SET autocommit = {0 1} 62
63 Exemplo START TRANSACTION; FROM table1 WHERE type=1; UPDATE table2 SET WHERE type=1; COMMIT; Quando uma transação é iniciada com Start transaction, o autocommit é desabilitado implicitamente 63
64 Exemplos Inserção de vendas e seus produtos Transferência de dinheiro (débito e crédito): 2 operações de atualização 64
65 Níveis de isolamento Padrão SQL define quatro níveis de isolamento de transação em termos de três fenômenos que devem ser evitados entre transações concorrentes. Os fenômenos não desejáveis são: 65
66 Fenômenos dirty read (leitura suja): A transação lê dados não efetivados (uncommitted) alterados por uma transação concorrente. nonrepeatable read (leitura que não pode ser repetida): A transação lê uma segunda vez os dados, e descobre que os dados foram modificados por outra transação (que os efetivou após ter sido feita a leitura anterior). phantom read (leitura fantasma): A transação executa uma segunda vez uma consulta que retorna um conjunto de linhas que satisfaz uma determinada condição de procura, e descobre que o conjunto de linhas que satisfaz a condição é diferente devido a uma outra transação efetivada recentemente.
67 Exemplo nível Repeatable read TRANSAÇÃO 1 start transaction; -- 1 update cliente set nome_cliente='ligia T1' where cod_cliente=11; -- 4 commit; -- 6 TRANSAÇÃO 2 start transaction; -- 2 SELECT * from cliente where cod_cliente=11; -- 3 SELECT * from cliente where cod_cliente=11; -- 4 não há read uncommitted SELECT * from cliente where cod_cliente=11; -- 6 não há unrepeatable read commit; -- 7
68 Níveis x fenômenos Níveis de isolamento da transação no SQL Nível de isolamento Dirty Read Nonrepeatable Read Phantom Read Read uncommitted Possível Possível Possível Read committed Impossível Possível Possível Repeatable read Impossível Impossível Possível Serializable Impossível Impossível Impossível Default Mysql
69 TRANSAÇÃO 1 set transaction isolation level serializable; -- 1 start transaction; -- 2 SELECT * from cliente where cod_cliente=11 for update; -- 5 update cliente set nome_cliente='ligia T1' where cod_cliente=11; -- 7 commit; -- 9 TRANSAÇÃO 2 set transaction isolation level serializable; -- 3 start transaction; -- 4 SELECT * from cliente where cod_cliente=11 for update; -- 6 update cliente set nome_cliente='ligia T2' where cod_cliente=11; -- 8 commit; -- 10
70 Mysql Repeatable read: todas as leituras da mesma transação lêem valores iguais à primeira leitura
71 Exemplo nível read committed TRANSAÇÃO 1 SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -- 1 start transaction; -- 2 update cliente set nome_cliente='ligia T1' where cod_cliente=11; -- 5 commit; -- 7 TRANSAÇÃO 2 SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -- 3 start transaction; -- 4 SELECT * from cliente where cod_cliente=11; -- 6 antes do commit da transação concorrente SELECT * from cliente where cod_cliente=11; -- 8 depois do commit da transação concorrente commit; -- 9
72 Exercício Fazer execução concorrente com read uncommitted
73 SET TRANSACTION SET [GLOBAL SESSION] TRANSACTION ISOLATION LEVEL { REPEATABLE READ READ COMMITTED READ UNCOMMITTED SERIALIZABLE }
74 Variáveis do servidor SELECT SET GLOBAL tx_isolation='repeatableread'; SET SESSION tx_isolation='serializable';
75 Bloqueios Compartilhado (permite consulta, mas não alteração) Exclusivo (não permite consulta nem alteração) Em nível de linha Em nível de tabela 75
76 Bloqueios e conflitos S: shared X: exclusive IS: intentional shared IX: intentional exclusive 76
77 Locks em nível de tabela LOCK TABLES tbl_name [[AS] alias] lock_type [, tbl_name [[AS] alias] lock_type]... lock_type: A session that requires locks must acquire all the locks that it needs in a single LOCK TABLES statement. While the locks thus obtained are held, the session can access only the locked tables. READ WRITE 77
78 Locks em nível de linha Select... [ FOR UPDATE LOCK IN SHARE MODE] ] Share mode: outras sessões lêem, mas não alteram, até o commit For update: outras sessões não alteram, não fazem lock in share mode e dependendo do nível de isolamento, não lêem 78
79 Deadlock Duas linhas sendo alteradas por transações concorrentes Abraço mortal, a primeira espera a segunda que espera a primeira 79
80 Exemplo deadlock TRANSAÇÃO 1 start transaction; -- 1 update cliente set nome_cliente='ligia Web t1' where cod_cliente=11; -- 3 update cliente set nome_cliente='ruth t1 ' where cod_cliente=12; -- 5 commit; -- 7 TRANSAÇÃO 2 start transaction; -- 2 update cliente set nome_cliente='ruth t1 ' where cod_cliente=12; -- 4 update cliente set nome_cliente='ligia Web t1' where cod_cliente=11; -- 6 commit;
81 Segurança 81
82 Segurança Lista de controle de acesso Conexões, consultas, operações Autenticação de um usuário em um dado host e associação com os privilégios de INSERT, UPDATE, DELETE, SELECT Mysql suporta contas anônimas Privilégio verificado antes de cada consulta 82
83 Segurança GRANT / REVOKE Concede, revoga privilégios de acesso Show grants [ for user ]; Parâmetros de conexão: usuário, senha, host 83
84 Segurança Mysql autentica usuário por host Usuário de banco é diferente de usuário de S.O. 84
85 Segurança mysql_secure_installation script Apaga o banco test Exige senha para o root Assegura que root não se conectará de servidor remoto Apaga contas anônimas Considere mudar o nome do superusuário root 85
86 Segurança 86
87 87
88 88
89 89
Linguagem SQL Restrições, Triggers e Views
FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação Linguagem SQL Restrições, Triggers e Views Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre
Leia maisInstituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba Tecnólogo em Análise e Desenvolvimento de Sistemas 1 0 Semestre de 2013 BD I Prof. Lineu Mialaret Aula 25:
Leia maisTriggers(Gatilhos) Tiago Alves de Oliveira
Triggers(Gatilhos) Tiago Alves de Oliveira tiago.alves@uemg.br Triggers (Gatilhos) Um TRIGGER ou gatilho associado a uma tabela, definido para ser disparado, respondendo a um evento em particular; Comandos
Leia maisBDII SQL TRANSAÇÃO Revisão 2
exatasfepi.com.br BDII SQL TRANSAÇÃO Revisão 2 André Luís Duarte Honra a teu pai e a tua mãe (que é o primeiro mandamento com promessa), para que te vá bem, e sejas de longa vida sobre a terra.(ef 6:2,3)
Leia maisGBC043 - 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 maisProgramando 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 maisFACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS. Prof. Erinaldo Sanches Nascimento
FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre o banco de dados. Especificar regras
Leia maisProf. Josenildo Silva
BD II (SI 587) Gatilhos (Triggers) Prof. Josenildo Silva jcsilva@ifma.edu.br Motivação Algumas rotinas precisam ser executadas antes ou depois de um determinado evento no banco de dados Motivação Regras
Leia maisFunções Definidas pelo Usuário
BD II (SI 587) Funções Definidas pelo Usuário Prof. Josenildo Silva jcsilva@ifma.edu.br Funções definidas pelo usuário Funções precisam obrigatoriamente retornar um valor Somente aceitam parâmetros do
Leia maisOracle 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 maisPCS3413. 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 maisBanco de Dados I 6 Transações e Controle de Concorrência
Banco de Dados I 6 Transações e Controle de Concorrência Grinaldo Lopes de Oliveira (grinaldo( grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas * Material com créditos
Leia maisse a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito
Bases de Dados Transacções Propriedades ACID Atomicidade se a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito Consistência a soma A+B tem de ser igual antes e depois Isolamento nenhuma
Leia maisMarcos Alexandruk Marcos Alexandruk
Marcos Alexandruk m.alexandruk@gmail.com Apresentação disponível em: www.dba.net.br/mysql.pdf Parte I: Download e Instalação MySQL - Download www.mysql.com/downloads MySQL - Download MySQL - Download MySQL
Leia maisse a transação falhar entre os 3 passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência
Bases de Dados Transacções Propriedades ACID 1 T Atomicidade i : read(a) 2 A := A 50 se a transação falhar entre os 3 write(a) passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência 5 B := B
Leia maisTabelas. Banco de Dados I MySQL
FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 5º Período Disciplina: Banco de Dados I Prof. Erinaldo Sanches Nascimento Tabelas Banco de Dados I MySQL Linguagem de Definição de
Leia maisSQL 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 maisPSI Linguagem de Definição de dados. Módulo 15
PSI Linguagem de Definição de dados Módulo 15 Objetivos de aprendizagem No final deste módulo os alunos devem ter adquirido conhecimentos, procedimentos e atitudes que lhe permitam: Criação, alteração
Leia maisSumá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 maisSistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas
DI-FCT/UNL 6 de junho de 2018 Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas Nome: Grupo 1 (7 valores) 1 a) Quais são as 4 propriedades ACID que
Leia maisBanco de Dados II. Transações (Oracle) Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.
Banco de Dados II Transações (Oracle) Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Gerenciamento de
Leia maisRestrições de Integridade Semântica
Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade
Leia maisBANCO 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 maisBD II (SI 587) Procedimentos Armazenados
BD II (SI 587) Procedimentos Armazenados Josenildo Silva jcsilva@ifma.edu.br MOTIVAÇÃO Contexto: Sistemas em 2 camadas Contexto: Sistemas em 3 camadas Problema 1: Alto volume de dados na rede Como reduzir
Leia maisDDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR
SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80
Leia maisMySql. Introdução a MySQL. Andréa Garcia Trindade
MySql Introdução a MySQL Andréa Garcia Trindade Introdução O que é Banco de Dados SGBD MYSQL Tipos de Tabelas Tipos de Dados Linguagem SQL Comandos SQL O que é um Banco de Dados? Conjuntos de dados Grupo
Leia maisAvisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova
Ciência da Computação GBC043 Sistemas de Banco de Dados Programando com SQL s Avisos Vista da segunda prova Data: 03/06 das 13:40 às 15:00h Local: sala 1B137 Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br
Leia maisSubsistema de Integridade Semântica
Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade
Leia maisSQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.
LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre
Leia maisIntrodução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos
Bases de Dados Funções e procedimentos Introdução às funções e procedimentos SQL suporta funções e procedimentos úteis com tipos de dados específicos p.ex. objectos geométricos, imagens intersecção de
Leia maisAdministração de Banco de Dados
Administração de Banco de Dados Aula 6 Prof. Marcos Alexandruk Aula 6 Estruturas lógicas do Oracle: Tabelas tabelas relacionais tabelas temporárias tabelas organizadas por índices tabelas de objetos tabelas
Leia maisSubsistema de Integridade Semântica
Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade
Leia maisBanco de Dados I Introdução SQL
Banco de Dados I Introdução SQL Frederico Queiroga fredericoqueiroga@gmail.com https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada
Leia maisAULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)
AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados
Leia maisMúltiplas Tabelas. Disciplina de Banco de Dados
Múltiplas Tabelas Uma das grandes características de um sistema de banco de dados relacional é a capacidade de interagir com múltiplas tabelas relacionadas. Precisamos lembrar que para relacionar tabelas
Leia maisBanco de dados. Conteúdo: DDL Prof. Patrícia Lucas
Banco de dados Conteúdo: DDL Prof. Patrícia Lucas O mysql MySQL Workbench é uma ferramenta de design de banco de dados visual que integra o desenvolvimento SQL, administração, design de banco de dados,
Leia maisStored Procedures e Triggers
e Triggers Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Rotinas Armazenadas Stored Procedures Exemplos Triggers Exemplos Exercícios 2 Rotinas Armazendas Rotinas Armazenadas são um conjunto de comandos
Leia maisf. Exemplo: verificar condição de aprovação de alunos
Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Semana 17 1) Expressões CASE a. Tem a mesma finalidade que nas linguagens
Leia maisTarefa Orientada 17 Scripts
Tarefa Orientada 17 Scripts Objectivos: Declaração de variáveis escalares Declaração de variáveis do tipo tabela Tabelas temporárias Estruturas Condicionais Estruturas de Repetição Tratamento de erros
Leia maisTriggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve
Triggers e Regras Fernando Lobo Base de Dados, Universidade do Algarve 1 / 21 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.
Leia maisCurso de Ciência da Computação
Curso de Ciência da Computação MATÉRIA: Banco de Dados II ASSUNTO: Triggers (Gatilhos ou automatismos) PROFESSOR: Ricardo Rodrigues Barcelar Objetivos: Apresentar a linguagem Structured Query Language
Leia maisLock. Administração de Banco de Dados
Lock Administração de Banco de Dados 1 Tópicos o Lock o Tipos de Lock o Recursos que podem ser bloqueados o Dica de Lock sobre uma Tabela o Dica de Lock em uma Sessão o Compatibilidade entre Locks 2 Lock
Leia maisSistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers
Sistemas de Informação e Bases de Dados 2012/2013 Stored Procedures e Triggers Alberto Sardinha Bibliografia MSDN http://msdn.microsoft.com 1 Funções e Procedimentos SQL suporta funções e procedimentos
Leia maisSQL (Tópicos) Structured Query Language
SQL (Tópicos) Structured Query Language ISI Introdução aos Sistemas de Informação SQL (Tópicos) 1 SQL: componentes SQL / DDL (Data Definition Language) Permite definir os Esquemas de Relação Permite definir
Leia maisCIÊNCIA E TECNOLOGIA DO RIO
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE BANCO DE DADOS II Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia
Leia maisBanco 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 maisControle de Transação
Curso: Ciência da Computação Disciplina: Banco de Dados Campus Lages Controle de Transação Prof. Edjandir C. Costa edjandir.costa@ifsc.edu.br Agenda Conceitos de transação e sistema Propriedades desejáveis
Leia maisBANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING
BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Revisão de Arquitetura C/S BD Cliente-Servidor com função distribuída Cliente Servidor Aplicativo
Leia maisUma 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 maisCONCORRÊ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 maisIntroduçã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 maisA U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )
BANCO DE DADOS GERENCIAL 1 A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S ) VIEW é uma instrução SQL que retorna dados e é salva no banco de dados com um nome, ou seja, passa a ser um objeto
Leia maisPostgreSQL. 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 maisProfessor Leonardo Larback
Professor Leonardo Larback Engines MySQL Server possui um conceito chamado de Storage Engine ou mecanismos de armazenamento, ou ainda, tipos de tabela. Através da engine selecionada, o servidor sabe como
Leia maisLista 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 maisAdministração de Banco de Dados
Administração de Banco de Dados Aula 9 Prof. Marcos Alexandruk Aula 9 Visões (Views) Visões regulares Visões materializadas Visões de objeto Uma visão (view) é uma representação lógica de uma ou mais tabelas.
Leia maisAtualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g
Pedro F. Carvalho OCP Oracle 2008.2 10g SQL Avançado Atualização e Inserção de Dados Comando INSERT Sumário Inclusão simples, inclusão de dados com SELECT Comando UPDATE Alteração simples, alteração usando
Leia maisBD II (SI 587) Transações em Banco de Dados. Prof. Josenildo Silva
BD II (SI 587) Transações em Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Nota Estes slides são adaptados de Database System Concepts, 6th Ed. Silberschatz, Korth and Sudarshan distribuídos
Leia maisOracle Database: Fundamentos de SQL e PL/SQL
Oracle University Contact Us: 0800 891 6502 Oracle Database: Fundamentos de SQL e PL/SQL Duration: 5 Days What you will learn Este curso apresenta os fundamentos de SQL e PL/SQL e as vantagens das linguagens
Leia maisFAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure
Leia maisJosé Antônio da Cunha
José Antônio da Cunha CEFET-RN Natal, 10 de maio de 2013 Auditando operações DML com OUPUT Imagine o seguinte cenário: você possui uma tabela muito importante em seu banco de dados e gostaria de implantar
Leia maisTRIGGERS Temas abordados
MYSQL TRIGGERS TRIGGERS Temas abordados 1 - Introdução ao SQL Triggers SQL Trigger é uma instrução SQL ou um conjunto de instruções SQL,que fica armazenado, é será activado ou disparado quando um evento
Leia maisTransaçõ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 maisOrientações. Transações - PostgreSQL. Relembrando: Propriedades desejáveis. Abrir Prompt de comando ROLLBACK
Ciência da Computação GBC043 Sistemas de Banco de Dados Orientações Transações - PostgreSQL Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 Executar os comandos conforme
Leia maisA 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 maisBanco 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 maisOracle 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 maisBanco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.
Banco de Dados II PL/SQL - Procedures -Cursor - Funções Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa
Leia maisIntroduçã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 maistrigger 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 maisMaterial Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque
Banco de Dados Material Teórico Procedures, Functions, Exceptions e Triggers Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Revisão Textual: Prof. Ms. Claudio Brites Procedures, Functions,
Leia maisBCD29008 Banco de dados
BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017
Leia maisACH2025. Laboratóriode Bases de Dados. SQL Oracle Asserçõese gatilhos. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO
ACH2025 Laboratóriode Bases de Dados Aula10 SQL Oracle Asserçõese gatilhos Professora: Fátima L. S. Nunes REGRAS DE INTEGRIDADE (RI) garantem que mudanças feitas no BD não resultem em inconsistência de
Leia maissaída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única
Tópicos do Curso: Introdução Listar os principais recursos do Banco de Dados Oracle 10g Apresentar uma visão geral de: componentes, plataforma de internet, servidor de aplicações e suite do desenvolvedor
Leia maisOracle Database 11g: Introdução à Linguagem SQL Novo
Oracle University Contact Us: 0800 891 6502 Oracle Database 11g: Introdução à Linguagem SQL Novo Duration: 5 Days What you will learn Neste curso, os alunos aprendem os conceitos de bancos de dados relacionais.
Leia maisNormalização: (Uma tabela muito Normalizada significa que ele é muito bem feita, e muito relacionado) 5FN (Somente 10% dos DBAs dos ADs conseguem ) A normalização de dados é uma série de passos que se
Leia maisBases de Dados. Parte VI SQL em Ambiente de Programação
Bases de Dados Parte VI SQL em Ambiente de Programação 1 SQL em Ambiente de Programação! O SQL pode ser usado de forma interactiva por utilização do interface normalmente disponibilizado pelo próprio SGBD
Leia maisBanco de Dados II. Administração do SGBD Oracle. Tablespaces, usuários, privilégios, papéis e perfis. Gustavo Dibbern Piva
Banco de Dados II Administração do SGBD Oracle. Tablespaces, usuários, privilégios, papéis e perfis. Gustavo Dibbern Piva 1 Tablespace Um tablespace é uma unidade lógica onde os dados são armazenados.
Leia maisSQL Linguagem de Definição de Dados
SQL Linguagem de Definição de Dados Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais
Leia maisBanco 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 maisPage 1. Prof. Constantino Jacob
Tópicos Introdução à SQL Definição Tipos de Operações Instrução SELECT Sintaxe básica Operações relacionais de restrição, projeção e junção Instruções DML Delete, Update e Insert Instruções DDL Create
Leia maisBancos 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 maisRápida revisão do Modelo Relacional
Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED
Leia maisSistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas
DI-FCT/UNL 6 de junho de 2018 Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas N. º : Nome: Grupo 1 (7 valores) 1 a) Quais são as 4 propriedades ACID
Leia maisIEC Banco de Dados I Aula 11 Técnicas de Programação SQL
IEC Banco de Dados I Aula 11 Técnicas de Programação SQL Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho E- mail: andre@icomp.ufam.edu.br Site: hjp://bdufam.wordpress.com Sumário
Leia maisModelo Relacional + SQL (DDL) Material elaborado pela Prof. Karin Becker
Modelo Relacional + SQL (DDL) Material elaborado pela Prof. Karin Becker Modelo Relacional Codd, E.F A relational model of data for large shared data banks. Communications of the ACM, 13(6):377-87, June
Leia maisOracle Database 10g: Fundamentos de SQL e PL/SQL
Oracle University Contact Us: 0-800-167225 Oracle Database 10g: Fundamentos de SQL e PL/SQL Duration: 5 Dias O que é que gostaria de aprender Conheça os fundamentos de SQL e PL/SQL usando o SQL Developer
Leia maisAula 03. Evandro Deliberal
Aula 03 Evandro Deliberal evandro@deljoe.com.br https://www.linkedin.com/in/evandrodeliberal Concorrência Método Sincronização Problemas: Perda de consistência Acesso a dados inconsistentes Perda de atualizações
Leia maisLaboratório de Banco de Dados. Prof. Luiz Vivacqua.
(la.vivacqua@gmail.com) Ementa Conceitos básicos Sistemas de banco de dados Relacional Visão Geral do PostGreSQL Álgebra Relacional Operadores básicos Operadores adicionais A Linguagem de Consulta Estruturada
Leia maisRECUPERAÇÃ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 maisMODELAGEM DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.
MODELAGEM DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br INTRODUÇÃO AO SQL Ferramentas brmodelo Ferramenta Case PostgreSQL versão 8 ou superior SGBD Em 1986 o
Leia maisLista de Exercícios 12 Transações
UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO SCC0141 - Bancos de Dados e Suas Aplicações Prof. José Fernando Rodrigues Júnior 2º semestre
Leia maisTriggers 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 maisMATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro
MATA60 BANCO DE DADOS Aula 10- Indexação Prof. Daniela Barreiro Claro Indexação Indexação em SQL; Vantagens e Custo dos Índices; Indexação no PostgreSQL; FORMAS - UFBA 2 de X; X=23 Indexação Sintaxe: create
Leia mais