Banco de Dados Relacionais Eduardo Ribeiro Felipe erfelipe@yahoo.com.br
Bancos de dados relacionais Este é ainda o conceito mais usado em toda a implementação computacional relacionada a banco de dados. Parte do princípio das relações entre a modelagem informal e possui normas matemáticas para sua criação. Permite a abstração dos modelos lógicos e físicos. É a técnica que mais se aproxima da visão natural do mundo real, consistindo de entidades e seus relacionamentos. Modelo concebido pelo Dr. Peter Chen na década de 70 http://www.csc.lsu.edu/~chen/chen.html The Entity-Relationship Model: Toward the unified view of data A formalização daquilo que é óbvio.
Mundo real Modelo conceitual Modelo lógico Projeto físico
Por que modelar?
Modelagem conceitual Modelo É a representação abstrata e simplificada de um sistema real, com a qual se pode explicar ou testar o seu comportamento, em seu todo ou em partes. (COUGO, 1997) A obtenção do modelo através dos objetos observados deve levar em conta alguns quesitos: Abrangência Nível de detalhamento Tempo para a produção do modelo Recursos disponíveis
Modelagem conceitual A modelagem de dados tem sido utilizada basicamente para definição de estruturas de dados, mas este processo vai além deste papel. Pode ser definida através de formas diferentes: Descritiva Esquemática Modelo de Dados (DER)
Bancos de dados relacionais Todo (software de) banco de dados (relacional) possui elementos básicos de organização da informação, a saber: Tabelas Composta por campos (atributos) e registros (tuplas) Consultas Interface para pesquisa (recuperação da informação) implementada na grande maioria dos bancos em uma linguagem padronizada denominada SQL Alguns fabricantes acrescentam ainda como elementos nativos do banco de dados: Formulários Interface para comunicação com o usuário final, janelas com elementos de alto nível de interação humana (botões, caixas de listagem, etc...) Relatórios Interface para visualização e impressão das informações previamente pesquisadas (filtradas)
Interface: Formulários (janelas) e Relatórios Consultas Tabelas
Bancos de dados relacionais - Tabelas Modelo de organização da informação composto por linhas e colunas e dotado de regras para implementar a segurança a nível de domínio informacional: Texto Números Data/Hora
Proposta de implementação Pequeno projeto baseado em 3 tabelas a fim de promover o entendimento sobre Estruturas de dados Chave primária e chave estrangeira Cardinalidade e Relacionamentos Consultas Veremos adiante como esta teoria influencia as demais tecnologias mesmo em formatos não estruturados de dados
Projeto Criação do banco de dados Vamos utilizar para fins didáticos o software Access, encontrado no pacote Office da empresa Microsoft. Produto largamente utilizado no sistema operacional Windows. Ao abrir o software Access: Clique no Menu Arquivo Novo Opção Banco de dados em branco Salvar o arquivo na pasta a ser determinada com o nome Empresa.mdb Uma janela denominada Empresa: Banco de dados é exibida, nesta janela encontraremos os principais comandos e recursos para o manuseio do projeto.
Projeto - Criação das tabelas Setores Para criar nossa primeira tabela, acesse o Menu Inserir Tabela Dentre as opções, escolha Modo de Design OK Salve a tabela com o nome Setores Modo estrutura da tabela OBS: Nas perguntas sobre chave primária responda NÃO até que abordemos este tema
Projeto - Criação das tabelas Funcionarios Para criar a próxima tabela, feche a primeira tabela e repita o comando, acesse o Menu Inserir Tabela Insira os campos e escolha os tipos de dados Salve a tabela com o nome Funcionarios Modo estrutura da tabela OBS: Nas perguntas sobre chave primária responda NÃO até que abordemos este tema
Projeto - Criação das tabelas Dependentes Para criar a próxima tabela, feche a tabela anterior e repita o comando, acesse o Menu Inserir Tabela Insira os campos e escolha os tipos de dados Salve a tabela com o nome Dependentes Modo estrutura da tabela OBS: Nas perguntas sobre chave primária responda NÃO até que abordemos este tema
Bancos de dados relacionais Tabelas Chave primária Necessidade de identificar um registro (linha) de maneira única Geralmente criada em formato numérico Deve ser independente de políticas informacionais externas ao banco de dados Pode ser implementada em um campo (coluna) ou através da combinação de dois ou mais campos Permite a relação entre entidades (tabelas)
2º Projeto Definição do campo chave nas tabelas Após a definição lógica do campo a ser usado como chave, selecione a tabela no modo estrutura 1. Selecione o campo a ser promovido a chave primária 2. Clique no ícone chave da barra de ícones 1º
Projeto Populando as tabelas Para inserir dados nas tabela, abra a mesma no modo folha através de um duplo clique ou através do botão abrir da janela do banco de dados. Obs: Os campos auto numeração não aceitam a inserção ou alteração de seus dados. O próprio sistema gera a informação nestes campos.
Projeto Populando as tabelas Repita o mesmo procedimento para as demais tabelas
Bancos de dados relacionais Relacionamento e Cardinalidade 1:1 (um para um) Indica que um determinado registro de uma entidade tem uma relação única com outro registro de outra entidade. E vice versa. Geralmente relacionamentos 1:1 indicam a fusão das duas entidades em uma única entidade. Exemplo: Entidade Governador e Entidade Estado
Bancos de dados relacionais Relacionamento e Cardinalidade 1:N (um para vários) Indica que um determinado registro de uma entidade tem várias relações com outros registros de outra entidade, e o caminho inverso é uma relação 1:1. É o tipo de relacionamento mais utilizado e mais desejado no mapeamento da modelagem de dados. O lado 1 da relação, exporta a chave primária para o lado N da relação. Exemplo: Entidade Países e Entidade Estado
Bancos de dados relacionais Relacionamento e Cardinalidade N:N (vários para vários) Indica que um determinado registro de uma entidade tem várias relações com outros registros de outra entidade e vice-versa. Exemplo: Entidade Alunos e Entidade Disciplinas
Bancos de dados relacionais Relacionamento e Cardinalidade A técnica consiste em perguntas para saber em que cardinalidade a relação entre as tabelas está relacionada. Questiona-se se da tabela 1 para tabela 2, os registros possuem 0, 1 ou várias ocorrências? T1 T2
Bancos de dados relacionais Relacionamento e Cardinalidade Para implementarmos o relacionamento entre as tabelas, clique no menu Ferramentas Relacionamentos Adicione as tabelas através da caixa de diálogo Posicione as mesmas como no exemplo abaixo
Bancos de dados relacionais Relacionamento e Cardinalidade Os campos chave estão negritados propositalmente Cada tabela possui um campo de referência a outra tabela, que devemos denominar chave estrangeira A chave estrangeira permite implementar o relacionamento entre duas ou mais tabelas
Relacionamento entre Setores e Funcionarios Clique no campo chave da relação identificada e arraste até o campo chave estrangeira da outra tabela. A janela de edição de relacionamentos será exibida. Confirme as tabelas relacionadas; Configure as opções; Confira o tipo de relacionamento; Crie o relacionamento.
Relacionamento entre Funcionarios e Dependentes Clique no campo chave da relação identificada e arraste até o campo chave estrangeira da outra tabela. A janela de edição de relacionamentos será exibida.
Projeto Populando as tabelas Para inserir dados nas tabela, abra a mesma no modo folha através de um duplo clique ou através do botão abrir da janela do banco de dados. No exemplo anterior configuramos os campos chave estrangeira com o valor 1 sem a preocupação da criação da referência ao campo chave primária. Neste momento vamos fazer os seguinte testes: Inserir mais funcionários porém tentando definir um setor inexistente no campo SetCodigo, valor 0 (zero) por exemplo O mesmo raciocínio pode ser considerado com os dependentes, tentar cadastrar algum dependente sem um código de funcionário válido Tentar excluir um funcionário que tenha dependente relacionado
Características Os bancos de dados possuem mecanismos que implementam maior confiabilidade no cadastro e recuperação das informações cadastradas. Através do relacionamento, a integridade referencial permite realizar validações importantíssimas no contexto informacional. A exclusão em cascata é um mecanismo disponível porém deve ser usado com muito critério, devido a sua extensão.
Consultas Sinônimo de pesquisa
Consultas Abrir o banco de dados Empresa Selecionar o objeto Consultas Clicar no menu Inserir Consulta
Consultas Confirmar o modo Design Selecionar a tabela Funcionarios e Adicionar
Consultas
Formulários
Relatórios