• Nenhum resultado encontrado

Bancos de Dados: impossível viver sem eles...

N/A
N/A
Protected

Academic year: 2021

Share "Bancos de Dados: impossível viver sem eles..."

Copied!
95
0
0

Texto

(1)

Bancos de Dados:

impossível viver sem eles...

Vanessa Braganholo

(2)

Vocês já sabem programar...

• Problema: eu preciso calcular a média de uma turma de Estruturas de Dados II

(3)

public static void main(String[] args) { Scanner teclado = new Scanner(System.in);

System.out.print("Entre com o número de alunos da turma: "); int t = teclado.nextInt();

float notas[][] = new float[t][4]; for (int i = 0; i < t; i++) {

//armazena notas de 3 provas dos alunos de uma turma em uma matriz

System.out.println("Entre com a nota da P1 do aluno " + i + ":"); notas[i][0] = teclado.nextFloat();

System.out.println("Entre com a nota da P2 do aluno " + i + ":"); notas[i][1] = teclado.nextFloat();

System.out.println("Entre com a nota da P3 do aluno " + i + ":"); notas[i][2] = teclado.nextFloat();

//calcula a média e armazena na quarta posição da matriz notas[i][3] = (notas[i][0] + notas[i][1] + notas[i][2])/3; }

(4)

for (int i = 0; i < t; i++) {

//imprime a media e o status de cada aluno. float media = notas[i][3];

System.out.print("A média do aluno " + i + " é: " + media + ". "); System.out.print("O status do aluno é: ");

if (media >= 6) System.out.println("APROVADO"); else if (media < 4) System.out.println("REPROVADO"); else System.out.println("FAZER VS"); }

(5)
(6)

Vamos testar?

• Funciona!

• Mas, na hora de lançar as notas na pauta, eu me dou conta de que vou ter que digitar todas as

notas novamente!

• Por que? Porque o programa não “salva” os dados digitados pelo professor

• A cada execução, a memória está zerada, e os dados são lidos para que a média possa ser calculada

(7)

Solução?

• Vamos gravar as notas num arquivo!

• Assim, eu digito tudo uma única vez, e os dados podem ser lidos futuramente se necessário

• Um conjunto de notas fica associado à matrícula do aluno, e também ao ano/semestre em que ele cursou a disciplina

(8)

Arquivo de Notas

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0

(9)

Mas...

• Depois te gravar as notas de 20 turmas no

arquivo, ele começa a ficar grande e difícil de manipular

(10)

Cenário 1

• Um ex-aluno se candidatou para ser meu bolsista de IC

• Para decidir se vou aceitá-lo, quero consultar a nota que ele tirou na minha disciplina

• Solução: tenho que escrever um programa que lê o arquivo sequencialmente, até encontrar as

(11)

Matrícula a procurar: 1001003

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0

(12)

Matrícula a procurar: 1001003

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0

(13)

Matrícula a procurar: 1001003

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0

(14)

Matrícula a procurar: 1001003

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0

(15)

Matrícula a procurar: 1001003

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0

(16)

Matrícula a procurar: 1001003

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0

(17)

Matrícula a procurar: 1001003

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0

(18)

Cenário 2

• Quero fazer uma análise estatística para ver a

evolução da média das turmas ao longo dos anos

• Solução: fazer um programa que lê o arquivo

sequencialmente, calcula a média de cada turma, e imprime na tela os valores das médias por

(19)

Calcular a média das turmas

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0 8,33

(20)

Calcular a média das turmas

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0 8,33 4,56

(21)

Calcular a média das turmas

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0 8,33 4,56 6,33

(22)

Calcular a média das turmas

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0 8,33 4,56 6,33

(23)

Calcular a média das turmas

• Média da turma 2009/1 = 6,40

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10,0 8,0 7,0 1002001 2009 1 7,0 5,5 1,2 1003001 2009 1 4,0 7,0 8,0 1001002 2009 2 8,0 4,5 7,1 1002002 2009 2 7,5 6,5 7,0 1001003 2010 1 8,4 5,6 4,0 1002003 2010 1 7,0 4,5 9,0 8,33 4,56 6,33 6,40

(24)

Mas...

• Quanto mais o tempo passa, maior fica o arquivo, mais lentas ficam as consultas

(25)

Como melhorar esse cenário?

• Organizar os dados de forma que eles sejam armazenados ordenados por número de

matrícula

• Isso faria a busca das notas de 1 aluno ser mais rápida (poderíamos usar busca binária, por

(26)

Matrícula a procurar: 1001003

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10 8 7 1001002 2009 2 8 4,5 7,1 1001003 2010 1 8,4 5,6 4 1002001 2009 1 7 5,5 1,2 1002002 2009 2 7,5 6,5 7 1002003 2010 1 7 4,5 9 1003001 2009 1 4 7 8

(27)

Matrícula a procurar: 1001003

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10 8 7 1001002 2009 2 8 4,5 7,1 1001003 2010 1 8,4 5,6 4 1002001 2009 1 7 5,5 1,2 1002002 2009 2 7,5 6,5 7 1002003 2010 1 7 4,5 9 1003001 2009 1 4 7 8

(28)

Matrícula a procurar: 1001003

Matrícula Ano Semestre P1 P2 P3

1001001 2009 1 10 8 7 1001002 2009 2 8 4,5 7,1 1001003 2010 1 8,4 5,6 4 1002001 2009 1 7 5,5 1,2 1002002 2009 2 7,5 6,5 7 1002003 2010 1 7 4,5 9 1003001 2009 1 4 7 8

(29)

Por outro lado...

• Calcular a média de cada turma fica bem mais complexo, pois os dados agora não estão mais armazenados por turma

(30)

Então vamos indexar o arquivo!

• Criar um arquivo separado que aponta para os registros que contêm um determinado valor de ano semestre

(31)

Indexar por Ano/Semestre

Matrícula Ano Semestre P1 P2 P3

0 1001001 2009 1 10 8 7 1 1001002 2009 2 8 4,5 7,1 2 1001003 2010 1 8,4 5,6 4 3 1002001 2009 1 7 5,5 1,2 4 1002002 2009 2 7,5 6,5 7 5 1002003 2010 1 7 4,5 9 6 1003001 2009 1 4 7 8

Ano Semestre Endereço

2009 1 {0, 3, 6} 2009 2 {1, 4} 2010 1 {2, 1}

(32)

Mas...

• O chefe do departamento gostou da minha ideia, e resolveu que todos os professores do

departamento deveriam utilizá-lo para armazenar as notas de suas disciplinas

(33)

Para isso, precisamos...

• Adicionar uma coluna para identificar o professor da turma

• Adicionar uma coluna para identificar a disciplina

(34)

Adição de colunas Professor e

Disciplina

Matrícula Professor Disciplina Turma Ano Semestre P1 P2 P3

1001001 Vanessa ED2 A1 2009 1 10 8 7 1001001 Leo Murta Prog I A1 2006 2 5 8,5 6,5 1001002 Vanessa ED2 A1 2009 2 8 4,5 7,1 1001002 Simone FAC A1 2006 2 4 6,5 7 1001003 Vanessa ED2 A1 2010 1 8,4 5,6 4 1002001 Vanessa ED2 A1 2009 1 7 5,5 1,2 1002002 Vanessa ED2 A1 2009 2 7,5 6,5 7 1002003 Vanessa ED2 A1 2010 1 7 4,5 9 1003001 Vanessa ED2 A1 2009 1 4 7 8 ...

(35)

Alteração na estrutura do arquivo...

• Implica em alteração no programa que lê e manipula o arquivo

• Não existe independência entre os dados e o programa que os usa

(36)

Problema (1)

• Redundância de Dados pode levar a estados inconsistentes

(37)

Inconsistência devido a Redundância

Matrícula Professor Disciplina Turma Ano Semestre P1 P2 P3

1001001 Vanessa ED2 A1 2009 1 10 8 7 1001001 Leo Murta Prog I A1 2006 2 5 8,5 6,5 1001002 Vanessa ED2 A1 2009 2 8 4,5 7,1 1001002 Simone FAC A1 2006 2 4 6,5 7 1001003 Vanessa ED2 A1 2010 1 8,4 5,6 4 1002001 Vanessa ED2 A1 2009 1 7 5,5 1,2 1002002 Vanessa ED2 A1 2009 2 7,5 6,5 7 1002003 Vanessa ED2 A1 2010 1 7 4,5 9 1003001 Vanessa ED2 A1 2009 1 4 7 8 ...

(38)

Inconsistência devido a Redundância

Matrícula Professor Disciplina Turma Ano Semestre P1 P2 P3

1001001 Vanessa ED2 A1 2009 1 10 8 7 1001001 Leo Murta Prog I A1 2006 2 5 8,5 6,5 1001002 Vanessa ED2 A1 2009 2 8 4,5 7,1 1001002 Simone FAC A1 2006 2 4 6,5 7 1001003 Vanessa ED2 A1 2010 1 8,4 5,6 4 1002001 Vanessa ED2 A1 2009 1 7 5,5 1,2 1002002 Vanessa ED2 A1 2009 2 7,5 6,5 7 1002003 Vanessa ED2 A1 2010 1 7 4,5 9 1003001 Aline ED2 A1 2009 1 4 7 8 ...

(39)

Problema (2)

(40)

Exemplo

• Eu quero inserir os dados de uma nova turma no arquivo

1. Abro o arquivo

2. Gravo 20 novos registros

• Ao mesmo tempo, Simone também quer inserir novos dados

1. Abre o arquivo

(41)

Exemplo

• Dependendo da ordem em que as operações são disparadas, podemos ter vários resultados:

1. Alguns dos meus registros são gravados, outros são sobreescritos pelos da Simone; ou

2. Os 30 registros da Simone ficam gravados por cima dos meus 20 (e os meus 20 são perdidos)

(42)

Problema (3)

• Um professor não pode ter permissão de alterar as notas de outro professor

• Outra pessoa que não seja professor não pode ver os dados do arquivo

(43)

Como resolver estes problemas?

• Uso de um Sistema de Gerência de Banco de Dados (SGBD)

▫ Controle de concorrência

▫ Autorização e controle de acesso ▫ Indexação

(44)

Vamos criar um Banco de Dados para

resolver o nosso problema?

1. Modelagem de dados

2. Tradução para modelo relacional (tabelas)

3. Criação das tabelas no banco de dados

4. Inserção dos dados

(45)
(46)

2. Tradução para modelo relacional

(tabelas)

• Disciplina (CodDisciplina, Nome)

• Professor (CodProfessor, Nome)

• Turma (CodDisciplina, CodTurma, Ano, Semestre, CodProfessor)

▫ CodDisciplina referencia Disciplina ▫ CodProfessor referencia Professor • Aluno (Matricula, Nome)

• Inscricao (Matricula, CodDisciplina, CodTurma, Ano, Semestre, P1, P2, P3)

▫ Matricula referencia Aluno

▫ (CodDisciplina, CodTurma, Ano, Semestre) referencia Turma

(47)

3. Criação das tabelas no Banco de

Dados

CREATE TABLE Disciplina (

codDisciplina VARCHAR(8) NOT NULL, nome VARCHAR(100),

PRIMARY KEY (codDisciplina) );

CREATE TABLE Professor (

codProfessor VARCHAR(8) NOT NULL, nome VARCHAR(100),

PRIMARY KEY (codProfessor) );

(48)

CREATE TABLE Turma (

codDisciplina VARCHAR(8) NOT NULL, codTurma VARCHAR(3) NOT NULL, ano INT NOT NULL,

semestre INT NOT NULL, codProfessor VARCHAR(8),

PRIMARY KEY(codDisciplina, codTurma, ano, semestre), FOREIGN KEY codDisciplina REFERENCES Disciplina, FOREIGN KEY codProfessor REFERENCES Professor );

CREATE TABLE Aluno ( matricula INT NOT NULL, nome VARCHAR(100), PRIMARY KEY(matricula) );

(49)

CREATE TABLE Inscricao ( matricula INT NOT NULL,

codDisciplina VARCHAR(8) NOT NULL, codTurma VARCHAR(3) NOT NULL, ano INTO NOT NULL,

semestre INT NOT NULL, p1 FLOAT,

p2 FLOAT, p3 FLOAT,

PRIMARY KEY (matricula, codDisciplina, codTurma, ano, semestre),

FOREIGN KEY matricula REFERENCES Aluno,

FOREIGN KEY (codDisciplina, codTurma, ano, semestre) REFERENCES Turma

(50)
(51)

4. Inserção dos dados (Professor)

INSERT INTO Professor (CodProfessor, Nome)

VALUES (‘500100’, ‘Vanessa’);

INSERT INTO Professor (CodProfessor, Nome) VALUES (‘500101’, ‘Simone’);

INSERT INTO Professor (CodProfessor, Nome) VALUES (‘500103’, ‘Leo Murta’);

(52)

4. Inserção dos dados (Turma)

INSERT INTO Turma (CodDisciplina, CodTurma, Ano, Semestre, CodProfessor)

VALUES (‘TCC00165’, ‘A1’, 2012, 1, ‘500101’);

INSERT INTO Turma (CodDisciplina, CodTurma, Ano, Semestre, CodProfessor)

(53)

4. Inserção dos dados (Aluno)

INSERT INTO Aluno (Matricula, Nome)

VALUES (1000101, ‘Maria Silva’);

INSERT INTO Aluno (Matricula, Nome) VALUES (1000102, ‘Jonas Castro’);

INSERT INTO Aluno (Matricula, Nome) VALUES (1000103, ‘Anderson Fontes’);

(54)

4. Inserção dos dados (Inscricao)

INSERT INTO Inscricao (Matricula, CodDisciplina, CodTurma, Ano,

Semestre, P1, P2, P3)

VALUES (1000101, ‘TCC00165’, ‘A1’, 2012, 1, 10, 4, 5.6) ...

(55)

Aluno

Professor Disciplina

(56)

Aluno

Professor Disciplina

Turma Inscrição

(57)
(58)

Consulta 1

• Listar todos os nomes de alunos que estão matriculados na turma “A1” da disciplina “TCC00165” em 2012/1.

SELECT nome

FROM aluno a, inscricao i WHERE i.ano = 2012

AND i.semestre = 1

AND i.codTurma = 'A1'

AND i.codDisciplina = 'TCC00165' AND a.matricula = i.matricula

(59)

Consulta 1

• Listar todos os nomes de alunos que estão matriculados na turma “A1” da disciplina “TCC00165” em 2012/1.

SELECT nome

FROM aluno a, inscricao i WHERE i.ano = 2012

AND i.semestre = 1

AND i.codTurma = 'A1'

AND i.codDisciplina = 'TCC00165' AND a.matricula = i.matricula

(60)

Consulta 2

• Listar todas as notas do aluno cuja matrícula é 1001003

SELECT codDisciplina, p1, p2, p3 FROM inscricao i

(61)

Consulta 2

• Listar todas as notas do aluno cuja matrícula é 1001003

SELECT codDisciplina, p1, p2, p3 FROM inscricao i

(62)

Consulta 3

• Calcular a média de cada turma

SELECT codDisciplina, codTurma, ano, Semestre, AVG((p1+p2+p3)/3) AS media

FROM inscricao

GROUP BY codDisciplina, codTurma, ano, Semestre

(63)

Consulta 3

• Calcular a média de cada turma

SELECT codDisciplina, codTurma, ano, Semestre, AVG((p1+p2+p3)/3) AS media

FROM inscricao

GROUP BY codDisciplina, codTurma, ano, Semestre

(64)

Consulta 4

• Calcular as médias de cada aluno em cada

disciplina, e mostrar em ordem decrescente de média

SELECT a.nome, a.matricula, i.codDisciplina, (p1+p2+p3)/3 AS media

FROM aluno a, inscricao i

WHERE a.matricula = i.matricula ORDER BY media desc

(65)

Consulta 4

• Calcular as médias de cada aluno em cada

disciplina, e mostrar em ordem decrescente de média

SELECT a.nome, a.matricula, i.codDisciplina, (p1+p2+p3)/3 AS media

FROM aluno a, inscricao i

WHERE a.matricula = i.matricula ORDER BY media desc

(66)

Voltando aos problemas no uso de

arquivos...

• Problema 1: Redundância de Dados

▫ Separamos os dados em várias tabelas – não há mais redundância

▫ Mas isso depende de uma boa modelagem dos dados – o SGBD por si só não garante que não haverá redundância

(67)

Voltando aos problemas no uso de

arquivos...

• Problema 2: Acesso concorrente

▫ O SGBD garante que, mesmo com acessos concorrentes, os dados continuarão íntegros

(68)

Voltando aos problemas no uso de

arquivos...

• Problema 3: Um professor não pode alterar os dados de turmas de outros professores

▫ Vamos criar uma visão para cada professor – cada professor enxergará e terá permissão para alterar somente os dados de suas próprias turmas

(69)

Criação da Visão

CREATE VIEW INSCRICOES_VANESSA AS ( SELECT * FROM INSCRICAO

WHERE (codDisciplina, codTurma, ano, semestre) IN (SELECT codDisciplina, codTurma, ano, semestre FROM TURMA

WHERE CodProfessor='500100' ) )

(70)

Consulta sobre a visão

SELECT *

(71)
(72)

E se...

• O sistema de carteirinhas da UFF quiser usar o meu banco de dados?

• O sistema de monitoria da UFF quiser usar o meu banco de dados?

(73)

E se...

• O sistema de carteirinhas da UFF quiser usar o meu banco de dados?

• O sistema de monitoria da UFF quiser usar o meu banco de dados?

• Posso adicionar outras tabelas, e várias

aplicações passam a usar o mesmo banco de dados

(74)

Banco de Dados da UFF

idUFF Carteirinhas

(75)

Facebook

• Usa vários bancos de dados para armazenar

usuários, amigos, posts, fotos, etc

• MySQL, Cassandra

(76)

Facebook

• Para mostrar o seu feed de notícias, o Facebook faz consultas ao banco de dados para trazer os posts recentes dos seus amigos

SELECT mensagem

FROM posts p, amigos a, usuario u1, usuario u2 WHERE p.autor = u2.id

AND a.usuario = u1.id AND a.amigo =u2.id

(77)

Facebook

• Para mostrar o seu feed de notícias, o Facebook faz consultas ao banco de dados para trazer os posts recentes dos seus amigos

SELECT mensagem

FROM posts p, amigos a, usuario u1, usuario u2 WHERE p.autor = u2.id

AND a.usuario = u1.id AND a.amigo =u2.id

AND u1.id = ‘X000123023920’

IMPORTANTE: Este é um exemplo hipotético – não quer dizer que os dados estejam armazenados com essa

(78)

Facebook

• Para mostrar o seu feed de notícias, o Facebook faz consultas ao banco de dados para trazer os posts recentes dos seus amigos

SELECT mensagem

FROM posts p, amigos a, usuario u1, usuario u2 WHERE p.autor = u2.id

AND a.usuario = u1.id AND a.amigo =u2.id

AND u1.id = ‘X000123023920’

ID do usuário para o qual o Facebook vai exibir o Feed de

notícias

IMPORTANTE: Este é um exemplo hipotético – não quer dizer que os dados estejam armazenados com essa

(79)
(80)

Facebook em números (Dados de 2010)

570 bilhões de page views por mês

• Existem mais fotos no Facebook do que em

todos os outros sites juntos (incluindo o Flickr)

Mais de 3 bilhões de fotos são armazenadas no Facebook por mês

O sistema do Facebook serve 1,2 milhões de fotos por segundo

Mais de 25 bilhões de mensagens

(atualizações de status, comentários, etc) são trocadas pelos usuários a cada mês

(81)

Bancos

• Cada cliente é uma tupla numa tabela (clientes)

• Cada conta corrente é uma tupla numa tabela (conta)

• Cada débito ou crédito na sua conta é uma tupla numa tabela (transações)

• Imaginem a quantidade de dados armazenada no banco de dados do Banco do Brasil!

(82)

Banco do Brasil em números

52,7 milhões de clientes

33,758 milhões de contas-correntes de

pessoas físicas

2,176 milhões de contas-correntes de pessoas

jurídicas

• Se cada conta-corrente tiver uma média de 10 lançamentos por mês (entre débitos e créditos), a tabela de transações teria em torno de 360

milhões de novas tuplas por mês

(83)

Imposto de Renda

• Cada declaração de Imposto de Renda é enviada para a Receita Federal, que armazena os dados em seu banco de dados (desmembrando os

(84)

Imposto de Renda em números

• 25.244.122 declarações foram recebidas em 2012

• Se cada declaração tiver 10 bens (entre contas-correntes, aplicações financeiras, imóveis, etc), a tabela de bens recebe 250 milhões de tuplas

por ano

• Além dos bens, cada declaração também informa despesas médicas, dados de dependentes, fontes pagadoras, etc

Fonte:

(85)

Cartão de Crédito

(86)

Visa em números

916 milhões de transações no último trimestre

de 2010 (América Latina + Caribe)

(87)

Gmail

(88)

Gmail em números

• 350 milhões de usuários

• Supondo que cada usuário envia/recebe 20

emails por dia, são 7 bilhões de mensagens que precisam ser armazenadas por dia

(89)

DBA

• Todas essas são aplicações isoladas, porém com grande quantidade de dados - tempo de acesso é crucial

• Empresas grandes possuem várias aplicações acessando o mesmo banco de dados

• Nestes casos, é necessário um profissional

especializado para “cuidar do banco de dados” – o DBA

(90)
(91)

No mercado

• Um desenvolvedor/programador/analista de sistemas precisa que saber banco de dados

▫ Os dados tratados pela aplicação que o

desenvolvedor está construindo quase sempre precisam ser armazenados

▫ Entender como isso funciona é crucial para fazer programas eficientes e corretos

(92)
(93)
(94)

http://www.indeed.com/salary US$ 8000,00 por mês!

(95)

Bancos de Dados:

impossível viver sem eles...

Vanessa Braganholo

Referências

Documentos relacionados

Responsável por todas as atividades de supervisão da Fábrica de Software, juntamente com o professor Orientador, tendo como foco: captação de projetos, levantamento e

Membro_Faculdade (Matrícula: Inteiro, Nome: string[50], Carga: Inteiro, IniContrato: data, Curso: string[30], professor: booleano, aluno: booleano). Membro

g) Os empregados poderão ter uma jornada de trabalho de 6 (seis) horas diárias, de segunda a sexta-feira, e nos finais de semana, sábado e domingo, em escala de 12 x 36,

Atender pacientes para prevenção, habilitação e reabilitação daqueles que utilizam protocolos e procedimentos específicos de fonoaudiologia; Tratar de pacientes

Essas amostras foram coletadas de forma asséptica, em frascos de 100 mL estéreis e, imediatamente acondicionadas em caixas isotérmicas e encaminhadas para o Laboratório

No caso de uma apresentação de Artigo em formato Áudio, o arquivo deverá ser enviado em CD por correio postal para:.. Comitê Editorial INFEIES - RM

Esses resultados foram confrontados com os de outros modelos encontrados na literatura, por meio da comparação dos R 2 s ajustados dos modelos, pela aplicação do teste

 Numéricos das das Propriedades Propriedades do do Ar Ar Úmido, Úmido, Cartas Cartas Psicrométricas, Psicrométricas, Processos Processos Psicrométricos, Psicrométricos,