Você está na página 1de 12

1- Banco de dados um conjunto de registros dispostos em estrutura regular que possibilita a reorganizao dos mesmos e produo de informao.

. Um banco de dados usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Um SGBD corresponde a um conjunto de programas que permitem armazenar, modificar e extrair informao de um banco de dados. Ele age como interface entre os programas de aplicao e os dados fsicos. Normalmente um SGBD adota um modelo de dados. O mais adotado hoje em dia o modelo relacional, onde as estruturas tm a forma de tabelas, compostas por tuplas (linhas) e colunas. J a linguagem padro para os bancos de dados relacionais a Linguagem de Consulta Estruturada (SQL).

1.1 Caractersticas da Abordagem Relacional

O relacionamento entre conjunto de dados (tabelas) no existe fisicamente (apenas lgico);

Definies

Relao

tabela bi-dimensional, composta de linhas e colunas de dados.

Atributo = Coluna Grau de uma relao: Nmero de atributos. Tupla (ou n-uplet): Uma linha da relao = um registro

Chave Primria um ou mais atributos de uma tabela, cujos valores, nunca se repetem na tabela. Em chaves primrias, no pode haver valores nulos.

Chave Estrangeira: um atributo em uma tabela que faz referncia a chave primria de outra tabela. Ou seja, passa a existir uma relao entre essas duas tabelas. A finalidade da chave estrangeira garantir a integridade dos dados referenciais. Integridade referencial: Se uma determinada tabela A possui um atributo que chave estrangeira em uma tabela B, ento em cada tupla da tabela A ele deve: Ser igual a uma chave primria existente em B ou ter o valor nulo. Ou seja, no pode existir na chave estrangeira um valor que no exista na tabela na qual ela chave primria.

Esquema de Banco de Dados Relacional: nomes das relaes seguidos pelos nomes dos atributos, com os atributos chaves sublinhados e com as chaves estrangeiras identificadas. 1

Exemplo de esquema: Aluno (Aluno_Matricula, Aluno_Nome) Curso (Curso_ID, Curso_Nome) Matriculado (Curso_ID, Aluno_Matricula, Nota) Chave estrangeira: Curso_Id referencia Curso_Id em Curso Aluno_Matricula referencia Aluno_Matricula em Aluno.

1.2 - Derivao do diagrama de classe para o modelo relacional Regras bsicas: 1) Toda Classe vira uma Tabela (Relao) no Modelo Relacional 2) Todo Atributo da Classe vira um Atributo (Coluna) no Modelo Relacional 3) Na derivao do Diagrama de Classe para o Modelo Relacional s interessa analisar o Grau (restrio de mapeamento ou cardinalidade) mximo do relacionamento. A seguir analisaremos como transformar os relacionamentos do Diagrama de Classe para o Modelo Relacional.

1.2.1 Relacionamentos 1:N (vrias classes)

A Tabela cuja a classe possui multiplicidade mxima N carrega o identificador da tabela cuja a classe possui multiplicidade mxima 1.

Esquema Relacional: Empregado (matricula,nome) 2

Projeto (cdigo,nome,descricao,valor,dtInicio,durao,matricula) Chave Estrangeira: matricula referencia matricula em Empregado

1.2.2 Relacionamentos 1:N (mesma classe) Incluir uma nova chave na mesma tabela, passando a ter o papel de chave estrangeira.

Esquema Relacional: Empregado (matricula, nome, matricula_chefe) Chave Estrangeira: matricula_chefe referencia matricula em funcionario

1.2.3 Relacionamentos 1:1 (vrias classes) Incluir a chave primria na tabela cuja multiplicidade mnima da classe 0.

Esquema Relacional Aluno (matricula,nome,dtNascimento,numero) Chave Estrangeira numero referencia numero em Armario

Armario (numero, localizacao)

1.2.4 Relacionamentos 1:1 (mesma classe) Incluir uma nova chave na prpria entidade.

Esquema Relacional: Pessoa (cpf, nome, cpf_conjuge) Chave Estrangeira cpf_conjuge referencia cpf em Pessoa 4

1.2.5 Relacionamentos M:N (vrias classes) O relacionamento torna-se uma tabela, carregando seus atributos e os identificadores das tabelas que ele se relaciona.

Esquema Relacional: Aluno (matricula,nome,dtNascimento) Turma (codigo,anosemestre) Cursa (matricula, codigo, G1,G2,G3,faltas) Chaves Estrangeiras matricula referencia matricula em Aluno codigo referencia codigo em Turma

1.2.6 Relacionamentos M:N (mesma classe)

Criar nova tabela, com os identificadores da classe

Esquema Relacional: Disciplina (codigo,nome,conteudo) Pre-Requisito (codigo_exige, codigo_satisfaz). Chaves Estrangeiras: Codigo_exige referencia codigo em disciplina Codigo_satisfaz referencia codigo em disciplina

