Sistemas de Bases de Dados

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

Download "Sistemas de Bases de Dados"

Transcrição

1 Sistemas de Bases de Dados Carlos Passos nº Docente: Prof. José Júlio Alferes

2 Índice 1. INTRODUÇÃO INTRODUÇÃO HISTÓRICA E APLICABILIDADE DO SISTEMA ESTUDADO NOTAS SOBRE INSTALAÇÃO DO SISTEMA COBERTURA DO SQL EXTENSÕES PARA O STANDARD SQL DIFERENÇAS PARA O STANDARD SQL DML (DATA MANIPULATION LANGUAGE) DDL (DATA DEFINITION LANGUAGE) Restrições ARMAZENAMENTO E FILE STRUCTURE MECANISMOS DE ARMAZENAMENTO (STORAGE ENGINES) InnoDB MyISAM Memória (Memory) Merge Arquivo (Archive) Federated CSV Blackhole Example BUFFER E CACHE InnoDB Buffer Pool MyISAM Key Cache SISTEMA DE FICHEIROS Ficheiros de dados MyISAM Ficheiros de índices MyISAM PARTIÇÕES INDEXAÇÃO E HASHING ESTRUTURAS DE INDEXAÇÃO SUPORTADAS EM MYSQL ORGANIZAÇÃO DE FICHEIROS DE ÍNDICES ESTRUTURAS TEMPORARIAMENTE INCONSISTENTES HASHING PROCESSAMENTO E OPTIMIZAÇÃO DE PERGUNTAS SINTAXE DE EXPLAIN (OBTER INFORMAÇÕES SOBRE UM SELECT) OPTIMIZADOR DE CONSULTAS (QUERY OPTIMIZER) OPTIMIZAÇÕES A SELECT COM CLÁUSULA WHERE OPTIMIZAÇÕES A LEFT JOIN E RIGHT JOIN Algoritmo NESTED-LOOP JOIN Algoritmo BLOCK NESTED-LOOP JOIN Optimização do NESTED-LOOP JOIN OPTIMIZAÇÕES A ORDER BY OPTIMIZAÇÕES A GROUP BY Loose Index Scan Page 1

3 Tight Index Scan ESTIMAR O DESEMPENHO DE UMA CONSULTA VELOCIDADE DAS CONSULTAS QUE UTILIZAM SELECT GESTÃO DE TRANSACÇÕES E CONTROLO DE CONCORRÊNCIA START TRANSACTION, COMMIT E ROLLBACK SAVEPOINT E ROLLBACK TO SAVEPOINT LOCK TABLES E UNLOCK TABLES NÍVEIS DE ISOLAMENTO NÍVEIS DE LOCK Modo de Lock em InnoDB SUPORTE PARA BASES DE DADOS DISTRIBUÍDAS MYSQL REPLICATION MYSQL CLUSTER DRBD (DISTRIBUTED REPLICATED BLOCK DEVICE) OUTRAS CARACTERÍSTICAS DO SISTEMA ESTUDADO STORED ROUTINES TRIGGERS VEWS CONECTORES E APIS XML SEGURANÇA BIBLIOGRAFIA Page 2

4 1. Introdução A evolução da informática faz com que cada vez mais dados sejam armazenados, e quando são armazenados num sistema computacional, queremos recuperá-los de maneira rápida, precisa e a baixo custo, dada essa necessidade os sistemas de armazenamento de dados, base de dados, foram evoluindo de maneira rápida e deram um salto nos últimos vinte anos. A busca por sistemas que sejam mais rápidos, precisos e que automatizem o maior número de funções possíveis, foi o que gerou os modernos sistemas de gestão de base de dados. O é um dos sistemas de gestão de base de dados relacionais mais conhecido a nível mundial, e um dos mais utilizados na Internet, pois é optimizado para aplicações Web. É muito comum encontrar serviços na Internet que conjugam este sistema de base de dados,, com a linguagem PHP. Destaca-se primeiro por ser desenvolvido pela colaboração da sua comunidade, através do modelo de open source/software Livre, o que possibilita que qualquer pessoa possa estudar este sistema e modificá-lo consoante seja necessário. O também se torna popular devido à sua disponibilidade para a maior parte dos sistemas operativos, como Linux, Free BSD (e outros sistemas baseados em Unix), Windows e Mac OS X. Alguns dos principais clientes do sistema são: Alcatel, Ericsson, NASA, Google, Texas Instruments, Cox Communications, entre outros. Neste trabalho proponho-me a descrever as caracteristicas do Sistema de Gestão de Base de Dados (SGBD). Este SGBD está em constante optimização, o que é facilmente identificado pelas diversas apresentações de novas versões. Embora a versão estável recomendável seja a 5.1, este trabalho é baseado no 5.5, por ser a mais recente versão disponível. Depois de uma breve introdução histórica e algumas considerações sobre a instalação do, são descritas algumas das caracteristicas principais. No ponto 2 descrevo a cobertura do SQL não só ao nível do DDL e DML mas também sobre algumas extensões implementadas e algumas diferenças sobre o standard SQL. Os pontos 3 e 4 explicam os diferentes tipos de armazenamento e file structure e indexação, e poderão estar directamente ligados entre si devido aos diferentes motores de armazenamento suportados pelo e explicados no ponto 3, isto é, a indexação poderá estar dependente do motor de armazenamento escolhido. No ponto 5 estão mencionados processamentos e optimizações de perguntas efectuadas em instruções DML referidas no ponto 2. Page 3

