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

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

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

Transcrição

1 Sistemas De Bases de Dados MySQL Grupo 07 constituído por: Filipe André Luís Ribeiro de Carvalho MEI Ricardo Jorge Lutas Reis Pinto MEI Roman Detynyshyn MEI

2 Índice 1 Introdução Introdução histórica Aplicabilidade do sistema Instalação do Sistema MySQL Cobertura do SQL Standards seguidos Modos SQL Extensões ao standard SQL Organização dos dados em disco Sintaxe geral da linguagem Sintaxe das declarações do SQL Tipos de Dados Funções e Operadores Data Manipulation Language (DML) Sintaxe do SELECT Sintaxe de INSERT Sintaxe do UPDATE Data Definition Language (DDL) Armazenamento e estrutura de ficheiros Tipos de storage engines Arquitectura do MySQL Server Storage Access Memcached Organização e funcionamento Alocação em memória Politicas de substituição do buffer Estatisticas do memcached Buffers no InnoDB Memcached como cache L2 de InnoDB File Organization InnoDB Características Tablespaces Tuplos Curiosidades Particionamento Indexação e Hashing Introdução Índices Índice de coluna Índice Multi-coluna Índice Parcial Índice com restrições Índice Espacial...30 Sistemas de Bases de Dados MySQL 2

3 4.2.6 Informações sobre índices Estruturas de Indexação em MySQL B-TREE R-TREE HASH Hash no InnoDB Bitmap Estruturas temporariamente inconsistentes Processamento e optimização de perguntas Optimização do servidor MySQL Compilação do servidor Tuning dos parâmetros do servidor Tuning de outros parâmetros Optimização da base de dados O que torna lenta a base de dados Modelação da base de dados Utilizar índices Utilização do comando OPTIMIZE TABLE Optimização dos pedidos Detectar os pedidos lentos Optimização das consultas com uso de índices Uso de Índices Vantagens dos Índices Custos de Índices A Escolha de Índices Índices parciais Optimização da operação Where Optimização da operação Insert Optimização do Join Variáveis e Métodos de melhorar performance Gestão de transacções e controlo de concorrência Transacções Introdução Transacções aninhadas (Nested transactions) Registo de transacções Savepoints Isolamento Tipos de Leituras Níveis de Isolamento (Isolation levels) Escolha do Nível de Isolamento Locks Introdução Lock de linhas (rows) Lock de tabelas Deadlocks Suporte para bases de dados distribuídas Introdução...47 Sistemas de Bases de Dados MySQL 3

4 7.1.1 MySQL Cluster Vantagens Desvantagens Uso recomendado DRBD Vantagens Desvantagens Uso recomendado Hearbeat MySQL Replication Vantagens Desvantagens Uso recomendado InnoDB e MySQL Replication Formatos de replicação Configuração Configuração do servidor Master Configuração de um servidor Slave Criação de um utilizador para replicação Obtenção do binary log do servidor Master Configuração final Fragmentação Criação de tabelas FEDERATED Criação de tabelas FEDERATED com CREATE SERVER Notas adicionais Outras características do MySQL MySQL e WEB PHP e MySQL XML e MySQL Triggers Eventos Stored Procedure Segurança em MySQL Privilégios em MySQL Tipos de dados possíveis Tipos numéricos Tipos de data Tipos de cadeia Conclusão Referências e Bibliografia Livro Database System Concepts Manual MySQL versão InnoDB Plugin Waffle Grid Project Página da cadeira de Sistemas de Bases de Dados MySQLi Outras referências...65 Sistemas de Bases de Dados MySQL 4

5 Sistemas de Bases de Dados MySQL 5

6 1 Introdução Este relatório, feito em grupo de três alunos, surge como componente de avaliação prática, da cadeira de Sistemas de Bases de Dados, do curso de Mestrado em Engenharia Informática, da Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa. Pretende ser um estudo de um sistema de gestão de bases de dados (SGBD), onde se pretende mostrar as mais valias que este possui, assim como as suas falhas. Tentaremos ser específicos nos temas que forem abordados mantendo, no entanto, um nível de extensão o mais breve possível, de modo a que este trabalho possa servir de um manual de acesso fácil, simples e intuitivo para qualquer pessoa não familiarizada com o sistema. Quanto ao SGBD escolhido, este foi o MySQL. Este sistema pertence à Oracle, e é um dos muitos SGBD de acesso livre disponíveis, sendo provavelmente o mais utilizado. Pelo menos desde que pertence à Oracle, que o MySQL possui tanto uma versão gratuita como uma versão paga (comercial). A Oracle criou estes dois tipos de licença para o MySQL, de modo a satisfazer tanto os utilizadores que pretendam desenvolver software livre, como os que pretendem que o seu software não esteja sujeito a ser exposto como código aberto. Este trabalho incidirá assim, sobre o estudo de MySQL, estando divido por capítulos, segundo o que foi leccionado na disciplina, estando estes ainda subdivididos em sub-capítulos de modo a facilitar a leitura do documento. Queremos deixar apenas dois reparos: 1. Como este SGBD possui vários storage engines, que serão detalhados mais à frente, tivemos que optar por um em especifico para efectuar os testes práticos no sistema, assim como para discutir qualquer pormenor, que necessitasse da escolha de um em particular. Depois de analisarmos, o storage engine escolhido foi o InnoDB, pois possui um maior leque de funcionalidades, permitindo a inserção de algo mais detalhado; 2. A versão deste sistema utilizada foi a mais estável, neste caso a versão 5.1 (mais concretamente a versão ). De qualquer modo, sempre que tal se aplique, faremos a introdução da versão em teste (versão RC [1] ), como modo de comparar as duas versões. Tal poderá ser útil se, por exemplo, alguma funcionalidade que não exista na versão estável, esteja prestes a existir, ou já exista, na versão em teste; 1.1 Introdução histórica Apresentamos de seguida uma breve história da evolução do MySQL, desde a sua criação ao estado em que se encontra actualmente O sistema MySQL foi originalmente desenvolvido nesse ano, por Michael Wildenius e David Axmark, numa tentativa de melhorar a portabilidade, assim como a rapidez das rotinas, do sistema msql [2] para um que servisse os propósito dos seus criadores; Estes foram os fundadores da empresa MySQL AB [3], empresa esta que foi, durante vários anos, a proprietária e responsável pelo continuo desenvolvimento do MySQL. [1] - Release Candidate. Versão candidata a uma possível implementação, como versão a ser lançada como estável. [2] - msql ou Mini SQL é um sistema de gestão de bases de dados, muito leve (em termos de tecnologia) e historicamente importante. [3] - Aktlebolag; Termo sueco que indica uma corporação. Sistemas de Bases de Dados MySQL 6

