UNIVERSIDADE DO CONTESTADO - UnC
                 CURSO DE SISTEMAS DE INFORMAÇÃO -


                           DAIANA PAULA DE AVILA

                       DANNY LINO MOREIRA PENICHE

                       DOUGLAS ADRIANO BUSNELLO

                               ELIEZER POMPEO

                               TIAGO PELLIZZARO




                      MODELOS DE BASE DE DADOS



1ª Geração

      Hierárquico;
      Em rede.

2ª Geração

      Modelos orientados a objetos
      Extensões ao modelo relacional




MODELO HIERÁRQUICO




Exemplo:

Um departamento tem muitos empregados e cada um tem um supervisor e por sua
vez depende de outro empregado. Cada departamento tem muitos projetos no qual
trabalham muitos empregados.
Estruturas básicas:

   1. Registros (coleção de valores de campos que fornece informação sobre uma
       entidade de um relacionamento)
   2. Relacionamentos (pai-filho: 1-M) O acesso a qualquer um dos registros deve
       ser feito a partir da raiz e correndo para cada um dos nós da árvore da
       esquerda para a direita e de cima para baixo.

Restrições e dificuldades:

   1. Apenas o registro pai não se relaciona com outro registro pai;
   2. Se 1 registro filho tem mais do que 1 registro pai, então deve ser duplicado
       para cada um dos pais;
   3. Dificuldades de representação de relacionamentos M:M.

Restrições e dificuldades:

   1. Redundância de dados;
   2. Falta de dependência lógica;
   3. Utilização e programação muito exigente;
   4. Dificuldade de portabilidade.

Um dos exemplos de um SGBD concebido segundo o modelo hierárquico , na década
de 60, é o MIS (Management Information system) da IBM.




MODELO EM REDE

Exemplo:
Modelo em Rede tem por base o modelo hierárquico;
      Um filho pode ter mais do que um pai;
      Acesso aos dados de forma semelhante ao modelo hierárquico;
      Facilita a representação de relacionamentos de M:M.




      O acesso aos dados é mais flexível do que no modelo hierárquico;
      Sistema ainda complexo e exige um grande conhecimento dos programadores;
      Não existe verdadeira dependência dados - aplicações.

MODELO RELACIONAL

      Apresentado por Edgar Codd, em 1970;
      A estrutura básica é a tabela;
      Uma BD relacional é formada por um conjunto de tabelas que se relacionam
      através de atributos comuns.

Sistemas de Base de Dados:




Exemplo de Base de dados relacionais:

      SQL/OS da IBM;
      SGBD Oracle;
      DB2 e Informix (IBM);
      Oracle e Rdb da Oracle;
SQL server e Access da Microsoft;
       Grande sucesso;
       Uso da linguagem SQL (structuredQueryLaguage);
       Exigente ao nível de hardware e SO – hoje mais ultrapassado;
       Ambiente amigável.




DIAGRAMA DE ENTIDADE – RELACIONAMENTO




O diagrama entidade-relacionamento expressa graficamente a estrutura global de um
banco de dados. Segundo [SILBERSCHATZ]:




"O modelo de dados entidade-relacionamento baseia-se na percepção de um universo
constituído   por   um   grupo    básico   de    objetos   chamados    entidades e
por relacionamentos entre esses objetos. Ele foi desenvolvido a fim de facilitar o
projeto de bancos de dados permitindo a especificação de um esquema de
empreendimento. Tal esquema representa a estrutura lógica global do banco de
dados."




Exemplo:
Obs. Uma particularidade no modelo que foge um pouco da especificação do sistema,
é que não há nenhuma referência aos documentos fiscais exigidos (nota e cupom). A
explicação é que cada empresa trabalha com um formulário personalizado e pelo fato
de que os produtos podem ser regidos por legislações diferentes que alteram a forma
de calcular impostos. Devido a essa complexidade e para deixar o sistema mais
genérico, decidiu-se por retirar essa funcionalidade do escopo deste trabalho.




MODELO ORIENTADO A OBJETOS




       Tiveram origem nas linguagens de programação orientadas a objetos.
       Extensão ao modelo relacional.
       Um objeto é uma representação conceptual de uma entidade do mundo real –
       ex: factura;
       Objetos contem atributos que o descrevem – Ex: numero, data, valor total;
       E o seu comportamento, ou seja, as ações que lhe estão associadas - Ex:
       imprimir, criar;
       Um objeto contém quer a estrutura de dados quer as ações (métodos);
       Um atributo pode ser uma referencia a outro objeto;
       Uma classe é uma coleção de objetos que partilham a estrutura e o
       comportamento, permitindo uma definição única;
       As classes são organizadas hierarquicamente numa filosofia de herança de
       atributos e métodos.
