Análise e Concepção de Sistemas de Informação · Normalmente esses conceitos são capturados...

27
“UML – Modelação de Dados” Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação

Transcript of Análise e Concepção de Sistemas de Informação · Normalmente esses conceitos são capturados...

“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