BANCO DE DADOS Aplicação da Structure Query Language

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

Download "BANCO DE DADOS Aplicação da Structure Query Language"

Transcrição

1 INTRODUÇÃO A SISTEMAS DE BANCO DE DADOS 2012 BANCO DE DADOS Aplicação da Structure Query Language Este e-book visa, através de exemplos práticos, aplicar os conceitos da Structure Query Language (SQL) na manipulação de Banco de Dados relacionais. Ricardo R. Barcelar ricardobarcelar@ .com.br

2 APRESENTAÇÃO APRESENTAÇÃO objetivo deste material é apresentar a Structure Query Language como linguagem O padrão para manipulação de bancos de dados relacionais, norteando o estudo de banco de dados através de exemplos práticos aplicados a um Sistema Gerenciador de Banco de Dados amplamente conhecido e utilizado, o PostgreSQL. CELSO HENRIQUE PODEROSO DE OLIVEIRA, NAVATE e ELMASRI são referências para os estudos traçados neste material. Dessa forma, o conteúdo apresentado certamente poderá ser utilizado como referência na vida prática do profissional de computação que lida diariamente com Banco de Dados. Ricardo R. Barcelar

3 PROJETO FÍSICO DE BANCO DE DADOS Parte 1 PROJETO FÍSICO DE BANCO DE DADOS primeira etapa a fazer ao começa a trabalhar com banco de dados é estudar as técnicas A utilizadas para se criar um projeto de banco de dados: Modelo Entidade- Relacionamento, Modelo Lógico usando ferramenta Case, Normalização, Estratégias de Projeto de Banco de Dados, etc. Conhecedores dos conceitos de Codd, Chen, e outros autores que definiram o padrão relacional para banco de dados relacionais, é então, possível avançar mais um passo: implementar o banco de dados em uma ferramenta apropriada. Mas antes, é necessário conhecer alguns conceitos do Projeto Físico e dos Sistemas Gerenciadores de Banco de Dados especificamente. O Modelo Físico de Dados é a especificação em SQL - Structure Query Language Linguagem de Consulta Estruturada - do esquema relacional para o Sistema Gerenciador de Banco de Dados escolhido. Nesta fase, as estruturas de armazenamento e de recuperação de informações, bem como os mecanismos de acesso devem ser escolhidos, visando sempre o aprimoramento da performance dos aplicativos de Banco de Dados. Nesta fase devem ser especificados não apenas as tabelas criadas, mas também os índices necessários, as restrições de integridade (checks e triggers), algumas operações de inclusão, exclusão e atualização de dados para cada tabela, bem como as consultas que a aplicação deve realizar. 1.1 FATORES QUE INFLUENCIAM O PROJETO FÍSICO DE BANCO DE DADOS Esta fase do projeto de Banco de Dados objetiva não só propor uma apropriada estruturação de dados, mas fazê-lo de maneira que garanta um bom desempenho. Sendo assim, não é possível tomar decisões significativas sobre projetos físicos e análises de desempenho, até que conheçamos as consultas, as transações e as aplicações que devem ser executadas no banco de dados. Dessa forma, vamos discutir alguns fatores: a. Analisar as consultas e transações do Banco de Dados É importante ter uma ideia das intenções de uso do banco de dados, definindo as consultas e transações que esperamos que sejam realizadas em alto nível, especificando o seguinte: - Os arquivos que serão acessados pela consulta; 3

4 PROJETO FÍSICO DE BANCO DE DADOS - Os atributos nos quais quaisquer condições de seleção para a consulta estejam especificadas; - Os atributos nos quais quaisquer condições de junção ou condições para ligar múltiplas tabelas ou objetos para a consulta estejam especificadas; - Os atributos cujos valores serão trazidos através da consulta. Para cada operação ou transação de atualização, devemos especificar o seguinte: - Os arquivos que serão atualizados; - O tipo de operação em cada arquivo (insert, update, delete); - Os atributos nos quais as condições de seleção para uma exclusão ou atualização estejam especificadas. - Os atributos cujos valores serão alterados através de uma operação de atualização. b. Analisar a frequência esperada de solicitação (execução) de consultas e transações É necessário considerar as taxas de solicitação (execução), usadas de forma estatística em situações práticas para grandes volumes de processamento. c. Analisar as restrições de tempo de consulta e transações Neste caso, algumas consultas e transações podem ter rigorosas restrições de desempenho. Por exemplo, uma transação que deve ser interrompida se não for concluída em 20 segundos. d. Analisar as frequências esperadas de operações de atualização Um número mínimo de caminhos de acesso aos dados deve ser especificado para um arquivo que seja frequentemente atualizado, uma vez que atualizar os próprios caminhos de acesso desacelera as operações de atualização. e. Analisar as restrições de Unicidade em Atributos Caminhos de acesso aos dados devem ser especificados em todos os atributos candidatos a chave ou chave primária. A existência de um índice facilita a pesquisa nos arquivos de dados, pois este define um caminho de dados. Realizadas as análises iniciais, outra decisão importante é definir qual Sistema Gerenciador de Banco de Dados usar. É relevante levar em consideração vários fatores, como: - O modelo físico, visto que determinará qual a carga de trabalho que será exigida pelo Sistema Gerenciador de Banco de Dados, isso já eliminará algumas opções. - O custo. Uma locadora, por exemplo, irá adquirir uma licença Oracle ou SQL Server? - Plataforma de Sistema Operacional. Esta é uma decisão que não será analisada neste momento. 4

