• Nenhum resultado encontrado

Apostila1

N/A
N/A
Protected

Academic year: 2021

Share "Apostila1"

Copied!
14
0
0

Texto

(1)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

1

INTRODUÇÃO AOS CONCEITOS DE ORIENTAÇÃO A OBJETOS Conceitos orientação objetos.

Identidade de objeto, estrutura de objeto e construtores de tipos. Encapsulamento de operações, métodos e persistência.

Hierarquias de classe e tipo, e herança. Objetos complexos.

INTRODUÇÃO

No final dos anos 70, surgiu um novo modelo de banco de dados - o modelo relacional, que por suas características de flexibilidade, entre outras, tornou-o extremamente atrativo para os usuários. O desenvolvimento de sistemas ficou mais fácil, e os bancos de dados relacionais rapidamente tornaram-se o padrão aceito pela indústria; pode-se dizer que desde o final dos anos 80, a maioria absoluta das aplicações foi desenvolvida "em cima" dos SGBD´s relacionais.

No entanto, à medida que o uso de computadores se expandiu, diferentes trabalhos passaram a ser executados com a utilização dos mesmos - tornou-se necessário trabalhar com diferentes tipos de dados, como sons, imagens, etc. Rapidamente se compreendeu que o trabalho com esses tipos de dados necessitaria de um suporte diferente em termos de gerenciadores de bancos de dados, de linguagens e, por conseqüência, de técnicas de desenvolvimento. Nos dias de hoje, tabelas seguem sendo o melhor meio para se armazenar dados acerca das vendas ou da folha de pagamento de uma empresa, pois esses dados tendem a ser bidimensionais por natureza - agora, se adicionarmos a eles uma foto ou uma impressão digital, por exemplo, uma tabela começa a ser inadequada para esse fim - lembrando que todo software é uma abstração ou modelo de alguma coisa do mundo real, podemos dizer que a tecnologia Orientada a Objetos (OO) torna possível refletir mais claramente essas realidades.

Os conceitos OO começaram a se solidificar nos anos 60/70 - sistemas comerciais tornaram-se disponíveis na segunda metade dos anos 80, quando Smalltalk e C++ tornaram-se realidade, vindo logo a seguir os bancos de dados e as técnicas OO, das quais há hoje uma grande variedade.

(2)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

2

Durante a década de 80, como resultado das inovações de hardware, emergiram novas aplicações com utilização intensiva de dados. Para essas aplicações, os modelos de dados tradicionais, baseados no modelo relacional, não eram adequados. Alguns exemplos de aplicações desse tipo incluem sistemas de design e produção, como CAD Aided Design) e CAM (Computer-Aided Manufacturing), sistemas para as áreas científica e médica, sistemas de informação geográfica e bases de dados com informações multimídia. Essas aplicações possuem requisitos e características, tais como dados altamente estruturados, transações longas, dados em multimídia e operações fora do padrão, específicas da aplicação, que as tornam diferentes das aplicações tradicionais (CHAUDRI & ZICARI, 2001, pg. 3).

Silberchatz et. al. (2001, pg. 307) afirma que “À medida que as bases de dados foram sendo utilizadas em um âmbito maior de aplicações, as limitações impostas pelo modelo relacional emergiram como obstáculos. Como resultado, pesquisadores da área de bancos de dados inventaram novos modelos de dados que superassem as restrições do modelo relacional. [...] Nos últimos anos a demanda por maneiras de tratar dados mais complexos tem crescido”.

Existe um grande interesse relativo às tecnologias orientadas a objetos na comunidade de desenvolvimento de software, sobretudo no tocante à facilidade de alteração de implementações de acordo com mudanças solicitadas nos requisitos. A capacidade que esse paradigma possui de representar dados complexos uniu-se à tecnologia de banco de dados, gerando os Bancos de Dados Orientados a Objeto (BDOO), que suportam modelagem e criação de dados como objetos (ODBMS, 2006).

CONCEITOS ORIENTAÇÃO A OBJETOS (OO)

OBJETO

Ao se falar de Orientação a Objetos, evidentemente o primeiro conceito a ser apresentado é o de Objeto. Um objeto é qualquer coisa, real ou abstrata, a respeito da qual armazenamos dados - um

(3)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

3

animal, uma organização, um avião, uma parte desse avião ou uma reserva num vôo desse avião - um objeto inclusive pode ser constituído por outros objetos.

