I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.

Slides:



Advertisements
Apresentações semelhantes
Um pouco mais de cardinalidade e Relacionamentos
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Transformação ODMG  Relacional
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Object Query Language - OQL
Object Definifion Language - ODL
Princípios da Orientação a Objetos e a Linguagem UML
Estudo de Caso, modelo Oracle 10g
VI- Implementação Objeto-Relacional
Modelo de Objetos ODMG.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
SQL Avançado Continuação
Banco de Dados II Prof. Carlos Eduardo Pires
Prof.: Bruno Rafael de Oliveira Rodrigues
Exemplo dos Internamentos
Projeto de Banco de Dados
Maurício Edgar Stivanello
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
Modelagem Orientada a Objetos
UML Diagrama de Classes elementos básicos. Contexto Os diagramas de classes fazem parte do da visão estática da UML. Os elemento desta visão são conceitos.
Mapeamento Objeto Relacional
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
Bancos de Dados com Objetos
Bancos de Dados Orientados a Objeto
Sistemas de Informação
Curso de extensão em Desenvolvimento Web
SQL Server 2012 Introdução a Modelagem de Dados
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Transformação ODMG Relacional. Implementação Relacional de BDs OO Transformação Esquema Objeto Esquema Relacional Transformação Esquema Objeto Esquema.
Banco de Dados Aplicado ao Desenvolvimento de Software - BDD
Vânia Maria Ponte Vidal
Banco de Dados de Objetos
Equipe de monitoria Aula prática 4
Especialização em Tecnologia da Informação
Conceitos de SGBD Objeto-Relacional Oracle 10g [1]
III – Oracle10g Apontadores – Tipo de Dado (REF).
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
III – Oracle10g Funções que Manipulam Apontadores.
Desenvolvendo um script SQL
Análise Orientado aos Objetos Prof. Wolley W. Silva
Banco de Dados Aplicado ao Desenvolvimento de Software
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
Generalização e herança Agregação e composição
Ricardo Ferreira Schiavo
Banco de dados 1 Modelagem de Dados Utilizando MER
Conceitos de SGBD Objeto-Relacional Oracle 10g [2] Monitoria GDI André Braga, Daniel Penaforte, Domingos Ribeiro, João Pascoal, Maria Carolina.
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
II- Padrão ODMG Object Definifion Language - ODL.
 Introdução  Definindo Visões de Objeto  Usando Visões de Objeto  Atualizando Visões de Objeto.
Bancos de Dados Objeto Relacional Modelos e Linguagens
Projeto de BD Análise de Requisitos Projeto Conceitual Projeto Lógico
Banco de Dados Relacional Objeto-
III – O Modelo OR Estudo de Caso, modelo Oracle9i.
ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades.
Objetos em Bancos de Dados Relacionais Alcides Calsavara.
Professor Me. Jeferson Bussula Pinheiro.
Projeto de Banco de Dados
UCSal – Bacharelado em Informática
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Diagrama de Classes Herança Dependências.
Transformação ODMG  Relacional. Implementação Relacional de BDs OO Transformação Esquema Objeto  Esquema Relacional.
Modelagem Entidade-Relacionamento (MER)
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Sumário I.1 Um Hiato entre Especificação e Implementação I.2 Especificação: Evolução dos Modelos Conceituais I.3 Implementação: Evolução dos Modelos Lógicos I.4 Projeto de Aplicações de Banco de Dados

I.1 Um Hiato entre Especificação e Implementação

Especificação Implementação

Nível de Abstração Especificação (Modelagem Conceitual) Implementação (Modelagem Lógica) Modelo de Entidade e Relacionamento Modelo de Objeto Modelo Relacional Modelo Objeto- Relacional BD I BD II

I.2 Especificação: Evolução dos Modelos Conceituais

Modelo de Entidade e Relacionamento Idéia Básica: Entidade  Atributos atômicos, compostos e multi-valorados (coleções)  Relacionamentos entre entidades Instâncias de Entidade Associações entre instâncias de entidade Modelo Estático  Omisso quanto às operações com (instâncias) de entidades

Pontos Negativos  Modelo estático

Elementos de um Modelo de Objeto Idéia Básica: Objeto  Atributos complexos ou estruturados  Atributos coleção Conjunto, Bag, Lista, Array  Atributo Identidade (OID) Uma instância identifica um objeto Transparente e independente de aplicação  Associações entre objetos Se um objeto A está associado a um objeto B, então A deve fazer referência ou apontar para B, ou A contém o OID de B, e/ou vice-versa  Operações (Métodos)