5 PROJETO FÍSICO DE BANCO DE DADOS 1.2 SQL - STRUCTURE QUERY LANGUAGE - LINGUAGEM ESTRUTURADA DE CONSULTA Como visto no módulo passado, é muito simples criar um script SQL através de uma ferramenta Case. No entanto, este não será o foco desta sessão. Aqui aprenderemos a criá-lo sem auxílio de ferramentas case. Para tanto, é necessário conhecermos a linguagem SQL. Apesar do nome, fazer consultas a bancos de dados não é a única função de SQL. Ela é utilizada para criar tabelas, inserir, excluir e alterar dados no banco de dados, além de outras utilizações. A SQL foi desenvolvida na década de 70 pela IBM em uma das primeiras tentativas de desenvolver um banco de dados relacional. Tornou-se padrão de fato depois de 1986, quando a ANSI (American National Standards Institute) endossou como linguagem padrão para Banco de Dados relacionais e desde então, já sofreu três atualizações oficiais: em 1989, 1992 e Nesta última, algumas das mudanças mais significativas estão relacionadas com a definição dos padrões para Banco de Dados Objeto-Relacionais. Devido ao sucesso da forma de consultar e manipular dados da SQL, dentro de um ambiente de banco de dados, a utilização da SQL foi se tornando ainda maior. Cabe ressaltar que cada implementação de SQL possui uma adaptação da sintaxe para resolver determinados problemas, portanto, qualquer comando mostrado pode ser usado de forma diferente em um determinado Sistema Gerenciador de Banco de Dados. Recomenda-se a leitura do manual do fabricante para maiores informações sobre o uso da linguagem SQL em Sistema Gerenciador de Banco de Dados comerciais. Atualmente, a linguagem SQL assume um papel muito importante nos sistemas de gerenciamento de banco de dados, podendo ter muitos enfoques. Através de comandos SQL, é possível montar consultas poderosas sem a necessidade da criação de um programa, ou utilizar comandos SQL embutidos em programas de aplicação que acessam os dados armazenados. Devido ao fato de possuir várias aplicações, a linguagem SQL provê suporte a várias funções. Que consiste em: - DDL (Linguagem de definição de dados), onde os dados a serem armazenados são definidos e estruturados; (Create, Alter e Drop). - DML (Linguagem de manipulação de dados), que permite a inclusão, remoção, seleção ou atualização de dados armazenados no banco de dados; Controle de acesso, permitindo proteção dos dados de manipulações não autorizadas; (Select, Insert, Update, Delete, Commit e Rollback). - DCL (Linguagem de controle de dados) uma subclasse da DML responsável pelas permissões de acesso ao banco; (Grant e Revoke). Restrições de Integridade, que auxiliam no processo de definição da integridade dos dados, protegendo contra corrupções, inconsistências e falhas do sistema de computação. Além dessas características principais, ainda podemos citar: - Visões, onde são especificadas as consultas disponíveis através de tabelas virtuais (Views). 5

6 PROJETO FÍSICO DE BANCO DE DADOS - Gatilhos a fim de automatizar processos no banco (Triggers). Outra característica é a capacidade de cancelar uma série de atualizações ou gravar depois de concluir uma série de atualizações. 1.3 CRIANDO UM BANCO DE DADOS Esta etapa trata da Data Definition Language (DDL). O processo básico consiste simplesmente em atribuir tipo de dado e tamanho para cada um dos atributos que foram identificados. Atenção: - Cada Sistema Gerenciador de Banco de Dados adota um terminador de comando. O mais comum é o ponto e vírgula (;) - Quanto aos comandos apresentados, os Sistemas Gerenciadores de Banco de Dados não são sensíveis a letras maiúsculas ou minúsculas. Contudo, o conteúdo das colunas normalmente é sensível, portanto muito cuidado Desnormalização de dados Em uma análise mais profunda, é muitas vezes conveniente avaliar a necessidade de alguns campos redundantes na tabela. Esse processo é chamado de desnormalização de dados. Ocorre que, quando idealizamos o modelo de dados, utilizamos o conceito de processador perfeito, em que as informações são transmitidas sem custo instantaneamente. No entanto, mesmo bancos de dados avançados possuem limitações. Esta técnica pode ser exemplificada pelo caso dos campos calculados que são eliminados na 3ª Forma Normal. Quando se tem um grande banco de dados que trata de Notas Fiscais, por questões de performance costuma-se driblar um pouco a regra e coloca-se o valor total da nota como um campo na tabela. Isso pode ser feito quando o banco de dados possui mecanismo de controle de transações, em que uma eventual gravação no banco de dados implique necessariamente a gravação na outra ponta. Esta operação deve ser feita por meio de gatilhos (triggers) para garantir a integridade das informações Definição de dados Antes de criar as tabelas no banco de dados, é preciso definir quais são as características de cada um dos campos. As características que o SQL exige são o tipo do dado e o tamanho de cada campo. As informações aqui apresentadas são utilizadas pela maioria dos bancos de dados. Eventuais mudanças devem ser consultadas na documentação do Sistema Gerenciador de Banco de dados adotado. TIPO DE DADO Integer ou Int Smallint DESCRIÇÃO Número positivo ou negativo inteiro. O número de bytes utilizado varia de acordo com o banco de dados utilizado. Mesma função do Inteiro, mas ocupa cerca da metade do espaço 6