7 1995 Teve o primeiro lançamento interno a 23 de Maio Lançamento da versão para Windows 95 e Windows NT, a 8 de Janeiro Lançamento da versão 3.23 em Janeiro, que se encontrava em beta desde Junho de Lançamento da versão 4.0 em Março, que se encontrava em beta desde Agosto de 2002; Versão beta 4.01, desde Agosto, é adoptada pela companhia Jyoti [1] Lançamento da versão 4.1 em Outubro, que se encontrava em beta desde Junho do mesmo ano; Adicionadas as estruturas R-trees e B-trees, assim como permitir executar subqueries [2] à base de dados e ainda prepared statements [3] Lançamento da versão 5.0 em Outubro, que se encontrava em beta desde Março do mesmo ano; Adicionadas as funcionalidades extra: cursores, triggers, views, procedimentos e transacções XA A 26 de Fevereiro, a empresa Sun Microsystems adquire a empresa MySQL AB, até então detentora do desenvolvimento do MySQL; Versão 5.1 lançada a 27 de Novembro desse ano; Adicionadas as funcionalidades extra: escalonador de eventos, particionamento, plugin API, replicação baseada em tuplos e tabelas de server-log A 27 de Janeiro, a companhia Oracle adquire a Sum Microsystems, formando a Oracle and Sun. Com esta aquisição, o MySQL tornou-se ainda mais marcante a nível de utilização. Passa agora a ter vários tipos de serviços e dois tipos de licença: gratuita e comercial. Actualmente Desde Junho de 2010, que a versão 5.5 se encontra em pré-lançamento. Esperam-se melhoramentos significativos no que toca a escalabilidade com multi-core, novas opções para particionamento e suporte a novos Unicode characteres sets, entre outros. 1.2 Aplicabilidade do sistema O sistema MySQL é utilizado num vasto leque de aplicações, sendo uma popular escolha para base de dados [1] - Empresa de produção e marketing de equipamento eléctrico e hidráulico nos mais diversos sectores. [2] - Capacidade de fazer perguntas à base de dados, dentro de outras perguntas. [3] - Perguntas preparadas de tal forma, que podem ser chamadas varias vezes, com parâmetros diferentes. Sistemas de Bases de Dados MySQL 7

8 em aplicações web. É um componente central na arquitectura de software LAMP [1]. Este sistema é, assim, utilizado na maioria dos web sites mais visitados da Internet, incluindo Flickr, Facebook, Wikipedia, Google (excluindo as pesquisas), Nokia e YouTube. Também tem um papel fundamental no desenvolvimento de alguns dos projectos web mais conhecidos, como WordPress, phpbb e Drupal. 1.3 Instalação do Sistema MySQL A instalação deste sistema hoje em dia, está espalhada por múltiplas plataformas (Linux/Unix, Windows, Mac OS X), sendo que cada uma tem as suas próprias características. Assim, o MySQL disponibiliza uma interface de instalação simples de perceber e que facilita, independentemente da plataforma em que encontra, a sua instalação com sucesso. [1] - LAMP é uma tecnologia que junta num só pacote os sistemas de Linux com Apache, MySQL e PHP. Sistemas de Bases de Dados MySQL 8

