Guia de Introdução às Bases de Dados e Modelagem
Classificado em Computação
Escrito em em
português com um tamanho de 6,6 KB
Introdução às Bases de Dados
Índice
Definições
- Banco de dados: uma coleção de dados inter-relacionados que podem ser gerenciados em conjunto.
- Modelo Entidade-Relacionamento: uma abordagem teórica para modelar os dados de um banco de dados utilizando diagramas.
- Entidade: um elemento da realidade que possui dados associados e existe por si só. As entidades são normalmente identificadas por nomes, por exemplo: clientes, artigos, salas, estudantes, etc.
- Relacionamento: como o nome sugere, ocorre quando pelo menos duas entidades se relacionam entre si. Para que haja um relacionamento, devem existir antes as entidades afins. Relacionamentos são muitas vezes identificados por verbos: reservas (espaço para os clientes), compra (dos produtos pelos clientes), o estudante tem cursos (a relação seria "cursando"), etc.
- Tabela: relações e entidades são modeladas em um computador por meio de tabelas. Cada atributo das entidades e relacionamentos é modelado por "campos" ou "colunas". Os dados de cada entidade ou relacionamento são armazenados em uma linha ou registro na tabela. Uma tabela pode ter muitos registros ou linhas, sendo geralmente limitada pela capacidade do disco rígido do computador. Para diferenciar cada registro, definem-se as chamadas chaves primárias.
Chave Primária (Primary Key)
A chave primária de uma tabela é um campo ou conjunto de campos que identificam cada registro ou linha da tabela de forma exclusiva, ou seja, cada registro na tabela tem um valor diferente no campo ou campos que compõem a chave.
Por exemplo, cada cidadão possui um número de identificação diferente que não deve se repetir. Outro exemplo de chave primária é o número de matrícula de um estudante. Pode haver vários alunos com o mesmo nome, mas eles não terão o mesmo número de matrícula ou identificação.
Exemplos de chaves incorretas incluem:
- Nome + sobrenome (pode ser repetido em pessoas diferentes).
- Código de Artigo em uma tabela de vendas (pois vendemos o mesmo item várias vezes para pessoas diferentes).
- Data da venda (mesmo incluindo horas, minutos e segundos, podem ocorrer vendas simultâneas no mesmo instante).
Normalmente, todas as tabelas têm uma chave primária, o que nos permite identificar registros individuais para recuperar seus dados, modificá-los ou excluí-los.
Chaves Estrangeiras (Fatores Externos)
É um campo ou conjunto de campos definidos em uma tabela que atuam como chave primária em outra tabela diferente; por isso, usamos o termo "externo" ou "estrangeiro".
Observações sobre a Normalização
Normalmente, não se avança além da segunda forma normal, pois as etapas seguintes implicam uma maior divisão de dados em tabelas, o que pode se tornar excessivo.
Implementação de Relações no Modelo Relacional
As relações, com base no número de entidades envolvidas, podem ser: 1 para 1 (1:1), um para muitos (1:N) ou muitos para muitos (N:M).
Relações 1:1 e 1:N são implementadas adicionando a chave primária de uma entidade como chave estrangeira na segunda entidade.
Exemplo: Um cliente de um hotel (ID é a chave primária) pode ter feito várias reservas em datas diferentes. Se somarmos o campo ID do cliente na tabela de reservas como uma chave estrangeira, estaremos implementando essa relação um para muitos entre o cliente e as reservas.
Para implementar relacionamentos muitos para muitos (N:M), é necessário criar uma nova tabela cuja chave primária inclua as chaves primárias das tabelas relacionadas.
Por exemplo: itens de um supermercado e clientes. Um artigo pode ser adquirido por muitos clientes e, ao mesmo tempo, um cliente pode comprar muitos itens. Nestes casos, cria-se uma tabela "Pedidos", que inclui a chave do cliente (DNI/CPF) e a chave do item (CódigoArtigo). Para normalizar, estas tabelas devem ser divididas em:
- Cabeçalho de Pedidos: inclui o Número do Pedido (chave), data, total, identificação do cliente, etc.
- Linhas de Pedido: inclui a chave do Cabeçalho (Número do Pedido) mais a chave do artigo (CódigoArtigo), quantidade, preço unitário, preço total e número da linha.
Comentários sobre o Microsoft Access
Os tipos de campos ou colunas de dados no Access são: Texto, Inteiro, AutoNumeração (assume valores 1, 2, etc.), Número com casas decimais, Moeda, Data, Hora e Memo (usado para armazenar objetos binários como fotos, músicas, vídeos ou campos de texto grandes).
Campo AutoNumeração
O campo AutoNumeração assume valores inteiros de 1 em diante, automaticamente. Por esta razão, é frequentemente usado em chaves primárias das tabelas. Ao inserir um registro, não é necessário atribuir valor a este campo, pois o banco de dados Access gerencia o próximo valor internamente.
Se um campo for uma chave estrangeira vinculada a um AutoNumeração (que é chave primária em outra tabela), você deve defini-lo como tipo "Número" nesta tabela. Por exemplo: se usar AutoNumeração para o "NúmeroReserva" na tabela de reservas, na tabela "Contas" (onde ele é chave estrangeira), o campo deve ser definido como Inteiro em vez de AutoNumeração.
Relações no Access
Essas relações vinculam campos que são chaves primárias a chaves estrangeiras em outras tabelas. Relacionam-se sempre os mesmos dados em tabelas diferentes: não faz sentido vincular campos distintos, como CódigoArtigo com NúmeroVenda. Deve-se associar sempre DNI com DNI, CódigoArtigo com CódigoArtigo, etc.
Se marcarmos a opção de integridade referencial, significa que não podemos inserir um registro na tabela "estrangeira" se não houver um registro associado na tabela "principal" com esse valor de chave primária. Exemplo: para inserir uma reserva, o cliente deve existir na tabela Clientes.
A "exclusão em cascata" significa que, ao excluir um cliente em "Clientes", o Access exclui automaticamente todas as reservas vinculadas àquele ID. O mesmo ocorre com a "atualização em cascata", que propaga alterações feitas nos valores da chave primária para as tabelas onde ela consta como chave estrangeira.