INDUSTRIA 4.0 Processamento de Big Data Aula #5 - Projeto de Banco de Dados EDUARDO CUNHA DE ALMEIDA
Agenda - Bancos de dados - Problemas de modelagem - Modelo Conceitual - Entidades - Relacionamentos - Exercícios UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 2
Banco de Dados Coleção organizada de dados: - representa aspectos do mundo real - possui coerência (sem conjuntos aleatórios) - construído para um projeto específico [Elmasri e Navathe] 4
Banco de Dados vs. Sistema de arquivos Benefícios de um BD: - Natureza auto descritiva - Abstração de acesso aos dados - Visão múltipla - Compartilhamento 4
Natureza auto descritiva - Dados - Meta dados (informação sobre o dado) CREATE TABLE INST_DISC( INSTRUTOR VARCHAR(50); DISCIPLINA VARCHAR(50); CARGA_H INT; ); 4
Natureza auto descritiva - Dados - Meta dados (informação sobre o dado) CREATE TABLE INST_DISC( INSTRUTOR VARCHAR(50); DISCIPLINA VARCHAR(50); CARGA_H INT; ); nome de tabelas 4
Natureza auto descritiva - Dados - Meta dados (informação sobre o dado) CREATE TABLE INST_DISC( INSTRUTOR VARCHAR(50); DISCIPLINA VARCHAR(50); CARGA_H INT; ); nome de atributos 4
Natureza auto descritiva - Dados - Meta dados (informação sobre o dado) CREATE TABLE INST_DISC( INSTRUTOR VARCHAR(50); DISCIPLINA VARCHAR(50); CARGA_H INT; ); tipos de atributos 4
Natureza auto descritiva - Dados - Meta dados (informação sobre o dado) CREATE TABLE INST_DISC( INSTRUTOR VARCHAR(50); DISCIPLINA VARCHAR(50); CARGA_H INT; ); 4
Abstração no acesso aos dados - Isolamento entre programas e dados programa FILE *F; F = fopen( /path/arvore ); BTree *arv = achar tabela em F; for t in arv: 5 6 7 1 1 728 2 2 8 1 11 8 1 1 1 1 1 1 emit(t); FILE *F; F = fopen( /path/skiplist ); SkipList *sl = achar tabela em F; for t in sl: emit(t); * * * * 2 3* * 1 * 1 * 7 1 1* * ** 1 he sen * * 4
Abstração no acesso aos dados - Isolamento entre programas e dados programa 728 1 11 5 6 7 1 1 2 2 8 8 1 1 1 1 1 1 * * * * 2 3* * 1 * 1 * 7 1 1* * ** 1 he sen * * 4
Visão múltipla dos dados - Subconjunto de dados com acesso limitado Por ex. animais fantásticos e onde habitam? 4
Visão múltipla dos dados - Subconjunto de dados com acesso limitado programa FILE *arq; arq = fopen("instrutor","r"); char linha[1024]; while(fgets(linha, 1024, arq)){ // parse da linha } Por ex. animais fantásticos e onde habitam? 4
Visão múltipla dos dados programa - Subconjunto de dados com acesso limitado Por ex. animais fantásticos e onde habitam? 4
Visão múltipla dos dados - Subconjunto de dados com acesso limitado programa 4
Visão múltipla dos dados - Subconjunto de dados com acesso limitado programa 4
Compartilhamento - Permite acesso concorrente programa 4
Compartilhamento - Permite acesso concorrente programa programa programa programa programa programa 4
Compartilhamento - Permite acesso concorrente programa programa programa programa programa programa 4
concurrent execution of TPC-H (256 USERS, 1 GB DATABASE, MONETDB/SQLSERVER) Mem TP (GB/s) Mem TP (GB/s) Mem TP (GB/s) Mem TP (GB/s) 4 3 2 1 0 4 3 2 1 0 4 3 2 1 (a) (b) OS/MonetDB Adaptive/MonetDB OS/SQL Server 0 (c) 4 3 Adaptive/SQL Server 2 1 0 0 50 100 150 200 Time (s) (d) 250 300 350 S0 S1 S2 S3 4
Agenda - Bancos de dados - Problemas de modelagem - Modelo Conceitual - Entidades - Relacionamentos - Exercícios UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 21
Exemplo: quantas matriculas em disciplinas tem Maria? (1) Tabela: T1 Tabela: T2 aluno instructor aluno disciplina Maria Eduardo Maria ci218 Maria André Maria ci056 Maria David Maria ci057 22
Exemplo: quantas matriculas em disciplinas tem Maria? (1) programa=> SELECT * from T1 natural join T2; aluno instrutor disciplina Maria Eduardo ci218 Maria Eduardo ci056 Maria Eduardo ci057 Maria André ci218 Maria André ci056 Maria André ci057 Maria David ci218 Maria David ci056 Maria David ci057 9 matriculas!!! 23
Exemplo: quantas matriculas em disciplinas tem Maria? (2) Tabela: T1 Tabela: T2 disciplina instrutor aluno disciplina ci218 Eduardo Maria ci218 ci056 André Maria ci056 ci056 David Maria ci057 ci218 Sunye ci057 Didonet ci218 Carmem 24
Exemplo: quantas matriculas em disciplinas tem Maria? (2) programa=> SELECT * from T1 natural join T2; aluno instrutor disciplina Maria Eduardo ci218 Maria Sunye ci218 Maria Carmem ci218 Maria André ci056 Maria David ci056 Maria Didonet ci057 6 matriculas!!! 25
Exemplo: quantas matriculas em disciplinas tem Maria? (3) Tabela: T1 Tabela: T2 disciplina instrutor aluno instrutor ci218 Eduardo Maria Eduardo ci056 André Maria André ci056 David Maria Didonet ci218 Sunye ci057 Didonet ci218 Carmem 26
Exemplo: quantas matriculas em disciplinas tem Maria? (3) programa=> SELECT * from T1 natural join T2; aluno instrutor disciplina Maria Eduardo ci218 Maria André ci056 Maria Didonet ci057 3 matriculas!!! 27
Agenda - Bancos de dados - Problemas de modelagem - Modelo Conceitual - Entidades - Relacionamentos - Exercícios UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 28
Entidade-Relacionamento (ER) Modelo abstrato de um aspecto do mundo real. 4
Elementos do ER Entidade atributo atributo atributo Algo do mundo real com existência independente e seus atributos ex. Aluno, Professor Associação entre entidades ex. Orienta, Participa, Possui atributo UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 30
Elementos do ER Professor Orienta Aluno nome idade endereço rua cep desde matricula {telefone} ano_ingresso Cliente Possui Conta nome idade desde codigo tipo UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 31
Elementos do ER Professor Orienta Aluno nome idade endereço rua cep atributo desdechave matricula {telefone} ano_ingresso Cliente Possui Conta nome idade desde codigo tipo UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 32
Elementos do ER Professor Orienta Aluno nome idade endereço rua cep atributo desde composto matricula {telefone} ano_ingresso Cliente Possui Conta nome idade desde codigo tipo UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 33
Elementos do ER Professor Orienta Aluno nome idade endereço matricula {telefone} ano_ingresso desde rua cep atributo derivado Cliente Possui Conta nome idade desde codigo tipo UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 34
Elementos do ER Professor Orienta Aluno nome idade endereço matricula {telefone} ano_ingresso desde rua cep atributo multivalorado Cliente Possui Conta nome idade desde codigo tipo UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 35
Elementos do ER Professor Orienta Aluno nome idade endereço matricula {telefone} ano_ingresso desde rua cep atributo de relacionamento Cliente Possui Conta nome idade desde codigo tipo UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 36
Elementos do ER Empregado Possui Dependente nome idade endereço nome_d idade desde rua cep UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 37
Elementos do ER Empregado Possui Dependente nome idade endereço rua cep desde nome_d idade Existência depende de outra entidade entidade fraca UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 38
Cardinalidade um-pra-um Professor Orienta Aluno um-pra-muitos Professor Orienta Aluno muitos-pra-muitos Professor Orienta Aluno UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 39
Cardinalidade (limites) um-pra-um 1 1 Professor Orienta Aluno um-pra-muitos 1 n Professor Orienta Aluno muitos-pra-muitos n m Professor Orienta Aluno UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 40
Mapeamento de cardinalidade 1 1 Professor Orienta Aluno p1 p2 p3 p1,a1 p2,a2 p3,a3 a1 a2 a3 UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 41
Mapeamento de cardinalidade 1 n Professor Orienta Aluno p1 p2 p3 p1,a1 p2,a2 p2,a5 p3,a3 p3,a4 a1 a2 a3 a4 a5 UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 42
Mapeamento de cardinalidade n m Professor Orienta Aluno p1 p2 p3 p1,a1 p2,a2 p2,a5 p3,a5 a1 a2 a3 a4 a5 UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 43
Limites de cardinalidade (min,max) 0:n 1:1 Professor Orienta Aluno p1 p2 p3 p4 p1,a1 p2,a2 p2,a4 p3,a4 p3,a3 a1 a2 a3 a4 UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 44
Limites de cardinalidade (min,max) 1:n 1:1 Professor Orienta Aluno p1 p2 p3 p4 p1,a1 p2,a2 p2,a4 p3,a4 p4,a3 a1 a2 a3 a4 UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 45
Exemplo Construa um diagrama ER para uma empresa de venda de livros. Autores escrevem 1 ou mais livros publicados por uma editora. Cada cliente possui 1 cesta de compras que pode conter muitos livros. UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 46
Exercício: converter este ER 1:n 1:n Autor escreve Livro isbn nome_a genero 0:n titulo nome_c Cliente id_cesta compra 0:n preço rua cep Cesta quantidade endereço 1:1 0:1 possui data_compra 1:1 publica 1:n Editora nome_e URL UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 47
Agenda - Bancos de dados - Problemas de modelagem - Modelo Conceitual - Entidades - Relacionamentos - Exercícios UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 48
Exercício Construa um diagrama ER para uma empresa de seguros. Clientes possuem 1 ou mais carros. Cada carro pode ter sinistro (mas não necessariamente). Cada apólice cobre 1 ou mais carros e seu pagamento pode ser feito de diversas formas com datas de vencimento e pagamento da apólice. UNIVERSIDADE FEDERAL DO PARANÁ PÓS ENGENHARIA INDUSTRIAL 4.0 49
INDUSTRIA 4.0 Processamento de Big Data Aula #5 - Projeto de Banco de Dados EDUARDO CUNHA DE ALMEIDA