I- Introdu - PowerPoint PPT Presentation

About This Presentation
Title:

I- Introdu

Description:

I- Introdu o A Evolu o dos Modelos de Dados e dos Sistemas de Ger ncia de Banco de Dados – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 54
Provided by: edub47
Category:
Tags: introdu

less

Transcript and Presenter's Notes

Title: I- Introdu


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

2
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

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

4

Especificação
Implementação
5
Nível de Abstração
Especificação (Modelagem Conceitual)
Implementação (Modelagem Lógica)
BD II
Modelo de Objeto
Modelo Objeto- Relacional
Modelo de Entidade e Relacionamento
BD I
Modelo Relacional
6
I.2 Especificação Evolução dos Modelos
Conceituais
7
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

8
  • Pontos Negativos
  • Modelo estático

9
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)

10
  • 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

11
  • Exemplo de classe de objeto
  • Classe Estudante
  • Atributos
  • Matrícula ltlt chavegtgt
  • 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
12
  • 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
13
  • Multiplicidades de Relacionamento
  • 11
  • 1N
  • MN

14
  • 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

15
  • 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 11

16
  • 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()

17
  • 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)

18
  • 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

19
  • 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()

20
  • 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

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

Catálogo


Brinquedo
22
  • Agregação/Composição de Classes
  • Departamento é-parte-estrita-de Centro
  • UML

Centro

Depto
23
  • 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?

24
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

25
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

26
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,

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

28
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

29
  • 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

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

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

32
  • 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

33
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

34
BDOR Classificação de Stonebraker
35
BDOR Classificação de Stonebraker
36
BDOR Classificação de Stonebraker
37
BDOR Classificação de Stonebraker
38
BDOR Classificação de Stonebraker
39
BDOR Classificação de Stonebraker
40
BDR x BDOO x BDOR
41
I.4 Projeto de Banco de Dados

42
Requisitos
UML / ODL OQL (Padrão ODMG p/ BD OO)
Esq. Conceitual OO
Esq. Lógico R, OR
Oracle 11g Postgresql DB2 ...
Esq. Físico
43
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.

44
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.

45
Esquema UML
46
Exemplo
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) )
47
Exemplo
Representação Relacional
CREATE TABLE CLIENTE_VIP ( CODCLI
NUMBER(15) NOT NULL,
PONTOS_BONIFICACAO INTEGER 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 )
48
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) )
49
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 )
50
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 )
51

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 .
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'
52
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
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'
53
Exercício em Grupo
  • Para o esquema relacional anterior, pede-se
  • 1. Projete um esquema ODL
  • 2. Resolva as duas consultas em OQL
Write a Comment
User Comments (0)
About PowerShow.com