Introdução à Manipulação
de Dados
Teresa Romão
[email protected]
www.di.uevora.pt/~tir/IMD/IMD.htm
Departamento de Informática
Universidade de Évora
2005/2006
Introdução à Manipulação de Dados
1
Funcionamento da disciplina
Duração: 7 semanas
Aulas teórico-práticas:
• apresentação da matéria
• aplicação dos conceitos através de exercícios práticos
Introdução à Manipulação de Dados
2
Bibliografia
• Material de suporte fornecido pelo docente
• Página da disciplina na Internet:
http://www.di.uevora.pt/~tir/IMD/IMD.htm
• Livros da biblioteca da Universidade de Évora sobre o
Microsoft Excel
• Modern Structured Analysis, Edward Yourdon
Prentice-Hall, 1989
• Database System Concepts de Silberschatz, Korth e
Sudarshan
Introdução à Manipulação de Dados
3
Avaliação
1.
O aluno obtém a nota prática através da execução de 1 trabalho
práctico proposto para avaliação, nas aulas práctcas. O trabalho poderá
estar sujeito a discussão formal com o(s) docente(s) da disciplina e é
obrigatório (um aluno que não entregue o trabalho ou obtenha no
mesmo uma nota inferior a 8 valores fica reprovado).
2.
O aluno pode obter a nota teórica de duas formas possíveis:

Teste

Exame
Nota mínima exigida: 8 valores
3.
A nota final é dada pela fórmula:
Nota final = 75%nota_teórica+25%nota_prática
Introdução à Manipulação de Dados
4
Introdução aos Sistemas de
Base de Dados
Base de dados
 Colecção de dados relacionados.
Sistema de Gestão de Base de Dados
 Aplicação que mantém e gere de forma eficiente uma base
de dados;
 São normalmente usados para gerir grandes quantidades
de informação e permitir o acesso rápido a essa mesma
informação.
Introdução à Manipulação de Dados
5
Introdução aos Sistemas de
Base de Dados
SGBD devem:
 Facilitar o acesso aos dados;
 Evitar redundância e inconsistência;
 Permitir múltiplos acessos simultâneos aos dados;
 Garantir a segurança dos dados;
 Garantir a integridade dos dados de acordo com restrições prédefinidas.
Introdução à Manipulação de Dados
6
Níveis de abstracção de um SGBD
Esquema externo/Vista 1
Esquema externo/Vista 2
Esquema externo/Vista 3
Nível conceptual-lógico
Nível físico
Disco
Introdução à Manipulação de Dados
7
Níveis de abstracção de um SGBD
 Nível físico
 Descreve a forma de armazenamento nos periféricos (discos)
das relações descritas no modelo conceptual
 Estruturas de dados de baixo nível
 Nível conceptual-lógico
 Descreve os dados em termos do modelo
 Baseia-se nas funcionalidades e restrições dos dados
 Descrição das relações existentes na BD
 Estruturas simples => estruturas complexas no nível físico
 Nível usado pelos administradores de BD
Introdução à Manipulação de Dados
8
Níveis de abstracção de um SGBD
 Esquema externo/Vista
 Permite a customização (e autorização) do acesso aos
dados, a nível do utilizador ou grupos de utilizadores
 É guiado pelos requisitos do utilizador final
 O nível conceptual ainda pode ser complexo para o vulgar
utilizador devido ao tamanho da BD e o utilizador apenas
quer ver a parte que lhe interessa.
 Enquanto só existe um esquema lógico e físico,
podem existir vários esquemas externos ou vistas...
Introdução à Manipulação de Dados
9
História
 IDS: Integrated Data Source
 Charles Bachman, General Electric, início década 60
 modelo de dados em rede
 IMS: Information Management System
 IBM, fim década 60
 modelo de dados hierárquico
 System R project
 Edgar Codd, IBM, 1970
 modelo de dados relacional
