Introdução a Computação Aula 04 SGBD Sistemas Gerenciadores de Bancos de Dados Prof. MSc. Edilberto Silva edilms@yahoo.com
Conceitos Básicos DADOS: são fatos em sua forma primária. Ex: nome do funcionário, número peças de um estoque... INFORMAÇÃO: conjunto de fatos organizados de maneira significativa Ex: com os dados das peças em estoque, pode-se obter a lista de peças em falta.
Sistema de Arquivos CEFET Controle Acadêmico Controle Administrativo Alunos Turmas Deptos. Disciplinas Disciplinas Turmas Salas Professores Cada aplicação com seu conjunto de dados Descrição dos dados dentro da aplicação Falta de compartilhamento Redundância de Dados Controle Pessoal Deptos. Professores Funcionários Difícil Manutenção Dificuldades na segurança dos dados
Por que não usar sistemas de arquivos? Sistemas de Arquivos: Não disponibilizam linguagem de consulta Esquema de dados é limitado Acesso concorrente aos dados por diversos usuários ou aplicações não apresenta segurança adequada
Por que não usar sistemas de arquivos? Sistemas de Arquivos: Não permitem o armazenamento de grandes volumes de dados Sistema de backup é ineficiente Acesso aos dados é mais complexo
O que é um Banco de Dados? Conjunto estruturado de dados de uma empresa ou aplicação, armazenado em computador e cuja organização é determinada por um modelo de dados Usados na área comercial e de negócios, engenharia, medicina, educação, científica, gestão, etc.
Sistema de Banco de Dados É um sistema de armazenamento de dados cujo objetivo global é registrar e manter informação. um sistema de Banco de Dados envolve quatro componentes maiores: dados, hardware, software e usuários
SGBD - Sistema Gerenciador de Banco de Dados Conjunto de aplicativos cujo principal objetivo é gerenciar o acesso e a correta manutenção dos dados armazenados em um banco de dados. Ex: Oracle, SQL Server, DB2, PostGreSql
SGBD - Sistema Gerenciador de Banco de Dados
Características de um Garantir a ACID SGBD... Atomicidade, Consistência Isolamento e Durabilidade Segurança - criação e manipulação de dados de maneira amigável e proteção aos dados quanto aos acessos indesejáveis ; Integridade - garantia da qualidade dos dados;
Características de um SGBD... Controle de Concorrência acesso aos dados de forma concorrente; Recuperação de Paradas e Falhas - no caso de pane o Banco de Dados possa ser recuperado de maneira confiável
Aluno Disciplina Dados Nome Matrícula Turma Dhara Magalhães 56743223 001 Paulo Silva 56743217 001 Nome Número CH Origem Banco de Dados I 015 100 CDSI Álgebra Linear 002 67 CMAT Estruturas de Dados 009 100 CGES Pré-requisito NumDisc NúmeroPreReq 015 009 015 010
Dados sobre dados Metadados Permitem a manutenção, representação e identificação dos dados Garantem a consistência e a persistência das definições das unidades de dados Proporcionam aos usuários um entendimento comum das unidades de dados
Metadados Tabela n Colunas Primary Key Estudante 4 Matrícula Disciplina 5 Código Matrícula 3 Nome + Código Tabela: Estudante Coluna Tipo Tamanho Nulo Default Matricula int 4 N Nome varchar 50 N DataNascimento date 8 N Getdate() NumTelefone varchar 12 S
Evolução dos SGBDs Os primeiros SGBDs comerciais surgiram no final dos anos 60 Evoluíram dos sistemas de arquivos básicos Modelos iniciais: Hierárquico ou baseado em árvores Redes baseado em grafos
Vantagens da Utilização de um SGBD Projetado para gerir um grande volume de dados A importância da informação nas empresas determina o valor do banco de dados Controle de Redundância - garantindo consistência
Vantagens da Utilização de um SGBD Restrição de Acesso Controle de Integridade Compartilhamento dos Dados Mecanismos de Backup e Recuperação
Vantagens da Utilização de um SGBD Metadados organizados num catálogo/dicionário de dados Múltiplas visões de usuário Representação de relacionamentos e estruturas complexas entre dados, sejam eles convencionais ou não
Outras vantagens - SGBDs Uso de padrões Redução do tempo de programação de aplicações Flexibilidade Disponibilidade de informação atualizada para todos os usuários Economia da empresa na organização dos dados
Classificação Atual dos SGBDs Modelo de Dados Rede Hierárquico Relacional Objeto-Relacional Orientado a Objetos SGBD Distribuído Homogêneos Heterogêneos SGBD federados ou Sistemas Multi-Bases
Principais SGBDs Oracle xx G (Grid computing) IBM DB2 Microsoft SQL Server PostgreSQL (Objeto Relacional) MySQL ADABAS*
Banco de dados não convencionais XML (extensible Markup Language) JSON (JavaScript Object Notation) SqlLite (for Android/iOS) Banco de Dados Multimídia: figuras, vídeos e sons; Bancos de Dados Geográficos: mapas dos mais diversos temas, dados climatológicos, imagens de satélite... Bancos de Dados Datawarehouses e On-Line Analitical Processing (OLAP): informações de banco de dados muito grandes para tomada de decisões;
Exemplo de JSON { "firstname":"john", "lastname":"smith", "age": 25, "address":{ "streetaddress":"212nd Street", "city":"new York", "state":"ny", "postalcode": 10021 }, "phonenumbers": [ { "type":"home", "number":"212555-1234 }, { "type":"fax", "number":"646555-4567" } ] } http://en.wikipedia.org/wiki/json
Modelagem http://www.macoratti.net/xml.htm
Modelagem
Modelos Os objetivos dos modelos são: Comunicação com clientes pode-se mostrar ao cliente, através de um produto de demonstração, parte ou todo o comportamento externo de um sistema
Modelos
Modelos Os objetivos dos modelos são: Visualização: permite visualizar idéias antes de tornálas concretas Redução da complexidade: os modelos reduzem a complexidade dividindo-a em um pequeno número de coisas importantes a serem tratadas de cada vez
Realidade ANALISTA Modelo Conceitual Mini-mundo Modelo Lógico Modelo Físico Banco de Dados
Objetivos da Modelagem Conceitual de Dados Representar um ambiente observado O significado da informação Servir de instrumento para comunicação Favorecer o processo de verificação e validação
Objetivos da Modelagem Conceitual de Dados Capturar aspectos de relacionamento entre os objetos observados Servir de referencial para a geração de estruturas de dados Estabelecer conceitos únicos a partir de visões diversas
Modelo Conceitual Modelo abstrato que descreve a estrutura de um BD de forma independente de um SGBD particular (restrições impostas por tecnologias, técnicas de implementação ou dispositivos físicos)
Modelo Conceitual primeira etapa do projeto de um sistema de aplicação em banco de dados utilizado para entendimento, transmissão, validação de conceitos, mapeamento do ambiente, diálogo entre usuários e desenvolvedores
Exemplo de Modelo Conceitual AUTOR N escreve N LIVRO INFANTIL ADULTO
Modelo Lógico Os objetos, suas características e relacionamentos têm uma representação de acordo com as regras de implementação e limitações impostas por algum tipo de tecnologia Relacional, Orientada a Objetos, Objeto- Relacional
Modelo Lógico Resulta da aplicação de regras de derivação sobre um modelo conceitual Nível mais restrito aos desenvolvedores
Modelo Lógico descreve as estruturas que estarão contidas no banco de dados, de acordo com as possibilidades permitidas pela abordagem, sem considerar características de armazenamento do SGBD
Modelo Lógico é dependente do TIPO/MODELO de dados particular do SGBD que será usado Exemplo: Tabela/Relação -> Modelo Relacional Identidade Nome Telefone 23470981 Eva Andressa 21 23867543 10876457 Juju Salimeni 81 65439878 65438945 Paolla Oliveira 83 2256756 19876589 Paula Fernandes 83 2478976
Modelo Físico partirá do lógico e descreverá as estruturas físicas de armazenamento de dados (tamanho de campos, índices, métodos de acesso do SGBD, etc) Linguagens e Notações dependem do SGBD Pode ser necessário o conhecimento do modo físico de implementação das estruturas de dados
Instâncias e Esquemas Instâncias conjunto de informações contidas em determinado banco de dados em um dado momento Esquema projeto geral do banco de dados. São alterados com pouca frequências
Independência de Dados Define-se Independência de Dados como a imunidade das aplicações a mudanças na estrutura de armazenamento ou na estratégia de acesso Física Lógica
Independência de Dados Ex.: a forma como os dados estão organizados na memória secundária e a forma de se ter acesso a eles podem ser ditadas pelas necessidades da aplicação (arquivo armazenado no formato indexado sequencial)
Independência de Dados Física modificação no esquema físico sem alteração da aplicação. Ex. Alterações para melhorar desempenho a forma como os dados estão organizados na memória secundária e a forma de se ter acesso a eles podem ser ditadas pelas necessidades da aplicação (arquivo armazenado no formato indexado sequencial)
Independência de Dados Lógica modificação no esquema lógico sem alteração da aplicação. (Ex. Novo campo, ordem de campos, tamanho do campo). A independência lógica é mais difícil de ser alcançada. Aplicações normalmente mais dependentes da estrutura lógica dos dados do que de seu acesso)
Componentes SGBD
Componentes Metadados: informação sobre a estrutura dos dados Esses metadados encontram-se armazenados e organizados no catálogo do banco Num SGBD relacional: Nomes das relações (tabelas), atributos e tipos de dados
Gerenciador de Armazenamento Faz a intermediação entre os pedidos solicitados (consultas ou alterações) e os dados armazenados Consiste em: Gerenc. de buffer: manipula memória principal Gerenc. de arquivos: localiza os arquivos no disco, alocando os blocos necessários
Processador de Consultas Transforma uma consulta ou manipulação de alto nível em uma sequência de requisições a dados armazenados Traduz essa sentença em uma sequência de pedidos de maneira otimizada (melhor algoritmo) para o gerenciador de armazenamento
Processador de Consultas Manipula pedidos de consultas ou alterações nos dados ou metadados Processa linguagens disponíveis para diferentes tipos de usuários Usuário final, programador, DBA
O que é uma Transação Grupo de operações a serem executadas de forma agrupada ou sequencialmente Unidade de execução
Gerenciador de Transações Responsável pela integridade do sistema Deve garantir que as diversas consultas em execução não interfiram umas nas outras e que os dados não sejam perdidos em caso de falha do sistema
Propriedades ACID Atomicity: tudo de uma transação é executado ou nada é. Consistency: após completar uma ou mais transações, o BD satisfaz condições de consistência
Propriedades ACID Isolation: quando duas ou mais transações rodam, seus efeitos devem ser exclusivos Durability: se a transação foi completada, seu resultado não deve ser perdido em caso de falha de sistema
Normalização A normalização éo processo de organizar os dados em um banco de dados. inclui a criação de tabelas e estabelecer relacionamentos entre essas tabelas de acordo com as regras criadas para proteger os dados e para tornar o banco de dados mais flexíveis, eliminando a redundância e dependência inconsistente. Dados redundantes desperdiçam espaço em disco e criam problemas de manutenção. Se os dados que existem em mais de um local devem ser alterados, os dados devem ser alterados da mesma maneira em todos os locais.
Formas Normais Primeira Forma Normal (1FN)Uma relação estána 1FN se somente todos os domínios básicos contiverem somente valores atômicos (não contiver grupos repetitivos). Para atingir esta forma normal devemos eliminar os grupos de repetição. Segunda Forma Normal (2FN)Uma relação R estána 2FN se e somente se ela estiver na primeira e todos os atributos não chave forem totalmente dependentes da chave primária (dependente de toda a chave e não apenas de parte dela).
Formas Normais Terceira Forma Normal (3FN) Uma relação R estána 3FN se somente estiver na 2FN e todos os atributos não chave forem dependentes não transitivos da chave primária (cada atributo for funcionalmente dependente apenas dos atributos componentes da chave primária ou se todos os seus atributos não chave forem independentes entre si).
Obrigado! Edilberto Silva www.edilms.eti.br www.edilms.eti.br Prof. Edilberto Silva