TIPO DE OBJETO

Um tipo de objeto é uma categoria de objeto e um objeto é uma instância de um tipo de objeto. Utilizando o jargão de bancos de dados, Aluno, Professor e Disciplina seriam tipos de entidade, havendo muitas instâncias de cada tipo de entidade, como por exemplo, instâncias de Aluno seriam os alunos João, José e Pedro, instâncias de Disciplina seriam Matemática, Latim, etc. De forma análoga, em termos de Tecnologia de Objetos, um tipo de objeto poderia ser um avião e objetos poderiam ser B747, B737, etc. Cabe observar, no entanto, que objeto é diferente de entidade, pois essa se preocupa apenas com os dados, enquanto objeto preocupa-se tanto com os dados como com os métodos com os quais os dados são manipulados.

CLASSE

A classe "descreve" um grupo de objetos com propriedades semelhantes (atributos), o mesmo comportamento (operações), os mesmos relacionamentos com outros objetos e a mesma semântica (Hirama, 1998). Ao construirmos uma classe, estamos implementando um tipo de objeto. Ela especifica uma estrutura de dados e os métodos que se aplicam a cada um de seus objetos. Deve-se observar que aqui tipo de objeto deve ser encarado como um conceito que especifica uma família de objetos sem estipular como o tipo e o objeto são implementados. Os tipos de objeto são especificados durante a análise, mas quando se implementam tipos de objeto, outros termos são usados - no caso das linguagens OO, os tipos de objeto são implementados como classes. Martin (1994) dá um exemplo claro acerca do assunto: "A implementação da classe especifica a estrutura de dados para cada um de seus objetos. Por exemplo, uma classe “Empregado” incluiria dados sobre cargo, salário, etc. Além disso, cada classe define um conjunto de operações permissíveis que permitem o acesso e a modificação de dados do objeto. Uma classe "Empregado" poderia incluir operações, tais como "contratar" e "promover". Os detalhes sobre o método da operação são especificados pela classe - o método é armazenado uma vez, e

(4)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

4

todos os objetos de determinada classe podem compartilhá-lo. O termo classe refere-se à implementação de tipos de objeto. Ele refere-se a bibliotecas de classes como repositórios de classes existentes que podem ser usadas por um analista. Muito do sucesso do desenvolvimento de sistemas OO está em se determinar um bom conjunto de classes, pois isso acelera o desenvolvimento, pois o reuso implica em menos linhas de código (que por sua vez implica em menos erros de código) e menores custos de manutenção.

MÉTODOS

Os métodos especificam a maneira pela qual os dados de um objeto são manipulados. Assim, um objeto tem suas propriedades representadas pelos tipos de dados e seu comportamento representado pelos métodos. Dois métodos associados ao tipo de objeto Avião poderiam ser um que relacionasse todos os aviões e outro que calculasse a média de combustível consumido por milha voada. Aproveitando a menção feita a bancos de dados no item anterior, é importante mencionar que no mundo OO, a estrutura de dados e os métodos para cada tipo de objeto são armazenados juntos. A estrutura de dados não pode ser acessada ou manipulada, exceto pelos métodos que fazem parte do tipo de objeto.

ENCAPSULAMENTO

Encapsulamento é o ato de ocultar do usuário os detalhes da implementação de um objeto, através do empacotamento simultâneo dos dados e métodos - a idéia básica é deixar visível a um usuário apenas o que ele necessita ver (e acessar, evidentemente). O objeto esconde seus dados de outros objetos e permite que estes sejam acessados por intermédio de seus próprios métodos - se todos os programas pudessem acessar os dados de quaisquer maneiras que os usuários desejassem, os dados poderiam ser facilmente corrompidos ou usados de forma inadequada. O encapsulamento oculta os detalhes de um objeto de seus usuários, que conhecem quais operações do objeto podem ser solicitadas, mas não conhecem os detalhes acerca de como uma operação é executada. Voltando a falar em reuso e manutenção, o encapsulamento é importante porque separa a maneira como um objeto se comporta da maneira como ele é implementado.

(5)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

5