5 Nos pontos 6 e 7 estão explicadas as diferentes declarações de transacções e o suporte para bases de dados distribuidas focando as replicações. Por fim no último ponto estão descritos alguns extras entre os quais os diversos conectores suportados pelo e uma breve explicação do suporte para XML Introdução histórica e aplicabilidade do sistema estudado O surgiu na década de 90 na Suécia por autoria de dois suecos e um finlandês: David Axmark, Allan Larsson e Michael "Monty" Widenius. Michael Widenius trabalhava na companhia suíça TcX, e por volta de 1979 desenvolveu uma base de dados chamada UNIREG. Em 1994, a empresa TcX começou o desenvolvimento de aplicações baseadas em Web, tendo como base de dados a UNIREG, mas cedo percebeu que a UNIREG não satisfazia as suas necessidades. Posteriormente, a companhia TcX continuou a procurar alternativas que solucionassem as necessidades da empresa, (tabelas utilizando rápidas rotinas de baixo nível (ISAM)). Entretanto pesquisaram soluções SQL já existentes, mas como não podiam suportar custos elevados como Oracle, Sybase e Informix, o msql foi o SGBD que se adequava às necessidades da empresa. A TcX passou então a utilizar o msql para as suas aplicações, mas depois de diversos testes notou-se que o msql não era rápido nem flexível o suficiente para as necessidades propostas. Para resolver esta situação o criador do msql David Hughes foi contactado com o intuito de unir o msql ao UNIREG e formar uma base de dados única que respondesse aos requisitos. Foi criada uma nova interface SQL mas com praticamente a mesma interface API do msql, API essa que foi escolhida para facilitar a portabilidade para uso com o. Em 1995, estava então criada uma nova base de dados, denominada 1.0, que satisfazia as necessidades da empresa TcX, cuja primeira versão foi lançada internamente em Maio do mesmo ano. Entretanto, a TcX disponibilizou a ferramenta na Internet, depois de pressionada por alguns dos seus parceiros de negócios. Assim adquirir esta ferramenta tornou-se mais fácil, pois adquirir a licença era mais flexível e menos dispendioso que o msql. Hoje em dia este SGBD está disponível na Internet e está implementado em muitos servidores por todo o mundo. Ao contrário de muitos projectos de software livre, o já nasceu dentro de uma empresa, a TcX Datakonsult AB. Inicialmente o era apenas parte das bibliotecas que a TcX usava em sistemas desenvolvidos sob encomenda, mas o sucesso foi tão grande que a empresa mudou de nome para AB e passou-se a dedicar a serviços de consultoria em torno da base de dados. A par disso, o evoluiu dentro da comunidade de software livre, com vários programadores importantes fora da Datakonsult / AB. No dia 16 de Janeiro de 2008, a AB, desenvolvedora do foi adquirida pela Sun Microsystems, por US$ 1 bilião, um preço jamais visto no sector das licenças livres. No dia 27 de Janeiro de 2010 a Oracle compra a Sun Microsystems e todos os seus produtos, incluindo o por US$ 7,4 biliões. Page 4

6 O é a base de dados tradicionalmente escolhida para aplicações web, é também um componente essencial do software aplicativo da web LAMP (acrónimo para Linux, Apache, e PHP). A sua popularidade está directamente relacionada à popularidade do PHP. Alguns dos mais visitados sites na internet utilizam o, incluindo Flickr, Facebook, Wikipedia, Google, Nokia e YouTube Notas sobre instalação do sistema Quando se pretende instalar o temos de ter em consideração que nem todas as plataformas são igualmente adequadas para a execução do mesmo, e a primeira acção será sempre determinar se o é compatível com o Sistema pretendido pois alguns são mais robustos e eficientes que outros. É usado o GNU autoconf, por isso é possível levar o para todos os sistemas modernos que têm um compilador C++ e um funcionamento de implementação de threads POSIX. O compila com sucesso nas seguintes combinações de sistema operativo/pacote de thread: AIX 4.x, 5.x com threads nativas. FreeBSD 5.x com threads nativas. HP-UX 11.x com threads nativas. Linux, baseia-se em todas as distribuições Linux bastante recente com glibc Mac OS X. Solaris 2.8 com threads nativas nas plataformas SPARC e x86. Windows 2000, Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 e Windows Seven. A primeira decisão a ser feita depois de determinado o sistema operativo suportado, é qual a versão a ser instalada, a versão de desenvolvimento ou a versão estável. Normalmente, quando se está a usar o pela primeira vez ou a tentar levá-lo para algum sistema para o qual não há distribuição binária, é recomendado o uso da versão estável. Atualmente, é o 5.1. Se estiver a ser usado um sistema mais antigo e pretende-se atualizar, mas não se quer correr o risco com uma atualização sem correções, deve-se actualizar para a versão mais recente na série de lançamentos da que se está a usar (onde apenas a última parte do número de versão é mais recente que a usada). Se se quiser usar os novos recursos não presentes na versão de produção da série, pode-se usar uma versão de uma série de desenvolvimento. Mas tem de se ter em atenção que as versões de desenvolvimento não são tão estáveis quanto as versões de produção. A segunda decisão a ser tomada é a distribuição a ser usada: fonte ou binária. Na maioria dos casos deve-se usar a distribuição binária, se alguma existir para o sistema operativo suportado, será normalmente muito mais fácil para instalar do que a distribuição em código fonte. Page 5

7 2. Cobertura do SQL Um dos principais objectivos com o Servidor é continuar a trabalhar de acordo com o standard SQL ANSI/ISO, mas sem sacrificar velocidade ou confiança, de qualquer modo o adiciona extensões ao standard SQL ou suporte para recursoso não SQL para aumentar o uso do por grande parte dos utilizadores. Um servidor em pode operar em diferentes modos SQL, permitindo para clientes distintos diferenciar modos de operação distintos. Esta possibilidade permite a configuração do servidor de acordo com os requisitos da aplicação. A alteração do modo de operação afecta a sintaxe que o deve suportar assim como as verificações de integridade de dados que deve executar. Esta funcionalidade torna o mais fácil de ser utilizado em ambientes onde há heterogeneidade de servidores de bases de dados. O pode ser executado em modo ANSI usando a opção --ansi quando iniciado. Esta opção faz com que a sintaxe utilizada seja o standard SQL, assim como altera o nível de isolamento para o contexto de uma transacção. É possível alterar o modo SQL para ANSI em tempo de execução utilizando a instrução: SET GLOBAL sql_mode= ansi ; no entanto, o nível de isolamento permanece o mesmo. Para tornar as alterações equivalentes resta executar: SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE; e o resultado é o equivalente à execução com --ansi Extensões para o standard SQL O fornece algumas extensões que provavelmente não se encontram em algumas bases de dados SQL. Caso sejam usadas, esse código não será portável para outros servidores SQL. Em alguns casos, pode-se escrever código que inclui extensões, mas continua portável, usando comentários da forma seguinte: / *! código específico * / Neste caso, o Server analisa e executa o código dentro do comentário, como qualquer instrução SQL, mas outros servidores SQL irão ignorar as extensões. Por exemplo, o Server reconhece a palavra-chave STRAIGHT_JOIN na seguinte afirmação, mas outros servidores poderão não reconhecer. Page 6

