1 / 39

Bancos de Dados Objeto Relacional Modelos e Linguagens

Bancos de Dados Objeto Relacional Modelos e Linguagens. Profa. Vânia Maria Ponte Vidal vvidal@lia.ufc.br Universidade Federal do Ceará Departamento de Computação. Programa do Curso. Introdução Modelo Objeto Relacional do Oracle 9i Linguagem de Consultas (SQL3)

cain
Download Presentation

Bancos de Dados Objeto Relacional Modelos e Linguagens

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bancos de Dados Objeto RelacionalModelos e Linguagens Profa. Vânia Maria Ponte Vidal vvidal@lia.ufc.br Universidade Federal do Ceará Departamento de Computação

  2. Programa do Curso • Introdução • Modelo Objeto Relacional do Oracle 9i • Linguagem de Consultas (SQL3) • Restrições de Integridade • Visões de Objeto • Projeto de Banco de Dados OR • Banco de Dados Geográficos

  3. Aula 1 - Conteúdo • Histórico - A Evolução dos Sistemas de BD • Limitações da Representação Relacional • Propriedades de BDOO

  4. Histórico • Primeira Geração (final dos anos 60 e anos 70) • Caracterizada pela separação entre a informação lógica e a informação física • Modelos de dados começaram a ser utilizados para descrever estruturas físicas de um ponto de vista lógico (modelos de dados hierárquico e rede)

  5. Histórico • Segunda Geração (início dos anos 80) • Caracterizada pelos modelos de dados relacionais • Reconheceu-se que o uso de banco de dados poderia trazer vantagens para as áreas científica e técnica, bem como para os escritórios • Os bancos de dados relacionais começaram a apresentar limitações para aplicações como: CAD, CASE, ...

  6. Histórico • Terceira Geração (final dos anos 80 até ...) • Desenvolvimento de novas tecnologias: sistemas de bancos de dados orientados a objetos, objeto-relacional e relacional estendido • Objetiva uma integração apropriada entre bancos de dados e linguagens de programação

  7. Evolução das Aplicações de Banco de Dados • Aplicações que manipulam dados complexos (sistemas de informação geográfica, bibliotecas digitais, ...) estão sendo informatizadas • Aplicações “comerciais” estão manipulando dados mais complexos do que os dados tradicionalmente tratados em DB Relacionais

  8. Evolução das Aplicações de Banco de Dados • Dados multimídia freqüentemente encontrados na WEB necessitam de suporte para armazenamento e manipulação • Novas aplicações distribuídas estão sendo construídas seguindo o paradigma OO e necessitam de bancos de dados compatíveis

  9. Aplicações Avançadas de BD • Engenharia mecânica e elétrica (CAD/CAM) • Projeto e produção de peças e componentes • Sistemas de Informação Geográfica • Engenharia de Software • Ferramentas CASE • Aplicações médicas e científicas • Química, genética, geoprocessamento

  10. Alguns Requisitos das Aplicações Avançadas de BD • Mecanismos para a definição e manipulação de tipos de dados complexos • Facilidades para modelar o comportamento de objetos complexos através da definição de operações • Suporte para itens de dados de grandes tamanhos • Gerenciamento de versões

  11. Limitações da Representação Relacional • Atributos compostos não podem ser representados diretamente • Atributos multivalorados devem ser diferenciados através de valores únicos e representados em um outro esquema relacional

  12. Limitações da Representação Relacional • Agregações e especializações requerem esquemas de relações individuais equipadas com restrições de integridade especiais • A introdução de chaves artificiais será necessária se os atributos não forem suficientes para obter uma identificação única

  13. Limitações da Representação Relacional • Um exemplo de aplicação: • Especificar um BD para suportar as vendasde uma loja de mercadorias diversas. A cada venda acontecea emissão de um pedido de compra, contendo o código do cliente e a lista dos itens (mercadorias) que formam aquele pedido.

  14. Exemplo • Descrição dos atributos que caracterizam as entidades: • Clientes comuns têm um código, nome, endereço (rua, cidade, estado, cep) e telefones de contato. Clientes Especiais têm todos os atributos de clientes comuns e um campo de desconto padrão. Clientes VIP têm todos os atributos de clientes Especiais e um campo de pontos de bonificação no programa de incentivo. • Mercadorias têm um código, preço e valor de Icms cobrado.

  15. Exemplo • Descrição dos atributos que caracterizam as entidades: • Pedidos têm um código, a data do pedido, a data de entrega, o endereço de entrega (rua, cidade, estado, cep), o cliente e a lista de itens. • Cada item da lista de itens tem um número único, a mercadoria correspondente, a quantidade pedida e o desconto individual obtido.

  16. Exemplo - UML

  17. Exemplo Representação Relacional CREATETABLE CLIENTE_REL ( CODCLI NUMBER(15)NOTNULL, NOME VARCHAR2(100)NULL, RUA VARCHAR2(100)NULL, CIDADE VARCHAR2(100)NULL, ESTADO CHAR(2)NULL, CEP CHAR(10)NULL, FONE1 VARCHAR2(20)NULL, FONE2 VARCHAR2(20)NULL, FONE3 VARCHAR2(20)NULL, PRIMARYKEY(CODCLI) );

  18. Exemplo Representação Relacional CREATETABLE CLIENTE_VIP ( CODCLI NUMBER(15)NOTNULL, PONTOS_BONIFICACAO INTEGERNULL, DESCONTO_PADRAO NUMBER(5,2)NULL, PRIMARYKEY(CODCLI), FOREIGNKEY(CODCLI) REFERENCES CLIENTE_REL ); CREATETABLE CLIENTE_ESPECIAL ( DESCONTO_PADRAO NUMBER(5,2)NULL, CODCLI NUMBER(15)NOTNULL, PRIMARYKEY(CODCLI), FOREIGNKEY(CODCLI) REFERENCES CLIENTE_REL );

  19. Exemplo Representação Relacional CREATETABLE MERCADORIA_REL ( CODMER NUMBER(15)NOTNULL, PRECO NUMBER(15,2)NULL, ICMS NUMBER(5,2)NULL, PRIMARYKEY(CODMER) );

  20. Exemplo Representação Relacional CREATETABLE PEDIDO_REL ( CODPED NUMBER(20)NOTNULL, DATA_PEDIDO DATENULL, DATA_ENTREGA DATENULL, RUA VARCHAR2(100)NULL, CIDADE VARCHAR2(100)NULL, ESTADO CHAR(2)NULL, CEP CHAR(10)NULL, CODCLI NUMBER(15)NOTNULL, PRIMARYKEY(CODPED), FOREIGNKEY(CODCLI) REFERENCES CLIENTE_REL );

  21. Exemplo Representação Relacional CREATETABLE ITEM_PEDIDO ( NO_ITEM NUMBER(5)NOTNULL, CODPED NUMBER(20)NOTNULL, QUANTIDADE NUMBER(15,2)NULL, DESCONTO NUMBER(5,2)NULL, CODMER NUMBER(15)NOTNULL, PRIMARYKEY(NO_ITEM, CODPED), FOREIGNKEY(CODMER)REFERENCES MERCADORIA_REL, FOREIGNKEY(CODPED)REFERENCES PEDIDO_REL );

  22. Limitações da Representação Relacional • Atributos compostos não podem ser representados diretamente • ex: endereço de um cliente ou de entrega do pedido); • Atributos multivaloradosdevem ser diferenciados através de valores únicos e representadas em um outro esquema relacional • ex: telefones de contato ;

  23. Limitações da Representação Relacional • Agregações e especializações requerem esquemas de relações individuais equipadas com restrições de integridade especiais • ex.: Itens do pedido; cliente e cliente VIP • A introdução de chaves artificiais será necessária se os atributos não forem suficientes para obter uma identificação única

  24. Exemplo Limitações da Representação Relacional Para todos os pedidos com data de entrega igual 10/08/2004, obtenha o nome e endereço do cliente, código e preço das mercadorias pedidas . SELECTDISTINCT C.NOME, C.RUA, C.CIDADE, C.ESTADO, C.CEP, M.CODMER, M.PRECO FROM PEDIDO P, CLIENTE C, ITEM_PEDIDO I, MERCADORIA M WHERE C.CODCLI = P.CODCLI AND P.CODPED = I.CODPED AND I.CODMER = M.CODMER AND P.DATA_ENTREGA =’10/08/2004'

  25. Exemplo Limitações da Representação Relacional Obtenha o código e o preço das mercadorias pedidas pelo cliente ‘Ronaldo Silva’ da cidade do ‘Rio de Janeiro’ SELECTDISTINCT M.CODMER, M.PRECO FROM CLIENTE C, PEDIDO P, ITEM_PEDIDO I, MERCADORIA M WHERE C.CODCLI = P.CODCLI AND P.CODPED = I.CODPED AND I.CODMER = M.CODMER AND C.NOME ='Ronaldo Silva' AND C.CIDADE ='Rio de Janeiro'

  26. Como superar as limitações do Modelo Relacional ? • Em 1989, Manifesto de Banco de Dados Orientado a Objetos • BDOO Combina as propriedades do paradigma OO com as propriedades típicas de BD • Em 1990, contra manifesto pró Relacional • Na década de 90 • SGBD relacional • SGBD relacionais estendidos • SGBD orientados a objetos

  27. Representação Não Relacional • Declarações de tipo são tão flexíveis quanto em linguagens de programação; • Objetos podem ser unicamente identificados independentemente dos valores de seus atributos. Identificadores de Objetos são fornecidos, permitindo referências entre objetos;

  28. Representação Não Relacional • Reuso de informação é possível: • Referenciando objetos já existentes. Novos objetos podem ser construídos a partir de objetos existentes (Agregação ou Associação); • Definindo especializações entre unidades de informações, permitindo a herança de estrutura e comportamento.

  29. Exemplo - UML

  30. Exemplo Representação Não Relacional • Endereço: [ • rua: string • cidade: string • estado: string • cep: string • ] Cliente: [ código: inteiro nome: string endereco: Endereço telefones: SetOf(string) ] • Cliente Especial is-a Cliente: [ • Desconto Padrão: double] • Cliente VIP is-a Cliente: [ • desconto padrão: double • pontos bonificação: inteiro]

  31. Exemplo Representação Não Relacional • Item_Pedido: [ • no_item: inteiro • quantidade: double • desconto: double • mercadoria: REF Mercadoria • ] Pedido: [ código: inteiro data_pedido: date data_entrega: date endereco_entrega: Endereço itens: SetOf(Item_Pedido) cliente: REF Cliente ] • Mercadoria: [ • código: inteiro • preco: double • icms: double • ]

  32. Exemplo Consulta Para todos os pedidos com data de entrega igual 10/08/2004, obtenha o nome e endereço do cliente, e código das mercadorias pedidas . SELECT P.cliente.nome, P.cliente.endereco, CURSOR(SELECTM.mercadoria.codigo FROMTABLE (P.itens ) M ) FROM PEDIDOS P WHERE P.DATA_ENTREGA =’10/08/2004'

  33. Exemplo Consulta Obtenha o código e o preço das mercadorias pedidas pelo cliente ‘Ronaldo Silva’ da cidade do ‘Rio de Janeiro’ SELECT I.MERCADORIA.CODIGO, I.MERCADORIA.PRECO FROM PEDIDO P, TABLE(P.ITENS) I WHERE P.CLIENTE.NOME ='Ronaldo Silva' AND P.CLIENTE.ENDERECO.CIDADE ='Rio de Janeiro'

  34. O paradigma de OO OO em BD combina conceitos de várias áreas: • Linguagens de Programação: • tipos de dados abstratos e encapsulamento • Tecnologia de Software: • extensibilidade e reusabilidade de código e o princípio da modularização

  35. O paradigma de OO OO em BD combina conceitos de várias áreas: • Inteligência Artificial: • idéias sobre a representação do conhecimento e técnicas de classificação • Bancos de dados ou modelagem de dados: • relações aninhadas ou generalizações do modelo relacional, juntamente com os modelos de dados semânticos

  36. Propriedades de um BDOO • Propriedades de OO • Modelos de dados • Linguagens • Propriedades do BD

  37. Propriedades de OO:Modelagem de dados • Capacidade para modelar objetos complexos • Suporte a identidade de objetos • Distinção entre tipos e classes • Definição de hierarquias de classes com herança

  38. Propriedades de OO:Características da Linguagem • Encapsulamento • Overloading, overwriting e ligação dinâmica • Consultas ad hoc • Completude computacional • Gerenciamento de versões • Extensibilidade

  39. Propriedades de BD • Persistência • Controle de multi-usuários • Recuperação • Gerenciamento de armazenamento secundário de informações

More Related