21
O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 1 O que Martinho da Vila entende O que Martinho da Vila entende de BD? de BD? (sobre abstrações de abstrações e modelos internos de (sobre abstrações de abstrações e modelos internos de BD) BD) Vinícius Medina Kern De olho na tecnologia 12 a 14 de Julho/2004 Ciclo de palestras do Curso de Ciência da Computação – UNIVALI – São José

1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] O que Martinho da

Embed Size (px)

Citation preview

Page 1: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 1

O que Martinho da Vila entende de BD?O que Martinho da Vila entende de BD?(sobre abstrações de abstrações e modelos internos de BD)(sobre abstrações de abstrações e modelos internos de BD)

Vinícius Medina Kern

De olho na tecnologia 12 a 14 de Julho/2004Ciclo de palestras do Curso de Ciência da Computação – UNIVALI – São José

Page 2: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 2

Sumário da palestraSumário da palestra

• O que Martinho entende

• Abstrações, abstrações… Como é que eles fazem isso?Abstrações são traduções

de informação sobre um negócio para um modelo de BDde modelos de BD para um modelo genérico (interno)

• Fazendo sentido: como fazer o mundo bailar sem música

• Aplicações: arquitetura de SGBD, BDs com modelagem on-the-fly, modelos flexíveis

• Finalmentes

Page 3: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 3

O que Martinho entendeO que Martinho entende

Sonhei que estava sonhando um sonho sonhadoO sonho de um sonho magnetizado

Martinho da Vila, Rodolfo e GraúnaEnredo da Vila Isabel, 1980 (?)

(Não é só ele...)

Sonhei ter sonhado que havia sonhado.Em sonhos lembrei-me de um sonho passado,o de ter sonhado que estava sonhando.

Manuel Bandeira

Page 4: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 4

Abstrações, abstrações...Abstrações, abstrações...

Como é que eles fazem isso? (1) projetar um sistema de banco de dados que aceita a entrada de dados relativos aos processos considerados no projeto, sem saber que dados são esses; (2) projetar um sistema de gerência de banco de dados (SGBD) que aceita a inclusão de qualquer projeto de banco de dados, sem saber que projeto é esse.

Page 5: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 5

Ponto 1: projetando um BDPonto 1: projetando um BD

Abstração de dados ou modelagem de dados: é o que se faz para projetar um BD sem saber exatamente quais dados se vai manipular. Com o modelo ER, faz-se a abstração de entidades (tipos de objetos que existem no ambiente)

Page 6: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 6

Ponto 1: projetando um BD (cont.)Ponto 1: projetando um BD (cont.)

Abstração de dados:Abstração de relacionamentos (associações relevantes/significativas entre as entidades)

Page 7: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 7

Ponto 1: projetando um BD (cont.)Ponto 1: projetando um BD (cont.)Abstração de dados projeto de BD:Desenho das estruturas de informação

Page 8: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 8

Concretizando as abstraçõesConcretizando as abstraçõesCREATE TABLE Filial (

idFil INTEGER NOT NULL,

nomeFil VARCHAR(20), PRIMARY KEY (idFil) );

CREATE TABLE Departamento (

idFil INTEGER NOT NULL,

numDepto INTEGER NOT NULL,

nomeDepto VARCHAR(20),

PRIMARY KEY (idFil, numDepto) )

FOREIGN KEY (idFil)

REFERENCES Filial );

CREATE TABLE Setor (

idFil INTEGER NOT NULL,

numDepto INTEGER NOT NULL,

numSetor INTEGER NOT NULL,

nomeSetor VARCHAR(20),

PRIMARY KEY (idFil, numDepto, numSetor),

FOREIGN KEY (idFil, numDepto)

REFERENCES Departamento );

CREATE TABLE Produto (        idProd            INTEGER NOT NULL,        nomeProd      VARCHAR(20),        unProd           CHAR(2), precoProd DECIMAL(10,2)

       PRIMARY KEY (idProd)  );

CREATE TABLE Composicao-prod (        idComponente     INTEGER NOT NULL,        idComposto          INTEGER NOT NULL,        qtde_componente     DECIMAL (10,3),        PRIMARY KEY (idComponente, idComposto),         FOREIGN KEY (idComponente)                              REFERENCES Produto,         FOREIGN KEY (idComposto)                              REFERENCES Produto  );

Page 9: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 9

Abstrações são traduçõesAbstrações são traduções

• De um jeito semelhante ao engenheiro que muda uma matriz de base vetorial (porque é cartesiana, mas a cilíndrica seria mais conveniente para resolver seu problema), projetistas de bancos de dados “mudam de base” a informação sobre um domínio (negócio).

• Abstrações de dados, então, são traduções, “mudanças de base”.

Domínio (ambiente de negócios)

Page 10: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 10

Abstrações são traduções (II)Abstrações são traduções (II)

• E o ponto 2? Como é que eles fazem??? (traduzir qualquer projeto de banco de dados, sem saber que projeto é esse, em um BD com manipulação de dados, indexação, controle de concorrência e recuperação de falhas etc. etc...)

Page 11: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 11

É permitido pensar...É permitido pensar...

• Se, para projetar um BD, o projetista…

• …abstrai um modelo ou esquema da informação de um domínio…

• … que é capaz de representar quaisquer dados que combinem com o esquema projetado,

• Então, para projetar um SGBD que permita implementar BDs, o desenvolvedor…

• …deve abstrair um meta-esquema de BD…

• … que seja capaz de representar qualquer BD que combine com o meta-esquema projetado.

Page 12: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 12

Abstraindo abstraçõesAbstraindo abstrações Uma tentativa para aquele caso…

• 3 entidades que representam estruturas administrativas...

• ... onde cada estrutura tem uma outra superior (ou não...)