7 PROJETO FÍSICO DE BANCO DE DADOS Numeric Decimal Real Double Precision Float Bit Bit Varying Date Time Timestamp Character ou char Character Varying ou Varchar Interval Número positivo ou negativo de ponto flutuante. Deve-se informar tamanho do campo e a quantidade de casas decimais. Semelhante ao Numeric, mas, em alguns bancos de dados, poderá ter uma maior precisão após a vírgula. Número de ponto flutuante de simples precisão. A diferença básica é que os valores serão armazenados em representação exponencial, portanto será arredondado para o nível mais próximo de precisão. Número de ponto flutuante de dupla precisão. Comporta-se como o Real, mas permite maior aproximação de resultados. Número de ponto flutuante em que você define o nível de precisão (número de dígitos significativos) Armazenamento de um número fixo de bits. O número de bits deve ser indicado, do contrário o padrão será 1. Igual ao Bit, permitindo armazenar valores maiores. Normalmente, utilizase para armazenar imagens. Permite armazenar datas Permite armazenar horários Permite armazenar uma combinação de data e hora Permite armazenar cadeias de caracteres (letras, símbolos e números). O tamanho informado é fixo e indica o tamanho máximo da cadeia de caracteres. Permite armazenar cadeias de caracteres, mas com tamanho variável. Neste caso, especifica-se o tamanho máximo da coluna. Se for utilizado menos espaço que o máximo definido, o espaço restante não será ocupado. Intervalo de data ou hora Adaptando o modelo de dados Com base nas informações acima, adaptaremos nosso modelo de dados. Para nossos estudos utilizaremos o modelo lógico abaixo: 7

8 PROJETO FÍSICO DE BANCO DE DADOS Figura 1- Modelo de dados Notação dos relacionamentos 1:n FK obrigatória. Parte da chave primária 1:n FK não obrigatória n:m Muitos para muitos (cria-se a tabela associativa) Criação de Tabelas Tabelas são as estruturas mais importantes de um banco de dados. Nas tabelas estará o conteúdo que representa cada objeto do mundo real. As tabelas criadas no banco de dados ficam armazenadas em outras tabelas internas do gerenciador de banco de dados denominadas Dicionário de Dados. 8

9 PROJETO FÍSICO DE BANCO DE DADOS Sintaxe: CREATE TABLE nome_da_tabela (coluna1 tipo_de_dado constraint, coluna2 tipo_de_dado constraint, coluna3 tipo_de_dado constraint); CREATE departamento (dep_id INTEGER NOT NULL, dep_nome VARCHAR(100), dep_atividade VARCHAR(100), empr_id INTEGER NOT NULL); Constraints Integridade Referencial Restrição de Integridade (RI) Constraints são regras agregadas a colunas ou tabelas. Assim, pode-se definir um campo como obrigatório ou não, ou aceitar apenas alguns valores predefinidos. No caso de regras aplicadas a tabelas, tem-se a definição de chaves primárias (PK) e estrangeiras (FK). Um bom Sistema Gerenciador de Banco de Dados deve evitar a entrada de informação incorreta ou inconsistente em sua base de dados, garantindo, com isso, a qualidade da informação inserida. Uma restrição de integridade (RI) é uma condição especificada no esquema da base de dados para restringir a informação a ser armazenada. As RI são especificadas e conferidas em dois momentos diferentes: - Na especificação da RI: se dá na definição do esquema da base de dados pelo usuário ou pelo administrador da base de dados (DBA); - Na conferência da RI: é feita pelo banco de dados toda vez que uma relação é modificada por uma aplicação sendo executada TIPOS DE CONSTRAINTS MAIS COMUNS As constraints podem variar muito de um banco para outro. a) Chave Primária: é a coluna identificadora de um registro na tabela. Para representála basta acrescentar a palavra chave PRIMARY KEY seguida do nome da coluna.... PRIMARY KEY (cliente_id),... b) Chave Estrangeira: é o campo que estabelece o relacionamento entre duas tabelas. Dessa forma, deve-se especificar na tabela que contém a chave estrangeira quais são essas colunas e a qual tabela está relacionada. Ao determinar este tipo de relacionamento, fica garantida a integridade das informações. Os valores presentes na coluna definida com chave estrangeira devem ter um correspondente na outra tabela. 9

10 PROJETO FÍSICO DE BANCO DE DADOS Exemplo1:... FOREING KEY(coluna) REFERENCES (tabela) ON UPDATE ação ON DELETE ação Ação: Determina qual ação o banco de dados deve tomar quando for excluída ou alterada uma linha da tabela que contém referência a esta chave. Pode ser: - SET NULL: Altera o conteúdo da coluna para nulo, perdendo a referência, sem deixar valores inconsistentes. - SET DEFAULT: Altera o conteúdo da coluna pra um valor especificado na cláusula DEFAULT, se houver. Exemplo2: - CASCATE: Exclui ou altera todos os registros que se relacionam com a ele. - NO ACTION: Em caso de alteração, não modifica os valores que se relacionam a eles. - RESTRICT: Não permite a exclusão da PK. CREATE TABLE funcionario (fun_id INTEGER, fun_nome VARCHAR(50), fun_admissao DATE, dept_id INTEGER, PRIMARY KEY (fun_id), FOREIGN KEY (dept_id) REFERENCES departamento ON DELETE CASCADE ON UPDATE NO ACTION c) DEFAULT: Atribui um conteúdo padrão a uma coluna da tabela.... prod_quantidade INTEGER DEFAULT 1,... d) NOT NULL: Indica que o conteúdo de uma coluna não poderá ser Nulo. Lembre-se, em banco de dados SQL, colunas sem valor atribuído possuem conteúdo Nulo. 10

11 PROJETO FÍSICO DE BANCO DE DADOS... cliente_nome VARCHAR(50) NOT NULL,... e) UNIQUE: Indica que não pode haver repetição no conteúdo da coluna. Não é a mesma coisa que chave primária. A chave primária, além de não permitir repetição, não pode conter valores nulos, dentre outras característica não existentes nesta restrição.... cliente_cpf NUMERIC(11) UNIQUE,... f) CHECK: Definição de domínio: Um domínio é uma expressão de valores possíveis para o conteúdo de uma coluna.... sexo CHAR(1) CHECK (UPPER(sexo) = M OR UPPER(sexo) = F ), Alteração da estrutura da tabela Para alterar a estrutura de uma tabela, utilizamos o comando ALTER TABLE ACRESCENTAR NOVAS COLUNAS O comando utilizado para acrescentar novas colunas é muito semelhante ao da criação de colunas em uma tabela: Sintaxe: ALTER TABLE nome_da_tabela ADD coluna1 tipo_de_dado constraint, coluna2 tipo_de_dado constraint,... ALTER TABLE departamento ADD dep_ramal NUMERIC(4) UNIQUE ACRESCENTAR NOVAS CONSTRAINTS 11

12 PROJETO FÍSICO DE BANCO DE DADOS O comando utilizado para acrescentar novas constraints é muito semelhante ao da criação de constraints em uma tabela: Sintaxe: ALTER TABLE nome_da_tabela ADD (constraint) ALTER TABLE departamento ADD PRIMARY KEY (dep_id) MODIFICAR COLUNAS O comando utilizado para modificar qualquer característica de uma coluna. Sintaxe: ALTER TABLE nome_da_tabela ALTER COLUMN (coluna tipo_dado constraint) ALTER TABLE departamento ALTER COLUMN dep_nome TYPE VARCHAR(150); ALTER TABLE dep_nome ALTER COLUMN dep_nome SET NOT NULL; Os comandos de alteração da estrutura/características de um banco de dados pode variar de um Sistema Gerenciador de Banco de Dados para outro. Portanto, é importante, em caso de dúvidas, consultar o manual da ferramenta. O manual do PostgreSql pode ser encontrado em: < EXCLUINDO ELEMENTOS Pelo padrão SQL, deveria ser possível excluir colunas ou constraints de uma tabela. Alguns bancos de dados não permitem a exclusão de colunas. Sintaxe: ALTER TABLE nome_da_tabela DROP elemento ALTER TABLE departamento DROP dep_ramal; ALTER TABLE departamento DELETE PRIMARY KEY; Abaixo um exemplo onde várias alterações estão sendo realizadas em um só comando: ALTER TABLE fornecedores ADD cgc NUMERIC(14), DROP tipofornecedor, 12

13 PROJETO FÍSICO DE BANCO DE DADOS ADD CONSTRAINT ck_ CHECK (e_mail OR e_mail IS NULL) Eliminando uma Tabela Para eliminar uma tabela do banco de dados, utilizamos o comando DROP TABLE seguido do nome da tabela. Alguns bancos somente permitirão esta operação se esta não estiver relacionada à outra tabela. Sintaxe: DROP TABLE nome_da_tabela DROP TABLE departamento; 5. EXERCÍCIOS Usando a Linguagem SQL crie o Schema de banco de dados para o seguinte modelo lógico: 13

