Banco de Dados Aula 1 - Prof. Bruno Moreno 16/08/2011 Roteiro • • • • Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD – – – – Natureza autodescritiva de um sistema de BD Isolamento entre programas e dados, e abstração de dados Suporte a múltiplas visões dos dados Compartilhamento de dados e processamento de transação multiusuário • Profissionais de BD • Vantagens do uso de BD Aula 1 - 14:23 2 Apresentação - Professor • Bruno Neiva Moreno – Graduação: UFPB – Mestrado: UFPE – [email protected] – www.brunomoreno.com Aula 1 - 14:23 3 Apresentação – Disciplina • Curso: Banco de Dados • Ementa – – – – – – Conceitos e características de Sistemas de Informação Funcionalidades de um SGBD Banco de Dados Relacionais Modelagem de Dados Arquitetura e Infra-Estrutura de BD Projeto e Implementação de sistemas de informação suportados por Bancos de Dados – Gatilhos e visões – Transações Aula 1 - 14:23 4 Apresentação – Disciplina • Módulo 1 - Introdução (1) Definição de Banco de Dados • • • • • • Aula 1 - 14:23 Emprego de Banco de Dados Vantagens de uso de Banco de Dados Definição de SGBD Estrutura geral de um SGBD Profissionais de Banco de Dados Exemplos de SGBD 5 Apresentação – Disciplina • Módulo 1 - Introdução (2) Sistemas Gerenciadores de Banco de Dados: conceitos e arquitetura • • • • • Histórico Tipos Modelo de dados, esquemas e instâncias Arquitetura e independência de dados Linguagens de banco de dados (3) Apresentação do PostgreSQL Aula 1 - 14:23 6 Apresentação – Disciplina • Módulo 2 – Modelagem Conceitual (1) Esquema geral de modelagem de BD (2) Conceitos básicos de modelagem • • • • Tipos Entidades Atributo-chave Relacionamento (3) Diagrama Entidade-Relacionamento • Notações • Especialização e generalização Aula 1 - 14:23 7 Apresentação – Disciplina • Módulo 3 – O Modelo Relacional (1) Conceitos do modelo relacional • • • • • • • Aula 1 - 14:23 Tipos Entidades Restrições e esquemas Mapeamento MER para Relacional Restrições de domínio Restrições de chave Integridade referencial 8 Apresentação – Disciplina • Módulo 3 – O Modelo Relacional (2) Álgebra Relacional • • • • • • Aula 1 - 14:23 Operações unárias Seleção Projeção Operações baseadas na teoria dos conjuntos União, interseção e subtração Produto cartesiano 9 Apresentação – Disciplina • Módulo 3 – O Modelo Relacional (2) Álgebra Relacional • Operações unárias – Seleção – Projeção • Operações baseadas na teoria dos conjuntos – União, interseção e subtração – Produto cartesiano • Operações binárias – Junção e divisão, divisão Aula 1 - 14:23 10 Apresentação – Disciplina • Módulo 3 – O Modelo Relacional (2) Álgebra Relacional • Outras operações relacionais – – – – Funções agregadas e agrupamento Operações de clausura recursiva Operações de junção externa Operação de união externa Prova 1 • Calculo Relacional (3) Projeto de Banco de dados relacional baseado no mapeamento MER-Relacional Aula 1 - 14:23 11 Apresentação – Disciplina • Módulo 4 – SQL (1) (2) (3) (4) Definição de dados e tipos de dados Restrições (chaves) Comandos de alterações (alter, drop) Consultas SQL • • • • Aula 1 - 14:23 Select-from-where Aliases Where ausente e uso de asterisco Operações de conjuntos 12 Apresentação – Disciplina • Módulo 4 – SQL (4) Consultas SQL • • • • • • Aula 1 - 14:23 Comparações Ordenação Consultas aninhadas e comparação Junções Funções de agregação Agrupamento: Group by e having 13 Apresentação – Disciplina • Módulo 4 – SQL (5) Comandos de inserção, exclusão e atualização • Insert • Delete • Update (6) Restrições genéricas (7) Visões (8 ) SQL embutida e SQL dinâmica (9 ) Programação de funções (10) Procedimentos armazenados em banco de dados (stored procedures) Aula 1 - 14:23 14 Apresentação – Disciplina • Módulo 5 – Projeto de Banco de Dados (1) Diretrizes e orientações para projeto de BD (2) Normalização de um banco de dados relacional (3) Programação de um banco de dados integrandoo com Java: JDBC Aula 1 - 14:23 15 Apresentação – Disciplina • Módulo 6 – Processamento de Transações – Teoria do processamento de Transações – Técnicas de controle de concorrência – Técnicas de recuperação de banco de dados Prova 2 Aula 1 - 14:23 16 Avaliações • Prova I = Módulo 1 + Módulo 2 + Módulo 3 • Prova II = Módulo 4 + Módulo 5 + Módulo 6 • Projeto – Fase I • Modelagem ER (DER) – Fase II • Otimizações no modelo – Fase III • Sistema acessando a base de dados (PostgreSQL) Aula 1 - 14:23 17 Avaliações • Nota 1 – 80% da Prova I – 20% da Fase I do Projeto • Nota 2 – 80% da Prova II – 20% da Fase II do Projeto • Nota 3 – Projeto final • Média = Nota 1 + Nota 2 + Nota 3 3 Aula 1 - 14:23 18 Controle de frequência • 25% de 35 aulas = 9 aulas • Horário das aulas Aula 1 - 14:23 19 Bibliografia Aula 1 - 14:23 20 Banco de Dados DEFINIÇÃO DE BANCO DE DADOS 14:23 21 Emprego de BD • Representam papel crítico em todas as áreas de uso de computadores Aula 1 - 14:23 22 Emprego de BD • Um banco de dados é uma coleção de dados relacionados • Dados representam fatos que podem ser gravados e que possuem um significado implícito • Exemplo: nomes e números de telefone podem ser gravados em uma agenda de papel ou agenda telefônica Aula 1 - 14:23 23 Emprego de BD • Outros exemplos – Banco de dados de clientes – Banco de dados de um banco – Catálogo de uma biblioteca Aula 1 - 14:23 24 Emprego de BD • Banco de dados possui um significado restrito: (1) Representa aspectos do mundo real • Mudanças no minimundo refletem no banco de dados (2) É uma coleção lógica e coerente de dados com algum significado inerente (3) É projetado, construído e povoado por dados atendendo a uma proposta específica • Possui um grupo de usuários e aplicações Aula 1 - 14:23 25 Emprego de BD • Um BD pode ser gerado e mantido manualmente ou de forma automatizada – Sistemas de arquivos permanentes • Aplicações escritas para tarefas específicas – Sistemas gerenciadores de banco de dados SGBD Sistema Gerenciador de Banco de Dados Aula 1 - 14:23 DBMS Database Management System 26 Emprego de BD Sistema de Arquivos Aplicativos Dados (arquivos) 14:23 Sistema de Banco de Dados Aplicativos SGBD Dados (arquivos) 27 Definição de SGBD • Um SGBD é uma coleção de programas que permite aos usuários criar e manter um banco de dados. • É um sistema de software de propósito geral que facilita a definição, construção, manipulação e compartilhamento de banco de dados entre vários usuários e aplicações Aula 1 - 14:23 28 Definição de SGBD Coleção de programas Aula 1 - 14:23 Programa 1 DEFINIÇÃO Programa 2 CONSTRUÇÃO ... MANIPULAÇÃO Programa N COMPARTILHAMENTO 29 Definição de SGBD • Definição – Especificar tipos de dados, estruturas e restrições para dados a serem armazenados no BD • Construção – Processo de armazenar os dados em uma mídia apropriada e controlada pelo SGBD • Manipulação – Inclui funções como pesquisas em BD para recuperar (resgatar) algum dado específico, atualizar o BD e gerar relatórios • Compartilhamento – Permite que múltiplos usuários acessem, concorrentemente, o banco de dados Aula 1 - 14:23 30 Definição de SGBD • Outras funções importantes – Proteção • Contra mau funcionamento e falhas em hardware e software e segurança contra acesso não permitido ou malicioso – Manutenção • Manutenção no sentido de atualização constante para bancos de dados muito antigos Aula 1 - 14:23 31 Definição de SGBD Aula 1 - 14:23 32 Um Exemplo: Universidade • Armazena-se dados para representar cada aluno, disciplina, turma, histórico escolar e pré-requisito como um registro no arquivo apropriado • Relacionamentos entre os registros • Manipulação do banco de dados envolve consulta e atualização Aula 1 - 14:23 33 Um Exemplo: Universidade • Exemplos de consultas – Recuperar uma lista de todas as disciplinas e notas – Listar os nomes e notas dos alunos matriculados na disciplina ‘Banco de dados’ oferecida no segundo semestre de 2008 – Listar os pré-requisitos do curso de ‘Banco de dados’ Aula 1 - 14:23 34 Um Exemplo: Universidade • Exemplos de atualizações – Alterar o tipo de aluno de ‘Silva’ para segundo ano – Criar outra turma 'para a disciplina ‘Banco de dados’ para este semestre – Inserir uma nota ‘A’ para ‘Silva’ na turma ‘Banco de dados’ do último semestre Aula 1 - 14:23 35 Um Exemplo: Universidade Aula 1 - 14:23 36 Banco de Dados I SISTEMA DE BD X TRADICIONAL SGBD Aula 1 - 14:23 37 Sistema de BD x Tradicional • Abordagem tradicional – Uso de arquivos e programação – Cada usuário define e implementa os arquivos necessários para uma aplicação específica – Exemplo: Universidade • Um arquivo para alunos e suas notas (secretaria) • Alunos e mensalidades (contabilidade) Redundância Aula 1 - 14:23 Ambigüidade Desperdício de armazenamento 38 Sistema de BD x Tradicional • Sistemas de Banco de Dados – Único repositório de dados • Acessado por diversos usuários • Acessado por diversas aplicações – Principais características (1) Natureza de autodescritiva de um sistema de BD (2) Isolamento entre programas e dados, e abstração de dados (3) Suporte a múltiplas visões dos dados (4) Compartilhamento de dados e processamento de transação multiusuário Aula 1 - 14:23 39 Natureza de autodescritiva de um sistema de BD • O sistema de banco de dados contém definição completa de sua estrutura e restrições • Catálogo do BD – Informações sobre a estrutura de cada arquivo, tipo e formato de armazenamento de cada item de dado e restrições – Metadados Aula 1 - 14:23 40 Natureza de autodescritiva de um sistema de BD • O catálogo é usado pelo: – Software de SGBD – Usuários do banco de dados que precisam de informações sobre a estrutura do banco de dados Aula 1 - 14:23 41 Isolamento entre programas e dados, e abstração de dados • Independência de dados do programa – A estrutura dos arquivos de dados é armazenada no catálogo do SGBD separadamente dos programas de acesso – Propriedade: independência programa-dados • Independência da operação do programa – Uma operação é especificada em duas partes: • A interface de uma operação inclui o nome da operação e os tipos de dados de seus argumentos • A implementação da operação pode ser alterada sem afetar a interface – Propriedade: independência programa-operação Aula 1 - 14:23 42 Isolamento entre programas e dados, e abstração de dados Independência programa-dados Independência programa-operação Abstração de Dados Aula 1 - 14:23 43 Abstração de Dados • Um SGBD oferece aos usuários uma representação conceitual dos dados – Não inclui detalhes sobre armazenamento – Operações implementadas Modelo de dados Aula 1 - 14:24 44 Qual é mais interessante? Nome do item de dado Posição Inicial do Registro Tamanho em caracteres Nome 1 30 NumeroDoAluno 31 4 35 4 39 4 Turma Curso_Hab Aula 1 - 14:24 ou 45 Abstração de Dados • Na abordagem de BD, todos os detalhes estão descritos no catálogo • Usuários e aplicações referem-se aos dados utilizando a representação conceitual 14:24 46 Suporte para Múltiplas Visões dos Dados • Visão – Subconjunto do banco de dados – Contém dado virtual derivado dos arquivos do banco de dados, mas que não estão armazenados explicitamente • SGBD multiusuário – Usuários têm uma série de aplicações distintas – SGBD precisa oferecer facilidades para definir múltiplas visões Aula 1 - 14:24 47 Compartilhamento de Dados e processamento de transação multiusuários • SGBD multiusuário – Permite que múltiplos usuários acessem o banco de dados ao mesmo tempo • Software de controle de concorrência – Garante que vários usuários tentando atualizar o mesmo dado faça isso de uma maneira controlada • Resultado dessas atualizações seja correto • Aplicações de processamento de transação online (OLPT) – Regra fundamental do SGBD multi-usuário: suporte a execução de transações concorrentes Aula 1 - 14:24 48 Compartilhamento de Dados e processamento de transação multiusuários • Transação – Fundamental para muitas aplicações de banco de dados – Programa em execução ou processo que inclui um ou mais acessos ao banco de dados – Propriedades ACID • Atomicidade: A transação será executada totalmente ou não será executada • Consistência: Transações não podem quebrar as regras de negócio e de BD. Banco continuará sendo consistente. • Isolamento: Transação não será interferida por outra transação concorrente. • Durabilidade: Garante que o que foi salvo não será mais perdido. Aula 1 - 14:24 49 Freqüência! Aula 1 - BD - Prof. Bruno Moreno 16/08/2011