Introdução à Manipulação de Dados
10
Modelo de dados em Rede
 Os dados representados por um conjunto de registos (tipo
Pascal). As relações entre dados são mantidas por links
(pointers).
 Assim, os registos da BD estão organizados em conjuntos de
grafos.
Silva
Pereira
30
23
8
10
Régua
Lápis
Papel
Cola
1
26
18
3
Introdução à Manipulação de Dados
Produto
Nome
Quantidade
11
Modelo de dados hierárquico
 Difere do Modelo de Rede: os registos estão organizados em
conjuntos de árvores (em vez de grafos).
Silva
Pereira
8
23
30
10
8
23
Papel
Lápis
Régua
Cola
Papel
Lápis
10
6
1
3
8
20
Introdução à Manipulação de Dados
Produto
Nome
Quantidade
12
System R project
 Modelo Relacional
 modelo de organização e ligação de dados
 SQL query language
 linguagem para obter informação da BD
 actualmente: SQL-92
 standard ANSI, ISO
Introdução à Manipulação de Dados
13
Modelo Relacional
 Usa uma colecção de tabelas para representar dados e relações
entre eles.
 Cada tabela possui diversas colunas
 Cada coluna corresponde a um atributo (de um dado tipo)
 Cada linha da tabela corresponde a um registo (conjunto de
valores dos diversos atributos)
 Cada registo é identificado por um atributo (ou conjunto de
atributos) único.
Introdução à Manipulação de Dados
14
Modelo Relacional
 Três tabelas: Clientes, Produtos e Compras
 A tabela Compras estabelece a relação entre clientes e produtos
Clientes
Nº de
cliente
Nome
Compras
Produtos
Nº de
produto
Designação
Nº de
cliente
6
Nº de
produto
8
Quantidade
10
6
Silva
8
Papel
14
Pereira
10
Cola
14
10
3
35
Santos
23
Lápis
6
23
6
40
Martins
30
Régua
6
30
1
14
8
8
35
10
2
40
30
3
14
23
20
Introdução à Manipulação de Dados
15
Modelo Relacional
 Tabela “Clientes”:
 Dois atributos (colunas) - nº e nome - que permitem
descrever cada cliente;
 Cada registo (linha) corresponde a um cliente caracterizado
pelos valores que possui para cada atributo (e identificado
univocamente, neste caso, através do atributo “nº de
cliente”)
Clientes
Introdução à Manipulação de Dados
Nº de
cliente
Nome
6
Silva
14
Pereira
35
Santos
40
Martins
16
Desenho de uma Base de Dados
 Análise de requisitos
 Saber que dados devem ser mantidos na BD
 Conhecer os requisitos dos utilizadores
 Desenho conceptual
 Desenvolver uma descrição de alto nível dos dados e das
restrições conhecidas sobre os mesmos
 Modelo Entidade-Associação
Introdução à Manipulação de Dados
17
Desenho de uma Base de Dados
 Desenho lógico
 Converter o modelo conceptual para um esquema de BD no
modelo do SGBD escolhido
 modelo Relacional
 Refinamento do esquema
 Refinar a BD através da análise da colecção de relações,
identificando potenciais problemas
 normalização
Introdução à Manipulação de Dados
18
Desenho de uma Base de Dados
 Desenho físico
 Refinar a BD para ir de encontro aos critérios de
performance desejados
 Desenho de segurança
 Identificar diferentes grupos de utilizadores e seus papéis.
Para cada um, saber a que partes da BD pode ou não aceder
e assegurar que apenas acede às partes necessárias.
Introdução à Manipulação de Dados
19
Modelo de Dados
 Análise
Para determinar os requisitos dos utilizadores várias
técnicas podem ser utilizadas:
 análise de documentação,
 entrevistas,
 questionários,
 observação do comportamento dos utilizadores e da
organização,
 prototipagem.
Introdução à Manipulação de Dados
20
Modelo de Dados
 Desenho conceptual
 Descreve os dados em termos dos objectos e suas
