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

50 %
50 %
Information about O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e...
Technology

Published on February 6, 2009

Author: vmkern

Source: slideshare.net

Description

Divagações pragmáticas sobre abstrações, divisão de trabalho e o que há por dentro dos bancos de dados. Do evento "De olho na tecnologia", Ciclo de palestras do Curso de Ciência da Computação – UNIVALI – São José, 12 a 14 de Julho/2004.

O que Martinho da Vila entende 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/2004 Ciclo de palestras do Curso de Ciência da Computação – UNIVALI – São José

Sumá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 BD de 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

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 BD de 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

O que Martinho entende Sonhei que estava sonhando um sonho sonhado O sonho de um sonho magnetizado Martinho da Vila, Rodolfo e Graúna Enredo 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

Sonhei que estava sonhando um sonho sonhado O sonho de um sonho magnetizado

Martinho da Vila, Rodolfo e Graúna Enredo 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

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 .

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 .

Ponto 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)

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)

Ponto 1: projetando um BD (cont.) Abstração de dados : Abstração de relacionamentos (associações relevantes/significativas entre as entidades)

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

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

Abstração de dados  projeto de BD : Desenho das estruturas de informação

Concretizando as abstrações CREATE 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   );

CREATE 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   );

Abstraçõ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)                                                                                                                                                                                                                        

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”.

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...)

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...)

É 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.

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.

Abstraindo 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.

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.

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

O prefixo m (meta) serve para diferenciar objetos de negócios e objetos do metamodelo

Esquema Org Esquema Prod

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 )

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 ,

Usando o modelo Exemplo:

Exemplo:

Fazendo sentido (e o mundo bailar 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.

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.

Arquitetura ANSI-SPARC de 3 níveis (1978) Nível externo Esquemas externos Visões de usuário Nível conceitual Esquema conceitual Visão da comunidade Nível interno Esquema interno Visão física Projetistas de BD Analistas, Programadores Desenvolvedores de SGBD

Nível externo Esquemas externos Visões de usuário

Nível conceitual Esquema conceitual Visão da comunidade

Nível interno Esquema interno Visão física

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…)

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…)

Responsabilidade 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): Representação da informação Formalismo no proc. da informação Modelagem da informação Algoritmos Projeto de sistemas 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

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):

Representação da informação

Formalismo no proc. da informação

Modelagem da informação

Algoritmos

Projeto de sistemas

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

Finalmentes 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?

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?

Contato E-mail: kern@sj.univali.br 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! Reconhecimento

E-mail: kern@sj.univali.br

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.

Add a comment

Related presentations

Related pages

O que Martinho da Vila entende de BD? (sobre abstrações de ...

Divagações pragmáticas sobre abstrações, divisão de trabalho e o que há por dentro dos bancos de dados. Do evento "De olho na tecnologia", Ciclo de ...
Read more

1O que Martinho da Vila entende de BD? (sobre abstrações ...

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

1O que Martinho da Vila entende de BD? (sobre abstrações ...

Slide 1 1O que Martinho da Vila entende de BD? (sobre abstrações de abstrações e modelos internos de BD) ... kern@sj.univali.br O que Martinho da Vila ...
Read more

Vinícius Medina Kern » 1 Publicações [Publications]

Comissão Interna de Supervisão da Carreira – CIS; Portal da Capacitação; Redação Oficial; Sintufsc; UFSC Sem Papel; Comunidade.ufsc.br. Acesso à ...
Read more

Memória e Identidade: alicerces da construção do Eu na ...

... abarcando o século XIX e XX com todas as convulsões internas e externas que os caracterizaram, ... alicerces da construção do Eu na tetralogia de ...
Read more

D'ali e D'aqui: Pedagogia Marxista

... à passagem de modelos aos objetos e o ... luz da teoria marxista. Sobre isto, relatou que ... que o estudo da matéria ...
Read more

Brasileira +Bosi.a. - scribd.com

Mas é muito mais vário e sugestivo que o autor da ... entende-se que a natureza e o ... e jo prólogo vem datado de 17O3. 44 os modelos da época, que ...
Read more

52_ by Revista Interface - issuu

Um processo que reflete a amplificação da acumulação de capital sobre o trabalho e o ... modelos gerenciais de ... o que o publico entende, ...
Read more

lei 11645 de 2008 - es.scribd.com

Anais. III SIMPÓSIO AFROCULTURA: narrativas afro-brasileiras e indígenas, memórias e ensino Organizadores Ana Paula Teixeira Porto Bibiane Trevisol ...
Read more