8 Ao adicionar um número de versão depois do caracter "!", a sintaxe dentro do comentário é executada somente se a versão do for igual ou superior ao número de versão especificado. A palavra-chave TEMPORARY no comentário que se segue é executada apenas por servidores a partir do ou superior: Lista de extensões : 1. Organização dos dados em disco. Cada base de dados está mapeada em baixo da directoria. 2. Sintaxe Geral 2.1. Strings podem ser fechadas pelo " ou ', não apenas pelo ' ; 2.2. O caracter de escape é o, \ ; 2.3. Em algumas instruções SQL podemos aceder a tabelas de outras base de dados com a sintaxe nome_bd.nome_tabela. 3. Sintaxe SQL 3.1. ANALYZE TABLE, CHECK TABLE, OPTIMIZE TABLE, e REPAIR TABLE; 3.2. CREATE DATABASE, DROP DATABASE, e ALTER DATABASE; 3.3. DO; 3.4. EXPLAIN SELECT para obter a descrição de como as tabelas são optimizadas pelo query optimizer; 3.5. FLUSH e RESET; 3.6. SET; 3.7. SHOW; 3.8. LOAD DATA INFILE. Em geral esta sintaxe é compatível com a sintaxe Oracle LOAD DATA INFILE ; 3.9. RENAME TABLE; REPLACE em vez de DELETE e depois INSERT; CHANGE nome_coluna, DROP nome_coluna, ou DROP INDEX, IGNORE ou RENAME nas instruções ALTER TABLE. Uso múltiplo de instruções ADD, ALTER, DROP, ou CHANGE nas Instruções ALTER TABLE; Uso de nomes de índice, índices sobre um prefixo de uma coluna, e o uso de INDEX ou KEY em CREATE TABLE; TEMPORARY ou IF NOT EXISTS com CREATE TABLE; IF EXISTS com DROP TABLE e DROP DATABASE; Apagar várias tabelas num único DROP TABLE; Cláusulas ORDER BY e LIMIT das instruções UPDATE e DELETE; INSERT INTO nome_tabela SET nome_coluna =...; Cláusula DELAYED das instruções INSERT e REPLACE; Cláusula LOW_PRIORITY das instruções INSERT, REPLACE, DELETE, e UPDATE; INTO OUTFILE ou INTO DUMPFILE nas instruções SELECT; Opções com STRAIGHT_JOIN ou SQL_SMALL_RESULT nas instruções SELECT; Não é necessário nomear todas as colunas seleccionadas na cláusula GROUP BY; ASC e DESC com GROUP BY, não só com ORDER BY; Permite definir variáveis com o operador de afectação :=. 4. Tipo de Dados Page 7

9 4.1. MEDIUMINT, SET, e ENUM e os vários BLOB and TEXT; 4.2. Os atributos AUTO_INCREMENT, BINARY, NULL, UNSIGNED e ZEROFILL. 5. Funções e Operadores 5.1. Para facilitar a migração de outros ambientes SQL, o suporta alias para muitas funcções; 5.2. entende os operadores e && como ou(or) e e(and); 5.3. COUNT(DISTINCT lista_valores) 5.4. Por omissão a comparação de String é case-insensitive; 5.5. O operador % equivale a MOD() ; 5.6. =, <>, <=, <, >=, >, <<, >>, <=>, AND, OR ou LIKE aplicados à lista de colunas de output, podem ser usados à esquerda do FROM, no SELECT; 5.7. A função LAST_INSERT_ID() retorna o valor mais recente do AUTO_INCREMENT; 5.8. LIKE é permitido para valores numéricos; 5.9. REGEXP e NOT REGEXP; CONCAT() ou CHAR() com um ou mais argumentos; Funções BIT_COUNT(), CASE, ELT(), FROM_DAYS(), FORMAT(), IF(), PASSWORD(), ENCRYPT(), MD5(), ENCODE(), DECODE(), PERIOD_ADD(), PERIOD_DIFF(), TO_DAYS(), e WEEKDAY(); TRIM(); Funções GROUP BY: STD(), BIT_OR(), BIT_AND(), BIT_XOR(), e GROUP_CONCAT() Diferenças para o standard SQL O tenta seguir o padrão ANSI SQL e ODBC SQL, mas o realiza operações de forma diferente em alguns casos: Existem várias diferenças entre o e o padrão de sistemas de privilégios SQL. Por exemplo, no os privilégios para uma tabela não são negados automaticamente quando se apaga uma tabela. Deve-se usar explicitamente um REVOKE para negar privilégios para uma tabela; A função CAST () não suporta a conversão para REAL ou BIGINT; Não suporta instruções SELECT INTO TABLE; Suporta Instruções UPDATE cujo comportamento difere do standard SQL, por exemplo: 2.3. DML (Data Manipulation Language) 1. SELECT: É utilizado para devolver os registros selecionados de uma ou mais tabelas, e pode incluir declarações UNION e subqueries. A instrução de SELECT suporta as cláusulas WHERE, GROUP BY, HAVING e ORDER BY (pode usar-se ASC, DESC e inclusivé NULL), assim como DUAL (como um nome de tabela dummy), * (para seleccionar todas as colunas de uma tabela), AS (alias para uma tabela), LIMIT (usada para restringir o número de linhas retornadas), INTO OUTFILE (grava os registros selecionados num arquivo) (existe ainda LOAD DATA INFILE que é o complemento de INTO OUTFILE), INTO DUMPFILE (grava apenas um registo num ficheiro, ideal para gravar um valor BLOB) e as opções DISTINCT, DISTINCTROW e ALL (especificam quando registos Page 8

10 duplicados devem ser retornados). É de salientar que numa instrução SELECT pode-se utilizar os controlos CASE, IF, IFNULL, NULLIF entre outros. A cláusula GROUP BY agrega as entre outras as funções: AVG, COUNT, MAX, MIN, STD, SUM, etc... O suporta ainda as sintaxes JOIN: INNER JOIN (utilizando as condições ON ou USING), CROSS JOIN, STRAIGHT JOIN e [NATURAL] LEFT RIGHT [OUTER] JOIN. Numa Instrucção de SELECT, o utilizador pode fornecer pistas para dar as informações optimizadas sobre como escolher indices durante um processamento. Especificando USE INDEX o utilizador diz ao para usar somente um dos índices nomeados para encontrar registos numa tabela, IGNORE INDEX serve para não usar algum índice ou índices. Outra alternativa será o FORCE INDEX, que deve ser usado apenas se não houver uma maneira de usar um dos índices dados para encontrar registos, isto porque é uma alternativa muito cara para o sistema. A instrução UNION é usada para combinar o resultado de muitas instruções SELECT num único conjunto de resultados. 2. INSERT: É utilizado para inserir novos registos numa tabela existente. A forma INSERT... VALUES insere registos baseado em valores especificados explicitamente. A forma INSERT... SELECT insere linhas seleccionadas de outra(s) tabela(s). Se for especificada a palavra DELAYED, o servidor coloca a linha ou linhas a serem inseridas num buffer, e o cliente que envia a instrução INSERT DELAYED então pode continuar. Se a tabela está ocupada, o servidor guarda a linha. Quando a tabela fica livre, começa a inserir linhas, verificando periodicamente para ver se há novos pedidos de leitura para a tabela. Se houver, a fila de linhas atrasadas é suspensa até que a tabela fique livre de novo. Esta opção é uma extensão do. Se for utilizada a expressão ON DUPLICATE KEY UPDATE, e uma linha é inserida o que causaria um valor duplicado num índice UNIQUE ou PRIMARY KEY, um UPDATE da linha antiga seria realizado. 3. UPDATE: Actualiza uma coluna em registos de tabelas existentes com novos valores. 4. DELETE: Elimina linhas de uma tabela que satisfaçam as condições dadas por pela cláusula WHERE, e retorna o número de registos eliminados. 5. Existem ainda mais instruções que servem para manipular informação, entre as quais: CALL (serve para invocar procedimentos previamente criados); DO (executa expressões mas não devolve resultados); HANDLER (fornece acesso directo a interface do mecanismo de armazenamento, está disponível para tabelas MyISAM e InnoDB); LOAD DATA INFILE (lê linhas de uma arquivo texto para uma tabela numa velocidade muito alta); REPLACE (funciona exactamente como o INSERT, excepto se um registo antigo na tabela tem o mesmo valor que um novo registo num índice UNIQUE ou PRIMARY KEY, o registo antigo é eliminado antes que o novo registo seja inserido); SUBQUERY (é uma instrução SELECT dentro de outra instrução); Page 9

