Fundamentos de Bancos de Dados Relacionais
Classificado em Computação
Escrito em em
português com um tamanho de 15,77 KB
Domínio
- Domínio: Conjunto de valores atômicos.
- Um tipo de dado ou formato também é especificado para cada domínio.
- Exemplos: numero_telefone, cadastro_pessoa_fisica, media_nota, idade_funcionario.
Esquema, Atributo e Grau
- Esquema relacional: É composto de um nome de relação e uma lista de atributos.
- Atributo: É o nome de um papel desempenhado por algum domínio no esquema de relação.
- Grau (aridade): É o número de atributos desse esquema de relação.
Relação e Tuplas
- Relação: É um conjunto de n tuplas.
- Tuplas: É uma lista ordenada de n valores, em que cada valor é um elemento do domínio do atributo ou é um valor especial NULL.
- Cada tupla é uma linha da relação (tabela).
- Cada atributo corresponde a um cabeçalho de coluna.
- Valores NULL representam atributos cujos valores são desconhecidos ou não existem.
Cardinalidade
- Cardinalidade: Indica o número total de valores em um domínio.
- Representa o número total de possíveis instâncias ou tuplas que poderão existir em qualquer estado da relação.
Características das Tabelas Relacionais
- A tabela é vista como uma estrutura bidimensional composta de linhas e colunas.
- Cada linha (tupla) representa uma única ocorrência de entidade no interior do conjunto de entidades.
- Cada coluna da tabela representa um atributo e possui um nome diferente.
- Cada intersecção entre linha e coluna representa um único valor.
- Todos os valores em uma coluna devem se adequar a um mesmo formato.
- Cada coluna possui uma faixa específica de valores conhecida como domínio de atributos.
- A ordem das linhas e das colunas é insignificante para o SGBD.
- Cada tabela deve apresentar um atributo ou uma combinação de atributos que identifique exclusivamente cada linha.
Restrições no Modelo Relacional
As restrições nos bancos de dados podem ser divididas em três categorias principais:
- Inerentes no modelo de dados (implícitas).
- Explícitas nos esquemas do modelo de dados.
- Semânticas, baseadas na aplicação (regras de negócios).
Dependência de Dados
- Dependências funcionais
- Dependências multivaloradas
Normalização e Restrições de Domínio
- Dentro de cada tupla, o valor de cada atributo A deve ser um valor indivisível do domínio dom(A).
- Tipos de dados associados aos domínios:
- String de caracteres
- Numéricos
- Booleanos
- Data e hora
- Intervalo
Restrições de Chave
- Chave: Consiste em um ou mais atributos que determinam outros atributos.
- Chave primária (PK, Primary Key): É um atributo (ou uma combinação de atributos) que identifica exclusivamente uma determinada linha.
- Chave composta: Uma chave que pode ser composta de mais de um atributo.
- Atributo chave: Qualquer atributo que faça parte de uma chave.
Superchave e Chave Candidata
- Superchave: Qualquer chave que identifique cada linha exclusivamente. A superchave determina funcionalmente todos os atributos de uma linha.
- Chave candidata: Uma superchave sem atributos desnecessários, ou seja, uma superchave mínima.
Operação Alterar
- Atualizar um atributo que não faz parte de uma chave primária nem de uma chave estrangeira, em geral, não causa problemas.
- Modificar um valor de chave primária é semelhante a excluir uma tupla e inserir outra em seu lugar.
Transação
- É um programa em execução que inclui algumas operações de banco de dados:
- Leitura do banco de dados.
- Aplicar inserções, exclusões ou atualização ao banco de dados.
- Ao final da transação, o banco precisa estar em um estado válido ou coerente, que satisfaça todas as restrições especificadas no esquema do banco de dados.
Restrições sobre Valores NULL
- Um nulo não apresenta nenhum valor.
- Não significa zero ou um espaço.
- É criado quando se pressiona a tecla Enter ou Tab para passar para o próximo campo sem fazer nenhum tipo de entrada no campo anterior.
- Os nulos nunca podem fazer parte de uma chave primária.
- Devem ser evitados, o máximo possível, em outros atributos.
Problemas com Valor Nulo
Os nulos, se utilizados de modo inadequado, podem criar problemas, pois apresentam significados muito diferentes:
- Um valor de atributo desconhecido.
- Um valor de atributo conhecido, mas ausente.
- Uma condição “não aplicável”.
Podem criar problemas quando se utilizam funções como COUNT, AVG e SUM.
Esquema de Banco de Dados Relacional
- É uma representação textual das tabelas de banco de dados em que cada tabela é relacionada com seu nome seguido pela lista de seus atributos entre parênteses.
- O(s) atributo(s) de chave primária está(ão) sublinhado(s).
Chave Estrangeira
- Chave estrangeira (FK, Foreign Key): É um atributo cujos valores correspondem aos da chave primária na tabela relacionada.
Integridade Referencial
- Integridade referencial: Verifica se a chave estrangeira contém valores correspondentes ou nulos.
- Se a chave estrangeira contém um valor, esse valor se refere a uma tupla (linha) válida existente em outra relação (tabela).
Chave Secundária
- Chave secundária: É uma chave utilizada para fins de recuperação de dados.
- Atributo (ou combinação de atributos) utilizado estritamente para fins de recuperação de dados.
Dependência Funcional
- O atributo B é funcionalmente dependente do atributo A se cada valor da coluna A determina um e somente um valor da coluna B.
- O atributo A determina o atributo B, ou seja, B é funcionalmente dependente de A, se todas as linhas da tabela que correspondem em valor ao atributo A também correspondem em valor ao atributo B.
Dependência Funcional Completa
- Se o atributo B é funcionalmente dependente de uma chave composta A, mas não de qualquer subconjunto dessa chave composta, o atributo B apresenta dependência funcional completa em relação a A.
Regras de Integridade
- Integridade de entidades
- Integridade referencial
Integridade de Entidades
- Todas as entradas de chave primária são únicas e nenhuma parte dessa chave pode ser nula.
- Cada linha terá uma entidade exclusiva, e valores de chave estrangeira podem referenciar de modo adequado os valores de chave primária.
- Exemplo: Nenhuma fatura pode ter número duplicado nem ser nula. Todas as faturas são identificadas de modo exclusivo pelo seu número.
Integridade Referencial (Detalhada)
- Uma chave estrangeira pode ter uma entrada nula, contanto que não faça parte da chave primária de suas tabelas, ou uma entrada que coincida com o valor de chave primária de uma tabela que esteja relacionada.
- Todo valor não nulo de chave estrangeira deve referenciar a um valor de chave primária existente.
- É possível que um atributo não tenha um valor correspondente, mas é impossível que tenha uma entrada válida.
- A aplicação da regra de integridade referencial torna impossível a exclusão de uma linha em uma tabela cuja chave primária tenha valores obrigatórios de chave estrangeira em outra tabela.
- Exemplo: Um cliente pode ainda não ter recebido a atribuição de um representante de vendas (número), mas é impossível que tenha um representante de vendas inválido (número).
Dicionário de Dados
- Fornece uma descrição detalhada de todas as tabelas encontradas no banco de dados.
- O dicionário de dados contém metadados – dados sobre dados.
- É um exemplo de visualização humana das entidades, atributos e relacionamentos.
Operações de Banco de Dados
- Recuperações: Consulta (SELECT).
- Atualizações (ou modificações):
- Inserir (INSERT)
- Excluir (DELETE)
- Alterar ou modificar (UPDATE)
Operação Inserir
Deve respeitar:
- Restrições de domínio
- Restrições de chave
- Integridade de entidade
- Integridade referencial
Operação Excluir
- Pode violar apenas a integridade referencial.
- Ocorre se a tupla que está sendo excluída for referenciada por chaves estrangeiras de outras tuplas no banco de dados.
Arquitetura de Módulos
- Módulo cliente: Projetado para executar em uma estação de trabalho ou computador pessoal. Contém os programas de aplicação e interfaces com usuário que acessam o banco de dados. Esse módulo se encarrega da interação do usuário e oferece interfaces amigáveis: formulários, GUIs, menus.
- Módulo servidor: É responsável pelo armazenamento de dados, acesso, pesquisa e outras funções.
Abstração de Dados
- Característica fundamental da abordagem de banco de dados.
- Refere-se à supressão de detalhes da organização e armazenamento dos dados.
- Destaca recursos essenciais para um melhor conhecimento desses dados.
- A abstração possibilita que diferentes usuários possam perceber tais dados em seu nível de detalhe preferido.
Modelo de Dados
- Uma coleção de conceitos que podem ser usados para descrever a estrutura de um banco de dados.
- Oferece os meios necessários para alcançar a abstração.
- Estrutura de banco de dados: Tipos, relacionamentos, restrições que se aplicam aos dados e operações básicas de recuperação e atualizações.
- Permite ao projetista especificar um conjunto de operações válidas, definidas pelo usuário, sobre os objetos do banco de dados.
Categorias de Modelos de Dados
- Modelos de dados de alto nível ou conceituais: Entidades, atributos e relacionamentos.
- Modelos de dados de baixo nível ou físicos: Ordenação de registro e caminhos de acesso (índice).
- Modelos de dados representativos ou de implementação: Baseados em registro.
- Modelos de dados legados: Modelos de rede e hierárquicos, bastante usados no passado.
Conceitos Fundamentais
- Entidade: Um objeto ou conceito do mundo real que é descrito no banco de dados (ex: funcionário, projeto).
- Atributo: Representa alguma propriedade de interesse que descreve melhor uma entidade (ex: nome ou salário do funcionário).
- Relacionamento: Acontece entre duas ou mais entidades. Representa uma associação entre elas (ex: relacionamento trabalha_em entre um funcionário e um projeto).
Esquemas e Estados
- Esquemas: Descrição do banco de dados. É especificado durante o projeto e espera-se que não mude com frequência.
- Diagrama de esquema: É a representação gráfica de um esquema.
- Construtor do esquema: Cada objeto no esquema.
- Diagrama de esquema: Representa apenas alguns aspectos (nomes de tipos de registros, itens de dados, algumas restrições). Muitos tipos de restrições não são apresentadas nele.
- Estado: Os dados no banco de dados em determinado momento no tempo (instante do banco de dados). Os dados reais podem mudar com frequência através de inserções, exclusões ou alterações.
- Instâncias: O conjunto atual de ocorrências no banco de dados. Cada construtor de esquema tem o próprio conjunto de instâncias atuais (registros).
- Metadados: As descrições das construções e restrições do esquema são armazenadas no catálogo do SGBD.
Arquitetura de Três Esquemas
- Nível interno (esquema interno): Descreve a estrutura do armazenamento físico; usa um modelo de dados físico e detalha caminhos de acesso.
- Nível conceitual (esquema conceitual): Descreve a estrutura do banco de dados inteiro para a comunidade de usuários; oculta detalhes físicos e foca em entidades, relacionamentos e restrições.
- Nível externo (de visão): Inclui esquemas externos ou visões do usuário; descreve a parte do banco de dados de interesse de um grupo específico, ocultando o restante.
Independência de Dados
Capacidade de alterar o esquema em um nível sem alterar o esquema no nível mais alto.
- Independência física de dados: Capacidade de alterar o esquema interno sem alterar o esquema conceitual ou os esquemas externos.
- Independência lógica de dados: Capacidade de alterar o esquema conceitual sem alterar os esquemas externos ou programas de aplicação (ex: adicionar/remover itens ou alterar restrições).
Linguagens do SGBD
- DDL (Linguagem de Definição de Dados): Usada pelo DBA e projetistas para processar instruções de construtores de esquemas e armazenar a descrição no catálogo. Especifica o esquema conceitual.
- SDL (Linguagem de Definição de Armazenamento): Especifica o esquema interno e o mapeamento entre esquemas.
- VDL (Linguagem de Definição de Visão): Especifica visões do usuário e seus mapeamentos ao esquema conceitual.
- DML (Linguagem de Manipulação de Dados): Usada para recuperação, inserção, exclusão e modificação. Pode ser de alto nível (não procedural) ou baixo nível (procedural).
Interfaces de SGBD
- Interfaces baseadas em menu (Web ou navegação).
- Interfaces baseadas em formulários.
- Interfaces gráficas com o usuário (GUI).
- Interfaces em linguagem natural.
- Entrada e saída de voz.
- Interfaces para usuários paramétricos.
Arquitetura Cliente/Servidor
- Lida com grande número de PCs, estações de trabalho e servidores (arquivo, impressão, banco de dados, Web, correio). As máquinas clientes oferecem as interfaces para utilizar esses servidores.
- Arquitetura de Duas Camadas: O servidor é chamado de servidor de consulta, transação ou servidor SQL. Utiliza conectividades como ODBC (Open Database Connectivity) e JDBC (Java Database Connectivity).
- Arquitetura de Três Camadas: Acrescenta uma camada intermediária (servidor de aplicação ou servidor Web) entre o cliente e o servidor.