associações
 Representação gráfica: diagrama de Entidades e
Associações (DEA)
 Conceitos básicos





Entidade
Associação
Atributo
Chave
Restrições de mapeamento
Introdução à Manipulação de Dados
21
Diagrama de Entidades e
Associações (DEA)
Um DEA é um modelo que representa a visão estática dos dados e das
associações entre eles.
Um DEA identifica:
 as entidades do sistema;
 as associações entre os dados;
 as características dos dados e das associações.
Introdução à Manipulação de Dados
22
DEA: componentes
•
Entidades
•
Associações
•
Entidades associativas
Cliente
Livro
fornece
Marcação
Introdução à Manipulação de Dados
23
DEA: estrutura
entidades
associações
Introdução à Manipulação de Dados
entidade associativa
24
DEA: entidades
Uma entidade representa qualquer coisa (objecto, conceito, facto)
do mundo real sobre a qual o sistema deve guardar informação.
Cada entidade é definida por:
 Atributos: propriedade caracterizadora de uma entidade. (Item
elementar de informação). É sempre um elemento atómico de
informação.
 Atributo(s) identificadore(s): elemento de dados que
identifica univocamente cada instância (membro individual)
da entidade;
 Atributo(s) descritor(es): elemento de dados que define
uma propriedade da entidade.
Cada entidade é identificada por:
Introdução à Manipulação de Dados
Substantivo no singular
25
DEA: entidades
Exemplo de entidade:
Aluno
• Atributo identificador:
número_de_aluno
• Atributos descritores:
nome, morada, telefone, data_nascimento, n_BI
Exemplo de instância:
número_de_aluno: 2834
nome: João Santos
morada: Évora
data_nascimento: 28/4/1972
n_BI: 8256394
Introdução à Manipulação de Dados
26
DEA: associações
Uma associação representa um conjunto de ligações (relação) entre
entidades que necessitam ser guardadas pelo sistema.
A associação é caracterizada pela conjunção dos atributos
identificadores das entidades envolvidas.
Cada associação é identificada por:
Verbo + substantivo
Introdução à Manipulação de Dados
27
DEA: associações
Exemplo de associação:
• Aluno está inscrito em disciplina
Aluno
está inscrito
Disciplina
pertence
Curso
• Discplina pertence a curso
Disciplina
Por defeito, todas as associações são bidireccionais.
Introdução à Manipulação de Dados
28
DEA: associações
Associações múltiplas entre as mesmas entidades:
Docente
lecciona
Disciplina
é regente
Introdução à Manipulação de Dados
29
DEA: associações
Tipos de associação:
• Unária: relação entre uma entidade e ela própria.
Pessoa
é pai
• Binária: relação entre duas entidades.
Disciplina
pertence
Curso
• Complexas: relação entre três ou mais entidades.
Cliente
compra
Produto
Fornecedor
Introdução à Manipulação de Dados
30
DEA: associações
Uma associação complexa pode reduzir-se a várias associações
binárias.
Exemplo:
Cliente
compra
Produto
Fornecedor
Associação complexa
Cliente
faz
Compra
é para
Produto
fornecida
Fornecedor
Introdução à Manipulação de Dados
Associações binárias
31
DEA: associações
Instância de uma associação:
Representa uma ocorrência de uma ligação (entre ocorrências
de entidades).
Exemplo:
Empregado
Instâncias
de Empregado
trabalha
Instâncias
de Trabalha
E1
E2
E3
E4
Introdução à Manipulação de Dados
Departamento
Instância
de Departamento
D1
D2
D3
4 instâncias de Empregado
3 instâncias de Departamento
4 instâncias da
associação Trabalha
32
DEA: cardinalidade das associações
Editora
publica
Livro
• Será que uma editora pode publicar vários livros?
• Será que uma editora pode nunca ter publicado um livro?
• Será que um livro pode ser publicado por uma editora, por
nenhuma ou por várias editoras?
As respostas a estas perguntas são definidas pela política da
organização.
Devemos completar as associações do DEA com a respectiva
cardinalidade.
Introdução à Manipulação de Dados
33
DEA: cardinalidade das associações
A cardinalidade define os graus máximo e mínimo de uma
associação.
• O grau máximo (restrição de cardinalidade) de uma associação
pode ser:
• 1:1
• 1:N
• N:M
• O grau mínimo (restrição de participação) de uma associação
pode ser:
• 0:0
• 0:1
• 1:1
Introdução à Manipulação de Dados
34
DEA: grau máximo
O grau máximo define o número máximo de vezes que uma instância
de uma entidade pode ocorrer na associação.
Exemplo:
Cliente
•
1
tem
1 Carta de
condução
Uma instância de Cliente pode ocorrer no máximo uma vez
Um Cliente tem zero ou uma carta de condução
•
Uma instância de Carta de condução pode ocorrer no máximo
uma vez
Uma Carta de condução pertence a um Cliente
Introdução à Manipulação de Dados
35
DEA: grau máximo
Exemplo:
Apartamento
•
1
tem
N
Garagem
Uma instância de Garagem pode ocorrer no máximo uma vez
Uma Garagem pertence a zero ou um Apartamento
•
Uma instância de Apartamento pode ocorrer muitas vezes (N)
Um Apartamento pode ter zero, uma ou mais Garagens
Introdução à Manipulação de Dados
36
DEA: grau máximo
Apartamento
1
tem
N
Garagem
tem
apartamento1
garagem1
apartamento2
garagem2
apartamento3
garagem3
garagem4
Introdução à Manipulação de Dados
37
DEA: grau máximo
Exemplo:
Autor
•
N
escreve
M
Livro
Uma instância de Autor pode ocorrer no máximo N vezes
Um Autor escreve zero, um ou mais Livros
•
Uma instância de Livro pode ocorrer no máximo M vezes
Um Livro pode ser escrito por zero, um ou mais Autores
Introdução à Manipulação de Dados
38
DEA: grau máximo
Autor
N
autor1
escreve
escreve
M
Livro
livro1
autor2
livro2
autor3
livro3
autor4
autor5
livro4
livro5
Introdução à Manipulação de Dados
39
DEA: grau mínimo
Uma entidade pode ou não participar numa associação.
•
Obrigatória: não existe nenhuma ocorrência que não esteja
associada a uma ocorrência da outra entidade.
•
Opcional: pode haver ocorrências que não estejam associadas a
ocorrências na outra entidade.
A obrigatoriedade de ocorrência da entidade está relacionada com o
grau mínimo da associação.
O estudo do grau mínimo não invalida o do grau máximo,
complementa-o.
Introdução à Manipulação de Dados
40
DEA: grau mínimo
O grau mínimo define o número mínimo de vezes que uma instância
de uma entidade pode ocorrer na associação.
Se é zero diz-se opcional,
se é um diz-se obrigatória.
Exemplo:
Médico
•
é médico
de família
Doente
Médico é opcional:
Um doente pode não ter médico de família
•
Doente é opcional:
Um médico pode não ser médico de família de nenhum doente
Introdução à Manipulação de Dados
41
DEA: grau mínimo
Exemplo:
Cliente
•
tem
Carta de
condução
Carta de condução é opcional:
Um dado cliente pode não ter carta de condução
•
Cliente é obrigatório:
Uma carta de condução pertence no mínimo a um cliente
Introdução à Manipulação de Dados
42
DEA: grau mínimo
Exemplo:
Autor
•
escreve
Livro
Autor é obrigatório:
Um autor escreve no mínimo um livro
•
Livro é obrigatório:
Todo o livro é escrito no mínimo por um autor
Introdução à Manipulação de Dados
43
DEA: graus máximo e mínimo
Exemplo:
Cliente
1
tem
1
Carta de
condução
•
Um dado cliente pode não ter carta de condução e tem no
máximo uma carta de condução.
•
Uma carta de condução pertence a um e um só cliente.
Introdução à Manipulação de Dados
44
DEA: entidade associativa
Uma associação com atributos próprios.
Fornecedor
fornece
Produto
A associação acima para além de indicar:
- quais os fornecedores de um produto e
- quais os produtos fornecidos por um fornecedor,
poderá também conter
- a quantidade de produto fornecida  entidade associativa
Produto
Fornecedor
fornecimento
Introdução à Manipulação de Dados
45
Construção do DEA
1. Identificar as entidades
2. Identificar associações entre entidades
3. Identificar os atributos identificadores e os atributos descritores
de cada entidade
4. Completar os graus máximos e mínimos das associações
5. Inserir a descrição das entidades e associações no dicionário de
dados.
Introdução à Manipulação de Dados
46
Dicionário de dados
O dicionário de dados é uma ferramenta que permite descrever,
com algum rigor, os elementos de dados do sistema.
A definição de um elemento de dados inclui:

a composição do elemento, caso seja composto por outros
elementos, ou os valores que esse elemento pode tomar,
caso seja atómico;

o significado do elemento, apresentado em comentários.
O dicionário de dados é uma ferramenta textual de apoio à análise e
desenho.
Introdução à Manipulação de Dados
47
Dicionário de dados
Um elemento atómico é aquele cuja decomposição não faz sentido no
contexto do sistema.
Em certos casos é necessário acordar com o utilizador se um elemento
de informação é atómico ou necessita de uma maior decomposição.
Por exemplo, o termo nome pode ser decomposto em nome_próprio
e apelido. Mas em determinados sistemas essa decomposição pode
não ser necessária, relevante, nem mesmo significativa.
Muitas vezes o significado dos elementos atómicos é óbvio. Neste
caso, não é necessário especificá-lo.
Exemplo: data de nascimento, nº de telemóvel.
Pode no entanto se necessário especificar os valores que esse
elemento pode tomar ou as suas unidades de medida.
Exemplo: altura = **
*unidades: cm; intervalo: 150-210*
Introdução à Manipulação de Dados
48
Dicionário de dados
Notação:
=
é composto de
+
e
()
opcional
LimInf{}LimSup
iteração ou conjunto
[]
alternativa
**
comentários
@
identificador (chave) de um depósito de
dados e entidade
|
separador de opções alternativas na
construção [ ]
Introdução à Manipulação de Dados
49
Dicionário de dados
Exemplo:
Filmes = {Filme}
Filme = @código_filme + nome + realizador + (actor principal) +
situação
situação = [“alugado” | “disponível”]
* indica se o filme está alugado ou se está disponível *
Introdução à Manipulação de Dados
50
Exemplo: gerir a ocupação de um hotel
Construa o modelo de dados do sistema de gestão de ocupação de um
hotel descrito abaixo:
Clientes = {Cliente}
Cliente = @BI + nome + morada + data_nasc + (telefone)
Reservas = {Reserva + n_quarto + BI}
Reserva = @id_reserva + dias_reservados + data_chegada + hora_chegada
Quartos = {Quarto}
Quarto = @n_quarto + n_camas + situação + categoria + preço + descrição
Facturas_pendentes = {Factura_pendente + id_reserva + BI}
Factura_pendente = @n_factura + data + valor_total
Pedidos_despertar = {Pedido_despertar + n_quarto}
Pedido_despertar = @n_pedido + data + hora
Situação = [arrumado | ocupado | livre | em reparação]
Introdução à Manipulação de Dados
51
Exemplo
1
Cliente
efectua
1
Reserva
1
pertence
N
N
N
refere-se
1
Factura
pendente
1
corresponde
Quarto
1
faz
N
Pedido
despertar
Introdução à Manipulação de Dados
52
Download

Parte 1 - Departamento de Informática