9 2 Cobertura do SQL 2.1 Standards seguidos Os responsáveis pelo desenvolvimento do MySQL sempre tiveram, como um dos principais objectivos, o de garantir o cumprimento do standard [1] SQL mais actual. Assim sendo, esperam continuar a cumprir este standard, mas evitando ao máximo sacrificar rapidez ou fiabilidade. De igual modo, também não se sentem intimidados de adicionarem novas extensões ao SQL, ou de suportar funcionalidades não relacionadas com SQL, se tal aumentar significativamente a usabilidade, num vasto segmento da base de dados de utilizador. Sendo assim, o MySQL segue os seguintes standards: ANSI [2] /ISO [3] SQL, mas sem sacrificar rapidez e qualidade de código; Segue este standard desde a versão de 1992, SQL-92, passando pelas versões SQL:1999 (lançada em 1999), SQL:2003 (lançada em 2003) e pela mais recente, a versão de 2008, SQL:2008; Por sua vez, a linguagem SQL segue o standard ISO/IEC ODBC [4], níveis de 0 ao Apesar de seguirem estes standards, o MySQL adoptou as suas próprias características, resumidamente: No MySQL, ao remover-se uma tabela, os privilégios para essa tabela não são automaticamente apagados. Temos que explicitamente invocar o comando REVOKE; A função CAST() não suporta a transformação para REAL ou BIGINT; SELECT [ ] INTO TABLE não existe, sendo que o seu equivalente no MySQL é INSERT INTO [ ] SELECT [ ] ; Possui total implementação de chaves externas, apenas para o tipo de armazenamento InnoDB. Para os outros tipos, as chaves externas sofrem parsing, mas são ignoradas; O standard de SQL utiliza -- como o inicio de um comentário. O MySQL utiliza o caractere # e, a partir da versão começou a suportar uma variante do --. A variante adoptada implica a utilização de um espaço, ou nova linha, a seguir ao --. Se tal não acontecer, é interpretado como sendo um decremento. 2.2 Modos SQL O servidor de MySQL pode operar em diferentes modos, podendo aplicar um modo diferente para clientes diferentes. Estes modos controlam vários aspectos das operações, como que sintaxe SQL deve ser utilizada e que tipos de validação devem ser feitas. Os principais modos presentes no SQL são: ANSI Este modo modifica a sintaxe e o comportamento do MySQL para se comportar o mais parecido possível com o standard SQL; [1] - conjunto de normas de implementação que definem um produto. [2] - American National Standards Institute [3] - International Organization for Standardization [4] - Open Database Connectivity, providência uma interface standard para aceder a um sistema de gestão de bases de dados Sistemas de Bases de Dados MySQL 9

10 STRICT_TRANS_TABLE De uso mais notório num ambiente com transacções. Se, numa tabela transaccional, um valor não for inserido com sucesso, aborta-se toda a transacção. Se, por outro lado, a tabela for não transaccional, aborta-se o pedido se, o valor que deu erro se encontra num pedido com uma linha, ou na primeira linha de um pedido com múltiplas linhas. TRADITIONAL Neste modo o MySQL comporta-se como uma base de dados SQL tradicional. Uma descrição simplista deste modo é que, ao inserir um valor incorrecto numa coluna, retorna um erro e termina, em vez de lançar um aviso. Temos que ter, no entanto, muito cuidado ao utilizarmos este modo. Se tivermos a trabalhar num sistema de armazenamento não transaccional, como não existe o conceito de transacção, podemos acabar por fazer um INSERT ou UPDATE a uma tabela, e se retornar erro, não se consegue fazer rollback, ou seja, poderemos ter um caso em que ficam parte dos pedidos executados, pondo em risco toda a estabilidade dos dados. Para modificar o modo, quando se inicia a execução do servidor, podemos utilizar o comando mysqld com a opção --sql-mode='valor_do_modo'. O modo também pode ser modificado em tempo de execução (runtime), modificando a variável de sistema sql_mode com a seguinte instrução: SET [GLOBAL SESSION] sql_mode='valor_do_modo' 2.3 Extensões ao standard SQL Uma característica diferente que o MySQL possui, em relação ao standard SQL, é o facto de suportar extensões. Extensões estas que, provavelmente, não existirão noutros SGBDs. Ao utilizarmos estas extensões, temos que ter alguma atenção, pois o código que façamos, não ficará portável para outros servidores de SQL. Se quisermos escrever código que inclua as extensões MySQL, mantendo a sua portabilidade para outros sistemas, termos que as incluir utilizando uma espécie de comentário especifico: /*! Código especifico da extensão MySQL */ Por exemplo, no código seguinte, o MySQL processa a instrução STRAIGHT_JOIN, mas outros servidores SQL não compatíveis, simplesmente a ignoram: SELECT /*! STRAIGHT_JOIN */ col1 FROM tabela1,tabela2 WHERE [ ] Em seguida, deixamos a lista das extensões do MySQL, organizadas por categoria: Organização dos dados em disco O MySQL mapeia cada base de dados numa directoria, por baixo da directoria data e, por sua vez, cada tabela da base de dados é mapeada num ficheiro dentro dessa directoria. Esta organização tem algumas implicações, como: Os nomes, tanto da base de dados, como das tabelas, são case sensitive [1], em sistemas operativos que possuam nomes de ficheiros case sensitive; Podemos guardar, renomear, mover, apagar e copiar tabelas que estejam a ser geridas pela storage engine MyISAM. Por exemplo, podemos renomear os ficheiros.myd,.myi e.frm aos quais a tabela corresponde, que estas alterações surgiriam na própria base de dados. No entanto, aconselha-se sempre o uso dos comandos do MySQL criados para o efeito, como o caso do RENAME TABLE ou ALTER TABLE [ ] RENAME; Até à versão 5.1.6, tanto o nome da base de dados, como das suas tabelas não podiam conter os caracteres de separação de caminhos, / e \. [1] - O significado do texto difere se forem utilizadas minúsculas ou maiúsculas. Sistemas de Bases de Dados MySQL 10

