Você está na página 1de 62

FATECPR

Faculdade de Tecnologia de Curitiba

GRADUAÇÃO ENGENHARIA DE COMPUTAÇÃO

12/12/2023 prof.Henrique Zenoni Machado 1


Banco de Dados
Material de apoio à disciplina de Banco de Dados

12/12/2023 prof. Henrique Zenoni Machado 2


1 História dos Banco
de Dados

12/12/2023 prof. Henrique Zenoni Machado 3


A partir da necessidade de...
• Armazenar Informações
• Organizar as Informações
• Poder manipular Informações

12/12/2023 prof. Henrique Zenoni Machado 4


Um pouco de História
• O primeiro banco de dados teve início nas décadas de
60 e 70 na IBM, com pesquisas em automação de
tarefas de escritório.
• Naquela época, havia grande necessidade de recursos
humanos para armazenar e indexar os arquivos.
• Em 1970 um pesquisador da IBM - Ted Codd
publicou o primeiro artigo sobre bancos de dados
relacionais. Este artigo tratava sobre uma forma de
consultar os dados (em tabelas) por meio de
comandos. CONTINUAÇÃO

12/12/2023 prof. Henrique Zenoni Machado 5


IBM - Ted Codd [1970]
• Ted Codd publicou o primeiro
artigo sobre bancos de dados
relacionais. Este artigo tratava
sobre uma forma de consultar
os dados (em tabelas) por meio
de comandos.
“[Codd’s] relational model was at first very controversial;
people thought that the model was too simplistic and that it
could never give good performance.”
( CODD, Ted; 1070)

12/12/2023 prof. Henrique Zenoni Machado 6


Um pouco de História
• Inicialmente, por ser muito complexo, não foi aceito
nem implantado.
• A IBM criou um grupo de pesquisa chamado
System R, com o objetivo de desenvolver um
sistema de BD para ser comercializado.
• System R introduziu uma linguagem chamada
Structured Query Language (SQL).

CONTINUAÇÃO

12/12/2023 7
Um pouco de História
• SQL se tornou padrão internacional para BD
relacional.
• O System R passou a se chamar SQL/DS.
• SQL/DS evoluiu para DB2, que é hoje o banco de
dados comercial da IBM.

12/12/2023 8
2
Definição

12/12/2023 prof. Henrique Zenoni Machado 9


Definições de Banco de Dados
• Coleção de dados relacionados.
• Fatos conhecidos que podem ser registrados e
possuem significado implícito.
• Representa algum aspecto do mundo real.
• Coleção logicamente coerente de dados com algum
significado inerente.
• Construído para uma finalidade específica.

12/12/2023 prof. Henrique Zenoni Machado 10


3
Aplicações

12/12/2023 prof. Henrique Zenoni Machado 11


Usos e Aplicações
• Aplicações de banco de dados tradicionais
• Armazena informações textuais ou numéricas.
• Bancos de dados de multimídia
• Armazena imagens, clipes de áudio e streams de vídeo
digitalmente.
• Sistemas de informações geográficas (GIS)
• Armazena e analisa mapas, dados sobre o clima e
imagens de satélite.
CONTINUAÇÃO
12/12/2023 prof. Henrique Zenoni Machado 12
Usos e Aplicações
• Sistemas de data warehouse e de processamento
analítico on-line (OLAP)
• Extrair e analisar informações comerciais úteis de bancos
de dados muito grandes.
• Ajuda na tomada de decisão.
• Tecnologia de tempo real e banco de dados ativo
• Controla processos industriais e de manufatura.
• Big Data

12/12/2023 prof. Henrique Zenoni Machado 13


4 Sistema de
Armazenamento
Arquivos x Banco de Dados

12/12/2023 prof. Henrique Zenoni Machado 14


Sistema de Arquivos x Banco de Dados

Objetivo comum: Armazenar dados em Sistemas de Computação

• Alguns Sistemas de Arquivos:


• FAT32, NTFS, Ext2, Ext3, ReiserFS....
• Alguns Bancos de Dados:
• MySQL, SQL Server, Firebird, Postegre, DB2, Orcale...
12/12/2023 prof. Henrique Zenoni Machado 15
Sistema de Arquivos
• Difícil manutenção – a estrutura de
arquivos é definida e padronizada no
próprio código do aplicativo (Cobol,
Clipper, etc);
• Difícil Gerencia de Acesso
(Segurança) – o compartilhamento de
arquivos por diferentes programas;
• Falta de Padronização – cada
programa define suas próprias regras de
organização dos Dados contidos num
arquivo;
• Concorrência podem gerar
sobrescrita de Dados – Diferentes
aplicativos com acesso simultâneo.
12/12/2023 prof. Henrique Zenoni Machado 16
Sistema de Banco de Dados
• Acesso Rápido – informações organizadas
permitem um rápido acesso;
• Redução de Problemas – de integridade e
redundância;
• Desenvolvimento de aplicações facilitado;
• Descreve coleções lógicas e coerentes de
dados com algum significado inerente –
uma organização randômica de dados não
pode ser considerada um Banco de Dados;
• Flexível a Mudanças
• Gerenciamento Integrado
• Segurança
• Controle
• Etc... CONTINUAÇÃO

12/12/2023 prof. Henrique Zenoni Machado 17


Sistema de Banco de Dados
• Processamento de arquivo tradicional
• Cada usuário define e implementa os arquivos
necessários para uma aplicação de software específica.
• Abordagem de Banco de Dados
• Um único repositório mantém dados que são definidos
uma vez e depois acessados por vários usuários.

12/12/2023 prof. Henrique Zenoni Machado 18


5
SGDB
Sistema de Gerenciamento de Banco de Dados

12/12/2023 prof. Henrique Zenoni Machado 19


O que é SGDB?
Sistema Gerenciador de Banco de Dados é um conjunto de
programas e ferramentas utilizadas para configurar, atualizar e
manter um banco de dados.

• Recursos para administrar usuários/permissões.


• Recursos para criar/alterar tabelas e banco de dados.
• Recursos para backup e restauração de dados.
• Recursos para otimizar a performance do banco.
12/12/2023 prof. Henrique Zenoni Machado 20
Alguns SGDBs

12/12/2023 prof. Henrique Zenoni Machado 21


6 Características dos
Banco de Dados

12/12/2023 prof. Henrique Zenoni Machado 22


Principais características
• Natureza de autodescrição de um sistema de banco
de dados;
• Isolamento entre programas e dados, abstração de
dados;
• Suporte de múltiplas visões dos dados;
• Compartilhamento de dados;
• Processamento de transação multiusuário.

12/12/2023 prof. Henrique Zenoni Machado 23


Natureza de autodescrição
• O sistema de banco de dados contém definição
completa de sua estrutura e restrições.
• Metadados, que descreve a estrutura do banco de dados.
• O catálogo é usado pelo:
• Software de SGBD
• Usuários do banco de dados que precisam de
informações sobre a estrutura do banco de dados.

12/12/2023 prof. Henrique Zenoni Machado 24


Isolamento entre programas e dados
• Independência de dados do programa
• A estrutura dos arquivos de dados é armazenada no
catálogo do SGBD separadamente dos programas de
acesso (cliente).
• Independência da operação do programa
• Uma operação é especificada em duas partes:
• A interface de uma operação inclui o nome da operação e os
tipos de dados de seus argumentos.
• A implementação da operação pode ser alterada sem afetar a
interface.
12/12/2023 prof. Henrique Zenoni Machado 25
Abstração de Dados
• Abstração de dados
• Permite a independência de dados do programa e a
independência da operação do programa.
• Se adicionar um campo na tabela, na próxima consulta
aquele dado já estará disponível.
• Representação conceitual de dados
• Através do Diagrama MER.
• Não inclui detalhes de como os dados são armazenados
ou como as operações são implementadas.

12/12/2023 prof. Henrique Zenoni Machado 26


Suporte a múltiplas visões dos dados
• Visão
• Subconjunto do banco de dados.
• Contém dados virtuais derivado dos arquivos do banco
de dados, mas que não estão armazenados da forma que
são visualizados.

12/12/2023 prof. Henrique Zenoni Machado 27


Compartilhamento de dados
• Permite que múltiplos usuários acessem o banco de
dados ao mesmo tempo.
• Software de controle de concorrência
• Garante que vários usuários tentando atualizar o mesmo
dado faça isso de uma maneira controlada, resultado
dessas atualizações seja correto.

12/12/2023 prof. Henrique Zenoni Machado 28


Processamento de transação multiusuário
• Transação
• Programa em execução ou processo que inclui um ou
mais acessos ao banco de dados.
• Propriedade de isolamento:
• Cada transação parece executar isoladamente das outras
transações.
• Propriedade de atomicidade:
• Todas as operações em uma transação são executadas ou
nenhuma será.

