Upload
internet
View
128
Download
0
Embed Size (px)
Citation preview
Conceitos genéricos sobre Conceitos genéricos sobre bases de dadosbases de dados
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.
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)
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!
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.
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.
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
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
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!!!
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:
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
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.
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.
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
Exemplos de SGBD’sExemplos de SGBD’s
• Oracle;
• Informix;
• DB;
• ADABAS;
• Ingres;
• MS AccessMS Access;
• Foxpro;
• Etc...
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.
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
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
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
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.
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.
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
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
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:
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)
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.
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
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)
• …
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).
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, …
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
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”.
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
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
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
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.
Nº
Morada
Inscrito
ba
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...
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
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
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
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
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
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
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.
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”.
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)
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
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.
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)
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
?
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
?
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
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.
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.
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.
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
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:
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:
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?
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?
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
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.
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).
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.
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!
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.
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
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…
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)
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.
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)
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.
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
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!
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
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!
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
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.