11 2.3.2 Sintaxe geral da linguagem Por defeito, as strings podem ser encapsuladas utilizando e '. Se bem que, se o modo SQL ANSI_QUOTES tiver ligado, as strings passam a ser interpretadas somente se encapsuladas por ; O caractere de escape nas strings é \ ; No SQL podemos aceder a tabelas de bases de dados distintas utilizando nome_bd.nome_tabela. O MySQL não suporta tablespaces como, por exemplo, no seguinte pedido: CREATE TABLE minha_db.minha_tabela [ ] IN meu_tablespace Sintaxe das declarações do SQL ANALYZE TABLE, CHECK TABLE, OPTIMIZE TABLE e REPAIR TABLE; CREATE DATABASE, DROP DATABASE e ALTER DATABASE; DO, executa uma expressão, mas sem retornar quaisquer resultados. Semelhante a um SELECT expressao [ ], mas tem a vantagem de ser mais rápido quando não importa o resultado; EXPLAIN SELECT, para obter a descrição de como as tabelas são processadas pelo query optimizer; FLUSH e RESET. O primeiro limpa ou carrega vários caches internos utilizados pelo MySQL. O segundo é utilizado para limpar o estado de várias operações do servidor. RESET é uma versão mais forte do FLUSH. Em ambos os casos, é necessário possuir o privilégio de RELOAD; SET, atribui valores a diferentes tipos de variáveis, que afectam a operação do servidor no cliente; SHOW, possui vários formulários que providenciam informação diversa sobre as bases de dados, tabelas, colunas, ou até mesmo informação do sistema; LOAD DATA INFILE, lê linhas de um ficheiro de texto para uma tabela, a uma velocidade muito elevada; RENAME TABLE, para renomear uma tabela; REPLACE, em substituição do DELETE seguido de INSERT; CHANGE nome_coluna, DROP nome_coluna ou DROP INDEX, IGNORE ou RENAME no uso de ALTER TABLE. Também é permitido o múltiplo uso de ADD, ALTER, DROP ou CHANGE num mesmo ALTER TABLE; Uso de nomes de índice, índices no prefixo de uma coluna e uso do INDEX ou KEY no CREATE TABLE; Uso de TEMPORARY ou IF NOT EXISTS com um CREATE TABLE; Uso de IF EXISTS com DROP TABLE e DROP DATABASE; Capacidade de apagar múltiplas tabelas com um mesmo DROP TABLE; Cláusulas ORDER BY e LIMIT nos comandos UPDATE e DELETE; INSERT INTO nome_tabela SET nome_coluna = [ ], para inserir valores numa tabela; Cláusula DELAYED nas declarações de INSERT e REPLACE; Sistemas de Bases de Dados MySQL 11

12 Clausula LOW_PRIORITY nas declarações de INSERT, REPLACE, DELETE e UPDATE; Uso de INTO OUTFILE ou INTO DUMPFILE com um SELECT; SELECT com algumas opções como, STRAIGHT_JOIN ou SQL_SMALL_SESULT; Capacidade de utilizar GROUP BY, sem termos que nomear todas as colunas seleccionadas. Tal facto, origina uma melhor performance para algumas queries especificas, mas normais; Habilidade de conseguir definir variáveis numa declaração, utilizando o operador :=, por exemplo: mysql> := := COUNT(*), AS avg FROM tabela; Tal capacidade também existe noutros sistemas de gestão de bases de dados, como o caso do Oracle Tipos de Dados MEDIUMINT, SET e ENUM, assim como vários tipos de BLOB e TEXT; Atributos dos tipos de dados: AUTO_INCREMENT, BINARY, NULL, UNSIGNED e ZEROFILL Funções e Operadores De forma a tornar mais simples a um utilizador migrar de outros ambientes SQL, o servidor MySQL suporta vários estilos para muitas das funções. Por exemplo, todas as funções de string, suportam tanto a sintaxe do standard SQL, como a do ODBC; O servidor MySQL interpreta os operadores e && como sendo o OU e E lógico, como acontece na linguagem de programação C. No MySQL, e OR são sinónimos, assim como && e AND. Tendo em conta que, no standard SQL, o operador serve para concatenar strings, temos que utilizar outro modo, neste caso, a função CONCAT(); Permite o uso de COUNT(DISTINCT lista_valores), onde lista_valores é uma lista com um ou mais elementos; A comparação de strings é, por defeito, case-insensitive, com a ordem de selecção determinada pelo character set [1] corrente, que é, por defeito, o latin1 (cp1252 West European); O operador % é um sinónimo de MOD(). % é suportado para os programadores de C e por compatibilidade para com o PostgreSQL; Os operadores =, <>, <=, <, >=, >, <<, >>, <=>, AND, OR, ou LIKE, podem ser utilizados em expressões na coluna no output (à esquerda do FROM), no SELECT. Por exemplo: mysql> SELECT col1=1 AND col2=2 FROM minha_tabela; A função LAST_INSERT_ID() retorna o valor do AUTO_INCREMENT mais recente; Em valores numéricos é permitido utilizar o LIKE; Os operadores REGEXP e NOT REGEXP, que estendem os operadores de expressões regulares; Funções CONCAT() ou CHAR() pode levar um ou mais argumentos; Funções BIT_COUNT(), CASE, ELT(), FROM_DAYS(), FORMAT(), IF(), PASSWORD(), [1] - Lista de caracteres e como estes serão posteriormente transformados em código. Sistemas de Bases de Dados MySQL 12

13 ENCRYPT(), MD5(), ENCODE(), DECODE(), PERIOD_ADD(), PERIOD_DIFF(), TO_DAYS() e WEEKDAY(); Suporte para trim [1] de substrings, utilizando a função TRIM(). No standard SQL, apenas permite a remoção de um caractere de cada vez; Diversas funções de GROUP BY: STD(), BIT_OR(), BIT_AND(), BIT_XOR() e GROUP_CONCAT(); 2.4 Data Manipulation Language (DML) DML não é mais que o sub conjunto de funcionalidades do SQL que permitem manipular dados, neste caso, as suportadas pelo MySQL. Em seguida, faremos a abordagem à parte de DML coberta pelo MySQL, para o caso do SELECT, do INSERT e do UPDATE: Sintaxe do SELECT Deixamos aqui um excerto de código, que mostra o que o SELECT suporta, com todas as suas opções: SELECT [ALL DISTINCT DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] expressao_select [, expressao_select...] [FROM tabelas_referenciadas [WHERE condicao_where] [GROUP BY {nome_coluna expressao posicao} [ASC DESC],... [WITH ROLLUP]] [HAVING condicao_where] [ORDER BY {nome_coluna expressao posicao} [ASC DESC],...] [LIMIT {[offset,] num_linhas num_linhas OFFSET offset}] [PROCEDURE nome_procedimento(lista_argumentos)] [INTO OUTFILE 'nome_ficheiro' [CHARACTER SET nome_charset] opcoes_exportacao [1] - Acto de apagar de uma string um ou mais caracteres especificos. Sistemas de Bases de Dados MySQL 13

14 INTO DUMPFILE 'nome_ficheiro' INTO nome_variavel [, nome_variavel]] [FOR UPDATE LOCK IN SHARE MODE]] Sintaxe de INSERT Assim como feito para o SELECT, deixamos em seguida a lista de opções suportadas pelo INSERT, com a sua estrutura: Ou: INSERT [LOW_PRIORITY DELAYED HIGH_PRIORITY] [IGNORE] [INTO] nome_tabela [(nome_coluna,...)] {VALUES VALUE} ({expressao DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE nome_coluna=expressao [, nome_coluna=expressao]... ] INSERT [LOW_PRIORITY DELAYED HIGH_PRIORITY] [IGNORE] Ou ainda: [INTO] nome_tabela SET nome_coluna={expressao DEFAULT},... [ ON DUPLICATE KEY UPDATE nome_coluna=expressao [, nome_coluna=expressao]... ] INSERT [LOW_PRIORITY HIGH_PRIORITY] [IGNORE] [INTO] nome_tabela [(nome_coluna,...)] SELECT... [ ON DUPLICATE KEY UPDATE nome_coluna=expressao [, nome_coluna=expressao]... ] Sintaxe do UPDATE Terminamos a análise da DML, fazendo o mesmo que foi feito para o SELECT e INSERT, mas desta vez para o UPDATE: Para UPDATE a uma única tabela: UPDATE [LOW_PRIORITY] [IGNORE] tabela_referenciada SET nome_coluna1={expressao1 DEFAULT} [, nome_coluna2={expressao2 Sistemas de Bases de Dados MySQL 14

15 DEFAULT}]... [WHERE condicao_where] [ORDER BY...] [LIMIT num_linhas] Para UPDATE a múltiplas tabelas: UPDATE [LOW_PRIORITY] [IGNORE] tabelas_referenciadas SET nome_coluna1={expressao1 DEFAULT} [, nome_coluna2={expressao2 DEFAULT}]... [WHERE condicao_where] 2.5 Data Definition Language (DDL) Analogamente à DML, a DDL não é mais que as definições de SQL que permitem controlar e manipular as tabelas e as estruturas de índice. Deixamos aqui uma listagem das definições suportadas pelo MySQL, consideradas mais importantes: Suporta as expressões de ALTER, CREATE, RENAME, DROP e TRUNCATE, para alterar, criar, renomear, apagar e limpar uma tabela, respectivamente; Todos excepto o TRUNCATE, não trabalham exclusivamente sobre tabelas, são também utilizados para criar e manipular a base de dados em si, podendo alterar, criar, renomear e apagar uma base dados; Em termos de definição, o TRUNCATE é considerado como sendo DML, mas por questões de conflito com alguns storage engine transaccionais, como o caso do InnoDB, o TRUNCATE TABLE é tratado, para o propósito de logging e replicação, como sendo DDL. Contudo, as suas regras de funcionamento estão apresentadas como fazendo parte do DML. Suporta eventos. Um evento (event) é algo que acontece como, por exemplo, um update a uma tabela, de forma periódica; Utiliza ALTER, CREATE e DROP. Suporta restrições (constraints) de vários tipos: Restrições para testar violações (se ao inserir já existe, por exemplo) de chaves primárias (PRIMARY KEY) e índices únicos (UNIQUE Index); Restrição para chaves estrangeiras (FOREIGN KEY), no caso de se tratar do storage engine InnoDB; Restrições para dados inválidos, por exemplo, a inserção de um valor NULL numa coluna NOT NULL. Estas restrições só funcionam caso o modo SQL esteja em strict, como no caso do STRICT_TRANS_TABLES. No modo normal, o MySQL tenta ajustar o valor errado de input, para um que melhor se adequa à coluna onde irá ser inserido; Restrições de validação de dados em enumerações e conjuntos. Suporta triggers. Um trigger é um objecto da base de dados, associado a uma determinada tabela, que se activa quando um certo evento ocorre nessa tabela; Sistemas de Bases de Dados MySQL 15

16 Por sua vez, não suporta assertions. Uma assertion é uma condição de integridade, que tem que ser sempre cumprida. Mas tal não é de implementação obrigatória pelo standard SQL, pelo que poucos SGDBs o implementam. Por norma, pode-se atingir o mesmo efeito recorrendo a triggers; Utiliza CREATE e DROP. Suporta chaves estrangeiras, se tivermos a utilizar a storage engine InnoDB. Para as restantes não é suportado; Suporta views e updatable views. Uma vista (view) é uma conjunto de queries que, quando invocadas, produzem um conjunto de resultados. Uma vista actua como uma tabela virtual; Utiliza ALTER, CREATE e DROP. Suporta ficheiros de log por grupo (logfile group); Utiliza ALTER, CREATE e DROP. Suporta procedimentos e funções; Utiliza ALTER, CREATE e DROP. Permite a criação de servidores e tablespaces. Utiliza ALTER, CREATE e DROP. Sistemas de Bases de Dados MySQL 16

17 3 Armazenamento e estrutura de ficheiros 3.1 Tipos de storage engines Como anteriormente referido, o MySQL suporta vários motores de armazenamento (storage engines), que actuam como suporte para diferentes tipos de tabelas. Isto indica, portanto, que o MySQL não utiliza o sistema de ficheiros do sistema operativo, mas sim o seu próprio (neste caso, mais que um). Os storage engines, podem ser de dois tipos: transaccionais e não transaccionais, ou seja, aqueles que suportam transacções e os que não o fazem. Como explicado na introdução, focaremos os detalhes na engine InnoDB, mas para referência, aqui fica a listagem dos motores suportados de origem: MyISAM O storage engine por defeito, e também o mais utilizado. É suportado em todas as configurações de MySQL; InnoDB trasaction-safe e segue ACID [1]. Como suporta transacções, tem commit, rollbak e capacidade de recuperar de falhas (crashes), de modo a proteger os dados do utilizador; Memory Anteriormente denominada de HEAP engine. Guarda todos os dados em RAM, para um acesso extremamente rápido, muito útil em ambientes onde se exigem breves referências e pesquisas aos dados; Merge Possibilita agrupar várias tabelas MyISAM, referenciando-as como sendo um único objecto. Útil para grandes bases de dados, como em data warehousing [2] ; Archive Muito útil para guardar e retornar grandes quantidades de dados, que sejam raramente necessários; Federated Oferece a capacidade de ligar vários servidores físicos, numa única base de dados lógica. Muito bom para ambientes distribuídos; NDBCLUSTER (também conhecido por NDB) Usada em ambientes distribuídos, que requeiram o maior tempo de disponibilidade e uptime; não é suportada pela versão corrente do MySQL, tendo uma versão do MySQL dedicada a esta, a MySQL Cluster NDB; CSV Guarda os dados em ficheiros de texto, com os diferentes valores separados por virgulas. Útil se necessitarmos de trocar dados com outros programas que suportem formato CSV [3], como o caso do Excel, ou o equivalente do OpenOffice; Blackhole Esta storage engine, recebe dados, mas não os guarda localmente. Útil para bases de dados distribuídas onde o necessário é replicar os dados, em vez de os guardar; Example Serve apenas de interesse para programadores interessados em desenvolver novos storage engines. Pode-se criar tabelas, mas não pode ser guardado qualquer tuplo com informação, nem qualquer informação pode ser retornada dessas tabelas; IBMDB2I Desenhado com todas as capacidades transaccionais, permitindo a partilha de dados [1] - Atomicidade, Consistência, Isolamento, Durabilidade; Propriedades que garantem a fiabilidade das transacções. [2] - Base de dados utilizada para apresentação de resultados e estatísticas. [3] - Comma-Separated Values ou Character-Separated Values; Formato de ficheiro de texto, em que cada linha de uma tabela, é uma linha no ficheiro, e em que cada coluna está separada por uma virgula, ou por outro caractere. Sistemas de Bases de Dados MySQL 17

18 entre diferentes aplicações de MySQL e de aplicações em código DB2 [1] ; O MySQL tem, ainda, a capacidade de poder alterar, em runtime, o storage engine actual, assim como a de definir, para cada tabela, um motor diferente, utilizando, no caso da criação, o código seguinte: CREATE TABLE tabela (i int) ENGINE = INNODB; Ou, no caso de querermos alterar o motor definido numa tabela: ALTER TABLE tabela ENGINE = MYISAM; Pode também definir um motor por defeito para a sessão corrente, utilizando a variável storage_engine, do seguinte modo: SET storage_engine = MYISAM; 3.2 Arquitectura do MySQL Server Toda a arquitectura do MySQL está construída e pensada para acomodar, de forma simples e eficaz, um número considerável de storage engines. Como podemos constatar pela imagem 3.1, a parte dos motores está isolada do nível de armazenamento, servindo apenas como um intermediário entre este nível, e os níveis superiores da aplicação. Podemos, assim, acrescentar novos motores, sem que a parte aplicacional se preocupe com os dados, e como estes estão armazenados. Imagem Arquitectura do MySQL com storage engines [1] - Base de dados relacional, desenvolvida pela IBM. Sistemas de Bases de Dados MySQL 18

19 3.3 Storage Access Uma base de dados, acaba sempre por ser mapeada, num número diferente de ficheiros, guardados e mantidos no sistema. Estes ficheiros, são particionados em vários blocos, contendo cada bloco um número limitado de dados. O principal objectivo de um sistema de base de dados é o de minimizar o número de blocos transferidos, entre o disco e a memória, minimizando os acessos a disco e, consequentemente, melhorando a performance global do sistema. O modo de guardar os blocos em memória, é utilizando um buffer, sendo o subsistema responsável por alocar espaço no buffer, denominado de buffer manager. Cada um dos storage engines tem a sua própria politica de gestão do buffer, no caso especifico do InnoDB, o nome dado é buffer pool. De qualquer modo, existe uma cache extra que pode ser configurada, para ser utilizada juntamente com o MySQL. Esta cache, ou buffer, é denominada de memcached, e surge como sugestão, quando é necessário uma alta escalabilidade e uma menor carga sobre o servidor Memcached Esta cache é muito simples, mas possui uma alta escalabilidade. Utiliza a RAM disponível no sistema para guardar dados e objectos por chave, de forma a estes serem acedidos de um modo muito rápido, pelas aplicações. O objectivo de se utilizar memcached, é o de diminuir a carga sobre o servidor, diminuindo os acessos à base de dados e, por sua vez, ao sistema de ficheiros. Por ser altamente escalável e distribuída, podemos ter vários servidores a partilharem RAM, fazendo parte de um grupo de cache. Uma das grandes desvantagens de se utilizar este sistema, assim como qualquer outro que guarde dados em RAM, é que os dados não são persistentes. Teremos que ter cuidado, só utilizando a cache para guardar informação que, em caso de perda, possa ser recarregada a partir da base de dados MySQL Organização e funcionamento Como disponibilizada no manual, deixamos aqui a arquitectura do sistema de memcached: Imagem Arquitectura do memcached Sistemas de Bases de Dados MySQL 19

20 Qualquer cliente pode aceder a um dos servidores de memcached disponíveis, pedindo uma dada chave, de modo a obter o seu valor. O objectivo de uma aplicação que utilize memcached é o de, primeiro aceder à cache, verificando se a informação que necessita se encontra ai disponível, acedendo, caso contrário, à base de dados propriamente dita. A maneira do memcached funcionar, como já referida anteriormente, é através de um sistema simples de chave/valor, recorrendo a uma função de hash que, retornando sempre o mesmo valor, aplicado a um mesmo objecto, consegue organizar os objectos por servidores. O seu funcionamento está bem explicito no fluxograma abaixo: Imagem Funcionamento do memcached Por defeito, o memcached utiliza a seguinte configuração: Aloca 64MB de memória ao sistema; Suporta um máximo de 1024 conexões em simultâneo; O tamanho máximo, por defeito, de uma chave, é de 250 bytes. Em seguida, fica a explicação de como o memcached faz a alocação em memória do que necessita, assim como as politicas de substituição do buffer que utiliza Alocação em memória No memcached, a memória não é automaticamente alocada ao sistema. Em vez disso, este sistema só começa a reservar memória física, quando começar a existir informação para guardar na cache. De modo a optimizar a utilização da memória e prevenir a fragmentação da mesma, Sistemas de Bases de Dados MySQL 20

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

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

Sistemas de Bases de Dados

Sistemas de Bases de Dados Sistemas de Bases de Dados Carlos Passos nº 32387 Docente: Prof. José Júlio Alferes Índice 1. INTRODUÇÃO... 3 1.1. INTRODUÇÃO HISTÓRICA E APLICABILIDADE DO SISTEMA ESTUDADO... 4 1.2. NOTAS SOBRE INSTALAÇÃ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

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

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

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

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

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

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

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

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

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

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

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

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

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

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

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

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

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

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

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

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

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

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

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

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

Relatório de análise do Sistema de Gestão de Base de Dados

Relatório de análise do Sistema de Gestão de Base de Dados Departamento de Informática Relatório de análise do Sistema de Gestão de Base de Dados G02 Mestrado em Engenharia Informática Sistemas de Base de Dados - 2010/2011 André Simões ( n o 34920 ) Miguel Alves

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

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction Bases de Dados II 6638: BSc in Information Systems and Technologies Cap. 1 Module Introduction Objectivos O propósito e a origem da arquitectura de base de dados a três níveis. O conteúdo dos níveis externo,

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

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

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

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

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

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

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

SQL - Criação de Tabelas

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

Leia mais

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

Administração e Optimização de BDs

Administração e Optimização de BDs Departamento de Engenharia Informática 2010/2011 Administração e Optimização de BDs Mini-Projecto 1 2º semestre A resolução deve ser claramente identificada com o número de grupo e entregue sob a forma

Leia mais

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL Linguagem SQL Sub-linguagem DDL 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 Language para suas

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

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

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

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo. Banco de Dados StructuredQuery Language- SQL Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.com 2015 A Origem Em 1970, Ted Codd (pesquisador da IBM) publicou o primeiro

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

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

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

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

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

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 SQL (Parte I)

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

Leia mais

Linguagem SQL Parte I

Linguagem SQL Parte I FIB - Centro Universitário da Bahia Banco de Dados Linguagem SQL Parte I Francisco Rodrigues Santos chicowebmail@yahoo.com.br Slides gentilmente cedidos por André Vinicius R. P. Nascimento Conteúdo A Linguagem

Leia mais

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127 Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

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

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

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

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

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

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

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

Leia mais

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre BANCO DE DADOS BANCO DE DADOS Prof. Patrícia Lucas 3º Trimestre ROTEIRO PARA O 3º TRIMESTRE 1. O MySQL DDL SQL 1. Como funciona o MySQL 2. Como criar um banco de dados no MySQL 3. Como criar tabelas: comandos

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

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

Armazenamento e Estruturas de Indexação

Armazenamento e Estruturas de Indexação Departamento de Informática Data: 3 de Dezembro de 2011 Grupo: 16 Armazenamento e Estruturas de Indexação Trabalho Final Sistemas de Base de Dados João Barbosa Nº38060 João Santos Nº35104 Tânia Leitão

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 4) Clodis Boscarioli Agenda: Indexação em SQL; Vantagens e Custo dos Índices; Indexação no PostgreSQL; Dicas Práticas. Índice em SQL Sintaxe:

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

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

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

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos. Banco de Dados O que é um Banco de Dados? Este assunto é muito vasto, tentaremos resumi-lo para atender as questões encontradas em concursos públicos. Já conhecemos o conceito de dado, ou seja, uma informação

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

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

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

