| (26 revisões intermediárias por um outro usuário não estão sendo mostradas) | |||
| Linha 2: | Linha 2: | ||
<br> | <br> | ||
== Introdução == | |||
Esta pesquisa traz uma breve amostra do conceito de um Diagrama de Entidade-Relacionamento (DER), bem como sua modelagem e aplicações, bastante utilizados em Engenharia de Software. Este é um importante recurso que permite identificar entidades e seus relacionamentos, a partir de um banco de dados conceitual, cuja ferramenta gráfica é utilizada para projetar e auxiliar no tratamento de banco de dados. | Esta pesquisa traz uma breve amostra do conceito de um Diagrama de Entidade-Relacionamento (DER), bem como sua modelagem e aplicações, bastante utilizados em Engenharia de Software. Este é um importante recurso que permite identificar entidades e seus relacionamentos, a partir de um banco de dados conceitual, cuja ferramenta gráfica é utilizada para projetar e auxiliar no tratamento de banco de dados. | ||
== Entendendo uma modelagem de dados em OOA == | |||
Antes de entender do que se trata um DER, é preciso compreender bem o que é uma Análise Orientada a Objetos (OOA) bem como a modelagem de dados. Uma OOA consiste da definição das classes (objetos) que representam o problema a ser resolvido, o modo pelo qual as classes se relacionam e interagem umas com as outras, o funcionamento interno (atributos e operações) dos objetos e os mecanismos de comunicação (mensagens) que permitem a eles trabalharem juntos. Essas relações podem ser expressas através de uma modelagem de dados, que pode ou não seguir um padrão de linguagem. Um deles é o UML (Unified Modeling Language), uma linguagem gráfica para visualização, especificação, construção e documentação de artefatos de sistemas complexos de software, iniciada pelos grandes nomes da Engenharia de Software Booch, Rumbaugh e Jacobson, hoje aprovada pela OMG (Object Management Group), organização que define padrões para aplicações orientadas a objetos. | Antes de entender do que se trata um DER, é preciso compreender bem o que é uma Análise Orientada a Objetos (OOA) bem como a modelagem de dados. Uma OOA consiste da definição das classes (objetos) que representam o problema a ser resolvido, o modo pelo qual as classes se relacionam e interagem umas com as outras, o funcionamento interno (atributos e operações) dos objetos e os mecanismos de comunicação (mensagens) que permitem a eles trabalharem juntos. Essas relações podem ser expressas através de uma modelagem de dados, que pode ou não seguir um padrão de linguagem. Um deles é o UML (Unified Modeling Language), uma linguagem gráfica para visualização, especificação, construção e documentação de artefatos de sistemas complexos de software, iniciada pelos grandes nomes da Engenharia de Software Booch, Rumbaugh e Jacobson, hoje aprovada pela OMG (Object Management Group), organização que define padrões para aplicações orientadas a objetos. | ||
| Linha 17: | Linha 19: | ||
Uma entidade é um conjunto de objetos do mundo real,ou uma classe destes, sobre os quais se deseja manter informações em um banco de dados. No diagrama é representado por um nome que designa uma classe no interior de um retângulo. | Uma entidade é um conjunto de objetos do mundo real,ou uma classe destes, sobre os quais se deseja manter informações em um banco de dados. No diagrama é representado por um nome que designa uma classe no interior de um retângulo. | ||
[ | |||
[[Arquivo:Diagramaentidade.jpeg]] | |||
São exemplos de entidades em um sistema bancário: cliente, conta, agência, banco. Já em um ambiente empresarial poderíamos ter: produto, empregado, departamento, entre outros. | São exemplos de entidades em um sistema bancário: cliente, conta, agência, banco. Já em um ambiente empresarial poderíamos ter: produto, empregado, departamento, entre outros. | ||
| Linha 23: | Linha 27: | ||
'''OBS:''' ''Uma entidade é denominada entidade fraca quando há dependência desta com outra entidade regular. É o caso de uma empresa que possui em seu banco de dados a entidade "Funcionários" bem como a entidade "Dependentes". No entanto, caso um objeto funcionário seja destituído do banco de dados, a entidade Dependentes também deverá ser, uma vez que não é de interesse mantê-la. Neste caso, utilizamos a seguinte representação:'' | '''OBS:''' ''Uma entidade é denominada entidade fraca quando há dependência desta com outra entidade regular. É o caso de uma empresa que possui em seu banco de dados a entidade "Funcionários" bem como a entidade "Dependentes". No entanto, caso um objeto funcionário seja destituído do banco de dados, a entidade Dependentes também deverá ser, uma vez que não é de interesse mantê-la. Neste caso, utilizamos a seguinte representação:'' | ||
[[Arquivo:Diagramaentidadefraca.jpeg]] | |||
== Atributos == | |||
São dados associados a cada ocorrência de uma entidade ou de um relacionamento. Ou seja, apresentam características de uma classe de objetos, no caso uma entidade, ou de um relacionamento, como veremos a seguir. Em diagramas, é representado por elipses. | São dados associados a cada ocorrência de uma entidade ou de um relacionamento. Ou seja, apresentam características de uma classe de objetos, no caso uma entidade, ou de um relacionamento, como veremos a seguir. Em diagramas, é representado por elipses. | ||
Os atributos | |||
[[Arquivo:Diagramaatributos.jpeg]] | |||
Os atributos podem ser: | |||
'''(a) Simples ou composto:''' o atributo pode ou não ser particionado; | '''(a) Simples ou composto:''' o atributo pode ou não ser particionado; | ||
| Linha 42: | Linha 51: | ||
'''(d) NULL:''' pode ser não aplicável ou desconhecido | '''(d) NULL:''' pode ser não aplicável ou desconhecido | ||
'''OBS:''' Um atributo é denominado atributo chave, quando este não pode se repetir, ou seja, seus valores são distintos para cada entidade. É o caso de CPF e RG, no âmbito empresarial, quando do cadastro de clientes, por exemplo. É representado por elipses hachuradas ou por seu nome sublinhado. | '''OBS:''' Um atributo é denominado atributo chave, quando este não pode se repetir, ou seja, seus valores são distintos para cada entidade. É o caso de CPF e RG, no âmbito empresarial, quando do cadastro de clientes, por exemplo. É representado por elipses hachuradas ou por seu nome sublinhado. | ||
[ | |||
[[Arquivo:Diagramaatributochave.jpeg]] | |||
= Relacionamentos = | = Relacionamentos = | ||
| Linha 54: | Linha 64: | ||
Na figura abaixo, temos um exemplo de como um diagrama de ocorrências (instâncias) é validado em um diagrama entidade-relacionamento: | Na figura abaixo, temos um exemplo de como um diagrama de ocorrências (instâncias) é validado em um diagrama entidade-relacionamento: | ||
[[Arquivo:Diagramaocorrencias.jpeg]] | |||
[[Arquivo:Diagramarelacionamento.jpeg]] | |||
== Relacionamentos com Atributos == | |||
Um relacionamento também pode receber um atributo. Isso ocorre quando o atributo não pertence à primeira, tampouco à segunda entidades, mas sim ao relacionamento. É o caso da imagem abaixo: | Um relacionamento também pode receber um atributo. Isso ocorre quando o atributo não pertence à primeira, tampouco à segunda entidades, mas sim ao relacionamento. É o caso da imagem abaixo: | ||
[ | [[Arquivo:Diagramarelacionamentoat.jpeg]] | ||
== Razão de Cardinalidade == | |||
Representa um número máximo ou mínimo de instâncias de relacionamentos que uma entidade pode participar. Esta pode ser 1:1 (uma entidade pode ter somente um relacionamento com outra, e vice-versa), 1:N ou mesmo M:N. | Representa um número máximo ou mínimo de instâncias de relacionamentos que uma entidade pode participar. Esta pode ser 1:1 (uma entidade pode ter somente um relacionamento com outra, e vice-versa), 1:N ou mesmo M:N. | ||
[ | [[Arquivo:DiagramaCardinalidade.jpeg]] | ||
== Participação == | |||
Especifica se a existência de uma entidade depende dela estar relacionada a outra entidade, por meio do tipo de relacionamento total ou parcial. Para entender melhor isto, temos o exemplo abaixo: um funcionário pode gerenciar um departamento, mas nem todos os funcionários gerenciam; no entanto, todo departamento é gerenciado por um funcionário. Temos, portanto, uma participação parcial e total, respectivamente, representado por uma traço simples e outro duplo. | Especifica se a existência de uma entidade depende dela estar relacionada a outra entidade, por meio do tipo de relacionamento total ou parcial. Para entender melhor isto, temos o exemplo abaixo: um funcionário pode gerenciar um departamento, mas nem todos os funcionários gerenciam; no entanto, todo departamento é gerenciado por um funcionário. Temos, portanto, uma participação parcial e total, respectivamente, representado por uma traço simples e outro duplo. | ||
[ | [[Arquivo:Diagramaparticipacao.jpeg]] | ||
== Construção de um diagrama ER == | |||
Roteiro básico para a construção de um Diagrama Entidade-Relacionamento | Roteiro básico para a construção de um Diagrama Entidade-Relacionamento | ||
| Linha 88: | Linha 108: | ||
= Exemplos = | = Exemplos = | ||
<br> | <br> | ||
'''Software DIA''' | |||
O Software DIA é uma excelente ferramente free, open source, desenvolvida para a criação de diagramas, fluxogramas e muito mais. Utiliza a linguagem UML e tem uma boa abrangência para grandes diagramas, de muitas páginas. Os exemplos abaixo foram criados utilizando-se desta ferramenta. Outros softwares são também muito utilizados, principalmente no âmbito acadêmico devido à sua didática aplicável aos conceitos de Engenharia de Software. Um deles é o Astah, anteriormente denominado JUDE, uma plataforma que utiliza a linguagem JAVA, e por isso muito acessível, possuindo também um segmento free, além de também seguir o modelo UML. | |||
[[Arquivo:yeddiagrameditor-thumb.jpg]] | |||
Imagem: Software DIA em execução | |||
[[Arquivo:04-a-customizandodescricaocasouso.jpg]] | |||
Imagem: Software ASTAH em execução | |||
= Referências = | = Referências = | ||
| Linha 98: | Linha 130: | ||
CARDOSO, Alexandre. Universidade Federal de Uberlândia. Faculdade de Engenharia Elétrica. Disponível em http://www.alexandre.eletrica.ufu.br/esof/ (Acesso em 21 de abril de 2015); | CARDOSO, Alexandre. Universidade Federal de Uberlândia. Faculdade de Engenharia Elétrica. Disponível em http://www.alexandre.eletrica.ufu.br/esof/ (Acesso em 21 de abril de 2015); | ||
Homepages: http://www.ct.ufpb.br/programas/complexidade/downloads/modelagem_er_aula_2.pdf (Acesso em 21 de abril de 2015) | |||
http://www.ime.usp.br/~jef/listabd02.pdf (Acesso em 21 de abril de 2015) | |||
<br> | <br> | ||
= Comentários = | |||
<br> | |||
* Apresentou apenas um modelo de DER | |||
Edição atual tal como às 02h03min de 30 de abril de 2015
Conceito
Introdução
Esta pesquisa traz uma breve amostra do conceito de um Diagrama de Entidade-Relacionamento (DER), bem como sua modelagem e aplicações, bastante utilizados em Engenharia de Software. Este é um importante recurso que permite identificar entidades e seus relacionamentos, a partir de um banco de dados conceitual, cuja ferramenta gráfica é utilizada para projetar e auxiliar no tratamento de banco de dados.
Entendendo uma modelagem de dados em OOA
Antes de entender do que se trata um DER, é preciso compreender bem o que é uma Análise Orientada a Objetos (OOA) bem como a modelagem de dados. Uma OOA consiste da definição das classes (objetos) que representam o problema a ser resolvido, o modo pelo qual as classes se relacionam e interagem umas com as outras, o funcionamento interno (atributos e operações) dos objetos e os mecanismos de comunicação (mensagens) que permitem a eles trabalharem juntos. Essas relações podem ser expressas através de uma modelagem de dados, que pode ou não seguir um padrão de linguagem. Um deles é o UML (Unified Modeling Language), uma linguagem gráfica para visualização, especificação, construção e documentação de artefatos de sistemas complexos de software, iniciada pelos grandes nomes da Engenharia de Software Booch, Rumbaugh e Jacobson, hoje aprovada pela OMG (Object Management Group), organização que define padrões para aplicações orientadas a objetos.
Deste modo, um DER é um diagrama de blocos que demonstra todas as relações entre as entidades, suas especializações, seus atributos e auto-relações.
Entidades
Uma entidade é um conjunto de objetos do mundo real,ou uma classe destes, sobre os quais se deseja manter informações em um banco de dados. No diagrama é representado por um nome que designa uma classe no interior de um retângulo.
São exemplos de entidades em um sistema bancário: cliente, conta, agência, banco. Já em um ambiente empresarial poderíamos ter: produto, empregado, departamento, entre outros.
OBS: Uma entidade é denominada entidade fraca quando há dependência desta com outra entidade regular. É o caso de uma empresa que possui em seu banco de dados a entidade "Funcionários" bem como a entidade "Dependentes". No entanto, caso um objeto funcionário seja destituído do banco de dados, a entidade Dependentes também deverá ser, uma vez que não é de interesse mantê-la. Neste caso, utilizamos a seguinte representação:
Atributos
São dados associados a cada ocorrência de uma entidade ou de um relacionamento. Ou seja, apresentam características de uma classe de objetos, no caso uma entidade, ou de um relacionamento, como veremos a seguir. Em diagramas, é representado por elipses.
Os atributos podem ser:
(a) Simples ou composto: o atributo pode ou não ser particionado;
(b) Único ou multivalorado: o atributo pode assumir um único valor ou muitos deles;
(c) Armazenado ou Derivado: o atributo pode ser fixo ou dependente de outro;
(d) NULL: pode ser não aplicável ou desconhecido
OBS: Um atributo é denominado atributo chave, quando este não pode se repetir, ou seja, seus valores são distintos para cada entidade. É o caso de CPF e RG, no âmbito empresarial, quando do cadastro de clientes, por exemplo. É representado por elipses hachuradas ou por seu nome sublinhado.
Relacionamentos
Um relacionamento é uma associação entre entidades, representando como elas se relacionam. Em diagramas, aparece como losangos. Na figura abaixo, temos um exemplo de como um diagrama de ocorrências (instâncias) é validado em um diagrama entidade-relacionamento:
Relacionamentos com Atributos
Um relacionamento também pode receber um atributo. Isso ocorre quando o atributo não pertence à primeira, tampouco à segunda entidades, mas sim ao relacionamento. É o caso da imagem abaixo:
Razão de Cardinalidade
Representa um número máximo ou mínimo de instâncias de relacionamentos que uma entidade pode participar. Esta pode ser 1:1 (uma entidade pode ter somente um relacionamento com outra, e vice-versa), 1:N ou mesmo M:N.
Participação
Especifica se a existência de uma entidade depende dela estar relacionada a outra entidade, por meio do tipo de relacionamento total ou parcial. Para entender melhor isto, temos o exemplo abaixo: um funcionário pode gerenciar um departamento, mas nem todos os funcionários gerenciam; no entanto, todo departamento é gerenciado por um funcionário. Temos, portanto, uma participação parcial e total, respectivamente, representado por uma traço simples e outro duplo.
Construção de um diagrama ER
Roteiro básico para a construção de um Diagrama Entidade-Relacionamento
(1) Identificar Entidades;
(2) Identificar relacionamentos;
(3) Identificar Atributos;
(4) Identificar cardinalidades.
Exemplos
Software DIA
O Software DIA é uma excelente ferramente free, open source, desenvolvida para a criação de diagramas, fluxogramas e muito mais. Utiliza a linguagem UML e tem uma boa abrangência para grandes diagramas, de muitas páginas. Os exemplos abaixo foram criados utilizando-se desta ferramenta. Outros softwares são também muito utilizados, principalmente no âmbito acadêmico devido à sua didática aplicável aos conceitos de Engenharia de Software. Um deles é o Astah, anteriormente denominado JUDE, uma plataforma que utiliza a linguagem JAVA, e por isso muito acessível, possuindo também um segmento free, além de também seguir o modelo UML.
Imagem: Software DIA em execução
Imagem: Software ASTAH em execução
Referências
FALEIRO, Adail Tiago Lima. Modelo de Entidade de Relacionamento, UPIS, 2011. Disponível em http://www.devmedia.com.br/modelo-entidade-relacionamento-mer/19821 (Acesso em 21 de abril de 2015);
PRESSMAN, Reger S., Engenharia de Software, 1995;
SOMMERVILLE, Ian. Engenharia de Software, 2003;
CARDOSO, Alexandre. Universidade Federal de Uberlândia. Faculdade de Engenharia Elétrica. Disponível em http://www.alexandre.eletrica.ufu.br/esof/ (Acesso em 21 de abril de 2015);
Homepages: http://www.ct.ufpb.br/programas/complexidade/downloads/modelagem_er_aula_2.pdf (Acesso em 21 de abril de 2015)
http://www.ime.usp.br/~jef/listabd02.pdf (Acesso em 21 de abril de 2015)
Comentários
- Apresentou apenas um modelo de DER









