BANCO DE DADOS Lima Jan / 2017 1
Índice 1.Introdução a Sistemas de Banco de Dados Evolução dos Sistemas de Informação Conceitos de Bancos de Dados Usuários de Banco de Dados Banco de Dados X Linguagens 2.SGBD Porque usar SGBD Arquiteturas de SGBD Níveis de Abstração SGBD X SGA 2
1.Introdução a Sistemas de Banco de Dados Evolução dos Sistemas de Informação Conceitos de Bancos de Dados Usuários de Banco de Dados Banco de Dados X Linguagens 3
...Evolução dos Sistemas de Informação... Sistema de Informação é um sistema que produz INFORMAÇÕES Dados Sistema de Informação Informação DADOS + CÓDIGO + APRESENTAÇÃO Funcionalidade Interface com Usuário 4
...Evolução dos Sistemas de Informação... Sistema de Informação é um sistema que produz INFORMAÇÕES Dados Sistema de Informação Informação DADOS arquivos convencionais inicialmente seriais (em fita magnética) ou randômicos (em disco) e depois sequencial-indexados (em disco) 5
...Evolução dos Sistemas de Informação... SISTEMAS ISOLADOS nr-conta, nome, ender, sld-atu, sld-med, cpf-cgc, dt-nasc CONTA CORRENTE cpf-cgc, nome, ender, nr-atual-cotas, dt-nasc FUNDOS DE INVESTIMENTOS Qual o problema? 6
...Evolução dos Sistemas de Informação... SISTEMAS QUE USAM SGBD cpf-cgc, nome, ender, dt-nasc nºconta, sld-atu, sld-med, cpf-cgc SGBD cpf-cgc, nr-cotas CONTA CORRENTE FUNDO DE INVESTIMENTO 7
...Evolução dos Sistemas de Informação... Técnicas de bancos de dados ressaltam o dado como um recurso importante da empresa, devendo ser: compartilhado controlado de forma centralizada para se saber: quem o usa onde é usado com que finalidade está sendo usado 8
...Evolução dos Sistemas de Informação Nos sistemas que usam SGBD integração de dados por toda a empresa dados da empresa compartilhados por todos os sistemas sistemas enxergam os dados independentemente de sua distribuição nos arquivos programas de aplicação desconhecem detalhes de armazenamento / recuperação de dados sem redundância de dados não há inconsistência 9
INTRODUÇÃO A BANCO DE DADOS... Atualmente muitas de nossas atividades interagem com bancos de dados: - retirar, transferir, depositar dinheiro num banco - efetuar pagamento (impostos, cartão de crédito, ) - reservar passagem aérea - efetuar compras,... Exemplos acima envolvem aplicações tradicionais de Bancos de Dados (dados numéricos ou textuais) 10
...INTRODUÇÃO A BANCO DE DADOS Tipos de bancos de dados: - Bancos de Dados numéricos e textuais - Bancos de Dados Multimidia - Sistemas de Informações Geográficas - Data Warehouse 11
CONCEITOS DE BANCO DE DADOS... 12
...CONCEITOS DE BANCO DE DADOS... BIT menor informação armazenável BYTE conjunto de bits que representam um caractere ATRIBUTO conjunto de bytes que representam uma propriedade de uma entidade (nome do aluno) REGISTRO conjunto de atributos de uma entidade (aluno) ARQUIVO conjunto de registros logicamente relacionados (conjunto de alunos) BANCO DE DADOS conjunto de arquivos interrelacionados (alunos, cursos, disciplinas, ) 13
...CONCEITOS DE BANCO DE DADOS... BANCO DE DADOS (BD) conjunto de arquivos interrelacionados SISTEMA GERENCIADOR DE BANCO DE DADOS (SGBD) conjunto de programas que permitem criar e manipular bancos de dados (ORACLE, SQL SERVER, MySQL, POSTGRESQL, DB2, ACCESS, ) SISTEMA DE BANCO DE DADOS (SBD) dados (BD) + software para gerenciamento de dados (SGBD) 14
...CONCEITOS DE BANCO DE DADOS... Definir banco de dados especificar : o Arquivos (conjunto de entidades) e seus atributos com respectivos tipos de dados (inteiro, decimal, data,...) o Relacionamentos entre os arquivos o Restrições de integridade dos dados Criar banco de dados e carregá-lo em memória secundária 15
...CONCEITOS DE BANCO DE DADOS... Manipular banco de dados (incluir, alterar, excluir, consultar dados) Permitir acessos concorrentes aos dados feitos por usuários e programas de aplicação Preservar a consistência e integridade dos dados armazenados no BD Permitir o acesso aos dados apenas aos usuários autorizados 16
...CONCEITOS DE BANCO DE DADOS... Um BD representa aspectos do mundo real Um BD é projetado, construído e os dados são nele armazenados com algum propósito Um BD é definido e mantido por uma coleção de programas (SGBD) Sistema de Banco de Dados = Dados + Programas (SBD = BD + SGBD ) 17
...CONCEITOS DE BANCO DE DADOS... CHU - 1983 Um banco de dados é um conjunto de arquivos relacionados entre si DATE - 1985 Um banco de dados é uma coleção de dados operacionais armazenados usados pelos sistemas de aplicação de uma determinada organização 18
...CONCEITOS DE BANCO DE DADOS... Dados Interrelacionados Projetos Aloca Funcionários Fornece Lota Produtos Fornecedores Departamentos 19
...CONCEITOS DE BANCO DE DADOS... ELMASRI & NAVATHE - 1989 Um banco de dados é uma coleção de dados relacionados ENGLES Um banco de dados é uma coleção de dados operacionais usados pelos sistemas aplicativos de uma empresa 20
...CONCEITOS DE BANCO DE DADOS... Dados Operacionais Aluno matric nome sexo curso 0001 Maria F SI 0002 Pedro M CC 0003 Carlos M SI Turma Instância do BD turma disc ano semestre prof TN1 BD1 2013 1 Luis TM2 LP2 2014 2 Edna TN2 BD2 2013 2 Luis Historico Disciplina PreRequisito matric turma nota disc nome cred disc1 disc2 0001 TN1 8 BD1 Bco Dados 1 6 BD2 BD1 0002 TM2 10 BD2 Bco Dados 2 6 BD2 LP2 0001 TN2 7 LP2 Ling Prog 2 4 BD1 LP2 21
...CONCEITOS DE BANCO DE DADOS... Dados Operacionais Esquema do BD Aluno matric nome sexo curso Turma turma disc ano semestre prof Historico matric turma nota Disciplina disc nome cred PreRequisito disc1 disc2 22
...CONCEITOS DE BANCO DE DADOS... Dados Operacionais Aluno matric nome sexo curso Turma Esquema do BD turma disc ano semestre prof Historico matric turma nota Disciplina disc nome cred PreRequisito disc1 disc2 Aluno (matric, nome, sexo, curso) Historico (matric, turma, nota) Turma (turma, disc, ano, semestre, prof) Disciplina (disc, nome, cred) PreRequisito (disc1, disc2) Esquema Relacional 23
...CONCEITOS DE BANCO DE DADOS... Dados Operacionais Aluno matric nome sexo curso 0001 Maria F SI 0002 Pedro M CC 0003 Carlos M SI Turma Estado do BD turma disc ano semestre prof TN1 BD1 2013 1 Luis TM2 LP2 2014 2 Edna TN2 BD2 2013 2 Luis Historico matric turma nota 0001 TN1 8 0002 TM2 10 0001 TN2 7 Disciplina disc nome cred BD1 Bco Dados 1 6 BD2 Bco Dados 2 6 LP2 Ling Prog 2 4 PreRequisito disc1 disc2 BD2 BD1 BD2 LP2 BD1 LP2 24
...CONCEITOS DE BANCO DE DADOS Sistema de Banco de Dados compõe-se de: Dados - em um ou mais arquivos Metadados - Dicionário de Dados (catálogo) Software - SGBD (interface entre usuários e dados) Hardware - discos Usuários - DBA (Administrador de BD), Programador de Aplicação, Usuário Final,... 25
USUÁRIOS DE BANCO DE DADOS... Em um pequeno banco de dados de uso pessoal uma só pessoa vai definir, construir e manipular o banco de dados Em um grande banco de dados com muitos usuários e com restrições de acesso há alguns perfis de pessoas que interagem com o banco de dados: Administrador do Banco de Dados (DBA) Projetista do Banco de Dados Analista de Sistemas Programador de Aplicações Usuário Final 26
...USUÁRIOS DE BANCO DE DADOS... DBA - Administrador de BD define: que dados manter no BD estrutura que deve ter o BD estratégias de acesso aos dados que esquema de back-up adotar procedimentos de autorização (permissão) monitora / sintoniza/ reorganiza o BD 27
...USUÁRIOS DE BANCO DE DADOS... Projetista de Banco de Dados: identifica que dados armazenar no BD define estruturas apropriadas para representar e armazenar os dados no BD cria projeto do BD que atenda as necessidades dos usuários 28
...USUÁRIOS DE BANCO DE DADOS... Analista de Sistemas identifica as necessidades dos usuários especifica as transações que atendam as necessidades dos usuários Programador de Aplicação codifica programas para manter (ler, incluir, atualizar, excluir) o BD 29
...USUÁRIOS DE BANCO DE DADOS Usuário Final Consulta, Atualiza o Banco de Dados via: linguagem de consulta (query language ) programas de aplicação 30
Bancos de Dados X Linguagens DDL - Linguagem de definição de dados (create, drop, alter...) DML - Linguagem de manipulação de dados (insert, update, delete, select,...) DCL - Linguagem de controle de acesso aos dados (grant, revoke,...) TCL - Linguagem de controle de transação (commit, rollback,...) Os comandos acima são da linguagem SQL 31
2.SGBD Porque usar SGBD Arquiteturas de SGBD Níveis de Abstração SGBD X SGA 32
SGBD Sistema Gerenciador de Banco de Dados Um Sistema Gerenciador de Banco de Dados (SGBD) é um conjunto de programas que permitem aos usuários criar e manter um banco de dados. O SGBD é um software de propósito geral, que facilita o processo de definição, construção e manipulação de um bancos de dados. 33
PORQUE USAR UM SGBD... Usuários / programadores Programas de Aplicação / Consultas SBD SBD Sistema de BD SW Processamento Consultas SW Acesso a BD SW SGBD SGBD SW que permite definir criar e manter um BD BD Catálogo BD = Dados + Metadados 34
...PORQUE USAR UM SGBD... Características de um SGBD: BD = Dados + Metadados Um sistema de Banco de Dados contém, além dos dados normais, uma descrição completa desses dados num dicionário de dados (Catálogo) 35
... PORQUE USAR UM SGBD... Dados Operacionais Aluno matric nome sexo curso 0001 Maria F SI 0002 Pedro M CC 0003 Carlos M SI Turma Instância do BD turma disc ano semestre prof TN1 BD1 2013 1 Luis TM2 LP2 2014 2 Edna TN2 BD2 2013 2 Luis Historico Disciplina PreRequisito matric turma nota disc nome cred disc1 disc2 0001 TN1 8 BD1 Bco Dados 1 6 BD2 BD1 0002 TM2 10 BD2 Bco Dados 2 6 BD2 LP2 0001 TN2 7 LP2 Ling Prog 2 4 BD1 LP2 36
... PORQUE USAR UM SGBD... Catálogo para o BD do slide anterior Relações Colunas Relação Colunas Coluna Tipo de dado Relação Aluno 4 Matric Integer Aluno Historico 3 Nome Character (30) Aluno Turma 5 Sexo Character(1) Aluno Disciplina 3 Curso Character(2) Aluno PreRequisito 2 Matric Integer Historico Turma Character(3) Historico Nota Decimal(3,1) Historico......... 37
...PORQUE USAR UM SGBD... Características de um SGBD: Abstração de dados Um SGBD permite uma representação conceitual dos dados evitando preocupação com detalhes de armazenamento de dados Suporte a múltiplas visões de dados Cada usuário acessa apenas o que lhe é dado direito a acessar 38
... PORQUE USAR UM SGBD... Características de um SGBD: Controle de redundância Economiza espaço em disco Reduz esforço duplicado(dado atualizado uma só vez) Evita inconsistência de dados Compartilhamento de dados Controla concorrência de acesso multiusuário Facilita criação de visões de porção de dados que interessa a grupos de usuários 39
...PORQUE USAR UM SGBD... Características de um SGBD: Relacionamentos complexos - Uma entidade pode relacionar-se com outras de forma binária, ternária,... Restrições de Integridade De dados, especificando o tipo de dado, checando valores, unicidade (identificador sem repetição) De relacionamento (Integridade referencial) 40
...PORQUE USAR UM SGBD... Características de um SGBD: Segurança contra acesso indevido Sistema de controle de acesso garante acesso específico a cada usuário Múltiplas Interfaces Acesso via menu e formulários para usuário final,via linguagem natural (query language) e para programador via linguagem de programação 41
...PORQUE USAR UM SGBD... Características de um SGBD: Backup e Recuperação sistema de backup permite recuperar versão anterior do banco de dados em caso de falha de hardware ou de software permite recuperar estado anterior do banco de dados em caso de processamento incompleto de transação 42
...PORQUE USAR UM SGBD Características de um SGBD: Dados separados de programas Definição das estruturas de dados armazenada fora dos programas de aplicação e dentro do SGBD (catálogo): alteração de estruturas de dados evita recompilação de programas 43
ARQUITETURAS DE SGBD... Arquitetura de 3 Níveis (Visões) Visão de usuário... Visão Total do BD Visão do Armazenamento 44
...ARQUITETURAS DE SGBD... Arquitetura de 3 Níveis (ANSI/SPARC 75) (American National Standard Institute / System Planning And Requirements Commitee) Externo... Conceitual Interno 45
...ARQUITETURAS DE SGBD Arquitetura de 3 Níveis Visão Externa... Visão Externa Nível Externo visão dos usuários Esquema Conceitual Esquema Interno BD Nível Conceitual esconde detalhes de armazenamento físico dos dados Nível Interno descreve a estrutura de armazenamento físico do BD e os caminhos de acesso aos dados 46
NÍVEIS DE ABSTRAÇÃO... EXTERNO visão de um subconjunto do nível conceitual (visão que um aplicativo tem dos dados) visão que cada usuário tem do sistema administrador da aplicação: usuário 47
... NÍVEIS DE ABSTRAÇÃO... CONCEITUAL visão conceitual e global dos dados, representando o mundo real consiste de entidades, relacionamentos e atributos deve envolver todos os objetos do sistema de informação administrador de dados (ad) 48
... NÍVEIS DE ABSTRAÇÃO... INTERNO visão dos diversos registros armazenados em um banco de dados alteração no nível interno (estrutura de armazenamento) não deve afetar o modelo conceitual administrador de banco de dados (dba) 49
... NÍVEIS DE ABSTRAÇÃO ESQUEMA EXTERNO: FUNC (Nome, DataNasc) Arq. 3 Esquemas ESQUEMA CONCEITUAL: FUNC (Nome, DataNasc, Local) CLIEN (Nome, DataCadast, LimCred) ESQUEMA INTERNO: FUNC (Nome: STRING (30), DataNasc: Date (8), Local: STRING (20)) CLIEN (Nome: STRING(40), DataCadast: Date (8), LimCredl: Int (6)) 50
INDEPENDÊNCIA DE DADOS... Independência de Dados A capacidade de se modificar o esquema em um nível sem ter que modificar o esquema no próximo nível mais alto. Há dois tipos de independência de dados: - Independência Lógica de Dados - Independência Física de Dados 51
...INDEPENDÊNCIA DE DADOS... Independência Lógica de Dados A capacidade de se modificar o esquema conceitual sem ter que modificar o esquema externo ou os programas de aplicação. Ex.: adição de uma coluna numa tabela no esquema conceitual não exige alteração dos programas 52
... INDEPENDÊNCIA DE DADOS Independência Física de Dados É a capacidade de se modificar o esquema interno sem ter que modificar os esquemas conceitual e externo. Ex.: a inclusão de um índice no esquema interno não exige alteração dos programas nem do esquema conceitual 53
SGBD X SGA... SGBD - software responsável pela definição, criação e manutenção de um BD SGA - conjunto de rotinas do sistema operacional responsáveis pelo sistema de arquivos (SA) e respectivos métodos de acesso SA - arquivos convencionais (sequenciais, indexados, randômicos) e suas operações 54
... SGBD X SGA... SGA Máquina Rede Hierárquico SGBD Específico Mundo real MER SGBDOO Relacional 55
... SGBD X SGA Alto nível Baixo nível SGA SGBD 56