Classe de objeto  Atributos e associações comuns a um conjunto de objetos  Atributo(s) chave  Relacionamentos entre classes de objeto Exprimem as associações entre objetos  Classe persistente Repositório de objetos da classe

Exemplo de classe de objeto  Classe Estudante Atributos  Matrícula >  Nome  Endereço  Rua  Número  Bairro  Cep Prefixo Sufixo  Data_nasc  Historico_escolar  Conjunto Disciplinas_feitas Referência_disciplina, período, media_final, status O atributo OID é transparente

Métodos  CRE  Sufixo do CEP  Emissão do Histórico Escolar ... Relacionamentos com outras classes  Matriculado em Disciplina  … Repositório: Estudantes Não há necessidade de definir métodos observer e mutator

Multiplicidades de Relacionamento  1:1  1:N  M:N

Hierarquia de Classe –É possível declarar uma classe S como uma subclasse de outra classe C. Neste caso, S herda todas as propriedades da classe C, isto é, os atributos, os métodos, e os relacionamentos de C

–S pode ter seus próprios atributos, suas próprios operações, seus próprios relacionamentos e seu próprio repositório ( S é uma extensão de C ) – Exemplo: a classe Estudante é uma subclasse de Pessoa –Relacionamento Subclasse é_um(a) (Sub)Classe –Multiplicidade 1:1

Métodos –Métodos de Instância Aplicáveis a um único objeto Exemplo: est.disciplinas_em_curso(), aplicável a um objeto da classe Estudante ( est é um objeto da classe Estudante ) Parâmetro de entrada implícito: objeto self ou this –Métodos de Classe Não podem fazer referência a objeto self ou this Exemplo: Estudante.número_estudantes()

Assinatura (Interface) –Uma assinatura de um método (ou interface) compreende: O nome Os parâmetros O tipo do valor de retorno (opcional) Comentários sobre a lógica do método Corpo (Código)

 Sobrecarga (“Overloading”) Métodos de uma classe com o mesmo nome, porém com pelo menos um argumento diferente  imprime_histórico_escolar ( )  imprime_histórico_escolar (formato: string) Vantagem: Coesão

 Polimorfismo Dois métodos, de classes diferentes, são polimorfos se têm a mesma assinatura O conceito de polimorfismo é extremamente útil em hierarquias de classes, mas não é restrito a elas  Aluno_especial é_um Aluno  Aluno_especial.histórico_escolar()  Aluno.histórico_escolar()

Agregação/Composição de Classes Relacionamentos especiais É_PARTE_DE Agregação Compartilhamento Exemplo: um objeto da classe Brinquedo é parte de vários objetos da classe Catálogo Composição Não compartilhamento Exemplo: um objeto da classe Departamento é parte de um único objeto da classe Centro Dependência existencial

Agregação/Composição de Classes –Brinquedo é-parte-de Catálogo –UML Catálogo Brinquedo * *

Agregação/Composição de Classes –Departamento é-parte-estrita-de Centro –UML Centro Depto *

Uma linguagem de consulta a objetos  Estilo SQL! Exercite-se (mire-se no exemplo de motivação)  Qual o histórico escolar do estudante com matrícula 1234?  Qual o CRE do estudante 1234?  Quais as disciplinas em que o estudante 1234 está matriculado?

BD OO e UML Pergunta: o que falta à linguagem UML para ela se tornar um completo padrão de BDOO?  Linguagem de consulta a objetos  Descrição textual completa de classes

Banco de Dados Orientado a Objeto (BD OO) Esquema Orientado a Objeto (Esquema OO)  Um conjunto de classes persistentes e transitórias, segundo um modelo de esquema OO  Classes persistentes (concretas) Com repositório  Classes transitórias (abstratas) Sem repositório BD OO  Um conjunto de repositórios Pelo menos um não é vazio Consultas sobre os repositórios  Linguagem declarativa de consulta a objetos Apropriada ao modelo de esquema

BD OO: Exemplo de Esquema Classes  Estudante, Disciplina, Curso, … Repositórios  Estudantes : João, Maria, José, …  Disciplinas : BD I, BD II, …  Cursos : Bacharelado em CC, …

I.3 Implementação: Evolução dos Modelos Lógicos

Modelo Relacional Tipos nativos  INTEGER  REAL  DATE  STRING Esquema de Banco de Dados Relacional (BDR)  Conjunto de tabelas  Regras de integridade (consistência do conteúdo das tabelas) BDR  Linhas de tabela Pelo menos uma linha não vazia

