Microsoft SQL Server 2005

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

Download "Microsoft SQL Server 2005"

Transcrição

1 Sistemas de Bases de Dados Faculdade de Ciências e Tecnologia Mestrado em Engenharia Informática Análise de um Sistema de Gestão de Bases de Dados: Microsoft SQL Server 2005 Trabalho realizado por: Arlindo Lima Nº Hugo Aguiar Nº Tiago Melo Nº de Dezembro de 2009

2 Contents 1 Introdução Introdução histórica Notas sobre instalação do sistema 2 2 Cobertura do SQL DDL DML Tipos de Dados 6 3 Armazenamento e file structure O Buffer Pool Acesso às páginas em memória Gestão de páginas na cache de dados Arquitectura NUMA Read-ahead Sistema de ficheiros Páginas e Extents Organização dos ficheiros Mecanismo de partições 13 4 Indexação e Hashing Estrutura B-tree Tipos de Índices Índices clustered Índices non-clustered Implementação de Índices Índices com colunas incluídas Indexação de views Indexação full-text Indexação XML Criação de Índices Argumentos do comando CREATE INDEX Opções do comando CREATE INDEX Indexação e Hashing - Oracle 10g vs MS SQL Processamento e Optimização de Queries Algoritmos para Junções Nested Loop Merge 31 i

3 ii Hash Grace Hash Join Remoto Escolha de Índices e avaliação de sub consultas Optimização de queries optimizadores baseados em sintaxe optimizadores baseados em custo fases de optimização Paralelismo Estatisticas Pistas em consultas Pistas do tipo Join Pistas do tipo Tabela Pistas do tipo Query 39 6 Gestão de transacções e controlo de concorrência Tipos de transacções Autocommit Transacções explícitas Transacções implícitas Batch-scoped Locks Níveis de granularidade Modos de lock Níveis de isolamento Locking Hints Deadlocks Transacções de longa duração 50 7 Suporte para bases de dados distribuídas Replicação Funcionamento Tipos Agentes Mirroring Log Shipping Transacções Distribuídas Acesso a outras Bases de Dados Federação 57 8 Outras características do sistema estudado 59

4 List of Figures 4.1 Exemplo da estrututa B-tree Índice com duas chaves Índice clustered Índice non clustered Sintaxe do comando CREATE INDEX Plano com um nested loop Plano com um merge join Plano com um hash join nested transaction Granularidade dos Locks Replicação Mirroring log shiping 56 iii

5

6 1 Introdução A sociedade moderna encontra-se inundada de dados - dados científicos, dados clínicos, dados demográficos, dados financeiros, entre outros. Estes dados precisam de ser armazenados, acedidos e alterados. Estas são as funções das bases de dados. Hoje em dia, poucas são as organizações que conseguem funcionar sem esta tecnologia. Para ajudar na manutenção das bases de dados, foram criados os Sistemas de Gestão de Bases de Dados (SGBD), que são um conjunto de programas que controlam a organização, armazenamento e acesso aos dados. Existem vários SGBD, sendo o sistema Oracle, considerado o melhor, pela indústria. No entanto, o SGBD da Microsoft, SQL Server, tem vindo a ganhar terreno, principalmente por oferecer uma elevada facilidade de instalação, para um SGBD do seu calibre. Neste relatório, iremos apresentar algumas características do Microsoft SQL Server, que mostram que este SGBD consegue concorrer com o seu rival comercial Oracle. 1.1 Introdução histórica Em 1987, a Microsoft e a Sybase aliaram-se para desenvolver um sistema de gestão de base de dados, baseado no software Sybase DataServer (ainda por ser lançado). A Sybase ficaria com os direitos para distribuir a versão para Unix e VMS (esta versão acabaria por se chamar Sybase SQL Server) e a Microsoft iria distribuir a versão para OS/2. Assim, em 1989, foi lançada a primeira versão do Microsoft SQL Server, SQL Server 1.0. Em 1990 foi lançada a versão para Windows: SQL Server 1.1. Na altura em que o Windows NT foi lançado, a popularidade do OS/2 tinha caído bastante. Além disso o Windows NT já suportava novas arquitecturas que o OS/2 não suportava. Isto fez 1

7 1. INTRODUÇÃO 1.2. Notas sobre instalação do sistema com que a Microsoft quisesse passar a desenvolver o SQL Server exclusivamente para o Windows, usando as capacidades do seu sistema operativo. A Sybase, no entanto, queria continuar a desenvolver software multi-plataforma, pelo que as duas empresas se separaram. Assim, em 1995, a Microsoft lançou o SQL Server 6.0 que, pela primeira vez, estava completamente integrado com o Windows NT. Na tentativa de tornara o seu SGBD cada vez mais intuitivo, foi lançado em 1998 o SQL Server 7.0, o primeiro SGBD com uma verdadeira interface gráfica. A marcha não ficou por aqui. Em 2000 foi lançado o SQL Server 2000 que dava continuidade a um produto que por esta altura já era bastante reconhecido no mercado empresarial (em 2003 seria lançada a versão 64 bits - que também se tornaria na primeira versão deste SGBD a fazer uso desta arquitectura). Em 2005 foi lançado o SQL Server 2005 (a versão estudada neste relatório) e, recentemente, em Agosto de 2008, foi lançada a versão Para a realização deste trabalho foram consultados os manuais [10], [6], [5], [4], [8], [7], [3], [2], [9] e o site [1]. 1.2 Notas sobre instalação do sistema Antes de instalar: 1. Desinstale a Framework.NET 1.2 (as versões 1.0 e 1.1 não têm de ser obrigatoriamente desinstaladas). A seguir instale a Framework.NET Instale o SQL Server 2005, seguindo os vários passos: 3. Depois de satisfeitos os pré-requisitos, siga com a instalação clicando em "install". 4. Escolha os componentes a instalar (todos). 5. Em seguida, escolha o local de instalação dos componentes. 6. Clique "seguinte" nos restantes ecrãs e a instalação será iniciada. 2

