Introdução à Manipulação de Dados 1
Introdução à Manipulação de Dados
Teresa Romã[email protected]
www.di.uevora.pt/~tir/IMD/IMD.htm
Departamento de InformáticaUniversidade de Évora
2005/2006
Introdução à Manipulação de Dados 2
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 3
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 4
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 5
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 6
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 7
Níveis de abstracção de um SGBD
Disco
Nível físico
Nível conceptual-lógico
Esquema externo/Vista 1 Esquema externo/Vista 2 Esquema externo/Vista 3
Introdução à Manipulação de Dados 8
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 9
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 10
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 11
Modelo de dados em Rede
Produto
Nome
Quantidade
30 23 8
Régua Lápis Papel
1 26 18
Silva Pereira
10
Cola
3
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.
Introdução à Manipulação de Dados 12
Modelo de dados hierárquico
Difere do Modelo de Rede: os registos estão organizados em conjuntos de árvores (em vez de grafos).
Produto
Nome
Quantidade
8 23 30
Papel Lápis Régua
10 6 1
10 8 23
Cola Papel Lápis
3 8 20
Silva Pereira
Introdução à Manipulação de Dados 13
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 14
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 15
Modelo Relacional
Três tabelas: Clientes, Produtos e Compras A tabela Compras estabelece a relação entre clientes e produtos
Nº de cliente
Nome
6 Silva
14 Pereira
35 Santos
40 Martins
Nº de produto
Designação
8 Papel
10 Cola
23 Lápis
30 Régua
Nº de cliente
Nº de produto
Quantidade
6 8 10
14 10 3
6 23 6
6 30 1
14 8 8
35 10 2
40 30 3
14 23 20
Clientes Produtos Compras
Introdução à Manipulação de Dados 16
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”)
Nº de cliente
Nome
6 Silva
14 Pereira
35 Santos
40 Martins
Clientes
Introdução à Manipulação de Dados 17
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 18
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 19
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 20
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 21
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 22
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 23
DEA: componentes
• Entidades
• Associações
• Entidades associativas
Cliente Livro
fornece
Marcação
Introdução à Manipulação de Dados 24
DEA: estrutura
associações
entidades
entidade associativa
Introdução à Manipulação de Dados 25
DEA: entidades
Cada entidade é definida por:
Uma entidade representa qualquer coisa (objecto, conceito, facto) do mundo real sobre a qual o sistema deve guardar informação.
Substantivo no singular
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 26
DEA: entidadesExemplo de entidade:
• Atributo identificador:
número_de_aluno
• Atributos descritores:
nome, morada, telefone, data_nascimento, n_BI
Exemplo de instância:número_de_aluno: 2834nome: João Santosmorada: Évoradata_nascimento: 28/4/1972n_BI: 8256394
Aluno
Introdução à Manipulação de Dados 27
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 28
DEA: associaçõesExemplo de associação:
• Aluno está inscrito em disciplina
• Discplina pertence a curso
Por defeito, todas as associações são bidireccionais.
DisciplinaAluno
CursopertenceDisciplina
está inscrito
Introdução à Manipulação de Dados 29
DEA: associações
Associações múltiplas entre as mesmas entidades:
DisciplinaleccionaDocente
é regente
Introdução à Manipulação de Dados 30
DEA: associaçõesTipos de associação:
• Unária: relação entre uma entidade e ela própria.
• Binária: relação entre duas entidades.
• Complexas: relação entre três ou mais entidades.
CursopertenceDisciplina
ProdutocompraCliente
Fornecedor
Pessoaé pai
Introdução à Manipulação de Dados 31
DEA: associaçõesUma associação complexa pode reduzir-se a várias associações binárias.
Exemplo:
ProdutocompraCliente
Fornecedor
ProdutofazCliente
Fornecedor
Associação complexa
Compra é para
fornecida
Associações binárias
Introdução à Manipulação de Dados 32
DEA: associaçõesInstância de uma associação:
DepartamentotrabalhaEmpregado
Representa uma ocorrência de uma ligação (entre ocorrências de entidades).
Exemplo:
Instâncias Instâncias Instânciade Empregado de Trabalha de Departamento
E1 D1E2 D2E3 D3E4
4 instâncias de Empregado3 instâncias de Departamento4 instâncias da associação Trabalha
Introdução à Manipulação de Dados 33
DEA: cardinalidade das associações
LivropublicaEditora
• 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 34
DEA: cardinalidade das associações
• O grau máximo (restrição de cardinalidade) de uma associação pode ser:
• O grau mínimo (restrição de participação) de uma associação pode ser:
• 1 : 1• 1 : N• N : M
• 0 : 0• 0 : 1• 1 : 1
A cardinalidade define os graus máximo e mínimo de uma associação.
Introdução à Manipulação de Dados 35
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:
• 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
Carta de conduçãotemCliente
11
Introdução à Manipulação de Dados 36
DEA: grau máximo
Exemplo:
• 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
GaragemtemApartamento1 N
Introdução à Manipulação de Dados 37
DEA: grau máximo
GaragemtemApartamento1 N
apartamento1 garagem1
apartamento2 garagem2
apartamento3 garagem3
garagem4
tem
Introdução à Manipulação de Dados 38
DEA: grau máximo
Exemplo:
• 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
LivroescreveAutorN M
Introdução à Manipulação de Dados 39
DEA: grau máximo
LivroescreveAutorN M
autor1 livro1
autor2 livro2
autor3 livro3
autor4 livro4
autor5 livro5
escreve
Introdução à Manipulação de Dados 40
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 41
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.
Exemplo:
• 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
DoenteMédicoé médico de família
Se é zero diz-se opcional, se é um diz-se obrigatória.
Introdução à Manipulação de Dados 42
DEA: grau mínimo
Exemplo:
• 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
Carta de conduçãotemCliente
Introdução à Manipulação de Dados 43
DEA: grau mínimo
Exemplo:
• Autor é obrigatório:
Um autor escreve no mínimo um livro
• Livro é obrigatório:
Todo o livro é escrito no mínimo por um autor
LivroescreveAutor
Introdução à Manipulação de Dados 44
Exemplo:
• 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.
DEA: graus máximo e mínimo
Carta de conduçãotemCliente
11
Introdução à Manipulação de Dados 45
DEA: entidade associativa
ProdutoforneceFornecedor
Uma associação com atributos próprios.
ProdutoFornecedor
fornecimento
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
Introdução à Manipulação de Dados 46
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 47
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 48
Dicionário de dadosUm 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 49
Dicionário de dadosNotaçã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 50
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 51
Exemplo: gerir a ocupação de um hotelConstrua 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 52
Exemplo
Cliente Reserva
QuartoFactura pendente
Pedido despertar
N1
1
1
1
N
N
N
faz
efectua
refere-sepertence
corresponde
1
1