12/12/2023 prof. Henrique Zenoni Machado 29


7
Atores em Cena

12/12/2023 prof. Henrique Zenoni Machado 30


Atores em cena
• Administrador de banco de dados (DBA) é
responsável por:
• Autorizar o acesso ao banco de dados;
• Coordenar e monitorar seu uso;
• Adquirir recursos de software e hardware.
• Projetistas de banco de dados são responsáveis por:
• Identificar os dados a serem armazenados;
• Escolher estruturas apropriadas para representar e
armazenar esses dados.
CONTINUAÇÃO
12/12/2023 prof. Henrique Zenoni Machado 31
Atores em cena
• Analistas de sistemas:
• Identificam as necessidades dos usuários finais.
• Programadores de aplicações:
• Implementam essas especificações como programas.
• Usuários finais:
• Pessoas cujas funções exigem acesso ao banco de dados.

12/12/2023 prof. Henrique Zenoni Machado 32


8
Bastidores

12/12/2023 prof. Henrique Zenoni Machado 33


Trabalhadores nos Bastidores
• Projetistas e implementadores de sistema de SGBD:
• Projetam e implementam os módulos e as interfaces do
SGBD como um pacote de software.
• Desenvolvedores de ferramentas:
• Projetam e implantam ferramentas.
• Operadores e pessoal de manutenção:
• Responsáveis pela execução e manutenção do ambiente
de hardware e software para o sistema de banco de
dados.
12/12/2023 prof. Henrique Zenoni Machado 34
9
Vantagens do SGDB

12/12/2023 prof. Henrique Zenoni Machado 35


Vantagens da abordagem de SGBD
• Controlando a redundância
• Normalização de dados
• Restringindo o acesso não autorizado
• Subsistema de segurança e autorização
• Software privilegiado
• Oferecer armazenamento persistente para objetos
do programa
• Objeto complexo em C++ pode ser armazenado de forma
permanente em um SGBD orientado a objeto CONTINUAÇÃO
12/12/2023 prof. Henrique Zenoni Machado 36
Vantagens da abordagem de SGBD
• Oferecendo estruturas de armazenamento e técnicas
de pesquisa para o processamento eficiente de
consulta
• Índices.
• Buffering ou caching.
• Processamento e otimização de consulta.

CONTINUAÇÃO
12/12/2023 prof. Henrique Zenoni Machado 37
Vantagens da abordagem de SGBD
• Oferecendo backup e recuperação
• Subsistema de backup e recuperação de SGBD é
responsável pela recuperação.
• Oferecendo múltiplas interfaces do usuário
• Interfaces gráficas do usuário (GUIs).
• Representando relacionamentos complexos entre
dados
• Pode incluir muitas variedades de dados que estão inter-
relacionados de diversas maneiras. CONTINUAÇÃO
12/12/2023 prof. Henrique Zenoni Machado 38
Vantagens da abordagem de SGBD
• Impondo restrições de integridade
• Restrição de integridade referencial.
• cada registro de turma deve estar relacionado a um registro de
disciplina.
• Restrição de chave ou singularidade.
• Cada registro de tabela deve ter um código único.
• Regras de negócio.

CONTINUAÇÃO
12/12/2023 prof. Henrique Zenoni Machado 39
Vantagens da abordagem de SGBD
• Permitir ações usando regras
• Gatilhos (Triggers)
• Regra ativada por atualizações na tabela
• Procedimentos armazenados (Stored Procedures)
• Procedimentos mais elaborados para impor regras

CONTINUAÇÃO
12/12/2023 prof. Henrique Zenoni Machado 40
Implicações adicionais
• Tempo reduzido para desenvolvimento de aplicação;
• Flexibilidade (adequar às novas necessidades);
• Disponibilidade de informações atualizadas;
• Economias de escala.

12/12/2023 prof. Henrique Zenoni Machado 41


10 História das Aplicações
de Banco de Dados

12/12/2023 prof. Henrique Zenoni Machado 42


