Baixe o app para aproveitar ainda mais
Prévia do material em texto
0010010110101111001111110101010101000 1010100010101110111000111010110011011 10010110101111001111110101010101000 10100010101110111000111010110011011 10010010110101111001111110101010101 010100010101110111000111010110011 110111100111111010101010100010111 10101110111000111010110011011111 1011101001010101110000101010111 0110101111001111110101010101000 010101110111000111010110011011 010110101111001111110101010101 100010101110111000111010110011 11100111111010101010100010111 10110101111001111110101010101 Introdução Bancos de Dados Luiz Celso Gomes-Jr gomesjr@dainf.ct.utfpr.edu.br Mundo de Dados Mundo de Dados ● Curtidas em Redes Sociais ● Mensagens Instantâneas ● Páginas na Web ● Notas dos alunos ● Fotos ● Localização de Pokémons ● Sinais de televisão ● Saldo de contas correntes ● Produtos à venda Dados X Aplicações Curtidas Notas dos alunos Localização Pokémons Produtos à venda Saldo de contas Dados X Aplicações Curtidas Notas dos alunos Localização Pokémons Produtos à venda Saldo de contas Banco de Dados Dados e aplicações ● Diversas aplicações geram e lidam com uma grande quantidade de dados ● É importante garantir a integridade dos dados e disponibilizá-los da forma mais efciente possível ● Sistemas de Gerenciamento de Bancos de Dados (SGBDs) são responsáveis pelo armazenamento, gerenciamento e disponibilização dos dados Um Sistema de Gerenciamento de Bancos de Dados provê: Armazenamento e acesso a uma grande quantidade de dados persistentes de forma efciente, confiável, conáveniente, segura e multi-usuirio. Super SGBD SGBD Preciso implementar um sistema! Quem cuidará dos meus dados?? Eu, o Super SGBD SGBDs desempenham muitas tarefas importantes que sobrecarregariam os programadores. Veremos ao longo do curso o quanto eles facilitam nosso trabalho. Arquiteturas típicas para SGBDs ● O SGBD intermedia a manipulação dos dados para as aplicações ● Como esta intermediação é feita e quais elementos estão envolvidos depende do contexto da aplicação ● Aplicações podem demandar diversas confgurações de arquiteturas locais ou distribuídas (ou híbridas) Arquitetura local ● Não costumam ser classifcados como SGBDs ● O banco é um software ou biblioteca executado no mesmo dispositivo da aplicação BDApp Computador, Celular, etc Arquitetura Cliente- Servidor ● Usada na maioria das instituições ● Usuário acessa a aplicação por um dispositivo Cliente (desktop, laptop, celular…) ● Aplicação envia consultas para obter dados do SGBD (Servidor) ● SGBD processa consulta e retorna dados para serem exibidos no Cliente ● Exemplos: Folha de pagamentos, iTunes Arquitetura Cliente- Servidor App Cliente 1 Servidor SGBD App Cliente n . . . Rede Arquitetura Web 1.0 ● Usada na maioria dos sites “normais” ● Usuário usa o navegador para requisitar páginas para um Servidor Web ● Servidor Web envia consultas a um ou mais SGBDs para obter dados e montar a página ● Exemplos: bancos online, sites de empresas ● Muitas apps e sites como Facebook, Google precisam de arquiteturas mais complexas. Veremos estes casos no fm do curso. Arquitetura Web 1.0 Servidor 1 SGBD . . . Internet Navegador 1 Servidor Web Navegador n Servidor n SGBD Rede Interna . . . Exemplo: Facebook 1.Usuário abre o navegador e entra em facebook.com 2.Servidor Web do facebook recebe a requisição do usuário 3.Servidor Web do facebook obtém dados do mural de um SGBD interno 4.Servidor Web do facebook obtém dados de propaganda de um outro SGBD interno 5.Servidor Web do facebook monta a página e envia para o navegador exibir Conceitos importantes ● Modelo de Dados – Como representar os dados (listas, tabelas, árvores, grafos…) ● Esquema X Dados – Separação entre a defnição (tipo) e o conteúdo (instâncias, variáveis) ● Linguagem de Consulta – Como requisitar dados para o banco de forma conveniente (exemplo: como dizer para o SGBD “obtenha o salário médio de todos os funcionários que têm mais de 30 anos”) Domadores de SGBDs ● Implementador: quem constrói o sistema (em geral grandes empresas como MS, IBM, Oracle, mas também muitas startups) ● Projetista: Faz análise e cria o esquema (defne os tipos ou classes) ● Desenávolávedor de aplicações: programador que usa o banco de dados (faz consultas, modifca dados) ● Administrador (DBA): Gerencia o carregamento de dados, segurança, backups, efciência, etc. Uma breve história dos SGBDs ● Início (até 1980): Caos (sem SGBDs) ● Maturidade (1980 a 2000): Bancos de dados relacionais surgem, dão ordem ao caos, dominam indústria, fazem bilionários ● Dilúvio de dados (2000, hoje e amanhã): Web explode e inicia um novo caos!!! Caos (até ~1980) ● Ninguém sabe como armazenar os dados ● Cada um faz do seu jeito ● Métodos populares: hierárquico, rede ● Manutenção cara, difícil integração entre sistemas, bugs, inconsistência... ● Avanços em discos e ftas magnéticas permitem armazenamento de grandes quantidades de dados Exemplo: Biblioteca P r o g r a m a d e C o n t r o l e d e M e m b r o s P r o g r a m a d e R e g i s t r o d o A c e r v o C a d a s t r o d e M e m b r o s A r q u i v o C a d a s t r o d e L i v r o s A r q u i v o Sistemas isolados, implementados de forma independente e incompatíveis! (Santanchè 2013) Sistemas/Arquivos Isolados ● Redundância não controlada – Repetição – Inconsistência ● Barreiras para referenciar dados em outros sistemas ● Difculdades com: – acesso concorrente – integridade e recuperação em caso de falha – segurança e controle de acesso SGBDs (80's) ● Modelos conceituais sólidos (Modelo Relacional) ● Separação entre visão lógica e implementação física ● Linguagens de consulta poderosas (SQL) ● Implementações comerciais efcientes Benefícios dos SGBDs ● Independência de dados ● Acesso efciente ● Tempo reduzido no desenvolvimento de aplicações ● Segurança e integridade de dados ● Administração de dados uniforme ● Acesso concorrente ● Recuperação de falhas P r o g r a m a d e C o n t r o l e d e M e m b r o s P r o g r a m a d e R e g i s t r o d o A c e r v o C a d a s t r o d e M e m b r o s C a d a s t r o d e L i v r o s B a n c o d e D a d o s d a B i b l i o t e c a e m p r é s t i m o SGBD (Santanchè 2013) SGBD Banco de Dados SGBD Sistema Gerenciador de Banco de Dados Aplicação Aplicação Aplicação (Santanchè 2013) Independência de Dados ● Separação entre como aplicações enxergam os dados e como eles estão armazenados M o d e l o C o n c e i t u a l B a n c o d e D a d o s V i s ã o E x t e r n a 1 V i s ã o E x t e r n a 2 V i s ã o E x t e r n a n U s u á r i o s F i n a i s M o d e l o L ó g i c o M o d e l o F í s i c o e s q u e m a c o n c e i t u a l e s q u e m a l ó g i c o e s q u e m a f í s i c o r e q u i s i t o s r e q u i s i t o s r e q u i s i t o s I n d e p e n d e n t e d e S G B D D e p e n d e n t e d e S G B D ( G u i m a r ã e s , 2 0 0 3 ) Modelo Relacional ● Proposto por E. F. Codd em 1970 no artigo: – “A Relational Model for Large Shared Data Banks” ● Independência da estrutura interna – “Activities of users at terminals and most application programs should remain unafected when the internal representation of data is changed […]” (Codd, 1970) Modelo Relacional● Modelo mais amplamente utilizado por SGBDs ● Maiores empresas de informática oferecem soluções: IBM, Microsoft, Oracle, SAP ● Grandes projetos Open Source: MySQL, PostgreSQL, SQLite ● De celulares à data centers ● Mercado de U$24bi (2012) Larry Ellison, ORACLE Relação (Tabela) ● Tupla = conjunto ordenado de atributos ● Valores de atributos são atômicos e monovalorados I S B N T í t u l o C a t e g o r i a A u t o r A n o 9 5 8 0 4 7 1 4 4 4 V i d a s S e c a s R o m a n c e G r a c i l i a n o R a m o s 1 9 3 8 9 5 8 0 4 7 9 5 0 X A g o s t o R o m a n c e R u b e m F o n s e c a 1 9 9 0 0 5 5 4 2 5 3 2 1 6 M i c r o g r a p h i a C i ê n c i a s R o b e r t H o o k e 1 6 6 5 0 1 9 5 0 8 7 4 4 5 D i v i n a C o m é d i a P o e s i a D a n t e A l i g h i e r i 1 3 0 8 0 5 5 9 2 7 4 2 8 9 L e O p e r e C i ê n c i a s G a l i l e u G a l i l e i 1 8 1 1 0 4 5 1 5 2 6 9 2 9 H a m l e t D r a m a W i l l i a m S h a k e s p e a r e 1 5 9 9 1 6 0 3 0 3 3 7 8 5 O t h e l l o D r a m a W i l l i a m S h a k e s p e a r e 1 5 6 5 t u p l a s a t r i b u t o s L i v r o r e l a ç ã o (Santanchè 2013) Consultas (SQL) ISBN Título Categoria Autor Ano 9580471444 Vidas Secas Romance Graciliano Ramos 1938 958047950X Agosto Romance Rubem Fonseca 1990 0554253216 Micrographia Ciências Robert Hooke 1665 0195087445 Divina Comédia Poesia Dante Alighieri 1308 0559274289 Le Opere Ciências Galileu Galilei 1811 0451526929 Hamlet Drama William Shakespeare 1599 1603033785 Othello Drama William Shakespeare 1565 Livro ● Obtenha todos os livros de categoria “drama” ● SELECT * FROM Livro WHERE Categoria = “Drama” SGBDs (2000 em diante) ● Modelo relacional continua dominando o mercado ● BDs relacionais são adequados para mais de 90% das aplicações ● Mas a Internet, Celulares, Redes Sociais, Sensores… Têm causado uma revolução! BigData – Dilúvio de Informação Dilúvio de Informação ● 1bi usuários conectados no facebook (23/08/2015) ● 2bi smartphones no mundo ● 1b sites web ● 300 horas de vídeo no YouTube a cada minuto ● Google, Amazon, Microsoft and Facebook = 1,200 petabytes = 1.200.000.000.000.000.000 bytes = 5 pilhas de CDs até a Estação Espacial Internacional Cientista de DadosCientista de Dados • salário médio nos EUA $118,709 (dobro de um programador) • em 2018 se prevê um défcit de 140.000 a 190.000 profssionais nos EUA Revista Exame ● Cerca de 2,5 bilhões de gigabytes de dados são criados diariamente, o sufciente para encher 15 milhões de iPads. ● … É aí que entra a fgura do cientista de dados, capaz de extrair informações úteis de onde impera o caos. ● “Esse profssional é alguém que consegue unir dados desconexos, apontar tendências e ajudar na tomada de decisões” (IBM Brasil) Revista Exame ● A atual ênfase dada a esse profssional marca uma nova fase da indústria de TI. ● No Brasil, um profssional recém-formado pode ganhar até 000 reais, enquanto os gerentes chegam a receber cerca de 20000 reais. ● “Hoje, a disputa por esses profssionais é global e deve persistir por pelo menos uma década” ● o défcit de profssionais pode chegar a 380000 vagas no mundo em 2018. Business Insider http://www.businessinsider.com/data-scientist-best-job-in-us-right-now-2018- 2 Business Insider ● For the third year in a row, data scientist has been ranked the best job in America ● the data scientist position has the highest overall job score of 4.8 out of a possible 5 ● data scientists have an average compensation of $120,000 per year, there are 4,524 job openings, and overall job satisfaction in the position scores a 4.2 out of 5 http://www.businessinsider.com/data-scientist-best-job-in-us-right-now-2018- 2 Business Insider - skills ● SQL ● Some Python ● R ● Modeling ● Dashboarding ● Depending on the data scientist you are you can use Tableau ● More recent big data tools like Hadoop http://www.businessinsider.com/data-scientist-best-job-in-us-right-now-2018-2 Engenheiros e Dados ● As soluções para processamento de dados atualmente mesclam otimizações de software e hardware ● Atuais datacenters são monstros a serem domados ● Empresas tipicamente de engenharia estão se tornando cada vez mais especialistas em dados ● O mercado está crescendo… muito! Luiz André Barroso Engenheiro do Google responsável pelo desenvolvimento da arquitetura de Datacenter moderna. McLaren Tesla Motors ● Autonomous cars ● Fleet learning ● over-the-air updates O que vamos ver ● Como obter e armazenar dados ● Como modelar os dados ● Como gerenciar os dados ● Como consultar e manipular os dados ● Como otimizar o desempenho do banco para atender às necessidades da aplicação ● E como resolver qualquer problema relacionado com dados no mundo e região! Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 computação + internet = dilúvio de informação Slide 34 Slide 35 Cientista de Dados Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47
Compartilhar