Fazer diagrama OO

Categoria produtos- diferentes produtos.




CONCEITOS DOS MODELOS DE DADOS



MODELO HIERÁRQUICO

O modelo hierárquico foi o primeiro a ser reconhecido como um modelo de dados. Seu
desenvolvimento somente foi possível devido à consolidação dos discos de
armazenamento endereçáveis, pois esses discos possibilitaram a exploração de sua
estrutura de endereçamento físico para viabilizar a representação hierárquica das
informações. Nesse modelo de dados, os dados são estruturados em hierarquias ou
árvores. Os nós das hierarquias contêm ocorrências de registros, onde cada registro é
uma coleção de campos (atributos), cada um contendo apenas uma informação. O
registro da hierarquia que precede a outros é o registro-pai, os outros são chamados
de registros-filhos.

Uma ligação é uma associação entre dois registros. O relacionamento entre um
registro-pai e vários registros-filhos possui cardinalidade 1:N. Os dados organizados
segundo este modelo podem ser acessados segundo uma seqüência hierárquica com
uma navegação do topo para as folhas e da esquerda para a direita. Um registro pode
estar associado a vários registros diferentes, desde que seja replicado. A replicação
possui duas grandes desvantagens: pode causar inconsistência de dados quando
houver atualização e o desperdício de espaço é inevitável. O sistema comercial mais
divulgado no modelo hierárquico foi o Information Management System da IBM
Corp(IMS) para o ambiente MV(como o DB2). Grande parte das restrições e
consistências de dados estava contida dentro dos programas escritos para as
aplicações. Era necessário escrever programas na ordem para acessar o banco de
dados. Um diagrama de estrutura de árvore descreve o esquema de um banco de
dados hierárquico. Tal diagrama consiste em dois componentes básicos: Caixas, as
quais correspondem aos tipos de registros e Linhas, que correspondem às ligações
entre os tipos de registros. Como exemplo do modelo hierárquico,

Outra definição possível seria a de uma rede em que cada conjunto de dados pode ter
no Maximo um conjunto de dados mestre (“owner”, no sentido do DBTG), sem ciclos.
Essa característica leva os modelos hierárquicos a declararem as ligações
simplesmente especificando-se para cada conjunto de dados qual e o seu conjunto
mestre. Com isso pode-se construir a arvore em toda a sua estrutura.




INTEGRIDADE DOS DADOS HIRÁRQUICOS:




O modelo hierárquico inclui suporte automático para determinadas formas de
integridade referencial mediante a seguir regra:

“nenhum filho tem permissão de existir sem um pai”.

Assim sendo, se um pai é eliminado, o sistema eliminara toda a árvore nele enraizada,
da mesma maneira que nenhum filho poderá ser inserido sem a existência do pai.




MODELO RELACIONAL



O modelo relacional foi criado por Codd, em 1970, e tem como finalidade representar
os dados como uma coleção de relações, onde cada relação é representada por uma
tabela, ou seja. Quando uma relação é pensada como uma tabela de valores, cada
linha nesta tabela representa uma coleção de dados relacionados. Estes valores
podem ser interpretados como fatos, descrevendo uma instância de uma entidade ou
relacionamento.

     O nome da tabela e de suas colunas é utilizado para facilitar a interpretação dos
valores armazenados em cada linha da tabela.

Na terminologia do modelo relacional, cada tabela é chamada de relação, uma linha
de uma tabela é chamada de tupla, o nome de cada coluna é chamado de atributo, o
tipo de dado que descreve cada coluna é chamado de domínio.

     O domínio é um conjunto de valores que possuem determinadas propriedades
em comum. O domínio engloba dados atômicos ou simples, porque não podem sofrer
mais nenhuma decomposição.
Uma relação define-se sobre certo número de domínios e engloba duas
componentes: o cabeçalho e o corpo. O cabeçalho é um conjunto de atributos em que
cada atributo corresponde a um domínio. O corpo corresponde a um conjunto de
tuplas. Cada tupla é um conjunto de valores: um por cada atributo constante do
cabeçalho.

     Cada linha da tabela representa uma proposição sobre determinada entidade.