11 TRUNCATE TABLE (esvazia uma tabela completamente, exige o privilégio DROP, apaga e recria a tabela, que é muito mais rápido que eliminar registos um a um, em particular para grandes tabelas) DDL (Data Definition Language) Das várias instruções de definição da estrutura de dados do é de salientar: 1. CREATE (DATABASE, EVENT, FUNCTION, INDEX, LOGFILE GROUP, PROCEDURE, SERVER, TABLE, TABLESPACE, TRIGGER, VIEW). 2. ALTER (DATABASE, EVENT, FUNCTION, LOGFILE GROUP, PROCEDURE, SERVER, TABLE, TABLESPACE, VIEW). 3. DROP (DATABASE, EVENT, FUNCTION, INDEX, LOGFILE GROUP, PROCEDURE, SERVER, TABLE, TABLESPACE, TRIGGER, VIEW). 4. RENAME (DATABASE, TABLE). O suporta ainda os tipos de CONSTRAINTs PRIMARY KEY, UNIQUE e FOREIGN KEY. Todas estas instruções usufruem de Standard SQL Restrições O permite trabalhar com tabelas transaccionais e não transaccionais (que não permitem rollback), como consequência o tratamento de restrições é um pouco diferente que outras Base de Dados. 1. Restrições de PRIMARY KEY / UNIQUE: Na utilização de um mecanismo de armazenamento transaccional, como InnoDB, o automaticamente fará um rollback da transacção, na utilização de um mecanismo de armazenamento não transaccionais o irá parar no registo onde ocorreu o erro e deixa os restantes registos sem processamento. 2. Restrição de dados inválidos: Por omissão o converte dados inválidos para válidos, no entanto é possível alterar o modo de SQL para seleccionar o comportamento tradicional, que é de rejeitar dados inválidos e abortar a operação; 3. Restrições de ENUM e SET: ENUM e SET oferecem uma maneira eficiente para definir as colunas que pode conter apenas um determinado conjunto de valores. Page 10

12 3. Armazenamento e file structure O suporta diversos mecanismos de armazenamento que actuam como manipuladores para diferentes tipos de tabelas. Os mecanismos de armazenamento do manipulam tabelas transaccionais como não transaccionais Mecanismos de Armazenamento (Storage Engines) Os motores de armazenamento suportados pelo 5.5 são: InnoDB Um mecanismo de armazenamento transaccional (compativel com ACID) para o com commit, rollback, e recuperação em caso de falhas para proteger os dados. O bloqueio a nível do registo do InnoDB e a leitura sem bloqueio consistente ao estilo do Oracle aumenta o desempenho e a concorrência de multi-utilizadores. InnoDB armazena os dados dos utilizadores em índices agrupados para reduzir I/O para consultas comuns, baseados em chaves primárias. Para manter a integridade dos dados, o InnoDB também suporta restrições de integridade referencial FOREIGN KEY. InnoDB foi desenvolvido para o máximo desempenho durante o processamento de grandes volumes de dados. A eficiência do CPU provavelmente não é conseguida por nenhum outro disco baseado num motor de base de dados relacional. O motor de armazenamento InnoDB mantém a sua própria área de buffer para armazenar dados e índices em memória principal. O InnoDB armazena as suas tabelas e índices numa tablespace, que pode consistir de vários ficheiros (ou partições de disco raw). É diferente das tabelas MyISAM, onde cada tabela está armazenada em ficheiros separados. As tabelas InnoDB podem ser muito grandes, mesmo em sistemas operacionais onde o tamanho dos ficheiros é limitado a 2 GB. InnoDB é usado na produção de enormes bases de dados de alto desempenho de sites. O famoso site de notícias Slashdot.org utiliza InnoDB. Mytrix, Inc. armazena mais de 1 TB de dados em InnoDB, e outro site trata uma carga média de 800 INSERTS/UPDATES por segundo em InnoDB. InnoDB é o motor de armazenamento padrão a partir do MyISAM Motor de armazenamento do mais utilizado na Web, data warehousing e outros ambientes de aplicação. MyISAM é suportado em todas as configurações do, e era o motor de armazenamento padrão antes do 5.5. Cada tabela MyISAM é armazenada no disco em três ficheiros. Os ficheiros têm nomes que começam com o nome da tabela e tem uma extensão para indicar o tipo de arquivo. Um ficheiro.frm guarda o formato da tabela. O ficheiro de dados tem um.myd (MYData) de extensão. O ficheiro de indices tem um.myi (MYIndex) de extensão. Todos os dados são armazenados com o byte mais baixo primeiro. Isso torna o PC e o sistema operacional independentes. Page 11

13 Todos os valores numéricos são armazenados com o byte mais alto primeiro para permitir a melhor compactação do índice. Ficheiros grandes (até 63-bit de comprimento) são suportados em sistemas de ficheiros e sistemas operacionais que suportam ficheiros grandes Memória (Memory) Armazena todos os dados na memória RAM para um acesso extremamente rápido em ambientes que exigem pesquisas rápidas de referência e outros dados similares. Este motor era conhecido anteriormente como o motor de HEAP. Cada tabela de Memória está associada a um ficheiro do disco. O nome do ficheiro começa com o nome da tabela e tem uma extensão.frm para indicar que ele armazena a definição da tabela. Como indicado pelo nome, as tabelas são armazenadas na memória. Elas usam índices hash por defeito, o que as torna muito rápidas, e muito úteis para criar tabelas temporárias. No entanto, quando o servidor é desligado, todos os registos armazenados em tabelas de memória são perdidos. Mas as tabelas continuam a existir, pois as suas definições são armazenadas em ficheiros.frm no disco, mas estão vazias quando o servidor for reiniciado. O espaço para as tabelas de Memória é alocado em pequenos blocos. As tabelas usam 100% hash dinâmico para inserções. Não é necessário espaço extra, nem mesmo para listas livres. Os registos eliminados são colocados numa lista encadeada e são reutilizados quando se insere novos dados na tabela. As tabelas em memória não têm problemas associados com eliminações mais inserções em tabelas hash. O mecanismo de armazenamento Memória implementa ambos os índices HASH e BTREE Merge Permite a um DBA ou programador agrupar logicamente uma série de tabelas MyISAM idênticas e referenciá-las como um objecto. Bom para ambientes VLDB, tais como data warehousing Arquivo (Archive) Fornece a solução perfeita para armazenar e aceder a grandes quantidades de dados históricos raramente referenciados, arquivados, ou informações de auditoria de segurança. Quando se cria uma tabela de Arquivo, o servidor cria um ficheiro do formato da tabela no diretório da base de dados. O ficheiro começa com o nome da tabela e tem uma extensão.frm. O mecanismo de armazenamento cria outros arquivos, todos com nomes que começam com o nome da tabela. O ficheiro de dados tem uma extensão.arz O motor Arquivo suporta INSERT e SELECT, mas não DELETE, REPLACE, ou UPDATE. Dá suporte a operações ORDER BY, colunas BLOB, e basicamente a todos os tipos de dados geográficos. O motor Arquivo usa bloqueamento ao nível do registo. Page 12

