520 likes | 652 Views
Introdução à Manipulação de Dados Teresa Romão tir@di.uevora.pt www.di.uevora.pt/~tir/IMD/IMD.htm Departamento de Informática Universidade de Évora 2005/2006. Funcionamento da disciplina. Duração: 7 semanas Aulas teórico-práticas: apresentação da matéria
E N D
Introdução à Manipulação de Dados Teresa Romão tir@di.uevora.pt www.di.uevora.pt/~tir/IMD/IMD.htm Departamento de Informática Universidade de Évora 2005/2006
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
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
Avaliação • 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). • O aluno pode obter a nota teórica de duas formas possíveis: • Teste • Exame • Nota mínima exigida: 8 valores • A nota final é dada pela fórmula: • Nota final = 75%nota_teórica+25%nota_prática
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 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.
Esquema externo/Vista 1 Esquema externo/Vista 2 Esquema externo/Vista 3 Nível conceptual-lógico Nível físico Disco Níveis de abstracção de um SGBD
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
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...
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
30 23 8 Régua Lápis Papel 1 26 18 Silva Pereira Produto Nome Quantidade 10 Cola 3 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.
8 10 23 8 30 23 Cola Papel Lápis Papel Régua Lápis 10 3 6 8 1 20 Silva Pereira Produto Nome Quantidade Modelo de dados hierárquico • Difere do Modelo de Rede: os registos estão organizados em conjuntos de árvores (em vez de grafos).
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
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.
Nº de cliente Nº de cliente Nº de produto Nome Designação Nº de produto Quantidade 6 6 Silva 8 10 8 Papel 14 14 Pereira 10 3 10 Cola 6 35 Santos 23 6 23 Lápis Compras 40 6 Martins 30 1 Clientes Produtos 30 Régua 14 8 8 35 10 2 40 30 3 14 23 20 Modelo Relacional • Três tabelas: Clientes, Produtos e Compras • A tabela Compras estabelece a relação entre clientes e produtos
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
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
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
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.
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.
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
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.
fornece Marcação DEA: componentes • Entidades • Associações • Entidades associativas Cliente Livro
DEA: estrutura entidades associações entidade associativa
Substantivo no singular DEA: entidades Uma entidade representa qualquer coisa (objecto, conceito, facto) do mundo real sobre a qualo 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:
DEA: entidades • Exemplo 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: 2834 • nome: João Santos • morada: Évora • data_nascimento: 28/4/1972 • n_BI: 8256394 Aluno
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
DEA: associações • Exemplo de associação: • Aluno está inscrito em disciplina • Discplina pertence a curso Disciplina Aluno está inscrito Curso Disciplina pertence Por defeito, todas as associações são bidireccionais.
DEA: associações Associações múltiplas entre as mesmas entidades: Disciplina Docente lecciona é regente
DEA: associações • Tipos 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. Pessoa é pai Curso Disciplina pertence Produto Cliente compra Fornecedor
DEA: associações Uma associação complexa pode reduzir-se a várias associações binárias. Exemplo: Produto Cliente compra Fornecedor Associação complexa Produto Cliente Compra faz é para fornecida Associações binárias Fornecedor
DEA: associações Instância de uma associação: Representa uma ocorrência de uma ligação (entre ocorrências de entidades). Exemplo: Departamento Empregado trabalha Instâncias Instâncias Instância de Empregado de Trabalha de Departamento E1 D1 E2 D2 E3 D3 E4 4 instâncias de Empregado 3 instâncias de Departamento 4 instâncias da associação Trabalha
Livro Editora publica DEA: cardinalidade das associações • 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.
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: • 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
Carta de condução Cliente tem 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 1 1
Garagem Apartamento tem 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 1 N
Garagem Apartamento tem DEA: grau máximo 1 N tem apartamento1 garagem1 apartamento2 garagem2 apartamento3 garagem3 garagem4
Livro Autor escreve 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 N M
Livro Autor escreve DEA: grau máximo N M escreve autor1 livro1 autor2 livro2 autor3 livro3 autor4 livro4 autor5 livro5
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.
Doente Médico 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 é 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 é médico de família
Carta de condução Cliente tem 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
Livro Autor escreve 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
Carta de condução Cliente tem DEA: graus máximo e mínimo • 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. 1 1
Produto Fornecedor fornece DEA: entidade associativa Uma associação com atributos próprios. • 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
Construção do DEA • Identificar as entidades • Identificar associações entre entidades • Identificar os atributos identificadores e os atributos descritores de cada entidade • Completar os graus máximos e mínimos das associações • Inserir a descrição das entidades e associações no dicionário de dados.
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.
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*
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 [ ]
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 *