MODELAGEM DE DADOS UNIDADE 1 – Visão Geral Luiz Leão – [email protected] http://www.luizleao.com MODELAGEM DE DADOS Conteúdo Programático • • • • • • • • 1.1 Visão geral: Banco de dados 1.2 Dados versus informação 1.3 Classificando os bancos de dados 1.4 Sistemas de Arquivos 1.5 SGBD (Sistema de Gerenciamento de Banco de Dados) 1.6 Os Usuários de Banco de Dados 1.7 O SGBD e suas Funcionalidades 1.8 Vantagens do SGBD UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Evolução Histórica dos Bancos de Dados • Final da década de 60 IBM, ORACLE e SYBASE • Sistemas de Gerenciamento de Arquivos (SGA): – Características – Dificuldades – Desvantagens UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Evolução Histórica dos Bancos de Dados • Anos 80 SGBD (Sistema de Gerenciamento de Banco de Dados • Componentes de um SGBD: – Programas de Aplicações/Consultas – Sistema Gerenciador de Banco de Dados(SGBD) – Base de Dados UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS SGA x SGBD UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Usuários de Banco de Dados • Analistas de Sistemas: Fornecem a estrutura dos dados através dos requisitos; • Programadores de Aplicações: Programam a aplicação com base nesses dados; • Administradores de Bancos de Dados (DBA): Gerenciam os dados através do SGBD; UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Conceitos Básicos • Dados: Fatos que podem ser gravados e possuem um significado implícito. • Banco de Dados: Projetado, construído e composto por um conjunto de dados para um propósito específico. • Metadados: Dados que descrevem os próprios dados. Representam a estrutura na qual os dados serão organizados. UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Dados vs Informação • Dado: É uma sequência de símbolos ou valores, representados em algum meio, produzidos como resultado de um processo natural ou artificial. • Informação: É um conjunto de dados aos quais seres humanos deram forma para torná-los significativos e úteis. Pode ser entendida como dados organizados, dotados de relevância! • Ex.: - Quantidade de vendas por produto; - Total de vendas mensais; - Total de alunos matriculados no período . UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS SGBD e Suas Funcionalidades • • • • • Métodos de acesso Integridade Semântica Segurança Concorrência Independência UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Métodos de acesso • DDL (Data Definition Language) – Especificação do esquema do BD (dados e seus tipos de dados, índices, ...) • DML (Data Manipulation Language) – Manipulação de dados (I, A, E, C) • Processamento eficaz de consultas – Considera relacionamentos, predicados de seleção, volume de dados, índices, ... – Exemplo: buscar professores que lecionam em turmas lotadas em salas do quarto andar UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Métodos de acesso UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Integridade Semântica • Garantia de dados sempre corretos com relação ao domínio de aplicação • Exemplos – Estados válidos para os dados (I sexo; A salário) – relacionamentos válidos entre os dados (turma N:1 disciplina; apenas professores doutores lecionam disciplinas de pós-graduação) • Especificação de RIs – Testes, ações – Parte integrante da DDL UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Segurança • Evitar violação de consistência dos dados • Segurança de acesso (usuários e aplicações) – Matrizes de autorização – Visões • Segurança contra falhas (recovery): – Monitoração de transações • Transação: – Conjunto de operações a serem realizadas no BD – Princípio do “tudo ou nada” – Categorias de falhas • Transação, sistema e meio de armazenamento – Manutenção de histórico de atualizações (logs) e backups do BD UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Segurança • Exemplo de Registros Históricos UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Concorrência • Evitar conflitos de acesso simultâneo a dados por transações (scheduler) • Principais técnicas – bloqueio (lock) e timestamp UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Independência • Transparência da organização dos dados • Níveis de independência – Independência Física: • Transparência de organização (esquema) física dos dados • Exemplos: organização dos arquivos, indexação, distribuição, agrupamento – Independência Lógica: • Transparência do esquema lógico do BD • Exemplo: visões (vários esquemas externos) UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Independência • Níveis de independência (níveis de abstração) – Definem uma arquitetura de três esquemas UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Vantagens do SGBD • 1. Independência entre programa e dados: • Em sistemas que utilizam sistema de arquivos, a definição das estruturas de dados é feita dentro do programa (como em C, Pascal, Java). • Ao contrario, SGBDs mantem um catalogo (ou dicionário de dados) que consiste de metadados, ou seja, dados sobre os dados. Assim, quando a estrutura dos dados é alterada isso não implica na alteração dos programas que fazem a manipulação dos dados. UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Vantagens do SGBD • 2. Independência entre operação e programa: • Em SGBDs OO e relacional/objeto, funções/procedimentos para manipulação dos dados armazenados também fazem parte do BD. • Estes procedimentos escondem os detalhes sobre armazenamento e implementação, que não são de interesse da maior parte dos usuários de bancos de dados. Isto é chamado de abstração de dados. • Mantendo a interface destas funções inalterada, os programas que as utilizam não precisam ser alterados quando a implementação interna da função muda. Isto é chamado de independência entre operação e programa. UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Vantagens do SGBD • 3. Controle de acesso mais especializado • 4. Suporte a Visões:Um mesmo conjunto de dados pode ser apresentado a usuários diferentes de forma distinta. Ex: visão do cliente do banco, visão do gerente • 5. Controle de Redundância: Desvantagens da redundância de dados: espaço de armazenamento desperdiçado, inconsistência de dados. UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Vantagens do SGBD • 6. Compartilhamento de Dados e Transações: Exemplo: – Caixa quer descontar um cheque de R$ 100 do cliente X – Cliente X: quer sacar R$ 50 do caixa eletrônico Se o saldo atual de X no banco é R$ 500, qual o saldo final no final destas duas transações? • 7. Armazenamento Persistente para Objetos de Programas e Estruturas de Dados UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Vantagens do SGBD • 8. Fornecimento de Interfaces Múltiplas do Usuário: – – – – – – Baseadas em menus Baseadas em formulários Gráficas De linguagem natural Para usuários leigos (específicos para uma aplicação) Para o DBA (criar contas, ajustar param do sistema, conceder autorizações, modificar um esquema, reorganizar as estruturas de armazenamento, etc.) UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Vantagens do SGBD • 9. Imposição de restrições de integridade: Ex: – Restrições de tipo: saldo do tipo real – Unicidade: não existe mais de cliente com o mesmo CPF – Integridade de referência: toda transação deve ser de uma CC existente. • 10. Facilidades de Cópia e Recuperação: UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Vantagens do SGBD • Algumas vantagens adicionais: – – – – – Potencial para impor padrões Tempo reduzido para o desenvolvimento de aplicações Flexibilidade Disponibilidade de info. atualizadas para todos os usuários Economias de escala UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Classificação dos Banco de Dados quanto ao modelo de dados • Sistema de Arquivos (SA); • Banco de Dados Hierárquico; • Banco de Dados em Rede; • Banco de Dados Relacional; • Bancos de Dados Orientados a Objetos; UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Sistema de Arquivos (SA) • Primeiro modelo de banco de dados; • Dados são registros de tamanho fixo; • Poucas consultas pré-definidas. Em geral, buscas por igualdade de campo dos registros; • Muito limitado comparando a modelos atuais; UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Banco de Dados Hierárquico • IMS - Information Management System: desenvolvido pela IBM e pela Rockwell no fim da década de 1960 para ambientes de grande porte (OS/VS1, OS/VS2, MVS, MVS/XA e ESA) – Os famosos Mainframe; • Utiliza a organização de endereços físicos do disco na sua estrutura • Baseado em dois conceitos fundamentais: registros e relacionamentos pai-filho • Um registro "pai" pode se corresponder com vários registros do lado "filho" UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Bancos de Dados em Rede • Definidos pelo DBTG (Data Base Task Group) do comitê do CODASYL (Conference on Data Systems Language) a partir de 1971 • Permitem que um mesmo registro participe de vários relacionamentos devido à eliminação da hierarquia • Os comandos de manipulação de registros devem ser incorporados a uma linguagem hospedeira (COBOL, a mais comum, Pascal e FORTRAN) • Estruturas fundamentais: registros (records) e conjuntos (sets) • Registros contêm dados relacionados e são agrupados em tipos de registros que armazenam os mesmos tipos de informações UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Bancos de Dados Relacionais • A maioria dos SGBDs atualmente em uso se enquadra no tipo relacional • Princípios básicos formulados por Edgard F. Codd em 1968 baseados na teoria dos conjuntos e da álgebra relacional • Em 1985, Codd propôs um conjunto de doze regras para que um banco de dados fosse considerado como relacional • Organiza os dados em tabelas (relações) formadas por linhas e colunas • Tabelas são similares a conjuntos de elementos: relacionam as informações de um mesmo assunto de um modo organizado UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Bancos de Dados Orientados a Objetos • Surgiram em meados de 1980 para armazenamento de dados complexos, não adequados aos sistemas relacionais: GIS (Geographical Information System) e CAD/CAM/CAE • O modelo é caracterizado pela definição de objetos com suas propriedades e operações • O OMDG (Object Database Management Group) definiu um padrão de estrutura para bancos de dados orientados a objetos • O grupo propôs um padrão conhecido como ODMG-93, atualmente revisado e denomidado ODMG 2.0 • Linguagens: ODL (Object Definition Language) e OQL (Object Query Language) UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Classificação dos Banco de Dados quanto ao número de usuários • Bancos de Dados Monousuários; • Bancos de Dados Multiusuários; UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Classificação Quanto ao número de usuários • Bancos de Dados Monousuários; • Bancos de Dados Multiusuários; UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Classificação Quanto a Localização • Bancos de Dados Centralizados; • Bancos de Dados Distribuídos; UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) MODELAGEM DE DADOS Bancos de Dados Heterogêneos • Tendência que vem crescendo muito atualmente: distribuir na arquitetura de SGBDs vários bancos de dados de fornecedores diferentes UNIDADE 1 – Visão Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD)