Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estrutura de Dados e Sistemas Estrutura de Dados e Sistemas de Integraçãode Integração IntroduçãoIntrodução Prof. Alexandre Wagner C. FariaProf. Alexandre Wagner C. Faria Material adaptado do Livro: Sistema de Banco de Dados (Silberschatz, Korth, Sudarshan), Prof. Ronaldo C.M. Correia, Vania Bogorny Conteúdo Programático Introdução � Um sistema de gerenciamento de banco de dados (DBMS) é uma coleção de dados inter- relacionados e um conjunto de programas para acessar esses dados.acessar esses dados. � A coleção de dados, normalmente chamada de banco de dados, contém informações relevantes a uma empresa, uma faculdade, um centro de pesquisa, entes do governo, etc... Introdução � O principal objetivo de um DBMS é fornecer uma maneira de recuperar informações de banco de dados que seja tanto conveniente quanto eficiente. � Como as informações são muito importantes na maioria� Como as informações são muito importantes na maioria das organizações, os científicas da computação e desenvolvedores de banco de dados desenvolveram um grande grupo de conceitos e técnicas para gerenciar dados. � Estes conceitos e técnicas que formam o foco deste curso Aplicações do sistema de banco de dados � Banco: Para informações de clientes, contas, empréstimos e transações bancarias; � Linhas aéreas: para reservas e informações de� Linhas aéreas: para reservas e informações de horários. As linhas aéreas foram as primeiras a usar bancos de dados de maneira geograficamente distribuídas; � Universidades: Para informações de alunos, registros de cursos, notas, etc... Aplicações do sistema de banco de dados � Transações de cartão de crédito: para compras com cartão de crédito e geração de controle das faturas; � Telecomunicações: Para manter registro de� Telecomunicações: Para manter registro de chamadas realizadas, gerar cobranças, manter saldos, etc.. � Finanças: Para armazenar informações sobre valores mobiliários, vendas e compras de instrumentos financeiros, operações com ações, etc... Aplicações do sistema de banco de dados � Vendas: para informações de clientes, produtos, vendedores, etc... � Industria: Para gerenciamento de cadeia de� Industria: Para gerenciamento de cadeia de suprimentos para controlar a produção de itens nas fabricas, estoques de itens em armazéns e lojas, alem de pedidos de itens � Recursos Humanos: para informações sobre funcionários, salários, descontos em folha de pagamento, benefícios e geração de contracheques. Finalidade dos sistemas de banco de dados � Os sistemas de banco de dados surgiram em resposta aos métodos mais antigos de gerenciamento computadorizado de dadosgerenciamento computadorizado de dados comerciais. � Uma forma utilizada anteriormente de manter as informações e gerenciá-las, era armazená-las em arquivos em um computador; Finalidade dos sistemas de banco de dados � Porém, manter informações organizacionais em um sistema de processamento de arquivos apresenta diversas desvantagens: Redundância e inconsistência dos dados:�Redundância e inconsistência dos dados: �Dificuldade de acesso a dados; �Isolamento de dados; �Problemas de integrigade; �Problemas de “atomicidade”; �Anomalias de acesso concorrente; �Problemas de segurança; Abstração dos dados � Para que o sistema seja funcional, ele precisa recuperar dados de maneira eficiente; � Como muitos usuários de sistema de banco de� Como muitos usuários de sistema de banco de dados não são treinados em computador, os desenvolvedores ocultam a complexidade dos usuários, sob vários níveis de abstração, para simplificar as interações do usuários com o sistema: Abstração dos dados � Nível físico: � O nível de abstração mais baixo descreve como os dados são realmente armazenados. O nível físico descreve em detalhes estrutura de dados� O nível físico descreve em detalhes estrutura de dados complexas de baixo nível. � Nível Lógico: �O próximo nível de abstração mais alto descreve que dados estão armazenados no banco de dados e que relações lógicas existem entre eles. Abstração dos dados � Nível de visualização. �O nível de abstração mais alto descreve apenas parte do banco de dados. do banco de dados. �O nível “view” existe para simplificar sua interação com o sistema. O sistema pode fornecer muitas visões para o mesmo banco de dados. View of Data An architecture for a database system Instancias e esquemas � Os bancos de dados mudam com o tempo, a medida que as informações são inseridas e excluídas. � A coleção das informações armazenadas no banco de dados em um determinado momento é umade dados em um determinado momento é uma instância do banco de dados. � O projeto geral do banco de dados é o esquema do banco de dados. � Os esquemas raramente -ou nunca– são modificados Instancias e esquemas � Os sistemas de banco de dados possuem vários esquemas, particionados de acordo com os níveis de abstração.de abstração. � O esquema físico descreve o projeto de banco de dados no nível físico, enquanto o esquema lógico descreve o projeto de banco de dados no nível lógico. Modelos de dados � Apoiando a estrutura de um banco de dados está o modelo de dados; �Uma coleção de ferramentas conceituais para�Uma coleção de ferramentas conceituais para descrever dados, relações de dados, semântica de dados e restrição de consistência. � Um modelo de dados oferece uma maneira de descrever o projeto de um banco de dados no nível lógico, físico e de view Modelos de dados � Existem vários modelos de dados diferentes. Os modelos de dados podem ser classificados em quatro categorias diferentes: �Modelo relacional: O modelo relacional usa uma coleção de tabelas para representar os dados e as relações entre elas; �Modelo de entidade/relacionamento: O modelo de entidade/relacionamento E/R . È baseado em uma percepção de um mundo real que consiste em uma coleção de objetos básicos, chamados entidades e as relações entre essas coisas. Modelos de dados �Modelo de dados baseado em objeto. O modelo de dados orientado a objeto é outro modelo que tem recebido cada vez mais atenção. Ele pode ser visto como uma extensão do modelo E/R. Com noções decomo uma extensão do modelo E/R. Com noções de encapsulamento, métodos (funções). �Modelo de dados semi-estruturados. O modelo de dados semi-estruturado permite a especificação dos dados em que itens de dados individuais do mesmo tipo possam ter diferentes conjuntos de atributos Linguagens de banco de dados � Um sistema de banco de dados fornece uma linguagem de definição de dados para especificar o esquema de banco de dados em uma linguagem deesquema de banco de dados em uma linguagem de manipulação de dados. � Na prática, as linguagens de definição de dados e de manipulação de dados não são duas linguagens separadas, mas simplesmente formam partes de uma única linguagem de banco de dados, com SQL Linguagens de manipulação de dados (DML) � Linguagem para acessar e manipular os dados organizados pelo modelo de dados apropriado � A DML também é conhecida como linguagem de consulta � Duas classes de linguagem © Korth • Silberschatz • Sundarshan Duas classes de linguagem � Procedurais – usuário especifica que dados são necessários e como obter esses dados � Declarativas (não procedurais) – usuário especifica que dados são necessários sem especificar como obter esses dados � SQL é a linguagem de consulta mais utilizada Data Manipulation Language (DML) � Os tipos de dados são: �Recuperação de informações armazenadas no banco de dados; de dados; �Inserção de novas informação no banco de dados; �Exclusão de informações do banco de dados; �Modificação de informações armazenadas nobanco de dados; Linguagem de definição de dados (DDL) � Notação de especificação para definir o esquema de banco de dados � Exemplo: � create table conta ( número_conta char(10), saldo integer) � O compilador DDL gera um conjunto de tabelas armazenado em um dicionário de dados � O dicionário de dados contém metadados (ou seja, dados sobre os dados) © Korth • Silberschatz • Sundarshan � Esquema de banco de dados � Linguagem de armazenamento e definição de dados � Especifica a estrutura de armazenamento e os métodos de acesso usados � Restrições de integridade � Registros de domínio � Integridade referencial (restrição de referências na SQL) � Afirmações � Autorização Data Definition Language (DDL) � Specification notation for defining the database schema Example: create table account ( account-number char(10), balance integer) � DDL compiler generates a set of tables stored in a data dictionary � Data dictionary contains metadata (i.e., data about data) Database schema � Database schema � Data storage and definition language � Specifies the storage structure and access methods used � Integrity constraints � Domain constraints � Referential integrity (references constraint in SQL) � Assertions � Authorization Conceitos BásicosConceitos Básicos SQL (Structured Query Language)SQL (Structured Query Language) SELECT SELECT Recuperação de dadosRecuperação de dados INSERT INSERT UPDATE UPDATE DML (Data Manipulation Language)DML (Data Manipulation Language)UPDATE UPDATE DML (Data Manipulation Language)DML (Data Manipulation Language) DELETEDELETE CREATECREATE ALTER DDL (Data Definition Language)ALTER DDL (Data Definition Language) DROPDROP GRANTGRANT DENYDENY DCL (Data Control Language)DCL (Data Control Language) REVOKEREVOKE Banco de dados relacionais � Este tipo de banco de dados é baseada no modelo relacional e usa um conjunto de tabelas para representar os dados e as relações entre eles.representar os dados e as relações entre eles. � A maioria dos sistemas de banco de dados relacionais utiliza a linguagem SQL. Tabelas � Cada tabela possui várias colunas e cada coluna possui um nome único. � A próxima figura apresenta um banco de dados � A próxima figura apresenta um banco de dados relacional de exemplo, constituído de 3 tabelas: �A primeira mostra detalhes dos clientes do banco; �A segunda mostra as contas; �E a terceira mostra que contas pertencem a que clientes; Relational Model � Example of tabular data in the relational model Attributes A Sample Relational Database Analisando as tabelas � A primeira tabela, cliente, mostra, por exemplo, que o cliente identificado pelo id_cliente 192-83-7465 é chamado Johnson e mora na rua Alma, n°12, em palo alto. � A segunda tabela, conta, mostra, por exemplo, que a conta A-101 possui um saldo de $500 e a conta A-201possui um saldo de $900;possui um saldo de $500 e a conta A-201possui um saldo de $900; � A terceira tabela mostra que contas pertencem a que clientes. Por exemplo, o número da conta A-101 pertence ao cliente cujo id- cliente é 192-83-7465, a saber, Johnson e os clientes Johnson e os clientes 192-83-7468 e 019-28-3746 (smith) compartilham o numero de conta A-201 – Eles podem ser sócios... SQL � SQL: linguagem não procedural amplamente usada � Exemplo: encontre o nome do cliente com id_cliente 192-83-7465 select cliente.nome_cliente from cliente where cliente.id_cliente = ‘192-83-7465’ � Exemplo: encontre os saldos de todas as contas pertencentes ao cliente com id_cliente 192- 83-7465 select conta.saldo © Korth • Silberschatz • Sundarshan select conta.saldo from depositante, conta where depositante.id_cliente = ‘192-83-7465’ and depositante.número_conta = conta.número_conta � Os programas de aplicação geralmente acessam banco de dados através de � Extensões de linguagem para permitir SQL embutida � Interface de programa de aplicação (por exemplo, ODBC/JDBC), que permite que consultas SQL sejam enviadas a um banco de dados. Projeto de banco de dados O processo de projetar a estrutura geral do banco de dados. � Projeto lógico – Decidir sobre o esquema de banco de dados. O projeto de banco de dados exige encontrar uma “boa” coleção de esquemas de relação. © Korth • Silberschatz • Sundarshan relação. � Decisão empresarial – Que atributos devemos registrar no banco de dados? � Decisão de ciência da computação – Que esquemas de relação devemos ter e como os atributos devem ser distribuídos entre os vários esquemas de relação? � Projeto físico – Decidir sobre o layout físico do banco de dados. O modelo entidade- relacionamento � Modela uma empresa como uma coleção de entidades e relacionamentos � Entidade: uma “coisa” ou “objeto” na empresa que é distinguível dos outros objetos � Descrito por um conjunto de atributos � Relacionamento: uma associação entre várias entidades © Korth • Silberschatz • Sundarshan � Representado graficamente por um diagrama entidade-relacionamento: Modelos de dados relacionais de objeto � Estendem o modelo de dados relacional incluindo orientação a objeto e construções para lidar com tipos de dados inseridos. � Permitem que atributos de tuplas tenham tipos complexos, incluindo valores não atômicos como relações aninhadas. © Korth • Silberschatz • Sundarshan � Preservam as fundações relacionais, em especial o acesso declarativo aos dados, enquanto estendem a capacidade de modelagem. � Fornecem compatibilidade com linguagens relacionais posteriores existentes. XML: Extensible Markup Language � Definida pelo WWW Consortium (W3C) � Originalmente criada como uma linguagem de marcação de documento, não como uma linguagem de banco de dados � A capacidade de especificar novas tags e criar estruturas de tag aninhadas tornaram a XML uma excelente maneira de trocar dados, © Korth • Silberschatz • Sundarshan aninhadas tornaram a XML uma excelente maneira de trocar dados, não apenas documentos. � A XML se tornou a base para todos os formatos de intercâmbio de dados da nova geração. � Uma ampla variedade de ferramentas está disponível para análise, navegação e consulta de dados/documentos XML. Gerenciamento de armazenamento � Gerenciador de armazenamento é um módulo de programa que fornece a interface entre os dados de baixo nível armazenados no banco de dados e os programas de aplicação e consultas submetidos ao sistema. � O gerenciador de armazenamento é responsável pelas seguintes tarefas: � Interagir com o gerenciador de arquivos Armazenar, recuperar e atualizar dados eficientemente. © Korth • Silberschatz • Sundarshan � Armazenar, recuperar e atualizar dados eficientemente. � Problemas: � Acesso ao armazenamento � Organização de arquivos � Indexação e hashing Processamento de consulta 1. Análise e tradução 2. Otimização 3. Avaliação © Korth • Silberschatz • Sundarshan Processamento de consulta (cont.) � Maneiras alternativas de avaliar uma consulta dada � Expressões equivalentes � Diferentes algoritmos para cada operação � A diferença de custo entre um bom e um mau método de avaliar uma consulta pode ser enorme © Korth • Silberschatz • Sundarshan avaliar uma consulta pode ser enorme � Necessidade de estimar o custo das operações � Depende profundamente das informações sobre relações que o banco de dados precisa manter � Necessidade de estimar estatísticas para resultados intermediários para calcular custo de expressões complexas Gerenciamento de transação � Uma transação é um conjunto de operações que realiza uma única função lógica em uma aplicação de banco de dados. � O componente de gerenciamento de transação garante que o banco de dados permaneceem um estado consistente (correto) apesar de falhas do sistema (por exemplo, © Korth • Silberschatz • Sundarshan (correto) apesar de falhas do sistema (por exemplo, interrupções de energia e falhas do sistema operacional) e falhas de transação. � O O O O gerenciador de controle de concorrência controla a interação entre as transações concorrentes para assegurar a consistência do banco de dados. Arquitetura do banco de dados A arquitetura de um sistema de banco de dados é bastante influenciada pelo sistema de computador subjacente em que o sistema de banco de dados é executado: Centralizado © Korth • Silberschatz • Sundarshan �Centralizado �Cliente-servidor � Paralelo (multiprocessador) �Distribuído Usuários de banco de dados Os usuários são diferenciados pela forma como esperam interagir com o Sistema � Programadores de aplicação – interagem com o sistema através de chamadas de DML Usuários avançados — interagem com o sistema formulando suas © Korth • Silberschatz • Sundarshan � Usuários avançados — interagem com o sistema formulando suas requisições em uma linguagem de consulta de banco de dados � Usuários especializados — interagem com o sistema escrevendo aplicações de banco de dados especializadas que não se encaixam na estrutura de processamento de dados tradicional � Usuários leigos — interagem com o sistema chamando um dos programas de aplicação previamente escritos Exemplos, pessoas acessando bancos de dados através da Web, caixas bancários, equipe de contabilidade Administrador de banco de dados � Coordena todas as atividades do sistema de banco de dados; o administrador de banco de dados tem um bom conhecimento dos recursos e necessidades de informação da empresa. � As responsabilidades do administrador de banco de dados incluem: Definição de esquema © Korth • Silberschatz • Sundarshan � Definição de esquema � Estrutura de armazenamento e definição de método de acesso � Modificação de esquema e de organização física � Concessão de autorização para acesso ao banco de dados � Especificar restrições de integridade � Agir como ligação com os usuários � Monitorar o desempenho e responder a mudanças em requisições Estrutura geral do sistema © Korth • Silberschatz • Sundarshan História dos sistemas de banco de dados � Década de 1950 e início da década de 1960: � Processamento de dados usando fitas magnéticas para armazenamento � Fitas fornecem apenas acesso seqüencial � Cartões perfurados para entrada � Final da década de 1960 e década de 1970: Discos rígidos permitem acesso direto aos dados © Korth • Silberschatz • Sundarshan � Discos rígidos permitem acesso direto aos dados � Modelos de dados de rede e hierárquico em largo uso � Ted Codd define o modelo de dados relacional � Ganharia o ACM Turing Award por este trabalho � IBM Research inicia o protótipo do System � UC Berkeley inicia o protótipo do Ingres � Processamento de transação de alto desempenho (para a época) História (cont.) � Década de 1980: � Protótipos relacionais de pesquisa evoluem para sistemas comerciais � SQL se torna o padrão do setor � Sistemas de banco de dados paralelos e distribuídos � Sistemas de banco de dados orientados a objeto � Década de 1990: © Korth • Silberschatz • Sundarshan � Década de 1990: � Grandes aplicações de suporte a decisão e exploração de dados � Grandes data warehouses de vários terabytes � Surgimento do comércio Web � Década de 2000: � Padrões XML e XQuery � Administração de banco de dados automatizada Final do Capítulo 1 © Korth • Silberschatz • Sundarshan Final do Capítulo 1
Compartilhar