Bases de Dados
Bases de Dados
Bases de Dados
Carlos Carvalho
Norsistemas, Lda
Introdução
Objectivo: oferecer uma noção geral sobre a
construção de sistemas de bases de dados
Para tal é necessário dominar:
modelos para o desenho lógico de bases de
dados - modelo Entidade Relacionamento
modelos para a construção de projectos físicos
de bases de dados - modelo Relacional
técnicas de controlo de dependência de dados
métodos de consultas - Álgebra Relacional e
SQL
Conceitos gerais
Base de Dados (BD): conjunto de dados
interrelacionados
Por dados devemos entender factos conhecidos,
significado implícito, que podem ser armazenados
Propriedades das BD:
colecção lógica e coerente de dados com um
significado inerente
é projectado, construído e preenchido com
é chamado de mini-mundo
Conceitos gerais
Sistema de Gestão de BD (SGBD): sistema de
aplicações que permite aos utilizadores criarem e
manipularem BD’s de propósitos gerais
Sistema de BD (SBD): conjunto formado pela BD e
pelas aplicações que a manipulam
Por vezes os termo BD, SGBD e SBD são usados
indistintamente (por exemplo: o que é o Microsoft
Access?)
Conceitos gerais
Conceitos gerais
SBD x Processamento tradicional
Auto-informação
Separação entre programas e dados
Abstracção dos dados
Múltiplas perspectivas dos dados
Conceitos gerais
Entidades envolvidas
Administrador da BD (DBA)
Desenhador da BD
Utilizadores da BD
ocasionais
inexperientes ou paramétricos
sofisticados
Analistas de Sistemas
Programadores de aplicações
Conceitos gerais
Vantagens do uso de SGBD’s
Controlo de redundância
Partilha de dados
Restrição a acessos não autorizados
Representação de relacionamentos complexos
entre dados
Tolerância a falhas
Conceitos gerais
Contra-indicação do uso de SGBD’s
Investimento em software e hardware
Generalidade de definição e processamento de
dados
Sobrecarga originada pela provisão de controlo de
segurança, controlo de concorrência, recuperação
e integração de funções
Simplicidade, boa definição e imutabilidade das
aplicações
Necessidade de processamento em tempo real
das aplicações
Inexistência de múltiplos acessos à BD
Conceitos e arquitecturas de SGBD’s
Modelos de dados
As BD’s suportam níveis de abstracção dos
dados, omitindo detalhes de armazenamento
Modelo de dados como um conjunto de conceitos
usados para descrever a estrutura de uma BD
Por estrutura entenda-se o tipo dos dados,
relacionamentos e restrições que sobre eles
incidam
Os modelos de dados classificam-se em:
alto nível ou modelo de dados conceptual
baixo nível ou modelo de dados físico
Conceitos e arquitecturas de SGBD’s
Esquemas e instâncias
É importante distinguir a descrição da BD da
própria BD
A descrição da BD é chamada de esquema ou
intenção da BD - especificada durante o projecto,
onde geralmente não ocorrem mudanças
Os dados armazenados numa BD, num dado
instante temporal, constituem a instância ou
extensão da BD – esta altera-se sempre que
ocorre uma alteração na BD
Os SGBD’s devem garantir que todas as
instâncias das BD’s obedecem aos esquemas das
BD’s
Conceitos e arquitecturas de SGBD’s
Arquitectura ANSI/SPARC
Arquitectura ANSI/SPARC
Conceitos e arquitecturas de SGBD’s
Arquitectura ANSI/SPARC
Uma consequência da arquitectura ANSI/SPARC
é o da criação de uma independência dos dados
Tipos de independência:
independência lógica - capacidade de alterar o
Em cada relacionamento,
participam apenas uma
entidade de cada tipo
Uma entidade pode
participar em vários
relacionamentos
O modelo ER
Grau de um relacionamento
Grau de um relacionamento tipo: é dado pelo
número de entidades tipo que nele intervêm
O grau de um relacionamento é ilimitado, porém,
a partir do ternário (grau 3), a sua compreensão e
dificuldade tornam-se impraticáveis
No exemplo anterior, temos um relacionamento
binário (grau 2)
O modelo ER
Relacionamentos como atributos
Se uma entidade não possuir existência bem
definida, é mais coerente representá-la como
atributo de uma entidade com que se relaciona
Exemplo: em baixo, podemos ter DEPARTAMENTO
como atributo de EMPREGADO, ou EMPREGADO,
como atributo multivalorado de DEPARTAMENTO
O modelo ER
Relacionamentos recursivos
Um relacionamento recursivo é um
relacionamento entre entidades da mesma
entidade tipo
No esquema, temos um relacionamento recursivo,
onde um empregado pode supervisionar outro
empregado e um empregado pode ser
supervisionado por outro empregado
O modelo ER
Papéis das entidades nos relacionamentos
Cada entidade tipo que participa num
relacionamento tipo desempenha aí um
determinado papel
Os nomes de papéis não são importantes quando
todas as entidades participantes desempenham
papéis diferentes
Noutras vezes, o papel torna-se essencial para
distinguir o significado de cada participação
(comum nos relacionamentos recursivos)
O modelo ER
Papéis das entidades nos relacionamentos
O modelo ER
Restrições em relacionamentos tipo
Geralmente, os relacionamentos tipo sofrem certas
restrições (ditas estruturais) que limitam as possíveis
combinações das entidades participantes, e podem ser:
Cardinalidade - indica o número de relacionamentos nos
quais uma entidade pode participar, podendo ser:
1:1
1:N (ou N:1)
M:N
Participação - define a existência de uma entidade
através do relacionamento, podendo ser:
parcial
total
O modelo ER
Restrições em relacionamentos tipo
Cardinalidade 1:1
Participação
total
Participação
parcial
Cardinalidade M:N
O modelo ER
Atributos de relacionamento
Por vezes, torna-se necessário armazenar um
atributo no relacionamento tipo
Quando temos relacionamentos 1:1, podemos
colocar o atributo de relacionamento em qualquer
das entidades, de preferência, numa cuja
entidade tipo tenha participação total
Caso seja 1:N, podemos colocar o atributo na
entidade tipo com participação N
Porém, se for N:M, então o atributo deverá
permanecer no relacionamento tipo
O modelo ER
Entidades tipo fracas
Entidades fracas: são aquelas que, por si só,
podem não ter, um atributo chave
Estas entidades necessitam de estar ligadas com
uma entidade pertencente à entidade tipo
proprietária
Esta ligação é
chamada de
relacionamento
identificador
O modelo ER
Relacionamento ternário
O número de entidades que participam num
relacionamento tipo é irrestrito e representam
mais informação do que vários relacionamentos
binários
Exemplo: um
motorista pode
efectuar uma viagem
para uma localidade
conduzindo um dado
veículo numa
determinada data
O modelo ER
Diagrama ER
O modelo ER
Diagramas ER
O modelo ER
Diagramas ER
O modelo ER
Diagramas ER
O modelo ER
Diagramas ER
O modelo ER
Diagramas ER
O modelo ER
Diagramas ER
O modelo ER
Modelo Entidade Relacionamento Estendido (ERE)
O modelo Entidade Relacionamento Estendido
(MERE) visa fornecer uma semântica para
permitir a representação de informações
complexas
O MERE engloba todos os conceitos do MER
mais os conceitos de:
subclasse
superclasse
generalização
especialização
herança de atributos
O modelo ER
Modelo ERE (subclasses e superclasses)
X Y
#Mecano #Depart
Z
#Depart { NomeDepart, #MecanoSuper }
O modelo Relacional
Dependência funcional e normalização (3.ª FN)
Uma tabela está na 3.ª FN se estiver na 2.ª FN e
não houver dependências transitivas entre
atributos não chave
No exemplo, o esquema de relação
EMPREGADO daria origem a dois outros
esquemas, como se segue:
EMPREGADO (#Mecano, Nome, #Depart)
atributos desejados
<nome_da_relação> é o nome da relação
Exemplo:
CONSULTA3 = NomeDependente, DataNascimento
(DEPENDENTE)
O modelo Relacional
A álgebra relacional (projectselect)
As operações project e select podem ser usadas
de forma combinada, permitindo que apenas
determinadas colunas de determinados tuplos
possam ser seleccionados
Forma geral:
<lista_de_atributos> ( <condição_de_selecção>
(<nome_da_relação>))
exemplo:
CONSULTA4 = Nome, #Departamento, Salario ( Salario < 250.000,00
(EMPREGADO))
O modelo Relacional
A álgebra relacional (operações matemáticas)
Levando em consideração que as relações
podem ser tratadas como conjuntos, podemos
aplicar um conjunto de operações matemáticas
Estas operações são: união () , intersecção ()
e diferença (–)
Este conjunto de operações é binário
Existe a necessidade de as tabelas possuírem
tuplos exactamente do mesmo tipo
O modelo Relacional
A álgebra relacional (operações matemáticas)
união – o resultado desta operação representada
por R S é uma relação T que inclui todos os
tuplos que se encontram em R e todos os tuplos
que se encontram em S
intersecção – o resultado desta operação
representada por R S é uma relação T que
inclui os tuplos que se encontram em R e em S ao
mesmo tempo
diferença – o resultado desta operação
representada por R – S é uma relação T que inclui
todos os tuplos que se encontram em R mas não
em S
O modelo Relacional
A álgebra relacional (operações matemáticas)
Consideremos a seguinte consulta:
Obter todos os empregados que trabalham no
departamento número 2 ou que supervisionam
empregados que trabalham no departamento
número 2
A operação produto cartesiano não é muito utilizada por não oferecer um resultado optimizado (ver operação
seguinte)
Carlos Carvalho
Norsistemas, Lda