• ... dependendo do tipo de estrutura administra-tiva em questão...

• ... que regula o vínculo que a estrutura tem com sua superior.

Page 13: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 13

Abstraindo abstrações (caso geral)Abstraindo abstrações (caso geral) O prefixo m (meta) serve para diferenciar objetos de negócios e objetos do metamodelo

Esquema Org Esquema Prod

Page 14: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 14

Abstraindo de um outro jeito...Abstraindo de um outro jeito...CREATE TABLE Produto (        idProd            INTEGER NOT NULL,        nomeProd      VARCHAR(20),        unProd           CHAR(2), precoProd DECIMAL(10,2)

       PRIMARY KEY (idProd)  );

CREATE TABLE Montagem (        idComponente     INTEGER NOT NULL,        idComposto          INTEGER NOT NULL,        qtde_componente     DECIMAL (10,3),        PRIMARY KEY (idComponente, idComposto),         FOREIGN KEY (idComponente)                              REFERENCES Produto,         FOREIGN KEY (idComposto)                              REFERENCES Produto  );___________________________________________________________________________

CREATE TABLE Setor (

FOREIGN KEY (idFil, numDepto)

REFERENCES Departamento );

mEsquema (nmEsq,mEsquema (nmEsq, (nmEnt, (nmAtrib, dom, tam, isnull),mEsquema (nmEsq, (nmEnt, (nmAtrib, dom, tam, isnull), (nmAtribPK), (nmEntPai, (nmAtribFK))))_______________________________________________________________________________

mEsquema (nmEsq, (nmEnt, (nmAtrib, dom, tam, isnull), (nmAtribPK), mEsquema (nmEsq, (nmEnt, (nmAtrib, dom, tam, isnull), (nmAtribPK), (nmEntPai,

mEsquema (nmEsq, (nmEnt, (nmAtrib, dom, tam, isnull), (nmAtribPK), (nmEntPai, (nmAtribFK)

mEsquema (nmEsq, (nmEnt,

mEsquema (nmEsq)

mEntidade (nmEsq, nmEnt)

mAtributo (nmEsq, nmEnt, nmAtrib, dom, tam, isnull)

mChave (nmEsq, nmEnt, nmAtribPK)

mRelacionamento (nmEsq, nmEnt, nmEntPai)

mChaveEstrangeira (nmEsq, nmEnt, nmEntPai, nmAtribFK)

Page 15: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 15

Usando o modeloUsando o modelo

Exemplo:

Page 16: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 16

Fazendo sentido (e o mundo bailar Fazendo sentido (e o mundo bailar sem música nem guitarras)sem música nem guitarras)

• Para que eu possa comprar um SGBD que implementa meus BDs (cujos dados eu abstraio na forma de esquema), foi preciso que o fornecedor do SGBD abstraísse meus esquemas (e os de todo mundo)

• Para botar ordem na bagunça (como cada um projeta seu BD, como cada fornecedor constrói seu SGBD), a ANSI encomendou um estudo ao SPARC…

• …que produziu um documento, um framework para SGBDs – que podemos estudar para entender o que aconteceu com o mundo nos últimos 26 anos.

Page 17: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 17

Arquitetura ANSI-SPARC de 3 Arquitetura ANSI-SPARC de 3 níveis (1978)níveis (1978)

• Nível externo Esquemas externosVisões de usuário

• Nível conceitual Esquema conceitualVisão da comunidade

• Nível interno Esquema internoVisão física

Projetistas de BD Analistas,Programadores

Desenvolvedoresde SGBD

Page 18: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 18

Aplicações (para que serve isso?)Aplicações (para que serve isso?)

• Arquitetura de SGBD: para quem precisa construir um sistema de gerência de banco de dados.

• BDs modeláveis on-the-fly: quem pode querer isso? Talvez alguém que queira construir BDs de forma incremental.

• Modelos flexíveis: para suportar websites, portais, formulários configuráveis etc.

• Aprendizagem: para experimentar o mapeamento conceitual-interno. (Pois um bacharel tem responsabilidades diferentes da de um técnico…)

Page 19: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 19

Responsabilidade profissionalResponsabilidade profissional

• Um curso técnico deve formar profissionais capacitados a usar as técnicas da profissão.

• Um curso superior deve formar profissionais com mais do que capacidade técnica (Currículo IFIP/Unesco-12 temas):

1. Representação da informação

2. Formalismo no proc. da informação

3. Modelagem da informação

4. Algoritmos

5. Projeto de sistemas

6. Desenvolvimento de software

• Potenciais e limitações

• Arquiteturas e sistemas de computador

• Comunicação baseada em computador

• Implicações sociais e éticas

• Habilidades pessoais e interpessoais

• Contexto e perspectivas mais amplas

Page 20: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 20

FinalmentesFinalmentes

• Projeto de iniciação científica Art. 170: “Gerência de dados e metadados segundo um modelo interno de dados”.

• Trata, entre outras coisas, da tradução da…… definição e manipulação de dados de negócios em SQL para…… manipulação de dados em SQL no modelo interno.

• E o que o Martinho da Vila entende de BD, mesmo?

Page 21: 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, kern@sj.univali.br O que Martinho da

O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) © Vinícius Kern, [email protected] 21

ContatoContato• E-mail: [email protected]

• URL: http://www.sj.univali.br/~kern

• CV Lattes: http://genos.cnpq.br:12010/dwlattes/owa/prc_imp_cv_int?f_cod=K4727979H1

• Governo do Estado de Santa Catarina (bolsa de pesquisa de iniciação científica, Art. 170 da Constituição Estadual.

• Profa. Fernanda Cunha, coordenadora, e colegiado do Curso de Ciência da Computação/SJ – pelo convite e organização do evento.

Obrigado!Obrigado!

ReconhecimentoReconhecimento