BD1: Introdução Dr. Fabiano Cavalcanti Fernandes [email protected] Brasília - DF 1 Banco de Dados I Agenda 1- Plano de ensino 2- Encontros 3- Avaliações 4- Trabalhos e leituras Banco de Dados (BD) BDs fazem parte do nosso dia-a-dia! – operação bancária; – reserva de hotel, passagens aéreas; – matrícula em um curso da Universidade/Instituto; – compra de um livro, brinquedo, computador; •Aplicações tradicionais de BD •BD Multimídia, GIS (mapas, tempo, imagens de satélite), DW e OLAP, NOSQL, Real-time, etc. •Exemplos SGBD: Oracle, DB2, Sybase, Informix, Cassandra, Mongo DB, Neo4J, SQL Server, Postgresql, Mysql, Access, SQLite, etc. Banco de Dados (BD) Área de BD: – pesquisa e desenvolvimento de tecnologias para dar suporte eficiente ao gerenciamento de dados de sistemas de informação; Conceitos • Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação – exemplos: endereço, data de nascimento • Informação: fato útil que pode ser extraído direta ou indiretamente a partir dos dados – exemplo: idade Conceitos BD: coleção de dados inter-relacionados e persistentes que representa um subconjunto dos fatos presentes em um domínio de aplicação (universo de discurso ou mini mundo); BD: coleção de dados logicamente coerentes com significado inerente; Um conjunto aleatório de dados não pode ser considerado um BD; BD: projetado, construído e populado com dados para um propósito específico; Possui um grupo de usuários e aplicações. Sistema de Gerência de BD (SGBD/DBMS): coleção de programas responsável pelo gerenciamento dos dados em um BD Por quê usar BD? Considere o contexto de uma grande organização que NÃO utiliza BD – exemplo: domínio de uma Universidade • várias divisões gerenciais (setores com suas aplicações) • grande volume de dados • aplicações manipulam dados comuns Por quê usar BD? • Cada aplicação descreve os seus dados – nomes e formatos próprios – dados são particulares de cada aplicação (isolamento: acesso privado) • Gerenciamento local – procedimentos de manipulação de dados • implementados pela própria aplicação • implementados por softwares de gerenciamento de arquivos – manipulação de dados em mais baixo nível » varreduras em cadeias de bytes Problemas • • • • • • • • • Redundância não-controlada Manutenção de dados da Organização Inclusão professor; Alteração disciplina Falta de padronização dificulta integração e reutilização de programas Formas restritas de acesso novas operações de manipulação de dados exigem mudança no código da aplicação Falta de segurança exemplo: falha em uma operação Com BD • • • Evita (ou minimiza) estes problemas! Um BD é definido em mais detalhes como: “Uma coleção de dados operacionais inter-relacionados e persistentes. Estes dados são gerenciados de forma independente dos programas que os utilizam, servindo assim a múltiplas aplicações de uma Organização.” Vantagens • Dados armazenados em um único local – evita redefinições; minimiza redundância • Dados compartilhados pelas aplicações – facilita integração de aplicações; evita redefinições • Maior independência de dados – novas operações de manipulação de dados não requerem modificação “pesada” no código da aplicação – aplicações não se preocupam mais com o gerenciamento dos dados • Maior flexibilidade de acesso – linguagens para BD, acesso autorizado, armazenamento persistente, • manipulação de dados em mais alto nível – varreduras em linhas de tabelas, instâncias de classes, ... Quando não usar • • • • • • • Quando minha aplicação é simples lida com poucos dados operacionais podem ser mantidos em um ou poucos arquivos Quando minha aplicação faz processamento pesado mas não requer gerenciamento de dados operacionais exemplo: algumas aplicações científicas Quando o custo para instalação e administração de um SGBD é muito alto – equipamento, pessoal, treinamento, ... Exemplo • • Pg. 7-14 Navathe Atores envolvidos: • DBA – Data Base Administrators: autoriza o acesso ao BD, coordena e monitora seu uso, adquire recursos de hardware e de software. Responsável pela segurança e tempo de resposta. • DD (Database Designers) – Identifica os dados a serem armazenados, escolhe estruturas apropriadas, identificação de requisitos e visões (views). • End users • Analistas de sistemas/programadores • Behind the scene: DBMS system designers, tool developers, maintenance personnel Exercícios • • 1.1 a 1.14 do livro Navathe Exercícios do cap 1 Date e Silberchatz SGBD • • Definição “Sistema cujo objetivo principal é gerenciar o acesso e a correta manutenção dos dados armazenados em um banco de dados.” • Funções básicas – Métodos de acesso – Integridade Semântica – Segurança – Concorrência – Independência Funções Básicas de um SGBD • • Métodos de acesso DDL (Data Definition Language) • especificação do esquema do BD (dados e seus tipos de dados, índices, ...) • DML (Data Manipulation Language) • manipulação de dados (I, A, E, C) • Processamento eficaz de consultas – considera relacionamentos, predicados seleção, volume de dados, índices, ... de – exemplo: buscar professores que lecionam em turmas lotadas em salas do quarto andar Funções Básicas de um SGBD • • • • • • • • • Integridade semântica – garantia de dados sempre corretos com relação ao domínio de aplicação – exemplos estados válidos para os dados (I sexo; A salário) relacionamentos válidos entre os dados (turma N:1 disciplina; apenas professores doutores lecionam disciplinas de pós-graduação) – especificação de Regras de Integridade (RIs) testes e/ou ações parte integrante da DDL Funções Básicas de um SGBD • • • Segurança – evitar violação de consistência dos dados – segurança de acesso (usuários e aplicações) • matrizes de autorização • visões • – segurança contra falhas (recovery) • monitoração de transações • Transação conjunto de operações a serem realizadas no BD princípio do “tudo ou nada” • • categorias de falhas transação, sistema e meio de armazenamento manutenção de histórico de atualizações (logs) e backups do BD Funções Básicas de um SGBD • Concorrência – evitar conflitos de acesso simultâneo a dados por transações (scheduler) – principais técnicas bloqueio (lock) e timestamp • Independência transparência da organização dos dados • • – níveis de independência Independência física – transparência de organização (esquema) física dos dados – exemplos: organização dos arquivos, indexação, distribuição, ordenação • Independência lógica – transparência do esquema lógico do BD – exemplo: visões (vários esquemas externos) Funções Básicas de um SGBD • Níveis de independência (níveis de abstração) – definem uma arquitetura de três esquemas