Enquanto que as linhas representam os valores atuais dos atributos, os domínios
simbolizam todos os valores possíveis. As linhas variam com as circunstâncias
enquanto que os domínios e os atributos são constantes.

Propriedades das relações

Uma relação caracteriza-se por:
• Ter um nome único dentro do mesmo diagrama de modelo de dados relacional;
• Ter de zero a n linhas, cuja ordenação é indiferente dado que não são identificadas
pela sua posição. Uma relação sem nenhuma linha diz-se vazia.
• Ser composta por um ou mais atributos, onde a ordem não é importante, pois se
identificam pelo nome e não pela sua posição;
• Cada um dos atributos contém valores retirados de um domínio particular, o que quer
dizer que num mesmo atributo os dados são obrigatoriamente todos do mesmo tipo;
• Numa mesma relação não podem existir dois atributos com o mesmo nome;
• Cada relação tem que ter uma chave primária. Uma chave primária é um atributo, ou
combinação de atributos, cujos valores proporcionam uma identificação unívoca das
tuplas duma relação, ou seja, certo valor para a chave só pode aparecer uma única
vez em cada relação. Significa ainda que as tuplas duma relação são todas diferentes
entre si e não são permitidas linhas duplicadas,
• Os dados, ou valores, são sempre de tipo atômico.




MODELO EM REDE



Busca seguir um padrão no seu desenvolvimento formado pela comissão COBOL da
Codasyl. Ficou conhecido por DBTG (“Data Base Task Group”). O problema de se
fazer um padrão é que muita gente vai posteriormente atrás dele, conseqüentemente
assim surgiram GBDs comerciais que segue o modelo DBTG.
Segundo Date (1990), a estrutura de dados em Rede pode ser considerada uma forma
ampliada da estrutura hierárquica de dados, onde a principal diferença é que na
estrutura hierárquica, um registro-filho tem exatamente um pai, enquanto que na
estrutura de rede um registro-filho pode ter qualquer quantidade de pais, inclusive zero
(DATE, 1990).

Para entendermos melhor essa diferença, devemos observar que o banco de dados
em rede está composto por dois conjuntos, um é o de ligações ou ocorrências
múltiplas dos vários tipos de registro e outro, um conjunto de ocorrências múltiplas
para cada um dos vários tipos de ligação, cada tipo de ligação envolvendo dois tipos
de registros, um pai e outro filho.

Cada ocorrência de uma ligação é composta por uma única ocorrência do tipo de
registro pai, disposto como um conjunto ordenado de múltiplas ocorrências de um
registro filho.

Um banco de dados de rede é uma base de dados constituída por uma coleção ou um
conjunto de registos, que são ligados entre si através de ligações numa
rede. O registo é semelhante a uma entidade, tais como aqueles utilizados no modelo
relacional.



Um registro é uma coleção ou conjunto de campos (atributos), onde cada um contendo
um único valor armazenado, apenas a ligação é a associação entre dois registros,
para que possamos vê-lo como estritamente binária.

Uma estrutura de rede do banco de dados, por vezes chamado estrutura duplex,
abrange mais do que a estrutura de árvore, porque um nó filho na estrutura de
rede pode ter mais de um nó pai. Em outras palavras, a restrição de que, em uma
árvore hierarquia cada criança pode ter apenas um dos pais , torna-se menos grave.

Assim, a estrutura de árvore pode ser considerada como um caso especial
da estrutura de rede.

Conjuntos de dados:

No modelo em rede (MRd), um conjunto de dados recebe o nome de “Record Type”. O
padrão DBTG especificou algumas modalidades de armazenamento para os “Record
Type” (Record = Registro). Essa preocupação com o modelo interno permeou o MRd
prejudicando o do ponto de vista de generalidade e de nível de abstração. A
modalidade de uso de uma chave é a utilização de rotinas de “Hashing”
(espalhamento, randomização). Até hoje os GBDs do MRd continuam com problemas
para implementarem vários itens de busca, pois com “Hashing” direto só se pode
especificar um único item de busca. Para contornar esse problema, o DBTG fez um
truque de introduzir uma ligação com o sistema. Ligações Diagramas de redes –
Baseado em sistema de arquivo, não em SGBD.




INTEGRIDADE DOS DADOS EM REDE:




O modelo em rede inclui suporte para determinadas formas de integridade referencial
por meio de sua estrutura primária dos dados no momento de ligação. Podem ser
determinadas regras de inserção obrigando a colocação de um registro pai antes do
entrada de um registro filho na primeira ocorrência.




MODELO ORIENTADO A OBJETO



Recentemente, os bancos de dados orientados a objetos são uma possível evolução
ao sistema relacional, com o surgimento de novas necessidades computacionais cada
vez maiores, por exemplo, com desenho assistido por computador (CAD) ou bancos
de dados multimídia, porém este modelo ainda não é muito encontrado, devido
principalmente a sua maior complexidade de implementação e a falta de padronização
nas linguagens de consulta (KORTH;SILBERSCHATZ, 1994). Segundo Fowler (2006),
os bancos de dados orientados a objetos deverão trazer mais produtividade, devido
principalmente ao fato da POO não necessitar de um processo de mapeamento
objeto-relacional (FOWLER, 2006).




Como se pode notar existem algumas semelhanças nos conceitos de associações
entre objetos com a modelagem Entidade - Relacionamentos para bancos de dados.

Page-Jones (1997) afirma que uma abordagem orientada a objetos permite uma
melhor convergência entre as análises procedural e de dados, citando que esses dois
aspectos da análise sempre apresentaram certo atrito entre eles, representado
respectivamente pelos diagramas de Fluxo de Dados e de Entidades-Relacionamentos
(PAGE-JONES, 1997).

Segundo Rumbaugh et. al. (2000), a forma tradicional de analisar um problema,
quebrando-o em problemas menores, dificulta a manutenção dos sistemas devida
principalmente a mudanças nos requisitos e ao crescimento certo do sistema.

A partir da evolução das técnicas de análise e representação de sistemas complexos
de software em diagramas, após a introdução da abordagem ER por Peter Chen
(CHEN, 1990), aplicadas à metodologia de orientação a objetos, Rumbaugh et. al.
(2000) apresenta a linguagem UML (Linguagem de Modelagem Unificada). Esta é uma
poderosa notação diagramática destinada a visualizar, especificar, construir e
documentar sistemas de qualquer espécie, não obrigatoriamente software.

A UML possui os seguintes tipos de diagramas (RUMBAUGH et. al., 2000):

Diagrama de classes

Diagrama de objetos

Diagrama de casos de uso

Diagrama de seqüências

Diagrama de colaborações

Diagrama de gráficos de estados

Diagrama de atividades

Diagrama de componentes

Diagrama de implantação




Por demonstrar claramente ser uma evolução direta da modelagem ER, e que
possivelmente poderá servir de apoio ao presente trabalho, quando houver
necessidade de apresentar classes e suas associações, neste tópico será abordado
resumidamente apenas o diagrama de classes, conforme apresentado o exemplo da
Figura 2.1.
[..] Enquanto os diagramas E-R clássicos têm seu foco apenas nos dados, os
diagramas de classe vão um pouco além, permitindo ainda a modelagem de
comportamentos. [..] (RUMBAUGH et. al., 2000, pág 109)




                                       Empresa
                                      cnpj: Texto




                                       1
              1..*                                             1..*
            Departamento                                  Escritório
            nome: Texto                                endereço: Texto
          fazerCafezinho()                           expediente: Horario



     Figura Error! No text of specified style in document..1 - Exemplo de
associação em diagrama de classes UML.

Como pode ser notado na Figura 2.1, na notação básica da UML as classes são
representadas como retângulos subdivido horizontalmente, onde, de cima para baixo,
são descritos o nome da classe, os atributos e seus métodos.

Os seus relacionamentos com outras tabelas são representados por linhas que fazem
as devidas interligações, juntamente com a informação sobre o tipo deste
relacionamento. Conforme o exemplo, definido por um losango preenchido em preto,
significa uma associação do tipo agregação. A notação “1” junto a classe Empresa e a
notação “1..*” junto as outras classes Departamento e Escritório, descrevem a
multiplicidade do relacionamento, isto é, indicam que uma empresa possui um ou
muitos Departamentos, e um ou muitos Escritórios.

