390 likes | 715 Views
Bases de Dados e Sistemas de Informação. José Júlio Alferes Seminários de Informática 04/05. 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
E N D
Bases de Dadose Sistemas de Informação José Júlio Alferes Seminários de Informática 04/05
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
P3 P1 ... Dados Pn P2 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.
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 • ...
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!
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
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
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
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.
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.
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
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
Modelo ER Exemplo de um esquema no modelo ER
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
Modelo Relacional Atributos • Exemplo de conjunto de dados no modelo relacional customer- street customer- city account- number customer- name Customer-id Johnson Smith Johnson Jones Smith 192-83-7465 019-28-3746 192-83-7465 321-12-3123 019-28-3746 Alma North Alma Main North A-101 A-215 A-201 A-217 A-201 Palo Alto Rye Palo Alto Harrison Rye
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
Linguagem de Definição de Dados (DDL) • Especificação da notação para definição do esquema da base de dados • E.g. create tableaccount (account-numberchar(10),balanceinteger check (balance > 0),primary key 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
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.
SQL • SQL: linguagem não-procedimental (declarativa) de uso generalizado • E.g. encontrar o nome de cliente com customer-id 192-83-7465selectcustomer.customer-namefromcustomerwherecustomer.customer-id = ‘192-83-7465’ • E.g. procurar os saldos de todas as contas detidas pelo cliente com customer-id 192-83-7465selectaccount.balancefromdepositor, accountwheredepositor.customer-id = ‘192-83-7465’ anddepositor.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
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
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.
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.
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
Sistemas Operacionais • Até aqui vimos sobretudo sistemasOLTP – 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
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)
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.
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]
Fontes Ad Hoc Query Tools Gestão e Operação OLTP MetaData . . . Report Writers Extracção Limpeza Transformação Carregamento Data Warehouse OLTP Data Marts Multidimensional Analysis Plataformas e Infra-estruturas de suporte Fontes Externas Aplicações - DataMining - …. Configuração, Gestão e Operação Arquitectura de Referência
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
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
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
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!
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
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