Tecnologias e Linguagens para Banco de Dados I Atividades: 1 – Descreva os tipos de dados existentes no Microsoft ACCESS. 2 – Descreva o que é INDICE e como é o seu funcionamento. 3 – O que é chave-primária e quais os critérios para escolher uma chave ? 4 – O que é uma chave candidata ? 5 – O que é chave estrangeira ? 6 – O que é um DOMÍNIO e qual a sua função ? Prof. João Ricardo Andrêo 31/05/2017 14:53 1 Tecnologias e Linguagens para Banco de Dados I Integridades A maior preocupação de um profissional responsável por administrar um SGBD, é garantir a integridade dos dados armazenados. Esta fato se deve a ocorrências catastróficas no caso de gerar informações imprecisas ou totalmente erradas. Por exemplo: em uma aplicação, temos em nosso banco de dados uma tabela com dados do contas a receber, com alguns registros de pagamento em aberto de um determinado cliente. A ligação entre essas informações (CLIENTE – CONTAS A PAGAR) é realizada pelo campo CODIGOCLIENTE, portanto, esse campo não pode sofrer nenhuma forma de alteração ou eliminação. Supondo que em algum momento esse campo (CODIGOCLIENTE) sofreu uma alteração acidental, por algum usuário que possui acesso ao SGBD. Neste momento o vínculo entre os campos do CLIENTE e do CONTAS A PAGAR foram quebrados, isto é, existe no CONTAS A PAGAR pagamentos em aberto, aos quais não tem CLIENTE Prof. João Ricardo Andrêo 31/05/2017 14:53 2 Tecnologias e Linguagens para Banco de Dados I Integridades (continuação) correspondente. Isso causaria um enorme problema. A integridade, garante ao desenvolvedor menor trabalho, pois o aplicativo não necessita de rotinas para checar a existência e a veracidade dos dados. Além disso a maioria dos SGBDs de hoje possui recursos para gerenciar o acesso aos dados fora das aplicações (USUÁRIOS do SGBD). Integridade de ENTIDADES A integridade da entidade (tabela) é definida pela presença da CHAVE PRIMÁRIA e pelo preenchimento obrigatório da mesma. Essa exigência deve-se ao fato de que o campo ou campos que compõem a chave primária, são atributos que identificam o registro como único. Prof. João Ricardo Andrêo 31/05/2017 14:53 3 Tecnologias e Linguagens para Banco de Dados I Integridade de ENTIDADES (continuação) Devemos ressaltar que o valor NULO é diferente de zero (0), para campos numéricos, e espaço em branco, para campos texto, isto é, o valor nulo é a ausência de valor(es) no campo. Para evitar a presença de valores nulos, o ACCESS disponibiliza em sua folha de PROPRIEDADES e o campo REQUIRIDO, que deve estar determinado como SIM. No caso de outros SGBDs, padrão SQL, adiciona-se a cláusula NOT NULL no momento da criação do campo da tabela, para forçar assim o preenchimento de algum dado válido no mesmo. Prof. João Ricardo Andrêo 31/05/2017 14:53 4 Tecnologias e Linguagens para Banco de Dados I Integridade Referencial A integridade referencial é estabelecida no momento do relacionamento entre as tabelas, isto é, quando o campo CHAVE PRIMÁRIA de uma tabela tem um campo correspondente em outra tabela, tornando-se esse uma CHAVE ESTRANGEIRA. Este recurso estabelece algumas restrições ou bloqueios de algumas operações nas tabelas, como o processo de exclusão ou alteração de informações ou dados. O que a integridade referencial faz é proibir a inconsistência, impedindo a quebrado do relacionamento entre as tabelas e seus respectivos campos (CHAVE PRIMÁRIA e a CHAVE ESTRANGEIRA). Podemos recordar o exemplo do relacionamento entre a tabela PRODUTO e a tabela CATEGORIA, onde na tabela PRODUTO temos o registro de CODIGO “123456”, cuja CATEGORIA é “000001”. Ao excluir na tabela CATEGORIA o registro de CODIGO “000001”, os registros existentes na tabela PRODUTO, que possuem Prof. João Ricardo Andrêo 31/05/2017 14:53 5 Tecnologias e Linguagens para Banco de Dados I Integridade Referencial (continuação) que possuem o campo CATEGORIA “000001” , ou seja, os produtos que possuem essa categoria, ficarão “órfãos”, isto é, não terão um CODIGO de categoria correspondente na tabela de CATEGORIA. Isso livra o programador de desenvolver uma codificação que realize essas verificações, além de proporcionar outros recursos como a proibição de alteração e exclusão ou executar uma exclusão em cascata, isto é, quando ocorrer a exclusão de um registro na tabela CATEGORIA, todos os produtos relacionados a ela, que tem no campo CODIGOCATEGORIA o mesmo valor daquele que foi excluído, serão eliminados . Prof. João Ricardo Andrêo 31/05/2017 14:53 6 Tecnologias e Linguagens para Banco de Dados I Integridade de Domínio A integridade de Domínio, estabelece regras e restrições na definição do domínio, isto é, quando esse é criado. Isso ajuda a ganhar tempo no momento de construir os campos das tabelas, pois os mesmos já estarão pré-formatados, assim, os campos criados utilizando o recurso de domínio, herdam toda a integridade e restrições definidas anteriormente. Como exemplo, criaremos um domínio com linguagem fictícia, estabelecendo uma restrição. DEFINIR DOMINIO “DM_SALARIO” COM TIPO DECIMAL E VALOR MAIOR QUE 0 CRIAR TABELA COMISSAO COM FORMATO ( CAMPO SALARIO COM ATRIBUTO DM_SALARIO, CAMPO TAXA COM ATRIBUTO DUPLO) Prof. João Ricardo Andrêo 31/05/2017 14:53 7 Tecnologias e Linguagens para Banco de Dados I Integridade de Campos A integridade de Campo, é estabelecida no momento de criação da tabela (definição da estrutura) . A restrição ou validação do conteúdo armazenado no campo pode ser estabelecida campo a campo, não apenas no domínio. Além das restrições e validações, podemos estabelecer outras integridades, como intervalo de valores e formatação de campos, isto é, pode-se estabelecer por exemplo que um campo que armazene o CNPJ de uma empresa tenha o seguinte formato: “XX.XXX.XXX/XXXX-XX” , utilizando esse recurso, mais uma vez o desenvolvedor não tem a necessidade de preocupar-se com esse detalhe. Pode-se ainda, definir regras de integridade em rotinas criadas pelo desenvolvedor, nos recursos de STORED PROCEDURE e TRIGGERS, nos SGBDs do padrão SQL. Prof. João Ricardo Andrêo 31/05/2017 14:53 8 Tecnologias e Linguagens para Banco de Dados I Atividade Prática: 1 - Criar a base de dados: AULA3_TLBD1_INFO 2 – Nesta base criaremos as seguintes tabelas, com chaves primárias, índices e relacionamentos: Tabela: UF P.K. Nome Campo Tipo Tamanho Requerido Comprimento ZERO SIGLAUF TEXTO 2 SIM NÃO NOMEUF TEXTO 35 SIM NÃO Tabela: MUNICIPIO P.K. F.K. Nome Campo Tipo Tamanho Requerido Comprimento ZERO CODIGOCITY TEXTO 9 SIM NÃO NOMECITY TEXTO 45 SIM NÃO ESTADOCITY TEXTO 2 SIM NÃO Prof. João Ricardo Andrêo 31/05/2017 14:53 9 Tecnologias e Linguagens para Banco de Dados I Tabela: FORNECEDOR P.K. Nome Campo Tipo Tamanho Requerido Comprimento ZERO CODFOR NUMERO Inteiro Longo SIM NÃO NOMEFOR TEXTO 45 SIM NÃO CONTATO TEXTO 45 SIM NÃO ENDERECO TEXTO 40 SIM NÃO CIDADE TEXTO 06 SIM NÃO CEP TEXTO 09 SIM NÃO DDD TEXTO 04 NÃO SIM FONE TEXTO 8 NÃO SIM FAX TEXTO 8 NÃO SIM CELULAR TEXTO 8 NÃO SIM Prof. João Ricardo Andrêo 31/05/2017 14:53 10 Tecnologias e Linguagens para Banco de Dados I Tabela: VENDEDOR P.K. Nome Campo Tipo Tamanho Requerido Comprimento ZERO CODIGO NUMERO Inteiro Longo SIM NÃO RG TEXTO 16 SIM NÃO NOME TEXTO 45 SIM NÃO ENDERECO TEXTO 40 SIM NÃO CIDADE TEXTO 06 SIM NÃO CEP TEXTO 09 SIM NÃO DDD TEXTO 04 NÃO SIM FONE TEXTO 8 NÃO SIM FAX TEXTO 8 NÃO SIM CELULAR TEXTO 8 NÃO SIM SALBRUTO NUMERO Valor Monetário (com duas decimais) SIM NÃO TXCOMISSAO NUMERO Simples SIM NÃO Prof. João Ricardo Andrêo 31/05/2017 14:53 11 Tecnologias e Linguagens para Banco de Dados I Tabela: CATEGORIA P.K. Nome Campo Tipo Tamanho Requerido Comprimento ZERO CODCATEGORIA NUMERO Byte SIM NÃO DESCRICAO TEXTO 40 SIM NÃO Tabela: PRODUTO Nome Campo Tipo Tamanho Requerido Comprimento ZERO P.K. CODPROD TEXTO 8 SIM NÃO I. D. TITULO TEXTO 50 SIM NÃO I. D. AUTOR TEXTO 50 SIM NÃO CODFOR NUMERO Inteiro Longo SIM NÃO DATAPUBL DATA SIM NÃO PRECO NUMERO Valor Monetário (com duas decimais) SIM NÃO F.K. CATEGORIA NUMERO Byte SIM NÃO I. D. ASSUNTO TEXTO 50 SIM NÃO Prof. João Ricardo Andrêo 31/05/2017 14:53 12 Tecnologias e Linguagens para Banco de Dados I Tabela: VENDA P.K. Nome Campo Tipo Tamanho Requerido Comprimento ZERO NRVENDA NUMERO Inteiro Longo SIM NÃO RGCLI TEXTO 16 SIM NÃO RGVEND TEXTO 16 SIM NÃO DTVENDA DATA SIM NÃO DESCTO NUMERO Valor Monetário (com duas decimais) NÃO SIM Nome Campo Tipo Tamanho Requerido Comprimento ZERO NRVENDA NUMERO Inteiro Longo SIM NÃO CODPROD TEXTO 08 SIM NÃO QTD NUMERO Inteiro SIM NÃO Tabela: VENDA F.K. Prof. João Ricardo Andrêo 31/05/2017 14:53 13