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

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: <http://www.postgresql.org/docs/9.1/static/sql.html> 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

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

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

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

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

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

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

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

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 é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

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

Leia mais

SQL 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

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

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

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

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

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

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

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

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

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

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

ADMINISTRAÇÃO DE BANCO DE DADOS

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

Leia mais

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

SQL. Data Query Language (DQL): permite extrair dados do banco de dados. Data Control Language (DCL): provê a segurança interna do banco de dados.

SQL. Data Query Language (DQL): permite extrair dados do banco de dados. Data Control Language (DCL): provê a segurança interna do banco de dados. SQL 1 1) Introdução A linguagem SQL é dividida nos seguintes componentes: Data Definition Language (DDL): permite a criação dos componentes do banco de dados, como tabelas, índices etc. Principais comandos

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

Leia mais

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

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

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

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

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

Leia mais

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

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

Leia mais

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

Laboratório de Banco de Dados II

Laboratório de Banco de Dados II Laboratório de Banco de Dados II Esquema de um banco de dados relacional Em aulas anteriores, vocês implantaram um projeto físico de banco de dados com todos os seus elementos, inclusive tratando do projeto

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 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas

Leia mais

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados SQL Linguagem de Definição de Dados Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala 937 2 quadrimestre

Leia mais

BANCO DE DADOS CONCEITOS BÁSICOS

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

Leia mais

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

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

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

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

Leia mais

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

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

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

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

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

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

SQL 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

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

UNISA Universidade de Santo Amaro. http://www.unisa.br. Material de Estudo. Módulo I: Básico Banco de dados SQL Server. http://www.unisa-sis.

UNISA Universidade de Santo Amaro. http://www.unisa.br. Material de Estudo. Módulo I: Básico Banco de dados SQL Server. http://www.unisa-sis. UNISA Universidade de Santo Amaro http://www.unisa.br Material de Estudo Módulo I: Básico Banco de dados SQL Server http://www.unisa-sis.info Junho/2010 Objetivo do Workshop Compartilhar e apresentar

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

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

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

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

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

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

Leia mais

DESENVOLVIMENTO DE SOFTWARE

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

Leia mais

18/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

18/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan 1 Unidade 2 Introdução a SQL 2 2 Introdução à SQL 2.1 Conceitos

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

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

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

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br INTRODUÇÃO AO SQL Ferramentas brmodelo Ferramenta Case PostgreSQL versão 8 ou superior SGBD Em 1986 o American

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

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

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

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS)

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS) BANCO DE DADOS SQL (DDL: CREATE TABLE, CONSTRAINTS) Prof. Edson Thizon Histórico Entre 1974 e 1979, o San José Research Laboratory da IBM desenvolveu um SGDB relacional que ficou conhecido como Sistema

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

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

Fundamentos do Sistema Gerenciador de Banco de Dados

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

Leia mais

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

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

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

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

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura

Leia mais

SQL (Linguagem de Consulta Estruturada)

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

Leia mais

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

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

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

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

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

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

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

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS Exemplos de Scripts SQL (PostgreSQL) Pizzaria 1 2 Criação de BANCO DE DADOS CREATE DATABASE nome_do_banco; CREATE DATABASE pizzaria; Criação de TABELAS SOMENTE COM CHAVE PRIMÁRIA CREATE TABLE nome_da_tabela

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

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

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

Leia mais

Histórico de revisões

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

Leia mais

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

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

Leia mais

Operação de União JOIN

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

Leia mais

Regras de Integridade. Profa. Késsia Marchi

Regras de Integridade. Profa. Késsia Marchi Regras de Integridade Restrições de Integridade Integridade refere-se a precisão ou correção de dados em um banco de dados; Restrição refere-se a impor uma condição para qualquer atualização. Antes de

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

Banco de Dados I. Linguagem de Consulta (parte I) DDL DML

Banco de Dados I. Linguagem de Consulta (parte I) DDL DML Banco de Dados I Linguagem de Consulta (parte I) DDL DML Linguagem de Consulta:SQL contéudo Structured Query Language Originalmente SEQUEL Structured English Query Language Projeta e Implementada pela

Leia mais

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Abordagem geral Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br Em primeiro plano, deve-se escolher com qual banco de dados iremos trabalhar. Cada banco possui suas vantagens,

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

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

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

PostgreSQL Performance

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

Leia mais

Programação SQL. 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

Structured Query Language (SQL) Aula Prática

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

Leia mais

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

Unidade III - BD Relacional

Unidade III - BD Relacional Structured Query Language (SQL) Conceitos Iniciais Álgebra Relacional - muito formal Cálculo Relacional de Tupla SEQUEL (Structured English QUEry Language) IBM - Sistema R SQL-86 SQL-92 SQL-3 102 Structured

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

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

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