Tecnologias e Linguagens para Banco de Dados I Respostas: 1. O que é um Sistema Gerenciador de Banco de Dados ? É um conjunto de softwares que tem por função armazenar grande volume de dados, mantendo as informações coesas, controlando o acesso as mesmas, disponibilizando muitas ferramentas de apoio ao desenvolvimento de aplicações e o monitoramento constante de todas as tarefas. 2. O que é um dado ? É a representação de uma informação, registrada, ou armazenada. 3. O que é um campo ? É a menor porção ou unidade destinada ao armazenamento de valores em um arquivo ou tabela. Cada campo pode conter apenas um tipo de dado finito. Prof. João Ricardo Andrêo 31/05/2017 14:52 1 Tecnologias e Linguagens para Banco de Dados I 4. O que é um registro ? É um conjunto de campos valorizados de uma tabela. É a unidade básica para armazenamento e recuperação de dados, que identifica a um único item de informação de uma tabela. 5. O que é uma tabela ? É um conjunto ordenado de registros (linhas) que possue o mesmo número de colunas. Um banco de dados pode ser formado por uma ou mais tabelas. 6. Quanto a classificação de banco de dados, baseada no modelo, cite 3 tipos. São os modelos: relacional, hierárquico, rede e objeto. Prof. João Ricardo Andrêo 31/05/2017 14:52 2 Tecnologias e Linguagens para Banco de Dados I Atividades: Criar as seguintes tabelas: FORNECEDOR (Nome Tabela) Nome (Campo) Tipo Tamanho CODIGO NUMERO INTEIRO NOME TEXTO 45 CONTATO TEXTO 45 ENDERECO TEXTO 40 CIDADE TEXTO 20 ESTADO TEXTO 2 CEP TEXTO 9 DDDFONE TEXTO 4 NRFONE TEXTO 8 DDDFAX TEXTO 4 NRFAX TEXTO 8 Prof. João Ricardo Andrêo 31/05/2017 14:52 3 Tecnologias e Linguagens para Banco de Dados I VENDEDOR (Nome da Tabela) Nome (Campo) Tipo Tamanho RG NUMERO INTEIRO LONGO NOME TEXTO 45 ENDERECO TEXTO 40 CIDADE TEXTO 20 ESTADO TEXTO 2 CEP TEXTO 9 DDDFONE TEXTO 4 NRFONE TEXTO 8 DATA_ADM DATA/HORA SALBRUTO NUMERO MOEDA / NUMERIC(10,2) TXCOMISSAO NUMERO DUPLO/FLOAT Prof. João Ricardo Andrêo 31/05/2017 14:52 4 Tecnologias e Linguagens para Banco de Dados I Tipos de Dados: Texto – É o tipo padrão do Microsoft Access. Este tipo é utilizado para armazenar informações alfanuméricas, isto é, letras, números ou caracteres especiais (símbolos como : ; / ? @ $ ! > <). Estes campos podem ter no máximo 255 caracteres. Número – É utilizado para armazenar informações de origem numérica, além dos sinais: + (positivo) e – (negativo). O tamanho de um campo numérico está subdividido em: Byte, Inteiro (Integer), Inteiro Longo (Long), Simples (Single) ou Duplo (Double). Data/Hora – É utilizado para armazenar dados do tipo data (01/02/2010) e hora (10:05:03). Internamente este campo é definido como tipo numérico de tamanho duplo. Prof. João Ricardo Andrêo 31/05/2017 14:52 5 Tecnologias e Linguagens para Banco de Dados I Tipos de Dados: (Continuação) Moeda – Este tipo é utilizado para armazenar valores numéricos que represente importância monetária – dinheiro. Sim/Não – Este tipo, também conhecido como lógico ou booleano, é utilizado para armazenar uma informação lógica, isto é, situação verdadeira ou falsa, positiva ou negativa, ativado ou desativado, sim ou não. Memorando – É utilizado para armazenar informações textuais que ultrapasse 255 caracteres, atingindo o máximo de 64000. Autonumeração – Este tipo é equivalente ao numérico de tamanho Inteiro Longo. Este campo é controlado pelo Access, iniciando em 1, sendo incrementado a cada novo registro inserido na tabela. Obs.: Qdo ocorre a exclusão de um registro, por exemplo o número 2, a sequência não é atualizada, portanto ficará: 1, 3, 4, 5 e assim por diante. Prof. João Ricardo Andrêo 31/05/2017 14:52 6 Tecnologias e Linguagens para Banco de Dados I Tipos de Dados: (Continuação) Objeto OLE – Este é utilizado para armazenar informações criadas por outros aplicativos, como planilhas, textos, sons, imagens etc. Prof. João Ricardo Andrêo 31/05/2017 14:52 7 Tecnologias e Linguagens para Banco de Dados I Índices e Chaves: Índices – A funcionalidade de um índice em um banco de dados, é semelhante ao índice que encontramos em livros, revistas ou outros tipos de registros de dados em papel. Os índices possibilitam o acesso rápido aos dados, isto é, auxiliam no processo de busca com extrema rapidez. Um índice pode ser simples (formado por um único campo da tabela) ou composto (formado por vários campos da tabela). Estes campos são denominados CAMPOS DE INDEXAÇÃO. Os índices não contem dados, apenas o valor do campo de indexação e o “ponteiro” que faz a referência para o registro dentro da tabela. Estes índices são atualizados a cada operação de inserção ou exclusão. Em alguns sistemas, os índices são gravados separadamente do arquivo de dados. Prof. João Ricardo Andrêo 31/05/2017 14:52 8 Tecnologias e Linguagens para Banco de Dados I Índices e Chaves: (Continuação) Esta característica podia resultar em índices desatualizados em relação aos arquivos de dados, pois era necessário especificar o arquivo de índice utilizado dentro da aplicação. Alguns sistemas como Access, Interbase, SQL Server e outros, armazenam os índices dentro de um único arquivo e não existe a necessidade de fazer referência ao índice, pois o próprio gerenciador se encarrega desta tarefa. Os índices podem ser definidos como únicos, ou seja, não permitem a duplicidade de dados para o campo determinado. Como exemplo podemos citar uma tabela de cadastro de fornecedores, que possui o código do fornecedor como chave primária, podendo definir o campo CNPJ como índice único, não permitindo assim a duplicidade baseado nesta informação, ou seja, não será possível cadastrar duas vezes o mesmo fornecedor devido esta informação. Prof. João Ricardo Andrêo 31/05/2017 14:52 9 Tecnologias e Linguagens para Banco de Dados I Chave Primária: É um campo da tabela que permite identificar de forma única o registro. Tem também como função aplicar a ordenação física dos dados. Seu funcionamento é similar ao de um índice. Como ocorre nos índices, a chave primária pode ser formada por um ou mais campos – Chave simples ou Chave composta. Ela é responsável em evitar a duplicidade de registros, ou seja, não permite que dois ou mais registros contenham o mesmo valor nos campos que compõem a chave. A chave permite que uma busca ou pesquisa seja realizada de forma mais rápida pois os dados estão fisicamente ordenados por ela. Podemos citar dois critérios importantes para escolher os campos, ou o campo, que irá definir a chave primária: Prof. João Ricardo Andrêo 31/05/2017 14:53 10 Tecnologias e Linguagens para Banco de Dados I Chave Primária: (continuação) - Escolher um campo que não seja muito grande, ou seja, escolher o menor dado único possível, pois desta forma o processo de atualização dos mesmos será mais rápido. - O campo escolhido, deve ser um que não sofra constantes alterações, isto é, que seja um campo estável, pois o mesmo poderá estar relacionado com outras tabelas, o que acarreta uma degradação de performance quando ocorre uma atualização. Os campos de chave primária, devem ser de preenchimento obrigatório. Chave Candidata: São campos que poderiam ser utilizados como chave primária, mas não são, por exemplo, no cadastro de cliente, temos o campo código do cliente que foi definido como chave primária e com valor automático, gerado pelo próprio sistema. Prof. João Ricardo Andrêo 31/05/2017 14:53 11 Tecnologias e Linguagens para Banco de Dados I Chave Candidata: (continuação) Neste caso, o cadastro de cliente possui o campo RG, que também poderia ser utilizado como chave primária, por seu valor ser único e de preenchimento obrigatório, porém é um campo demasiadamente grande e no Brasil uma pessoa pode ter mais de um RG em estados diferentes, inviabilizando o valor único do campo. Chave Estrangeira: As chaves estrangeiras podem ser compostas por um ou mais campos das tabelas, que tem a função de relacionar os registros de uma tabela com os de outra tabela através da chave primária. Segue o exemplo: Prof. João Ricardo Andrêo 31/05/2017 14:53 12 Tecnologias e Linguagens para Banco de Dados I Chave Estrangeira: (continuação) A tabela CATEGORIAS (referente a cadastro de categoria de produtos) possui um campo de código (CODIGOCATEGORIA) que é a chave primária desta tabela. A tabela PRODUTOS possui um campo de código da categoria, e o conteúdo do mesmo deve pertencer a tabela de CATEGORIAS. Pode-se notar que o campo CODIGOCATEGORIA existe em ambas as tabelas e na tabela de PRODUTOS não é chave primária, pois é utilizado para criar o relacionamento com a tabela de CATEGORIAS, na qual, é chave primária, então este campo é denominado CHAVE ESTRANGEIRA. Podemos verificar na imagem que segue. Prof. João Ricardo Andrêo 31/05/2017 14:53 13 Tecnologias e Linguagens para Banco de Dados I Prof. João Ricardo Andrêo 31/05/2017 14:53 14 Tecnologias e Linguagens para Banco de Dados I Domínio: Podemos entender como domínio, um tipo de definição de dado e especificação de valores que podem ser aceitos pelo campo definido. Nem todos os SGBD suportam a criação de domínio. No geral, todos os SGBD que tem suporte ao SQL, tem suporte ao domínio. A maior vantagem deste recurso é a padronização dos campos existentes em várias tabelas do banco de dados. Por exemplo, se os campos ENDERECO, BAIRRO, CIDADE, ESTADO e CEP serão repetidos em várias tabelas: FUNCIONARIOS, CLIENTES, FORNECEDORES. CAMPO TIPO DE DADO TAMANHO ENDERECO TEXTO 50 BAIRRO TEXTO 35 CIDADE TEXTO 35 ESTADO TEXTO 2 CEP TEXTO 9 Prof. João Ricardo Andrêo 31/05/2017 14:53 15 Tecnologias e Linguagens para Banco de Dados I Domínio: (continuação) Provavelmente definiremos um ou mais campos com tamanhos ou tipos diferentes. Criando o domínio, esta probabilidade pode ser evitada. Vamos usar uma linguagem imaginária para a criação de domínios: DEFINIR DOMINIO DM_ENDERECO COM TIPO TEXTO E TAMANHO 50 DEFINIR DOMINIO DM_BAIRRO COM TIPO TEXTO E TAMANHO 35 DEFINIR DOMINIO DM_CIDADE COM TIPO TEXTO E TAMANHO 35 DEFINIR DOMINIO DM_ESTADO COM TIPO TEXTO E TAMANHO 2 DEFINIR DOMINIO DM_CEP COM TIPO TEXTO E TAMANHO 9 Prof. João Ricardo Andrêo 31/05/2017 14:53 16 Tecnologias e Linguagens para Banco de Dados I Domínio: (continuação) Na criação da tabela, faz-se então referência a esses domínios. Utilizando a mesma linguagem imaginária, teríamos o seguinte: CRIAR TABELA FUNCIONARIOS COM FORMATO ( CAMPO ENDERECO COM ATRIBUTO DM_ENDERECO, CAMPO BAIRRO COM ATRIBUTO DM_BAIRRO, CAMPO CIDADE COM ATRIBUTO DM_CIDADE, CAMPO ESTADO COM ATRIBUTO DM_ESTADO, CAMPO CEP COM ATRIBUTO DM_CEP) Este mesmo método seria empregado na criação das tabelas CLIENTES e FORNECEDORES. Prof. João Ricardo Andrêo 31/05/2017 14:53 17