78
Conceitos genéricos Conceitos genéricos sobre bases de dados sobre bases de dados

Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Embed Size (px)

Citation preview

Page 1: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Conceitos genéricos sobre Conceitos genéricos sobre bases de dadosbases de dados

Page 2: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Os sistemas de ficheirosOs sistemas de ficheiros

Todos os sistemas operativos criam um sistema de ficheirossistema de ficheiros, cuja finalidade é identificar as várias unidades lógicas de armazenamento da

informação e criar um sistema hierárquico de directórios e ficheiros.

Podemos ter, por exemplo, 3 unidades lógicas (C:, D: e E:) e apenas 2 unidades físicas (2 discos)…

É desta forma que o SO cria, perante os olhos do utilizador, uma máquina virtual que pode não ter uma correspondência directa com os dispositivos físicos de hardware efectivamente instalados.

Page 3: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

O sistema hierárquico de O sistema hierárquico de directórios e ficheirosdirectórios e ficheiros

Em cada unidade lógica existe uma zona principal de armazenamento – raiz – onde podem ser armazenados ficheiros e outros directórios.

Ficheiro – conjunto de bytes que o SO identifica e trata como uma unidade, atribuindo-lhe um nome. Podem ser ficheiros de dados ou ficheiros executáveis. Para o SO isso não importa.

Directório – área de armazenamento na qual podem ser guardados ficheiros e directórios.

ÁRVORE HIERÁRQUICA

(invertida uma vez que no topo é que se encontra a raíz)

Page 4: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

As aplicações e o ficheirosAs aplicações e o ficheiros

O SOO SO é responsável pela criação de um sistema de ficheiros.

Num sistema de ficheiros cada aplicaçãoNum sistema de ficheiros cada aplicação é responsável pela criação e pela manutenção da estrutura interna dos seus ficheiros.

Cada tipo de ficheiro possui a sua própria estrutura. Os ficheiros criados a partir do

Word possuem uma estrutura diferente dos criados no Paint! O SO é o mesmo o

sistema de ficheiros utilizado é o mesmo!

Page 5: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Os sistemas de Bases de DadosOs sistemas de Bases de Dados

Num sistema de bases de dados existe um sistema de software situado entre as aplicações e os dados, a que se dá o nome de SISTEMA DE GESTÃO DE

BASES DE DADOS (SGBD).

A finalidade fundamental dum SGBD consiste em isolar as aplicações e os dados, proporcionando uma visão lógica da organização da informação. E é esta visão lógica que constitui o modelo conceptual da base de dados.

Page 6: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Base de dados - BDBase de dados - BD

O que é?

• Uma BD é um simples repositório de informação, relacionado com um determinado assunto ou finalidade, armazenada em computador em forma de ficheiros.

Para que serve?

• Serve para gerir vastos conjuntos de informação de modo a facilitar a organização, manutenção e pesquisa de dados.

Page 7: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Vantagens das Bases de DadosVantagens das Bases de Dados

Vantagens básicas sobre os modelos tradicionais:

• CompacidadeCompacidade – evita os tradicionais volumosos conjuntos de papeis

• RentabilidadeRentabilidade – a manutenção da informação em papel é um trabalho bastante mais penoso

• VelocidadeVelocidade – o computador consegue manusear grandes quantidades de informação num curto espaço de tempo

• CorrecçãoCorrecção – a informação tende a ser mais actual, correcta e precisa

Page 8: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Organizar a informação numa BDOrganizar a informação numa BD

• CampoCampo – conjunto de bytes que correspondem a uma informação elementar sobre uma entidade ou um acontecimento.

• RegistoRegisto – conjunto de campos relacionados com a mesma entidade ou acontecimento.

NomeNome MoradaMorada TelefoneTelefone Data nasc.Data nasc. SexoSexo

JoãoJoão PortoPorto 227899765227899765 03-01-7803-01-78 MM

AnaAna AlmadaAlmada 938567544938567544 13-12-7913-12-79 FF

CarlaCarla SintraSintra 917865430917865430 19-09-8019-09-80 FF

campocampo

registoregisto

Page 9: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Desvantagem das BDs monotabelaDesvantagem das BDs monotabela

ClienteCliente EndereçoEndereço TelefoneTelefone ProdutoProduto PreçoPreço QuantidadeQuantidade

SilvaSilva PortoPorto 123123 AlicateAlicate 0,50 €0,50 € 55

SilvaSilva PortoPorto 123123 MarteloMartelo 0,75 €0,75 € 1010

CostaCosta AveiroAveiro 444444 AlicateAlicate 0,50 €0,50 € 1010

MarquesMarques LisboaLisboa 555555 SerraSerra 1,00 €1,00 € 1414

SilvaSilva PortoPorto 123123 SerraSerra 1,00 €1,00 € 1010

Existe informação repetida!!!

Page 10: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Desvantagem das BDs monotabela: Desvantagem das BDs monotabela: solução…solução…

IdId NomeNome EndereçoEndereço TelefoneTelefone

11 SilvaSilva PortoPorto 123123

22 CostaCosta AveiroAveiro 444444

33 MarquesMarques LisboaLisboa 555555

Tabela Clientes:

IdId NomeNome PreçoPreço

11 MarteloMartelo 0,75 €0,75 €

22 AlicateAlicate 0,50 €0,50 €

33 SerraSerra 1,00 €1,00 €

Tabela Produtos:

IdCli.IdCli. IdProd.IdProd. Quant.Quant.

11 22 55

11 11 1010

11 33 1010

22 22 1010

33 33 1414

Tabela Encomendas:

Page 11: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Características das BD’sCaracterísticas das BD’s

As bases de dados devem facilitar o processo de:

• Adicionar novos ficheiros

• Remover ficheiros existentes

• Inserir novos dados num ficheiro

• Remover dados de um ficheiro

• Actualizar dados de um ficheiro

• Obter informação específica a partir de ficheiros da BD

Page 12: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Relativamente aos dados...Relativamente aos dados...

Os dados estão organizados segundo uma determinada estrutura e interligados, tendo em vista:

• evoluírem independentemente dos programas;

• serem partilhados por programas de diferentes aplicações e em ambientes diferentes;

• a não redundância de informação;

• manter a sua integridade e protecção;

• a eficácia do sistema.

Page 13: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Sistema gestão de bases de dadosSistema gestão de bases de dadosSGBDSGBD

O que é?

• São programas ou conjuntos integrados de programas que permitem definirdefinir, criarcriar e manipularmanipular bases de dados, em que os dados são estruturados com independência relativamente aos programas de aplicação que os manipulam.

Page 14: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Sistema de Base de DadosSistema de Base de Dados

Sistema BD = BD + SGBD

S G B D

Base de Dados

Aplicação A

Aplicação B

Aplicação C

Page 15: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Exemplos de SGBD’sExemplos de SGBD’s

• Oracle;

• Informix;

• DB;

• ADABAS;

• Ingres;

• MS AccessMS Access;

• Foxpro;

• Etc...

Page 16: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Arquitectura dum SGBDArquitectura dum SGBD

Nível físicoNível físico: corresponde à forma como os dados da BD são armazenados e organizados internamente no sistema informático.

Nível conceptualNível conceptual: corresponde à forma como os dados são estruturados ou organizados ao nível da sua concepção lógica (o nº e o tipo de campos, as relações entre os dados, etc.)

Nível de visualizaçãoNível de visualização: corresponde à forma como os dados são apresentados aos utilizadores.

Page 17: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

SGBD: Arquitectura...SGBD: Arquitectura...

Nível de Nível de visualizaçãovisualização

Nível Nível conceptualconceptual

Nível Nível físicofísico

110001100010

001011010101

Ficha do alunoFicha do aluno

Nome: _________Nome: _________

Idade: _________Idade: _________

Consulta do Aluno AConsulta do Aluno A

Disc.Disc. Nota1Nota1 Nota2Nota2

D1D1 1212 1515

D2D2 1414 1818

Page 18: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

SGBD: Funções ISGBD: Funções I1. Definição e alteração da estrutura de uma BD:

• criar uma nova base de dados;

• criar um novo ficheiro ou tabela;

• alterar a estrutura de campos de uma tabela;

• criar e alterar ficheiros de índices;

• eliminar ficheiros ou tabelas de uma BD.

Estas operações são efectuadas através da chamada Linguagem Linguagem de Definição de Dados – LDDde Definição de Dados – LDD.

Estas operações situam-se a nível conceptualEstas operações situam-se a nível conceptual

Page 19: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

SGBD: Funções IISGBD: Funções II

2. Manipulação de dados sem alteração da estrutura da BD:

• consultas ou pesquisas de dados;

• inserção de novos dados;

• alteração de dados existentes;

• eliminação de dados.

Estas operações são efectuadas através da chamada Linguagem Linguagem de Manipulação de Dados – LMDde Manipulação de Dados – LMD.

Estas operações situam-se a nível de visualizaçãoEstas operações situam-se a nível de visualização

Page 20: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

SGBD: Funções IIISGBD: Funções III

Estas operações situam-se a nível de visualização – Estas operações situam-se a nível de visualização –

O administrador do sistema da BDO administrador do sistema da BD

3. Controlo dos dados:

estas operações têm a ver com a atribuição ou supressão dos direitos de acesso aos dados em relação a utilizadores ou grupos de utilizadores.

Page 21: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

SGBD: Funções IVSGBD: Funções IV

O SGBD Microsoft Access permite a utilização O SGBD Microsoft Access permite a utilização de uma versão da linguagem de programação de uma versão da linguagem de programação

Visual Basic – VBA.Visual Basic – VBA.

4. Desenvolvimento de aplicações numa linguagem Hospedeiralinguagem Hospedeira:

estas aplicações têm por objectivo tornar mais fácil aos utilizadores finais o trabalho com a BD.

Page 22: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

BD: esquemas e instânciasBD: esquemas e instâncias

Base de dadosBase de dados

EsquemaEsquema InstânciaInstânciaDesign ou estrutura lógica com que a BD é definida; o modo como é concebida a organização da informação.

LDDLDD

Dados concretos que a BD contém em cada momento, os quais podem variar com a utilização da BD.

LMDLMD

Page 23: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

1. Modelos baseados em objectos (representam a realidade através de objectos)

2. Modelos baseados em registos (representam a realidade através de registos)

Modelos de Bases de Dados IModelos de Bases de Dados I

Page 24: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Modelos de Bases de Dados IIModelos de Bases de Dados II

• Modelo E-RModelo E-R (entidades e relacionamentos entre as entidades)

• Modelo orientado por objectos

• Modelo semântico

• Modelo funcional

• Modelo hierárquico

• Modelo de rede

• Modelo relacionalModelo relacional (registos)

Modelos baseados em objectos:

Modelos baseados em registos:

Page 25: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

O modelo E-RO modelo E-RO modelo E-R procura criar uma representação da realidade

através dos conceitos de entidade e relacionamento.

EntidadeEntidade – algo no mundo real com uma existência independente. Uma entidade pode ser:

• Um objecto com existência física (carro, casa, empregado, …)

• Um objecto com existência conceptual (companhia, profissão, curso de universidade, …)

RelacionamentoRelacionamento – traduz as relações entre as entidades consideradas. Por exemplo:

• a relação existente entre a entidade Cliente e a entidade Produto (um cliente encomendaencomenda produtos a uma dada empresa)

Page 26: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Modelo E– R: Entidades IModelo E– R: Entidades I

AtributosAtributos: elementos ou propriedades que caracterizam uma determinada entidade. Por exemplo, os atributos duma entidade Pessoa podem ser: Nome, Idade, Sexo, Morada, …

No modelo E—R :

• As entidades são compostas ou caracterizadas por atributos.

• Graficamente, as entidades são representadas por rectângulos e os seus atributos por elipses.

• Quando definimos uma entidade estamos a definir uma classe de entidades.

Page 27: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Modelo E—R: Entidades IIModelo E—R: Entidades II

NotasNotas:

• uma entidade corresponde a uma tabela.

• os atributos da entidade correspondem aos campos da tabela

• os vários elementos das entidades correspondem aos registos.

Nome

Contribuinte

Endereço

Telefone

Empresa

Page 28: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

E—R: valores e domínios dos E—R: valores e domínios dos atributosatributos

O domínio dum atributo é o conjunto de todos os valores que este pode assumir.