14 ÍNDICE Parte 2 índice uando criamos a estrutura de um banco de dados temos que usar artifícios que Q melhorem a performance na recuperação dos dados que lá serão armazenados. Dentre várias técnicas existentes para melhorar a esta performance existe a criação de índices. O Índice é um arquivo auxiliar associado a uma Tabela. Sua função é acelerar o tempo de acesso às linhas de uma Tabela, criando ponteiros para os dados armazenados em colunas especificas. O Banco de dados usa o Índice de maneira semelhante ao índice remissivo de um livro, verifica um determinado assunto no índice e depois localiza a sua posição em uma determinada página. 1.1 CRIAÇÃO DE ÍNDICE O índice serve para prover um acesso rápido a linhas das tabelas. Por meio dele é possível unir uma ou mais colunas por onde o acesso é mais frequente. Temos uma tabela de pessoas e normalmente queremos fazer buscas em ordem alfabética. O nome, não é uma boa chave primária para a tabela por ser alfanumérica, o que deixa as pesquisas mais lentas e também pela repetição de nomes. Dessa forma, cria-se um índice para o nome da pessoa. Assim, garante-se um acesso mais rápido aos nomes, visto que os dados buscados estariam fora de sequência. Os valores indexados são armazenados em um objeto do banco de dados em ordem, o que permite ao Sistema Gerenciador de Banco de Dados pesquisar primeiro no índice, para depois buscar na tabela. É importante ressaltar que alguns bancos de dados necessitam de índices constantemente atualizados, pois eventualmente estes perdem a referência ao dado. O índice quando criado com critérios bem definidos traz uma enorme vantagem, mas por outro lado pode trazer enormes problemas, visto que todo trabalho de um Sistema Gerenciador de Banco de Dados envolve um custo. Não é conveniente sair criando índices para cada um dos campos da tabela sem que haja uma razão para isto. Quando um índice é criado uma das tarefas do Sistema Gerenciador de Banco de Dados é mantê-lo atualizado a cada nova inclusão, exclusão e alteração nos dados. Além do mais, o índice também ocupa espaço no banco de dados, pois é criado um novo objeto que manterá informações indexadas e armazenará a referência à linha física da tabela. 14

15 ÍNDICE NOTA: Se são criados muitos índices, pode-se prejudicar o desempenho do banco de dados Se são criados poucos índices, pode-se prejudicar o desempenho da aplicação. Quando criar índices? a) Chaves Primárias: se o banco de dados não criá-las automaticamente, é necessário fazê-lo manualmente. b) Chave Estrangeira: é sempre recomendável criar, principalmente, quando a tabela que faz referência é muito grande. c) Colunas utilizadas frequentemente na cláusula WHERE ou JOIN do comando SELECT. Quando não criar índices? a) Colunas com muitos valores iguais. b) Colunas com muito conteúdo NULO (não inicializados). c) Tabelas pequenas. NOTA: Sempre que uma consulta estiver muito lenta, verifique a possibilidade de criar índice para facilitar a busca. Para criar um índice, utilize a seguinte sintaxe: Sintaxe: CREATE INDEX nome_index ON nome_tabela (coluna [ASC DESC]) CREATE INDEX idx_dep_nome ON departamento(dep_nome) CREATE INDEX idx_dep_varios ON departamento(dep_nome,dep_ramal) Para excluir um índice, utilize a seguinte sintaxe: Sintaxe: DROP INDEX nome_index DROP INDEX idx_dep_varios Não é possível modificar índices. Para alterar um índice, elimine-o e, depois, recrie-o. NOTA: Ao eliminar uma tabela, os índices e as constraints são eliminados automaticamente. 15

16 ÍNDICE 1.2 ACESSO A DADOS EM UM SISTEMA GERENCIADOR DE BANCO DE DADOS Para compreender melhor a utilização de índices é importante conhecer a estrutura de acesso à dados em um Sistema Gerenciador de Banco de Dados. Figura 2 - Organização de um SGBD Neste contexto, observamos que os bancos de dados são armazenados fisicamente como arquivos de registros, que são geralmente armazenados em discos magnéticos. Assim, os meios de armazenamento formam uma hierarquia de armazenamento que inclui duas categorias principais: - Armazenamento Principal: Operados diretamente pela CPU, como a Memória Principal e Memória Cache. - Armazenamento Secundário: Inclui os discos magnéticos, óticos e fitas. Geralmente possuem uma capacidade maior, porém são mais lentos e não podem ser acessados diretamente pela CPU. Figura 3 - Estrutura de armazenamento 16

