“UML – Modelação de Dados”
Alberto Manuel Rodrigues da SilvaProf. DEI/IST/UTL
Análise e Concepção de Sistemas de Informação
2ACSI/UML, Data Modeling, Copyright, Alberto Silva
Agenda
Enquadramento e Problema
Modelação de Dados em UML no Processo de
Desenho de Bases de Dados
Regras de Mapeamento do UML em
Esquemas Relacionais
3ACSI/UML, Data Modeling, Copyright, Alberto Silva
Problema
Modelação de dados (das abordagens estruturadas)– Técnicas e notações – ER– Regras bem definidas para definição de esquemas
relacionais (e.g., em DDL SQL)
Modelação de objectos (abordagens O-O)– Diagramas de classes e diagrs de objectos
Objectos ≠ Tabelas (Modelo relacional)
Como guardar os objectos?se, .... A generalidade dos SGBD são Relacionais?
4ACSI/UML, Data Modeling, Copyright, Alberto Silva
Problema
Até à data, o UML não suporta de base a modelação de bases de dados de forma directa.
Os conceitos estáticos que o UML representa (pacotes, classes, atributos) podem ser mapeados em conceitos do mundo das bases de dados relacionais (bases de dados, tabelas, colunas), mas são por natureza bastante diferentes.
Um dos principais problemas tem a ver com a concretização das diversas relações possíveis entre classes, nas relações entre tabelas (abordaremos mais detalhadamente esta questão).
5ACSI/UML, Data Modeling, Copyright, Alberto Silva
Problema: soluções existentesLinguagens Persistentes
E.g., Pijama (Java Persistente), Napier, Prothos, ...
Mecanismos simples Serialização dos dados dos objectos para/de ficheiros simples
E.g., Ficheiros texto ou binários, XML
SGBD RelacionaisE.g., Oracle, MySQL, Access, SQL Server, ...
Modelo relacional; SQL-92 / SQL-99 = DML+DDL
SGBD OO (ODBMS)E.g., Ontos, Ardent (~O2), ObjectStore, GemStone,...
Paradigma OO; ODMG2.0 = ODL+OQL+bindings p/a LP
SDBG RO (ORDBMS)E.g., os SGBDR “universais”: Oracle8, Informix US, IBM UDB,...
Abordagem híbrida; SQL3
6ACSI/UML, Data Modeling, Copyright, Alberto Silva
Enquadramento
Vamos focar-nos sobre o modelo dos SGBDRÉ a situação mais divulgada e utilizada na prática
Classes/Objectos ≠ Tabelas (Modelo relacional)
????
ClassesObjectosMétodosAtributos
TabelasLinhas (registos)Colunas (campos)
7ACSI/UML, Data Modeling, Copyright, Alberto Silva
Processo de Desenho de Bases de Dados
Recolha e Análise de Requisitos
Desenho Conceptual de Dados
Desenho Lógico de Dados
Desenho Físico de Dados
c : Modelo de Dados[conceptual]
l : Modelo de Dados[ lógico]
f : Modelo de Dados[físico]
modelo de dados de alto nível, sem quaisquer referências a aspectos de implementação e ou tecnológicos, de forma que permita ser entendido facilmente
modelo mais detalhado e adequado ao tipo de armazenamento escolhido, e.g., segundo o modelo OO ou relacional
especificação das estruturas internas de armazenamento (e.g., clusters e índices), caminhos de acesso (e.g., pela definição de vistas de acesso aos dados), políticas de segurança; e a própria organização dos ficheiros de suporte (e.g., a definição dos ficheiros de dados, de histórico (i.e., log), de stored procedures)
8ACSI/UML, Data Modeling, Copyright, Alberto Silva
Processo de Desenho de Bases de DadosNível Conceptual
AlunoBE
CategoriaAcadémicaBE
DocenteBE
ensina
supervisiona
coordena
CategoriaAcadémicaBE<<business entity>>
AlunoBE<<business ent ity>>
DocenteBE<<business entity>>ensina
supervisiona
coordena
A nível conceptual o que é relevante captar são os conceitos gerais do domínio de aplicação considerado.
Normalmente esses conceitos são capturados na forma de classes ou objectos, podendo ser designados, consoante os autores, por “entidades informacionais”, “entidades de negócio”, “objectos do domínio”, etc.
9ACSI/UML, Data Modeling, Copyright, Alberto Silva
Processo de Desenho de Bases de DadosNível Lógico
A modelação lógica de dados é realizada para se desenhar o esquema da base de dados a um nível (ainda) independente da tecnologia...
EnsinadataInício : DatedataFim : Date
<<entity>>
Alunonome : Stringmorada : StringdataNasc : Date
<<entity>>Docente
<<OID>> nrDocente : Integernome : Stringmorada : St ringtelefone[1. .2] : St ring
<<enti ty>>
* ** *
ensina
0...
*
+coordenador0...
coordena
+coordenado
*
** **
supervisiona
1
*
1
*tem
CategoriaAcadémica<<OID>> sigla : Stringdescrição : String
<<enti ty>>
10ACSI/UML, Data Modeling, Copyright, Alberto Silva
Processo de Desenho de Bases de DadosNível Físico
O modelo físico de dados encontra-se directamente associado à implementação de um determinado SGBD, apresentando correspondentemente aspectos dependentes e específicos dessa plataforma.
T_CategoriaAcadémicasigla : VARCHAR(3)descrição : VARCHAR(25)
<<PK>> PK_T_CategoriaAcadémica3()<<Index>> TC_T_CategoriaAcadémica14()
<<Table>>
T_Docente
nrDocente : SMALLINTnome : VARCHAR(100)morada : VARCHAR(100)coordenador : SMALLINTsiglaCatAcad : VARCHAR(3)
<<PK>> PK_T_Docente1()<<FK>> FK_T_Docente0()<<Unique>> TC_T_Docente3()<<Trigger>> TRIG_T_Docente0()<<FK>> FK_T_Docente1()
(from Modelo Físico)
<<Table>>
0..*
1
0..*
1
0..*
1
0..*
1
Exemplo baseado no perfil de “Data Modeling” proposto pela IBM/Rational
11ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas Relacionais
OOClassesObjectosMétodosAtributos
RelacionalTabelasLinhas (registos)- (store procedures) **Colunas (campos)
Paradigma OO vs Relacional
12ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas Relacionais
Paradigma Relacional
Esquema da relação “Aluno”, na forma compacta: Aluno(Id-aluno, nome, morada, dataNasc); morada FK Morada
Relação “Aluno”:Aluno = {(23888,Maria Rita,567, -), (23889,José Pedro,767,-)}
CREATE TABLE Aluno (Id-aluno INT,Nome VARCHAR(100) NOT NULL,Morada VARCHAR(100) NOT NULL,dataNascDATE,PRIMARY KEY(d-aluno),FOREIGN KEY(morada) REFERENCES Morada(Id-Morada)
)
13ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas Relacionais
Paradigma OO
Alunonome : Stringmorada : St ringdataNasc : Date
23888 : A luno
23889 : Aluno
14ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas RelacionaisClasses em Relações e Objectos em Tuplos
Alunonome : Stringmorada : St ringdataNasc : Date
23888 : A luno
23889 : Aluno
15ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas RelacionaisIdentificação de Objectos em Chaves Primárias
16ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas RelacionaisMapeamento de Relações de Associação
17ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas RelacionaisMapeamento de Relações de Associação
18ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas RelacionaisMapeamento de Relações de Associação
19ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas RelacionaisMapeamento de Relações de Generalização
AlunoLicenciaturanotaAcesso : IntegernrDisciplinas : IntegerECTS : Integer
AlunoMest radomédiaCurricular : Integer
AlunoDoutoramentotemCAT : Boolean
Alunonome : Stringmorada : StringdataNasc : Date
AlunoPósGraduaçãocursoAnterior : S tringescolaAnterior : St ringclassificaçãoAnterior : St ringtítuloTese : String
Docente
1
*ori entador
0..1
*co-orientador
1
*
0.. 1
*
20ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas RelacionaisMapeamento de Relações de Generalização
21ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas RelacionaisMapeamento de Relações de Generalização
Esmagamento das classes da hierarquia num único esquema
Aluno(AlunoID, morada, dataNasc, notaAcesso, nrDisciplinas, ECTS, cursoAnterior, escolaAnterior, classificaçãoAnterior, títuloTese, orientador, co-orientador, médiaCurricular, temCAT), orientator FK Docente; co-orientator FK Docente;
22ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas RelacionaisMapeamento de Relações de Generalização
Apenas considerar esquemas correspondentes às sub-classes
AlunoLicenciatura(AlunoLicenciaturaID, morada, dataNasc, notaAcesso, nrDisciplinas, ECTS)
AlunoMestrado(AlunoMestradoID, morada, dataNasc, cursoAnterior, escolaAnterior, classificaçãoAnterior, títuloTese, orientador, co-orientador, médiaCurricular), orientator FK Docente; co-orientator FK Docente;
AlunoDoutoramento(AlunoDoutoramentoID, morada, dataNasc, cursoAnterior, escolaAnterior, classificaçãoAnterior, títuloTese, orientador, co-orientador, temCAT), orientator FK Docente; co-orientator FK Docente;
23ACSI/UML, Data Modeling, Copyright, Alberto Silva
Mapeamento de Modelos Lógicos (UML) em Esquemas RelacionaisMapeamento de Relações de Generalização
Considerar todas as classes da hierarquia
Aluno(AlunoID, morada, dataNasc)
AlunoLicenciatura(AlunoID, morada, dataNasc, notaAcesso, nrDisciplinas, ECTS), AlunoID FK Aluno
AlunoPósGraduação (AlunoID, cursoAnterior, escolaAnterior, classificaçãoAnterior, títuloTese, orientador, co-orientador), AlunoID FK Aluno, orientator FK Docente; co-orientator FK Docente;
AlunoMestrado(AlunoID, médiaCurricular), AlunoID FK AlunoPósGraduação
AlunoDoutoramento(AlunoID, temCAT), AlunoID FK AlunoPósGraduação
24ACSI/UML, Data Modeling, Copyright, Alberto Silva
Referências
“Mapping Objects to Relational Databases”, Scott Ambler
http://www.AmbySoft.com/mappingObjects.pdf
Rational White PapersRational. Mapping Object to Data Models with the UML, A Whitepaper. 2000.Rational. Using Data Modeler, Rational Rose 2001. 2001.
25ACSI/UML, Data Modeling, Copyright, Alberto Silva
Exercícios
Pretende-se o esquema relacional (na forma compacta) das seguintes classes representadas em UML. (Discuta a distinção entre a definição implícita e explicita de identificação de objectos. )
EmpregadoA nome: String morada: String sexo: Sexo dataNasc: Date nível: Integer BI: String estado: EstadoCivil
EmpregadoB nome: String morada: String sexo: Sexo dataNasc: Date nível: Integer BI: String {oid} estado: EstadoCivil
EmpregadoC nr_mec: Integer {oid}nome: String morada: String sexo: Sexo dataNasc: Date nível: Integer BI: String estado: EstadoCivil
26ACSI/UML, Data Modeling, Copyright, Alberto Silva
Exercícios
Pretende-se o esquema relacional (1) na forma compacta e (2) na forma de SQL/DDL, do seguinte diagrama de classes.
Empregado nome: String morada: String sexo: Sexo dataNasc: Date nível: Integer BI: String estado: EstadoCivil
Departamento nr_dep: Integer {oid} nome: String autonomiaFinan: Integer
trabalha *1..*
dirige 1 0..1 {subset}
27ACSI/UML, Data Modeling, Copyright, Alberto Silva
Exercícios
Pretende-se o esquema relacional (1) na forma compacta e (2) na forma de SQL/DDL, do seguinte diagrama de classes. Discuta as várias alternativas possíveis.
Empregado nr_mec: Integer {oid}nome: String morada: String obterMorada()
EmpregadoContrato nr_contrato:Integer data: Date obterContrato()
Tarefeiro taxaHora:Integer obterTxHora()
GestorTopo SalarioAno:Integer StockOptions: Float
Top Related