You are on page 1of 125

ESTRUTURA DE BASES DE DADOS

FACULDADE DE ECONOMIA DA UAN


ANO LECTIVO 2020
DEPARTAMENTO DE MÉTODOS QUANTITATIVOS

Dra. JOANA, MSc.


(Mpota S. K. Joana Kumpesa)
Dr Soft, Lic.
(Kianguebeni Gonga)

1
Conteúdo
• Introdução
Importância da Informação
Ambientes baseados em Ficheiros : Características, Problemas
• Sistema de Base de Dados e Sistemas de Informação
Desenvolvimento do sistema de informação
Base de Dados : Definição, importância, Componentes de um sistema
de base de dados
Sistemas de Gestão de bases de dados : Arquitectura, Linguagens e
classificação
• O modelo relacional
Conceitos básicos : Relação, Atributo, Tuplo, Domínio, Esquema de
uma relação, Chaves de uma relação.
Objectos de uma base de dados relacional : Tabelas, Consultas,
Formulários, Relatórios, Macros e Módulos.

2
Conteúdo (Cont.)

• A Concepção e Implementação de Base de Dados


- Modelação e Modelos de bases de dados
- Modelo Entidade-Relacionamento / Associação (ER / EA) – O
Esquema Conceptual
. - Conceitos do modelo ER : Entidade, Atributo, Relacionamento – . . .
Caractéristicas e tipos
- Transformação do Modelo ER (modelo Conceptual) no Modelo
Relacional
Transformação dos diferentes tipos de entidades, atributos e
relacionamentos
• Criação da Base de dados e das tabelas

3
Conteúdo (Cont.)

• Normalização do esquema relacional


Dependências funcionais
Processo de Normalização
• Operadores do modelo relacional

• O Microsoft Access

4
Bibliografia
• ELMASRI, R.; NAVATHE, S. B., 1994. Fundamentals of
Database Systems, 2nd. Redwood City, California:
Addison-Wesley.
• ZEHNDER, C. A., 1998. Informationssysteme und
Datenbanken. Zürich: vdf- Hochschulverlag AG
• Carvalho V.; Azevedo, A.; Abreu A., 2008. Bases de
Dados com Microsoft Access 2007, Ed. Centro Atlântico,
Lisboa.
• Mateus Padoca Calado, 2009. Fasciculo: Fundamentos
de bases de dados.
• Caldeira, Carlos Pampulim, 2011. A Arte das Bases de
Dados, Ed. Sílabo, Lda.
5
INTRODUÇÃO
A IMPORTÂNCIA DA INFORMAÇÃO

“O valor real de companhias como a Sony, Kodak, Hitachi


ou Siemens, depende mais das ideias, visão, e
informações contidas nas mentes dos seus empregados
e nas bases de dados e patentes que controlam, do que
em camiões, linhas de montagem ou outros activos
físicos. O próprio capital está cada vez mais baseado
em incorpóreos”.
in “Creating a New Civilization”, Alvin and Heidi Toffler, 1995

6
A Importância da Informação
• Na década de 90 as organizações dão-se
conta que a Informação é um “recurso
organizacional”.
• O valor da informação depende da sua
correcção e disponibilidade, apenas
possível com uma gestão adequada.
• As tecnologias de bases de dados são
uma ferramenta essencial à gestão eficaz
do recurso INFORMAÇÃO.
7
Dados versus Informação
• Dados representam factos do mundo real
– Respostas a um inquérito podem ser consideradas “dados”
– Um número de factura listado no documento em Dívida pode ser
considerado “dado”

• A Informação resulta do processamento dos


“dados”, apresentados de forma a permitir
interpretação e a fundamentar decisões
(Cíclo Dados – Informação – Decisão)
– O inquérito, depois de processado, produz informação.

8
Dados versus Informação
(Resumo)
• Informações são compostas de dados
• Com o processamento, dados tornam-se
informações
• Bons dados, disponíveis no bom tempo,
ajudam na tomada de decisões
• O conteúdo das informações nos dados
depende do contexto.

9
Ambientes baseados em Ficheiros

UTILIZADORES PROGRAMAS Ficheiros Registro

Programa1
Programa1
A C D E G Campo
Contab. e finanças

H
D F G
Recursos humanos

Programa2
H
E
Venda e Marketing
Sort H
D E G K
Programa3
Programa3

A B H J
Produção

In James Martin

10
Conceitos de organização de Ficheiros

Os dados no computador estão organizados numa


Hierarquia que começa com bit
Para ter um Byte, regruparam bits
• Campo: Grupo de caracteres como palavra(s)
ou número
• Registro: Grupo de campos relacionados
• Ficheiro: Grupo de registros de mesmo tipo
• Base de dados: Grupo de ficheiros relacionados

11
Características dos Ambientes baseados em
ficheiros

• Trabalhos isolados de programação

• Cada programa com os seus ficheiros

• Manipulação dos dados reduzida a


ordenação, classificação e realização de
somatórios.

12
Típicos Problemas dos Ambientes baseados
em Ficheiros
• Redundância dos dados: Existência de dados repetidos em
diversos ficheiros, devido a forma desorganizada de criar Ficheiros e
Programas.

• Inconsistência dos Dados: O mesmo Atributo tem valores


diferentes

• Dependência Programa-Dados: Quando as alterações no


programa requer alterações para os dados acessados pelo programa

• Falta de Integridade de dados


• Partilha de Dados limitada
• Manutenção difícil
• Segurança mínima
13
REDUNDÂNCIA
• Redundância:
Dados (a mesma informação) sobre uma
pessoa ou uma coisa ficam gravados várias
vezes.
Dados repetidos desnecessariamente em
diversos ficheiros.

14
Inconsistência
• Inconsistência de dados:
Várias cópias de dados não coincidentes.
Existência de valores diferentes para o
mesmo atributo.
Diferentes variantes em conflito um com o
outro. Qual é a variante actual ou válida?

15
Abordagem de Base de Dados
para a gestão de dados
1. Base de Dados e Sistemas de Informação

Uma Base de Dados é um Subsistema de um


Sistema mais alargado chamado “Sistema de
Informação”.