Num SGBD, a definição dos domínios dos atributos costuma ser feita mediante a escolha de um entre vários tipos pré-definidos, como por exemplo:

• string (caracter)

• number (valores numéricos)

• memo (textos mais extensos)

• date (para datas)

• …

Page 29: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

E—R: tipos de atributos IE—R: tipos de atributos I

Atributo Composto:Atributo Composto: pode ser dividido em vários atributos pode ser dividido em vários atributos

básicos e com significado independente. Por exemplo, o atributo básicos e com significado independente. Por exemplo, o atributo EndereçoEndereço da entidade da entidade PessoaPessoa pode ser dividido em pode ser dividido em RuaRua, , CidadeCidade, , CódigoPostalCódigoPostal..

Atributo Atómico:Atributo Atómico: atributo não divisível. Por exemplo, o atributo atributo não divisível. Por exemplo, o atributo

IdadeIdade da entidade da entidade Pessoa.Pessoa.

Questão:

Considere-se o atributo Disciplina da entidade Aluno. Este atributo está definido correctamente?

NÃONÃO! Disciplina deve ser entendido como uma entidade e não como um atributo (note-se que o

aluno pode estar em mais do que uma disciplina).

Page 30: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

E—R: tipos de atributos IIE—R: tipos de atributos II

Atributo identificador (Chave):Atributo identificador (Chave): identifica cada entidade identifica cada entidade

concreta. Este atributo desempenha o papel de chave numa entidade concreta. Este atributo desempenha o papel de chave numa entidade ou tabela. Por exemplo, o atributo BI da entidade Pessoa é o atributo ou tabela. Por exemplo, o atributo BI da entidade Pessoa é o atributo identificador dessa entidade.identificador dessa entidade.

Para assegurar que existe um atributo que define de modo único e inequívoco cada entidade concreta, é bastante comum recorrer-se a um atributo “artificial”. Ou seja, cada entidade terá mais um atributo (sempre que necessário) do tipo

IDEmpregadoIDEmpregado, IDAlunoIDAluno, IDProdutoIDProduto, …

Page 31: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

RelaçõesRelaçõesApós identificadas todas as entidades necessárias, bem como todos os atributos que definem

cada entidade, é necessário perceber e definir o modo como as entidades se relacionam.

Tipos de relações:

1.1. Relações UnáriasRelações Unárias: uma classe de entidades pode manter um relacionamento consigo própria. Por exemplo, considere-se a entidade EmpregadosEmpregados e a relação “o empregado x supervisiona o empregado yo empregado x supervisiona o empregado y”.

No modelo E—R, um relacionamento é representado por um losango e por linhas que interligam as entidades entre si através do losango.

Empregados

R

Page 32: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

E—R: Relacionamentos IE—R: Relacionamentos I

Alunos DisciplinasR

2.2. Relações BináriasRelações Binárias: duas entidades ou classes de entidades que se relacionem. Por exemplo, considerem-se as entidades AlunosAlunos e DisciplinasDisciplinas e a relação R=“o aluno A está inscrito na disciplina Bo aluno A está inscrito na disciplina B”.

Page 33: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

E—R: Relacionamentos IIE—R: Relacionamentos II

3.3. Relações TernáriasRelações Ternárias: três entidades ou classes de entidades que se relacionam. Por exemplo, considere-se a entidade Actores, Actores, RealizadoresRealizadores e FilmesFilmes e a relação R = “o filme A foi realizado pelo o filme A foi realizado pelo realizador B em que entrou o actor Crealizador B em que entrou o actor C”

Realizadores FilmesR

Actores

Page 34: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

E—R: tipos de relacionamentos E—R: tipos de relacionamentos binários I binários I

Dentro das relações binárias, há ainda que considerar o modo como as entidades participam na relação:

Relações umum para umum (1:1) – um empregado dirige um departamento

Relações umum para muitosmuitos (1:N) – um jogador marca muitos golos

Relações muitosmuitos para muitosmuitos (M:N) – muitos empregados trabalham em muitos projectos

Page 35: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

E—R: tipos de relacionamentos E—R: tipos de relacionamentos binários IIbinários II

Há que considerar também se todos os elementos de uma entidade têm de participar obrigatoriamente ou não na

relação:

Participação obrigatória em ambas as entidades

Participação não obrigatória de uma das entidades

Participação não obrigatória de nenhuma das entidades

Page 36: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

E—R: Representação gráficaE—R: Representação gráfica

Entidade

Atributo composto

Atributo

Atributo identificador

Relacionamento

Participação obrigatória

Relação de a para b

Alunos

Nome

B I

RuaC.P.

Morada

Inscrito

ba

Page 37: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Modelo RelacionalModelo Relacional

O Modelo Relacional procura criar uma representação realidade através de registos.

Actualmente, praticamente todos os SG BD com grande implantação no mercado adoptam o modelo relacional -por isso são designados por SGBDR (SGBD Relacionais). É o caso do

Access, Oracle, Paradox, etc...

Page 38: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Tabelas como elementos Tabelas como elementos fundamentaisfundamentais

Os elementos fundamentais de uma BD elaborada segundo o modelo Relacionam são as tabelas, onde a informação é

estruturada em campos e registos.

Dentro da mesma base de dados não podem existir tabelas com o mesmo nome

Cada tabela corresponde a uma classe de entidades ou a um relacionamento entre entidades

Page 39: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

TabelasTabelas

NomeNome MoradaMorada IdadeIdade CargoCargoManuelManuel PortoPorto 4848 DirectorDirector

FernandoFernando GondomarGondomar 4646 SupervisorSupervisor

AnaAna PortoPorto 4747 SecretáriaSecretária

…… …… ……

Tabela “EmpregadosEmpregados” :

Campos ou atributos duma entidade ou classe de entidades

Registos ou ocorrências

de entidades concretas

Page 40: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Propriedades das tabelasPropriedades das tabelas

1. A ordem pela qual se dispõem as colunas não é importante e pode ser alterada sem que isso modifique o significado da informação contida na tabela.

2. A ordem pela qual se dispõem as linhas da tabela não é importante e também pode ser alterada sem que isso modifique o significado da informação contida na tabela

1. A ordem pela qual se dispõem as colunas não é importante e pode ser alterada sem que isso modifique o significado da informação contida na tabela.