14 Federated Possibilita a capacidade de ligação entre várias bases de dados separadas para criar uma base de dados lógica de vários servidores físicos. Muito bom para ambientes distribuídos CSV Este motor de armazenamento guarda a informação em ficheiros de texto separando os atributos com vírgulas. Esta forma de guardar os dados permite uma fácil troca de dados entre programas que tenham a possibilidade de importar e exportar ficheiros neste formato Blackhole O motor de armazenamento Blackhole não guarda nenhuma informação apesar de aceitar as inserções e não retorna nenhum resultado de queries. Esta funcionalidade tem especial interesse do ponto de vista das bases de dados distribuídas, onde existe replicação automática de dados, e neste caso nenhuma cópia local é mantida Example Este motor de armazenamento não desempenha nenhuma tarefa. É apenas um esboço que serve de exemplo ao desenvolvimento de novos motores, ilustrando a forma de escrever o código. Tem apenas interesse para programadores Buffer e Cache Embora o disponibilize vários mecanismos de armazenamento, neste relatório apenas serão visados o InnoDB e o MyISAM por serem os mais relevantes. usa várias estratégias para guardar informação em buffers de memória para aumentar a performance. Dependendo da arquitectura da base de dados, o tamanho e a organização dos buffers de memória têm de ser balanceados com a finalidade de proporcionar os melhores benefícios sem gastar memória e exceder a memória disponível InnoDB Buffer Pool O mecanismo de armazenamento InnoDB mantém uma área de armazenamento chamada Buffer Pool para guardar dados e índices em memória. Normalmente define-se o tamanho do Buffer Pool tão grande quanto o necessário, deixando memória suficiente para outros processos. Quanto maior a Buffer Pool mais o InnoDB actua como uma base de dados na memória, lendo a primeira vez do disco e as restantes leituras da memória. O Buffer Pool também guarda dados alterados por instruções de INSERT e UPDATE para que a escrita no disco possa ser agrupada para uma melhor performance. Page 13

15 Pode se definir o modo como o Buffer Pool escolhe quais blocos que guarda na memória, que vão enchendo, para manter os dados mais acedidos na memória, apesar de picos repentinos de actividade para operações, como backups. Com sistemas de 64-bit com grande tamanho de memória, o Buffer Pool pode ser dividido em múltiplas partes para minimizar a contenção para as estruturas de memória entre as operações simultâneas. O InnoDB gere a Pool como uma lista usando o algoritmo least recently used (LRU) MyISAM Key Cache Para minimizar os acessos ao disco, o mecanismo de armazenamento MyISAM explora uma estratégia que é utilizada por muitas SGBD, usando um mecanismo que mantem os blocos mais frequentemente acedidos na memória. Para índices de blocos é mantida uma estrutura especial que se chama Key Cache ou Key Buffer, esta estrutura contém o numero de block buffers onde os índices de blocos são guardados. Para blocos de dados, o não usa uma cache especial, baseia-se na cache do sistema operativo Sistema de Ficheiros No todos os ficheiros de dados são guardados dentro da directoria Data da directoria, por cada base de dados criada é criada uma sub-directoria por baixo da directoria Data. O InnoDB armazena as suas tabelas e índices numa tablespace, que pode consistir de vários ficheiros. É diferente das tabelas MyISAM, onde cada tabela está armazenada em ficheiros separados. Cada tabela MyISAM é armazenada no disco em três ficheiros, os ficheiros têm nomes que começam com o nome da tabela e tem uma extensão para indicar o tipo de arquivo: um ficheiro.frm guarda o formato da tabela; o ficheiro de dados tem um.myd (MYData) de extensão; o ficheiro de indices tem um.myi (MYIndex) de extensão. Tanto os mecanismos de armazenamento InnoDB e MyISAM não suportam multitable clustering Ficheiros de dados MyISAM Características de tabelas Estáticas (Tamanho Fixo) Este é o formato padrão no MyISAM, é usado quando a tabela não contém colunas do tipo VARCHAR, BLOB, ou TEXT. Este é o formato mais e simples e seguro. É também o mais rápido dos formatos em disco. A velocidade vem da facilidade de se encontrar dados no disco. Procurar por algo com um índice no formato estático é muito simples. Apenas multiplicar o número de linhas pelo seu tamanho Características de tabelas dinâmicas Este formato é usado se a tabela contém colunas do tipo VARCHAR, BLOB ou TEXT ou se as tabelas são criadas com ROW_FORMAT=dynamic. Page 14

16 Este formato é um pouco mais complexo porque cada linha tem que ter um cabeçalho que diz o seu tamanho. Um tuplo também pode acabar em mais de um local quando fica maior em uma actualização. Pode-se utilizar OPTIMIZE tabela ou myisamchk para desfragmentar uma tabela. Se se tiver dados estáticos que se acedem/alteram com muita frequência na mesma tabela, pode ser uma boa ideia mover as colunas dinâmicas para outra tabela para evitar fragmentação Ficheiros de índices MyISAM Os ficheiros de índices são mais complexos que os ficheiros de dados. Estes ficheiros estão divididos em cabeçalho e key values Partições O suporta mecanismos de partições, os vários tipos de particionamento que estão disponíveis no 5.5 são: RANGE: Atribui linhas divisórias com base nos valores da coluna, caindo dentro de um determinado intervalo. LISTA: Similar a RANGE, excepto que a partição é seleccionada com base em colunas correspondendo a um conjunto de valores discretos. HASH: Uma partição é selecionada com base no valor devolvido por uma expressão definida pelo utilizador que opera nos valores das colunas em linhas a serem inseridas na tabela. A função pode consistir em qualquer expressão válida em que devolva um valor inteiro não negativo. KEY: Parecido com HASH, excepto que apenas uma ou mais colunas a serem avaliadas são oferecidas, e o servidor fornece a sua própria função hash. Estas colunas podem conter diferentes tipos de valores, para além de inteiros, desde que a função hash fornecida pelo garanta um resultado inteiro, independentemente do tipo de dados da coluna. Page 15