1.2.7 Relacionamentos de generalizao Todas as classes viram tabelas. As tabelas referentes as subclasses carregam a chave primria da super-classe.

CargaTransportada (codigo, descrio, peso, volume) Frigorificada (codigo, tempMin, tempMax) Chave Estrangeira: codigo referencia codigo em CargaTransportada Perecivel (codigo, dtVencimento) Chave Estrangeira: codigo referencia codigo em CargaTransportada

1.1.
Transforme o diagrama de classe em um esquema relacional.

Exemplo

1.3 Formas Normais Formas normais so regras para estruturar relaes eliminando anomalias. Primeira Forma Normal (1NF): Todos os atributos devem ser atmicos (ou seja, contm um s valor). Dependncia Funcional (DF): Um valor de um (ou mais) atributo(s) em uma tupla (linha, registro) determina o valor de outro(s) atributo(s) na tupla. Representao DF: A B

Significado: se qualquer par de tuplas (linhas, registros) possuem o mesmo valor para o atributo A, ento elas tm que ter o mesmo valor do atributo B. Esta definio tambm vale se A e B forem conjuntos de atributos ao invs de um s atributo. O(s) atributo(s) do lado esquerdo de uma DF (so) chamados de determinante(s), porque ele(s) determina(m) o valor do(s) atributo(s) do lado direito. Uma chave primria de uma relao um determinante, pois seu valor determina unicamente o valor de todos os outros atributos de uma tupla. Exemplo de uma relao que no 1NF (valores mltiplos em Prdio_ID). Func_Matricula Func_Funo Predio_ID 10 11 12 14 Eletricista Eletricista Eletricista Mecnico 120, 135 120 120, 135, 140 120

Segunda Forma Normal (2NF): Nenhum atributo no-chave depende funcionalmente de somente uma parte de chave. Ela somente pode ser violada no caso de chaves compostas. A 2NF tambm pode ser expressa por: Todo atributo no-chave depende funcionalmente de TODA a chave. Exemplo de uma relao que no 2NF: Chave primria: Func_Matrcula e Prdio ID; Func_Nome depende somente de Func_Matricula Data Func_Matricula Predio_ID Alocao Func_Nome Obra 10 20 20 22 312 312 522 433 1/1/2001 5/2/2002 3/3/2002 18/8/2001 Jos Joo Joo Marcos

Como passar da 2a. para a 3a. forma normal: Decomposio da relao, ou seja, criar nova relao, com os atributos que transgridem a DF. Resultado: (3FN) Alocado (Func-MAt, Predio_ID, Data) Funcionrio (Func_Mat, Nome)

Terceira Forma Normal (3NF): Todo determinante uma chave.

10

1.1.1. Exemplo
Seja a seguinte tabela de Faturas de produtos da queijaria Nova Estrela: CdigoDoCliente ALFKI ALFKI ALFKI ANATR ANATR ANATR ANTON ANTON ANTON CdigoDoProduto 1 2 3 1 2 3 1 2 3 Quantidade 100,00 110,00 120,00 130,00 140,00 150,00 160,00 170,00 170,00 NDoTelefone 030-0074321 030-0074321 030-0074321 (5) 555-4729 (5) 555-4729 (5) 555-4729 (5) 555-3932 (5) 555-3932 (5) 555-3932 PreoUnitrio R$18,00 R$19,00 R$10,00 R$18,00 R$19,00 R$10,00 R$18,00 R$19,00 R$10,00

Dica: Pense na seqncia das questes! A) Quais so as dependncias funcionais desta tabela? B) Qual a melhor chave primria para esta tabela? (a chave primria pode ser eventualmente uma chave composta) C) Identifique a Forma Normal mais elevada desta tabela. D) Se for o caso, transforme a tabela para a Terceira Forma Normal. Resposta: A) Quais so as dependncias funcionais desta tabela? CdigoDoCliente CdigoDoProduto NDoTelefone PreoUnitrio Quantidade

CdigoDoCliente, CdigoDoProduto

B) Qual a melhor chave primria para esta tabela? (a chave primria pode ser eventualmente uma chave composta) CdigoDoCliente, CdigoDoProduto

C) Identifique a Forma Normal mais elevada desta tabela. 1a. Forma Normal (todos os atributos possuem um nico valor). No segunda forma normal pois os atributos no-chave NDoTelefone e PreoUnitrio dependem funcionalmente de somente uma parte de chave.

D) Se for o caso, transforme a tabela para a Terceira Forma Normal. Cliente (CdigoDoCliente, NDoTelefone) Produto (CdigoDoProduto, PreoUnitrio) 11

Venda (CdigoDoCliente, CdigoDoProduto, Quantidade) Chaves Estrangeiras: CdigoDoCliente referencia CdigoDoCliente em Cliente CdigoDoProduto referencia CdigoDoProduto em Produto

12

Você também pode gostar