Isso permite que as implementações do objeto sejam modificadas sem exigir que os aplicativos que as usam sejam também modificados. É mais fácil de modificar programas usando-se o encapsulamento porque um tipo de objeto é modificado de uma vez só. Se um tipo de objeto for modificado, somente os métodos e as estruturas de dados associados a esse tipo de objeto são afetados, e usualmente apenas alguns desses métodos e estruturas de dados o são. O comportamento do tipo de objeto pode ser modificado e testado, independentemente de outros tipos de objetos. Martin (1995) nos dá um exemplo muito didático: "Um aparelho de videocassete (VCR) é um exemplo de objeto. Ele tem certos tipos especificados de comportamento. Um VCR Sony AH-8500 é um tipo de objeto, e um aparelho individual poderia ser uma instância deste tipo. Todos os aparelhos desse tipo têm os mesmos métodos. O VCR contém componentes complexos, sendo que muitos contêm, eles mesmos, componentes, mas você não precisa saber sobre eles. Os componentes eletrônicos ou seus dados não podem ser acossados diretamente. (ele avisa: "Cuidado. Não Abra. Risco de Choque Elétrico"). Você pode usar somente os métodos especificados. O encapsulamento impede a interferência nas partes internas e oculta a complexidade dos componentes. Você está preocupado somente com o comportamento do VCR descrito em seu manual. Esse tipo de objeto tem muitos métodos, tais como reproduzir, gravar, carregar e descarregar a fita cassete, etc. Os dados do objeto não podem ser usados, exceto com esses métodos.

Mensagens telefônicas não podem ser gravadas no VCR ou o timer não pode ser usado para operar a cafeteira elétrica.

MENSAGENS

Um objeto reage a uma solicitação. Esta faz com que uma operação execute o método apropriado e, se o sistema assim determinar, envia resposta. A mensagem que constitui a solicitação contém o nome do objeto, o nome da operação e, freqüentemente, parâmetros - note-se que uma operação pode envolver mais de um objeto. O usuário não precisa conhecer os detalhes do objeto, apenas como se comunicar com ele e como ele responde. Voltando ao avião, ao acionar o comando dos flaps, o piloto vê uma ação sendo executada e recebe resposta através de seu painel de controle - todos os objetos "Avião" são controlados dessa forma (ao menos

(6)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

6

didaticamente), mas o piloto não poderá mudar a temperatura do cockpit usando o comando dos flaps, porque aqui outro tipo de mensagem será necessário.

IDENTIDADE DE OBJETO, ESTRUTURA DE OBJETO E CONSTRUTORES DE TIPOS.

Superficialmente, um objeto corresponde a uma entidade no modelo Entidade-Relacionamento (ER). O modelo OO está baseado no encapsulamento de dados e um código relacionado a um objeto dentro de uma unidade. Conceitualmente, todas as interações entre um objeto e o resto do sistema são através de mensagens. Em geral, um objeto contém um conjunto de operações (métodos), bem como, valores armazenados em suas propriedades. Para suportar as abstrações de representação e das operações de um objeto, o modelo de dados orientado a objetos incorpora às características de objetos das Linguagens de Programação Orientadas a Objetos (LPOO), as noções de estrutura de dados e de comportamento DIAS (1999). Cada ocorrência de um objeto no banco de dados é denominada de instância do objeto.

IDENTIFICADOR DE OBJETO (OID)

Nos Bancos de Dados Orientados a Objetos (BDOO), os objetos possuem uma identidade mais forte que nas linguagens de programação, pois continuam existindo mesmo após a execução do programa e podem voltar a serem utilizados, na próxima execução, ou mesmo serem utilizados por outro programa simultaneamente NASSU E SETZER (1999). A impossibilidade em se identificar os objetos através dos valores de seus atributos ou de sua estrutura comportamental motivou a definição de identificadores únicos, geralmente administrados pelo próprio SGBD. Além de servir como identificador unívoco do objeto, a identidade do objeto também é utilizada para identificar o objeto como atributo junto aos demais objetos, eliminando, dessa forma, anomalias de atualização ou de integridade referencial (KHOSHAFIAN, 1994).

(7)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

7

Em banco de dados OO, o estado (valor corrente) de um objeto complexo pode ser construído a partir de outros objetos (ou outros valores) pelo uso de alguns construtores de tipos. Um modo formal de representar tais objetos é visualizar cada objeto como uma tripla (i, c, v), na qual i é o identificador único do objeto, c é um construtor de tipo e v é o estado do objeto ou valor corrente.

CONSTRUTORES DE TIPOS

Existem vários construtores de tipos. Os três construtores mais básicos são atom (atômico), tuple (tupla) e set (conjunto). Outros construtores utilizados são list, bag e array.