17 4. Indexação e hashing Os índices são utilizados para acelerar o acesso aos dados pretendidos. Sem um índice o deve começar por ler a primeira linha e percorrer a tabela inteira para encontrar os registos relevantes. Quanto maior a tabela, maior será o custo. Se a tabela tem um índice para as colunas em questão, o pode determinar rapidamente a posição para procurar no meio do ficheiro de dados sem ter de olhar para todos os dados. Se uma tabela possui 1000 registos, isto é pelo menos, 100 vezes mais rápido do que a leitura sequencial. Se precisar aceder à maioria das linhas, é mais rápido ler sequencialmente, porque minimiza a procura no disco Estruturas de Indexação suportadas em Existem vários tipos de índices disponíveis no MySql: índices normais- são o tipo de índices mais básicos, e não possuem restrições tais como a unicidade; índices únicos (UNIQUE INDEX) semelhantes aos índices normais mas com uma diferença, todos os valores do ou dos campos indexados apenas podem aparecer uma vez; chaves primárias (PRIMARY) índices únicos com nome PRIMARY e com a particularidade de serem únicos por tabela; índices FULLTEXT usados pelo MySql para pesquisas em campos de texto, apenas suportaso pelo MyISAM. Um ponto importante é a escolha dos campos onde criar os índices. Existem dois locais fulcrais para a sua criação: campos referenciados na clausula WHERE; campos usados na clausula JOIN. O apenas utiliza índices para comparações do tipo <, <=, =,>,> =, BETWEEN, IN e em algumas do tipo LIKE. O numero máximo de índices por tabela e o tamanho máximo dos índices são definidos dependendo do mecanismo de armazenamento. O também suporta índices compostos, isto é, índices em múltiplas colunas, um índice pode consistir até 16 colunas. Um índice de composto pode ser considerado um array ordenado contendo valores que são criados concatenando valores de colunas indexadas. O uso de índices provoca um aumento do espaço ocupado em disco, como tal, a sua criação pode provocar um aumento exagerado do tamanho da informação indexada. Daí ser necessário uma avaliação para analisar se o volume de consulta é por exemplo superior ao volume de actualizações, se assim for pode justificar pois vai resultar numa melhoria de consultas de informação ao estar a informação indexada, mas por outro lado vai dificultar os pedidos de actualização da informação. Um modo de diminuir o tamanho de um ficheiro de índices é usando Page 16

18 índices a partir do prefixo dos dados de um campo do tipo BLOB ou TEXT, definindo apenas quantos caracteres devem ser usados no índice. Para verificar se todas as consultas usam os índices criados, utiliza-se a instrução EXPLAIN. A maioria dos índices do é armazenada em B-TREE. As excepções são os índices sobre os tipos de dados geográficos do mecanismo de armazenamento MyISAM que usam R- TREE, e as tabelas MEMORY que também suportam por omissão índices HASH Organização de Ficheiros de Índices O mecanismo de armazenamento MyISAM tem para cada tabela um ficheiro de índices com a extensão.myi no sistema de ficheiros, nesses ficheiros os índices são organizados usando mecanismos de indexação B-TREE. Como referido anteriormente o 5.5 suporta mecanismos de partições, os tipos de particionamento HASH e KEY organizam os dados em partições seleccionadas através de um valor obtido por uma função hash Estruturas Temporariamente Inconsistentes O utiliza a variável autocommit para gerir se as alterações nos dados tomam efeito imediatamente ou não. Por omissão as conexões começam com o modo autocommit igual a 1, que estipula que as alterações tomam efeito imediato, mas o modo pode ser alterado para igual a 0, que obriga ao uso do COMMIT para efectivar a alteração e permite o uso do ROLLBACK para cancelar. Page 17

19 4.4. Hashing As contas de utilizador do estão guardadas na tabela de utilizadores da base de dados, cada conta de utilizador tem uma senha associada, essa senha está guardada na coluna das senhas da tabela de utilizadores, na verdade o que está guardado nessas coluna não é a senha mas sim um valor hash que é processado por uma função PASSWORD(). O mecanismo de armazenamento Memory guarda os dados em memória através de uma função de hash dinâmica. A maioria das tabelas temporárias criadas pelo são tabelas baseadas em tabelas hash. Caso uma tabela caiba inteiramente em memória, o melhor modo de serem realizadas consultas sobre ela é através de índices Hash. O monitor do mecanismo de armazenamento InnoDB quando detecta que um valor de um índice é acedido frequentemente, automaticamente cria em memória uma tabela hash para esse índice, baseada nos padrões de consulta que o InnoDB observa. Page 18

20 5. Processamento e optimização de perguntas O optimizador do considera muitas técnicas para processar instruções SELECT de maneira eficiente, dependendo dos detalhes das tabelas, colunas, índices e condições da cláusula WHERE. O conjunto de operações que o optimizador escolhe para executar consultas eficientes chama-se plano de execução de consultas, mas também chamado de plano EXPLAIN Sintaxe de EXPLAIN (obter informações sobre um SELECT) O utiliza o comando EXPLAIN para obter informações sobre como o executa uma instrução SELECT. Com a ajuda de EXPLAIN, pode-se ver quando devem ser adicionados índices às tabelas para obter um SELECT mais rápido que utilize índices para encontrar os registos. Deve-se executar frequentemente ANALYZE TABLE para actualizar estatísticas de tabelas tais como a cardinalidade das chaves que podem influenciar a escolha que o optimizador faz. Também se pode ver se o optimizador une as tabelas numa melhor ordem. Para forçar o optimizador a utilizar uma ordem específica de join para uma instrução SELECT, adiciona-se uma cláusula STRAIGHT_JOIN. Para ligações mais complexas, EXPLAIN retorna uma linha de informação para cada tabela utilizada na instrução SELECT. As tabelas são listadas na ordem que seriam lidas. O soluciona todos os joins utilizando um método multi-join de varrimento simples. Isto significa que o lê uma linha da primeira tabela, depois encontra uma linha que combina na segunda tabela, depois na terceira tabela e continua. Quando todas as tabelas são processadas, ele exibe as colunas seleccionadas e recua através da lista de tabelas até que uma tabela na qual existem registos coincidentes for encontrada. O próximo registo é lido desta tabela e o processo continua com a próxima tabela Optimizador de Consultas (Query optimizer) O objectivo do optimizador de consultas do é descobrir o plano de execução óptimo para executar as instruções de SELECT. Para consultas com JOIN, o número de planos possíveis estudados pelo optimizador cresce exponencialmente com o número de tabelas referidas na consulta Optimizações a SELECT com cláusula WHERE Optimizações realizadas pelo optimizador do em instruções de SELECT com cláusulas WHERE: Remoção dos parênteses desnecessários; Resolução de constantes; Page 19