8 2 Cobertura do SQL 2.1 DDL DDL é um subconjunto de operações do SQL que contem os comandos para definir dados. Os principais comandos deste conjunto são o CREATE, ALTER e DROP. O T-SQL tem suporte para criação, alteração e destruição de Base de Dados, Funções, Índices, Procedimentos, Tabelas, Triggers, Utilizadores e Views. De entre estes o mais usado é o CREATE, nomeadamente para criação de tabelas, que iremos detalhar de seguida. Na sua forma mais simples, CREATE TABLE table_name (column_name1 data_type, column_name2 data_type,...), é criada uma tabela onde só estão definidos o seu nome, o nome das colunas e o tipo de dados que cada coluna irá suportar, sem estar limitado por quais queres restrições. Para o caso de se desejar ter uma base de dados mais poderosa e coesa o T-SQL disponibiliza, entre muitos outros, os seguintes parâmetros e restrições: Database_Name: onde podemos indicar em que base de dados será criada a tabela, essa cláusula remove a necessidade de usar o USE. Owner: poderá especificar outro dono para a tabela, caso não seja especificado o utilizador actual fica como dono. Identity: especifica que coluna vai servir como identificador da tabela. Seed: se quiser que o ID da tabela não comece a 1, poderá indicar o valor neste argumento. 3

9 2. COBERTURA DO SQL 2.1. DDL Increment: poderá indicar que incremento usar em cada novo tuplo, por omissão este valor é 1. Not for Replication: Se esta condição estiver activa, o sistema de base de dados não irá tentar impor novos valores de ID aos dados inseridos por um processo replicante, mantendo o ID original. Os dados inseridos por outros processos não serão afectados. Null: que indica se o valor de uma coluna poderá ser ou não Null. Primary Key: indica se uma coluna ou conjunto de colunas formam um valor identificativo de uma tabela, implica que os valores, ou pares de valores, sejam únicos. Unique: obriga que os valores de uma coluna sejam únicos. ON DELETE [CASCADE NO ACTION]: indica que acção tomar quando um tuplo, referenciado através de uma Foreign Key, é removido. Por omissão esta opção encontrase como NO ACTION, tendo que ser alterado para CASCADE para o caso de se querer remover todos os outros tuplos. Estes parâmetros também estão disponíveis para o ALTER. Para destruir estruturas, é usado o comando DROP com a seguinte sintaxe básica: DROP type name. A quando da remoção de uma tabela todas os tuplos, índices e triggers específicos dessa tabela irão ser removidos, mas Views e Procedimentos que têm referencias para a tabela terão de ser removidos manualmente usando o DROP View/Procedure. Como indicado anteriormente os tuplos de outras tabelas que tem como Foreign Key alguma coluna desta tabela, só irão ser removidos caso esteja activa a opção ON DELETE CASCADE. 4

10 2. COBERTURA DO SQL 2.2. DML 2.2 DML DML é o conjunto das operações que manipulam os dados. Quer isso dizer que serão usadas para inserir, remover e editar dados, nomeadamente com os comandos INSERT, UPDATE e DELETE. Também está incluido nesse conjunto o comando SELECT, para acesso aos dados, que será a longe prazo o mais usado. Para poder trabalhar com os dados temos de primeiro inseri-los. O INSERT do T-SQL é muito versátil deixando, entre outros, inserir dados Null, tuplos com menos dados que colunas, por diferentes ordens, através de tabelas temporárias e views e até usar o SELECT e EXECUTE dentro do INSERT. Podemos posteriormente alterar estes dados com o UPDATE. Este suporta copiar dados de outras tabelas, alterar só um valor com o SET e indicando o nome da coluna, seleccionar que tuplos actualizar usando o WHERE e podemos até inferir diferentes valores usando a cláusula CASE. A forma mais comum de remover dados é indicando a tabela e que condições o tuplo precisa de ter, mas o T-SQL também tem suporte para remover sem indicar condições, remover vários tuplos, remover o tuplo onde se encontra um cursor e até remover tuplos seleccionados com uma sub consulta. Caso não deseje editar os dados o T-SQL disponibiliza o comando SELECT, com suporte para a estrutura do SELECT do standard SQL, para aceder aos dados. Dados esses que podem ser Views, cursores, tabelas, subconjunto de tabelas e mesmo resultados de outro SELECT. Podemos usar o SELECT desde a sua forma mais básica, SELECT Hello World, que simplesmente irá devolver Hello World ou SELECT (select_list) INTO (new_table) FROM (table source) WHERE (search_condition) GROUP BY (group_by_expression) HAVING (search_condition) ORDER BY (order_expression) [ASC / DESC], onde já se encontram algumas das muitas clausulas para o qual há suporte. Iremos agora explicar algumas das cláusulas: AS: permite renomear as colunas. INTO: guarda os resultados noutra tabela. FROM: define que tabela irá ser interrogada. WHERE/HAVING: clausula condicional, que restringe os resultados. GROUP BY: permite agrupar os resultados indicando as colunas. ODER BY [ASC DESC]: ordena os resultados pelos valores da coluna indicada. COMPUTE: permite fazer cálculos como a média, o Max, mínimo e somatório. FOR XML: indica que o resultado da query deve ter o formato XML. JOINS: é o produto entre duas ou mais resultados. Tem suporte para INNER e [LEFT RIGHT TOTAL] OUTTER JOIN. UNION: une dois resultados. 5

