SGBD – Introdução Bacharelado em Ciência da Computação Disciplina GBD 1 Profa. Sandra de Amo AULA 1 Roteiro O que é um SGBD ? Para que ? Arquitetura Básica Modelo de Dados SGBD – o que é isso ? SGBD = Sistema Gerenciador de Banco de Dados (Database Management System) Um software sofisticado para: Armazenar dados de forma eficiente Consultar dados obtendo respostas rápidas Modificar dados concorrentemente. SGBDs – Para que ? Ponto de Vista Comercial Quantidades gigantescas de dados são coletados e armazenados em empresas, corporações, etc Dados de comércio eletrônico, Dados de navegação na internet Dados de compras de clientes em grandes lojas de departamentos, supermercados, Dados de transações bancárias, ou de cartão de crédito SGBDs – Para que ? Ponto de Vista Cientifico : Medicina, Biologia, Engenharia Dados coletados e armazenados a velocidades enormes (GB/hora) Sensores remotos em satélites Telescópios Microarrays gerando dados de expressões de genes Simulações científicas gerando terabytes de dados. SGBD: Contextos em que são utilizados SGBDs são utilizados para manipular grandes volumes de dados: Dados sobre empregados – alunos – contas bancárias – dados climatológicos, dados geológicos, etc. Atualmente, a área de Banco de Dados abrange todas os diversos tipos de dados em larga escala, envolvendo tecnologia sofisticada: Busca na internet Mineração de Dados (Data Mining). Banco de Dados Científicos e Medicais. Integração de Informação. Ainda mais … Você pode não notar, mas Bancos de Dados estão por trás de tudo o que você faz na Internet: Buscas no Google Compras nos sites da Amazon, do Mercado Livre, etc Um SGBD permite que consultas aos dados sejam respondidas de forma correta e rapidamente. Mais ainda… Os SGBDs permitem a realização no banco de dados de diversas atividades (transações) por diferentes usuários “simultaneamente” Possuem mecanismos que permitem não confundir as diferentes ações: por exemplo, duas reservas simultâneas para o mesmo assento num determinado vôo. Mais ainda... Um SGBD tem mecanismos para “esconder” certas partes do banco de dados de certos usuários. Arquitetura Básica consulta PROCESSADOR DE CONSULTAS GERENCIADOR DE TRANSAÇÕES Usuário GERENCIADOR DE ARMAZENAMENTO DADOS METADADOS Disco de Armazenagem O que é um Modelo de Dados 1. Uma representação matemática dos dados. Exemplos de Modelos Modelo Relacional: dados são reprentados por Relações (ou Tabelas) Modelo Semi-estruturado (XML) = dados são representados por árvores/grafos. 2. Operações permitindo manipular dados. 3. Restrições nos dados. Modelo Relacional Atributos (Nomes das colunas) Tuplas (linhas) Nome Winterbrew Bud Lite Nome da Relação Fabricante Pete’s Anheuser-Busch Cervejas Esquemas Esquema de Relação = nome da relação + lista de atributos. Opcionalmente: tipos dos atributos. Exemplo: Cerveja(nome, fabr) ou Cerveja(nome: string, fabr: string) Banco de Dados = coleção de relações. Esquema de Banco de Dados = conjunto de todos os esquemas de relação em um banco de dados. Por que utilizar relações ? Modelo muito simples. Frequentemente corresponde à maneira como pensamos sobre os dados. Modelo abstrato por trás da linguagem SQL (Structured Query Language), a linguagem de consultas de dados mais importante atualmente. Permite ver um Banco de Dados como uma Teoria da Lógica de Primeira Ordem (E.F.Codd) Histórico do Modelo Relacional Criado em 1970 por Edgar Frank Codd Matemático de Oxford (Inglaterra) Desenvolveu o Modelo Relacional de dados quando trabalhava na IBM Almaden Ganhou a Medalha Turing (o “Prêmio Nobel da Ciência da Computação”) http://pt.wikipedia.org/wiki/Edgar_Frank_Codd Exemplo Cervejas(nome, fabr) Bares(nome, end, licença) Consumidores(nome, end, tel) Gosta(consumidor, cerveja) Vend(bar, cerveja, preço) Frequenta(consumidor, bar) Sublinhado = chave (tuplas não podem ter o mesmo valor em todos os atributos-chave). Um ótimo exemplo de Restrição de Dados Os 3 níveis de abstração de um SGBD Nível Físico: como os dados são armazenados e estruturados em disco. Nível Conceitual: como modelar uma situação real através de um esquema de banco de dados relacional – criação dos esquemas relacionais. Nível Externo: quais partes do modelo serão acessíveis por cada grupo de usuários. Quem são as pessoas que lidam com SGBDs ? Implementadores de SGBDs Trabalham para companhias que fabricam os SGBDs – IBM, Oracle, etc Programadores de Aplicativos Escrevem pacores de programas que facilitam a vida dos usuários finais. Não interferem com a parte física dos dados. Utilizam apenas o esquema externo. Administradores de Banco de Dados (DBA) Projetam os esquemas conceituais e fisicos dos dados Projetam grande parte do esquema externo. Segurança e autorização Usuários finais Vem de diversas áreas- na maioria são leigos em tecnologia de BD Utilizam aplicativos escritos por programadores de aplicativos de BD Existem usuários mais sofisticados que escrevem suas próprias consultas em SQL.