A compreensão do mecanismo de transações é essencial, sempre que a

A compreensão do mecanismo de transações é essencial, sempre que a Transações A compreensão do mecanismo de transações é essencial, sempre que a base de dados d servir várias clientes simultaneamente. Em SQL é possível definir explicitamente os limites de uma transação.

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

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

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

Leia mais

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22 Sumário Agradecimentos... 19 Sobre o autor... 20 Prefácio... 21 Capítulo 1 Bem-vindo ao MySQL... 22 1.1 O que é o MySQL?...22 1.1.1 História do MySQL...23 1.1.2 Licença de uso...23 1.2 Utilizações recomendadas...24

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

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

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

Leia mais

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

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

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

Leia mais

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

Controle de Concorrência. Banco de Dados II Profa. Késsia R. C. Marchi

Controle de Concorrência. Banco de Dados II Profa. Késsia R. C. Marchi Controle de Concorrência Banco de Dados II Profa. Késsia R. C. Marchi Transação Transação é uma unidade lógica de trabalho, envolvendo diversas operações de bancos dados. C. J. Date Uma transação inicia-se,

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

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

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

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

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

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

Leia mais

Linguagem de Consulta Estruturada (SQL)

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

Leia mais

DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS.

DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS. DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS. PROFESSOR: DOUGLAS DUARTE DISCIPLINA: LPBD 5º SEMESTRE AULA 02 MYSQL O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza

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

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

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

0 1 5 5 _ B A S E D E D A D O S P A R A I N T E R N E T ( S E R V E R S I D E )

0 1 5 5 _ B A S E D E D A D O S P A R A I N T E R N E T ( S E R V E R S I D E ) 0 1 5 5 _ B A S E D E D A D O S P A R A I N T E R N E T ( S E R V E R S I D E ) EFA NÍVEL SECUNDÁRIO TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO MULTIMÉDIA (TICM) 04-05-2011 0155_Base de dados para Internet

Leia mais

Grupo 14 Márcio Sousa (41074) Filipe Milheiro (41338) João Marques (40354)

Grupo 14 Márcio Sousa (41074) Filipe Milheiro (41338) João Marques (40354) MySql Análise de Sistema de Gestão de Base de Dados Grupo 14 Márcio Sousa (41074) Filipe Milheiro (41338) João Marques (40354) Índice Índice... 1 1. Introdução... 4 1.1 Introdução histórica e aplicabilidade

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação. O Departamento de Pesquisas da IBM desenvolveu a SQL como forma de interface para

Leia mais

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro SQL- Strutured Query Language é a linguagem mais usada nas bases dados relacionais. Originalmente desenvolvida pela IBM Actualmente é um standard, o mais recente é o SQL:2003

Leia mais

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language) SQL BÁSICO Prof. Suelane Garcia Introdução 2 Linguagem SQL (Structured Query Language) Linguagem de Consulta Estruturada padrão para acesso a Banco de Dados. Usada em inúmeros Sistemas de Gerenciamento

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

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

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

Leia mais

Sistemas de Bases De dados

Sistemas de Bases De dados Sistemas de Bases De dados Professor José Júlio Alferes Relatório desenvolvido pelo G05: António Miguel Guiomar Nº 23354 André Filipe Fidalgo Nº 23950 Bruno Filipe Faustino Nº 23969 2 Índice Capítulo 1

Leia mais

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL) CEFET.PHB - PI Prof. Jefferson Silva SQL (MySql) ROTEIRO I PARTE - INTRODUÇÃO AO SQL COMANDOS E SUAS PARTES DA LINGUAGEM SQL II PARTE ADMINSTRAÇÃO DE BANCO DE DADOS UTILIZANDO MYSQL PRINCIPAIS INSTRUÇÕES

Leia mais

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Programação SQL. Manipulação de Dados. DML Data Manipulation Language Programação SQL Manipulação de Dados DML Data Manipulation Language Manipulação de Dados (DML) Os comandos INSERT, UPDATE, DELETE, são normalmente classificados como pertencendo a uma sublinguagem da linguagem

Leia mais

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

SQL. Hélder Antero Amaral Nunes

SQL. Hélder Antero Amaral Nunes SQL Hélder Antero Amaral Nunes 2 Introdução Desenvolvida pelo departamento de pesquisa da IBM na década de 1970 (System R); Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

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

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

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

Fundamentos do Sistema Gerenciador de Banco de Dados

Fundamentos do Sistema Gerenciador de Banco de Dados Fundamentos do Sistema Gerenciador de Banco de Dados Cláudio Luís V. Oliveira Janeiro de 2010 Definição "Um sistema cujo objetivo principal é gerenciar o acesso, a correta manutenção e a integridade dos

Leia mais

Bases de Dados Distribuídas

Bases de Dados Distribuídas Introdução Devido ao ambiente de grande competitividade em que as organizações de hoje têm que actuar, estas são forçadas a distribuir-se geograficamente, procurando as condições locais mais favoráveis

Leia mais

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Consistem num conjunto de apontadores para instâncias especificas de cada relação. Mecanismo usado para mais fácil e rapidamente aceder à informação existente numa base de dados. Bases de Dados de elevadas dimensões. Consistem num conjunto de apontadores para instâncias especificas de

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

PROGRAMA. Objectivos Gerais :

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

Leia mais

Histórico de revisões

Histórico de revisões Apostila 3 Histórico de revisões Data Versão Descrição Autor 30/09/2011 1.0 Criação da primeira versão HEngholmJr CONTEÚDO Exclusão de registros Consultas por Dados de Resumo Group by / Having Funções

Leia mais

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Tarefa Orientada 12 Junção Externa, Auto-Junção e União Tarefa Orientada 12 Junção Externa, Auto-Junção e União Objectivos: Junção externa (Outer JOIN) Junção externa à esquerda (LEFT Outer JOIN) Junção externa à direita (RIGHT Outer JOIN) Junção externa completa

Leia mais

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Banco de Dados Oracle 10g: Introdução à Linguagem SQL Oracle University Entre em contato: 0800 891 6502 Banco de Dados Oracle 10g: Introdução à Linguagem SQL Duração: 5 Dias Objetivos do Curso Esta classe se aplica aos usuários do Banco de Dados Oracle8i,

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Processamento de Transações Ambiente com SGBD Distribuído Transações

Leia mais

BANCO DE DADOS II. AULA MySQL.

BANCO DE DADOS II. AULA MySQL. UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA MySQL. DISCIPLINA: Banco de Dados II PROF.: ROMULO VANZIN Data: 27/06/2014 Banco

