Conceitos de Banco de Dados AULA nº 01
Prof. Adilson da Silva
PROFESSOR AQUI
Banco de Dados
Prof. Adilson da Silva
Objetivos da Disciplina
Propiciar ao aluno conhecimento abrangente de um Sistema de Gerência de Banco de Dados
Propiciar um estudo aprofundado de diferentes modelos de dados dentre eles os modelos Entidade-
Relacionamento e Relacional
Utilizar softwares para análise e prática de conceitos Estudados
Definir e implementar um esquema de um banco de dados para uma determinada aplicação.
Bibliografia
SILBERSCHATZ, A., e KORTH, S. e SUDARSHAN, S.
Sistema de Banco de Dados, 5a edição, Editora Campus, 2006.
NAVATHE, S. e ELMASRI, R. Fundamentals of Database Systems, 4a edição, Addison Wesley, 2004.
DATE, C. J. Introdução a Sistemas de Banco de Dados, Campus, 2000.
Bibliografia Extra
DAMA, Luís. SQL – Structured Query Language, 6a Edição, Editora LTC 2007
Artigos:
http://www.devmedia.com.br/conceitos-fundamentais-de-banco-de- dados/1649
http://www.devmedia.com.br/conceitos-fundamentais-de-banco-de- dados-parte-2/1678
http://www.devmedia.com.br/articles/viewaula.asp?idcomp=31341
http://www.devmedia.com.br/curso/curso-modelagem-de-bancos-de- dados-relacionais/409
http://www.devmedia.com.br/modelo-entidade-relacionamento-mer-e- diagrama-entidade-relacionamento-der/14332
http://www.devmedia.com.br/artigo-sql-magazine-32-mais-de-90- dicas-de-modelagem-de-dados/7832
Sala de aula virtual (Class Room)
Class Room
Redes – FBD
Código
z74hvvt
Conceitos
Diferença entre Informação e Dado
Informação: é qualquer fato ou conhecimento do mundo real e que pode ou não ser registrado /armazenado;
Dado: é a representação da informação, que pode estar registrado em papel, num quadro de aviso ou no disco rígido do computador
Exemplo:
Informação: Está muito quente hoje
Dado: A temperatura hoje é de 38 graus Celsius
O computador armazena e processa dados e não informações
Aplicações de Banco de Dados
Bancos de dados estão presentes em todas as áreas da Informática.
Atualmente, não se imagina Informática sem bancos de dados!
Mas, para entendermos a importância dos bancos de dados, é preciso voltar no tempo.
Precisamos lembrar os problemas dos sistemas anteriores ao surgimento dos bancos de dados.
Esses sistemas guardavam informação em arquivos.
Sistemas Baseados em Arquivos
Nos sistemas baseados em arquivos:
a aplicação era escrita em uma linguagem de programação
e acessava diretamente um arquivo físico da máquina.
Essa abordagem funcionava bem, contanto que:
apenas um usuário acessasse os dados do arquivo;
a quantidade de dados fosse pequena. ARQUIVO
APLICAÇÃO
Extração de dados Gravação
de dados
USUÁRIO
ARQUIVO 1
APLICAÇÃO
ARQUIVO 2
Dificuldade de Manutenção – Uso de arquivos
À medida que os sistemas cresciam, uma mesma aplicação passava a gerenciar mais de um arquivo de dados.
Ex.: Criava-se um novo arquivo quando o anterior não comportava o formato dos novos dados a serem acrescentados.
Nesse caso, a aplicação era atualizada para enxergar o novo arquivo:
O código-fonte era alterado e recompilado.
Isso gerava um custo de manutenção do sistema.
Redundância de Dados – Uso de Arquivos
Além disso, acontecia de uma mesma informação ser gravada em mais de um arquivo (p. ex., nome do cliente).
Esse problema é chamado de redundância de dados.
A repetição é desnecessária e desperdiça espaço em disco.
Dados Pessoais
Cargos e Salários
Nome Endereço Telefone
José Pereira Rua Amélia, 37 3465-2011
Maria Alves Av Domingos Fereira, 200,ap 502 3326-8976
Recardo Almeida Rua Nova.347 3322-4077
... ... ...
Nome Cargo Salário
Maria Alves Programador R$ 1500,00
José Pereira Rua Nova, 347 R$ 2300,00
... ... ...
Inconsistência de Dados – Uso de arquivos
Outro tipo de problema ocorria quando o sistema, por algum erro, tornava uma informação incompatível com outra.
Esse problema é chamado de inconsistência de dados.
A integridade dos dados fica comprometida.
Cargos da empresa
Cargos e Salários
Como saber o nível de Maria, se o cargo Programador não
existe nesta tabela?
Cargo Nível
Administrador de Redes Nível Superior Técnico de Redes Nível médio Engenheiro de Software Nível Superior
Gerente Nível Superior
Nome Cargo Salário
Maria Alves Programador R$ 1500,00 José Pereira Gerente R$ 2300,00
... ... ...
Concorrência e Segurança - Uso de arquivos
Dificuldade de controlar concorrência:
É difícil controlar arquivos físicos quando vários usuários estão acessando ao mesmo tempo.
Ex.: Em uma companhia aérea, dois atendentes
tentando reservar a mesma poltrona em um mesmo voo.
Dificuldade de controlar segurança:
Com arquivos físicos, é difícil fornecer níveis diferentes de acesso para usuários distintos.
Ex.: O presidente da empresa pode ver dados de todos os funcionários, mas um gerente só pode ver os dados dos seus subordinados.
Outros problemas - Uso de arquivos
Ligação muito estreita entre as aplicações e os dados:
A ligação entre as aplicações e os dados que estas
gerenciam é tão estreita que qualquer necessidade adicional pode explicar o desenvolvimento de novas aplicações.
Inexistência de relações – Cada arquivo existe por si só.
Não existem relações entre arquivos. As relações tem de ser implementadas (em código) por cada uma das aplicações.
Integridade – É possível que aplicações distintas acessem o mesmo arquivo de dados
Banco de Dados
Todos esses problemas levaram ao desenvolvimento dos bancos de dados.
Mas o que é um banco de dados?
Entre os vários conceitos encontrados, podemos adotar o seguinte:
Dados são fatos que podem ser gravados e que possuem um significado implícito [Elmasri e Navathe, 2005].
De uma forma simplista, podemos dizer que um banco de dados consiste em uma coleção de dados estruturados, organizados e armazenados de forma persistente [Damas 2007].
Conceitos - Banco de dados
Banco de Dados:
É uma coleção de dados relacionados
O uso do termo é mais restrito em virtude das seguintes características:
Um BD representa algum aspecto do mundo real, o qual chamamos de Minimundo ou Universo de Discurso
É um conjunto lógico e ordenado de dados que possuem algum significado inerente
Um BD é projetado, construído e povoado com dados que possuem objetivos específicos
Ingredientes necessários em um BD:
Uma fonte de dados da qual derivamos os dados
A interação com o mundo real
Público que demonstra interesse nos dados contidos no Banco
Qualidade da Informação
A informação é um recurso vital e de estrema importância para a organização. A qualidade da informação depende de vários fatores:
Atualidade : Deve ser a mais atual possível para facilitar o processo de tomada decisão;
Correção : Deve ser correta. As instruções tem de ser capazes de verificar, tanto quanto possível, a correção da informação que
processam.
Relevância : Deve ser devidamente selecionada e filtrada, de
modo que se use apenas aquela que é relevante para a tomada de decisão na organização.
Disponibilidade: Deve estar disponível e acessível.
Legibilidade: Deve ser fornecida de tal modo que seja facilmente interpretada pelos usuários.
Comparação com o Processamento Tradicional de Arquivos
No processamento tradicional de arquivos os usuários definem os arquivos necessários para cada aplicação específica,
resultando em redundância e desperdício de espaço de armazenamento;
No enfoque de BD não é armazenado somente o banco em si, mas sim a estrutura do banco de dados e uma descrição
completa (Catalogo do Sistema);
Acesso não requer conhecimento destas estruturas (Independência dos Dados);
Quando houver alteração na estrutura de dados os programação não precisam ser alterados;
As informações do catalogo são chamadas de Metadados.
Conceitos
Programadores de aplicações – São profissionais de informática que interagem com o sistema através de comandos da linguagem SQL embutidos nas aplicações que desenvolvem.
Usuários sofisticados – São usuários que interagem diretamente com o sistema sem escreverem qualquer aplicação. Os comandos da linguagem SQL (ou outra) são escritos diretamente no
interpretador de comandos do SGBD.
Usuários especializados – São usuários (normalmente aplicações informatizadas) que interagem com o SGBD de forma particular.
Usuários comuns – São aqueles que utilizam o SGBD através de aplicações específicas sem terem, no entanto, a noção dos
mecanismos envolvidos.
Usuários de um SGBD
Um usuário do SGBD que merece um destaque especial é o
administrador de banco de dados (grupo dos “usuários sofisticados”).
O administrador de Banco de dados (DBA) – é o profissional responsável pela administração do Banco de Dados.
Maior responsável pelo bom funcionamento de todo o sistema.
Criação e definição dos banco de dados.
Escolha das estruturar de suporte aos dados, índices, métodos de acesso, etc.
Definição do perfil de acesso aos dados de todos os usuários.
Especificação das regras de integridade do banco de dados.
Elo entre os diferentes usuários.
Monitoramento do desempenho do sistema, tomando as medidas necessárias para melhorá-lo/ajustá-lo.
Definição das estratégias de Backup & Recovery. (Copia e Recuperação).
Usuários de um SGBD - ADM
Em uma tentativa de estabelecer um padrão para toda a indústria de desenvolvimento de tecnologia de banco de dados, foi defina a
arquitetura ANSI/SPARC com o objetivo de permitir que um mesmo SGBD possa ser utilizado por vários tipos de usuários, respeitando as particularidades e necessidades de cada um.
Composta por três níveis independentes.
Arquitetura de Três Esquemas
Dados
Nível Interno
Nível Externo Nível Conceitual
Arquitetura de Três Esquemas
1. Nível Interno – esquema interno
Armazenamento físico dos dados e definição das estruturas físicas que permitem obter um bom nível de desempenho.
2. Nível Conceitual – esquema conceitual ou lógico
Representação do modelo conceitual de dados, independente de qualquer usuário ou aplicação. Esta camada esconde
detalhes de implementação física dos arquivos que armazenam os dados.
3. Nível Externo – esquema externo (visões dos usuários)
Descreve as visões dos usuários: a parte da base de dados em que cada grupo de usuários tem interesse.
Descrição de subesquemas
Arquitetura de Três níveis (ou três esquemas) permite:
Independência física – Alterações no nível interno não repercutem no nível conceitual.
Independência lógica – Alterações no esquema conceitual não têm, necessariamente, de alterar o esquema externo.
Independência de programa/dados – Alterações que envolvam a estrutura dos dados, ou a sua implementação física, não obrigam a alterações no nível da aplicação.
Sistema de Banco de Dados
Em qualquer modelo de dados é importante distinguir entre a descrição do banco de dados e o banco de dados de fato.
Esquema
É a descrição do banco de dados
É definido durante o projeto do banco de dados e não se espera que seja alterado frequentemente
Instância
É o banco de dados em si
Em uma linguagem de programação, isto é equivalente a uma declaração de uma variável do tipo definido e o seu valor
Conceitos
Conceito - Transação
Uma transação é uma coleção de operações que desempenha uma função lógica única dentro de uma aplicação do sistema de banco de dados.
Cada aplicação é uma unidade de atomicidade e consistência.
Assegurar as propriedades de atomicidade e durabilidade é também responsabilidade do sistema de banco de dados, em especial dos componentes de gerenciamento de transações;
Consistência de Dados
É o estado ou caráter do que é coerente, do que tem solidez, veracidade, credibilidade, estabilidade, realidade
Consistência: sempre que a mesma informação é
armazenada, mesmo que em locais diferentes (redundância), ela tem o mesmo valor
Quando os dados se encontram em um estado inconsistente, informações incorretas ou contraditórias podem ser
fornecidas aos usuários
Conceitos – Consistência de Dados
Vantagens de Utilizar um SGBD
Independência entre programas e dados
Catalogo que consiste de metadados – dados sobre os dados
Independência entre operações e programas
Funções / procedimentos de manipulação dos dados armazenados também fazem parte do BD
Segurança
Controle de acesso mais especializado
Suporte a Visões
Mesmo conjunto de dados pode ser apresentado a usuários diferentes de forma distinta
Facilidades de Backup e Restauração
Fornecimento de Múltiplas Interfaces aos Usuários
Baseadas em Menus e formulários (GUIs – Graphical USer Interface)
Linguagens de consulta e interfaces de linguagem de programação
Vantagens de Utilizar um SGBD
Aplicações de Banco de Dados
Banco: todas as transações
Linhas aéreas: reservas, horários
Universidades: matrículas, registros, notas
Vendas: clientes, produtos, compras
Revendedores on-line: acompanhamento de pedidos, recomendações personalizadas
Indústria: produção, estoque, pedidos, cadeia de suprimento
Recursos humanos: registros de empregados, salários, deduções de impostos
É um ambiente de hardware e de software composto por dados armazenados em um banco de dados (BD), pelo software de gerência do banco de dados (SGBD) e os programas de aplicação
Sistema de Banco de Dados
Configuração de um Sistema de Banco Simplificado
Sistema de Banco de Dados
Independência de Dados
É a capacidade de mudar o esquema em um nível do sistema de banco de dados sem que ocorram alterações do esquema no
próximo nível mais alto
Independência de dados lógica
Refere-se a capacidade de modificar o esquema lógico sem que, com isso, qualquer programa de aplicação precise ser reescrito
Independência de dados física
Refere-se a capacidade de modificar o esquema físico sem que, com isso, qualquer programa de aplicação precisa ser reescrito
O conceito de independência de dados é de várias formas similar ao conceito de tipo abstrato de dados empregado nas linguagens de programação
Sistema de Banco de Dados
Sistema de Banco de Dados
Sistema de Banco de Dados
Sistema de Banco de Dados
Banco de dados
Banco de dados consiste em uma coleção de dados estruturados, organizados e armazenados de forma persistente.
Persistente: Significa que os dados continuam a existir após:
Terminar a aplicação que os gere;
Terminar a sessão do usuário;
Desligar o computador;
Projeto Conceitual
Independente de SGBD
Modelo Conceitual – MER
Projeto Lógico
Esquema Lógico
Mapeamento do Modelo Conceitual para modelo do SGBD
Ex: Modelo Relacional
Projeto Físico
Estruturas Físicas de Armazenamento
Organização de registros físicos
Índices
Critérios
Tempo de resposta
Espaço utilizado
Número de transações
Passos para a criação de um banco de dados
Modelos de Banco de Dados
No mundo real existe todo tipo de modelos, e eles nos são
apresentados quase que diariamente , com por exemplo: Modelos econômicos os Estatísticos;
Também existem modelos específicos para a representação de dados ou da estrutura de dados em um banco de dados.
A maior parte dos sistemas de Gerencia de Banco de Dados atuais baseia-se no modelo relacional.
Tomando esse como base podemos dividir os modelos da forma que se segue.
Modelos de Banco de Dados
1 – Geração Pré-relacional;
Sistemas Baseados em Arquivos;
Modelo Hierárquico;
Modelo em Rede;
2 – Geração Relacional
Modelo relacional
3 – Geração Pós-Relacional
Modelo Orientado a Objetos;
Modelo Objeto-Relacional
Outros Modelos.
Modelos Lógicos baseados em registros
Descrição dos dados nos níveis conceitual e externo
O banco de dados é estruturado em registros de formatos fixos, de diversos tipos
Cada tipo de registro tem sua coleção de campos ou atributos, de tamanho fixo
Há linguagens para expressar consultas e atualizações no banco de dados
Os três modelos mais comumente utilizados são:
Relacional
Rede
Hierárquico
O modelo relacional é o mais utilizado atualmente
Modelo Hierárquico
Um dos primeiros modelos de banco de dados com um sistema de gerência de banco de dados associado, e é resultado da
evolução dos sistemas de gerência de arquivos;
No modelo hierárquico, os dados encontram-se organizados em hierarquia ou arvore de Nó sem qualquer conteúdo. Neste
modelo estabelecem-se relações do tipo pai-filho, em que pai pode ser relacionar com um ou mais filhos, mas em que cada filho pode , unicamente se relacionar com o seu próprio Pai.
Um banco de dados hierárquico consiste em uma coleção de
registros que estão ligados hierarquicamente em ter si através de links. Nesse modelo , os registros são organizados com coleções de árvores.
Cada registro contém uma coleção de campos com valor único e um link que faz a associação entre dois registros;
Vantagens
Elevado desempenho no acesso sequencial de dados;
Facilidade em representar informação com relações hierárquicas;
Desvantagens
Limitações quanto ao acesso aleatório aos dados.
O desenvolvimento de aplicações é lento, pois o programador terá de conhecer em detalhes a estrutura implementada;
Não permite estabelecer relacionamentos M:N, apenas 1:1 e 1:N;
Não é eficiente na adição de novo relacionamento;
Replicação da informação contida no banco de dados leva a inconsistência nos dados;
Modelo Hierárquico
Maria 154879984 ...
Modelo Hierárquico Representação
José 015425446 ...
8745-6 235,90
5418-7 541,20 4876-9 145,00
Modelo Rede
O modelo foi desenvolvido para resolver alguns dos problemas associados ao modelo hierárquico, ele é uma extensão desse modelo, porém, elimina o conceito de hierarquia, permitindo que um mesmo registro possua várias associações.
Ele representa os relacionamentos como conjuntos (Sets) e não hierarquias;
Chama-se de Rede por que representa os dados sob a forma de uma rede registros e conjuntos de links, resultando casualmente em uma rede.
Ele permite a utilização de relacionamentos N:M;
Apesar desse modelo ser uma evolução do modelo hierárquico, e ter resolvido vários problemas do anterior, ainda se encontrava longe do ideal.
Nome CPF Rua Cidade
José 015425446 Rua das Flores São Paulo
Maria 154879984 Rua Linda Bauru
Os dados são representados por um conjunto de registros
Cada registro é uma coleção de campos (atributos), cada qual contendo somente um valor
As relações entre os registros são representados por links (ligações)
Um link é uma associação entre dois registros
Nr_Conta Saldo
5418-7 541,20
4876-9 145,00
8745-6 235,90
Modelo Rede
Modelo Relacional
O modelo relacional surgiu como uma tentativa de liberar os usuários das especificações rígidas associadas ao formato dos
dados, como acontecia com o modelo hierárquico e com o modelo em rede;
Uma das principais vantagens desse modelo foi ter se baseado em um ramo da matemática que é, simultaneamente simples e
poderoso;
Baseia-se em um modelo matemático rigoroso;
Durante alguns anos foi desenvolvido e implementado apenas em universidades e em laboratórios de pesquisa sesta área;
Os mais críticos consideravam que o sistema seria impraticável devido a velocidade do hardware e a limitação das linguagens de programação existentes na época;
Nome CPF Rua Cidade Nr_Conta
José 015425446 Rua das Flores São
Paulo
5418-7
Maria 154879984 Rua Linda Bauru 4876-9
José 015425446 Rua das Flores São
Paulo
8745-6
Utiliza um conjunto de tabelas para representar tanto os dados como a relação entre eles;
Cada tabela possui múltiplas colunas e cada uma possui um nome único;
Conjunto de operadores;
Álgebra Relacional e Cálculo Relacional;
Restrições de Integridade;
Integridade de chave primária;
Integridade Referencial;
Integridade de Domínio;
Nr_Conta Saldo
5418-7 541,20
4876-9 145,00
8745-6 235,90
Modelo Relacional
Década de 1950 e início da década de 1960:
Processamento de dados usando fitas magnéticas para armazenamento
Fitas fornecem apenas acesso sequencial
Cartões perfurados para entrada
Final da década de 1960 e década de 1970:
Discos rígidos permitem acesso direto aos dados
Modelos de dados de rede e hierárquico em largo uso
Ted Codd define o modelo de dados relacional
Ganharia o ACM Turing Award por este trabalho
IBM Research inicia o protótipo do System
UC Berkeley inicia o protótipo do Ingres
Processamento de transação de alto desempenho (para a época)
História dos Sistemas de Banco de Dados
Diferença entre os modelos
O modelo relacional difere dos modelos hierárquico e em rede por não usar nem ponteiros nem links. Ele relaciona os registros por valores próprios a eles. Como não é necessário o uso de ponteiros, houve a possibilidade do desenvolvimento de fundamentos matemáticos para sua definição.
Álgebra e Cálculo Relacional
Codd propôs duas interfaces para o modelo relacional:
1. Álgebra relacional
Seleção
Projeção
Produto Cartesiano
União
Diferença
Interseção
Junção
Divisão.
Álgebra e Cálculo Relacional
Codd propôs duas interfaces para o modelo relacional:
2. Cálculo relacional
Qualificador Existencial
Qualificador universal
Com a utilização desse modelo traz a capacidade de se fazer alterações no esquema do banco de dados sem influenciar na manipulação do Banco de dados.
Regras de Codd
Regra 0 – Capacidade relacional total
Regra 1 – Representação da informação em tabelas Regra 2 – Garantia de acesso
Regra 3 – Suporte sistemático de valores NULL Regra 4 – Catálogo ativo e disponível
Regra 5 – Linguagem de acesso aos dados Regra 6 – Atualização de views
Regra 7 – Operações de alto nível
Regra 8 – Independência Física dos dados Regra 9 – Independência Lógica dos dados Regra 10 – Independência da integridade
Regra 11 – Independência (transferência de localização) Regra 12 – Não-subversão
Dicas de leitura
Banco de dados: saiba o que é, os tipos e a importância para o site da sua empresa
https://rockcontent.com/blog/banco-de-dados/
Conceitos Fundamentais de Banco de Dados
https://www.devmedia.com.br/conceitos-fundamentais-de-banco-de- dados/1649
PROFESSOR AQUI