uma abordagem orientada a modelos para modelagem conceitual de banco de dados
DESCRIPTION
Download available at: https://sourceforge.net/projects/gendbmtool/ Link para Download do Trabalho: http://periodicos.unesc.net/index.php/sulcomp/article/viewArticle/1012 Apresentação de artigo no VI SULCOMP - Em Criciúma, 2012.TRANSCRIPT
![Page 1: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/1.jpg)
Uma Abordagem Orientada à Modelos para Modelagem
Conceitual de Banco de Dados
André de Souza Rosa
Carlos Eduardo Pantoja
Italine da Silva Gonçalves
Nilson Mori Lazarin
CEFET/RJ – UnED Nova Friburgo, Rio de Janeiro, Brasil 1
![Page 2: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/2.jpg)
2
Roteiro • Introdução
o Modelagem de Dados
• Modelo Conceitual
• Modelo Lógico
• Modelo Físico
o Modelo Conceitual
• Diagrama Entidade-
Relacionamento (DER)
• Crow’s Foot
• IDEF1X
• UML
• Outras
• Problema
• Model Driven Architecture
(MDA)
• Abordagem Proposta
• O Metamodelo
• Regras de Transformação
• Resultados o Exemplo 1
o Exemplo 2
o Exemplo 3
• Conclusão
• Bibliografia
![Page 3: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/3.jpg)
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 Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/4.jpg)
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 Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/5.jpg)
5
Arquitetura Orientada à Modelos-
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 Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/6.jpg)
Abordagem Proposta
6
![Page 7: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/7.jpg)
O Metamodelo
7
![Page 8: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/8.jpg)
8
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 9: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/9.jpg)
9
[template public toEntity(aEntities : OrderedSet(Entity))] [for (iEntity : Entity | aEntities)] CREATE TABLE [iEntity.name/] ( [ToField(iEntity.isComposed)/] [PrintPrimary(iEntity.hasPrimaryKey)/] [PrintForeign(iEntity.hasForeignKey)/] [if (iEntity.hasCheck<>null)] [PrintCheck(iEntity.hasCheck)/] [/if] ); [/for] [/template]
Regras de Transformação (cont.)
![Page 10: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/10.jpg)
10
[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 11: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/11.jpg)
11
Ferramentas
• Eclipse Modeling Framework (EMF)
• Ecore
• Acceleo
![Page 12: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/12.jpg)
Exemplo 1
12
Exemplo de modelagem conceitual segundo a notação ER de Peter Chen (CHEN, 1976).
![Page 13: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/13.jpg)
13
Exemplo da notação ER instanciado na ferramenta através da Árvore Hierárquica.
![Page 14: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/14.jpg)
14
Código DDL Gerado CREATE DATABASE ManufacturingFirm, CREATE TABLE Department( DepartmentID int (7) NOT NULL UNIQUE, CONSTRAINT DepartmentID PRIMARY KEY(DepartmentID) ); CREATE TABLE Supplier( SupplierID int (7) NOT NULL UNIQUE, CONSTRAINT SupplierID PRIMARY KEY(SupplierID) ); CREATE TABLE Part( PartID int (7) NOT NULL UNIQUE, CONSTRAINT PartID PRIMARY KEY(PartID) ); CREATE TABLE Employee( EmployeeID int (7) NOT NULL UNIQUE, CONSTRAINT EmployeeID PRIMARY KEY(EmployeeID), CONSTRAINT CodeDept FOREIGN KEY (DepartmentID)REFERENCES Department (DepartmentID) );
CREATE TABLE Dependent( DependentID int (7) NOT NULL UNIQUE, CONSTRAINT DependentID PRIMARY KEY(DependentID), CONSTRAINT CodeEmployee FOREIGN KEY (EmployeeID)REFERENCES Employee (EmployeeID) ); CREATE TABLE Project( ProjectID int (7) NOT NULL UNIQUE, CONSTRAINT ProjectID PRIMARY KEY(ProjectID), CONSTRAINT CodeEmployee FOREIGN KEY (EmployeeID)REFERENCES Employee (EmployeeID) );
![Page 15: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/15.jpg)
15
Exemplo 2
Exemplo de modelagem conceitual utilizando a notação de Crow’s Foot (“COMP 2010 Week: Crow’s Foot Entity-Relationship Diagram Notation”, 2012)
![Page 16: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/16.jpg)
16
Exemplo da notação Crow’s Foot instanciado na ferramenta através da Árvore Hierárquica.
![Page 17: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/17.jpg)
17
CREATE DATABASE University, CREATE TABLE Department( student number int (7) NOT NULL UNIQUE, name varchar (20) , address varchar (45) , CONSTRAINT student number PRIMARY KEY(student number) ); CREATE TABLE Distance_Student( community varchar (50) , local_tutor varchar (50) ); CREATE TABLE Course( course number int (7) NOT NULL UNIQUE, title varchar (20) , CONSTRAINT course number PRIMARY KEY(course number), ); CREATE TABLE Transcript( grade varchar (20) , );
CREATE TABLE Course_with_Course ( course number int (7) NOT NULL UNIQUE, courseID int (7) , prerequisiteID int (7) , CONSTRAINT courseID FOREIGN KEY (course number) REFERENCES Course (course number), CONSTRAINT prerequisiteID FOREIGN KEY (course number) REFERENCES Course (course number) ); CREATE TABLE Department-Course( student number int (7) NOT NULL UNIQUE, course number int (7) NOT NULL UNIQUE, registration date varchar(10), courseID int(7), departmetID int (7), CONSTRAINT courseID FOREIGN KEY (course number) REFERENCES Course (course number), CONSTRAINT departmetID FOREIGN KEY (student number) REFERENCES Department (student number) );
Código DDL Gerado
![Page 18: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/18.jpg)
18
Exemplo 3
Exemplo de modelagem conceitual utilizando a notação de IDEF1X
(“Discussion Forum Data Model”, 2012)
![Page 19: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/19.jpg)
19
Exemplo da notação IDEF1X instanciado na ferramenta através da Árvore Hierárquica.
![Page 20: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/20.jpg)
20
Código DDL Gerado
CREATE DATABASE Forum, CREATE TABLE User( UserID int (7) NOT NULL UNIQUE, UserName varchar (50) , UserFisrtName varchar (50) , UserLastName varchar (50) , UserEmailAddress varchar (50) , CONSTRAINT UserID PRIMARY KEY(UserID), ); CREATE TABLE Terms( TermsID int (7) NOT NULL UNIQUE, TermsSubject varchar (50) , TermsContent varchar (50) , CONSTRAINT TermsID PRIMARY KEY(TermsID) ); CREATE TABLE EmailMessage( EmailMessageID int (7) NOT NULL UNIQUE, EmailSubject varchar (50) , EmailCreateDate varchar (50) , CONSTRAINT EmailMessageID PRIMARY KEY(EmailMessageID) );
CREATE TABLE Forum( ForumID int (7) NOT NULL UNIQUE, ForumActive int (50) , ForumName varchar (50) , ForumDescription varchar (50) , CONSTRAINT ForumID PRIMARY KEY(ForumID) );
![Page 21: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/21.jpg)
21
CREATE TABLE ModeratorAction( ModeratorActionID int (7) NOT NULL UNIQUE, ForumActionDescription varchar (50) , ForumIDinModeratorAction int (7) , UserIDinModeratorAction int (7) , ThreadIDinModeratorAction int (7) , CONSTRAINT ModeratorActionID PRIMARY KEY(ModeratorActionID), CONSTRAINT ForeignForumIDinModeratorAction FOREIGN KEY (ForumIDinModeratorAction)REFERENCES Forum(ForumID), CONSTRAINT ForeignUserDinModeratorAction FOREIGN KEY (UserIDinModeratorAction)REFERENCES ModeratorAction(ModeratorActionID), CONSTRAINT ForeignThreadIDinModeratorAction FOREIGN KEY (ThreadIDinModeratorAction)REFERENCES Thread(ThreadID) ); CREATE TABLE Thread( ThreadID int (7) NOT NULL , ThreadLocked varchar (50) , ThreadActive varchar (50) , ForumIDinThread int (7) , UserIDinThread int (7) , CONSTRAINT ThreadID PRIMARY KEY(ThreadID), CONSTRAINT ForeignUserIDinThread FOREIGN KEY (UserIDinThread)REFERENCES User(UserID), CONSTRAINT ForeignForumIDinThread FOREIGN KEY (ForumIDinThread)REFERENCES Forum(ForumID) );
Código DDL Gerado (cont.)
![Page 22: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/22.jpg)
22
CREATE TABLE Post( PostID int (7) NOT NULL , PostSubjetc varchar (50) , PostQuote varchar (7) , PostMessage varchar (50) , PostThreadID int (7) , PostReplyTo int (7) , PersonID int (7) , CONSTRAINT PostID PRIMARY KEY(PostID), CONSTRAINT PostQuote FOREIGN KEY (PostQuote)REFERENCES Post(PostID), CONSTRAINT PostThreadID FOREIGN KEY (PostThreadID)REFERENCES Thread(ThreadID), CONSTRAINT PostReplyto FOREIGN KEY (PostReplyTo)REFERENCES ThreadFollower(UserID), CONSTRAINT PersonID FOREIGN KEY (PersonID)REFERENCES User(UserID) ); CREATE TABLE TermsAgreed( TermsID int (7) NOT NULL UNIQUE, UserID int (7) NOT NULL UNIQUE, TermsAgreedDate varchar (10) , CONSTRAINT TermsID FOREIGN KEY (TermsID) REFERENCES Terms(TermsID), CONSTRAINT UserID FOREIGN KEY (UserID) REFERENCES User(UserID) );
Código DDL Gerado (cont.)
![Page 23: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/23.jpg)
23
CREATE TABLE Recipient( EmailMessageID int (7) NOT NULL UNIQUE, UserID int (7) NOT NULL UNIQUE, CONSTRAINT UserID FOREIGN KEY (UserID) User(UserID), CONSTRAINT EmailMessage FOREIGN KEY (EmailMessageID) REFERENCES EmailMessage(EmailMessageID) ); CREATE TABLE ForumModerator( ModeratorActionID int (7) NOT NULL UNIQUE, ForumID int (7) NOT NULL UNIQUE, CONSTRAINT ForumID FOREIGN KEY (ForumID) REFERENCES Forum(ForumID), CONSTRAINT UserID FOREIGN KEY (UserID) REFERENCES User(UserID) ); CREATE TABLE ThreadFollower( UserID int (7) NOT NULL UNIQUE, ThreadID int (7) NOT NULL , CONSTRAINT UserID FOREIGN KEY (UserID) REFERENCES User(UserID), CONSTRAINT ThreadID FOREIGN KEY (ThreadID) Thread(ThreadID) );
Código DDL Gerado (cont.)
![Page 24: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/24.jpg)
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 Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/25.jpg)
Contatos:
25
Obrigado!
André de Souza Rosa [email protected]
Carlos Eduardo Pantoja
Italine da Silva Gonçalves [email protected]
Nilson Mori Lazarin [email protected]
![Page 26: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/26.jpg)
Bibliografia • (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—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.
26
![Page 27: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/27.jpg)
27
• DbDesigner Homepage. .Disponível em: <http://dbdesigner.sourceforge.net/.>. 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.
![Page 28: Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados](https://reader034.vdocuments.net/reader034/viewer/2022052304/5592dbb31a28ab023c8b462f/html5/thumbnails/28.jpg)
28
• 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.