11 2. COBERTURA DO SQL 2.3. Tipos de Dados 2.3 Tipos de Dados O T-SQL tem suporte para os seguintes tipos de dados: Valores numéricos inteiros: bigint int smallint tinyint bit decimal numeric money smallmoney Valores numéricos aproximados: float real Data e hora: datetime smalldatetiem Strings: char varchar text nchar nvarchar ntext 6

12 2. COBERTURA DO SQL 2.3. Tipos de Dados Strings binárias: binary varbinary image Outros: cursor sql_variant table timestamp uniqueidentifier xml 7

13

14 3 Armazenamento e file structure 3.1 O Buffer Pool O principal componente de memória do SQL Server 2005 é o buffer pool. Toda a memória que não esteja a ser usada por outros componentes de memória, permanece no buffer pool, onde é usada como cache de dados para páginas lidas dos ficheiros da base de dados (em disco). O gestor de buffer (buffer manager) controla as funções de I/O do disco, com o objectivo de carregar as páginas para essa cache de dados (de modo a que essa informação possa ser acedida por todos os utilizadores). Quando outros componentes necessitam de memória, podem pedir um buffer (página em memória do mesmo tamanho que uma página de dados/índices) do buffer pool. Após estes pedidos, os buffers são, normalmente, transferidos para outros tipos de caches (como, por exemplo, a cache responsável por guardar as queries e procedimentos SQL executados recentemente - procedure cache). Ocasionalmente, o SQL Server precisa de blocos de memória contíguos superiores ao tamanho máximo das páginas usadas pelo buffer pool (8 KB). Quando assim é, é reservada memória fora do espaço de endereçamento deste. No entanto, o uso de grandes blocos de memória é minimizado, de modo a que chamadas directas ao sistema operativo representem uma fracção mínima do uso de memória. O SQL Server, ao arrancar, calcula o tamanho do espaço de endereçamento virtual (virtual address space - VAS) do seu processo, que depende da arquitectura (x86 ou x64) e do sistema operativo. De notar que os sistemas x86 apenas podem endereçar (directamente) 4 GB de memória. No entanto, o SQL Server pode fazer uso da API (do Windows) Address Windowing Extensions (AWE) que, actuando como uma terceira área de memória, permite ultrapassar esta 9

15 3. ARMAZENAMENTO E FILE STRUCTURE 3.2. Acesso às páginas em memória restrição. Nos sistemas x64 esta restrição não existe, pelo que é ignorada a configuração para esta API. Além do tamanho do VAS, é calculado o número de páginas que se espera ser possível alocar (este valor é designado por Target Memory). É possível ver estas informações, bem como outras relevantes ao buffer pool, na Dynamic Management View (DMV) chamada sys.dm_os_sys_info. Colunas interessantes incluem: physical_memory_in_bytes - memória física disponível. virtual_memory_in_bytes - memória virtual disponível. bpool_commited - número de páginas no buffer pool (não inclui memória reservada). bpool_commit_target - Target Memory. 3.2 Acesso às páginas em memória O SQL Server tenta manter o acesso às páginas, na cache de dados, rápido (não é eficiente pesquisar em toda a cache) pelo que as páginas são guardadas numa hash table (implementada como uma página que contém um array - que na verdade é uma lista ligada - de apontadores para as páginas na cache), em que a combinação dos identificadores da base de dados (serve para identificar a que base de dados o ficheiro pertence), do ficheiro e da página, são os argumentos de entrada da função de hash. 3.3 Gestão de páginas na cache de dados No SQL Server, o mesmo mecanismo é responsável por escrever as alterações das páginas em disco e por marcar como livre a memória ocupada por páginas que não sejam referenciadas há algum tempo (sendo mantida uma lista ligada com os endereços das páginas "livres"). Cada buffer na cache de dados tem um cabeçalho que contém informação sobre as duas últimas vezes que cada página foi referenciada, além de outras informações sobre o estado dessas mesmas páginas, incluindo o facto de uma página estar ou não dirty (o seu conteúdo ter alterado desde que foi lida de disco). Esta informação é usada na implementação da política de substituição de páginas, que usa o algoritmo LRU-K (Least Recently Used-K). Este algoritmo baseia-se na filosofia do algoritmo LRU, mas mantém-se a par das últimas K vezes que a página foi referenciada (sendo usado o valor 2 para K, na implementação do SQL Server). Assim, buffers que contenham páginas consideradas mais importantes, mantêm-se no buffer pool activo, enquanto buffers com páginas menos referenciadas acabam por regressar à lista de buffers livres. O trabalho de percorrer o buffer, escrevendo páginas "dirty" em disco e adicionando buffers à lista de buffers livres é feito por um processo assíncrono, denominado lazywriter. Este também é responsável por diminuir ou aumentar a cache de dados, de modo a manter a memória física livre do sistema operativo em cerca de 5MB, de modo a evitar paginação. Existe outro processo também responsável por percorrer a cache de buffer, periodicamente, 10