17 ÍNDICE A maioria dos bancos de dados está armazenada sob maneira permanente (ou persistente) sob a forma de armazenamento secundário. Geralmente, o Sistema Gerenciador de Banco de Dados possui diversas opções disponíveis para organizar os dados, e o processo relativo ao projeto de banco de dados físico envolve escolher entre as opções, as técnicas de organização de dados. Os dados armazenados em disco são organizados na forma de arquivos de registros. Cada qual é uma coleção de valores de dados que podem ser interpretados como fatos sobre entidades, seus atributos e seus relacionamentos. Para acessar uma informação no banco de dados considera-se o tipo de requisição e a estrutura utilizada para organização e acesso às chamadas páginas de dados Organização dos dados em Memória Secundária - Arquivos Heap ou pile (aglomerado): Melhor opção quando o acesso típico é uma busca sequencial, sem ordem, recuperando todos os registros. Os registros são posicionados no arquivo pela ordem na qual foram incluídos. São utilizados pelos índices secundários e utilizados para coletar e armazenar registros de dados para utilização futura. um simples arquivo de registros de dados. - Arquivos Ordenados: Melhor opção se os registros devem ser recuperados em alguma ordem, ou quando somente uma porção contígua dos registros ordenados é necessária. Arquivo de dados, possivelmente ordenado, além de vários índices. - Arquivos Hashed: Melhor para seleções de igualdade. Uma função hash é aplicada ao valor do campo de um registro e retorna o endereço do bloco do disco no qual o registro está armazenado. Para a maioria dos registros, precisamos somente do acesso a um único bloco para recuperar aquele registro. Não é adequado para acesso sequencial ordenado. Existem outras maneiras ou possibilidades para organizar arquivos, como árvores-b e arquivos de registro mistos, que implementam relacionamentos entre registros de diferentes tipos fisicamente como parte da estrutura de armazenamento. 1.3 INDEXAÇÃO Como visto, os índices são estrutura de dados que recebem como entrada uma propriedade de registro (por exemplo, um valor de um ou mais campos) e os encontra com essa propriedade rapidamente. Um índice permite localizar um registro sem ter que examinar mais que uma pequena fração dos registros possíveis. Assim sendo, podemos concluir que os campos cujos valores o índice se baseia formam a chave de pesquisa. NOTA Índices são estruturas de dados auxiliares cujo único propósito é tornar mais rápido o acesso a registros baseado em certos campos, chamados campos de indexação. 17

18 ÍNDICE Tipos de Índices - Índices primários - baseado na chave de ordenação; - Índices de agrupamentos (clustering) - baseado no campo de ordenação não-chave de um arquivo; - Índices secundários - baseado em qualquer campo não ordenado de um arquivo; - Índices multiníveis; - Árvores B e B+; - Tabelas Hash; Um dos mais antigos esquemas de índice utilizados em sistema de banco de dados é chamado de arquivo indexado sequencialmente, que são projetados para aplicações que requerem tanto o processamento sequencial de um arquivo inteiro quanto o acesso aleatório a registros individuais. Estes índices podem ser: - Densos: É quando o número de entradas do índice é igual ao número de registros no arquivo de dados. Cada registro no arquivo de índice contém o endereço de um registro no arquivo de dados. Ponteiros Figura 4 - Índice denso sobre um arquivo de dados sequenciais - Esparços: Usa-se menos espaço de armazenamento que o índice denso ao custo de um tempo um pouco maior para localizar um registro dada a sua chave. É quando o número de entradas do índice é igual ao número de blocos do arquivo de dados. Apenas alguns registros de dados são representados no arquivo de índices. Em geral, aponta para o 1º registro de bloco. Ponteiros Figura 5 - Índice esparso sobre um arquivo de dados sequenciais 18

19 ÍNDICE ÍNDICE PRIMÁRIO É o índice associado a uma chave primária. Nada mais é do que um arquivo ordenado, cujos registros são de tamanho fixo com dois tampos. O primeiro, do mesmo tipo do campo chave de ordenação (chave primária) e o segundo é um ponteiro para um bloco do disco ou arquivo de dados. Utiliza índice esparço. Figura 6 - Índice Primário ÍNDICE DE AGRUPAMENTO (CLUSTERING) Se os registros de um arquivo estiverem ordenados fisicamente por um campo que não seja chave, ou seja, que não possui um valor distinto, esse campo é chamado de campo clustering. Semelhante ao índice primário possui dois campos de ordenação, no entanto o primeiro campo é do mesmo tipo do campo clustering e o segundo é um ponteiro para o bloco. Neste sentido sempre há a reserva de um bloco inteiro para cada valor de campo clustering, melhorando operações de inclusão e exclusão. Em simples palavras é um índice associado a um campo não chave. Utiliza índice esparço. 19

20 ÍNDICE Figura 7 - Índice de Agrupamento ÍNDICE SECUNDÁRIO No índice secundário o campo de indexação é um campo não ordenado do arquivo de dados. Pode haver muitos índices secundários para um mesmo arquivo. Dois casos: - O campo de indexação é um campo chave (às vezes chamado de chave secundária). - O campo de indexação não é chave. 20

