Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à modelagem de dados Banco de dados 1 Fabrício Nogueira fabricio.silva@uva.br Relembrando • Coleção de dados relacionados • Representação digital dos dados do mundo real • Grandes volumes de dados e suas relações complexas justificam a criação de estratégias específicas para gerenciá-los Banco de dados Relembrando • Arquivos X SGBDs • Diminui o tempo de desenvolvimento de aplicações • Tratamento de grande volume de informação • Mecanismo padrão para obtenção dos dados • Compartilhamento para múltiplos usuários • Controle de concorrência • Mecanismos de recuperação de falhas Por que usar SGBD? • Redução do tempo de desenvolvimento • Consistência de dados • Controle de concorrência • Recuperação de falhas Aplicações tradicionais • Bancos de dados numéricos e textuais • Exemplos • Gerenciamento de vendas de uma farmácia • Gerenciamento de uma loja de tintas • Sistema bibliotecário • Sistema bancário Aplicações mais recentes • Multimídia • Sistemas de Informação Geográfica (GIS) • Data Warehouses Relacionamentos • Data Mining • Data Warehousing • Information Retrieval • Distributed and Parallel Databases • Big Data • NoSQL • Ontologias e Web Semântica Conceitos • Modelo de dados • Coleção de conceitos para descrever dados • Estrutura para representação de dados • Ex.: Modelo relacional tabelas e atributos • Esquema • Descreve a coleção de dados que está sendo modelada pelo modelo de dados • Tipo de modelo de dados sendo utilizado • Relacional Relações (tabelas) e esquema Níveis de abstração dos dados Nível semântico Nível lógico Nível físico Base de dados Modelagem do universo de discurso • Modelo Entidade-Relacionamento (ER) • Padrão para modelagem conceitual • Criado por Peter Chen em 1976 • Entidade • Objeto do universo • Identificável distintamente • Existência independente Pessoa Livro Departamento de uma empresa Categoria de um livro Modelagem do universo de discurso • Modelo Orientado a Objetos (OO) • Simula 67 • Primeira linguagem Orienta a Objetos • Smalltalk • Projeto Dynabook • Objeto • Objeto do universo • Identificável distintamente • Existência independente Pessoa Livro Departamento de uma empresa Categoria de um livro Níveis de abstração dos dados • Nível semântico • Alto nível de representação de dados • Relação direta com a forma como os usuários percebem os dados • Entidades ou Objetos • Nível lógico (ou conceitual) • Dependente do SGBD • Estruturas de representação do SGBD • Nível físico • Interno ao SGBD • Armazenamento • Sistema operacional Modelos lógicos de dados • Modelo relacional • Modelo Hierárquico • Modelo em Rede • Modelo Orientado a Objetos • Modelo Objeto-relacional • NoSQL Modelos lógicos de dados Estruturas 1 Operações 2 Restrições 3 Modelos lógicos de dados Estruturas = tabelas 1 Operações= Álgebra relacional 2 Restrições 3 DuplicidadeReferencial Modelos lógicos de dados Estruturas 1 Operações 2 Restrições 3 Modelos lógicos de dados Estruturas = classes 1 Operações = Álgebra, métodos 2 Restrições 3 Objetos com identificação nula Independência de dados • Sistema de arquivos Esquema no código fonte do programa • Definição dos dados + representação interna de armazenamento + métodos de acesso • Independência lógica dos dados • Mudanças no nível lógico não afetam o nível físico e nem conceitual • Ex.: Inclusão de novos atributos numa tabela • Independência física dos dados • Alterações no nível físico não afetam o nível conceitual e nem o nível lógico • Ex.: Alteração do método de busca dos dados Independência de dados • Nível externo (visões) • Garante a independência dando a diferentes usuários dos dados, diferentes possibilidades de visões • Ex.: • Professor Nome, CPF, Disciplina • Professor Nome, Endereço, Filiação, RG Níveis de esquema no SGBD • Nível externo • Dados • Nível lógico • Entidades e atributos • Nível físico • Índices • Número de bytes Nível físico Nível lógico Visão Visão Visão Níveis de esquema no SGBD Exemplo: Base de dados de peças de computador Produto Tipo de produto 1N Código Nome Preço Código Nome Exemplo: Base de dados de peças de computador Produto codigo nome preco codigo_tipo 1 HP 500 R$ 600 1 2 Sony Vaio R$ 2000 2 3 Dell R$ 1900 2 Tipo de produto Codigo Nome 1 Impressora 2 Notebook Exemplo: Base de dados de peças de computador • Esquema lógico • Produto (codigo, nome, preço, cod_tipo) • Tipo_Produto(codigo, nome) • Cod_tipo da tabela Produto referencia o atributo codigo em Tipo_Produto • Esquema físico • Tabelas acessadas em arquivo de acesso sequencial • Criação de índice usando a coluna código em Tipo_Produto • Esquema de visões (externo) • Aplicação de cotações de produtos só acessa código e preço de produto • Aplicação de tipo de produto só acessa código e descrição Exemplo: Loja de tintas Serviço Cliente Empresa 1 N 1 N Um cliente solicita um serviço da loja de tintas. Uma empresa pode recomendar vários clientes para a loja de tintas. Exemplo: Loja de tintas • Esquema lógico • Cliente (código, nome, endereço, telefone, cpf, código_empresa, código_serviço) • Empresa (código, nome, endereço, cnpj) • Serviço (código, tipo, descrição, valor) • Esquema físico • Arquivos sequenciais • Índices por cpf, cnpj • Esquema externo • Mala direta: Nome do cliente, telefone e endereço (cliente_mala_direta) • Pagamentos: Nom do cliente, cpf, tipo, serviço, valor (cliente_serviços)
Compartilhar