2. A ordem pela qual se dispõem as linhas da tabela não é importante e também pode ser alterada sem que isso modifique o significado da informação contida na tabela

Page 41: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Algumas regras…Algumas regras…

não podem existir duas colunas (campos ou atributos) com o mesmo nome

não podem existir campos vazios; no caso do valor ser desconhecido ou não aplicavél, então deve ser preenchido com o valor nulo especial – “null”

o domínio de cada atributo tem de ser constituído por valores atómicos: não é permitido incluir mais do que um valor em cada campo por registo

cada linha da tabela representa uma entidade ou ocorrência única, donde não podem existir registos duplicados

Page 42: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Ao não respeitar as regras …Ao não respeitar as regras …

NomeNome MoradaMorada IdadeIdade DisciplinasDisciplinas

ManuelManuel PortoPorto 1818 Português ; InglêsPortuguês ; Inglês

GondomarGondomar 1616 Francês ; AlemãoFrancês ; Alemão

AnaAna PortoPorto 1717 Português;AlemãoPortuguês;Alemão

NomeNome MoradaMorada IdadeIdade DisciplinasDisciplinas DisciplinasDisciplinas

ManuelManuel PortoPorto 1818 PortuguêsPortuguês InglêsInglês

LuísLuís GondomarGondomar 1616 FrancêsFrancês AlemãoAlemão

AnaAna PortoPorto 1717 PortuguêsPortuguês AlemãoAlemão

LuísLuís GondomarGondomar 1616 FrancêsFrancês AlemãoAlemão

Page 43: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Chaves de uma tabela IChaves de uma tabela I

O conceito de chave corresponde ao conceito de atributo identificador mas com a seguinte diferença:

uma chave pode ser constituída por um atributo – chavechave simplessimples;

uma chave pode ser constituída por mais do que um atributo – chave compostachave composta.

Uma chave é um atributo ou conjunto de atributos que permite identificar de modo unívoco os registos de uma tabela

Page 44: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Chaves duma tabela IIChaves duma tabela II

NomeNome MoradaMorada IdadeIdade CargoCargoManuelManuel PortoPorto 4848 DirectorDirector

FernandoFernando GondomarGondomar 4646 SupervisoSupervisorr

AnaAna PortoPorto 4747 SecretáriaSecretária

AnaAna GondomarGondomar 2929 DirectoraDirectora

ManuelManuel GondomarGondomar 2828 DirectorDirector

Supondo que não podemos ter duas

pessoas com o mesmo nome que moram na mesma

localidade, podemos concluir que as

combinações dos atributos “NomeNome” e

“MoradaMorada” forma uma chave compostachave composta.

Page 45: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Todas as chaves possíveis de uma tabela – simples ou compostas – são designadas chaves candidataschaves candidatas.

Chaves duma tabela IIIChaves duma tabela III

Entre estas, uma delas será a mais indicada ou a escolhida para desempenhar o papel de chave – essa

será designada por chave primáriachave primária.

NOTANOTA: é aconselhável que todas as tabelas possuam pelo menos um atributo identificador, que possa desempenhar o papel de chave

primária evitando assim, ter de recorrer a uma combinação de atributos. É sempre possível (e bastante usual) recorrer a um

atributo artificial, tal como “id”, “código” ou “identificação”.

Page 46: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Chave primáriaChave primária

Uma chave primária deve ser:

unívocaunívoca (deve ter um valor único para cada entidade concreta – definição de chave)

não nulanão nula (nenhum dos atributos que formam uma chave primária poderá conter um valor nulo em nenhuma entidade concreta)

não redundantenão redundante (no caso da chave primária ser composta, não devem ser incluídos mais atributos do que os mínimos necessários para identificar os registos de modo unívoco)

Page 47: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Relacionamentos e chaves Relacionamentos e chaves externasexternas

FornecedoreFornecedoress

CodFornCodForn

NomeNome

MoradaMorada

TelefoneTelefone

ForneceFornece

CodFornCodForn

CodProdCodProd

PreçoPreço

Os relacionamentos são estabelecidos através dos atributos que desempenham o papel de chaves primárias nas respectivas tabelas.

ProdutosProdutos

Cod Prod Cod Prod

NomeNome

ModeloModelo

Corresponde a uma tabela de relacionamentotabela de relacionamento

Page 48: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Chave externaChave externa

ForneceFornece

CodFornCodForn

CodProdCodProd

PreçoPreço

Uma tabela de relacionamento deverá incluir, para além dos seus campos (atributos do relacionamento), as chaves das entidades que entram no relacionamento.

Uma chave externachave externa é um atributo que é chave primária de uma tabela e que vai aparecer como atributo de uma outra tabela

NOTA: Numa tabela de relacionamentos, a chave primária é, normalmente uma chave composta, constituída precisamente por

chaves externas.

Page 49: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Preservação da integridade da Preservação da integridade da informação Iinformação I

Existem três tipos de integridade:

integridade da entidadeintegridade da entidade (nenhum valor da chave primária pode ser nulo, nem igual a outros valores já existentes na tabela)

integridade de domíniointegridade de domínio (o valor de um atributo tem de pertencer ao domínio desse atributo)

integridade referencialintegridade referencial (um dado valor de uma chave externa tem de existir como chave primária de outra tabela)

Page 50: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Preservação da integridade da Preservação da integridade da informação IIinformação II

MédicoMédico EspecialidadeEspecialidade IdMedIdMed

Dr. LuísDr. Luís Clínica GeralClínica Geral 001001

Dr. CarlosDr. Carlos EstomatologiaEstomatologia 002002

Dr. LopesDr. Lopes DentistaDentista 003003

DataData HoraHora ConsultórioConsultório BIBI IdMedIdMed

18-10-0318-10-03 16:0016:00 201201 11111111 001001

21-10-0321-10-03 11:0011:00 190190 11121112 001001

21-10-0321-10-03 17:0017:00 200200 11131113 005005Ao inserir um novo registo

?

Page 51: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Preservação da integridade da Preservação da integridade da informação IIIinformação III

MédicoMédico EspecialidadeEspecialidade IdMedIdMed

Dr. LuísDr. Luís Clínica GeralClínica Geral 001001

Dr. CarlosDr. Carlos EstomatologiaEstomatologia 002002

Dr. LopesDr. Lopes DentistaDentista 003003