16 3. ARMAZENAMENTO E FILE STRUCTURE 3.4. Arquitectura NUMA e escrever em disco páginas "dirty": checkpoint. A diferença entre os processos lazywriter e checkpoint é o facto de este último nunca colocar buffers na lista livre. O único objectivo do checkpoint é assegurar que páginas alteradas há mais de x tempo são, efectivamente, escritas em disco, de modo a minimizar o tempo que o SQL Server necessitaria para recuperar de uma falha. Este processo também corre automaticamente, mas também pode ser accionado manualmente através do comando CHECKPOINT. Uma característica que existia nas versões do SQL Server anteriores à 2005 era a possibilidade de marcar tabelas, de modo a que as suas páginas fossem mantidas em memória, indefinidamente. Este processo, chamado pinning de uma tabela, podia ser accionado usando a opção pintable do procedimento sp_tableoption. Este comando ainda existe no SQL Server 2005, mas não tem efeito (de modo a se manter retro-compatível). 3.4 Arquitectura NUMA O SQL Server 2005 é compatível com a arquitectura Non-Uniform Memory Access (NUMA). A maior vantagem desta arquitectura é o facto de ser uma solução escalável para o aumento do número de CPUs nos computadores. Na arquitectura NUMA os CPUs estão agrupados em pequenos conjuntos, designados por nós NUMA, sendo cada nó servido por um bus de sistema, além de ter a sua própria memória interna. Cada CPU pode aceder à memória de outros nós, de forma coerente, embora seja mais rápido aceder à memória local do seu nó. Assim, ao contrário da arquitectura Symmetric Multiprocessing (SMP), onde todo o acesso a memória é feito pelo mesmo bus partilhado (o que até funciona bem para um pequeno numero de CPUs), NUMA alivia este "bottleneck" limitando o número de CPUs num mesmo bus. O SQL Server tem ainda a vantagem de permitir subdividir um (ou mais) nós NUMA físicos em nós mais pequenos, denominados software NUMA (soft-numa). Tipicamente, usa-se soft- NUMA quando se está na presença de vários CPUs, mas não de hardware NUMA. O uso de soft-numa permite reduzir o I/O e "bottlenecks" provocados pelo processo lazywriter. Por exemplo, num computador com oito CPUs e sem hardware NUMA, temos apenas uma thread para I/O e um lazywriter (o que pode causar entupimentos). Configurando quatro nós soft-numa, passamos a ter quatro threads para I/O e quatro lazywriters, o que ajuda na performance. 3.5 Read-ahead O SQL Server suporta um mecanismo chamado "read-ahead" que antecipa as necessidades de páginas de dados e índices, carregando, para o buffer pool, estas páginas antes delas serem pedidas. Esta optimização aumenta bastante a eficiência do processamento de dados. Este mecanismo é gerido internamente, sem necessidade de ser configurado. 11

17 3. ARMAZENAMENTO E FILE STRUCTURE 3.6. Sistema de ficheiros 3.6 Sistema de ficheiros Uma base de dados no SQL Server 2005 pode ser vista como uma colecção de ficheiros que contêm dados e meta-dados, correspondendo cada ficheiro da base de dados a um ficheiro do Windows (no entanto, cada ficheiro tem um nome lógico e um nome físico). Esta dependência, embora diminua a portabilidade deste SGBD, tem a vantagem de permitir fazer uso das ferramentas disponibilizadas por esses sistemas de ficheiros (tal como encriptação e definição de quotas/permissões) de modo totalmente transparente para o SQL Server. Existem os seguintes três tipos de ficheiros no SQL Server: Ficheiros de dados primários - contêm informação sobre todos os ficheiros na base de dados, além de guardarem dados. Ficheiros de dados secundários - guardam dados dos utilizadores (índices, vistas, tabelas e procedimentos). Têm a função de replicar esta informação por vários discos. Ficheiros Log - contêm informação necessária para a recuperação de todas as transacções efectuadas. Os ficheiros de dados podem ser atribuídos a um filegroup, uma característica que permite agrupar ficheiros. Isto pode ser útil para colocar dados (e índices) numa unidade de disco especifica ou para a criação de um regime de backup que apenas salvaguarda os ficheiros de determinados filegroups. Os ficheiros log, no entanto, não podem ser atribuídos a um filegroup porque são guardados separadamente dos ficheiros de dados. 3.7 Páginas e Extents A um nível de abstracção superior ao do sistema de ficheiros, o armazenamento da base de dados no SQL Server 2005 é feito em páginas e extents. O objecto de armazenamento básico é a página (que, tal com já foi dito, tem 8KB), cuja estrutura é semelhante à de outros objectos do sistema operativo Windows. Primeiro, a página é identificada por um identificador único. Em seguida, contém um cabeçalho (header), de 96 bytes, com informação pertinente sobre a página incluindo o seu tipo, espaço livre, etc. Seguemse as linhas com os dados (podendo, no máximo, uma linha ocupar bytes), que crescem do início da página para o final. No fim da página, encontra-se o slot array com apontadores para cada linha de dados (cresce do final da página para o início). O tamanho das linhas (de dados) de uma página não se pode "exceder" para outras páginas, pelo que, para armazenar tipos de dados que ocupem mais espaço (como imagens, texto muito longo e XML) são combinadas mais páginas. Os extents são usados para alocar espaço para tabelas e índices e são a unidade básica de gestão de memória. Cada extent contém até oito páginas contíguas, fazendo com que o seu tamanho máximo seja de 64KB. 12