Uma breve história
Antigas aplicações de banco de dados usando sistemas
hierárquicos e de rede
• Grande quantidade de registros com estrutura semelhante
• Eram implantados em mainframes ($$$) e usavam códigos
complexos para consulta.
Oferecer abstração de dados e flexibilidade de aplicação com
bancos de dados relacionais
• Separa o armazenamento físico dos dados de sua representação
conceitual.
• Utiliza uma linguagem mais simples e de alto nívelCONTINUAÇÃO
(SQL).
12/12/2023 prof. Henrique Zenoni Machado 43
Uma breve história
• Aplicações orientadas a objeto e a necessidade de
bancos de dados mais complexos
• Inicialmente, era um potencial substituto dos bancos de
dados relacionais.
• Falta de padronização e complexidade contribuíram para
este tipo de banco perder o mercado.
• Hoje existem camadas de software que implementam a
Orientação a Objetos no banco de dados relacional.
• ADO Entity Framework, Hibernate, Nhibernate.
CONTINUAÇÃO
12/12/2023 prof. Henrique Zenoni Machado 44
Uma breve história
• Intercâmbio de dados na Web para comércio
eletrônico usando XML
• eXtended Markup Language (XML) é considerada o
principal padrão para intercâmbio entre diversos tipos de
bancos de dados e páginas Web

CONTINUAÇÃO
12/12/2023 prof. Henrique Zenoni Machado 45
Uma breve história
• Estendendo as capacidades do banco de dados para
novas aplicações
• Aplicações científicas.
• Armazenamento de imagens.
• Armazenamento de videos.
• Data Mining (análisa e busca padrões em grandes massas
de dados)

12/12/2023 prof. Henrique Zenoni Machado 46


11 Arquitetura de um
SGDB

12/12/2023 prof. Henrique Zenoni Machado 47


Objetivos das Arquiteturas
• Os projetos Lógico e Funcional do Banco de Dados devem ser
capazes de prever o volume de informações armazenadas a curto,
médio e longo prazo. Os projetos devem ter uma grande capacidade
de adaptação para os três casos mencionados;
• Deve-se ter generalidade e alto grau de abstração de dados,
possibilitando confiabilidade e eficiência no armazenamento dos
dados e permitindo a utilização de diferentes tipos de gerenciadores
de dados através de linguagens de consultas padronizadas;
• Projeto de uma interface ágil e com uma "rampa ascendente" para
propiciar aprendizado suave ao usuário, no intuito de minimizar o
esforço cognitvo.
CONTINUAÇÃO
12/12/2023 prof. Henrique Zenoni Machado 48
Objetivos das Arquiteturas
• Implementação de um projeto de interface compatível com
múltiplas plataformas (UNIX, Windows NT, Windows Workgroup,
etc);
• Independência de Implementação da Interface em relação aos
SGBDs que darão condições às operações de armazenamento de
informações (ORACLE, SYSBASE, INFORMIX, PADRÃO
XBASE, etc).
• Conversão e mapeamento da diferença semântica entre os
paradigmas utilizados no desenvolvimento de interfaces
(Imperativo (ou procedural), Orientado a Objeto, Orientado a
evento), servidores de dados (Relacional) e programação dos
aplicativos (Imperativo, Orientado a Objetos).
12/12/2023 prof. Henrique Zenoni Machado 49
Sistemas Centralizados
Um computador de grande porte que
é o hospedeiro do SGBD e o
emulador para os aplicativos.

Permite muitos usuários manipulem


grande volume de dados

Possui alto custo;


Necessidade de alto poder de
processamento;
Solução centralizada;
12/12/2023 prof. Henrique Zenoni Machado 50
Sistema de Computador Pessoal
O computador pessoal é o
hospedeiro do SGBD e o
cliente ao mesmo tempo.

Simplicidade

Não são flexíveis a


mudanças (melhorias)
12/12/2023 prof. Henrique Zenoni Machado 51
Sistema de Cliente-Servidor
O cliente executa as tarefas do aplicativo
(front-end), e o servidor executa o SGBD
(back-end).

Divisão do processamento entre dois sistemas

Necessita de soluções sofisticadas de software Cliente


que possibilitem:
• Tratamento de transações
• Confirmações de transações (commits)
• Desfazer transações (rollbacks)
• Consultas (stored procedures)
• Gatilhos (triggers) Servidor SGBD
Servidor de
Aplicação ou Web
12/12/2023 prof. Henrique Zenoni Machado 52
Cliente-Servidor (N Camadas)
Acrescenta uma camada
(Aplicação) entre o cliente e
o banco de dados.

12/12/2023 prof. Henrique Zenoni Machado 53