DataData HoraHora ConsultórioConsultório BIBI IdMedIdMed

18-10-0218-10-02 16:0016:00 201201 11111111 001001

21-10-0221-10-02 11:0011:00 190190 11121112 003003

21-10-0221-10-02 17:0017:00 200200 11131113 005005

Ao eliminar um registo

?

Page 52: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Modelação de base de dadosModelação de base de dados

Análise do problema

Requisitos da BD

Desenho conceptual (modelo E—R)

Esquema conceptual (modelo Relacional)

Esquema conceptual no SGBD

Desenho físico

PROBLEMAPROBLEMA

1ª Fase – análise da situação

2ª, 3ª e 4ª Fases – esboço geral, definição das entidades, atributos e relacionamentos.

5ª e 6ª Fases – eventual revisão

da estrutura e derivação das tabelas

7ª Fase – desenvolvimento do esquema da BD num SGBD

8ª Fase – criação de programas

de aplicação

Inde

pend

ente

do

SG

BD

Dep

ende

nte

do S

GB

D

Page 53: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Derivação das Tabelas da BDDerivação das Tabelas da BD

Existem duas estratégias genéricas a considerar na tarefa de concepção do esquema de uma BD:

Estratégia TOP-DOWNEstratégia TOP-DOWN (do geral para o particular)

Estratégia BOTTOM-UPEstratégia BOTTOM-UP (do particular para o geral)

NOTA: estas duas estratégias não são exclusivas. Aliás podemos e devemos (de certa forma) utilizar as duas estratégias. Numa 1ª fase utilizamos a estratégia top-down e depois tentamos refinar a

estrutura da BD utilizando a estratégia bottom-up, para que as tabelas fiquem adequadamente normalizadas.

Page 54: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Estratégia TOP-DOWNEstratégia TOP-DOWN

Parte-se de uma análise das entidades e dos tipos de relacionamento entre as entidades, segundo o modelo E-R, e,

com base numa análise dos diferentes tipos de relacionamentos determinam-se as tabelas a incluir na base de dados.

Quantas e que tabelas são necessárias para representar as entidades e relacionamentos do modelo E-R?

DEPENDE DO RATIO DE CARDINALIDADE E DO GRAU DE PARTICIPAÇÃO DAS RELAÇÕES.

Page 55: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Abordagem top-down: quantas Abordagem top-down: quantas tabelas são necessárias?tabelas são necessárias?

relacionamento 1:1 com participação obrigatória de ambas as entidades – é necessária uma tabela.

relacionamento 1: 1 com participação obrigatória de apenas uma entidade – são necessárias duas tabelas.

relacionamento 1:N ou N:1 com participação obrigatória do lado N – são necessárias duas tabelas.

relacionamento 1: 1 com participação não obrigatória de ambas as entidades – são necessárias três tabelas.

relacionamento 1:N ou N:1 com participação não obrigatória do lado N – são necessárias três tabelas.

relacionamento N:M – são necessárias três tabelas.

Page 56: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Top-down – 1:1 com Top-down – 1:1 com obrigatoriedade de ambos os lados obrigatoriedade de ambos os lados

Coordenadores Departamentosdirige1 1

Coordenadores

Ana

Alcides

Carlos

Departamentos

C.C.

Matemática

Biologia

nome telefone nome vencimento

nome telefone Nome_dept vencimento

Ana 487287 C.C. 1200

Alcides 525223 Matemática 1190

Carlos 523454 Biologia 1010

Page 57: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Top-down – 1:1 com Top-down – 1:1 com obrigatoriedade de apenas um lado obrigatoriedade de apenas um lado

Professores

Ana

Alcides

Joana

Carlos

Departamentos

Informática

Línguas

Matemática

dirigeProfessores Departamentos1 1

nome telefone nome redução

nome telefone

Ana 487287

Alcides 525223

Joana 435436

Carlos 523454

E se tivesse uma só tabela?

nome redução nome_coord.

Informática 6 Ana

Línguas 5 Alcides

Matemática 8 Carlos

Professores:

Departamentos:

Page 58: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Top-down – 1:N com Top-down – 1:N com obrigatoriedade do lado Nobrigatoriedade do lado N

Professores

Ana

Alcides

Joana

Carlos

Departamentos

Informática

Línguas

CFQ

Português

Matemática

dirigeProfessores Departamentos1 N

nome telefone nome redução

nome telefone

Ana 487287

Alcides 525223

Joana 435436

Carlos 523454

nome redução nome_coord.

Informática 6 Ana

Línguas 5 Alcides

CFQ 4 Carlos

Português 10 Alcides

Matemática 8 Carlos

Professores: Departamentos:

Page 59: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Top-down – 1:1 com não Top-down – 1:1 com não obrigatoriedade dos dois ladosobrigatoriedade dos dois lados

Professores

Ana

Alcides

Joana

Carlos

Departamentos

Informática

Línguas

CFQ

Português

dirigeProfessores Departamentos1 1

nome telefone nome redução

nome telefone

Ana 487287

Alcides 525223

Joana 435436

Carlos 523454

nome redução

Informática 6

Línguas 5

CFQ 4

Português 10

Professores: Departamentos:

nome_prof nome_dept

Ana Informática

Alcides Línguas

Carlos Português

Direcção:

E se tivesse só

duas tabelas?

Page 60: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Top-down – 1:N com não Top-down – 1:N com não obrigatoriedade do lado Nobrigatoriedade do lado N

Professores

Ana

Alcides

Departamentos

Informática

Línguas

CFQ

Português

dirigeProfessores Departamentos1 N

nome telefone nome redução

nome telefone

Ana 487287

Alcides 525223

nome redução

Informática 6

Línguas 5

CFQ 4

Português 10

Professores: Departamentos:

nome_prof nome_dept

Ana Informática

Alcides Línguas

Alcides Português

Direcção:

E se tivesse só

duas tabelas?

Page 61: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Top-down – N:MTop-down – N:M

Fornecedores

Ana

André

Pedro

Produtos

001

002

003

forneceFornecedores ProdutosN M

nome telefone nome modelo

nome telefone

Ana 487287

André 525223

Pedro 678679

nome modelo

001 A

002 B

003 AB

Fornecedores: Produtos:

ID_Forn. ID_Prod. preço

Ana 001 80

Ana 002 43

André 001 78

André 002 45

Pedro 003 67

Fornecimentos:

preço

Page 62: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Estratégia BOTTOM-UP – o Estratégia BOTTOM-UP – o processo da processo da normalizaçãonormalização

O processo da normalização consiste no seguinte:

1) Definem-se as entidades com todos os atributos.2) Analisam-se as relações e dependências entre os atributos de cada entidade

e compara-se a estrutura analisada com as formas normais que iremos conhecer.

3) Sempre que uma tabela apresentar alguma característica não conforme a forma normal, reestruturam-se os atributos ou separam-se da entidade original para formar com eles uma nova tabela.

4) Repete-se o processo até que todas as entidades estejam na forma normal pretendida.

O objectivo é estruturar a informação em tabelas na forma que pode ser mais adequada do ponto de vista das operações a efectuar sobre a

informação armazenada, evitando redundâncias desnecessárias e certos problemas associados à inserção, eliminação e actualização de dados.

Page 63: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

NormalizaçãoNormalizaçãoInicialmente foram estabelecidas 3 formas normais Inicialmente foram estabelecidas 3 formas normais 1ª forma normal (1FN), 1ª forma normal (1FN),

2ª forma normal (2FN) e 3ª forma normal (3FN).2ª forma normal (2FN) e 3ª forma normal (3FN).

Relação entre estas formas normais:

1. Uma tabela pode estar na 1FN mas não obedecer aos requisitos para que possa ser considerada na 2FN.

2. Uma tabela pode obedecer aos requisitos da 2FN, mas não obedecer aos requisitos da 3FN. No entanto, se está na 2FN também está na 1FN.

3. As tabelas que se encontram na 3FN também se encontram na 2FN e, consequentemente na 1FN.

Na prática, os processos de normalização consideram-se satisfeitos se as tabelas atingirem a 3FN.

Por vezes, a 3FN não constitui o estado final ideal a que as tabelas de uma BD relacional devem obedecer surgiram então as formas normais: Forma normal de Boyce/Codd

(FNBC); 4ª forma normal (4FN); 5ª forma normal (5FN).

Page 64: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

Hierarquia das formas normaisHierarquia das formas normais

1. As tabelas do modelo relacional têm todas de estar na 1FN1FN.

2. Todas as tabelas que se encontram na 2FN2FN estão igualmente na 1FN. O contrário não é verdade.

3. À 3FN3FN constitui o estado considerado satisfatório no processo de normalização. Todas as tabelas que estão na 3FN também estão na 2FN. O contrário não é verdade.

4. A FNBCFNBC constitui um refinamento da 3FN. Todas as tabelas que estão na FNBC também estão na 3FN. O contrário não é verdade.

5. A FNBC pode ser considerada como não inteiramente satisfatória. A 4FN4FN define requisitos mais exigentes. As tabelas que estão na 4FN também estão na FNBC, mas o contrário não é verdade.

6. A 5FN5FN constitui o último estádio do processo de normalização. Raramente se encontram situações práticas em que o processo de normalização tenha de ser levado até este nível.

Page 65: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

1FN1FNUma tabela encontra-se na 1FN se todos os seus atributos estiverem Uma tabela encontra-se na 1FN se todos os seus atributos estiverem

definidos em domínios que contenham apenas valores atómicos.definidos em domínios que contenham apenas valores atómicos.

Esta condição constitui aliás uma condição base para que uma tabela possa ser considerada como uma tabela do modelo relacional: um atributo só pode admitir valores elementares e

nunca conjuntos de valores.

IDAlunoIDAluno NomeNome MoradaMorada DisciplinasDisciplinas

A1A1 JoãoJoão LisboaLisboa Matemática; Economia; DireitoMatemática; Economia; Direito

A2A2 AnaAna PortoPorto Matemática; FísicaMatemática; Física

Alunos:

Não está na 1FN

Ao transformá-la de modo a ficar na 1FN:

IDAlunoIDAluno NomeNome MoradaMorada DisciplinasDisciplinas

A1A1 JoãoJoão LisboaLisboa MatemáticaMatemática

A1A1 JoãoJoão LisboaLisboa EconomiaEconomia

A1A1 JoãoJoão LisboaLisboa DireitoDireito

A2A2 AnaAna PortoPorto MatemáticaMatemática

A2A2 AnaAna PortoPorto FísicaFísica

Já se encontra na 1FN.

No entanto este 1º passo é claramente insuficiente uma vez que existe redundância de informação!

Surgem problemas de actualização, de inserção e de eliminação! A solução já conhecida: 3 tabelas 3FN!

Page 66: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

2FN – dependência funcional 2FN – dependência funcional Consideremos a tabela A(x, y, z, w). Diz-se que o atributo z é funcionalmente

dependente do atributo x se, para um dado valor do atributo x, o valor do atributo z é sempre o mesmo. Ou seja: conhecido o valor de x, sabe-se automaticamente

qual é o valor que está na coluna relativa ao atributo z.

xx yy zz ww

11 33 22 77

22 44 55 88

11 55 22 44

11 33 22 77

22 44 55 88

77 33 44 22

Tabela A (com dados hipotéticos):

Sempre que x é 1, z é 2!

Sempre que x é 2, z é 5!

Se estas regras se verificarem sempre, existe uma dependência funcional entre os atributos x e z (xz).

x designa-se por determinante e z por dependente.

Da mesma forma:

Sempre que {x,y} é {1,3}, w é 7!

Sempre que {x,y} é {2,4}, w é 8!

Dependência funcional entre {x,y} e w. ({x,y} w)

{x,y} é o determinante e w é o dependente.

Page 67: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

2FN – dependência funcional 2FN – dependência funcional elementarelementar

xx yy zz ww

11 33 22 77

22 44 55 88

11 55 22 44

11 33 22 77

22 44 55 88

77 33 44 22

A

Dependência funcional elementar {x,y} w

Consideremos:

Existe dependência funcional entre {x,y} e w, mas w não é funcionalmente dependente de nenhum dos

atributos x e y, quando estes são tomados isoladamente.

Desta forma, diz-se que existe uma dependência funcional elementar entre {x,y} e w.

Ou seja:

{x,y} w e

x w e

y w

Page 68: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