Linguagem de consulta  Operações sobre tabelas Padrão SQL: esquema e consulta Regras de transformação de esquemas de BDOO em esquemas de BDR  SGBDR: implementa BDRs

Pontos negativos  Pobreza de tipos  Não oferece encapsulamento (operações), pois stored procedures são definidas como elementos do esquema.

Modelo Objeto-Relacional (OR) Tipos nativos  INTEGER  REAL  DATE  STRING  COLEÇÃO ARRAY (padrão SQL99) Oracle 11g  VARRAY  NESTED TABLE  APONTADOR (REFERENCE)

Tipos Definidos pelo Usuário (Extensibilidade)  Tipos de Objeto Atributos stricto sensu Atributos apontadores, ou referências Métodos  Funções  Procedures  Hierarquias de tipos de objeto  Repositórios de tipos de objeto Typed Table (SQL99, IBM) Object Table (Oracle)  Linguagem de consulta SQLOR Extensão-objeto da linguagem SQL

Banco de Dados Objeto-Relacional (BD OR) Esquema de BDOR  Conjunto de tipos persistentes de objeto Instanciáveis e/ou não-instanciáveis BDOR  Conjunto de Object(Typed) Tables e/ou conjunto de tabelas puramente relacionais Um BDOR estende stricto sensu um BDR Linguagem SQLOR  Operações sobre objetos de object(typed) table e/ou sobre linhas de tabela relacional Regras de transformação de esquemas de BDOO em esquemas de BDOR SGBDOR: implementa BDORs

BDOR – Classificação de Stonebraker

BDR x BDOO x BDOR

I.4 Projeto de Banco de Dados

Requisitos Esq. Conceitual OO Esq. Lógico R, OR Esq. Físico UML / ODL + OQL (Padrão ODMG p/ BD OO) Oracle 11g; Postgresql; DB2...

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.

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.

Esquema UML

Representação Relacional CREATE TABLE CLIENTE_REL ( CODCLI NUMBER(15) NOT NULL, 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, PRIMARY KEY (CODCLI) ); Exemplo

Representação Relacional CREATE TABLE CLIENTE_VIP ( CODCLI NUMBER(15) NOT NULL, PONTOS_BONIFICACAOINTEGER NULL, DESCONTO_PADRAO NUMBER(5,2) NULL, PRIMARY KEY (CODCLI), FOREIGN KEY (CODCLI) REFERENCES CLIENTE_REL ); CREATE TABLE CLIENTE_ESPECIAL ( DESCONTO_PADRAO NUMBER(5,2) NULL, CODCLI NUMBER(15) NOT NULL, PRIMARY KEY (CODCLI), FOREIGN KEY (CODCLI) REFERENCES CLIENTE_REL ); Exemplo

Representação Relacional CREATE TABLE MERCADORIA_REL ( CODMER NUMBER(15) NOT NULL, PRECO NUMBER(15,2) NULL, ICMS NUMBER(5,2) NULL, PRIMARY KEY (CODMER) ); Exemplo

Representação Relacional CREATE TABLE PEDIDO_REL ( CODPED NUMBER(20) NOT NULL, DATA_PEDIDO DATE NULL, DATA_ENTREGA DATE NULL, RUA VARCHAR2(100) NULL, CIDADE VARCHAR2(100) NULL, ESTADO CHAR(2) NULL, CEP CHAR(10) NULL, CODCLI NUMBER(15) NOT NULL, PRIMARY KEY (CODPED), FOREIGN KEY (CODCLI) REFERENCES CLIENTE_REL ); Exemplo

Representação Relacional CREATE TABLE PEDIDO_REL ( CODPED NUMBER(20) NOT NULL, DATA_PEDIDO DATE NULL, DATA_ENTREGA DATE NULL, RUA VARCHAR2(100) NULL, CIDADE VARCHAR2(100) NULL, ESTADO CHAR(2) NULL, CEP CHAR(10) NULL, CODCLI NUMBER(15) NOT NULL, PRIMARY KEY (CODPED), FOREIGN KEY (CODCLI) REFERENCES CLIENTE_REL ); Exemplo

Limitações da Representação Relacional SELECT DISTINCT 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' Exemplo 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.

Limitações da Representação Relacional SELECT DISTINCT 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' Exemplo Obtenha o código e o preço das mercadorias pedidas pelo cliente ‘Ronaldo Silva’ da cidade do ‘Rio de Janeiro’

Exercício em Grupo Para o esquema relacional anterior, pede-se:  1. Projete um esquema ODL  2. Resolva as duas consultas em OQL