Aula 1 - Conceitos Basicos, Tipos de Usuarios, Vantagens de utilizar um BD ========================================================================== politica da Final, presenca em aula 75% Bibliografia pagina do curso (www.inf.ufpr.br/carmem/ci218) estrutura da disciplina: arquitetura de SGBDs modelo relacional projeto de BD otimizacao de consultas controle de concorrencia / recuperacao Conceitos Basicos: ----------------- - Aplicacoes de Banco de Dados: 1) tradicionais: sistema bancario, reserva de hotel e passagem, biblioteca 2) multimidia: armazena figura, video, som 3) sist. de informacao geografica (GIS) 4) datawarehouse e OLAP (on-line analytical processing) 5) sistemas de tempo real e BD ativos 6) busca de info na WEB - Banco de dados: e' uma colecao de dados relacionados (dado X informacao) | fato registrado . possui: - minimundo: representa uma porcao/aspecto do mundo real - estrutura logica com significado inerente - aplicacao especifica e usuarios interessados na aplicacao . pode ser informatizado ou nao - SGBD (Sistema Gerenciador de Banco de Dados) um sistema de software de finalidade generica que facilita o processo de definicao, construcao e manipulacao de banco de dados. Sistema de Banco de dados: Programa de Aplicacao | SGBD | Banco de Dados - Exemplo: sistema bancario Cliente: nome, CPF, endereco, telefone CC: numCC, CPF, saldo, limCredito credito: numTrans, CC, data, valor debito: numTrans, CC, data, valor . elemento de dados (campos) . tipo de dado . "definir um BD": especificar os elementos de dados e seus tipos "construir um BD": povoar o BD "manipular um BD": consultar, atualizar - Profissionais: 1) DBA (administradores de BD): responsavel por autorizar o acesso, cooredenar e monitorar sua utilizacao, adquirir recursos de hardware e software quando necessario, avaliar desempenho e problemas de seguranca do sistema 2) Projetista do BD: responsavel por escolher as estruturas para representar e armazenar dados e visoes 3) Usuario Final: podem interagir com o BD atraves de: - aplicacoes de BD: usuarios leigos - linguagens do SGBD: usuarios casuais a sofisticados 4) Analista de Sistemas e Programadores: determinam as necessidades dos usuarios finais e implementam as aplicacoes 5) Projetistas do SGBD: que especificaram e implementaram o SGBD 6) Produtores de Ferramentas para o SGBD - Vantagens de Utilizar um SGBD ----------------------------- 1) Independencia entre programa e dados: Em sistemas que utilizam sist. de arquivos, a definicao das estruturas de dados e' feita dentro do programa (como em C, Pascal, Java). Ao contrario, SGBDs mantem um catalogo (ou dicionario de dados) que consiste de metadados, ou seja, dados sobre os dados. Assim, quando a estrutura dos dados e' alterada isso nao implica na alteracao dos programas que fazem a manipulacao dos dados. 2) Independencia entre operacao e programa: em SGBDs OO e relacional/objeto, funcoes/procedimentos para manipulacao dos dados armazenados tambem fazem parte do BD. Estes procedimentos escondem os detalhes sobre armazenamento e implementacao, que nao sao de interesse da maior parte dos usuarios de bancos de dados. Isto e' chamado de abstracao de dados. Mantendo a interface destas funcoes inalterada, os programas que as utilizam nao precisam ser alterados quando a implementacao interna da funcao muda. Isto e' chamado de independencia entre operacao e programa. 3) Controle de acesso mais especializado 4) Suporte a Visoes: Um mesmo conjunto de dados pode ser apresentado a usuarios diferentes de forma distinta. Ex: visao do cliente do banco, visao do gerente 5) Controle de Redundancia: desvantagens da redundancia de dados: espaco de armazenamento desperdicado, inconsistencia de dados 6) Compartilhamento de Dados e Trnasacoes: Exemplo: - caixa quer descontar um cheque de R$ 100 do cliente X - Cliente X: quer sacar R$ 50 do caixa eletronico Se o saldo atual de X no banco e' R$ 500, qual o saldo final no final destas duas transacoes? 7) Armazenamento Persistente para Objetos de Programas e Estruturas de Dados Ex: ObjectStore e O2 8) Fornecimento de Interfaces Multiplas do Usuario: - baseadas em menus - baseadas em formularios - graficas - de linguagem natural - para usuarios leigos (especificos para uma aplicacao) - para o DBA (criar contas, ajustar param do sistema, conceder autorizacoes, modificar um esquema, reorganizar as estruturas de armazenamento, etc.) 9) Imposicao de restricoes de integridade: Ex: - restricoes de tipo: saldo do tipo real - unicidade: nao existe mais de cliente com o mesmo CPF - integridade de referencia: toda transacao deve ser de uma CC existente. 10) Facilidades de Copia e Recuperacao Algumas vantagens adicionais: - potencial para impor padroes - tempo reduzido para o desenvolvimento de aplicacoes - flexibilidade - disponibilidade de info. atualizadas para todos os usuarios - economias de escala Modelo de Dados --------------- Uma coletanea de conceitos que podem ser utilizados para descrever a estrutura de um banco de dados (tipos de dados, relacionamentos e restricoes) e tambem um conjunto de operacoes basicas para especificar recuperacoes e atualizacoes no banco de dados. Esquemas e Instancias --------------------- Esquema: e' a descricao do banco de dados. Em uma ling. de programacao comum, isto e' equivalente a definicao de um tipo de dado. Instancia: e' o banco de dados em si. Em uma ling. de programacao, isto e' equivalente a uma declaracao de uma variavel do tipo definido e o seu valor. Arquitetura de Tres Niveis -------------------------- Para garantir a independencia de dados. Esquema Linguagem Usuario Final .... Usuario Final ------- --------- | | VISAO VISAO Nivel externo VDL (View EXTERNA EXTERNA Externo Def. Lang) \ / ESQUEMA CONCEITUAL Nivel conceitual DDL (Data | Conceitual Def. Lang) | ESQUEMA INTERNO Nivel interno SDL (Storage | Interno Def. Lang) | Banco de Dados Armazenado DML (Data Manipulation Lang) - devem existir transformacoes de solicitacoes entre os diversos niveis: mapeamento externo/conceitual e mapeamento conceitual/interno - independencia de dados: . logica: possibilidade de alterar o esquema conceitual sem algeara o esquema externo (de aplicacao) . fisica: possibilidade de alterar o esquema fisico sem alterar o esquema conceitual - linguagens: nem sempre as VDL, DDL, e SDL sao linguagens distintas. Ex: SQL engloba VDL + DDL + DML - DML: podem ser: - declarativas, orientada a conjunto: SQL - procedural, orientada a registro: precisam de linguagem hospedeira - Utilitarios de um SGBD: . para carga (de outros sistemas e arquivos) . para backup . reorganizacao de arquivos . monitoramento de desempenho . ferramentas CASE para projeto do BD . dicionario de dados: alem do catalogo, guarda decisoes de projeto, padroes de utilizacao, etc. . ambientes de desenvolvimento de aplicacoes: Ex: PowerBuilder . software de comunicacoes - Classificacao de SGBDs: . por modelo: relacional, objeto, relacional-objeto (ou relacional estendido), rede, hierarquico, XML . por numero de usuarios: monousuario, multiusuario . por numero de sites: - centralizado - distribuido : homogeneo heterogeneo (ou SGBD federado)