2FN2FNUma tabela encontra-se na 2FN se estiver na 1FN e se todos os Uma tabela encontra-se na 2FN se estiver na 1FN e se todos os

atributos que não pertençam à chave dependerem da chave através de atributos que não pertençam à chave dependerem da chave através de uma dependência funcional elementar (caso a chave seja composta) ou uma dependência funcional elementar (caso a chave seja composta) ou

dependerem funcionalmente da chave (se esta não for composta). dependerem funcionalmente da chave (se esta não for composta).

IDAlunoIDAluno NomeNome MoradaMorada DisciplinaDisciplina

A1A1 JoãoJoão LisboaLisboa MatemáticaMatemática

A1A1 JoãoJoão LisboaLisboa EconomiaEconomia

A1A1 JoãoJoão LisboaLisboa DireitoDireito

A2A2 AnaAna PortoPorto MatemáticaMatemática

A2A2 AnaAna PortoPorto FísicaFísica

A tabela está na 1FN;

A chave primária é constituída pelos atributos (IDAluno, Disciplina). Esta tabela não está na 2FN porque Nome é funcionalmente dependente de IDAluno!, e não o poderia ser, teria de ser do conjunto (IDAluno, Disciplina) como um todo!

Para passar à 2FN, a solução é a criação de 3 tabelas:

Alunos(IDAluno, Nome, Morada)

Disciplinas(IDDisciplina, Nome)

Matrículas(IDAluno, IDDisciplina, data)

As 3 tabelas encontram-se agora na 2FN.

E também se encontram na 3FN…

Page 69: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

3FN3FNUma tabela encontra-se na 3FN se estiver na 2FN e nenhum dos Uma tabela encontra-se na 3FN se estiver na 2FN e nenhum dos

atributos que não fazem parte da chave primária pode ser atributos que não fazem parte da chave primária pode ser funcionalmente dependente de qualquer combinação dos restantes. Isto funcionalmente dependente de qualquer combinação dos restantes. Isto

é, cada atributo depende apenas da chave e não de qualquer outro é, cada atributo depende apenas da chave e não de qualquer outro atributo ou conjunto de atributos.atributo ou conjunto de atributos.

Por exemplo:

Jogo(IDJogo, estádio, nome_árbitro, categoria_árbitro)

Nesta tabela todos os atributos são funcionalmente dependentes da chave (a tabela está portanto a 2FN).

Mas o atributo categoria_árbitro depende funcionalmente do atributo nome_árbitro. Os atributos categoria_árbitro e nome_árbitro são dependentes, logo a tabela não está na 3FN.

Solução:Solução:

Árbitro(IDÁrbitro, nome, categoria)

Jogo(IDJogo, estádio)

Jogo_Árbitro(IDÁrbitro, IDJogo)

Page 70: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

FNBC IFNBC I

Uma tabela encontra-se na FNBC se estiver na 3FN e os únicos Uma tabela encontra-se na FNBC se estiver na 3FN e os únicos determinantes são chaves candidatas.determinantes são chaves candidatas.

Esta forma normal está destinada a lidar com situações em que se verifique:

A existência de mais do que uma chave candidata.

Que duas chaves candidatas possuam elementos comuns.

Exemplo: numa Universidade, os alunos frequentam várias disciplinas. Cada professor lecciona apenas uma disciplina. Uma disciplina pode ser leccionada por vários professores. Cada aluno, em cada disciplina, tem apenas um professor.

A tabela alunos(IDAluno, IDDisciplina, Professor) encontra-se na 3FN porque:

1. O atributo professor é o único atributo que não faz parte da chave.

2. Esse atributo depende irredutivelmente da chave porque:

não depende de IDAluno porque um aluno pode ter vários professores.

não depende de IDDisciplina porque uma disciplina pode ser leccionada por vários professores.

Page 71: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

FNBC IIFNBC IIalunos(IDAluno, IDDisciplina, Professor)

Repare-se que no exemplo apresentado:

1. Existem duas chaves candidatas compostas: (IDAluno, IDDisciplina) e (IDAluno, Professor)

2. As duas chaves têm em comum o atributo IDAluno.

3. O atributo Professor não é chave candidata, mas é um determinante (o nome do professor determina a disciplina uma vez que cada professor só lecciona uma disciplina)

Para a tabela estar na FNBC só as chaves candidatas podem ser determinantes. Portanto, esta tabela não está na FNBC.

IDAlunoIDAluno IDDisciplinIDDisciplinaa

ProfessorProfessor

A1A1 D1D1 P1P1

A1A1 D2D2 P2P2

A2A2 D1D1 P1P1

A3A3 D3D3 P3P3

A4A4 D3D3 P4P4

Ao eliminar esta linha elimina-se também o professor P2!

SOLUÇÃOSOLUÇÃO

criar as 2 tabelas seguintes:

B(IDAluno, Professor)

C(Professor, IDDisciplina)

Page 72: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

4FN - multidependência4FN - multidependência

Consideremos a tabela A(x, y, z, w). Diz-se que o atributo x multidetermina y (ou que y é multidependente de x), se a um determinado valor de x está associado

um conjunto de valores de y e, ainda, que esse conjunto de valores de y é independente dos restantes atributos da tabela (de z e w, neste exemplo).

x y

Esta definição estende-se também a conjuntos de atributos. Sejam C1 e C2 quaisquer conjuntos não vazios formados a partir do conjunto de atributos {x, y, z, w} da tabela A. Diz-se que o conjunto C1 multidetermina o conjunto C2 se, sendo dados valores de C1, existe um conjunto de valores de C2 associados,

sendo esse conjunto de valores de C2 independente dos restantes atributos da tabela.

C1 C2

A multidependência diz-se elementar se não existirem subconjuntos de C1 e subconjuntos de C2 entre os quais se verifique igualmente independência.

Page 73: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

4FN I4FN IUma tabela encontra-se na 4FN quando as únicas multidependências Uma tabela encontra-se na 4FN quando as únicas multidependências elementares são aquelas em que uma chave determina um atributo.elementares são aquelas em que uma chave determina um atributo.

A especificação da 4FN visa eliminar a possível existência de grupos repetidos A especificação da 4FN visa eliminar a possível existência de grupos repetidos independentes.independentes.