Outro tipo de relacionamento entre objetos é a herança, cuja notação da UML é
representada por um triângulo presente sobre a linha do respectivo relacionamento, e
que aponta para a superclasse, conforme exemplo demonstrado na Figura 2.2, onde
as classes Estudante e Professor derivam da classe Pessoa.
Pessoa
                                    nome: Texto
                                       falar()
                                       comer()




               Estudante                                 Professor
           Matricula: Inteiro                          salario: Valor
               lerLivro()                              turno: Horario
                                                         darAula()


 Figura Error! No text of specified style in document..2 - Exemplo de herança em
diagrama de classes UML.

Modelos de base de dados

  • 1.
    UNIVERSIDADE DO CONTESTADO- UnC CURSO DE SISTEMAS DE INFORMAÇÃO - DAIANA PAULA DE AVILA DANNY LINO MOREIRA PENICHE DOUGLAS ADRIANO BUSNELLO ELIEZER POMPEO TIAGO PELLIZZARO MODELOS DE BASE DE DADOS 1ª Geração Hierárquico; Em rede. 2ª Geração Modelos orientados a objetos Extensões ao modelo relacional MODELO HIERÁRQUICO Exemplo: Um departamento tem muitos empregados e cada um tem um supervisor e por sua vez depende de outro empregado. Cada departamento tem muitos projetos no qual trabalham muitos empregados.
  • 2.
    Estruturas básicas: 1. Registros (coleção de valores de campos que fornece informação sobre uma entidade de um relacionamento) 2. Relacionamentos (pai-filho: 1-M) O acesso a qualquer um dos registros deve ser feito a partir da raiz e correndo para cada um dos nós da árvore da esquerda para a direita e de cima para baixo. Restrições e dificuldades: 1. Apenas o registro pai não se relaciona com outro registro pai; 2. Se 1 registro filho tem mais do que 1 registro pai, então deve ser duplicado para cada um dos pais; 3. Dificuldades de representação de relacionamentos M:M. Restrições e dificuldades: 1. Redundância de dados; 2. Falta de dependência lógica; 3. Utilização e programação muito exigente; 4. Dificuldade de portabilidade. Um dos exemplos de um SGBD concebido segundo o modelo hierárquico , na década de 60, é o MIS (Management Information system) da IBM. MODELO EM REDE Exemplo:
  • 3.
    Modelo em Redetem por base o modelo hierárquico; Um filho pode ter mais do que um pai; Acesso aos dados de forma semelhante ao modelo hierárquico; Facilita a representação de relacionamentos de M:M. O acesso aos dados é mais flexível do que no modelo hierárquico; Sistema ainda complexo e exige um grande conhecimento dos programadores; Não existe verdadeira dependência dados - aplicações. MODELO RELACIONAL Apresentado por Edgar Codd, em 1970; A estrutura básica é a tabela; Uma BD relacional é formada por um conjunto de tabelas que se relacionam através de atributos comuns. Sistemas de Base de Dados: Exemplo de Base de dados relacionais: SQL/OS da IBM; SGBD Oracle; DB2 e Informix (IBM); Oracle e Rdb da Oracle;
  • 4.
    SQL server eAccess da Microsoft; Grande sucesso; Uso da linguagem SQL (structuredQueryLaguage); Exigente ao nível de hardware e SO – hoje mais ultrapassado; Ambiente amigável. DIAGRAMA DE ENTIDADE – RELACIONAMENTO O diagrama entidade-relacionamento expressa graficamente a estrutura global de um banco de dados. Segundo [SILBERSCHATZ]: "O modelo de dados entidade-relacionamento baseia-se na percepção de um universo constituído por um grupo básico de objetos chamados entidades e por relacionamentos entre esses objetos. Ele foi desenvolvido a fim de facilitar o projeto de bancos de dados permitindo a especificação de um esquema de empreendimento. Tal esquema representa a estrutura lógica global do banco de dados." Exemplo:
  • 5.
    Obs. Uma particularidadeno modelo que foge um pouco da especificação do sistema, é que não há nenhuma referência aos documentos fiscais exigidos (nota e cupom). A explicação é que cada empresa trabalha com um formulário personalizado e pelo fato de que os produtos podem ser regidos por legislações diferentes que alteram a forma de calcular impostos. Devido a essa complexidade e para deixar o sistema mais genérico, decidiu-se por retirar essa funcionalidade do escopo deste trabalho. MODELO ORIENTADO A OBJETOS Tiveram origem nas linguagens de programação orientadas a objetos. Extensão ao modelo relacional. Um objeto é uma representação conceptual de uma entidade do mundo real – ex: factura; Objetos contem atributos que o descrevem – Ex: numero, data, valor total; E o seu comportamento, ou seja, as ações que lhe estão associadas - Ex: imprimir, criar; Um objeto contém quer a estrutura de dados quer as ações (métodos); Um atributo pode ser uma referencia a outro objeto; Uma classe é uma coleção de objetos que partilham a estrutura e o comportamento, permitindo uma definição única; As classes são organizadas hierarquicamente numa filosofia de herança de atributos e métodos.
  • 6.
    Fazer diagrama OO Categoriaprodutos- diferentes produtos. CONCEITOS DOS MODELOS DE DADOS MODELO HIERÁRQUICO O modelo hierárquico foi o primeiro a ser reconhecido como um modelo de dados. Seu desenvolvimento somente foi possível devido à consolidação dos discos de armazenamento endereçáveis, pois esses discos possibilitaram a exploração de sua estrutura de endereçamento físico para viabilizar a representação hierárquica das informações. Nesse modelo de dados, os dados são estruturados em hierarquias ou árvores. Os nós das hierarquias contêm ocorrências de registros, onde cada registro é uma coleção de campos (atributos), cada um contendo apenas uma informação. O registro da hierarquia que precede a outros é o registro-pai, os outros são chamados de registros-filhos. Uma ligação é uma associação entre dois registros. O relacionamento entre um registro-pai e vários registros-filhos possui cardinalidade 1:N. Os dados organizados segundo este modelo podem ser acessados segundo uma seqüência hierárquica com uma navegação do topo para as folhas e da esquerda para a direita. Um registro pode estar associado a vários registros diferentes, desde que seja replicado. A replicação possui duas grandes desvantagens: pode causar inconsistência de dados quando houver atualização e o desperdício de espaço é inevitável. O sistema comercial mais divulgado no modelo hierárquico foi o Information Management System da IBM Corp(IMS) para o ambiente MV(como o DB2). Grande parte das restrições e consistências de dados estava contida dentro dos programas escritos para as aplicações. Era necessário escrever programas na ordem para acessar o banco de dados. Um diagrama de estrutura de árvore descreve o esquema de um banco de dados hierárquico. Tal diagrama consiste em dois componentes básicos: Caixas, as quais correspondem aos tipos de registros e Linhas, que correspondem às ligações entre os tipos de registros. Como exemplo do modelo hierárquico, Outra definição possível seria a de uma rede em que cada conjunto de dados pode ter no Maximo um conjunto de dados mestre (“owner”, no sentido do DBTG), sem ciclos.
  • 7.
    Essa característica levaos modelos hierárquicos a declararem as ligações simplesmente especificando-se para cada conjunto de dados qual e o seu conjunto mestre. Com isso pode-se construir a arvore em toda a sua estrutura. INTEGRIDADE DOS DADOS HIRÁRQUICOS: O modelo hierárquico inclui suporte automático para determinadas formas de integridade referencial mediante a seguir regra: “nenhum filho tem permissão de existir sem um pai”. Assim sendo, se um pai é eliminado, o sistema eliminara toda a árvore nele enraizada, da mesma maneira que nenhum filho poderá ser inserido sem a existência do pai. MODELO RELACIONAL O modelo relacional foi criado por Codd, em 1970, e tem como finalidade representar os dados como uma coleção de relações, onde cada relação é representada por uma tabela, ou seja. Quando uma relação é pensada como uma tabela de valores, cada linha nesta tabela representa uma coleção de dados relacionados. Estes valores podem ser interpretados como fatos, descrevendo uma instância de uma entidade ou relacionamento. O nome da tabela e de suas colunas é utilizado para facilitar a interpretação dos valores armazenados em cada linha da tabela. Na terminologia do modelo relacional, cada tabela é chamada de relação, uma linha de uma tabela é chamada de tupla, o nome de cada coluna é chamado de atributo, o tipo de dado que descreve cada coluna é chamado de domínio. O domínio é um conjunto de valores que possuem determinadas propriedades em comum. O domínio engloba dados atômicos ou simples, porque não podem sofrer mais nenhuma decomposição.
  • 8.
    Uma relação define-sesobre certo número de domínios e engloba duas componentes: o cabeçalho e o corpo. O cabeçalho é um conjunto de atributos em que cada atributo corresponde a um domínio. O corpo corresponde a um conjunto de tuplas. Cada tupla é um conjunto de valores: um por cada atributo constante do cabeçalho. Cada linha da tabela representa uma proposição sobre determinada entidade. Enquanto que as linhas representam os valores atuais dos atributos, os domínios simbolizam todos os valores possíveis. As linhas variam com as circunstâncias enquanto que os domínios e os atributos são constantes. Propriedades das relações Uma relação caracteriza-se por: • Ter um nome único dentro do mesmo diagrama de modelo de dados relacional; • Ter de zero a n linhas, cuja ordenação é indiferente dado que não são identificadas pela sua posição. Uma relação sem nenhuma linha diz-se vazia. • Ser composta por um ou mais atributos, onde a ordem não é importante, pois se identificam pelo nome e não pela sua posição; • Cada um dos atributos contém valores retirados de um domínio particular, o que quer dizer que num mesmo atributo os dados são obrigatoriamente todos do mesmo tipo; • Numa mesma relação não podem existir dois atributos com o mesmo nome; • Cada relação tem que ter uma chave primária. Uma chave primária é um atributo, ou combinação de atributos, cujos valores proporcionam uma identificação unívoca das tuplas duma relação, ou seja, certo valor para a chave só pode aparecer uma única vez em cada relação. Significa ainda que as tuplas duma relação são todas diferentes entre si e não são permitidas linhas duplicadas, • Os dados, ou valores, são sempre de tipo atômico. MODELO EM REDE Busca seguir um padrão no seu desenvolvimento formado pela comissão COBOL da Codasyl. Ficou conhecido por DBTG (“Data Base Task Group”). O problema de se fazer um padrão é que muita gente vai posteriormente atrás dele, conseqüentemente assim surgiram GBDs comerciais que segue o modelo DBTG.
  • 9.
    Segundo Date (1990),a estrutura de dados em Rede pode ser considerada uma forma ampliada da estrutura hierárquica de dados, onde a principal diferença é que na estrutura hierárquica, um registro-filho tem exatamente um pai, enquanto que na estrutura de rede um registro-filho pode ter qualquer quantidade de pais, inclusive zero (DATE, 1990). Para entendermos melhor essa diferença, devemos observar que o banco de dados em rede está composto por dois conjuntos, um é o de ligações ou ocorrências múltiplas dos vários tipos de registro e outro, um conjunto de ocorrências múltiplas para cada um dos vários tipos de ligação, cada tipo de ligação envolvendo dois tipos de registros, um pai e outro filho. Cada ocorrência de uma ligação é composta por uma única ocorrência do tipo de registro pai, disposto como um conjunto ordenado de múltiplas ocorrências de um registro filho. Um banco de dados de rede é uma base de dados constituída por uma coleção ou um conjunto de registos, que são ligados entre si através de ligações numa rede. O registo é semelhante a uma entidade, tais como aqueles utilizados no modelo relacional. Um registro é uma coleção ou conjunto de campos (atributos), onde cada um contendo um único valor armazenado, apenas a ligação é a associação entre dois registros, para que possamos vê-lo como estritamente binária. Uma estrutura de rede do banco de dados, por vezes chamado estrutura duplex, abrange mais do que a estrutura de árvore, porque um nó filho na estrutura de rede pode ter mais de um nó pai. Em outras palavras, a restrição de que, em uma árvore hierarquia cada criança pode ter apenas um dos pais , torna-se menos grave. Assim, a estrutura de árvore pode ser considerada como um caso especial da estrutura de rede. Conjuntos de dados: No modelo em rede (MRd), um conjunto de dados recebe o nome de “Record Type”. O padrão DBTG especificou algumas modalidades de armazenamento para os “Record Type” (Record = Registro). Essa preocupação com o modelo interno permeou o MRd prejudicando o do ponto de vista de generalidade e de nível de abstração. A modalidade de uso de uma chave é a utilização de rotinas de “Hashing”
  • 10.
    (espalhamento, randomização). Atéhoje os GBDs do MRd continuam com problemas para implementarem vários itens de busca, pois com “Hashing” direto só se pode especificar um único item de busca. Para contornar esse problema, o DBTG fez um truque de introduzir uma ligação com o sistema. Ligações Diagramas de redes – Baseado em sistema de arquivo, não em SGBD. INTEGRIDADE DOS DADOS EM REDE: O modelo em rede inclui suporte para determinadas formas de integridade referencial por meio de sua estrutura primária dos dados no momento de ligação. Podem ser determinadas regras de inserção obrigando a colocação de um registro pai antes do entrada de um registro filho na primeira ocorrência. MODELO ORIENTADO A OBJETO Recentemente, os bancos de dados orientados a objetos são uma possível evolução ao sistema relacional, com o surgimento de novas necessidades computacionais cada vez maiores, por exemplo, com desenho assistido por computador (CAD) ou bancos de dados multimídia, porém este modelo ainda não é muito encontrado, devido principalmente a sua maior complexidade de implementação e a falta de padronização nas linguagens de consulta (KORTH;SILBERSCHATZ, 1994). Segundo Fowler (2006), os bancos de dados orientados a objetos deverão trazer mais produtividade, devido principalmente ao fato da POO não necessitar de um processo de mapeamento objeto-relacional (FOWLER, 2006). Como se pode notar existem algumas semelhanças nos conceitos de associações entre objetos com a modelagem Entidade - Relacionamentos para bancos de dados. Page-Jones (1997) afirma que uma abordagem orientada a objetos permite uma melhor convergência entre as análises procedural e de dados, citando que esses dois
  • 11.
    aspectos da análisesempre apresentaram certo atrito entre eles, representado respectivamente pelos diagramas de Fluxo de Dados e de Entidades-Relacionamentos (PAGE-JONES, 1997). Segundo Rumbaugh et. al. (2000), a forma tradicional de analisar um problema, quebrando-o em problemas menores, dificulta a manutenção dos sistemas devida principalmente a mudanças nos requisitos e ao crescimento certo do sistema. A partir da evolução das técnicas de análise e representação de sistemas complexos de software em diagramas, após a introdução da abordagem ER por Peter Chen (CHEN, 1990), aplicadas à metodologia de orientação a objetos, Rumbaugh et. al. (2000) apresenta a linguagem UML (Linguagem de Modelagem Unificada). Esta é uma poderosa notação diagramática destinada a visualizar, especificar, construir e documentar sistemas de qualquer espécie, não obrigatoriamente software. A UML possui os seguintes tipos de diagramas (RUMBAUGH et. al., 2000): Diagrama de classes Diagrama de objetos Diagrama de casos de uso Diagrama de seqüências Diagrama de colaborações Diagrama de gráficos de estados Diagrama de atividades Diagrama de componentes Diagrama de implantação Por demonstrar claramente ser uma evolução direta da modelagem ER, e que possivelmente poderá servir de apoio ao presente trabalho, quando houver necessidade de apresentar classes e suas associações, neste tópico será abordado resumidamente apenas o diagrama de classes, conforme apresentado o exemplo da Figura 2.1.
  • 12.
    [..] Enquanto osdiagramas E-R clássicos têm seu foco apenas nos dados, os diagramas de classe vão um pouco além, permitindo ainda a modelagem de comportamentos. [..] (RUMBAUGH et. al., 2000, pág 109) Empresa cnpj: Texto 1 1..* 1..* Departamento Escritório nome: Texto endereço: Texto fazerCafezinho() expediente: Horario Figura Error! No text of specified style in document..1 - Exemplo de associação em diagrama de classes UML. Como pode ser notado na Figura 2.1, na notação básica da UML as classes são representadas como retângulos subdivido horizontalmente, onde, de cima para baixo, são descritos o nome da classe, os atributos e seus métodos. Os seus relacionamentos com outras tabelas são representados por linhas que fazem as devidas interligações, juntamente com a informação sobre o tipo deste relacionamento. Conforme o exemplo, definido por um losango preenchido em preto, significa uma associação do tipo agregação. A notação “1” junto a classe Empresa e a notação “1..*” junto as outras classes Departamento e Escritório, descrevem a multiplicidade do relacionamento, isto é, indicam que uma empresa possui um ou muitos Departamentos, e um ou muitos Escritórios. Outro tipo de relacionamento entre objetos é a herança, cuja notação da UML é representada por um triângulo presente sobre a linha do respectivo relacionamento, e que aponta para a superclasse, conforme exemplo demonstrado na Figura 2.2, onde as classes Estudante e Professor derivam da classe Pessoa.
  • 13.
    Pessoa nome: Texto falar() comer() Estudante Professor Matricula: Inteiro salario: Valor lerLivro() turno: Horario darAula() Figura Error! No text of specified style in document..2 - Exemplo de herança em diagrama de classes UML.