16
Desenvolvimento histórico dos
Sistemas de Informação
• Década de 50:
TSP – Transaction Processing Systems
Sistemas de processamento de Transacções
• Década de 60:
MIS – Management Information Systems
Sistemas de Informação de Gestão
DBMS – Data Base Management Systems
Sistemas de Gestão de Bases de Dados

17
Desenvolvimento histórico dos
Sistemas de Informação (Cont)
• Década de 70:
OIS – Office Information Systems
Sistemas de Informação de Escritório
DSS – Decision Support Systems
Sistemas de Apoio a Decisão
• Década de 80:
ES – Expert Systems / Sistemas periciais
EIS – Executive Information Systems
Sistemas de Informação para Executivos

18
Desenvolvimento histórico dos
Sistemas de Informação (Cont)
• Em Finais do século XX:
ERP – Enterprise Ressource Planning
CRM – Customer Relationship Management
SCM – Supply Chain Management
KMS – Knowledge Management Systems
• Nos últimos anos:
BI – Business Intelligence

19
Objectivos nas diferentes fases de
Desenvolvimento dos sistemas de Informação

• O Aumento da Eficiência das Operações Internas (TPS,


MIS, DBMS)
• O Aumento da Eficácia da Gestão (OIS, DSS)
• A Alteração das Bases da Concorrência (ES, EIS)
• O Aumento da Eficiência nas Trocas Inter-Empresas, o
Redesenho dos Processos de Gestão e a Mudança da
Estrutura dos próprios sectores industriais (ERP, CRM,
SCM, KMS, BI).

20
O que é uma Base de Dados

• O termo Base de Dados é usado por


muitas pessoas em sentidos muito
diferentes.

21
Algumas Definições

• A base de dados é um sistema informático


distribuído e integrado, que contém os
dados do Utilizador e os Metadados.
(Aspecto técnico)
• Uma base de dados é uma colecção
organizada e auto-descrevenda de dados,
relacionados entre si.
(Aspecto lógico)
22
Importância da Base de dados
- Armazenamento de dados (informação).

- Velocidade de recuperação da informação.

- Centralização e controlo administrativo dos dados.

- Segurança.

- Compartilhamento dos dados para vários


grupos.

23
COMPONENTES DE UM SISTEMA DE
BASE DE DADOS

• HARDWARE : Equipamentos físicos (Servidor de


BD, computadores dos utilizadores, cabos...)

• SOFTWARE (SGBD, Aplicações, Utilities, Sistema


operativo e outros)

• DADOS (Enciclopédia – Catálogo – Base de Dados)

• PESSOAS (Utilizadores, Administradores, Analistas


e Programadores) 24
Intervenientes (Pessoas como Componentes)
do Ambiente BD

• O Administrador de Dados
É o Gestor responsável pela administração dos
Recursos da base de dados, passando pela
planificação, pelo estabelecimento de políticas e
procedimentos.

• O Administrador de Base de Dados


Tem o controlo centralizado dos dados e dos
programas que acedem a esses dados. É o
responsável técnico que assegura que todo o sistema
funciona de forma conveniente.
25
Intervenientes (Pessoas como Componentes)
do Ambiente BD
• Analistas da Base de Dados
Pessoas que fazem o desenho da base de dados.
Responsáveis pela identificação dos dados a serem
armazenados na BD e pela definição das estruturas
físicas necessárias para armazenar esses dados.
• Programadores de aplicações
Implementam as funcionalidades pretendidas pelos
utilizadores finais, obtidas a partir de especificações
fornecidas pelo analista de sistemas.
• Os Utilizadores finais
Pessoas que acedem ao sistema para obter a informa-
ção necessária às suas actividades na Organização.
26
Base de Dados
• É um conjunto de dados relacionados
que é utilizado recorrendo a um
Sistema Gestor de Bases de Dados
(SGBD) ou DBMS (Inglês . )

O SGBD e a Base de Dados constituem juntos o Sistema de Base


de Dados.
Muitas aplicações usam Bases de dados para centralizar as
informações e controlar os dados redundantes.

27
Bases de Dados incorporadas

Muitas Empresas usam Bases de dados


existentes para desenvolver aplicações em
vários sectores (Contabilidade,
telecommunicação, educação ...), i.e.
Incorporam as bases de dados nas outras
aplicações. Por isso também a importância
acrescentada das bases de dados e o
aumento da oferta de sistemas de gestão de
bases de dados.
28
Sistemas de Gestão de Bases de Dados
SGDB (DBMS)
• Definição: SGBD é um Software (uma
aplicação informática) de gestão de BD.
• Interfaces entre aplicações e arquivos de dados
físicos
• Separa vista lógico e físico de dados
• resolveu os problemas de ambiente de arquivos
tradicional
(redundância controlada, inconsistência eliminada,
Programas e dados separados, dados centralizados e
segurados)

29
Funções do SGBD
• Gestão do Armazenamento de dados
Backup/Recuperação de dados, Conversão de dados

• Gestão da Interface

• Gestão de Segurança, Gestão de disco, Gestão


de Meta-Dados

• Manutenção da Integridade de dados

• Gestão vários Utilizadores em simultáneo

• Controlo de acessos 30
Alguns SGBD´s conhecidos
• DB2: O sistema de base de dados relacional comercial
da IBM.
• MS Access: O sistema de base de dados relacional de
MICROSOFT para PCs.
• Oracle: O sistema de base de dados relacional
comercial da ORACLE.
• MySQL: Sistema de base de dados relacional de
código aberto.
• PostgreSQL: uma Base de dados objecto-relacional
com Código aberto.
31
Sistemas de Gestão de Bases de Dados
Arquitectura
• 1975: ANSI/SPARC (American National Standards
Institute/Standards Planning And Requirements
Commitee)

3 Nível de Abstracção:
1. Nivel interno (com um esquema interno que descreve a
forma de armazenamento físico dos dados)
2. Nível conceptual (com um esquema conceptual que
descreve a Estrutura dos dados)
3. Nível externo (com Vistas externas ou vistas do
Utilizador). É o que o Utilizador vê.

