See www.db-book.com for conditions on re-use Captulo 1: Introduo Silberschatz, Korth and Sudarshan 1.2 Database System Concepts - 5 th Edition, May 23, 2005 Captulo 1: Introduo Finalidade dos Sistemas de banco de dados Viso dos dados Linguagem de banco de dados Bancos de Dados Relacionais Projeto de um banco de dados Banco de dados semi-estruturados e baseados em objetos Armazenamento e consulta de dados Gerenciamento de transao Arquitetura do banco de dados Usurios e Administradores de banco de dados Histria dos sistemas de banco de dados Silberschatz, Korth and Sudarshan 1.3 Database System Concepts - 5 th Edition, May 23, 2005 Database Management System (DBMS) Sistema de gerenciamento de banco de dados DBMS Coleo de dados inter-relacionados e um; Conjunto de programas para acessar estes dados. Principal objetivo: recuperar informaes que seja tanto conveniente como eficiente. Aplicaes de banco de dados: Bancos: transaes bancrias Linhas ereas: reservas, vendas Universidades: registros,notas Vendas: clientes, produtos, compras. Revendedoras Online: acompanhamento de pedidos Recursos Humanos: salrios, descontos em folha Bancos de dados podem estar presentes em todos aspectod de nossas vidas. Silberschatz, Korth and Sudarshan 1.4 Database System Concepts - 5 th Edition, May 23, 2005 Finalidade dos Sistemas de banco de dados Surgiram em repostas aos mtodos mais antigos de gerenciamento computadorizado de dados comercias Desvantagens de sistemas de processamento de arquivos: Redundncia e inconsistncia de dados Duplicao da informao em diferentes arquivos, vrias cpias dos mesmos dados podem no mais concordar. Dificuldade de acesso a dados preciso fazer um novo programa para cada nova tarefa. Isolamento de dados multiplos arquivos e formatos Problemas de integridade Restries de consistencia: so declaradas e dificieis implementaes.
Silberschatz, Korth and Sudarshan 1.5 Database System Concepts - 5 th Edition, May 23, 2005 Finalidade dos Sistemas de banco de dados Desvantagens do uso de sistemas de arquivos (cont.) Problemas de atomicidade fundamental que, se ocorrer uma falha, os dados sejam restaurados ao estado consistente em que se encontravam antes da falha. A transferncia precisa ser atmica, ocorrer em sua totalidade Anomalias de acesso concorrente Acessos concorrentes precisam ser supervisionados -Example: 2 pessoas lendo um saldo e atualizando ao mesmo tempo. Problemas de Segurana Usurios devem ter acessos personalizados, no podem acessar tudo. Silberschatz, Korth and Sudarshan 1.6 Database System Concepts - 5 th Edition, May 23, 2005 Viso dos dados Um sistema de banco de dados uma coleo de dados inter- relacionados e um conjunto de programas que permitem aos usurios acessar e modificar estes dados.
Finalidade: fornecer aos usurios uma viso abstrata dos dados, ou seja, oculta certos detalhes de como os dados so armazenados e mantidos. Silberschatz, Korth and Sudarshan 1.7 Database System Concepts - 5 th Edition, May 23, 2005 Nveis de abstrao de dados Nvel fsico: descreve como os dados so realmente armazenados, estruras de dados complexa e de baixo nvel. Nvel lgico: descreve que dados esto armazenados no banco de dados e que relao existem entre eles. (administrador do banco) type customer = record customer_id : string; customer_name : string; customer_street : string; customer_city : integer; end; Nvel de viso: Programas de aplicao escondem detalhes dos tipos de aplicao. O Nvel de viso tambm pode esconder informaes e ter varios tipos de Vises. Silberschatz, Korth and Sudarshan 1.8 Database System Concepts - 5 th Edition, May 23, 2005 View of Data Nveis de abstrao de dados. Silberschatz, Korth and Sudarshan 1.9 Database System Concepts - 5 th Edition, May 23, 2005 Instncias e esquemas Similares a tipos e variveis em uma linguagem de programao. Esquemas Projeto geral do banco de dados. Pode ser entendido como as declaraes de uma varivel juntamente com as definies de tipos associados. Esquema fsico: projeto do banco de dados no nvel fsico. Esquema lgico:projeto do banco de dados no nvel lgico. Instncias informaes armazenados em uma banco de dados em um determinado momento. Valores das vriaveis Independncia de dados fsica quando aplicaes no dependem do esquema fsico. Em geral modificaes no esquema fsico no afetam o esquema lgico. Os esquemas lgicos no precisam ser reescritos.
Silberschatz, Korth and Sudarshan 1.10 Database System Concepts - 5 th Edition, May 23, 2005 Modelos de dados Coleo de ferramentas conceituais para descrever: Dados Relaes de dados Semntica de dados Restries de consistncia. Modelo relacional Modelo de Entidade/Relacionamento Modelo de dados baseado em objeto (Object-oriented and Object- relational) Modelo de dados semi-estruturado (XML) Modelos Antigos: Network model Hierarchical model
Silberschatz, Korth and Sudarshan 1.11 Database System Concepts - 5 th Edition, May 23, 2005 Linguagens de banco de dados Sistema de banco de dados: Linguagem de definio de dados: para especificar o esquema de banco de dados. Linguagem de manipulao de dados: para expressar consultas e atualizaes de banco de dados.
Na prtica formam partes de uma nica linguagem de banco de dados, exemplo: SQL. Silberschatz, Korth and Sudarshan 1.12 Database System Concepts - 5 th Edition, May 23, 2005 Data Manipulation Language (DML) Permite aos usurios acessar ou manipular dados conforme so organizados pelo modelo de dados apropriado. Tambm conhecida como linguagem de consulta Recuperao, insero, excluso e modificao de informaes armazenadas no banco de dados. Dois tipos: Procedurais requerem que um usurio especifique que dados so necessrios e como obt-los. Declarativas (nonprocedural) requerem que um usurio especifique que dados so necessrios sem especificar como obt-los. SQL linguagem mais utilizada. Silberschatz, Korth and Sudarshan 1.13 Database System Concepts - 5 th Edition, May 23, 2005 Data Definition Language (DDL) Especfica um esquema de banco de dados por um conjunto de definies. Example: create table account ( account-number char(10), balance integer) Tambm utilizada para especificar propriedades adicionais dos dados Linguagem de armazenamento e definio dos dados. Especifica a estrutura de armazenamento e metdos de acesso. Restries de integridade Restries de domnio Integridade referencial (informaes em tabelas dif. No podem ser violadas) Assertivas (qualquer condio que o banco precisa satifazer) Autorizao (usurios alterar, inserir, consultar, excluir..) Silberschatz, Korth and Sudarshan 1.14 Database System Concepts - 5 th Edition, May 23, 2005 Modelo Relacional Exemplo de uma tabela de dados no Modelo Relacional Atributos Problemas? Clientes com 2 contas... Caso o cliente ainda no tenha conta Silberschatz, Korth and Sudarshan 1.15 Database System Concepts - 5 th Edition, May 23, 2005 Exemplo de um banco de dados relacional Cliente Saldo da Conta Contas de Clientes Silberschatz, Korth and Sudarshan 1.16 Database System Concepts - 5 th Edition, May 23, 2005 SQL SQL: linguagem no procedural mais utilizada Exemplo: Encontre o nome do cliente que tem a customer-id 192-83- 7465 select customer.customer_name from customer where customer.customer_id = 192-83-7465 Example: Encontre o saldo e as contas do cliente com customer-id 192- 83-7465 select account.balance, account.account_number from depositor, account where depositor.customer_id = 192-83-7465 and depositor.account_number = account.account_number Programas de Aplicao geralmente acessam o banco de dados atravs de: Estendendo a sintaxe de liguagem host para incorporar a SQL Interface de programa de aplicao (ODBC/JDBC) which allow SQL queries to be sent to a database
Silberschatz, Korth and Sudarshan 1.17 Database System Concepts - 5 th Edition, May 23, 2005 Projeto de um banco de dados Os sistemas de banco de dados em geral so projetados para gerenciar grandes blocos de informaes. Projeto lgico Deciso do esquema do banco de dados. preciso que se encontre uma boa soluo para armazenar os dados e relacionamentos entre tabelas. Business decision Que tipos de atributos devem estar no meu banco de dados? Computer Science decision qual esquema e como os atributos devem se relacionar?
Projeto fsico Depende do nvel fsico e da implementao do projeto lgico.
Silberschatz, Korth and Sudarshan 1.18 Database System Concepts - 5 th Edition, May 23, 2005 Modelo entidade/relacionamento Baseado em uma percepo do mundo real que consiste em uma coleo de objetos bsicos, chamados entidades, e de relaes entre estes objetos. Entidades: uma coisa ou objeto no mundo real que distinguvel de outros objetos. Descritas por um conjunto de atributos Relacionamentos: Associao entre vrias entidades. Exemplo de um diagrama entidade/relacionamento Silberschatz, Korth and Sudarshan 1.19 Database System Concepts - 5 th Edition, May 23, 2005 Modelo de dados baseados em objeto Baseado no paradigma das linguagens de programao oritendas a objetos. Pode ser visto como uma extenso do modelo E-R com caracteristicas da orientao a objetos como: encapsulamento, herana. Silberschatz, Korth and Sudarshan 1.20 Database System Concepts - 5 th Edition, May 23, 2005 XML: Extensible Markup Language Definida pela WWW Consortium (W3C) Originou-se como uma linguagem de marcao de texto e no como linguagem de banco de dados. Tem como uma de suas principais vantagens a troca de dados entre bases. Web Services: interoperar entre sistemas heterogneos <curso> <aluno> <nome>joao</nome> <media>7.9</media> </aluno> <aluno> <nome>maria</nome> <media>8.6</media> </aluno> </curso>
Silberschatz, Korth and Sudarshan 1.21 Database System Concepts - 5 th Edition, May 23, 2005 Armazenamento e consulta de dados Um Sistema de banco de dados pode ser dividido em mdulo para que cada uma tenha a sua responsabilidade, gerenciador de armazenamento e processador de consulta. Gerenciador de armazenamento: importante para o gerenciamento das informaes armazenadas em disco, para que haja consultas em tempo otimizados. responsvel pelas tarefas: Interao com o disco (dados armazenados) Pelo eficiente armazenamento, recuperao e atualizao dos dados Implementa as estruturas: Arquivos de dados: armazena o banco de dados propriamente dito. Dicionrio de dados: que armazena o esquema do bd. ndices: acessos mais rpidos aos itens de dados.
Silberschatz, Korth and Sudarshan 1.22 Database System Concepts - 5 th Edition, May 23, 2005 Gerenciamento de transao A transao: conjunto de operaes que realiza uma nica funo lgica em uma aplicao de banco de dados. As Transaes no podem violar quaisquer restries de consistncia no banco de dados. de responsabilidade do programador definir corretamente as vrias transaes, de modo a preservar a consistncia do banco de dados. O sistema de bd precisa realizar recuperao de falha, detectar falhas de sistemas e restaurar o bd ao estado anterior a falha. O gerenciador de controle de concorrncia deve controlar a interao entre as transaes concorrentes para assegurar a consistncia do bd. Silberschatz, Korth and Sudarshan 1.23 Database System Concepts - 5 th Edition, May 23, 2005 Arquitetura do banco de dados A arquitetura de um sistema de banco de dados influnciada pelo sistema de computador onde o banco de dados ser executado: Centralizado Cliente-servidor Paralelo (multi-processor) Distribudo Silberschatz, Korth and Sudarshan 1.24 Database System Concepts - 5 th Edition, May 23, 2005 Usurios de banco de dados Usurios so distinguidos pela maneira como esperam interagir com o sistema. Usurios leigos interagem atravs de programas de aplicao (banco) Programadores de Aplicao interagem atravs dos formulrios, relatrios que so construdos. Usurios avanados interagem atravs de uma linguagem de consulta. (analistas). Usurios especializados desenvolvem sistemas de projeto de computadores, sistemas de base de conhecimentos e sistemas especialistas, sistemas que armazenam (grficos, dados de udio) Silberschatz, Korth and Sudarshan 1.25 Database System Concepts - 5 th Edition, May 23, 2005 Administradores de banco de dados Precisa ter um controle central sobre os dados e os programas que os acessam. As funes de um administrador de banco de dados incluem: Definio de esquema utilizando a DDL. Estrutura de armazenamento e definio de mtodo de acesso. Modificao de esquema e de organizao fsica para melhorar o desempenho. Concesso de autorizao para acesso a dados. Manuteno de rotina backups, espao em disco, monitorar tarefas e assegurar que o desempenho no seja comprometido. Silberschatz, Korth and Sudarshan 1.26 Database System Concepts - 5 th Edition, May 23, 2005 Estrutura do sistema Silberschatz, Korth and Sudarshan 1.27 Database System Concepts - 5 th Edition, May 23, 2005 Histria dos sistemas de banco de dados 1950s e antes de 1960s: Fitas magneticas para o armazenamento dos dados Era permitido apenas o acesso sequncial Cartes Perfurados aps 1960s e 1970s: Discos rigidos que j permitiam um acesso direto sem precisar ser sequncial Estruras em redes e hierrquicas poderiam ser utilizadas (listas, rvores). Codd define o Modelo Relacional Maior perfomance no processamento de transaes
Silberschatz, Korth and Sudarshan 1.28 Database System Concepts - 5 th Edition, May 23, 2005 Histria 1980s: Os Bancos relacionais que ainda no eram to eficientes se aperfeioam e tomam o lugar dos de redes e hierarquicos SQL torna-se padro comercial Sistemas de banco de dados paralelos e distribudos Sistemas de banco de dados orietados a objetos. 1990s: A SQL se especializa em consultas e no s mais em processamento e transaes. Ferramentas para analisar grande quantidade de dados. O crescimento explosivo dos bancos de dados na WWW. 2000s: XML e a linguagem de consulta XQuery Computao autnomica/auto-adminitrao para reduzir os esforos de administrao do sistema. Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use Fim Silberschatz, Korth and Sudarshan 1.30 Database System Concepts - 5 th Edition, May 23, 2005 Figure 1.4 Silberschatz, Korth and Sudarshan 1.31 Database System Concepts - 5 th Edition, May 23, 2005 Figure 1.7