O construtor atom é utilizado para representar todos os valores atômicos básicos, como inteiros, número reais, cadeia de caracteres, booleanos e quaisquer outros tipos básicos que o sistema suporte diretamente.

O construtor tuple é utilizado para representar uma tupla na forma <a1:i1, a2:i2, ... an:in> , em

que cada aj é o nome de um atributo e cada ij é um identificador de objeto (OID).

O construtor set é utilizado para representar um conjunto de identificadores de objetos (OID) {i1,

i2, ... in}.

OBJETOS COMPLEXOS

Objetos complexos ocorrem de forma corriqueira em um SGBDOO. Basta alguma restrição de integridade referencial, que já está criada uma estrutura de objetos complexos. Eles são formados por construções estruturadas (conjuntos, listas, tuplas, coleções, arrays) aplicadas a objetos simples (inteiros, booleanos, strings) (GRAHL et al., 2000).

Exemplo:

O1 = (i1, atom, ‘Tecnologo em Banco de Dados’)

(8)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

8

O3 = (i3, atom, ‘Faculdade Ined’)

O4 = (i4, atom, 2007)

O5 = (i5, set, {i1,i2,i3})

O6 = (i6, tuple, <DNOME:i2, DCURSO:i1, DFACULDADE:i3, ANO:i4>)

ENCAPSULAMENTO DE OPERAÇÕES, MÉTODOS E PERSISTÊNCIA

ENCAPSULAMENTO DE OPERAÇÕES

Em banco de dados se diz que um objeto está encapsulado quando seu estado é oculto ao usuário e o objeto só pode ser consultado e modificado exclusivamente através das operações a ele associadas. O conceito de encapsulamento é utilizado em BDOO, porém, quando se faz uma consulta ao banco de dados, não é possível prever todas as consultas e atualizações que o usuário possa desejar (NASSU E SETZER, 1999).

COMPORTAMENTO DO OBJETO, OPERAÇÕES DE CLASSE E CONSTRUTOR DO OBJETO

Os conceitos ocultar a informação e encapsulamento podem ser aplicados a objetos de banco de dados. A idéia principal é definir o comportamento de um tipo de objeto com base nas operações que podem ser externamente aplicadas aos objetos daquele tipo. A estrutura interna do objeto é escondida e o objeto é acessível por meio de um número de operações predefinidas. Algumas operações podem ser utilizadas para criar (insert) ou destruir (delete) objetos; outras operações podem atualizar o estado do objeto e outras podem ser utilizadas para recuperar partes do estado do objeto ou para aplicar alguns cálculos. Em geral, a implementação de uma operação pode ser especificada em uma linguagem de programação de propósito geral que oferece flexibilidade e capacidade para definir essas operações.

As operações típicas incluem o construtor do objeto, utilizado para criar um novo objeto, e o destrutor, utilizado para destruir um objeto.

(9)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

9

ATRIBUTOS VISÍVEIS E OCULTOS

Para aplicações de banco de dados, o requisito de que todos os objetos sejam completamente encapsulados é muito rígido. Uma maneira de flexibilizar esse requisito é dividir a estrutura de um objeto em atributos visíveis e ocultos. Os atributos visíveis podem ser acessados diretamente para leitura por operadores externos ou por uma linguagem de consulta de alto nível. Os atributos ocultos de um objeto são completamente encapsulados e podem ser acessados somente por meio de operações predefinidas.

PERSISTÊNCIA DOS OBJETOS

Sem dúvida, a característica que diferencia os BDOO em relação às linguagens de programação orientadas a objetos é a persistência dos objetos. Nas linguagens de programação, os objetos transientes existem apenas durante a execução do programa. Nos BDOO, os objetos podem continuar existindo mesmo após o encerramento do programa, tendo seu estado armazenado em disco. A forma pela qual o objeto se torna persistente depende de cada sistema. Os mecanismos usuais para tornar o objeto persistente são a nomeação e alcançabilidade.

HIERARQUIAS DE CLASSE E TIPO, E HERANÇA

HERANÇA

Outra importante capacidade dos SGBDOO é o gerenciamento do conceito de herança dentro de uma hierarquia de classes armazenáveis. Da mesma forma que nas LPOO, nos SGBDOO podem-se criar novas claspodem-ses em função das já existentes. As principais vantagens de herança consistem em uma maior expressividade na modelagem dos dados, maior facilidade no reuso de objetos, definição de classes por refinamento e inexistência de código redundante (GRAHL et al.,2000).

