SlideShare a Scribd company logo
1 of 28
Download to read offline
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
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
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
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
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)
Abordagem Proposta
6
O Metamodelo
7
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]
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.)
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.)
11
Ferramentas
• Eclipse Modeling Framework (EMF)
• Ecore
• Acceleo
Exemplo 1
12
Exemplo de modelagem conceitual segundo a notação
ER de Peter Chen (CHEN, 1976).
13
Exemplo da notação ER instanciado na ferramenta
através da Árvore Hierárquica.
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)
);
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)
16
Exemplo da notação Crow’s Foot instanciado na
ferramenta através da Árvore Hierárquica.
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
18
Exemplo 3
Exemplo de modelagem conceitual utilizando a notação de IDEF1X
(“Discussion Forum Data Model”, 2012)
19
Exemplo da notação IDEF1X instanciado na
ferramenta através da Árvore Hierárquica.
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)
);
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.)
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.)
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.)
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.
Contatos:
25
Obrigado!
André de Souza Rosa
andre_souza.rosa@hotmail.com
Carlos Eduardo Pantoja
pantoja@cefet-rj.br
Italine da Silva Gonçalves
italine.goncalves@hotmail.com
Nilson Mori Lazarin
nlazarin@cefet-rj.br
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&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.
26
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.
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.

More Related Content

Viewers also liked

Colegio particular mixto hermano miguel (monografia)
Colegio particular mixto hermano miguel (monografia)Colegio particular mixto hermano miguel (monografia)
Colegio particular mixto hermano miguel (monografia)Katty Iglesias
 
Conjunto de los numeros enteros (Z)
Conjunto de los numeros enteros (Z)Conjunto de los numeros enteros (Z)
Conjunto de los numeros enteros (Z)pedrochirinossivira
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosjosecuartas
 
Como generar un índice en word
Como generar un índice en wordComo generar un índice en word
Como generar un índice en wordisaiasrl
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosvargasaldanajohanna
 
