Introdução a
Computação
Prof. MSc. Edilberto Silva
Aula 04 – SGBD – Sistemas
Gerenciadores de Bancos de
Dados
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
Controle Acadêmico Alunos Turmas Disciplinas CEFET Controle Administrativo Deptos. Disciplinas Turmas Salas Professores Controle Pessoal Deptos. Professores FuncionáriosCada aplicação com seu conjunto de dados Descrição dos dados dentro da aplicação
Falta de compartilhamento Redundância de Dados 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
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,
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
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;
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
Dados
Nome Matrícula Turma
Dhara Magalhães 56743223 001
Paulo Silva 56743217 001
Aluno
Nome Número CH Origem
Banco de Dados I 015 100 CDSI
Álgebra Linear 002 67 CMAT
Estruturas de Dados 009 100 CGES
Disciplina
NumDisc NúmeroPreReq
015 009
015 010
Pré-requisito
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
Metadados
• Tabela: Estudante
http://www.edilms.eti.br Prof. Edilberto Silva - [email protected]
Tabela n°Colunas Primary Key
Estudante 4 Matrícula
Disciplina 5 Código
Matrícula 3 Nome + Código
Coluna Tipo Tamanho Nulo Default
Matricula int 4 N
Nome varchar 50 N
DataNascimento date 8 N 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
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,
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 SGBD Distribuído Homogêneos Heterogêneos SGBD federados ou Rede Hierárquico Relacional Orientado a Objetos Objeto-RelacionalPrincipais 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...
Exemplo de JSON
http://www.edilms.eti.br Prof. Edilberto Silva - [email protected] { "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://en.wikipedia.org/wiki/JSON
Modelagem
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
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
ANALISTA Mini-mundo Modelo Lógico Modelo Físico Modelo Conceitual Banco de Dados Realidade http://www.edilms.eti.br
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
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
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
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
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
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
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:
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
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
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
http://www.edilms.eti.br Prof. Edilberto Silva - [email protected]
• 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
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
Obrigado!
Edilberto Silva
www.edilms.eti.br
Prof. Edilberto Silva www.edilms.eti.br