18 3. ARMAZENAMENTO E FILE STRUCTURE 3.8. Organização dos ficheiros 3.8 Organização dos ficheiros Existem três modos de organizar as páginas no Sql Server: heap (modo por defeito) - as páginas não estão ordenadas. Assim, as linhas (de dados) são inseridas em qualquer espaço. clustered index - as páginas são ligadas através de uma lista duplamente ligada, usando o índice (que deve ser único) como chave. O índice é guardado numa árvore B+ ordenada. non-clustered index - semelhante ao modo clustered index, mas os índices na árvore B+ não se encontram em nenhuma ordem especial (já não existindo a restrição do índice único). Outros modos de organização (como multitable clustering e hash) não são suportados. 3.9 Mecanismo de partições No SQL Server, a partição de dados é um mecanismo apenas disponível na versão Enterprise Edition. Um objecto encontra-se particionado quando se encontra dividido (internamente) em unidades físicas (separadas) que podem ser armazenadas em diferentes localizações, no entanto, as partições são invisíveis para os utilizadores e programadores de T-SQL. Podem se usar partições para tornar mais eficiente (ou menos pesado) a utilização de objectos grandes (tabelas de 2GB, por exemplo) ou quando alguns tuplos passaram a ser acedidos apenas para leitura, separando-se estes dos tuplos actualizáveis, etc. No SQL Server, criar partições é um processo de três passos. Passo 1 - Criação da função de partição No primeiro passo, cria-se uma função de partição (ou seja, é definido o critério de divisão dos dados) com o comando CREATE PARTITION FUNCTION, cuja sintaxe é: CREATE PARTITION FUNCTION partition_function_name ( input_parameter_type) AS RANGE [ LEFT RIGHT ] FOR VALUES ( [ boundary_value [,..., n ] ] ) [;] Os parâmetros deste comando são: partition_function_name - identificador SQL válido input_parameter_type - tipo de dados da coluna de partição (pode ser qualquer um excepto text, ntext, image, xml, timestamp, varchar(max), nvarchar(max), varbinary(max), alias e tipos CLR (Common Language Runtime) definidos pelo utilizador). boundary_value - lista de limites que define as partições LEFT ou RIGHT - define a que lado do valor limite a partição pertence. Passo 2 - Criação do esquema de partição 13

19 3. ARMAZENAMENTO E FILE STRUCTURE 3.9. Mecanismo de partições Neste passo cria-se um esquema de partição. Este esquema define como as partições serão fisicamente definidas na base de dados (se ficarão em filegroups diferentes ou não). O comando para este passo é CREATE PARTITION SCHEME, cuja sintaxe é: CREATE PARTITION SCHEME partition_scheme_name AS PARTITION partition_function_name [ ALL ] TO ( file_group_name [ PRIMARY ] [,...n ] ) [;] Os parâmetros deste comando são: partition_scheme_name - identificador SQL válido partition_function_name - nome da função de partição à qual associar este esquema de partição. file_group_name - lista dos filegroups aos quais este esquema deverá ser associado, ou PRIMARY para associar todas as partições ao filegroup primário (o filegroup por omissão do SQL Server). A palavra reservada ALL especifica que todas as partições deverão ir para esse filegroup. Passo 3 - Criação da tabela/índice Neste último passo, é criada a tabela ou índice que usa o esquema de partição criado. Uma tabela é criada com o comando CREATE TABLE, enquanto uma partição é criada com o comando CREATE INDEX. A sintaxe de CREATE TABLE é: CREATE TABLE... [ ON partition_scheme_name ( partition_column_name ) filegroup "default" ] [ TEXTIMAGE_ON filegroup "default" ] [;] A diferença principal entre a criação de uma tabela particionada e uma tabela não-particionada é a adição de partition_scheme_name (partition_column_name). Isto permite-nos especificar qual a coluna em que a partição ocorrerá. A sintaxe de CREATE INDEX é: CREATE... INDEX... [ ON partition_scheme_name ( column_name ) filegroup_name default ] [;] Tal como para criar uma tabela, a diferença principal entre a criação de um índice tradicional e a criação de um índice particionado é a adição de ON partition_scheme_name ( column_name ). 14

20 3. ARMAZENAMENTO E FILE STRUCTURE 3.9. Mecanismo de partições O SQL Server 2005 disponibiliza ainda comandos para alterar, arquivar e eliminar partições. Existe também uma DMV para recolher informação sobre as partições, designada sys.dm_db_partition_stats. 15