Anexos modelos (guía elaboración trabajos escritos
Anexos modelos (guía elaboración trabajos escritosAnexos modelos (guía elaboración trabajos escritos
Anexos modelos (guía elaboración trabajos escritosShirley Kristek
 
Análisis plan nacional simón bolívar
Análisis plan nacional simón bolívarAnálisis plan nacional simón bolívar
Análisis plan nacional simón bolívarrgcordido
 

Viewers also liked (7)

Colegio particular mixto hermano miguel (monografia)
Colegio particular mixto hermano miguel (monografia)Colegio particular mixto hermano miguel (monografia)
Colegio particular mixto hermano miguel (monografia)
 
Conjunto de los numeros enteros (Z)
Conjunto de los numeros enteros (Z)Conjunto de los numeros enteros (Z)
Conjunto de los numeros enteros (Z)
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datos
 
Como generar un índice en word
Como generar un índice en wordComo generar un índice en word
Como generar un índice en word
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datos
 
Anexos modelos (guía elaboración trabajos escritos
Anexos modelos (guía elaboración trabajos escritosAnexos modelos (guía elaboración trabajos escritos
Anexos modelos (guía elaboración trabajos escritos
 
Análisis plan nacional simón bolívar
Análisis plan nacional simón bolívarAnálisis plan nacional simón bolívar
Análisis plan nacional simón bolívar
 

Similar to Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados

Achilles presentation
Achilles presentationAchilles presentation
Achilles presentationDuyhai Doan
 
Session #4: Treating Databases as First-Class Citizens in Development
Session #4: Treating Databases as First-Class Citizens in DevelopmentSession #4: Treating Databases as First-Class Citizens in Development
Session #4: Treating Databases as First-Class Citizens in DevelopmentSteve Lange
 
PHX - Session #4 Treating Databases as First-Class Citizens in Development
PHX - Session #4 Treating Databases as First-Class Citizens in DevelopmentPHX - Session #4 Treating Databases as First-Class Citizens in Development
PHX - Session #4 Treating Databases as First-Class Citizens in DevelopmentSteve Lange
 
BTEC- HND In Computing-Creating Table_Week6.pptx
BTEC- HND In Computing-Creating Table_Week6.pptxBTEC- HND In Computing-Creating Table_Week6.pptx
BTEC- HND In Computing-Creating Table_Week6.pptxTTKCreation
 
TechDays Tunisia - Visual Studio & SQL Server, Better Together - Ayman El-Hattab
TechDays Tunisia - Visual Studio & SQL Server, Better Together - Ayman El-HattabTechDays Tunisia - Visual Studio & SQL Server, Better Together - Ayman El-Hattab
TechDays Tunisia - Visual Studio & SQL Server, Better Together - Ayman El-HattabAyman El-Hattab
 
Write appropriate SQL DDL statements (Create Table Statements) for d.pdf
Write appropriate SQL DDL statements (Create Table Statements) for d.pdfWrite appropriate SQL DDL statements (Create Table Statements) for d.pdf
Write appropriate SQL DDL statements (Create Table Statements) for d.pdfinfo961251
 
SQL express course for begginers
   SQL express course for begginers   SQL express course for begginers
SQL express course for begginersDmytro Hvozdov
 
IFESFinal58
IFESFinal58IFESFinal58
IFESFinal58anish h
 
SQL Server Development Tools & Processes Using Visual Studio 2010
SQL Server Development Tools & Processes Using Visual Studio 2010 SQL Server Development Tools & Processes Using Visual Studio 2010
SQL Server Development Tools & Processes Using Visual Studio 2010 Ayman El-Hattab
 
Separation of Concerns in Web User Interfaces
Separation of Concerns in Web User InterfacesSeparation of Concerns in Web User Interfaces
Separation of Concerns in Web User Interfacesjippeh
 
ORM을 맞이하는 우리의 자세
ORM을 맞이하는 우리의 자세ORM을 맞이하는 우리의 자세
ORM을 맞이하는 우리의 자세병태 정
 
Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++corehard_by
 
Lecture05sql 110406195130-phpapp02
Lecture05sql 110406195130-phpapp02Lecture05sql 110406195130-phpapp02
Lecture05sql 110406195130-phpapp02Lalit009kumar
 
A la découverte de TypeScript
A la découverte de TypeScriptA la découverte de TypeScript
A la découverte de TypeScriptDenis Voituron
 
Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Paulo Gandra de Sousa
 

Similar to Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados (20)

Achilles presentation
Achilles presentationAchilles presentation
Achilles presentation
 
Physical Design and Development
Physical Design and DevelopmentPhysical Design and Development
Physical Design and Development
 
Session #4: Treating Databases as First-Class Citizens in Development
Session #4: Treating Databases as First-Class Citizens in DevelopmentSession #4: Treating Databases as First-Class Citizens in Development
Session #4: Treating Databases as First-Class Citizens in Development
 
PHX - Session #4 Treating Databases as First-Class Citizens in Development
PHX - Session #4 Treating Databases as First-Class Citizens in DevelopmentPHX - Session #4 Treating Databases as First-Class Citizens in Development
PHX - Session #4 Treating Databases as First-Class Citizens in Development
 
BTEC- HND In Computing-Creating Table_Week6.pptx
BTEC- HND In Computing-Creating Table_Week6.pptxBTEC- HND In Computing-Creating Table_Week6.pptx
BTEC- HND In Computing-Creating Table_Week6.pptx
 
TechDays Tunisia - Visual Studio & SQL Server, Better Together - Ayman El-Hattab
TechDays Tunisia - Visual Studio & SQL Server, Better Together - Ayman El-HattabTechDays Tunisia - Visual Studio & SQL Server, Better Together - Ayman El-Hattab
TechDays Tunisia - Visual Studio & SQL Server, Better Together - Ayman El-Hattab
 
Write appropriate SQL DDL statements (Create Table Statements) for d.pdf
Write appropriate SQL DDL statements (Create Table Statements) for d.pdfWrite appropriate SQL DDL statements (Create Table Statements) for d.pdf
Write appropriate SQL DDL statements (Create Table Statements) for d.pdf
 
SQL express course for begginers
   SQL express course for begginers   SQL express course for begginers
SQL express course for begginers
 
IFESFinal58
IFESFinal58IFESFinal58
IFESFinal58
 
SQL Server Development Tools & Processes Using Visual Studio 2010
SQL Server Development Tools & Processes Using Visual Studio 2010 SQL Server Development Tools & Processes Using Visual Studio 2010
SQL Server Development Tools & Processes Using Visual Studio 2010
 
Session 6#
Session 6#Session 6#
Session 6#
 
Separation of Concerns in Web User Interfaces
Separation of Concerns in Web User InterfacesSeparation of Concerns in Web User Interfaces
Separation of Concerns in Web User Interfaces
 
ORM을 맞이하는 우리의 자세
ORM을 맞이하는 우리의 자세ORM을 맞이하는 우리의 자세
ORM을 맞이하는 우리의 자세
 
Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++
 
Lecture05sql 110406195130-phpapp02
Lecture05sql 110406195130-phpapp02Lecture05sql 110406195130-phpapp02
Lecture05sql 110406195130-phpapp02
 
A la découverte de TypeScript
A la découverte de TypeScriptA la découverte de TypeScript
A la découverte de TypeScript
 
Green dao
Green daoGreen dao
Green dao
 
Php mysql
Php mysqlPhp mysql
Php mysql
 
PoEAA by Example
PoEAA by ExamplePoEAA by Example
PoEAA by Example
 
Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)
 

More from Carlos Eduardo Pantoja

Integrando a Programação Java com Arduino Utilizando o Javino
Integrando a Programação Java com Arduino Utilizando o JavinoIntegrando a Programação Java com Arduino Utilizando o Javino
Integrando a Programação Java com Arduino Utilizando o JavinoCarlos Eduardo Pantoja
 
Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...
Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...
Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...Carlos Eduardo Pantoja
 
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI Systems
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI SystemsA Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI Systems
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI SystemsCarlos Eduardo Pantoja
 
An Architecture for the Development of Ambient Intelligence Systems Managed b...
An Architecture for the Development of Ambient Intelligence Systems Managed b...An Architecture for the Development of Ambient Intelligence Systems Managed b...
An Architecture for the Development of Ambient Intelligence Systems Managed b...Carlos Eduardo Pantoja
 
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...Carlos Eduardo Pantoja
 
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...Carlos Eduardo Pantoja
 
Questões de Concursos - Sistemas de Informação (Parte 1)
Questões de Concursos - Sistemas de Informação (Parte 1)Questões de Concursos - Sistemas de Informação (Parte 1)
Questões de Concursos - Sistemas de Informação (Parte 1)Carlos Eduardo Pantoja
 
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...Carlos Eduardo Pantoja
 
LISA - Laboratório Inteligente de Sistemas Autônomos
LISA - Laboratório Inteligente de Sistemas AutônomosLISA - Laboratório Inteligente de Sistemas Autônomos
LISA - Laboratório Inteligente de Sistemas AutônomosCarlos Eduardo Pantoja
 
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...Carlos Eduardo Pantoja
 
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...Carlos Eduardo Pantoja
 
Instalação e Manutenção de Computadores
Instalação e Manutenção de ComputadoresInstalação e Manutenção de Computadores
Instalação e Manutenção de ComputadoresCarlos Eduardo Pantoja
 
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGO
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGODesenvolvimento de Uma Smart Home Baseada na Arquitetura ARGO
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGOCarlos Eduardo Pantoja
 
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...Carlos Eduardo Pantoja
 
Inside Jason: Experiências no Desenvolvimento de Arquiteturas Customizadas
Inside Jason: Experiências no Desenvolvimento de Arquiteturas CustomizadasInside Jason: Experiências no Desenvolvimento de Arquiteturas Customizadas
Inside Jason: Experiências no Desenvolvimento de Arquiteturas CustomizadasCarlos Eduardo Pantoja
 
Sistema de Controle de Justificativas de Medicamentos Antimicrobianos
Sistema de Controle de Justificativas de Medicamentos AntimicrobianosSistema de Controle de Justificativas de Medicamentos Antimicrobianos
Sistema de Controle de Justificativas de Medicamentos AntimicrobianosCarlos Eduardo Pantoja
 
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with Jason
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with JasonPrototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with Jason
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with JasonCarlos Eduardo Pantoja
 
Introdução a Administração e a Economia
Introdução a Administração e a EconomiaIntrodução a Administração e a Economia
Introdução a Administração e a EconomiaCarlos Eduardo Pantoja
 
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...Carlos Eduardo Pantoja
 

More from Carlos Eduardo Pantoja (20)

Integrando a Programação Java com Arduino Utilizando o Javino
Integrando a Programação Java com Arduino Utilizando o JavinoIntegrando a Programação Java com Arduino Utilizando o Javino
Integrando a Programação Java com Arduino Utilizando o Javino
 
Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...
Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...
Transporte de Agentes Cognitivos entre SMA Usando Framework Jason e o Middlew...
 
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI Systems
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI SystemsA Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI Systems
A Heterogeneous Architecture for Integrating Multi-Agent Systems in AmI Systems
 
An Architecture for the Development of Ambient Intelligence Systems Managed b...
An Architecture for the Development of Ambient Intelligence Systems Managed b...An Architecture for the Development of Ambient Intelligence Systems Managed b...
An Architecture for the Development of Ambient Intelligence Systems Managed b...
 
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...
Transporte de Agentes Cognitivos entre SMA Distintos Inspirado nos Princípios...
 
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...
Explorando a Comunicação entre Sistemas Multi-Agentes Embarcados em Ambientes...
 
Questões de Concursos - Sistemas de Informação (Parte 1)
Questões de Concursos - Sistemas de Informação (Parte 1)Questões de Concursos - Sistemas de Informação (Parte 1)
Questões de Concursos - Sistemas de Informação (Parte 1)
 
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...
Integrating Multi-Agent Systems and Internet of Things To Support Ambient Int...
 
LISA - Laboratório Inteligente de Sistemas Autônomos
LISA - Laboratório Inteligente de Sistemas AutônomosLISA - Laboratório Inteligente de Sistemas Autônomos
LISA - Laboratório Inteligente de Sistemas Autônomos
 
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...
Support for the Deployment of Ambient Intelligence Systems Managed by Cogniti...
 
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...
Suporte à Implementação de Ambientes Inteligentes Gerenciados por Agentes Cog...
 
Instalação e Manutenção de Computadores
Instalação e Manutenção de ComputadoresInstalação e Manutenção de Computadores
Instalação e Manutenção de Computadores
 
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGO
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGODesenvolvimento de Uma Smart Home Baseada na Arquitetura ARGO
Desenvolvimento de Uma Smart Home Baseada na Arquitetura ARGO
 
ContextNet Middleware
ContextNet MiddlewareContextNet Middleware
ContextNet Middleware
 
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...
Explorando o Transporte de Agentes Cognitivos entre Sistemas Multi-Agentes Di...
 
Inside Jason: Experiências no Desenvolvimento de Arquiteturas Customizadas
Inside Jason: Experiências no Desenvolvimento de Arquiteturas CustomizadasInside Jason: Experiências no Desenvolvimento de Arquiteturas Customizadas
Inside Jason: Experiências no Desenvolvimento de Arquiteturas Customizadas
 
Sistema de Controle de Justificativas de Medicamentos Antimicrobianos
Sistema de Controle de Justificativas de Medicamentos AntimicrobianosSistema de Controle de Justificativas de Medicamentos Antimicrobianos
Sistema de Controle de Justificativas de Medicamentos Antimicrobianos
 
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with Jason
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with JasonPrototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with Jason
Prototyping Ubiquitous Multi-Agent Systems: A Generic Domain Approach with Jason
 
Introdução a Administração e a Economia
Introdução a Administração e a EconomiaIntrodução a Administração e a Economia
Introdução a Administração e a Economia
 
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...
Managing Natural Resources in a Smart Bathroom Using a Ubiquitous Multi-Agent...
 

Recently uploaded

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...RKavithamani
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 

Recently uploaded (20)

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 

Uma Abordagem Orientada a Modelos para Modelagem Conceitual de Banco de Dados

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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)
  • 8. 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]
  • 9. 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.)
  • 10. 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.)
  • 11. 11 Ferramentas • Eclipse Modeling Framework (EMF) • Ecore • Acceleo
  • 12. Exemplo 1 12 Exemplo de modelagem conceitual segundo a notação ER de Peter Chen (CHEN, 1976).
  • 13. 13 Exemplo da notação ER instanciado na ferramenta através da Árvore Hierárquica.
  • 14. 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) );
  • 15. 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)
  • 16. 16 Exemplo da notação Crow’s Foot instanciado na ferramenta através da Árvore Hierárquica.
  • 17. 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
  • 18. 18 Exemplo 3 Exemplo de modelagem conceitual utilizando a notação de IDEF1X (“Discussion Forum Data Model”, 2012)
  • 19. 19 Exemplo da notação IDEF1X instanciado na ferramenta através da Árvore Hierárquica.
  • 20. 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) );
  • 21. 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.)
  • 22. 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.)
  • 23. 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.)
  • 24. 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.
  • 25. Contatos: 25 Obrigado! André de Souza Rosa andre_souza.rosa@hotmail.com Carlos Eduardo Pantoja pantoja@cefet-rj.br Italine da Silva Gonçalves italine.goncalves@hotmail.com Nilson Mori Lazarin nlazarin@cefet-rj.br
  • 26. 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&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. 26
  • 27. 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.
  • 28. 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.