Introdução a Computação Aula 04 – SGBD – Sistemas Gerenciadores de Bancos de Dados Prof. MSc. Edilberto Silva [email protected] http://www.edilms.eti.br 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. http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Sistema de Arquivos Cada aplicação com seu conjunto de dados CEFET Descrição dos dados dentro da Controle Acadêmico aplicação Controle Administrativo Alunos Turmas Deptos. Falta de compartilhamento Disciplinas Disciplinas Turmas Salas Redundância de Dados Professores Controle Pessoal Deptos. Difícil Manutenção Professores Funcionários Dificuldades na segurança dos dados http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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. http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] SGBD - Sistema Gerenciador de Banco de Dados http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Características de um SGBD... • Garantir a ACID – 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; http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Dados Aluno Nome Matrícula Dhara Magalhães 56743223 Paulo Silva 56743217 Disciplina Nome Banco de Dados I Álgebra Linear Estruturas de Dados NumDisc Pré-requisito 015 015 http://www.edilms.eti.br Número 015 002 009 Turma 001 001 CH 100 67 100 Origem CDSI CMAT CGES NúmeroPreReq 009 010 Prof. Edilberto Silva - [email protected] Metadados • Dados sobre dados • 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Metadados Tabela n°Colunas Primary Key Estudante 4 Matrícula Disciplina 5 Código Matrícula 3 Nome + Código • Tabela: Estudante Coluna Matricula Nome DataNascimento NumTelefone http://www.edilms.eti.br Tipo Tamanho Nulo int 4 N varchar 50 N date 8 N varchar 12 S Prof. Edilberto Silva - [email protected] Default Getdate() 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Vantagens da Utilização de um SGBD • Restrição de Acesso • Controle de Integridade • Compartilhamento dos Dados • Mecanismos de Backup e Recuperação http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Classificação Atual dos SGBDs Modelo de Dados Rede Relacional Hierárquico Orientado a Objetos Objeto-Relacional SGBD Distribuído Homogêneos Heterogêneos SGBD federados ou Sistemas Multi-Bases http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Principais SGBDs • Oracle xx G (Grid computing) • IBM DB2 • Microsoft SQL Server • PostgreSQL (Objeto Relacional) • MySQL • ADABAS* http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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; http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Exemplo de JSON { "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": 10021 }, "phoneNumbers": [ { "type": "home", "number": "212 555-1234”}, { "type": "fax", "number": "646 555-4567" } ] } http://www.edilms.eti.br http://en.wikipedia.org/wiki/JSON Prof. Edilberto Silva - [email protected] Modelagem http://www.macoratti.net/xml.htm http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Modelagem http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Modelos http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Realidade ANALISTA Modelo Conceitual Modelo Lógico Mini-mundo http://www.edilms.eti.br 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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) http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Exemplo de Modelo Conceitual AUTOR N escreve N LIVRO INFANTIL http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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, ObjetoRelacional http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Modelo Lógico • Resulta da aplicação de regras derivação sobre um modelo conceitual • Nível mais restrito aos desenvolvedores http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] de 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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) http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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) http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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) http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Componentes SGBD http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] O que é uma Transação • Grupo de operações a serem executadas de forma agrupada ou sequencialmente • Unidade de execução http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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 http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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. http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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). http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] 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). http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] Obrigado! Edilberto Silva www.edilms.eti.br www.edilms.eti.br Prof. Edilberto Silva