21

22 4 Indexação e Hashing O SQL Server 2005 processa o acesso a dados de duas formas distintas. A primeira é através de um table scan onde todas as páginas, começando no inicio da tabela, são varridas extraindo assim a informação definida na query. A segunda é através de índices. Os índices são estruturas que foram desenhadas para aumentar a velocidade de acesso ao repositório de dados de um SGBD. Se simplificarmos a utilidade destes índices percebemos que funcionam como o índice de um livro - ao usarmos índices podemos encontrar rapidamente dados específicos sem termos que ler todo o conteúdo de uma tabela. Os índices não são estruturas obrigatórias, afectam a performance das queries mas não afectam a sua funcionalidade. No entanto, esta diferença de performance pode ter um impacto muito grande no sistema. Esta performance é aumentada reduzindo o trabalho de pesquisa às queries. Sem índices, é necessário ler todos os dados de uma tabela. De facto o uso dos índices está directamente ligado aos movimentos de I/O. Quando é executado um table scan, são gerados milhares de I/O, estas operações têm um custo elevado. Com o uso de índices são necessárias menos leituras e consequentemente a performance aumenta e a utilização de recursos diminui. Nesta secção explica-se como funcionam e como podem ajudar a melhorar a performance de um sistema. 4.1 Estrutura B-tree A estrutura de indexação é implementada por árvores B+. Uma árvore é constituída por uma raiz (root), ramos (branch nodes) e folhas(leaf nodes). A árvore começa com a primeira página do índice (nó raiz). Esta raiz contem a gama das chaves de pesquisa e os ponteiros para 17

23 4. INDEXAÇÃO E HASHING 4.1. Estrutura B-tree outras páginas do índice. Os nós entre o nó raiz e os nós folha também contêm as chaves e os ponteiros para nós inferiores e eventualmente nós folha. Os nós folha têm apontadores para os dados na tabela ou guardam eles próprios os dados, dependendo do tipo de índice escolhido (iremos falar sobre os tipos de índice posteriormente). É possivel navegar através dos ramos da árvore até que seja alcançado um nó folha. Figure 4.1: Exemplo da estrututa B-tree Como podemos ver na figura 4.1 cada nó da árvore está ordenado pela chave de pesquisa. Os apontadores de cada entrada guiam a pesquisa para uma sub-árvore que contém entradas consideradas menores que a entrada actual. O nó à direita do nó actual contém uma sub-árvore em que todos os nós são considerados maiores que qualquer nó da sub-árvore do nó actual. Desta forma garante-se a ordenação da árvore. Mantendo a árvore equilibrada e ordenada, permite-se um acesso aos nós folha em poucas iterações. Para manter este equilibro é necessário assegurar que cada nó ramo mantenha um número de sub-árvores que varie entre n e n/2, onde n representa o número de níveis da árvore. A ordenação depende da forma como é criado o índice. Como o índice já está ordenado, às vezes o sistema não precisa de ordenar os dados quando é usado um ORDER BY (assumindo que o índice é usado e que a ordem pretendida é igual à do índice). Com o crescimento da base de dados, os nós da árvore do índice têm tendência a encher. Quando há uma inserção sobre um nó cheio é necessário parti-lo em duas partes - este processo denomina-se page split e implica reorganizar a estrutura para atingir um novo estado de equilíbrio, este processo tem um custo (overhead) indesejável. No entanto é possivel configurar o parâmetro fill factor que indica qual o espaço livre que deve ser deixado quando um nó é criado. Iremos falar deste e de outros parâmetros mais à frente. No SQL Server as árvores B+ são 18

24 4. INDEXAÇÃO E HASHING 4.1. Estrutura B-tree utilizadas para a indexação e para a organização de ficheiros. Exemplo 1 prático sobre índices Para tirarmos vantagem do uso dos índices é necessário inclui-los na clausula WHERE. Se um índice for criado com as chaves lastname e firstname, os dados são ordenados primeiro por último nome e depois pelo primeiro (figura 4.2). Figure 4.2: Índice com duas chaves 1) O índice é acedido com grande eficiência no seguinte caso: SELECT PhoneNumber FROM mytable WHERE lastname = smith AND firstname = john ; 2) O índice ainda é útil no próximo exemplo: SELECT PhoneNumber FROM mytable WHERE lastname = smith ; 3) Neste exemplo o indíce não e utilizado sendo feito um table scan: SELECT PhoneNumber FROM table WHERE firstname = john ; Neste exemplo podemos que o benificio do uso do índice depende da forma como as chaves são usadas. 1 Exemplo adaptado de [10] 19

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

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

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

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

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

Bases de Dados. Lab 1: Introdução ao ambiente

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

Leia mais

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento e Indexação Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento Banco de Dados são armazenados fisicamente como arquivos de registro, que em geral ficam em discos

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

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

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

Acronis Servidor de Licença. Manual do Utilizador

Acronis Servidor de Licença. Manual do Utilizador Acronis Servidor de Licença Manual do Utilizador ÍNDICE 1. INTRODUÇÃO... 3 1.1 Descrição geral... 3 1.2 Política de licenças... 3 2. SISTEMAS OPERATIVOS SUPORTADOS... 4 3. INSTALAR O SERVIDOR DE LICENÇA

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 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

