• Nenhum resultado encontrado

1 f o r( e l e m e n t i n R e l a t i o n . a l l I n s t a n c e s ( ) ) {

2 f o r( c o n s t r a i n t i n e l e m e n t . r e l a t i o n C o n s t r a i n t s ) { 3 i f( c o n s t r a i n t . i s K i n d O f ( T r i g g e r ) ) {

4 o u t . p r i n t ( " \ n " ) ;

5 o u t . p r i n t ( "CREATE OR REPLACE FUNCTION f u n c _ " + c o n s t r a i n t . name+ " ( ) \ n " ) ; 6 o u t . p r i n t ( "RETURNS t r i g g e r AS $ f u n c _ " + c o n s t r a i n t . name+ " $ LANGUAGE

p l p g s q l \ n " ) ; 7 o u t . p r i n t ( " b e g i n \ n " ) ; 8 i f ( n o t c o n s t r a i n t . s t a t e m e n t S Q L . i s U n d e f i n e d ( ) ) 9 { 10 o u t . p r i n t ( c o n s t r a i n t . s t a t e m e n t S Q L + " ; \ n " ) ; 11 }

12 o u t . p r i n t ( " end ; \ n $ f u n c _ " + c o n s t r a i n t . name+ " $ LANGUAGE p l p g s q l ; " ) ; 13 }

14 } 15 }

lógico já apresentado. Este recurso adicional foi implementado para dar suporte inicialmente ao PostgreSQL. A figura 47 mostra a barra de ferramentas em que pode ser acionada esta funcionalidade, conforme destacado. Após acionar o botão em destaque, o esquema lógico corrente será transformado em linguagemSQL.

Figura 47 – RMMCASE: Geração de códigoSQL

Fonte: Próprio autor

Na figura48, pode-se visualizar um exemplo de transformação do esquema para linguagem SQL, onde a trigger tg_valid_salary foi definida no modelo e gerada pela ferramenta RMMCASE. O código completo gerado na linguagem SQL pode ser consultado no Apêndice A. Vale ressaltar que os objetos do tipo Assertion não foram incluídos no esquemaSQL, pois o PostgreSQL não dá suporte a esse recurso.

Figura 48 – RMMCASE: Geração de códigoSQL

Fonte: Próprio autor

5.6

Recurso de Notação Textual

A ferramenta RMMCASE possui um recurso adicional que possibilita gerar o esquema relacional em notação textual. Essa notação é similar às notações textuais apresentadas no meio acadêmico, e serve como um instrumento adicional para o ensino e melhor entendimento dos

conceitos da abordagem relacional. Assim como a geração do esquema SQL, a notação textual é gerada através de uma transformação M2T utilizando a linguagem EGL. Para formatação da notação textual foi utilizado a linguagem HTML. O código completo dessa transformação encontra-se no ApêndiceA. A figura49mostra em destaque o botão que deve ser acionado para gerar a notação textual do projeto lógico corrente. Após acionada essa funcionalidade os objetos do esquema selecionado serão transformados em texto, através da linguagemEGL, e exibidos na ferramenta RMMCASE.

Figura 49 – RMMCASE: Geração de notação textual

Fonte: Próprio autor

A notação textual implementada na ferramenta RMMCASE é uma versão simplificada, na qual cobre somente os seguintes conceitos da abordagem relacional: Relation, Attribute,

PrimaryKey, UniqueKey e ForeignKey. Na figura50é exibida a notação textual gerada a partir do esquema lógico presente na figura31. Na notação textual, cada relação é representada pelo seu nome com o texto em maiúsculo, os atributos da chave primária são representados por um texto sublinhado, os atributos que não podem ser nulos são exibidos em negrito, os atributos que fazem parte da chave estrangeira são exibidos em itálico e os atributos da chave única são exibidos com sublinhado duplo. Como uma relação pode possuir mais de uma chave estrangeira e/ou única, a notação adiciona algumas informações extras. Cada chave estrangeira é identificada através de um texto indicando qual relação e quais atributos fazem parte da mesma. Já a chave única é indicada com os atributos listados entre chaves.

5.7

Importação de Esquema

Foi desenvolvida, na ferramenta, uma funcionalidade adicional que possibilita ao usuário gerar um esquema lógico a partir de um BD. Esse recurso foi adicionado a fim de facilitar a criação de projetos lógicos a partir deBDs já existentes. A figura51resume como funciona a importação. Inicialmente, através de uma aplicação Java da RMMCASE, é realizada uma conexão com oBDPostgreSQL, utilizando JDBC1 para conexão com o banco de dados. Em seguida, as informações dos objetos do BDsão importadas para as classes contidas no pacote model, conjunto de classes que representam cada elemento da linguagem de modelagem proposta. Após obtidas essas informações, todos os objetos do componente model são percorridos e incluídos no esquema lógico da ferramenta, conforme o metamodelo RMM.

Antes de utilizar essa funcionalidade, o usuário deve definir as propriedades da conexão do esquema, conforme mostra a figura52. E logo após, o usuário pode executar essa funcionalidade

1 É um padrão que define uma API, a qual permite a programas JAVA se comunicarem com servidores de banco

Figura 50 – RMMCASE: Representação de esquema lógico através da notação textual

Fonte: Próprio autor

RMMCASE JDBC PostgreSQL

Model

Esquema Lógico Metamodelo RMM

Importação Esquema

Conforme Gerar diagrama

Figura 51 – RMMCASE: Importação do postgreSQL

Fonte: Próprio autor

clicando com o botão direto do mouse no diagrama e acionando a conexão com o banco, conforme ilustrado na figura 53. Em seguida, os objetos doBD serão incluídos no digrama. Todos os elementos importados estão de acordo com o metamodelo proposto e representando o esquema lógico. Essa funcionalidade também foi executada com sucesso.

Figura 52 – RMMCASE: Configuração de conexão com oBD

Fonte: Próprio autor

Figura 53 – RMMCASE: Conectar aoBD

Fonte: Próprio autor

5.8

Considerações Finais

Para analisar a proposta e proporcionar uma aplicação imediata da linguagem de modela- gem, foi desenvolvida uma ferramentaCASE. Com isso, possibilitou-se a criação de um projeto lógico, utilizando como base o metamodelo RMM, a notação gráfica e as regras de validação propostas. Assim, foi possível criar um esquema de exemplo que explora todos os elementos pro- postos e utilizar os recursos adicionais da ferramenta para certificar a expressividade e viabilidade deste trabalho. O exemplo utilizado para o desenvolvimento do projeto lógico foi baseado em um dos trabalhos relacionais e conseguiu expressar claramente os conceitos do metamodelo, além de exibir uma notação gráfica que contempla todos os conceitos apresentados. Na tabela7, são apresentados os dados comparativos entre os trabalhos relacionados e a notação gráfica utilizada para dar suporte aos conceitos do metamodeloRMM. Nota-se através da tabela que a notação

Tabela 7 – Tabela comparativa das notações: Elsmari&Navathe, Silberschatz, IE, IDEF1X e RMM Conceito Elsmari&N a v athe Silbersc hatz IE IDEF1X RMM - Relação O O O O O 100% Atributo O O O O O 100% Domínio X X X X O 20% Restrição de Domínio X X X X O 20%

Restrição NOT NULL X X X X O 20%

Check X X X X O 20%

Chave Primária (PK) O O O O O 100%

Chave Estrangeira (FK) O O O O O 100%

Chave Única X X X O O 40%

Operação e violações de restrição X X X X O 20%

Restrição semânticas X X X X O 20%

Clareza no relacionamento entre relações O O O X O 80% 41% 41% 41% 41% 100% -

6 CONCLUSÃO

Neste capítulo, são apresentadas as considerações finais sobre o trabalho desenvolvido, suas principais contribuições para a literatura e sugestões de possíveis trabalhos futuros.

6.1

Considerações Finais

O objetivo deste trabalho foi propor um linguagem de modelagem para apoiar a cons- trução do projeto lógico de um BD relacional. Alinhado a esse objetivo, foram definidos o metamodelo RMM e uma notação gráfica com suporte aos seus elementos e, consequentemente aos conceitos abordados na secção §3.2. Além disso, foram definidas restrições com o objetivo de verificar a conformidade do esquema lógico. Alinhado a estes objetivos foi desenvolvido uma ferramenta CASE chamada RMMCASE com suporte a todos esses elementos. O objetivo principal foi alcançado através da criação do metamodelo RMM, sintaxe concreta e semântica estática, considerando o domínio do modelo relacional apresentando na secção §3.2. Este domínio foi definido fazendo uso da metodologia FODA, de forma a identificar os principais elementos do modelo relacional e suas relações para, assim, realizar o mapeamento de forma correta para a os elementos construídos neste trabalho.

Como características adicionais a linguagem proposta foi desenvolvido ainda os seguintes recursos: permite ao projetista validar a consistência do esquema lógico que está sendo projetado; transformação do esquema criado pelo projetista para uma notação textual representando de forma simplificada e possibilitando o seu uso no meio acadêmico; recurso de transformação do esquema lógico criado pelo usuário para a linguagem SQL; criação de um projeto lógico a partir da importação de umBDexiste em um banco PostgreSQL; a ferramenta RMMCASE que fornece suporte ao metamodelo RMM foi desenvolvida seguindo o paradigma MDD, o qual define que uma linguagem de modelagem deve ser especificada a partir de um metamodelo.

Assim, a avaliação deste trabalho constou inicialmente com o desenvolvimento da ferra- menta RMMCASE, a qual dá suporte a todos os elementos propostos. A partir daí, foi possível criar um projeto lógico baseado no metamodelo RMM, que inclui todos os conceitos definidos. Em seguida, foi possível realizar a transformação modelo para texto (M2T) em linguagem SQL. A partir deste código foi gerado um esquema relacional em umBDPostgreSQL. Ainda para validar o metamodelo foi criado um projeto lógico a partir de umBDexistente.

Como principais contribuições do trabalho desenvolvido, pode-se destacar:

• Criação de uma notação gráfica para projeto lógico do modelo relacional;

• Criação do metamodelo para a especificação de um projeto lógico do modelo relacional; • Construção de uma ferramenta para ser utilizada como instrumento acadêmico no ensino

dos conceitos envolvendo o projeto lógico deBD;

6.3

Trabalhos Futuros

A seguir, são apresentados possíveis trabalhos futuros que podem evoluir ou estender a proposta apresentada nesta dissertação:

• Desenvolver uma funcionalidade para transformação automática de um projeto conceitual para o projeto lógico de umBD.

• Desenvolver módulos que permitam gerar códigoSQLpara outrosSGBDs;

• Desenvolver funcionalidade que permita que a ferramenta realize importação de esquema de outrosSGBDs;

• Realizar uma avaliação adicional e formal da ferramenta, com a elaboração de estudos de casos;

• Desenvolver módulo para a transformação do projeto lógico para o projeto físico de um

REFERÊNCIAS

BRAMBILLA, M.; CABOT, J.; WIMMER, M. Model-Driven Software Engineering in Practice. California, USA: Morgan & Claypool, 2012. 14,25,26,28,29

CHO, H.; GRAY, J.; SYRIANI, E. Creating visual domain-specific modeling languages from end-user demonstration. Modeling in Software Engineering, v. 1, n. 1, p. 22–28, 2012. 28

CODD, E. F. A relational model of data for large shared databanks. Communications of the ACM, p. 377–387, jun. 1970. 18

CONNOLLY, T. M.; BEGG, C. E. Database Systems: A Practical Approach to Design,

Implementation, and Management. 4. ed. Essex: Pearson, 2005. (International computer science series). 15,18

CORONEL, C.; MORRIS, S.; ROB, P. Database Systems: Design, Implementation and

Management. 9th. ed. [S.l.]: Cengage Learning, 2011. 15

DATE, C. J. An Introduction to Database Systems. 8. ed. Boston, USA: Addison-Wesley, 2003.

15

DEMIRLI, E. Model-driven engineering of software architecture viewpoints. Dissertação (Mestrado) — Bilknet University: School of Engineering and Science, Instambul, Turkey, 2012.

26,27

DEURSEN, A. V.; KLINT, P.; VISSER, J. Domain-specific languages: An annotated bibliography. ACM SIGPLAN NOTICES, v. 35, p. 26–36, 2000. 14,28

ECLIPSE. Eclipse Modeling Framework. 2016. Disponível em «https://eclipse.org/modeling/emf/». Acessado em: 12/10/2016. 29,30,61

ELMASRI, R.; NAVATHE, S. B. Fundamentals of Database Systems. 7th. ed. Boston, USA: Pearson, 2015. 12,15,18,19,20,21,22,23,33,38,39,40,44,62

FIDALGO, R. N. et al. Metamodeling the enhanced entity-relationship model. Journal of

Information and Data Management, v. 4, n. 3, p. 406–420, out. 2013. 33

HARRINGTON, J. L. Relational database design and implementation : clearly explained. 3. ed. Burlington, MA: Elsevier, 1998. 15,41,42

HAY, D. Information engineering. Essential Strategies, 1999. 41,44

HAY, D. C. A comparison of data modeling techniques. Essential Strategies, 1999. 41,43

HEUSER, C. A. Projeto de banco de dados. Porto Alegre: Bookman, 2009. v. 4. (Livros Didáticos, v. 4). 14

KANG, K. C. et al. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Pittsburgh, Pennsylvania, 1990. 23,24

KERN, V. M. Bancos de dados ii idef1x: Manual da linguagem. UNIVALI Universidade do Vale

NIST. Integration definition for information modeling. Federal Information Processing Standards

Publication, v. 184, 1993. 33,42,43,44

OLIVEIRA, A. R. D. Uma Linguagem de Domínio Específico para AORE. Dissertação (Mestrado) — Universidade Nova de Lisboa: Faculdade de Ciências e Tecnologia, 2010. 24

OMG. Common Warehouse Metamodel (CWM) Specification. [S.l.], 2003. 15,33,34,35

OMG. Request For Proposal Information Management Metamodel. [S.l.], 2005. 15,36,37,45

OMG. Model Driven Architecture (MDA) Guide. 2. ed. [S.l.], 2014. Disponível em:

<http://www.omg.org/mda/>. 25

SANTOS, C. M. Crystal: Uma Linguagem De Modelagem Simplificada Para Apoiar a

Especificação De Programas Procedurais Em Banco De Dados Relacionais. Dissertação (Mestrado) — Centro de Informática, Universidade Federal de Pernambuco, Recife,PE, 2017.

14,24,28

SELIC, B. The pragmatics of model-driven development. IEEE Softw., IEEE Computer Society Press, Los Alamitos, CA, USA, v. 20, n. 5, p. 19–25, set. 2003. ISSN 0740-7459. Disponível em:

<http://dx.doi.org/10.1109/MS.2003.1231146>. 14,25

SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Database System Concepts. 6. ed. New York, NY: McGraw-Hill, 2011. 15,33,39,40,44,75

SILVA, E. A. D. Um Catálogo de regras para transformação automática de esquemas EER

em código SQL-Relacional: uma visão MDD com foco em restrições estruturais não triviais. Dissertação (Mestrado) — Centro de Informática, Universidade Federal de Pernambuco, 2015.

25

SIVONEN, S. Domain-specific modelling language and code generator for developing

repository-based Eclipse plug-ins. Vuorimiehentie, FIN: VTT, 2008. 25

SOUZA, C. C. N. Um Metamodelo e uma Ferramenta CASE para Projeto Conceitual de Banco

de Dados segundo o Modelo ER. Dissertação (Mestrado) — Centro de Informática, Universidade Federal de Pernambuco, Recife, PE, mar. 2011. 29,30

STEINBERG, D. et al. EMF - Eclipse Modeling Framework. 2. ed. Boston, MA: Addisob-Wesley Professional, 2008. 30

APÊNDICE A – METAMODELO RMM,

REGRAS DE VERIFICAÇÃO E CÓDIGOS

DA FERRAMENTA CASE

Documentos relacionados