MÓDULO 11 – CONCEITOS DE BANCO DE DADOS RELACIONAL Apesar de todas as dificuldades que foram apresentadas anteriormente sobre o armazenamento de dados em arquivos lineares não redundantes e ao mesmo tempo integrados, essa idéia é uma ótima estrutura para um banco de dados desejável. Afinal, a organização de arquivos lineares é a estrutura de dados mais básica disponível e a mais utilizada. Tudo o que falamos agora é encontrado nos bancos de dados relacionais. Em um banco de dados relacional, os dados armazenados aparentam estar em arquivos lineares simples. Como o banco de dados relacional utiliza notações matemáticas em suas estruturas, esses arquivos lineares são chamados de relações, sendo que na prática chamamos mesmo é de “tabelas”. Quando falamos em dados armazenados em arquivos, cada linha representa um registro, e dentro de uma relação elas são chamadas de “tuplas”. Em arquivos as colunas são chamadas de campos, e nas relações as colunas são chamadas de “atributos”. Na prática, quando é falado em banco de dados relacionais os seguintes sinônimos são utilizados. Relações -> Tabelas Tuplas -> Linhas Registros -> Atributos Colunas -> Campos Existe uma diferença entre os conceitos usado nos arquivos e os conceitos utilizados nas relações, pois em um banco de dados relacional os dados apresentam estar armazenados em estruturas que parecem muito com um arquivo. As diferenças são: 1. As colunas existentes em uma relação podem estar em qualquer ordem, que o significado dos dados não é afetado. Isto não é possível em um arquivo. 2. As linhas de uma relação podem estar dispostas em qualquer ordem, o que não é possível em um arquivo. 3. Cada posição Linha/Coluna, que podemos chamar também de células devem ter apenas um único valor, o que não é necessariamente verdade em um arquivo. 4. Em uma relação não existe duas linhas que sejam idênticas, o que não é necessariamente verdade em um arquivo. 11.1 Chave primária “O que é uma chave?” Chave é um conjunto de atributos de uma relação que pode ser utilizada em qualquer operação que englobe atributos e valores de atributos. Em algumas relações podem ser encontradas várias chaves parecidas, também chamadas de chaves candidatas. Durante a fase de projeto lógico do banco de dados, o Administrador de Banco de Dados escolhe uma dessas chaves, aplicando a ela a restrição de estado único, sendo essa chave escolhida denominada de “chave primária”. Com a utilização de uma chave primária, uma relação nunca apresentará linhas repetidas, significando a possibilidade de identificar cada linha separadamente uma da outra. Ex: Tabela de vendedores CODIGO 001 002 003 004 NOME Carlos Eduardo Marcos Paulo CIDADE Fortaleza São Paulo Campinas Rio de Janeiro ESTADO Ceará São Paulo São Paulo Rio de Janeiro CATEGORIA A03 A03 A01 A04 VENDEDORES(CODIGO, NOME, CIDADE, ESTADO, CATEGORIA) Na tabela de vendedores a chave primária é representada pelo conjunto {CODIGO} uma vez que dois vendedores não apresentam o mesmo código. Qualquer outro conjunto de atributos da relação “vendedor” que contenha “codigo” (CODIGO, NOME, CIDADE) é uma chave candidata. No entanto a escolha da chave primária objetiva sempre minimizar a quantidade de atributos. Quando uma chave primária é construída com mais de um atributo da relação, ela é denominada de “chave primária composta”, caso o contrário é denominada de “chave primária simples”. Entre as várias chaves candidatas de uma relação, aquelas que não foram escolhidas como chaves primárias são denominadas de chaves alternativas e podem ser utilizadas como chave de ordenação ou consulta. Já as chaves que não fazem parte do conjunto de chaves candidatas são denominadas de chaves secundárias, pois não permite a identificação individual de uma linha da relação. A chave estrangeira referencia sua própria relação, não sendo necessário aparecer como chave na relação que participar. Exemplo de chave estrangeira: Observe na tabela de pedidos a existência de COD_FOR e COD_PECA como chaves estrangeiras nessa relação, pois COD_FOR e COD_PECA são chaves primárias nas relações peças e fornecedores. 11.2 As restrições de integridade As restrições de integridade são algumas normas que foram criadas e definidas para manter a total integridade dos dados armazenados no banco de dados. As principais restrições de integridade são: Restrição de domínio: Todos os valores dos atributos devem ser coerentes com o domínio correspondente. Ex: Idade: Número inteiro positivo Salário: Número real positivo Restrição de chave primária: Cada valor existente na chave primária deve ser único na relação a que pertence. Restrição de entidade: O valor de uma chave primária nunca pode ser nulo, pois o valor nulo não permite a identificação de uma linha. Restrição de referência: Toda referência que é feita de uma linha através de uma chave estrangeira deve ser verificada, pois toda linha que for referenciada deve previamente existir no banco de dados. 11.3 As operações de um banco de dados relacional Todas as operações executadas em um banco de dados relacional abordam quatro categorias, devendo obedecer as restrições de integridade que citamos anteriormente. As categorias são: 11.3.1 Operações sobre estruturas As operações que são realizadas sobre as estruturas apóiam os administradores de banco de dados nas definições e manutenções. São elas: Inserção: Adição de novas tabelas ao plano de dados. Remoção: Retirada de tabelas e atributos do esquema de dados. Atualização: Adição de algum tipo de atributo a uma tabela já existente no esquema dos dados. As operações realizadas na estrutura do banco de dados permitem a adaptação do BD às novas necessidades que possam surgir dentro da empresa. 11.3.2 Operações sobre os dados São operações realizadas sobre as linhas (tuplas) já existentes em um banco de dados. São elas: Inserção: Adição de uma ou mais linhas em uma relação. Remoção: Retirada de uma ou mais linhas de uma relação. Atualização: Alteração de algum valor de atributo de uma linha. 11.3.3 Operações sobre conjuntos São operações aplicadas a duas relações que obedecem à compatibilidade de união, apresentando atributos pertencentes ao mesmo domínio. União: O resultado da união de duas relações consiste no conjunto de todas as linhas das duas relações, sem a existência de redundância nas linhas. Interseção: O resultado da interseção de duas relações consiste no conjunto de todas as linhas que pertencem as duas relações. Diferença: é o resultado da diferença entre duas relações, gerando como resultado as linhas que pertencem a uma relação e não pertence à outra. Produto cartesiano: é aplicada a relação que não necessitam ser compatíveis para gerar a sua união. O resultado do produto cartesiano é uma relação que apresenta linhas que são formadas pela combinação de todas as linhas de uma relação com as linhas das outras. 11.3.4 Operações sobre tabelas São as operações aplicadas a qualquer tipo de relação. São elas: Seleção: Operação aplicada a um conjunto de relações com o propósito de selecionar um subconjunto de linhas com todos os seus atributos, que satisfazem a uma determinada condição que foi imposta. O conjunto de linhas resultantes dessa seleção forma uma relação temporária. Projeção: Operação aplicada a uma relação com o intuito de selecionar os atributos de uma relação com base em uma lista de atributos que foi fornecida. O resultado é uma tabela sem repetições. Junção: Operação utilizada para combinar linhas que foram selecionadas de duas ou mais relações, de modo a ser estabelecida virtualmente uma única linha. This document was created with Win2PDF available at http://www.win2pdf.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only. This page will not be added after purchasing Win2PDF.