Bases de Dados e Sistemas de Informação José Júlio Alferes Seminários de Informática 05/06 Sumário O que são Bases de Dados: Sistemas de Gestão de Bases de Dados Exemplos de aplicação Modelos de dados Linguagens de Definição e de Manipulação de Dados Utilizadores de Bases de Dados Componentes de um Sistema de Bases de dados Mais sobre Sistemas de Informação: Data Warehousing (armazéns de dados) Data Mining Sistemas de Informação para a Web Seminários de Informática 04/05 2 Bases de Dados e Sistemas de Informação Sistemas de Gestão de Bases de Dados (SGBDs) Colecção de dados inter-relacionados (Base de Dados) Conjunto de programas para aceder aos dados São normalmente usados para gerir grandes quantidades de informação Devem fornecer um ambiente de utilização conveniente e eficiente. P3 P1 ... Pn P2 Seminários de Informática 04/05 3 Bases de Dados e Sistemas de Informação Exemplos de Aplicação Banca: todas as transacções e movimentos Companhias aéreas: reservas, horários Universidades: inscrições, notas Vendas: clientes, produtos, compras Indústria: produção, inventário, pedidos, cadeia de fornecimento Recursos humanos: registos dos empregados, salários, impostos ... Seminários de Informática 04/05 4 Bases de Dados e Sistemas de Informação Exemplo de uso de SGBD Um banco quer guardar a informação dos seus clientes. Precisa depois de programas para: Fazer débitos e créditos numa conta Abrir e fechar contas Ver saldos duma conta Fazer extractos periódicos das contas Como guardar a informação ? Uma conta pode ter vários clientes e um cliente várias contas! Não podem haver saldos negativos! Seminários de Informática 04/05 5 Bases de Dados e Sistemas de Informação Os SGBDs devem: Evitar redundâncias Facilitar o acesso aos dados Permitir acesso simultâneo à informação Garantir a segurança dos dados Garantir a integridade da informação de acordo com restrições pré-definidas Permitir vários níveis de abstracção Seminários de Informática 04/05 6 Bases de Dados e Sistemas de Informação Vantagens do uso de SGBD Dados centralizados versus por programas redundância dificuldades em garantir integridade Como garantir, por exemplo, que não há contas negativas? uniformidade na segurança e acesso simultâneo Seminários de Informática 04/05 7 Bases de Dados e Sistemas de Informação Funções de um SGBD Inconvenientes dos sistemas de ficheiros no armazenamento de dados: Redundância e inconsistência de dados Múltiplos formatos, duplicação de informação em ficheiros diferentes Dificuldades no acesso aos dados Necessidade de escrever um novo programa para efectuar uma nova tarefa Isolamento de dados — múltiplos ficheiros e formatos Problemas de integridade Restrições de integridade (e.g. saldo da conta> 0) estão incluídas no código dos programas Difícil alterar ou adicionar novas restrições Seminários de Informática 04/05 8 Bases de Dados e Sistemas de Informação Funções de um SGBD (Cont.) Inconvenientes dos sistemas de ficheiros (cont.) Atomicidade das alterações Falhas podem colocar a base de dados num estado inconsistente com alterações parciais já efectuadas. E.g. transferência de dinheiro de uma conta para outra ou deve ser totalmente realizada ou nenhuma alteração deve ser efectuada Acessos concorrentes por diversos utilizadores Acessos concorrentes necessários por motivos de eficiência Os acessos concorrentes não controlados podem originar inconsistências E.g. duas pessoas a consultarem um saldo e a alterá-lo ao mesmo tempo Problemas de segurança Os sistemas de Bases de Dados pretendem oferecer soluções para todos estes problemas. Seminários de Informática 04/05 9 Bases de Dados e Sistemas de Informação Níveis de Abstracção Nível físico: descreve como um registo (e.g., cliente) é armazenado. Nível lógico: descreve os dados armazenados na base de dados, assim como as relações entre os dados. Nível das vistas: as aplicações ocultam os detalhes dos tipos de dados. As vistas também podem esconder informação (e.g., salário) por motivos de segurança. Seminários de Informática 04/05 10 Bases de Dados e Sistemas de Informação Modelos de Dados Ferramentas ( formais) para descrever: os vários tipos de dados as relações entre eles o seu significado as restrições de integridade Modelo Entidade-Associação (ER – Entity Relationship) Modelo Relacional Outros modelos: Modelo orientado para objectos Modelos de dados semi-estruturados Modelo hierárquico Modelo em rede Seminários de Informática 04/05 11 Bases de Dados e Sistemas de Informação Instâncias e Esquemas Instância de base de dados: Informação armazenada num dado momento Esquema de dados: Design genérico da base de dados Independência física dos dados – a capacidade de modificar o esquema físico sem alterar o esquema lógico As aplicações dependem do esquema lógico Em geral, as interfaces entre os vários níveis e componentes devem estar bem definidas de modo a que alterações numa parte não influenciem grandemente outras partes. Independência lógica dos dados – a capacidade de modificar o esquema conceptual sem necessidade de mudar os programas Seminários de Informática 04/05 12 Bases de Dados e Sistemas de Informação Modelo ER Exemplo de um esquema no modelo ER Seminários de Informática 04/05 13 Bases de Dados e Sistemas de Informação Modelo ER (Cont.) Modelização ER do mundo Entidades (objectos) E.g. customers, accounts, bank branch Associações entre entidades E.g., a conta A-101 pertence ao cliente Johnson O conjunto de associações depositante associa clientes a contas Amplamente utilizado no desenho de bases de dados O desenho de base de dados no modelo ER é normalmente convertido para o desenho no modelo relacional (a seguir) que é utilizado para processamento e armazenamento Seminários de Informática 04/05 14 Bases de Dados e Sistemas de Informação Modelo Relacional Atributos Exemplo de conjunto de dados no modelo relacional Customerid customername 192-83-7465 Johnson 019-28-3746 Smith 192-83-7465 Johnson 321-12-3123 Jones 019-28-3746 Smith Seminários de Informática 04/05 customerstreet customercity accountnumber Alma Palo Alto A-101 North Rye A-215 Alma Palo Alto A-201 Main Harrison A-217 North Rye A-201 15 Bases de Dados e Sistemas de Informação Exemplo de Base de Dados Relacional Seminários de Informática 04/05 16 Bases de Dados e Sistemas de Informação Modelo Relacional Modelização Relacional Os dados encontram-se em relações (ou tabelas) Cada tabela tem um conjunto de atributos (colunas) cada uma das quais com um domínio A informação é “armazenada" em linhas Podem estabelecer-se restrições sobre os dados Chaves Eg: Não podem haver duas linhas em customer com o mesmo customer-id Chaves Estrangeiras (que estabelecem relações entre tabelas) Eg: No atributo customer-id da tabela depositor só podem aparecer valores que também apareçam na tabela customer Utilizado na grande maioria dos actuais sistemas de gestão de bases de dados Seminários de Informática 04/05 17 Bases de Dados e Sistemas de Informação Linguagem de Definição de Dados (DDL) Especificação da notação para definição do esquema da base de dados E.g. create table account ( account-number balance primary key char(10), integer check (balance > 0), account-number) O compilador da DDL gera um conjunto de tabelas armazenadas num dicionário de dados. O dicionário de dados contém metadados (dados sobre dados) Esquema de bases de dados Linguagem de definição de dados e armazenamento Linguagem onde se especificam as estruturas de armazenamento e métodos de acesso utilizados pela base de dados Normalmente uma extensão da linguagem da definição de dados Seminários de Informática 04/05 18 Bases de Dados e Sistemas de Informação Ling. de Manipulação de Dados (DML) Linguagem para aceder e manipular os dados organizados de acordo com o respectivo modelo de dados A DML também é conhecida por linguagem de consulta Duas classes de linguagens Procedimental – o utilizador especifica quais os dados que se pretendem assim como obter os dados Declarativa – o utilizador especifica quais os dados pretendidos sem especificar a maneira como os obter A SQL é a linguagem de consulta mais utilizada. É uma linguagem declarativa. Seminários de Informática 04/05 19 Bases de Dados e Sistemas de Informação SQL SQL: linguagem não-procedimental (declarativa) de uso generalizado E.g. encontrar o nome de cliente com customer-id 192-83-7465 select customer.customer-name from customer where customer.customer-id = ‘192-83-7465’ E.g. procurar os saldos de todas as contas detidas pelo cliente com customer-id 192-83-7465 select account.balance from depositor, account where depositor.customer-id = ‘192-83-7465’ and depositor.account-number = account.account-number As aplicações geralmente acedem a bases de dados por intermédio de: Extensões às linguagens permitindo SQL embebido: Interface de aplicações (e.g. ODBC/JDBC) permitindo o envio de consultas SQL para a base de dados Seminários de Informática 04/05 20 Bases de Dados e Sistemas de Informação Utilizadores da Base de Dados Os utilizadores diferenciam-se pela forma esperada de interacção com o sistema Programadores de aplicações– interagem com o sistema através de chamadas DML Utilizadores sofisticados – constróem pedidos numa linguagem de consulta a bases de dados Utilizadores especializados – escrevem aplicações de bases de dados especializadas que não se enquadram com no espírito do processamento de dados tradicional Utilizadores – chamam uma das aplicações que foi construída previamente E.g. pessoas a acederem a uma base de dados através da Web, caixas, pessoal de secretariado Seminários de Informática 04/05 21 Bases de Dados e Sistemas de Informação Administrador da Base de Dados Coordena todas as actividades do sistema de base de dados; o administrador da base de dados compreende bem dos recursos e necessidades de informação da empresa. As funções do administrador de bases de dados incluem: Definição do esquema Definição dos métodos de acesso e estrutura de armazenamento Modificação do esquema e da organização física Dar aos utilizadores autorizações de acesso à base de dados Especificar restrições de integridade Servir de ligação entre os utilizadores Monitorar a performace e responder a alterações nos requisitos. Seminários de Informática 04/05 22 Bases de Dados e Sistemas de Informação Estrutura Genérica do Sistema Seminários de Informática 04/05 23 Bases de Dados e Sistemas de Informação Gestão de Transacções Uma transacção é um conjunto de operações que efectuam uma função lógica na aplicação de base de dados A componente de gestão de transacções garante que a base de dados se mantém num estado consistente (correcto) apesar de falhas no sistema (e.g., falta de energia eléctrica e paragens abruptas do sistema operativo) e de transacções falhadas. O gestor de controlo de concorrência coordena a interacção entre transacções concorrentes para garantir a consistência da base de dados. Seminários de Informática 04/05 24 Bases de Dados e Sistemas de Informação Gestão do Armazenamento O gestor do armazenamento é um módulo de programa que fornece uma interface entre os dados de baixo nível armazenados na base de dados e as aplicações e consultas submetidas ao sistema. O gestor de armazenamento é responsável pelas seguintes tarefas: interacção com o gestor de ficheiros armazenamento, recuperação e alteração eficientes dos dados Seminários de Informática 04/05 25 Bases de Dados e Sistemas de Informação Sistemas Operacionais Até aqui vimos sobretudo sistemas OLTP – On Line Transaction Processing Sistemas que suportam o dia a dia do negócio ou actividade de uma empresa ou instituição Exemplo: Se alguém compra um produto numa loja o sistema retira uma unidade desse produto do stock existente, emite uma factura. Se chegam novas unidades do produto o sistema actualiza o stock Características Milhares ou milhões de transações (SABRE - 4000 trans/s) Pequenas operações, repetidas e previsíveis Tempo real Seminários de Informática 04/05 26 Bases de Dados e Sistemas de Informação Sistemas Analíticos OLAP – On Line Analytical Processing Sistemas que permitem os utilizadores analisarem diferentes aspectos da actividade e desempenho da empresa Exemplo Como é que determinado produto se está a vender pelas diferentes regiões? Qual foi a evolução das suas vendas desde a sua introdução no mercado? Características de utilização Poucas interrogações (quando comparado com os sistemas OLTP) Grandes volumes de dados envolvidos em cada interrogação (para obter frequentemente um reduzido sumário) Grande variedade e pouca previsibilidade Consulta e exploração (não edição) Seminários de Informática 04/05 27 Bases de Dados e Sistemas de Informação Os Sistemas Operacionais são substancialmente diferentes dos Analíticos “The users of an OLTP system are running the wheels of the organization. The users of a data warehouse are watching the wheels of the organization” [Kimball] Diferentes sob vários aspectos [Kimball] Os utilizadores são diferentes O conteúdo é diferente As estruturas de dados são diferentes O Software é diferente O Hardware é muitas vezes diferente A sua administração é diferente A gestão de sistemas é diferente O ritmo diário de operação é diferente. Seminários de Informática 04/05 28 Bases de Dados e Sistemas de Informação Data warehouse - Infra-estrutura para suporte à decisão “A data warehouse is an analytical database that is used as the foundation of a decision support system. It is designed for large volumes of read-only data, providing intuitive access to information that will be used in making decisions. A data warehouse is created as ongoing commitment by the organization to ensure the appropriate data is available to the appropriate end user at the appropriate time” [Vidette Poe, et all, 1997] Seminários de Informática 04/05 29 Bases de Dados e Sistemas de Informação Arquitectura de Referência Fontes Ad Hoc Query Tools Gestão e Operação OLTP . . . OLTP MetaData Extracção Limpeza Transformação Carregamento Fontes Externas Report Writers Data Warehouse Data Marts Plataformas e Infra-estruturas de suporte Configuração, Gestão e Operação Seminários de Informática 04/05 Multidimensional Analysis 30 Aplicações - DataMining - …. Bases de Dados e Sistemas de Informação Data Mining E depois de ter estes dados todos, eventualmente numa data warehouse, será que não há para lá relações entre partes de informação, que são interessantes? Como descobri-las? Como agrupar os dados? Como extrair conceitos? Como extrair regras? Isso é o que se estuda em Data Mining. Usam-se técnicas várias de aprendizagem automática para agrupar dados e descobrir relações entre eles Ao processo de Data Mining é também comum chamar-se Knowledge Discovery A todo o processo também se chama Business Intelligence Seminários de Informática 04/05 31 Bases de Dados e Sistemas de Informação Sistemas de Informação na Web Cada vez existe informação disponível pela Web. Pode ver-se a Web como um enorme sistema de informação, sobre o qual se podem desenvolver aplicações. Mas há muitas diferenças: Dados distribuídos Dados não estruturados Não há garantias de consistência Numa primeira fase, Web apenas de (hyper) texto (HTML) Nenhuma estrutura Difícil de perceber como lidar com páginas de forma automática Seminários de Informática 04/05 32 Bases de Dados e Sistemas de Informação Dados semi-estruturados na Web XML como forma de permitir dados semi-estruturados localmente Tags arbitrárias DTDs com descrição da estrutura, publicamente disponível XSLT para transformação (e visualização) de dados XML Existem linguagens (declarativas) para interrogação de dados XML XPath, XQuery, Xcerpt, XQL, etc Existem modelos de dados para XML Estrutura hierárquica Dados “armazenados em árvore” Existem sistemas que lidam com tudo isto Hoje em dia qualquer browser lida com XML e processa XSLT/XPath Seminários de Informática 04/05 33 Bases de Dados e Sistemas de Informação O Futuro – Semantic Web Hoje em dia a Web está em máquinas mas é para ser usada por humanos Eu consigo à mão, através da Web marcar um Hotel para Munique de 1 a 3 de Maio. Como fazer um programa que consiga fazer isso por mim? Como é que o meu programa ia entender o que está nas páginas? Mesmo que estas estivessem em XML, como é que ia saber o significado de cada tag, havendo vários DTDs? A ideial da Semantic Web é o de fazer uma Web em máquinas, para humanos mas também para máquinas! Seminários de Informática 04/05 34 Bases de Dados e Sistemas de Informação Semantic Web “The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation.” Tim Berners-Lee A ideia é que à informação se juntem também descrições do significado dos dados Existem já linguagens para descrição de conceitos e significados de dados na Web RDF, OWL (e, em desuso, DAML, OIL) Permitirá que máquinas, lendo os dados e os seus significados, possam de forma eficiente entender os conteúdos Exige: Repositórios com definições de conceitos Que as páginas tenham referência a significado Seminários de Informática 04/05 35 Bases de Dados e Sistemas de Informação Disciplinas oferecidas pelo DI nesta área Na Licenciatura em Engenharia Informática Bases de Dados 1 Bases de Dados 2 Bases de Dados e Data Warehousing Tecnologias de Sistemas de Informação baseados na Web No Mestrado em Engenharia Informática Text and Data Mining Tópicos de Representação do Conhecimento para a Web Seminários de Informática 04/05 36 Bases de Dados e Sistemas de Informação