Leia mais

Bases de Dados II Engª. Informática + Ensino Informática

Bases de Dados II Engª. Informática + Ensino Informática Introdução SQL SERVER hugomcp@di-ubi.pt, 2004 Arranque do MS SQLServer UNIVERSIDADE DA BEIRA INTERIOR Departamento de Informática Bases de Dados II Engª. Informática + Ensino Informática Pode-se usar 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

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

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO DOMINE A 110% ACCESS 2010 A VISTA BACKSTAGE Assim que é activado o Access, é visualizado o ecrã principal de acesso na nova vista Backstage. Após aceder ao Access 2010, no canto superior esquerdo do Friso,

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

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

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

1. Domínio dos Atributos

1. Domínio dos Atributos Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando

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

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

AULA 5 Sistemas Operacionais

AULA 5 Sistemas Operacionais AULA 5 Sistemas Operacionais Disciplina: Introdução à Informática Professora: Gustavo Leitão Email: gustavo.leitao@ifrn.edu.br Sistemas Operacionais Conteúdo: Partições Formatação Fragmentação Gerenciamento

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

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

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva - www.assembla.com/spaces/objetivobd/documents

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva - www.assembla.com/spaces/objetivobd/documents Banco de dados Linguagens de Banco de Dados II 1 Linguagem de Definição de Dados - DDL Comandos utilizados para criação do esquema de dados; Um DDL permite ao utilizador definir tabelas novas e elementos

Leia mais

Pesquisa e organização de informação

Pesquisa e organização de informação Pesquisa e organização de informação Capítulo 3 A capacidade e a variedade de dispositivos de armazenamento que qualquer computador atual possui, tornam a pesquisa de informação um desafio cada vez maior

Leia mais

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1. Departamento de Engenharia Informática 2008/2009 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

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

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Bases de Dados 2007/2008. Aula 1. Referências

Bases de Dados 2007/2008. Aula 1. Referências Bases de Dados 2007/2008 Aula 1 Sumário 1. SQL Server 2000: configuração do acesso ao servidor. 1.1. SQL Server Service Manager. 1.2. SQL Server Enterprise Manager. 1.3. SQL Query Analyzer. 2. A base de

Leia mais

Hugo Pedro Proença, 2007

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

Leia mais

O AMBIENTE DE TRABALHO DO WINDOWS

O AMBIENTE DE TRABALHO DO WINDOWS O AMBIENTE DE TRABALHO DO WINDOWS O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador. Um computador que tenha o Windows instalado, quando arranca, entra directamente

Leia mais

Tarefa Orientada 14 Subconsultas

Tarefa Orientada 14 Subconsultas Tarefa Orientada 14 Subconsultas Objectivos: Subconsultas não correlacionadas Operadores ALL, SOME e ANY Subconsultas correlacionadas Operador EXISTS Subconsultas incluídas na cláusula FROM de uma consulta

Leia mais

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA Sistemas Operativos 2003/2004 Trabalho Prático #2 -- Programação em C com ponteiros -- Objectivos Familiarização

Leia mais

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda. SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]

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

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com MYSQL: TIPOS DE DADOS Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com TIPOS DE DADOS Bancos de dados, como falamos anteriormente, armazenam dados dentro de tabelas, na forma de linhas e colunas.

Leia mais

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software e Sistemas Distribuídos 2 o Semestre 2014/2015 Enunciado Geral do Projecto O que se segue é uma descrição geral do domínio do projecto a desenvolver

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

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

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

NOME SEXO CPF NASCIMENTO SALARIO

NOME SEXO CPF NASCIMENTO SALARIO Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento

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

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

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção Este procedimento corresponde ao fluxo de trabalho de Indexação de OCR com separação de código de correção no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se na

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

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção Sistemas de Arquivos Funções de um SO Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção 2 Sistemas Operacionais Necessidade de Armazenamento Grandes quantidades

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 3 Linguagem SQL Linguagem de manipulação de dados (DML) DISCIPLINA: Banco de

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

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

Utilização do SOLVER do EXCEL

Utilização do SOLVER do EXCEL Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de

Leia mais

Aula 1: Noção Básica e Criação de Tabelas.

Aula 1: Noção Básica e Criação de Tabelas. Aula 1: Noção Básica e Criação de Tabelas. Introdução Olá! Seja bem-vindo a apostila de Microsoft Access 2010. Access 2010 é um Sistema de Gerenciamento de Banco de Dados da Microsoft, distribuído no pacote

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

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicaçõ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

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 Banco de Dados Fundamentos de SQL Structured Query Language Aula2 Apresentado por: Robson do Nascimento Fidalgo rdnf@cin.ufpe.br IF685

Leia mais

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional Modelo de Dados Relacional e as Restrições de um Banco de Dados Relacional Modelo de Dados Relacional Conceitos do Modelo Relacional Representa o banco de dados como uma coleção de relações. Comparação

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

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

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

Construção Páginas de Internet

Construção Páginas de Internet Construção Páginas de Internet Definir um Site no Frontpage Objectivos da sessão: No final da sessão os formandos deverão ser capazes de: Saber o que são os metadados do Frontpage; Distinguir entre Sites