Arquiteturas Distribuídos (N camadas)
A informação está distribuída
em diversos servidores
espalhados em locais diferentes.
Cada servidor atua como no
sistema cliente-servidor (N
Camadas), porém as consultas
oriundas dos aplicativos são
feitas para qualquer servidor
indistintamente
12/12/2023 prof. Henrique Zenoni Machado 54
12 Quando não usar
SGDB

12/12/2023 prof. Henrique Zenoni Machado 55


Opíta-se por Sistemas de Arquivos
• Aplicações de banco de dados simples e bem
definidas, para as quais não se espera muitas
mudanças;
• Requisitos rigorosos, de tempo real, que podem não
ser atendidos devido as operações extras executadas
pelo SGBD;
• Sistemas embarcados com capacidade de
armazenamento limitada;
• Nenhum acesso de múltiplos usuários aos dados;
12/12/2023 prof. Henrique Zenoni Machado 56
DESAFIO...

12/12/2023 prof. Henrique Zenoni Machado 57


Exercício - Problematização
• Em uma empresa de investimentos um jovem entusiasta
resolveu fazer uso de seus conhecimentos de Analise de
Dados para reduzir a perda de Clientes sempre que suas
“apostas” de mercado não resultavam em bons lucros.
• Para tal nosso Jovem entusiasta começou a observar
alguns elementos importantes em seus Clientes e suas
Aplicações e que justificavam uma maior credibilidade
em sua empresa mesmo que com baixos rendimentos,
sendo eles:
12/12/2023 prof. Henrique Zenoni Machado 58
Exercício - Premissas
1. Clientes com idade entre 18 à 25 anos são mais promíscuos e aceitam maiores riscos, mas isso não quer dizer que
saibam lidar com grandes perdas. Portanto ele propõe uma carteira variada de investimento porém com menores
riscos. Normalmente optam por investimentos de renda Variável.
2. Investidores de até 45 anos anseiam por um retorno mais rápido.
3. Clientes com idade entre 35 à 50 anos são mais resistentes a novos tipos de investimentos e recebem bem
investimentos que não resultaram em ganhos.
4. Clientes maiores de 60 anos costumam dirigir suas próprias carteiras de investimentos e desconsideram quaisquer
orientações, quanto mais de um Jovem entusiasta.
5. Clientes que optam pela renda Fixa, dificilmente alternam para renda Variável e quanto o fazem se decepcionam
fácil mediante um resultado negativo.
6. Investimento com maiores retornos e também com maiores riscos são os de renda Variável.
7. Investimento de renda Fixa dificilmente trazem retornos rápidos e quando o fazem são baixos.
8. Clientes de maneira geral procuram investimentos que demonstraram ser rápidos, de baixo risco e alta lucratividade
(variante que só é obtida com análise histórica de todos os investimentos).
12/12/2023 prof. Henrique Zenoni Machado 59
Exercício – Pede-se que...
Com base nos estudos feitos, desenhe o modelo de Dados a ser
Usado
• O modelo de dado deve descrever os atributos de uma
informação através de sua tipagem, nome e conteúdo bem
como o relacionamento de diferentes informações.
• Os dados podem ser melhor apresentados com uso de tabelas,
cada qual com sua respectiva Chave Primária (Primary Key –
PK).
• Ex.:
12/12/2023 prof. Henrique Zenoni Machado 60
Exercício - Resolução
1. Clientes com idade entre 18 à 25 anos são mais promíscuos e aceitam maiores riscos, mas isso
não quer dizer que saibam lidar com grandes perdas. Portanto ele propõe uma carteira variada
de investimento porém com menores riscos. Normalmente optam por investimentos de renda
Variável.

Cliente Carteira_de_Investimento Investimento


ID Nome Idade PK_Cliente PK_Investimento ID Nome Tipo
1 João 15 1 1 1 Poupança Fixa
2 Miguel 43 2 4 2 Tesouro Direto Fixa
3 Rubens 12 1 2 3 Ações Variavel
4 Ronaldo 23 4 3 4 Fundos Imobiliários Variavel

12/12/2023 prof. Henrique Zenoni Machado 61


REFERÊNCIAS
• ATAR, Marcos. Banco de Dados. Material de Aula
(Graduação) – Engenharia de Computação. Acesso
Restrito.
• SUEHRING, Steve - MySQL Bible – Wiley, 2002.

12/12/2023 prof. Henrique Zenoni Machado 62

Você também pode gostar