(10)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

10

Os SGBDOO armazenam as declarações de classes, confeccionando-as como parte do esquema de banco de dados OBJECTSTORE (1999). Uma hierarquia de classes oferece muito mais flexibilidade para se mudar a estrutura de um banco de dados (incluindo novos atributos ou métodos nos objetos), bem como, possibilita a evolução do esquema do banco de dados através da adição de novas classes na hierarquia.

O banco de dados OO além de ser capaz de classificar objetos com base em seus tipos é necessário ter um requisito adicional de permitir a definição de novos tipos baseados em outros tipos predefinidos, formando uma hierarquia de tipos (ou de classe).

Um tipo, em sua forma mais simples, pode ser definido pela atribuição de um nome do tipo e depois listando os nomes de suas funções visíveis (públicas). O formato abaixo pode ser utilizado para especificar um tipo.

NOME_DO_TIPO: função1, função2, ... funçãon

Por exemplo, um tipo que descreve as características de uma PESSOA pode ser definido como:

PESSOA: Nome, Endereço, Data_de_Nascimento, Idade.

O conceito de subtipo é útil quando o projetista ou o usuário precisa criar um novo tipo semelhante, mas não idêntico a um tipo já definido. O subtipo herda, então, todas as funções do tipo predefinido, que podemos chamar de supertipo. Como exemplo supondo que deseja definir dois novos tipos ESTUDANTE e FUNCIONARIO.

ESTUDANTE: Nome, Endereço, Data_de_Nascimento, Idade, Especialização, Media_Pontos. FUNCIONARIO: Nome, Endereço, Data_de_Nascimento, Idade, Departamento, Cargo, Salario.

A idéia da definição de um tipo envolve definir todas as funções e implementá-las como atributos ou como métodos. Quando um subtipo é definido, ele pode herdar todas as essas funções e suas

(11)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

11

implementações. Somente as funções que são específicas ou locais ao subtipo e que, portanto, não foram especificadas no supertipo, precisam ser definidas e implementadas. Assim, podem ser declarados ESTUDANTE e FUNCIONARIO da seguinte forma:

ESTUDANTE subtype-of PESSOA: Especialização, Media_Pontos FUNCIONARIO subtype-of PESSOA: Departamento, Cargo, Salario

Em geral um subtipo inclui todas as funções que estão definidas para seu supertipo, mais algumas funções adicionais que são específicas somente para o subtipo. Assim, é possível gerar uma hierarquia de tipos para mostrar os relacionamentos supertipo/subtipo entre todos os tipos declarados no sistema.

OBJETOS COMPLEXOS

Uma das principais motivações que levaram ao desenvolvimento de sistemas OO foi o desejo de representar objetos complexos. Existem dois tipos principais de objetos complexos: estruturados e não estruturados.

OBJETOS COMPLEXOS NÃO ESTRUTURADOS

Uma vantagem de lidar com objetos complexos não estruturados oferecida por um SGBD é que eles permitem o armazenamento e a recuperação de grandes objetos que são necessários à aplicação do banco de dados. Exemplo típicos desses objetos são imagens bitmap e strings de texto longo; também são conhecidos como objetos binários extensos ou BLOBs. Esses objetos são não estruturados, o que significa que o SGBD não conhece suas estruturas – somente a aplicação que os utiliza pode interpretar seu significado. Por exemplo, a aplicação pode possuir funções para exibir uma imagem ou procurar algumas palavras-chave numa string de texto longo. Os objetos são considerados complexos porque exigem uma grande área de armazenamento e não são parte dos tipos de dados padrões fornecidos pelos SGBDs convencionais.

(12)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

12

Os softwares do SGBD não possuem capacidade para processar diretamente condições de seleção e outras operações baseadas em valores desses objetos, a não ser que a aplicação forneça código para realizar as operações de comparação necessárias para a seleção. Em um SGBDOO, isso pode ser obtido definindo-se o novo tipo de dado abstrato para os objetos não interpretados e fornecendo os métodos para seleção, comparação e apresentação desses objetos. Por exemplo, considere objetos que são imagens bitmap bidimensionais. Suponha que a aplicação precise selecionar a partir de uma coleção de tais objetos somente aqueles que incluam certo padrão. Nesse caso, o usuário deverá fornecer o programa de reconhecimento do padrão, como um método de objetos do tipo bitmap. O SGBDOO recupera, então, um objeto do banco de dados e aplica nele o método para reconhecimento do padrão para determinar se o objeto adere ao padrão desejado.

OBJETOS COMPLEXOS ESTRUTURADOS

Um objeto complexo estruturado diferencia-se de um objeto complexo não estruturado no sentido de que a estrutura do objeto é definida pela aplicação recursiva dos construtores de tipo oferecidos pelo SBDOO. Assim, a estrutura do objeto é definida e conhecida pelo SGBDOO. Como um exemplo, considere o objeto DEPARTAMENTO mostrado na figura 1. No primeiro nível o objeto possui uma estrutura de tupla com seis atributos: DNOME, DNUMERO, GER, LOCALIZACAO, EMPREGADOS e PROJETOS. Contudo, apenas dois desses atributos – identificados como DNOME e DNUMERO - possuem valores básicos; os outros quatro possuem uma estrutura complexa e desse modo foi construído o segundo nível da estrutura do objeto complexo. Um desses quatro (GER) tem uma estrutura de tupla, e os outros três (LOCALIZACAO, EMPREGADOS e PROJETOS) possuem estruturas de conjunto. No terceiro nível, para um valor de tupla GER, temos um atributo básico (GER DATA_INICIO) e um atributo (GERENTE) que se refere a um objeto empregado, o qual possui uma estrutura de tupla. Para um conjunto LOCALIZACAO, temos um conjunto de valores básicos, mas para ambos os conjuntos EMPREGADOS e PROJETOS temos conjuntos de objetos estruturados como tuplas.

(13)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

(14)

Campus Pampulha: Avenida Antônio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoológico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praça da rodoviária) - BH - MG

14

Figura 1

Um SGBDOO deve oferecer opções de armazenamento para agrupar objetos componentes de um objeto complexo em memória secundária com o objetivo de aumentar a eficiência das operações que acessam o objeto complexo. Em muitos casos, a estrutura do objeto é armazenada em disco de forma não interpretada. Quando uma página de disco que inclui um objeto é recuperada para a memória, o SGBDOO pode montar o objeto complexo estruturado a partir das informações nas páginas do disco, as quais podem fazer referências a páginas adicionais no disco que devem ser recuperadas. Isso é conhecido como montagem do objeto complexo.

OUTRO CONCEITOS ORIENTADOS A OBJETOS

POLIMORFISMO

Polimorfismo é talvez uma das características mais fortes das LPOO. Em sistemas polimórficos uma mesma operação pode se comportar de diferentes formas em classes distintas.

Obtém-se também polimorfismo quando ocorre a passagem de diferentes tipos de objetos como parâmetros enviados a outros objetos KHOSHAFIAN (1994). As vantagens do polimorfismo estão fortemente relacionadas com reutilização e conseqüentes economia de código.

BIBLIOGRAFIA

ELMASRI, R. & NAVATHE, S. B. Sistemas de Bancos de Dados – Fundamentos e Aplicações. 4a Edição. São Paulo: Pearson, 2005.

Referências

Documentos relacionados

1) O candidato que não possuir diploma ou documento equivalente de conclusão de curso de nível superior poderá se inscrever condicionalmente,.. desde que

questionamentos, dentre eles: qual a eficácia da Kligman em comparação com a Cysteamine para o tratamento do melasma em pacientes de 27 a 44 anos sem

O presente artigo tem o propósito de apresentar o bairro de Guaratiba, localizado na zona oeste da cidade do Rio de Janeiro, e realizar uma análise introdutória e preliminar do

III - empréstimo entre bibliotecas (EEB): é um serviço de empréstimo de publicações bibliográficas que não constam na Biblioteca de origem do usuário.

Também podemos perceber, no contexto da produção de melado da família Oliveira, uma possibilidade de atividade para os Anos Iniciais do Ensino Fundamental,

descobrir coisas ou detalhes que não haviam sido captadas a primeira vista. Nesse momento esperamos que os participantes descrevam as formas, cores, espaços e

Esta nova vida monástica não se inicia com os votos de obediência, pobreza e castidade, mas por uma conversão segundo um desvio tanto com respeito à liturgia quanto ao

Os dados obtidos permitem concluir que, na nossa amostra, a maioria da comunidade cigana, está disposta a enfrentar os desafios (tabelas 4.1., 4.2., 4.3.,