Leia mais

Núcleo de Pós Graduação Pitágoras

Núcleo de Pós Graduação Pitágoras Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Modelagem e Projeto de Banco de Dados Especialização em Tecnologia da Informação - Ênfases Março- 2009 1 Modelo Físico Introdução

Leia mais

Junções e Índices em Tabelas

Junções e Índices em Tabelas Junções e Índices em Tabelas Prof. Fernanda Baião fernanda.baiao@uniriotec.com.br SGBD Considerados MySQL (http://www.mysql.org) SGBD gratuito e simples, sem muitos recursos avançados Fácil de instalar

Leia mais

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Número: Nome: 1 -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Exame

Leia mais

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

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

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

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

Leia mais

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Robson Fidalgo SQL SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta,

Leia mais

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 ÍNDICE o -INTRODUÇÃO Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 0.5 Sistemas Utilizados 6 0.5.1 Access 2003 (Microsoft)

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

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

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 (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

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

Leia mais

Tarefa Orientada 20 Cursores

Tarefa Orientada 20 Cursores Tarefa Orientada 20 Cursores Objectivos: Declarar cursores Utilizar cursores Utilizar funções do sistema para trabalhar com cursores Actualizar dados através de cursores Um cursor é um objecto da base

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação Enfoques de SQL Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Valeria Times Bernadette Loscio Linguagem interativa de consulta (ad-hoc): usuários podem definir consultas independente

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

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

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

Leia mais

Formação em Banco de Dados. Subtítulo

Formação em Banco de Dados. Subtítulo Formação em Banco de Dados Subtítulo Sobre a APTECH A Aptech é uma instituição global, modelo em capacitação profissional, que dispõe de diversos cursos com objetivo de preparar seus alunos para carreiras

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

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

BANCO DE DADOS Parte 4

BANCO DE DADOS Parte 4 BANCO DE DADOS Parte 4 A Linguagem SQL Introdução Desenvolvida pelo depto de pesquisa da IBM na década de 1970 (System R) Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

Leia mais

MySQL. Sistemas De Bases de Dados. Grupo 07 constituído por:

MySQL. Sistemas De Bases de Dados. Grupo 07 constituído por: Sistemas De Bases de Dados MySQL Grupo 07 constituído por: 34936 Filipe André Luís Ribeiro de Carvalho MEI 35186 Ricardo Jorge Lutas Reis Pinto MEI 35110 Roman Detynyshyn MEI Índice 1 Introdução...6 1.1

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

PostgreSQL Performance

PostgreSQL Performance PostgreSQL Performance André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) PostgreSQL Performance February 24, 2012 1 / 45 Sumário 1 Armazenamento 2 Índices

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Gerenciamento de um Sistema de

Gerenciamento de um Sistema de SBD Gerenciamento de um Sistema de Banco de Dados Prof. Michel Nobre Muza ua michel.muza@ifsc.edu.br Prof. Marcos Antonio Viana Nascimento Por que é importante: Motivação Participar na organização e no

Leia mais

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS)

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS) SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS) SQL SQL, é uma linguagem de programação que foi desenvolvida para questionar bases de dados relacionais

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

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 03 AT03 Diversos II Page 1 of 25 Indice EXEMPLOS COM GROUP BY E COM A CLÁUSULA HAVING - TOTALIZANDO DADOS... 3 GROUP BY... 3 Cláusula HAVING com GROUP BY... 5 ENTENDENDO

Leia mais

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

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

Arquitetura do MySQL. Capítulo 1. Arquitetura Lógica do MySQL

Arquitetura do MySQL. Capítulo 1. Arquitetura Lógica do MySQL Capítulo 1 Arquitetura do MySQL A arquitetura do MySQL é muito diferente da dos outros servidores de banco de dados e é útil para uma grande variedade de objetivos. MySQL não é perfeito, mas é flexível

Leia mais

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Principais Instruções em SQL Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Atenção: Esta apostila foi desenvolvida com o auxílio on-line do banco MS-ACCESS,

Leia mais

MER e Conceitos gerais

MER e Conceitos gerais MER e Conceitos gerais IBGE 1)O Modelo de Entidades Relacionamentos, segundo Paulo Cougo, descreve o mundo como:... cheio de coisas que possuem características próprias e que se relacionam entre si. Essas

Leia mais

BANCO DE DADOS CONCEITOS BÁSICOS

BANCO DE DADOS CONCEITOS BÁSICOS Universidade Federal da Paraíba UFPB Centro de Energias Alternativas e Renováveis - CEAR Departamento de Eng. Elétrica DEE BANCO DE DADOS CONCEITOS BÁSICOS Isaac Maia Pessoa Introdução O que é um BD? Operações

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

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

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

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de BD Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de informação para nosso êxito no curso. A intenção de elaborar

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 À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS Esclarecimento Licenciamento de Uso Este documento é propriedade intelectual 2012 da NRSYSTEM COMÉRCIO E SERVIÇOS DE INFORMÁTICA LTDA-ME, consiste de uma compilação de diversos materiais entre livros,

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

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

Exercícios de Lógica Exercícios de Fixação 08

Exercícios de Lógica Exercícios de Fixação 08 Exercícios Exercícios de Lógica Exercícios de Fixação 08 1. A linguagem SQL apresenta uma série de comandos que permitem a definição dos dados, chamada de DDL (Data Definition Language). Assinale a alternativa

Leia mais

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

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

Leia mais

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

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

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

CONTROLE DE CONCORRÊNCIA EM BANCO DE DADOS: Estudo de Caso Microsoft SQL Server 2008

CONTROLE DE CONCORRÊNCIA EM BANCO DE DADOS: Estudo de Caso Microsoft SQL Server 2008 CONTROLE DE CONCORRÊNCIA EM BANCO DE DADOS: Estudo de Caso Microsoft SQL Server 2008 GERALDA SILVIA DE VASCONCELOS JARDIM 1 IREMAR NUNES DE LIMA 2 Resumo: Este artigo descreve a importância do mecanismo

Leia mais

Capítulo 1. Bem-vindo ao MySQL. 1.1 O que é o MySQL?

Capítulo 1. Bem-vindo ao MySQL. 1.1 O que é o MySQL? Capítulo 1 Bem-vindo ao MySQL Olá, seja bem-vindo ao mundo do MySQL! A melhor maneira de conhecer uma ferramenta é por meio de uma leitura inicial sobre a origem, o propósito e os objetivos aos quais esta

Leia mais

Tarefa Orientada 13 Agrupamento e sumário de dados

Tarefa Orientada 13 Agrupamento e sumário de dados Tarefa Orientada 13 Agrupamento e sumário de dados Objectivos: Funções de agregação Agrupamento e sumário de dados Funções de agregação Nesta tarefa orientada iremos formular consultas que sumariam os

Leia mais