21 ÍNDICE É possível que mais de um registro tenha o valor da chave. Isso ocorre, por exemplo, quando a chave de pesquisa não é a chave primária; Um índice secundário é um índice denso, normalmente com duplicatas. O índice consiste em pares de chaves-ponteiro. Neste caso, sempre que são permitidas chaves de pesquisas duplicadas. Figura 8 - Índice Secundário Outra possibilidade para índices secundários é a entrada de índice para um bloco de dados onde a menor chave de pesquisa é nova, isto é, a chave não apareceu em um bloco anterior; Se não há chave de pesquisa nova no bloco, então sua entrada de índice contém a única chave de pesquisa encontrada nesse bloco; Pode-se encontrar os registros de uma chave de pesquisa K examinando-se o índice para a primeira entrada cuja chave é: - Igual a K - Menor que K, mas a próxima chave é maior que K Segue-se o ponteiro da entrada. Se for encontrado pelo menos um registro com a chave de pesquisa K, então a busca continua em blocos adicionais, até encontrar todos os registros com a chave de pesquisa K. Figura 9 - Índice Secundário 21

22 ÍNDICE Usa o índice esparso indicando a nova chave de pesquisa mais baixa em cada bloco. ORGANIZANDO AS IDÉIAS: Campos ordenados Campos não ordenados Campo chave Índice primário Índice Secundário (chave) Campo não chave Índice de agrupamento Índice Secundário (não chave) Tipo de Índice Número de Entradas Denso ou Esparço Primário Nº de blocos no arquivo de dados Esparço Agrupamento Nº de valores distintos do campo de Esparço indexação Secundário (chave) Nº de registros no arquivo de dados Denso Secundário (não Nº de registros no arquivo de dados Denso chave) Nº de valores distintos de indexação Esparço ÍNDICES MULTINÍVEIS Uma pesquisa binária é aplicada ao índice para localizar ponteiros para um bloco do disco ou para um registro no arquivo que possui um valor de campo índice específico. Se o arquivo de índices se torna muito grande para ser armazenado em bloco de disco, é interessante indexá-lo em mais de um nível. A vantagem é que um índice pequeno pode ser mantido em memória e o tempo de busca é mais baixo; por outro lado, muitos níveis de índices podem aumentar a complexidade do sistema, sendo mais recomendado a utilização de outra estrutura como a que veremos mais a frente: árvore-b. Figura 10 - Índices Multiníveis NOTA Um índice multinível é um índice de índice. 22

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

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

Comandos DDL. id_modulo = id_m odulo

Comandos DDL. id_modulo = id_m odulo Comandos DDL Estudo de Caso Controle Acadêmico Simplificado Uma escola contém vários cursos, onde cada aluno possui uma matricula num determinado curso. Estes cursos, por sua vez, possuem módulos, aos

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

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

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

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

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

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

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

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

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

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

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

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

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

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

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

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

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

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

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

Disciplina: Unidade V: Prof.: E-mail: Período:

Disciplina: Unidade V: Prof.: E-mail: Período: Encontro 17 Disciplina: Sistemas de Banco de Dados Unidade V: Introdução à Linguagem SQL Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM 13. Introdução à Linguagem SQL Introdução

Leia mais

Incluindo, atualizando e excluindo linhas nas tabelas

Incluindo, atualizando e excluindo linhas nas tabelas 5 Incluindo, atualizando e excluindo linhas nas tabelas Agora que nossas tabelas estão devidamente criadas, relacionadas e com índices para agilizar as pesquisas, vamos movimentar os dados nas tabelas

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

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

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

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

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DDL Frederico D. Bortoloti freddb@ltc.ufes.br Introdução Modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language)

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

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

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

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

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

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

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

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

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Arquivos de registros Abstração do SGBD Pode ser criado, destruido e ter registros incluidos e excluidos nele Tb suporta a varredura Uma relacao geralmente é armazenada como um arquivo de registros Camada

Leia mais

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

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

Leia mais

Banco de dados 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

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

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

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

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

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

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

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

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

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados Capitulo 2 1. MODELO LÓGICO DE BANCO DE DADOS... 2 1.1 Definição... 2 1.2 Mapeando o modelo conceitual para o modelo lógico... 2 1.2 Dicionário de dados... 3 2. MODELO FÍSICO DO BANCO DE DADOS... 4 2.1

Leia mais

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) ) TADS Exercício Laboratório I Analise o modelo de banco de dados abaixo: MUSICA FAIXA Codigo_Musica: INTEGER Nome_Musica: VARCHAR(60) Duracao: NUMERIC(6,2) Codigo_Musica: INTEGER (FK) Codigo_CD: INTEGER

Leia mais

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

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo ) Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Aula 10 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas

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

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

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec SQL Curso Prático Celso Henrique Poderoso de Oliveira Novatec 1 Introdução Desde o início da utilização dos computadores, sabemos que um sistema é feito para aceitar entrada de dados, realizar processamentos

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

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

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

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