32
Sistemas de Gestão de Bases de Dados
Linguagens
Existem muitas Linguagens . As mais comuns são:
• DDL – Data Definition Language: A Linguagem
de Definição de Dados
• DML – Data Manipulation Language: A
Linguagem para manipulação de dados
• e Outros para especificar o esquema interno
(SDL-Storage Definition Language) e para
especificar as vistas de cada um dos
utilizadores (VDL-View Definition Language)...

33
SQL - Structured Query Language
(linguagem de consulta estruturada)
Nos SGBDR´s correntes as linguagens não são
consideradas separadas. Existe uma única
linguagem que as inclui.
A SQL é a Linguagem mais utilizada nos SGBD´s
relacionais.
Comandos de SQL incluem comandos para definir
o esquema de base de dados (DDL), comandos
para manipulação de dados (DML) e comandos
para a gestão de direitos e controlo de transação
(DCL)
34
Sistemas de Gestão de Bases de Dados
Classificação
Classificação atendendo:
1. Ao número de utilizadores
- SGBD´s mono-utilizador
- SGBD´s multi-utilizador
2. À Distribuição de base de dados pelo Nº
de locais
- SGBD´s centralizados
- SGBD´s distribuidos
3. Ao Modelo no qual o SGBD se baseia
35
MODELOS DE BASE DE DADOS

Modelos de base de dados podem ser


subdivididos em modelos de concepção e
modelos de implementação,
Modelos de concepção ocupam-se da estrutura lógica de
dados. Respondem à pergunta “quais são os dados que
entram na base de dados”
Modelos de implementação ocupam-se de como os dados
vão ser gravados e como são as estruturas que permitem
as suas ligações.

36
Sistemas de Gestão de Bases de Dados
Classificação (cont.)
conforme os modelos nos quais os SGBD´s
se baseiam, existem seguintes Modelos de
SGBD´s: (Modelos de Implementação)
- Modelo Hierárquíco
- Modelo em Rede
- Modelo Relacional
- Modelos orientados a Objectos e
- Extensões do Modelo Relacional
(Objecto-Relacional, orientado a documentos)
37
O Modelo Relacional

Base de Dados Relacional =


• Representação de dados como um
Conjunto de Relações
Exemplo duma Relação:
“Consultor”

38
Exemplo de Relação
Consultor
Atributos

Cod- Nome-Cons. Morada-Cons. Municipio Telef-Cons. Cod-Proj


Cons.

1 Jordão Rua G Ingombota 912456821 1

Cardinalidade = 7
2 Adelina Rua B Samba 923651569 2
Tuplos

3 Tiago Rua 11 Kilamba K. 914253625 1


4 Simão Rua F Viana 923568256 3
5 António Rua H Ingombota 934582655 2
6 Deolinda Rua D Samba 936856645 3
7 Paula Rua L Maianga 912852322 3

Grau = 6

39
O Modelo Relacional
Conceitos básicos
• Sobre uma Relação...
• Atributo : Coluna de uma Relação
• Tuplo : Linha duma Relação
• Grau : Número de Atributos
• Cardinalidade : Número de Tuplos
• Domínio : Conjunto de valores permitidos para um ou
mais atributos
O Grau de uma Relação é fixo, a Cardinalidade
muda frequentemente.

40
Dóminio e Tuplo
atributo:
Um atributo A é a função que executa um
domínio D num esquema da relação R.
tuplo:
Um tuplo t é uma lista de n valores de t =
<d1, d2, ..., Dn>, onde cada valor di é um
elemento do domínio Di, ou tem que ser
NULL.

41
Conceitos básicos (cont.)
domínio:
Consiste em um Nome D e um conjunto de
valores atómicos. Domínios definem o intervalo
de valores de atributos.

Esquema da relação:
Um esquema da relação R, notação: R (A1, A2,
..., An), é um conjunto de atributos {A1, A2, ...,
An}.

42
O Esquema de uma Relação
• O esquema duma Relação R(A1, A2, ..., An) é
um conjunto de atributos; Cada Atributo tem
Domínios D1, D2,....Dn.
(1≤ i ≤ n)
R = {A1, A2, ... An}
Um esquema é composto:
– pelo nome da relação
– pelos nomes de cada um dos atributos
a definição de cada atributo depende do tipo de dados
(inteiro, real, alfanumérico, data, lógico …) que o atributo
irá armazenar.

43
A Instância da relação
• A Instância da relação r, do Esquema R:
• r(R) é um conjuntos de n-tuplos r = {t1, t2,
...tm}. Cada um dos n-tuplos t é uma lista
ordenada de n valores t(v1, v2, vn),
onde cada valor vi (1≤ i ≤ n) é um elemento de
Di, ou é o valor especial Nulo (= Ausência de
um valor, valor desconhecido ou não aplicável).
Nulo ≠ 0 ou espaço

44
Conceitos básicos (cont.)
Relação:
Uma relação r é uma instância (expressão) do
esquema da relação
R (A1, A2, ..., An).
Um subconjunto do produto cartesiano dos
domínios participantes.
A estrutura básica da organização dos dados no
modelo de base de dados relacional é a Relação.

45
Caracteristicas de uma Relação
1) Numa instância o valor de um atributo é sempre
atómico.
2) Numa relação não podem existir instCncias iguais.
3) A ordem que se encontram as instâncias de uma
relação e os seus atributos é irrelevante.
4) Os valores de cada atributo pertencem a um mesmo
domínio.
5) Podem existir instâncias sem valores em alguns dos
seus atributos (atributo opcional, o seu valor é Nulo).
6) Os nomes (ou identificadores) dos atributos de uma
relação são únicos nessa relação.

46
Conceitos básicas (cont.)
Um Esquema de base de dados Relacional:
um conjunto de esquemas de relações S =
{R1, ..., Rn} com um conjunto de regras de
Integridade.

Uma instância de base de dados relacional é