Guia de Consulta Rápida. MySQL 5. Juliano Niederauer Rubens Prates. Novatec Editora

Guia de Consulta Rápida. MySQL 5. Juliano Niederauer Rubens Prates. Novatec Editora Guia de Consulta Rápida MySQL 5 Juliano Niederauer Rubens Prates Novatec Editora Copyright 2006 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida

Leia mais

André Milani. Novatec

André Milani. Novatec André Milani Novatec Sumário Agradecimentos...19 Sobre o autor...21 Prefácio...23 Capítulo 1 Bem-vindo ao PostgreSQL...25 1.1 O que é o PostgreSQL?...25 1.1.1 História do PostgreSQL...26 1.1.2 Licença

Leia mais

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

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

Leia mais

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com BANCO DE DADOS WEB AULA 4 linguagem SQL: subconjuntos DCL, DDL e DML professor Luciano Roberto Rocha www.lrocha.com O que é SQL? Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL,

Leia mais

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL BANCO DE DADOS 2 SQL (CREATE TABLE, CONSTRAINTS, DELETE, UPDATE e INSERT) Prof. Edson Thizon SQL SQL ( structured query language ) é uma linguagem comercial de definição e manipulação de banco de dados

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

SQL (Linguagem de Consulta Estruturada)

SQL (Linguagem de Consulta Estruturada) SQL (Linguagem de Consulta Estruturada) M.Sc. Cristiano Mariotti mscmariotti@globo.com Introdução à SQL 1 Visão Geral Introdução Comandos de Definição de Dados Comandos de Manipulação de Dados Introdução

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

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

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