EXERCÍCIOS PRÁTICOS. Banco de Dados

EXERCÍCIOS PRÁTICOS. Banco de Dados EXERCÍCIOS PRÁTICOS Banco de Dados Introdução ao uso do SQL Structured Query Language, considerando tanto DDL Data Definition Language quanto DML Data Manipulation Language. Banco de Dados selecionado:

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

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES BANCO DE DADOS GERENCIAL 1 AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES Integridade de domínio A integridade de domínio é a validade de entradas para uma coluna específica. É possível aplicar a integridade

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

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

Árvores Binárias Balanceadas

Árvores Binárias Balanceadas Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios

Leia mais

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

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

Leia mais

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

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. 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 Agenda Linguagem SQL: Introdução; Construção/Definição de tabelas. 2 Linguagem SQL SQL - Structured Query Language;

Leia mais

Índices* Professora Rosane Minghim. * Baseado no material de Leandro C. Cintra e M. C. F. de Oliveira. Fonte: Folk & Zoelick, File Structures.

Índices* Professora Rosane Minghim. * Baseado no material de Leandro C. Cintra e M. C. F. de Oliveira. Fonte: Folk & Zoelick, File Structures. Índices* Professora Rosane Minghim * Baseado no material de Leandro C. Cintra e M. C. F. de Oliveira. Fonte: Folk & Zoelick, File Structures. Índice Em geral, um índice fornece mecanismos para localizar

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

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 1 Linguagem SQL Linguagem de definição de dados (DDL) DISCIPLINA: Banco de Dados

Leia mais

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 1, 2 e 3) Clodis Boscarioli Agenda: Estruturas de Índices; Conceitos; Tipos de Índices: Primários; Secundários; Clustering; Multiníveis;

Leia mais

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

Principal: construir uma base de dados para produção de informações sobre internações hospitalares; Principal: construir uma base de dados para produção de informações sobre internações hospitalares; Específicos: - criar um banco de dados para armazenar registros sobre internações hospitalares; - produzir

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

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

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

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

Tarefa Orientada 10 Obter informação a partir de uma tabela

Tarefa Orientada 10 Obter informação a partir de uma tabela Tarefa Orientada 10 Obter informação a partir de uma tabela Objectivos: Consultar dados de uma tabela Utilizar operadores aritméticos, relacionais, lógicos, de concatenação de cadeias de caracteres, LIKE

Leia mais

Linguagem SQL. Comandos Básicos

Linguagem SQL. Comandos Básicos Linguagem SQL Comandos Básicos Caetano Traina Júnior Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.sc.usp.br Comando

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais

Introdução ao SQL Avançado

Introdução ao SQL Avançado Introdução ao SQL Avançado Introdução as consultas, manipulação e a filtragem de dados com a linguagem SQL Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão

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

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

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak Usando PostgreSQL na Regra de Negócio de um ERP Fabiano Machado Dias Eduardo Wolak Regra de negócio? São todas as regras existentes num sistema de informação, que ditam seu comportamento, suas restrições

Leia mais

4.6. SQL - Structured Query Language

4.6. SQL - Structured Query Language 4.6. SQL - Structured Query Language SQL é um conjunto de declarações que é utilizado para acessar os dados utilizando gerenciadores de banco de dados. Nem todos os gerenciadores utilizam SQL. SQL não

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

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

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL SQL Structured Query Language Linguagem de Consulta Estruturada; Originou-se da linguagem SEQUEL (1974); Revisada e chamada de SQL em 1976/77; Em 1986, padronizada pelo ANSI/ISO - chamada SQL-86; Em 1987

Leia mais

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. Manual de Instruções ECO Editor de Conteúdo Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. O ECO é um sistema amigável e intui?vo, mas abaixo você pode?rar eventuais dúvidas e aproveitar

Leia mais

INTRODUÇÃO. Diferente de Bando de Dados

INTRODUÇÃO. Diferente de Bando de Dados INTRODUÇÃO Diferente de Bando de Dados 1 INTRODUÇÃO DADOS São fatos conhecidos que podem ser registrados e que possuem significado. Ex: venda de gasolina gera alguns dados: data da compra, preço, qtd.

Leia mais

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento. Roteiro Modelo de Dados Relacional Posicionamento Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz Introdução

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

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

Treinamento sobre SQL

Treinamento sobre SQL Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. No Enterprise Manager, você pode visualizar e fazer alterações na

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais

Introdução aos cálculos de datas

Introdução aos cálculos de datas Page 1 of 7 Windows SharePoint Services Introdução aos cálculos de datas Aplica-se a: Microsoft Office SharePoint Server 2007 Ocultar tudo Você pode usar fórmulas e funções em listas ou bibliotecas para

Leia mais

Integridade dos Dados

Integridade dos Dados 1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições

Leia mais