o conjunto {r1, ..., rn}, onde ri é Instância de
Ri e todas as regras de Integridade são
satisfeitas.
47
Chaves de uma Relação
Chave candidata
Conjunto mínimo de atributos que identificam cada
ocorrência da relação.
Chave primária
De entre as chaves candidatas de uma relação, escolhe-
se uma para identificar de forma única cada Tuplo da
Relação. É o atributo que identifica univocamente cada
occorência da Entidade.
Chave Estrangeira
É um atributo (ou conjunto de atributos) que existe
também como a chave primária de outra Relação. Ele
faz referência a um atributo que é chave primária em
outra tabela.
48
CONCEPÇÃO E
IMPLEMENTAÇÃO DE UMA
BASE DE DADOS

Uma Base de Dados Serve muitas aplicações,


centralizando dados e controlando dados
redundantes.

49
MODELAÇÃO E MODELO DE BASE
DE DADOS
• A Modelação é a técnica que permite fazer a
organização e a documentação de dados de um
sistema, com o objectivo de obter Dados
organizados, flexíveis e adaptáveis às
necessidades futuras.
• Um modelo é uma representação simplificada e
abstracta do mundo real, i.e dos dados e das
relações existentes entre estes Dados.

50
O Modelo de Bases de dados
É a base teórica que determina a forma de
armazenamento e de processamento dos
dados num sistema de base de dados
O modelo deve ser logicamente fechado em
si mesmo, por que a base de dados
concebida a partir dele cumpre os requisitos
da base de dados.

51
Concepção da base de Dados
• A Concepção de uma Base de Dados é bastante
simplificada, quando se usa Modelos.
• Assim, o processo de desenvolvimento de um Modelo
de dados se passa em três Etapas:
– Analisar os requisitos

– Desenhar o Esquema conceptual

– Derivar o modelo de Implementação (transformar o Esquema


conceptual por uma estrutura lógica que o SGBD entende).

52
Dos Modelos Entidade-Relacionamento
(Entidade-Associação)
Das muitas ferramentas existentes para apoiar no
Desenho de Bases de Dados, o Modelo E-R
estabeleceu-se como o Modelo A-priori-Standard.
O Modelo Entidade-Relacionamento (E-R) / Entity-
Relationship-Modell, foi desenvolvido e descrito a
primeira vez em 1976 por Peter CHEN.
Os Conceitos fundamentais incluem Entidades, Atributos
e Relacionamentos.
O processo consiste na Identificação de Entidades, das
suas propriedades e dos Relacionamentos entre essas
Entidades, representados através de um Diagrama
chamado Diagrama E-R (DER).
53
Conceitos do Modelo E-R / E-A

• Entidade: Conjunto de pessoas, lugares, objectos,


acontecimentos ou conceitos sobre o qual pretendemos
guardar dados.
• Uma Instância ou Ocorrência de uma Entidade é um
elemento desse conjunto.
• Um atributo é uma característica específica de uma
entidade e é representada no diagrama E-R por uma
Elipse.
• Um domínio é um conjunto de valores que podem ser
atribuídos a um atributo.

54
Tipos de Entidade
Entidade forte: Entidade cuja existência não depende da
existência de uma outra entidade.
Entidade fraca: Entidade cuja existência depende da
existência de uma outra entidade. Não possui um
atributo(s) capaz de identifica-la univocamente e herda a
chave primária de outra Entidade.
Representação gráfica: um Rectângulo e Losango com
linhas duplas
Entidade composta ou Entidade Associativa: Uma
Entidade composta é uma Associação/Relacionamento
com Atributos.
Generalização: Uma entidade E é a generalização das
entidades E1.....En, se cada ocorrência de E1.....En é
55
também ocorrência de E.
Tipos de atributos

• Um atributo simples não pode ser subdividido


• Um atributo composto pode ser subdividido em novos
atributos ligados a ele.
• Atributo com um só valor e atributo com vários
valores
No diagrama E-R, o atributo com muitos valores é
representado por uma elipse com linha dupla.
exemplo: contactos telefónicos
• Atributo derivado é um atributo obtido a partir do valor
de um outro atributo. Exemplo: “Idade”.
O atributo derivado é representado por uma linha
tracejada.
56
Relacionamento ou Associação

• É um Conjunto de ligações entre uma (ou


mais) Ocorrências de uma Entidade.
• As ligações entre tabelas são as
condições (pré-requisitos) para
consistência de dados, consultas flexíveis
e manipulação simples dos dados.
• No Diagrama E-R, um relacionamento
representa-se por um losango ligado com
as entidades associadas.
57
Caracterização de um
Relacionamento
Elementos de caracterização são:
1. Grau ou Cardinalidade

2. Condições de Participação ou
Conectividade de um Relacionamento

3. Número de Participantes/Modalidade

58
1. Cardinalidade de um
Relacionamento
=3 Tipos de Relacionamento:
• Relacionamento 1:1 (1 para 1)
Isto significa que numa Tabela que a cada registro/tuplo/linha de uma Tabela
A existe só um registro ou nenhum registro na outra tabela B.

• Relacionamento 1:N (1 para muitos)


Isto significa que a cada registro/tuplo/linha de uma Tabela A existe
nenhum, um ou muitos registros na outra tabela B.

• Relacionamento M:N (muitos para muitos)


A cada registro da tabela A existem – nenhum, um ou muitos registos na
tabela B; e A cada registro da tabela B existem – nenhum, um ou muitos
registos na tabela A

59
Cardinalidade de Relacionamento
complexo (ex. ternário)
Fixa-se cada par de entidades e analisa-se qual o número
de ocorrências da terceira entidade.
No exemplo:
• – para o par A,B só pode existir uma ocorrência de C
• – para o par B,C podem existir n ocorrências de A
• – para o par A,C só pode existir uma ocorrência de B

B 1 1 C

60
2. Condições de Participação ou
Modalidade
• A Participação de uma entidade num Relacio-
namento tem 2 formas:
1. Obrigatória
Não pode existir nenhuma ocorrência dessa
entidade que não esteja associada a alguma ocorrência
da outra entidade que participa na associação.
2. Opcional (Não Obrigatória)
Podem existir ocorrências dessa entidade que não
estejam associadas a alguma ocorrência da outra
entidade que participa na associação.
61
3. Número de Participantes
=3 tipos de Relacionamento:

-- Unário ou recursivo - uma entidade


consigo própria.
-- Binário - duas entidades entre si
-- Complexo - várias entidades entre si
(ternário - 3 entidades)