Leia mais

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

Definida pelo American National Standard Institute (ANSI) em 1986

Definida pelo American National Standard Institute (ANSI) em 1986 2.3. Linguagens Relacionais SQL Structured Query Language Linguagem para o modelo relacional: Definida pelo American National Standard Institute (ANSI) em 1986 Adoptada em 1987 como um standard internacional

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

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

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes Banco de dados 1 Linguagem SQL DDL e DML Professor: Victor Hugo L. Lopes Agenda: Introdução à linguagem de dados; DDL; DML; CRUD; Introdução à linguagem SQL. 2 Por que precisamos da linguagem SQL? A algebra

Leia mais

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

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

Leia mais

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

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

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011 BASES DE DADOS I LTSI/2 Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011 A Linguagem SQL As raízes da linguagem SQL remontam a 1974, altura em que a IBM desenvolvia

Leia mais

Minicurso3 Introdução ao Banco de Dados MySQL

Minicurso3 Introdução ao Banco de Dados MySQL I Workshop de Informática INFO-BAIANO 12 a 13 de nov. de 2011 Minicurso3 Introdução ao Banco de Dados MySQL Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Leia mais

Unidade 5 Armazenamento e Indexação

Unidade 5 Armazenamento e Indexação Unidade 5 Armazenamento e Indexação Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Material base: Banco de Dados, 2009.2, prof. Otacílio José

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

Structured Query Language (SQL) Aula Prática

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

Leia mais

BANCO DE DADOS. 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