Exemplo:Exemplo: considere-se o caso de uma escola em que os alunos, para além de frequentarem várias disciplinas, podem ainda inscrever-se em actividades extra-curriculares.

Admita-se a seguinte tabela: A(Aluno, Disciplina, Actividade)

Todos os atributos pertencem à chave, pelo que a tabela está na FNBC.

Imagine-se a tabela com os seguintes dados:

AlunoAluno DisciplinaDisciplina ActividadeActividade

JoãoJoão MatemáticMatemáticaa

FutebolFutebol

JoãoJoão MatemáticMatemáticaa

CinemaCinema

JoãoJoão EconomiaEconomia FutebolFutebol

AnaAna DireitoDireito TeatroTeatro

AnaAna InformáticaInformática BasqueteboBasqueteboll

Esta tabela contém redundância em excesso!

1. O atributo Disciplina é claramente um atributo que gera grupos repetidos, porque um aluno pode frequentar várias disciplinas.

2. O atributo Actividade tem as mesmas características. É um atributo que pode assumir conjuntos de valores.

3. É razoável admitir que o atributo Disciplina é independente do atributo Actividade

Page 74: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

4FN II4FN IINo exemplo anterior temos pois uma multidependência. A cada aluno corresponde:

• um conjunto de disciplinas

• um conjunto de actividades

Simbolicamente:

Aluno Disciplina

Aluno Actividade

Solução: Solução:

transformar a tabela A em duas tabelas: transformar a tabela A em duas tabelas:

B(B(AlunoAluno, , DisciplinaDisciplina))

C(C(AlunoAluno, , ActividadeActividade))

AlunoAluno DisciplinaDisciplina

JoãoJoão MatemáticMatemáticaa

JoãoJoão EconomiaEconomia

AnaAna DireitoDireito

AnaAna InformáticaInformática

AlunoAluno ActividadeActividade

JoãoJoão FutebolFutebol

JoãoJoão CinemaCinema

AnaAna TeatroTeatro

AnaAna BasqueteboBasqueteboll

AlunoAluno DisciplinaDisciplina ActividadeActividade

JoãoJoão MatemáticMatemáticaa

FutebolFutebol

JoãoJoão MatemáticMatemáticaa

CinemaCinema

JoãoJoão EconomiaEconomia FutebolFutebol

AnaAna DireitoDireito TeatroTeatro

AnaAna InformáticaInformática BasqueteboBasqueteboll

Estas duas tabelas estão na 4FN!

Page 75: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

5FN I5FN I

Exemplo: Considere-se um estúdio de cinema e uma tabela destinada a representar as associações entre actores, filmes e realizadores, seja ela:

(Actor, Filme, Realizador)

ActorActor FilmeFilme RealizadoRealizadorr

A1A1 F1F1 R1R1

A1A1 F1F1 R2R2

A1A1 F2F2 R2R2

A1A1 F3F3 R1R1

A2A2 F1F1 R1R1

A2A2 F1F1 R2R2

A2A2 F2F2 R2R2

A3A3 F3F3 R3R3

A3A3 F4F4 R4R4

Da observação desta tabela, verifica-se que um actor pode participar em vários filmes e que um filme pode ser realizado por mais do que um realizador.

E se tentarmos transformar esta tabela em duas tabelas?

ActorActor FilmeFilme

A1A1 F1F1

A1A1 F2F2

A1A1 F3F3

A2A2 F1F1

A2A2 F2F2

A3A3 F3F3

A3A3 F4F4

FilmeFilme RealizadoRealizadorr

F1F1 R1R1

F1F1 R2R2

F2F2 R2R2

F3F3 R1R1

F3F3 R3R3

F4F4 R4R4

A1 F3 R3

A3 F3 R1

Page 76: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

5FN II5FN IINão é possível a transformação da tabela inicial em duas tabelas, o que não implica que Não é possível a transformação da tabela inicial em duas tabelas, o que não implica que não seja possível a sua transformação em mais do que duas tabelas. Consideremos não seja possível a sua transformação em mais do que duas tabelas. Consideremos agora as seguintes tabelas:agora as seguintes tabelas:

ActorActor FilmeFilme

A1A1 F1F1

A1A1 F2F2

A1A1 F3F3

A2A2 F1F1

A2A2 F2F2

A3A3 F3F3

A3A3 F4F4

FilmeFilme RealizadoRealizadorr

F1F1 R1R1

F1F1 R2R2

F2F2 R2R2

F3F3 R1R1

F3F3 R3R3

F4F4 R4R4

ActorActor RealizadoRealizadorr

A1A1 R1R1

A1A1 R2R2

A2A2 R1R1

A2A2 R2R2

A3A3 R3R3

A3A3 R4R4

É pois possível a transformação da tabela inicial nestas três tabelas!

Page 77: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

5FN III5FN III

Considere-se a tabela A(a_1, a_2, …, a_n) e X_1, X_2, …, X_k subconjuntos de atributos da tabela A.

Se a tabela A puder ser transformada nas seguintes tabelas: B_1, B_2, …, B_i diz-se que existe uma dependência de junção dessas tabelas. Simbolicamente este facto representa-se por:

* { B_1, B_2, …, B_i }

No exemplo anterior, a tabela

A(Actor, Filme, Realizador)

apresenta uma dependência de junção das tabelas

(Actor, Filme)

(Actor, Realizador)

(Realizador, Filme)

Dependência de JunçãoDependência de Junção

Page 78: Conceitos genéricos sobre bases de dados. Os sistemas de ficheiros sistema de ficheiros Todos os sistemas operativos criam um sistema de ficheiros, cuja

5FN IV5FN IV

A verificação da 5FN apenas precisa de ser utilizada em relações que A verificação da 5FN apenas precisa de ser utilizada em relações que tenham 3 ou mais atributos como parte da chave.tenham 3 ou mais atributos como parte da chave.

Uma tabela está na 5FN se o seu conteúdo não puder ser reconstruído Uma tabela está na 5FN se o seu conteúdo não puder ser reconstruído a partir de tabelas menores. É pertinente salientar que o objectivo da a partir de tabelas menores. É pertinente salientar que o objectivo da

5FN é impedir que a decomposição de tabelas gere informações 5FN é impedir que a decomposição de tabelas gere informações inconsistentes.inconsistentes.