62
Transformação do modelo
conceptual no modelo Relacional

Existem Regras de transformação. Para


entender estas Regras, é preciso conhecer
os conceitos do modelo relacional e do
modelo ER/EA.

63
Conceitos do Modelo ER

Entidade forte
Entidade fraca
Entidade composta
Tipos de relacionamento
Tipos de Atributo (identificador, Atributo
derivado, atributo de vários valores,
atributo composto, Atributo chave)

64
Transformação das Entidades fortes

• Cada Entidade (forte ou simples) dá origem a


uma Relação que inclue todos os atributos
simples dessa entidade. A chave primária da
Relação e eventualmente a chave estrangeira
são aqueles que foram identificadas no
diagrama E-R.
• No caso de atributos compostos, cada um dos
atributos simples que constituem o atributo
composto vai ser incluído.

65
Transformação das Entidades fortes
(Cont.)
Exemplo: Transformação da Entidade
Forte Cliente (G)
Crie um esquema de relação R para cada
tipo de Entidade forte G, onde os atributos
de G são os atributos de R. Seleccione
uma chave primária (código de
identificação)

66
Transformação das Entidades fortes
(cont.)
Exemplo: Transformação da Entidade
forte “Cliente“ Sobrenome
Nº-casa
apelido

Nº-Cliente Cliente
Rua
1. seleccione a entidade forte “Cliente” e crie uma relação
2. todas as características do Cliente dão origem aos atributos da relação criada
3. Para identificar cada tuplo da relação, seleccione uma chave primária (neste caso o
Nº-cliente.  Cliente (Nº-Cliente, Sobrenome, apelido, Rua, Nº-casa)

67
Transformação das Entidades fracas.

• Crie para cada tipo de objecto fraco S com proprietário


G um esquema de relação R, onde as propriedades de
S formam os atributos de R.
• Pegue a chave primária do esquema de relação que
corresponde ao proprietário G, e adicioná-lo para R
como uma chave estrangeira.
• Seleccione uma combinação de atributos (chave
parcial), que vai formar, junto com esta chave
estrangeira, a chave primária da relação.

68
Transformação das Entidades fracas
(cont.)
Exemplo
Nome Nome
Edição Preço Editor
do J. da P.

é
Jornal composto Parte

• Seleccione o tipo de Objecto fraco e crie uma relação.


• Os atributos de parte, neste caso o nome e o editor, são os atributos para esta
relação.
• Adicione a chave primária do esquema relacional do proprietário Jornal como chave
estrangeira.
• O atributo nome da parte forma, Juntamente com a chave estrangeira, a chave
primária da relação.  Parte (nome do jornal, nome da Parte, editor)
69
Transformação dos
Relacionamentos binários 1:1
Para transformar o Relacionamento 1:1,
escolhemos uma das relações obtidas a
partir das entidades (jornal) e incluímos a(s)
chave(s) primária(s) da(s) outra(s) (ChefEditor)
como chave(s) estrangeira(s).
É preciso escolher uma relação cuja
entidade tenha participação total no
relacionamento.
70
Transformação de todos os Relacionamentos
Binários 1:1

Procure todos os tipos de relacionamento binários


regular B

Encontre-se os esquemas das relações S e T para


os tipos de objectos participantes

seleccione um deles (por exemplo, S) para


adicionar ali a chave primária de T como uma
chave estrangeira e os atributos do B como
Atributos 71
Transformação dos
Relacionamentos Binários 1:1
Exemplo
DataInicio Nome Edição
preço
NºPessoal

ChefEditor gere Jornal

• Seleccione um tipo de relacionamento binário, exemplo o relacionamento


gere
• escolha um dos participantes no relacionamento "gere“, p. ex. jornal .
jornal (Nome, edição, preço)

72
Transformação dos Relacionamentos
Binários 1:1 (cont.)
• Adicione a chave primária do segundo
participante ("ChefEditor") como chave
estrangeira na relação jornal.
jornal (Nome, edição, preço, NºPessoal-ChefEditor)

• Adicione as propriedades do
relacionamento "gere" como atributos na
relação jornal.
jornal (Nome, edição, preço, NºPessoal-ChefEditor, DataInicio)

73
Transformação dos
Relacionamentos Binários 1:1
(cont.)
3 casos (dependendo do tipo de participação)
1º caso: Ambas as entidades são obrigatórias.
A situação é representada por uma só tabela, que contém
todos os atributos de ambas entidades.
2º caso: apenas uma das entidades é obrigatória.
A situação é representada por 2 tabelas, uma para cada
entidade. A chave primária da entidade opcional vai ser
colocada na tabela correspondente à entidade obrigatória.
3º caso: Nenhuma das entidades é obrigatória. A situação é
representada por 3 tabelas, uma por entidade e uma para o
Relacionamento.

74
Transformação dos
Relacionamentos Binários 1:N
2 casos
• 1º caso: Entidade do lado N obrigatório
Esta situação é representada por 2 Tabelas, uma para
cada Entidade
A chave primária da Entidade do lado opcional será
incluída como chave estrangeira da Entidade que se
encontra “do lado N”.
• 2º caso: Entidade do lado”N” opcional
Esta situação pode ser representada por 3 Tabelas, uma
para cada entidade e uma para o Relacionamento.

75
Transformação dos Relacionamentos
Binários N:M
• Cada relacionamento N:M é decomposta
através da transformação do relacionamento
numa Entidade composta. Então teremos dois
relacionamentos de 1:N entre cada uma da
Entidade antiga e a nova entidade. A nova
Entidade (composta) contém as chaves
primárias das ambas Entidades participantes
como chaves estrangeiras e mais eventuais
alguns atributos do relacionamento.

76
Transformação dos Relacionamentos
Binários N:M (cont.)
• Esta situação é representada por três tabelas. Uma para
cada Entidade e uma para o Relacionamento.
• Atributos com mais do que um valor não sendo
permitidos no modelo relacional, então criamos uma
nova relação que inclui o próprio atributo composto e a
chave primária da entidade de que ele é atributo.
• A chave primária desta nova relação é formada por
esses dois atributos
• Ex: Vendedor visita Cliente

77
Transformação dos Relacionamentos Unários
Relacionamento Unário 1:1

1º caso: Nenhum dos lados é obrigatório

é casada
Pessoa com

1
• Esta situação é representada por duas tabelas, uma para a
entidade e uma para o relacionamento/a associação.
• PESSOA (Nº_Bi, Nome, Morada, ......)
• CASAMENTO ( Nº_Bi_Marido, Nº_Bi_Mulher)
78
Transformação dos Relacionamentos Unários
Relacionamento Unário 1:1

2º caso: um dos lados é obrigatório

Docente orienta

1
• Esta situação é representada por por uma única tabela
• DOCENTE (Cód_Doc., Nome, ...... , Cód_Doc._Orientador)

79
Transformação dos Relacionamentos Unários
Relacionamento Unário 1:1

3º caso: Ambos os lados são obrigatórios

é casada
Pessoa com

1
• Esta situação é representada por uma única tabela.
• PESSOA (Nº_Bi_Marido, Nome_Marido,..., Nº_Bi_Mulher,
Nome_Mulher, ......)
Uma situação muito limitada a analisar criteriosamente
80
Transformação dos Relacionamentos Unários
Relacionamento Unário 1:n

1º caso: lado n é obrigatório

1
Chefe
Empregado é Chefe de

n
Subordinado
• Esta situação é representada por por uma única tabela
• EMPREGADO (Cód_Empr., Nome_Empr., ...... ,
Cód_Empr._Chefe)
PS: O Chefe Máximo é Chefe dele próprio
81
Transformação dos Relacionamentos Unários
Relacionamento Unário 1:n

2º caso: lado n não é obrigatório

Empregado é Chefe de

n
Esta situação é representada por duas tabelas, uma para a entidade e
uma para o relacionamento/a associação.
• EMPREGADO (Cód_Empr., Nome_Empr.,...)
• CHEFIA (Cód_Empr., Cód_Empr._Chefe)
PS: Esta situação será normalmente representada por apenas uma Tabela. É necessário ter em
conta a proporção do número de ocorrências da tabela EMPREGADO.

82
Transformação dos Relacionamentos Unários
Relacionamento Unário n:m

filho
m

é
Peça constituido
de

n
pai

Esta situação é representada por duas tabelas, uma para a entidade e


uma para o relacionamento/a associação.
• PEÇA (Cód_Peça, ...)
• CONST. (Cód_Peça_Pai, Cód_Peça_Filho)
.
83
CRIAÇÃO DA BASE DE
DADOS E DAS TABELAS

84
Tipos de dados
Depois da concepção da BD e da
transformação do esquema conceptual num
esquema relacional, vem a fase de criação
de tabelas dentro da BD. Para assegurar
que a estrutura da BD seja ajustada e que o
armazenamento se faz utilizando pouco
espaço de armazenamento, temos que
definir os tipos de dados que cada campo
vai armazenar.
85
Tipo de dado e Domínio

O tipo de dados determina os valores que um


atributo pode assumir.
O Domínio é o conjunto de todos os valores que
aparecem na Relação para um atributo, um
intervalo de valores.
Dependendo de SGBD a utilizar, existem vários
tipos de dados. Exemplos: Bytes, Integer, Decimal,
Número, Char(c), Texto, Short Text, Long Text, Data/Hora,
Date/Time,...

86
Criação da tabela totalmente pelo
utilizador
• Na maior parte dos SGBDR pode-se utilizar dois
métodos para criar uma tabela:

- através de uma interface gráfica.

ou

- utilizando um script, ou comando, em sql

87
Método gráfico
da criação da BD e das Tabela

Usando o método gráfico deve-se seguir as


indicações da própria aplicação.

88
SGBD ACCESS
Usar a interface gráfica da Microsoft para
criar e manipular OS OBJECTOS DE UMA
BASE DE DADOS que são Tabelas,
Consultas, Formulários e Relatórios.

89
CRIAR UMA BASE DE DADOS

• Na Janela Iniciar do Access 2013, clique


em base de dados de ambiente de
trabalho em branco.
• Na parte direita da mesma janela aparece
uma área para introduzir o nome da base
de dados e a sua localização.
• Digite o nome, escollhe a localização e
pressione o botão criar· (Base de
Dados1.accdb)
90
Criação da Tabela
- O elemento fundamental de uma BD é a Tabela
- Uma Tabela é composta de linhas e colunas
- As linhas contém os dados ou valores de
acontecimentos
- As colunas identificam cada um desses valores
- Uma coluna com uma determinada denominação
chama-se campo
- Cada coluna contém dados com um determinado
formato (tipo de dados)

91
CRIAR TABELAS
(COM MS ACCESS 2010)

MS Access tem 4 opções de criação de tabelas: (a


encontrar sob o menu “criar”)
• Tabela
A criação da tabela é feita a partir da inserção de um conjunto
de dados, sendo estes configurados automaticamente.
• Modelos de tabela
Criação da tabela com base em modelos predefinidos
• Listas de SharePoint
Cria listas para o site de SharePoint
• Criação da tabela totalmente pelo utilizador, indicando os campos e
suas propriedades

92
Access:
Criar uma Tabela na vista de Estrutura

O Modo Estrutura da Tabela possibilita uma maior liberdade de configuração.

• Comandos: a partir do separador CRIAR, premir o botão


“Estrutura da Tabela”.
• =Aparece a Janela de definição de dados (Ecrã de
construção da Tabela), que é dividida em duas partes:
- A parte superior é para indicar o nome de cada
campo da tabela, o respectivo tipo e, opcional-
mente, uma descrição do significado do campo.
- A parte inferior é para indicar outras propriedades
que complementam a caracterização de campo.

93
SQL
• SQL é a abreviação para Structured Query
Language (em português: Linguagem de
consulta estruturada). É a linguagem padrão do
modelo relacional, definida como padrão pelo
comité ANSI (ISO 1987) e adoptada por
diferentes sistemas de gestão de bases de
dados (embora com algumas diferenças nos
dialectos) para possibilitar a criação,
manipulação e alteração de dados.

94
Linguagem procedural vs SQL
• Ao contrário de uma linguagem procedural
como Pascal ou C (programação de um
algoritmo para resolver um problema), no
SQL o utilizador faz uma consulta
especificando a forma de resultado
desejado, o SGBD procura o melhor
caminho para chegar ao resultado.

95
SQL como DDL
• A linguagem de Definição de dados DDL
disponibiliza comandos para criar, alterar e apagar
uma BD ou elementos da BD como Tabelas, Vistas,
Esquemas etc...
• Os comandos de DDL são:
CREATE - permite criar uma BD ou um elemento da base de
dados

ALTER - permite modificar um elemento existente na BD como


ef efectuar alterações na estrutura da Tabela.

DROP - permite eliminar um elemento não desejado

96
SQL como DML
• Com os comandos de DML podemos inserir,
recuperar, apagar ou modificar os dados.
• Comandos mais importantes são: INSERT,
UPDATE, SELECT e DELETE.
O comando INSERT serve para inserir novos Registos
(linhas) numa tabela existente.
O comando UPDATE é usado para efectuar alterações nos
dados (Registos) já existentes.
O comando SELECT serve para escolher Registos de uma
Base de Dados. SELECT é certamente o comando mais utilizado de
todos os comandos de SQL. Todas as consultas da Base de dados
são realizadas com este comando.
97
SQL como DML (cont.)
O comando DELETE: com o comando DELETE podemos
eliminar uma ou mais linhas das tabelas existentes. Podemos eliminar
todas as linhas ou só as linhas que satisfazem determinadas
condições. .

98
Criação da BD e de tabelas : Método
de Script (ou comando SQL)
• Abra o Access e dê um nome a Base de dados

• Fecha a tabela aberta automaticamente

• Vai em create tab e clica Query Design

• Aparece a table show, fecha a caixa de diálogo

• Sobe na tabela design e clique em definição de dados do


grupo de tipo de consultas

• A consulta da tabela 1 abre-se

• Aí pode escrever os comandos de SQL.


99
Método de Script (Cont.)
• Para criar tabelas simples, vamos escrever os comandos SQL para
criar tabelas e campos importantes, com seus respectivos tipos de
dados.
• O comando CREATE TABLE vai criar uma tabela com o nome
Projecto. Definimos o primeiro campo (proj_num) com tipo de dados
int (integer) como chave primária (identificador único e não
repetitivo). O segundo campo (descr_proj) tem tipo de dados
CHAR(50) ou texto. O terceiro também é CHAR(20). O último é
FLOAT.
• Nota: encerramos os campos e a secção de tipo de dados entre
parênteses e colocamos a chave primária.

• A criação da tabela principal precede aquele da tabela dependente.

100
Formulação SQL
CREATE TABLE Aluno
(
“Nº_Matr.” INT NOT NULL,
“Nome” VARCHAR(50),
“Curso” VARCHAR(20),
PRIMARY KEY (“Nº_Matr.” )
);

101
INSERÇÃO DE DADOS
A inserção de dados faz-se na vista (no modo) de
tabela ou folha de Dados.
Respeite a ordem e inicie a inserção de dados
com as tabelas cujas chaves primárias são usadas
como chaves estrangeiras pelas outras tabelas.
A inserção de dados pode ser apenas manual, i.e.
usando o teclado, ou com Assistente de
Pesquisas que permite a criação de uma lista
contendo os valores que o utilizador pode
escolher.
102
Tipo de dados “Assistente de Pesquisa”
(Look-up wizard)

• Escolher o tipo de dados Assistente de Pesquisas


• Escolher uma opção: obter os valores a partir de outra
tabela o escrever os valores
• Escolher a Tabela ou escrever os valores
• Escolher o campo que contém os valores a incluir
• Dar a sequência de ordenação para os itens na caixa de
listagem
• Ajustar a largura para as colunas no campo de
pesquisas
• Definir a etiqueta, activar a integridade de Dados... e
concluir
103
Inserir valores de pesquisa
directamente
• Depois da definição de tipo de dados, na parte
inferior da janela de criação de tabela aperta o
registro “Pesquisa” (Lookup) que se encontra
nas Propriedades (Field properties) do campo.
No campo “Mostrar controlo” (Display control) a
opção automática é “caixa de texto” (Text Box).
Para poder usar uma lista de pesquisa, abre a
lista do campo (seta aparece quando clicar caixa de texto) e
escolha “caixa de listagem” (List Box).
Aparecem em baixo os parâmetros do campo.
104
Regras de Integridade
• Regras definidas pelo Utilizador de Base de Dados
para garantir a Integridade de Curso, o Direito de
Acesso e a Integridade semântica
• Regras inerentes ao próprio Model Relacional
- Regra de Integridade da Entidade
Nenhum dos valores de uma chave primária de uma
relação pode ser Nulo.
- Regra de Integridade Referencial
Numa relação, qualquer ocorrência de uma chave
estrangeira deverá obrigatoriamente existir como
ocorrência da chave primária da relação à qual se
refere.
105
Manipulação e Integridade

É recomendado observar e cumprir todos os


tipos de restrições ao realizar operações -
como alterar os valores de atributo de uma
tupla, inserir e eliminar tuplas - que podem
por em perigo a integridade de dados.

106
Problemas ao inserir tuplos

• O valor previsto para a nova chave primária já


existe.
• A chave primária do novo tuplo tem um valor
Nulo.
• Não existe nenhum valor da chave primária
associado ao novo valor da chave estrangeira.
A inserção será rejeitada ou transformada numa
operação permitida de acordo com um protocolo.

107
Problemas ao eliminar tuplos
• Na eliminação de tuplo, Só pode ser
violado a integridade referencial.
• Se o valor da chave estrangeira do tuplo
referenciado tornar inválido, o tuplo
referenciando pode ser afectado.
Soluções: Rejeitar a eliminação, Eliminar
em cascata (excluir também o tuplo de
referência) ou colocar os atributos da chave
estrangeira em Nulo.
108
Problemas ao alterar os valores de
atributos
• Neste caso também as 3 condições de
integridade podem ser violadas por que
em princípio alterar é como eliminar um
tuplo antigo e inserir um novo.

109
Inconsistências e Anomalias
A inconsistência de dados conduz aos
problemas chamados anomalias de dados.
Existem 3 tipos de anomalias:
• Anomalia de actualização (update)
• Anomalia de Inserção (insert)
• Anomália de remoção (delete)

110
Um ficheiro com dados inconsistentes
Nome Nº Tel Ender. Cons- Data da Duração Sal./H Especialidade
Nome visita

José 913040301 Rua 1 Paulino 14-07-12 1H 60 Finança, IT

Tiago 917080808 Rua 2 João 13-04-11 4H 55 Comtab/Audit

Maria 921010102 Rua 3 Paulino 10-02-12 1H 60 Finança, IT

Tiago 917080808 Rua 2 João 11-07-11 1H 55 Comtab/Audit

Jorge 923470240 Rua 4 Paulino 04-10-11 2H 60 Finança, IT

Maria 923040501 Rua 3 Paulino 10-11-12 1H 60 Finança, IT

Tiago 917080808 Rua 2 João 08-05-12 1H 55 Comtab/Audit

111
NORMALIZAÇÃO DE ESQUEMAS
RELACIONAIS
A Normalização é uma técnica para avaliar
a qualidade das estruturas obtidas e tem
como objectivo de desenvolver um modelo
evitando redundâncias.
Neste modelo todas as informações são
registadas uma só vez e as anomalias que
resultam de redundâncias são eliminadas.

112
NORMALIZAÇÃO (Cont.)
• A normalização estabelece as regras,
como repartir os dados em n Entidades de
modo a tornar as Redundâncias
controláveis e assim evitar as anomalias.
• Ajuda a melhorar a qualidade de desenho
de Base de dados.
• É uma técnica que consiste em várias
fases chamadas Formas Normais.

113
Dependências funcionais

• A dependência funcional é um dos conceitos


principais no processo da normalização.
• Sejam A e B atributos ou conjuntos de atributos
de uma Relação R, diz-se que B depende
funcionalmente de A se cada valor de A está
associado com exactamente um valor de B.
• Representação da DF: A B (Para cada valor
de A, existe exactamente um valor para B)
• O Atributo A designa-se por determinante

114
DF total ou parcial

• Um atributo é totalmente funcional dependente


de um conjunto de atributos, quando o atributo
depende funcionalmente de todos estes
atributos e não apenas de uma parte de
atributos. Exemplo: a data de nascimento
depende de todos os atributos que descrevem
de forma única uma pessoa (e não so do
apelido). Numa relação a DF X Y diz-se
Total se ∀ A∈X, (X- {A}) → Y
Será Parcial se ∃ A∈X, (X- {A}) → Y
115
Transitividade
• Sejam A, B e C atributos ou conjuntos de
atributos de uma Relação R, diz-se que
C é funcionalmente dependente de A se C
depender de B e B depender funcionalmente de A

116
Processo de Normalização

• Partindo das relações não normalizadas, o


processo de normalização vai transformando
successivamente estas relações em novas
relações que obedecem à um nível determinado
da forma normal.
• A experiência demonstrou que a construção de
bases de dados íntegras não precisa ir acima da
terceira forma normal. A maioria das aplicações
comerciais de hoje usa uma base de dados com
um modelo de dados da 3ª FN.
117
1a Forma Normal
• Uma Relação está na 1ª Forma Normal
(1NF) se não contém grupos de atributos
repetitivos.
• Quando cada Atributo de uma Entidade
tem um só valor.
Nesta etapa, a relação deve ter apenas
valores indivisíveis e não podem existir
grupos de atributos repetitivos

118
2a Forma Normal
Uma relação está na 2FN se:
• Está na 1FN e
• Não inclui dependências parciais
cada atributo que não é chave depende
totalemente da chave X.

Nesta etapa, todos os atributos não-chave devem


ser totalmente funcionais dependentes dos
atributos chaves (chave primária).
119
3a Forma Normal
Uma relação está na 3FN se:
• Está na 2FN e
• Nenhum atributo não-chave é transitivamente
dependente da chave primária.
Não pode existir um atributo não-chave que
depende de um outro atributo não-chave.

Todos os atributos não-chave devem ser


independentes entre si.
120
Operadores do Modelo Relacional
A Algebra Relacional define um conjunto
de operações utilizadas para definir
novas relações sem alterar as relações
originais. Edgar F. Codd definiu uma
sintaxe completa sobre 8 operações e
mostrou que com isso todos acessos
pensáveis a quaisquer Relações da base
de dados são possíveis.

121
Operadores do Modelo Relacional
1. Operador UNION
R UNION S
O Resultado é uma Relação que inclui todos os tuplos
pertencentes a R ou a S ou a ambas as Relações

2. Operador INTERSECT
R INTERSECT S (R ∩ S)
O Resultado é uma Relação que inclui todos os tuplos
pertencentes a ambas as Relações

122
Operadores de Algebra Relacional
3. Operador DIFFERENCE
R MINUS S (R - S)
O Resultado é uma Relação que inclui todos os tuplos
que estão em R mas não em S

4. Operador PRODUCT
R TIMES S (R x S)
O Resultado são todas as combinações possíveis de
Tuplos da Relação R e da Relação S

123
Operadores do Modelo Relacional
5. Operador SELECT
R WHERE Condição
(σcondição(R))
Selecção de um subconjunto dos tuplos de uma
Relação que satisfazem uma determinada condição.

6. Operador PROJECT
R [Selecção dos atributos determinados] (Πlista(R))
Selecção apenas de determinados atributos de uma
Relação, com eliminação de repetições

124
Operadores de Algebra Relacional
7. Operador JOIN
R JOIN S
Este Operação permite a combinação de tuplos
relacionados, pertencentes a duas (ou mais) relações.

8. Operador DIVIDE
R DIVIDEBY S (R : S)
Seja R (A, B) e S (C) duas relações e B e C
conjuntos de atributos compatíveis. R:S sobre B e C
é representada pelo conjunto R[B : C] S = T(A) :
t (a) ∈ T (A) se ∀c ∈ S(C), R(a,c) ∈ R
125

You might also like