Leia mais

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos Este procedimento corresponde ao fluxo de trabalho de Indexação de código de barras e de separação de documentos no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se

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

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

Google Drive. Passos. Configurando o Google Drive

Google Drive. Passos. Configurando o Google Drive Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

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

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Introdução à gestão de memória Programação de Sistemas Gestão de memória : 1/16 Introdução (1) A memória central de um computador é escassa. [1981] IBM PC lançado com 64KB na motherboard,

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

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

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

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

bit Tecnologia ao Serviço do Mundo Rural www.ruralbit.pt

bit Tecnologia ao Serviço do Mundo Rural www.ruralbit.pt bit Tecnologia ao Serviço do Mundo Rural www.ruralbit.pt :: Ruralbit :: http://www.ruralbit.pt :: Índice :: Ruralbit :: http://www.ruralbit.pt :: Pág. 1 Introdução O Pocket Genbeef Base é uma aplicação

Leia mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Uma expressão básica em SQL consiste em três cláusulas: select, from e where. Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra

Leia mais

MICROSOFT POWERPOINT

MICROSOFT POWERPOINT MICROSOFT POWERPOINT CRIAÇÃO DE APRESENTAÇÕES. O QUE É O POWERPOINT? O Microsoft PowerPoint é uma aplicação que permite a criação de slides de ecrã, com cores, imagens, e objectos de outras aplicações,

Leia mais

Gerência de Memória RAM em Computadores com Mais de 4GB O sistema Windows x86 (32bits) não tem capacidade de reconhecer, fisicamente, mais que 3,X GB de RAM, a não ser que seja ativado, manualmente, o

Leia mais

ZS Rest. Manual Avançado. Menus. v2011 - Certificado

ZS Rest. Manual Avançado. Menus. v2011 - Certificado Manual Avançado Menus v2011 - Certificado 1 1. Índice 2. Introdução... 2 3. Iniciar o ZSRest... 3 4. Menus... 4 b) Novo Produto:... 5 i. Separador Geral.... 5 ii. Separador Preços e Impostos... 7 iii.

Leia mais

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

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

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO Antes de criarmos um novo Banco de Dados quero fazer um pequeno parênteses sobre segurança. Você deve ter notado que sempre

Leia mais

Nova Versão 3.0 do Software de Gestão de Equipamentos da Katun KDFM!

Nova Versão 3.0 do Software de Gestão de Equipamentos da Katun KDFM! Nova Versão 3.0 do Software de Gestão de Equipamentos da Katun KDFM! MAIS FÁCIL DE NAVEGAR MAIS RÁPIDO DE USAR MAIS FÁCIL DE GERIR ALERTAS NOVAS OPÇÕES DE LIMPEZA DE ALERTAS MAIS FÁCIL DE USAR OS PERFIS

Leia mais

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo Iniciar o Data Adapter Configuration Wizard Toolbox Data Duplo clique em OleDbDataAdapter Botão next na caixa de diálogo Se carregar em Cancel, o wizard é cancelado e podemos depois definir as propriedades

Leia mais

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011 Manual Profissional BackOffice Mapa de Mesas v2011 1 1. Índice 2. Introdução... 2 3. Iniciar ZSRest Backoffice... 3 4. Confirmar desenho de mesas... 4 b) Activar mapa de mesas... 4 c) Zonas... 4 5. Desenhar

Leia mais

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo ) PRONATEC - Programador de Sistemas Banco de Dados 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas utilize o comando INSERT INTO INSERT INTO tabela [ ( coluna [, coluna,...] ) ] VALUES

Leia mais

SAMUO APP: MANUAL DO ADMINISTRADOR

SAMUO APP: MANUAL DO ADMINISTRADOR as novas tecnologias ao serviço do desenvolvimento de projectos w w w. i m a d i p. c o m CABO VERDE: REALIZAÇÃO DE UMA ACÇÃO- PILOTO PARA A MELHORIA DA GESTÃO NUM GABINETE TÉCNICO SELECCIONADO OFITEC

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Adriano J. Holanda http://holanda.xyz 28/8/2015 Índices Para os testes com os índices criaremos uma tabela chamada tteste com o comando teste=> CREATE TABLE tteste (id int4);

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

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

Manual de Administração Intranet BNI

Manual de Administração Intranet BNI Manual de Administração Intranet BNI Fevereiro - 2010 Índice 1. Apresentação... 3 2. Conceitos... 5 3. Funcionamento base da intranet... 7 3.1. Autenticação...8 3.2. Entrada na intranet...8 3.3. O ecrã

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

FICHA ORIENTADA Nº1. Barra de fórmulas. Área de trabalho T E C N O L O G I A S D E I N F O R M A Ç Ã O E C O M U N I C A Ç Ã O

FICHA ORIENTADA Nº1. Barra de fórmulas. Área de trabalho T E C N O L O G I A S D E I N F O R M A Ç Ã O E C O M U N I C A Ç Ã O T E C N O L O G I A S D E I N F O R M A Ç Ã O E C O M U N I C A Ç Ã O FICHA ORIENTADA Nº1 INTRODUÇÃO À FOLHA DE CÁLCULO CRIAÇÃO DE UMA FOLHA DE CÁLCULO O Microsoft Excel é um programa que faz parte das

Leia mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais