Disciplina: Programao / Banco de Dados Prof. Abraho Lopes abrahao.lopes@ifrn.edu.br Objetivos Compreender como so organizados os dados num BD; Conhecer diversos conceitos como campo, registros, tabelas, chaves, etc. Entender o que Integridade do BD; Agenda Campos, Registros e Tabelas; ndices e Chaves; Integridade; Campo a menor unidade destinada ao armazenamento de valores existentes em um arquivo ou tabela de um banco de dados. Os dados armazenados so separados em pequenos fragmentos. Cada campo contm um tipo de dado. Campo Ex.: Brinquedos e Jogos Educar Av. das Naes, 280 Jardim Amrica Atibaia SP A informao acima no faz muito sentido no ponto de vista de um Banco de Dados, apesar de fornecer uma informao completa da empresa. Campo Para armazenar a informao num Banco de Dados, preciso dividi-la em diversas partes. Cada campo recebe um nome de identificao, a especificao do tipo de dado (inteiro, real, caractere, etc.) que ser capaz de armazenar, o tamanho mximo de informao, etc. Nome Endereo Bairro Cidade Estado Jogos Educar Av. das Naes, 280 Jd. Amrica Atibaia SP Campo Durante um projeto de Banco de Dados, uma das principais tarefas definir quais so os campos que iro compor as tabelas. Outros tipos de dados que podem ser usados: lgico, data, hora, binrio, etc. Alguns Bancos de Dados apresentam uma caracterstica chamada auto incremento que aumenta o valor automaticamente ao inserir um novo registro. Campo Alguns Bancos de Dados permitem criar campos calculados que armazenam uma expresso matemtica e referncias a valores da mesma tabela ou constantes. Ex.: valor_total (qtd * preco); Tambm possvel definir um valor padro para um campo que assumido se o usurio no o preencher. Campo Arquivos como Sons, Video, PDF, etc., podem ser armazenados num campo do tipo BLOB (Binary Large Objects). Campos de texto podem ter tamanhos fixos ou variveis. No caso do tamanho fixo, se o usurio digitar menos caracteres que o valor indicado, o banco preenche o restante com espaos em branco. Campo Ex. campos de tamanho fixo Ex. campos de tamanho varivel Nome (40 caracteres) Fone (16 caracteres) Joo Silva 743-1234 Maria Penha (084)9976-1213 Alberto Carlos Jorgeano Lucena 3321-1209 Nome (40 caracteres) Fone (16 caracteres) Joo Silva 743-1234 Maria Penha (084)9976-1213 Alberto Carlos Jorgeano Lucena 3321-1209 Registros Um registro o conjunto de campos valorizados de uma tabela. a unidade bsica para o armazenamento e recuperao de dados e que identifica a entrada de um nico item de informao em particular numa tabela do banco de dados. So chamados de tuplas ou n-uplas. Tambm podemos chamar os registros de linhas da tabela. Se uma tabela tem 20.000 linhas, tem 20.000 registros. Registro Exemplo de registro. Os registro de uma tabela so todos do mesmo tipo. Ou seja, num registro em que se guarda informaes sobre produtos no se pode guardar tambm informaes sobre clientes. Nome Fone Cidade Joo Silva 743-1234 Natal Maria Penha (084)9976-1213 Mossor Alberto Carlos Jorgeano Lucena 3321-1209 Assu Tabela A tabela um conjunto de registros de mesmo tipo. O banco de dados pode ser formado por uma ou mais tabelas. Cada tabela identificada por um nome nico e deve ser organizada de tal forma que s permita um tipo de informao. Por exemplo, uma tabela para clientes, outra para fornecedores e outra para produtos. Tabela Alguns sistemas de banco de dados criam um arquivo para cada tabela, outros criam um arquivo s para o banco inteiro. MySQL / Access Tabelas Nas tabelas ficam contidas toda a estrutura dos registros como: nome dos campos, tipo de dados, e os prprios dados. Uma aplicao s poder acessar os dados se conhecer o nome da tabela e o nome do campo de onde deseja recuperar a informao. Tabelas Hierarquia das tabelas registros e campos Banco de Dados Tabela Registro Campo Tabelas Exemplo de vrias tabelas no banco de dados aerobase. ndices Quando procuramos um assunto num livro, usamos o ndice para saber em que pgina ele se encontra. Nos bancos de dados os ndices possuem a mesma funo: permite que o dado seja encontrado com grande rapidez. Tambm fornece uma forma de acesso alternativo que no modifica a posio fsica no banco quando solicitamos, por exemplo, uma listagem em ordem alfabtica. ndices Exemplo de ndice: Nome Alice Breno Carlos Diego Elzio Felipe Hlio Nome Fone Cidade Elzio 1111-2222 Mossor Breno 8888-3333 Apodi Hlio 8887-5746 Assu Diego 9082-3856 Natal Alice 3862-8473 Joo Pessoa Felipe 7563-5009 Areia Branca Carlos 3211-4957 Recife Arquivo de dados ndice ndices Um ndice pode ser simples (apenas um campo) ou composto (vrios campos). So chamados campos de indexao aqueles usados para definir os ndices. Os ndices no contm dados propriamente ditos, apenas o valor do campo de indexao e ponteiros (endereos) que direcionam para o registro adequado dentro da tabela. ndices Ponteiros Nome # Alice 05 Breno 02 Carlos 07 Diego 04 Elzio 01 Felipe 06 Hlio 03 # Nome Fone Cidade 01 Elzio 1111-2222 Mossor 02 Breno 8888-3333 Apodi 03 Hlio 8887-5746 Assu 04 Diego 9082-3856 Natal 05 Alice 3862-8473 Joo Pessoa 06 Felipe 7563-5009 Areia Branca 07 Carlos 3211-4957 Recife Arquivo de dados ndice ndices Exemplo de ndice composto Cidade Nome Assu Alice Assu Elzio Caruaru Hlio Mossor Breno Mossor Diego Natal Carlos Natal Felipe ndice ndices Os ndices podem ser armazenados nas prprias tabelas ou em arquivos separados; ndices Os sistemas de banco de dados atuais usam automaticamente os ndices para agilizar as consultas. Chaves primrias um atributo (campo) da tabela que permite a identificao de forma nica dos registros. Tambm realiza a ordenao automtica dos registros (como os ndices). Pode ser formada por um (chave primria simples) ou por vrios campos (chave primria composta). Evita que haja registros duplicados na tabela. Chaves primrias Duplicao de Registros Nome Cidade Joo Silva Mossor Roberto Carlos Cachoeiro do Itapemirim Marilia Pereira Rio de Janeiro Eduardo Cullen Forks Isabela Swan Forks Joo Silva Mossor Harry Potter Londres Frodo Baggins Condado Chaves primrias Ao escolher os campos que iro definir uma chave primria deve-se considerar o seguinte: Tamanho do campo campos menores so atualizados mais rapidamente; Em chaves compostas, devemos usar poucos campos. Modificao o campo chave no deve ser alterado (pelo menos no freqentemente); Preferencialmente usar valores que so calculados pelo prprio sistema de gerenciamento de banco de dados (auto incremento); So de preenchimento obrigatrio; Chaves primrias Exemplo de chave controlada pelo sistema Cdigo Nome Cidade 01 Joo Silva Mossor 02 Roberto Carlos Cachoeiro do Itapemirim 03 Marilia Pereira Rio de Janeiro 04 Eduardo Cullen Forks 05 Isabela Swan Forks 06 Joo Silva Mossor 07 Harry Potter Londres 08 Frodo Baggins Condado Chaves candidatas So campos que poderiam ser usados como chave primria mas no so. Por exemplo, o campo RG, poderia ser usado para identificar unicamente uma pessoa. Como cada estado brasileiro segue uma numerao, poderia acontecer de aparecer pessoas diferentes com o mesmo nmero de RG, assim violando a restrio de unicidade da chave. Chaves estrangeiras Permitem criar relacionamento entre tabelas atravs do uso de chaves primrias. Exemplo: Um sistema de venda com as seguintes tabelas: produto, categoria, fornecedor. A tabela produto possui uma chave estrangeira que a chave primria de categoria e outra que a chave primria de fornecedor. Atravs desses valores possvel acessar os demais dados de categoria e fornecedor. Chaves estrangeiras Chaves estrangeiras Categoria Fornecedor Produto Chaves estrangeiras Quando o nome da Categoria ou do Fornecedor alterado, automaticamente vemos esta modificao ao consultarmos o Produto. Categoria Produto Eletro-Eletrnicos Integridade uma grande preocupao dos projetistas. Se houver algum dado crucial armazenado de forma incorreta, pode ser desastroso, pois o banco apresentar informaes imprecisas. Integridade Imagine o que aconteceria com Contas a Receber de um cliente se fosse alterado o cdigo deste cliente... A empresa sairia no prejuzo... Integridade de Entidade Regras que garantem que um registro seja preenchido A chave primria no pode ser vazia (nulo); Outros campos podem ser definidos como NO NULOS; Integridade de Entidade Exemplo de Valores Nulos; Nulo no ZERO nem ESPAO EM BRANCO; Integridade Referencial Estabelece restries ou bloqueios a algumas operaes (alterao e excluso) nos dados das chaves primrias utilizadas em relacionamentos; Integridade Referencial Exemplo: alterao do cdigo da categoria. Os produtos ficariam rfos. Categoria Produto 500 ???? Integridade Referencial O prprio banco oferece recursos para evitar esse tipo de situao, no permitindo a mudana ou atualizando automaticamente (em cascata) todos os registros que usam essa referncia. Integridade de Campos Permite definir restries nos valores dos campos. Ex.: o valor do campo salrio precisa estar entre 400 e 2500. Pode-se tambm fazer a validao de acordo com uma determinada condio, por exemplo o salrio estar condicionado ao cargo ocupado pelo funcionrio. Outra forma definir uma mscara para o campo, exigindo que os dados sejam inseridos no modelo indicado. Ex: CEP _ _ _ _ _ - _ _ _ Referncias ALVES, W. P. Fundamentos de Bancos de Dados. rica, 2004