Buscar

02 Introdução, Definições e Conceitos

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Desenvolvendo uma Aplicação
O desenvolvimento de um software é composto por duas etapas: o que será processado (dados) e como será realizado esse processamento;
Dependendo das escolhas (operações) erradas, o software pode tornar-se lento, insuficiente ou inseguro.
*
Exemplo: Operação Mal Sucedida!
Ariane 5
*
Exemplo: Operação Mal Sucedida!
Ariane 5
Projeto da Agência Espacial Européia que custou:
10 anos;
US$ 8 Bilhões.
Capacidade de 6 toneladas.
Garante supremacia européia no espaço.
*
Exemplo: Operação Mal Sucedida!
Ariane 5
Vôo inaugural em 04 de junho de 1996;
*
Exemplo: Operação Mal Sucedida!
Explosão 40 segundos após a decolagem;
Destruição do foguete e carga avaliada em US$ 500 milhões;
*
Exemplo: Operação Mal Sucedida!
Ariane - O que aconteceu ?
Fato: o veículo detonou suas cargas explosivas de autodestruição e explodiu no ar. Por que?
Porque ele estava se quebrando devido às forças aerodinâmicas. Mas por que?
O foguete tinha perdido o controle de direção (altitude). Causa disso?
Os computadores principal e reserva desligaram (shut-down) ao mesmo tempo.
*
Exemplo: Operação Mal Sucedida!
Ariane - O que aconteceu ?
Por que o Shut-down? Ocorrera um run time error (out of range, overflow, ou outro) e os computadores se desligaram. De onde veio este erro?
Um programa que convertia um valor em ponto flutuante para um inteiro de 16 bits recebeu como entrada um valor que estava fora da faixa permitida.
*
Exemplo: Operação Mal Sucedida!
Ariane - Ironia...
O resultado desta conversão não era mais necessário após a decolagem...
*
Dado e Informação
Dado
Fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação.
Informação
 Fato útil que pode ser extraído diretamente ou indiretamente a partir dos dados.
Ferramentas para Processamento de Dados
 Processadores de texto, Planilhas Eletrônicas, SGBD.
*
Necessidade de um Sistema
A maior parte dos sistemas de computadores precisa processar e armazenar dados;
Uma agência bancária precisa armazenar informações sobre os seus clientes e suas contas;
Uma biblioteca precisa armazenar informações sobre os seus usuários, livros e empréstimos;
Um supermercado precisa gerenciar informações sobre os seus produtos e suas vendas;
*
Desenvolvendo uma Aplicação
Em muitos sistemas a riqueza está nos dados que são manipulados;
Perder ou não confiar na informação é inadmissível. Pode ser o melhor sistema  não serve !!
Desempenho também é um requisito importante e deve ser valorizado;
Analisar a persistência (armazenamento não volátil) dos dados.
*
Desenvolvendo uma Aplicação
Alguns critérios que devem ser observados:
Controle centralizado do acesso aos dados;
Minimizar ao máximo a redundância dos dados;
Eliminar a inconsistência;
Promover o compartilhamento mais simples dos dados;
Aplicar restrições de segurança;
Manter a integridade dos dados;
Promover facilidade para a criação de aplicações !!
*
Gerenciamento dos dados
Considere um simples Sistema para Controle de Vendas
Persistência
Integridade
Concorrência
Segurança
Compartilhamento
...
*
Operações básicas
O gerenciamento destas informações requer e deve permitir as seguintes operações:
Armazenar uma nova informação em disco;
Atualizar uma informação;
Consultar os dados armazenados;
Excluir dados da aplicação;
*
Manipulação de arquivos - conceitos
As primeiras aplicações de software manipulavam dados na forma de processamento de arquivos;
Geralmente, cada arquivo guardava informações sobre uma entidade do sistema;
Arquivo de clientes, arquivo de vendas, etc;
Estes arquivos eram formados através de um conjunto de registros de tamanho fixo;
*
Manipulação de arquivos - exemplo
Exemplo de um arquivo de clientes:
*
Manipulação de arquivos - características
As principais características das aplicações que usavam o processamento de arquivos eram:
As aplicações eram compostas por um conjunto de arquivos;
Que podiam ser compartilhados por mais de uma aplicação;
A estrutura dos dados era definida dentro da aplicação;
Records, structs, etc;
O programador precisava escrever todas as funções para a manipulação dos dados;
*
Manipulação de arquivos – sistema
Esquema de uma aplicação com processamento de arquivos:
Sistema
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
Arquivos
Sistema
*
Manipulação de arquivos - Dificuldades
Esta abordagem sofria de uma série de problemas, como:
Dificuldade de compreensão dos dados;
Forte acoplamento entre a aplicação e os dados;
Baixo nível de abstração;
Dificuldade para controle de acesso concorrente;
Dificuldade para verificar restrições de integridade;
Fragilidade no tratamento de falhas;
*
Desenvolvendo uma Aplicação
Operações:
Inclusão;
Exclusão;
Alteração;
Pesquisa;
Ordenação;
Junção, etc.
Desenvolvidas pelo programador !!
*
Desenvolvendo uma Aplicação
Soluções:
*
Desenvolvendo uma Aplicação
Operações estão prontas e disponibilizadas;
Não é necessário “gastar” tempo implementando as rotinas;
Sobra mais tempo para “pensar” no sistema.
*
Desenvolvendo uma Aplicação
Tanto arquivo quanto banco de dados possuem características que os tornam interessantes para uma aplicação;
A lista dos requisitos do sistema que será desenvolvido é que determina qual solução será utilizada para persistência dos dados;
Arquivos já foram estudados no momento que foram apresentadas as linguagens de programação, organizados e melhor manipulados com as Estruturas de dados;
O momento agora é conhecer banco de dados.
*
Banco de Dados
Definições:
É um conjunto de dados relacionados e estruturados, que representam aspectos do mundo real que devem ser mantidos para atender aos requisitos do sistema.
*
Banco de Dados
Definições:
Uma coleção de dados relacionados e armazenados em algum dispositivo é chamada de banco de dados;
 “O gerenciamento de informações implica a definição das estruturas de armazenamento das informações e da definição dos mecanismos para manipulação dessas informações.” 
NAVATHE – 4ª ed)
*
Banco de Dados
Onde posso criar e 
manipular um banco de dados ?!
*
Manipulação de Banco de Dados
SGBD (Sistema Gerenciador de Bancos de Dados):
Software que permite a criação e a manipulação de um banco de dados;
Aplicação - 1
Aplicação - 2
Aplicação - 3
Aplicação - n
BD
BD
BD
...
Sistema Gerenciador de BD
*
SGBD
*
SGBDs – Pouco populares
Sybase
ZIM
Dataflex
CA-OpenIngres
Informix
FoxPro
Unify
Paradox
Dbase
Gupta
Jasmine
Orion
Access
*
SGBD
Relembrando o conceito de SGBD:
É uma coleção de programas que permitem aos usuários definirem, construírem e manipularem uma base de dados para o uso das diversas aplicações.
*
Estrutura e Organização
*
SGBD - Funções
Independência entre programas e dados;
Compartilhamento de Dados e Transações;
Controle de acesso mais especializado;
Controle de Redundância;
Facilidade de cópia e recuperação;
Mais rapidez no desenvolvimento de aplicações;
Flexibilidade.
*
Surgimento dos SGBD’s
ANTES!
Programas gravam seus dados em disco, segundo estruturas próprias. Para acessá-los é necessário conhecer sua estrutura.
*
Surgimento dos SGBD’s
ANTES!
Se vários programas compartilham seus dados, todos devem conhecer e manipular as mesmas estruturas.
 Se algum programa precisar de alguma mudança na estrutura de dados, todos os programas terão que ser alterados, mesmo que a alteração ocorra em dados que ele não utiliza.
*
Surgimento dos SGBD’s
DEPOIS!
Solução: 
Colocar um sistema entre os dados e os programas, que converta o formato em que os dados estão gravados para o formato específico que cada programa utiliza na manipulação desses dados.
*
Surgimento dos
SGBD’s
DEPOIS!
Solução: 
Cada programa:
“Vê” apenas os dados que lhe interessam;
Não precisam entrar em detalhes de como seus dados estão fisicamente gravados;
Não precisa ser modificado se a estrutura de dados que ele não utiliza for modificada.
*
Definição – características 
Um banco de dados tem as seguintes características:
Representa um mini-mundo;
Possui um significado inerente;
Projetado, construído e povoado por dados;
Possui um grupo de usuários e aplicações definidos;
*
SGBD - VANTAGENS
Vantagens de utilizar um SGBD;
Natureza auto-descritiva do SGBD;
O sistema de banco de dados contém,além do banco de dados, uma definição completa ou uma descrição das restrições e da estrutura do banco de dados. 
Catálogo;
Meta-dados;
Isolamento entre a aplicação e os dados;
Abstração dos dados;
Controle de concorrência;
Integridade dos dados;
Valores Únicos, Não nulos, Referências;
*
SGBD - VANTAGENS
Tolerância a falhas;
Controle de redundância;
Controle do acesso aos dados;
Armazenamento persistente de objetos;
Otimização de consultas;
Múltiplas interfaces com usuários;
Redução no tempo de desenvolvimento de aplicações;
*
Propriedades dos SGBD’s
Consistência de dados:
O SGBD avalia os dados recebidos através de regras de integridade, garantindo que sempre estejam corretos.
Sempre que a mesma informação é gravada, mesmo que em locais diferentes, ela tem o mesmo valor.
Validade:
Os dados são válidos quando pertencem ao domínio de valores possíveis naquele caso.
Completeza:
Todos os dados que precisam ser conhecidos estão disponíveis.
*
Propriedades: Consistência dos dados
Consistência de dados:
DADOS INEXISTENTES!
Cavaleiros do Zodíaco
Características dos Cavaleiros 
*
Propriedades: Validade
Validade:
DADOS INVALIDOS
Cavaleiros do Zodíaco
*
Propriedades: Completeza
Completeza:
DADOS INCOMPLETOS
Cavaleiros do Zodíaco
*
Propriedades
DADOS EXISTENTES!
Cavaleiros do Zodíaco
Características dos Cavaleiros 
DADOS VÁLIDOS!
DADOS COMPLETOS!
*
Funcionamento do SGBD
*
Propriedades Genéricas
Um BD é uma coleção de dados logicamente relacionados, com algum significado.
Implica em que associações aleatórias de dados não possam ser chamadas de bases de dados.
Um BD é projetado, construído e preenchido com dados para um propósito específico. 
Possui um grupo de usuários e algumas aplicações concebidas para atender as necessidades próprias desses usuários.
Um BD é a representação de algum aspecto do mundo real.
Nos leva a que, qualquer mudança na realidade, provocará mudanças nessa base de dados.
*
Profissionais de BD
O desenvolvimento de um banco de dados envolve os seguintes profissionais:
Analista de Sistemas e Programadores de Aplicações;
Projetista ou administrador de dados;
Administrador (DBA);
Usuários.
Em um BD de pequeno porte, uma mesma pessoa pode desempenhar todas as funções;
*
Profissionais de BD
Atribuições dos Analistas de Sistemas e Programadores de Aplicações
Os analistas desenvolvem especificações das transações que atendem aos requisitos dos usuários;
Os programadores implementam estas especificações produzindo os programas;
Devem estar familiarizados com todas as capacidades do SGBD.
*
Profissionais de BD
Atribuições de um projetista ou administrador de dados;
Interagir com os usuários do BD;
Identificar os dados que serão armazenados no BD;
Definir como estes dados serão representados no BD;
Garantir que a estrutura do BD vai atender a todos os requisitos levantados pelos potenciais usuários;
*
Profissionais de um BD
Atribuições de um administrador de SGBD;
Implementar o projeto do BD no SGBD;
Coordenar o uso do SGBD;
Questões de segurança;
Restrições de acesso;
Controlar o desempenho do SGBD;
Backup dos dados;
Deve ter um bom conhecimento do SGBD utilizado;
*
Profissionais de um BD
Atribuições de um Usuário de SGBD;
Profissional que precisa ter acesso ao banco de dados para consultar, modificar e remover dados.
São as pessoas que utilizam os sistemas que acessam as bases de dados;
Não precisa saber o que é um SGBD e como utilizá-lo.
*
Profissionais de um BD
Atividades de um usuário de um SGBD;
Inserir novos dados no BD;
Atualizar os dados existentes;
Realizar consultas;
Realizar transações;
Obter relatórios;
*
PROFISSIONAIS DE UM BD
O BD pode ser usado por usuários de vários níveis;
Programadores de Aplicações;
Usuários especialistas;
Usuários navegantes;
O usuário final pode acessar o BD:
Diretamente (através de uma ferramenta do SGBD);
Indiretamente (através de uma aplicação);
*
Visões do Banco de Dados
Visão Interna
É aquela vista pelo responsável pela manutenção e desenvolvimento do SGBD. Existe a preocupação com a forma de recuperação e manipulação dos dados dentro do Banco de Dados.
Visão Externa
É aquela vista pelo usuário que opera os sistemas aplicativos, através de interfaces desenvolvidas pelo analista (programas), buscando o atendimento de suas necessidades
Visão Conceitual
É aquela vista pelo analista de desenvolvimento e pelo administrador das bases de dados. Existe a preocupação na definição de normas e procedimentos para manipulação dos dados, para garantir a sua segurança e confiabilidade, o desenvolvimento de sistemas e programas aplicativos e a definição no banco de dados de novos arquivos e campos. Na visão conceitual, existem 2 (duas) linguagens de operação que são:
*
Visões do Banco de Dados
Visão Conceitual
Linguagem de definição dos dados (DDL)
Linguagem que define as aplicações, arquivos e campos que irão compor o banco de dados (comandos de criação e atualização da estrutura dos campos dos arquivos).
Linguagem de manipulação dos dados (DML) 
Linguagem que define os comandos de manipulação e operação dos dados (comandos de consulta e atualização dos dados dos arquivos).
*
EVOLUÇÃO DAS APLICAÇÕES DE BANCO DE DADOS
Primeiras aplicações de bancos de dados;
Baseadas em sistemas de arquivos;
Utilizadas em grandes organizações;
Grandes corporações, universidades, bancos, etc;
Surgiram em meados da década de 1960 e foram usadas até a década de 1980;
Implantadas em grandes computadores;
A única interface era a linguagem de programação;
Utilizavam modelos físicos como o modelo hierárquico, modelo de redes e arquivos invertidos;
*
EVOLUÇÃO DAS APLICAÇÕES DE BANCO DE DADOS
O modelo relacional:
Surgiu no fim dos anos 70, com os primeiros SGBDR´s surgindo no início dos anos 80;
Fundamentação matemática para os BD´s;
Relacionamento entre os dados feito através do conceito matemático de Relações;
Linguagens de consulta de alto nível;
Ganhou grande popularidade;
*
EVOLUÇÃO DAS APLICAÇÕES DE BANCO DE DADOS
O modelo relacional:
Modelo mais utilizado até hoje;
Exemplos de SGBD´s Relacionais:
SQL Server;
SQL-DS;
Ingres;
Firebird;
*
EVOLUÇÃO DAS APLICAÇÕES DE BANCO DE DADOS
Bancos de Dados Orientados a Objetos;
Surgiram devido à popularidade do paradigma de programação orientada a objetos nos anos 80;
Incorporação dos principais conceitos deste paradigma no Banco de Dados;
Classes, Objetos, Métodos, Encapsulamento, Herança, etc;
Muito complexos;
Não ganharam tanta popularidade quanto os SGBDR´s;
*
EVOLUÇÃO DAS APLICAÇÕES DE BANCO DE DADOS
Bancos de Dados Orientados a Objetos;
Um outra abordagem, chamada SGBDOR (Objeto-Relacional) teve uma aceitação maior e é mais usada hoje em dia.
Exemplos de SGBD OR:
Oracle 9i, PostgreSQL, Informix, DB2, etc;
Exemplos de SGBD OO:
Vbase, O2, Orion, Gemstone, Jasmine, ObjectStore;
*
EVOLUÇÃO DAS APLICAÇÕES DE BANCO DE DADOS
Novas aplicações de bancos de dados:
Bancos de Dados Multimídia;
Bancos de Dados Espaciais;
Bancos de Dados Distribuídos;
Bancos de Dados Geográficos;
Bancos de Dados Móveis;
Data Warehouse;
Data Mining;
*
Criando um Banco de Dados
Etapas:
Modelagem conceitual;
Modelagem lógica;
Projeto físico.
É necessário modelar ?!
jandersondutra@gmail.com
https://sites.google.com/site/jandersonsite
*
Banco de Dados
Relacionais 
Modelagem de Dados
Profº Janderson
*
Importância da Modelagem
*
Importância da Modelagem
*
Importância da Modelagem
*
Importância da Modelagem
*
Modelagem dos Dados
Com a modelagem de dados:
Podemos abstrair uma porção do mundo real;
Representamos os dados que devem ser manipulados pela(s) aplicação(ões);
Respeitamos as regras que visam a implementação de uma base de dados confiável e eficiente;
Utilizamos de notações gráficas, apoiadas por ferramentas.
Facilitando ainda mais o entendimento e manuseio destas notações.
*
CONCEITOS IMPORTANTES DE BD
Quando falamos de bancos de dados, alguns conceitos são muito importantes:
Modelo de Dados;
Conceitual
Lógico
Físico
Esquema de Dados;
Instância de um banco de dados;
*
CONCEITOS IMPORTANTES DE BD
Modelos de Dados:
Conjunto de conceitos usados para descrever a estrutura de um banco de dados;
Coleção de elementos de representação com propriedades semânticas e sintáticas pré-definidas;
Um elemento ou um conjunto de elementos de representação são agrupados e organizados para representar uma porção do “mundo real”, constituindo um “esquema de dados” compreensível pelo gerenciador.
Podem ser classificados em três tipos;
Modelo conceitual;
Modelo lógico;
Modelo físico;
*
CONCEITOS IMPORTANTES DE BD
Modelos de Dados:
Modelo Conceitual:
É um modelo de alto nível;
Representam os dados de acordo com a visão do usuário, sem nenhuma informação referente ao armazenamento no BD;
Corresponde a uma representação do “mundo” descrito pelo banco de dados;
*
CONCEITOS IMPORTANTES DE BD
Modelos de Dados:
Modelo Conceitual:
Baseado principalmente em três elementos: entidades, atributos e relacionamentos;
Exemplos: 
Modelo Entidade-Relacionamento; 
UML;
*
CONCEITOS IMPORTANTES DE BD
Modelos de Dados:
Modelo Conceitual:
Exemplo: Modelo Entidade-Relacionamento
*
CONCEITOS IMPORTANTES DE BD
Modelos de Dados:
Modelo Conceitual:
Exemplo: UML
Ator
Caso de Uso
Fronteira do sistema
*
CONCEITOS IMPORTANTES DE BD
Modelos de Dados:
Modelo Lógico:
Também conhecido como modelo de implementação ou representacional;
Baseado em uma representação intermediária entre o usuário e o armazenamento físico;
É o modelo bastante usado pelos SGBD´s;
Exemplos: Modelo relacional, modelo orientado a objetos, modelo de redes, modelo hierárquico, etc;
*
CONCEITOS IMPORTANTES DE BD
Modelos de Dados:
Modelo Lógico:
Exemplo: Modelo Relacional
*
CONCEITOS IMPORTANTES DE BD
Modelos de Dados:
Modelo Físico: 
É um modelo de baixo nível;
Descreve como os dados estão armazenados no computador;
Estrutura dos registros, Rotas de Acesso, etc;
Exemplos: 
Modelo unificado;
Modelo de partição de memória;
*
CONCEITOS IMPORTANTES DE BD
Esquema de Dados:
Corresponde a uma instância de um modelo de dados;
É uma forma de representação estruturada dos dados, segundo um determinado padrão, para que possam ser “entendidos” pelo SGBD utilizado.
Descreve a estrutura do banco de dados;
Tabelas, campos, tipos de dados, restrições dos dados, etc;
Pode ser conceitual, lógico ou físico, de acordo com o modelo ao qual está associado;
*
CONCEITOS IMPORTANTES DE BD
Esquema de Dados:
Exemplo de esquema de dados:
ESQUEMA
*
CONCEITOS IMPORTANTES DE BD
Instância de um banco de dados:
Corresponde ao banco de dados criado de acordo com um esquema de dados;
É nele onde os usuários podem carregar, consultar e manipular dados;
Os dados do banco de dados em um determinado instante de tempo correspondem ao estado do banco;
Um estado é válido quando satisfaz a todas as restrições definidas no esquema;
*
CONCEITOS IMPORTANTES DE BD
Instância de um banco de dados:
INSTÂNCIA
*
LINGUAGENS DE BANCO DE DADOS
As principais linguagens de um SGBD são:
Linguagem de definição de dados (DDL);
Criação e alteração de tabelas, visões, índices, etc;
Linguagem de manipulação de dados(DML);
Consulta, inserção, atualização e exclusão de dados;
*
LINGUAGENS DE BANCO DE DADOS
A linguagem SQL:
É a linguagem de banco de dados padrão, utilizada por todos os SGDB´s modernos;
Permite tanto a definição quanto a manipulação de dados;
Pode ser usada diretamente no BD ou embutida na aplicação;
*
REFERÊNCIAS
REFERÊNCIA BÁSICA
Elmasri, R. E.; Navathe, S. Sistemas de Banco de Dados. Addison-Wesley, 4ª edição, 2005. 
Korth, H.; Silberschatz, A.; Sudarshan, S. Sistemas de Bancos de Dados. Campus, 5ª edição, 2006. 
REFERÊNCIA COMPLEMENTAR
Date, C. J. Introdução a Sistemas de Bancos de Dados. Campus, Tradução da 8ª edição Americana, 2004. 
*
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando