uma ferramenta mda para modelagem de banco de dados relacionais

27
Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais 1 André de Souza Rosa Carlos Eduardo Pantoja

Upload: kadu-pantoja

Post on 01-Jul-2015

1.875 views

Category:

Education


6 download

DESCRIPTION

Download available at: https://sourceforge.net/projects/gendbmtool/ Link para Download do Trabalho: http://www.lbd.dcc.ufmg.br/colecoes/erbd/2013/0018.pdf Apresentação de artigo na IX ERBD - Escola Regional de Banco de Dados - Em Camboriú, 2013.

TRANSCRIPT

Page 1: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

1

André de Souza Rosa

Carlos Eduardo Pantoja

Page 2: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

2

Roteiro • Introdução

o Modelagem de Dados

o Modelo Conceitual

• Problema

• Model Driven Architecture

(MDA)

• Objetivo

• O Metamodelo

• Linguagem de Transformação

de Modelos para Texto

(MOFM2T)

• Regras de Transformação

• Ferramentas

• Resultados o Exemplo 1

o Demonstração

• Limitações

• Trabalhos Relacionados

• Trabalhos Futuros

• Conclusão

• Bibliografia

Page 3: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

Introdução

• Modelagem de Dados (HEUSER, 2009) o Modelo Conceitual o Modelo Lógico

o Modelo Físico

• Modelagem Conceitual Relacional o Diagrama Entidade-Relacionamento (DER) (CHEN, 1976)

o Crow’s Foot (HAY, 1999)

o IDEF1X (HAY, 1999) o UML (GUEDES, 2008) o Outras

3

Page 4: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

Problema

4

• Os programas existentes no mercado para a

geração automática de DDL possuem atrelamento

a uma linguagem de programação ou a um SGBD

específico que a aplicação em questão trabalhe.

• Visual DataBase Tools (“Visual Database Tools" ,2012) • Atrelado ao MS SQL Server

• DBDesigner (“DbDesigner Homepage”, 2012)

• Atrelado ao MySQL

• DB Explorer (“DBExplorer”, 2012)

• Ferramenta paga

Page 5: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

5

Model Driven Architecture (MDA)

PIM

PSM

Metamodelo Independente de Plataforma

Especificação da Transformação

Metamodelo de Plataforma

Específica

Transformação

Linguagem Usada

Linguagem alvo

Linguagem fonte

Linguagem Usada

(OMG, 2003)

Page 6: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

Objetivo

6

(ROSA et. al, 2012)

Ambiente gráfico voltado

inicialmente para a notação de modelagem Entidade-

Relacionamento

Page 7: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

O Metamodelo

7

(ROSA et. al, 2012)

Page 8: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

8

Linguagem de Transformação de Modelos para Texto

(MOFM2T)

• Linguagem organizada em templates;

Page 9: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

9

Regras de Transformação [template public ModelToText(aModel : Model)] [comment @main/] [file (aModel.name+'.txt', false, 'UTF-8')] [ToDataBase(aModel.isFormedOf)/] [/file] [/template]

[template public ToDataBase(aDataBase : DataBase)] CREATE DATABASE [aDataBase.name/], [PrintPrecedenceA(aDataBase.isComposed)/] [PrintPrecedenceB(aDataBase.isComposed)/] [CreateAssociativeTable(aDataBase.hasInteraction)/] [/template]

Page 10: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

10

Regras de Transformação (cont.) [template public PrintPrecedenceA(aDataBaseName : String, aEntity : OrderedSet(Entity))] [for (iEntity : Entity | aEntity)] [if (iEntity.hasForeignKey->isEmpty())] [PrintEntityWithoutForeign(aDataBaseName,iEntity)/] [/if] [/for] [/template]

[template public PrintEntityWithoutForeign(aDataBaseName : String, aEntity : Entity)] [for (iEntity : Entity | aEntity)] CREATE TABLE [aDataBaseName/].[iEntity.name/]( [ToField(iEntity.isComposed)/] [PrintPrimary(iEntity.hasPrimaryKey)/] [if (iEntity.hasCheck<>null)][PrintCheck(iEntity.hasCheck)/][/if] ); [/for] [/template]

Page 11: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

11

[template public ToField(aFields : OrderedSet(Field))] [for ( iField : Field | aFields ) ] [iField.name/] [iField.type/] [if (iField.hasNumericLimit <> null)] [PrintNumericLimit(iField.hasNumericLimit)/] [/if] [if (iField.hasTextLimit <> null)] [PrintTextLimit(iField.hasTextLimit)/] [/if] [PrintIntegrity(iField.hasIntegrity)/] [if (iField.hasDefaultValue <> null)] [PrintDefaultValue(iField.hasDefaultValue)/] [/if], [/for] [/template]

Regras de Transformação (cont.)

Page 12: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

• PrintCandidateKey

• PrintPrimary

• PrintForeign

• PrintForeignKeyFieldsN_N

• PrintReferences

• PrintRelationCharacteristics

• PrintRelationFields

12

• PrintPrecedenceB

• PrintEntityWithForeign

• CreateAssociativeTable

• PrintNumericLimit

• PrintTextLimit

• PrintIntegrity

• PrintCheck

• PrintDefaultValue

Regras de Transformação (cont.)

Page 13: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

13

A Ferramenta MDA

• Eclipse Modeling Framework (EMF)

• Acceleo

• Graphical Modeling Framework

Page 14: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

14

Exemplo de modelagem conceitual segundo a notação ER de Peter Chen (CHEN, 1976).

Exemplo 1

Page 15: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

15

(ROSA et. al, 2012)

Exemplo da notação ER instanciado na ferramenta através da Árvore Hierárquica.

Page 16: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

16

Código DDL Gerado CREATE DATABASE ManufacturingFirm; CREATE TABLE ManufacturingFirm.Department( DepartmentID int (7) NOT NULL UNIQUE, CONSTRAINT DepartmentID PRIMARY KEY(DepartmentID) ); CREATE TABLE ManufacturingFirm.Supplier( SupplierID int (7) NOT NULL UNIQUE, CONSTRAINT SupplierID PRIMARY KEY(SupplierID)); CREATE TABLE ManufacturingFirm.Part( PartID int (7) NOT NULL UNIQUE, CONSTRAINT PartID PRIMARY KEY(PartID)); CREATE TABLE ManufacturingFirm.Employee( EmployeeID int (7) NOT NULL UNIQUE, CONSTRAINT EmployeeID PRIMARY KEY(EmployeeID), CONSTRAINT CodeDept FOREIGN KEY (DepartmentID)REFERENCES Department (DepartmentID));

CREATE TABLE ManufacturingFirm.Dependent( DependentID int (7) NOT NULL UNIQUE, CONSTRAINT DependentID PRIMARY KEY(DependentID), CONSTRAINT CodeEmployee FOREIGN KEY (EmployeeID)REFERENCES Employee (EmployeeID)); CREATE TABLE ManufacturingFirm.Project( ProjectID int (7) NOT NULL UNIQUE, CONSTRAINT ProjectID PRIMARY KEY(ProjectID), CONSTRAINT CodeEmployee FOREIGN KEY (EmployeeID)REFERENCES Employee (EmployeeID)); );

Page 17: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

17

Demonstração

Page 18: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

18

SGBD Firebird 2.1

Exemplo de código criado pela ferramenta

Exemplo de código aceito no Firebird

CREATE TABLE Loja.Produto CREATE TABLE Produto

precoVenda double precoVenda double precision

idProduto int UNIQUE CONSTRAINT idProduto UNIQUE (idProduto)

Incompatibilidades entre o código gerado pela ferramenta e o SGBD Firebird

Limitações

Page 19: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

19

SGBD PostgreSQL 9.1

Incompatibilidades entre o código gerado pela ferramenta e o SGBD PostgreSQL

Limitações

Exemplo de código criado pela ferramenta

Exemplo de código aceito no PostgreSQL

CREATE TABLE Loja.Produto CREATE TABLE Produto

precoVenda double precoVenda double precision

Page 20: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

20

SGBD SQLServer 2012

Incompatibilidades entre o código gerado pela ferramenta e o SGBD SQLServer

Limitações

Exemplo de código criado pela ferramenta Exemplo de código aceito no SQLServer

CREATE TABLE Loja.Produto CREATE TABLE Produto

Page 21: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

21

SGBD MySQL 5.2.39CE

Revision 8757

• Durante os experimentos feitos no SGBD MySQL,

não foi encontrada nenhuma incompatibilidade

quanto aos exemplos utilizado.

Page 22: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

Trabalhos Relacionados

22

• DBDesigner

o Modelagem gráfica, criação e manutenção de Bancos de dados

o Voltada para o SGBD MySQL

o Possui notação de modelagemparticular

• Oracle Designer

o Opções de modelagem conceitual

o Diagramas de funções, análise e designer de objetos

o Voltada para o SGBD Oracle que é pago

• CA Erwin

o É compatível com a maioria dos SGBD disponíveis no mercado

o Utiliza a notação de modelagem conceitual IDEF1X

o É uma ferramenta paga

Page 23: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

Trabalhos Futuros

23

• Extensões para resolver os problemas de

incompatibilidades com alguns SGBD;

• Completar o desenvolvimento do Ambiente

Gráfico;

Page 24: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

Conclusão

24

• A ferramenta proposta facilita a implementação

de bases de dados.

• Há possibilidade de uso de notações de

modelagem diferentes.

• Concede maior flexibilidade ao designer de banco

de dados.

Page 25: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

Bibliografia • ROSA, A. S. ; GONÇALVES, I. S.; PANTOJA, C.E. Uma abordagem orientada a modelos para

modelagem conceitual de banco de dados. In: VI Sulcomp - Congresso Sul Brasileiro de Computação 2012, Criciúma, Santa Catarina, Brasil.

• ROSA, A. ; GONÇALVES, I.; PANTOJA, C.E. A MDA Approach for Database Modeling. In: 3rd

International Conference on Software and Computing Technology (ICSCT 2012), Kuala Lumpur, Malaysia.

• (OMG), O. M. G. MOF Model to Text Transformation Language 1.0. 2008.

• ABREU, M.; MACHADO, F. N. R. PROJETO DE BANCO DE DADOS: UMA VISAO PRATICA. ERICA, 1999.

• BRUCE, T. A. Designing quality databases with IDEF1X information models. Dorset House Pub., 1992.

• CHEN, P. P.-S. The entity-relationship model&mdash;toward a unified view of data. ACM Trans. Database Syst., v. 1, n. 1, p. 9–36, 1976.

• CODD, E. F. A relational model of data for large shared data banks. Commun. ACM, v. 13, n. 6, p. 377–387, 1970.

• COMP 2010 Week: Crow’s Foot Entity-Relationship Diagram Notation. .Disponível em: <http://college.yukondude.com/2003_09_comp210/html/note-container.php?file=02%5EHandout%5ECrow~s_Foot_Entity-Relationship_Diagram_Notation.html>. Acesso em: 3/9/2012.

25

Page 26: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

26

• DbDesigner Homepage. .Disponível em: <http://dbdesigner.sourceforge.net/.>. Acesso em: 3/9/2012.

• DBExplorer. .Disponível em: <http://dbexplorer.com/>. Acesso em: 3/9/2012. • Discussion Forum Data Model. .Disponível em: http://www.erdiagrams.com/datamodel-forum-

idef1x.html>. Acesso em: 3/9/2012. • GUEDES, G. T. A. UML - UMA ABORDAGEM PRATICA. Novatec, 2008.

• HALMOS, P. R. Naive Set Theory. Springer-Verlag, 1960. • HAY, D. C. A comparison of Data Modeling Techniques. Essential Strategies. ,1999. Disponível

em: <http://essentialstrategies.com/documents/comparison.pdf>. • HEUSER, C. A. Projeto de Banco de Dados. 6o ed. Bookman, 2009. • MELLOR, S. J.; SCOTT, K.; UHL, A.; WEISE, D. MDA Destilada: Princípios de Arquitetura Orientada

por Modelos. Ciência Moderna Ltda, 2005.

• Object Management Group – MDA Guide - version 1.0.1 – 2003. • Oracle Designer. .Disponível em: <http://www.oracle.com/technetwork/developer-

tools/designer/overview/index-082236.html>. Acesso em: 19/9/2012. • SLIK Software. .Disponível em: <http://www.sliksoftware.co.nz/products/dbexplorer/index.htm>.

Acesso em: 19/9/2012. • STEINBERG, D.; BUDINSKY, F.; MERKS, E.; PATERNOSTRO, M. Emf: Eclipse Modeling Framework.

Pearson Education, 2008. • Visual Database Tools. Disponível em: <http://msdn.microsoft.com/pt-br/library/y5a4ezk9.aspx>.

Acesso em: 19/9/2012.

Bibliografia

Page 27: Uma Ferramenta MDA para Modelagem de Banco de Dados Relacionais

27

Obrigado! Contatos:

André de Souza Rosa [email protected]

Carlos Eduardo Pantoja

[email protected]