bancos de dados abordagens de sgbd prof. marcos r. cardoso

39
Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Upload: internet

Post on 22-Apr-2015

111 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de DadosAbordagens de SGBD

Prof. Marcos R. Cardoso

Page 2: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Hierárquico

Histórico• Não existe documentação original, não há

homologação

• Baseado IMS – Information Management System, mais utilizado ainda hoje

• Utilizado em ambientes corporativos – Mainframe

• Manteve-se, durante anos, à frente do modelo relacional pelas características das implementações

Prof. Marcos R. Cardoso

Page 3: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Hierárquico

Desvantagens• Dificuldade na implementação

• Buscas mais complexas pela necessidade de navegação na estrutura de árvore

Prof. Marcos R. Cardoso

Page 4: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Hierárquico

Características• Dados – representados em registros

• Registros – estrutura com itens de dados (atributo)

• Tipos de relacionamento pai-filho, cardinalidade 1:N, onde:• o registro do lado “1” é chamado de tipo registro

pai

• o(s) registro(s) do lado “N” chamado(s) tipo registro filho

Prof. Marcos R. Cardoso

Page 5: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Hierárquico

Exemplo 1

CD_FUNC NM_FUNC DS_ENDERECO

10 João Rua XV de Novembro

11 Maria Rua Paraíba

12 Cláudio Rua Itajaí

Prof. Marcos R. Cardoso

Funcionário

CD_FILHO NM_FILHO CD_FUNC

1 João Júnior 10

2 Gabriela 10

Filho_Funcionario

Page 6: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Hierárquico

Exemplo 2 (auto-relacionamento)

CD_FUNC NM_FUNC DS_ENDERECO CD_CHEFE

10 João Rua XV de Novembro

11 Maria Rua Paraíba 10

12 Cláudio Rua Itajaí 10

13 Gabriela Rua 7 de setembro 12

14 Márcio Rua São João 12

Prof. Marcos R. Cardoso

Funcionário

Page 7: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Hierárquico

Produtos• IMS

• MUMPS

• DMSII

• FOCUS

Prof. Marcos R. Cardoso

Page 8: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Rede

Histórico• Em 1971, relatório apresentado pelo Database Task

Group cria o CODASYL - Conference on Data Sistems Languages

• Em 1978 e 1981 novos conceitos são incorporados, passa ser conhecido como “Modelo de Rede”

• Linguagem Cobol como anfitriã (host)

• Não teve muito sucesso, pois a IBM decidiu manter o modelo hierárquico até a popularização do modelo relacional

Prof. Marcos R. Cardoso

Page 9: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Rede

Característica• Semelhante à abordagem hierárquica,

mas ao invés de um registro-filho ter somente um único registro-pai, era permitido que o registro-filho tivesse vários registros-pais.

Prof. Marcos R. Cardoso

Page 10: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Rede

Vantagens• Facilidade de implementação

• Agilidade nas consultas

Prof. Marcos R. Cardoso

Page 11: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Rede

Exemplo

Pedro

Márcio

José

Antônia

Prof. Marcos R. Cardoso

Projeto 1

Projeto2

Funcionario Projeto

Page 12: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Rede

Produtos• TurboIMAGE

• IDMS

• RDM Embedded

Prof. Marcos R. Cardoso

Page 13: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Relacional

Em 1970, Codd idealizou o modelo relacional utilizando-se da Álgebra Relacional (teoria dos conjuntos)

Marco na história dos BDAmbiente corporativo

Prof. Marcos R. Cardoso

Page 14: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Relacional

Resistência• Recursos computacionais

• Tempo de resposta elevado, praticamente inaceitáveis

• Mudança no paradigma de programação

Prof. Marcos R. Cardoso

Page 15: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Relacional

Em 1979, a empresa Ashton-Tate apresenta o dBase II

Ocorre um crescimento extraordinário

Borland compra a Ashton-TatedBase seria SGBD?

Prof. Marcos R. Cardoso

Page 16: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Relacional

Aspecto Estrutural• Tabelas (linhas e colunas)

Prof. Marcos R. Cardoso

CD_DEPTO NM_DEPTO VL_ORCAMENTO

100 Marketing 10.000,00

110 Manutenção 12.000,00

120 Pesquisa 7.000,00

DEPARTAMENTO

Page 17: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Relacional

Restrição de Integridade

CD_DEPTO NM_DEPTO VL_ORCTO

100 Marketing 10.000,00

110 Manutenção 12.000,00

120 Pesquisa 7.000,00

Prof. Marcos R. Cardoso

CD_FUNC NM_FUNC CD_DEPTO

1001 Maria 100

1002 José 100

1003 Paulo 110

DEPARTAMENTO FUNCIONARIO

Page 18: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Relacional

Manipulação dos dados• Restrição (linha)

• Projeção (coluna)

• Junção (mais de uma tabela)

Prof. Marcos R. Cardoso

CD_DEPTO NM_DEPTO VL_ORCTO

100 Marketing 10.000,00

110 Manutenção 12.000,00

120 Pesquisa 7.000,00

CD_FUNC NM_FUNC CD_DEPTO

1001 100 Maria

1002 100 José

1003 110 Paulo

DEPARTAMENTO FUNCIONARIO

Page 19: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD Relacional

Exemplos:• DB2

• Oracle

• SQL Server

• MySQL

• Interbase

• SyBASE

• Progress

Prof. Marcos R. Cardoso

Page 20: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OO

Adição de conceitos de OO a linguagens de banco de dados

Utilizar linguagens orientadas a objeto para tratar de bancos de dados que operam com conceitos de objetos persistentes

Os dados são objetos dentro do BD, e não linhas dentro de uma tabela

Prof. Marcos R. Cardoso

Page 21: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OO

Modelo de Dados Estrutura do Objeto

• Variáveis

• Mensagens

• Métodos Classe de Objeto

• Similaridade nos objetos

• Instâncias de objetos Herança

• Similaridade de classes

Prof. Marcos R. Cardoso

Page 22: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OO

Linguagem persistente• Transparência – não há uma conversão

explícita entre a OO e o relacional;

• Operações são realizadas de forma implícita;

• Trabalham com a SQL embutida;

• Exemplos: Smalltalk, C++, Java e C#

Prof. Marcos R. Cardoso

Page 23: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OO

Aplicações• Engenharia

• Aplicações Espaciais

• Telecomunicações

• Biologia Molecular

• Física das Partículas

• Certas áreas de finanças

Prof. Marcos R. Cardoso

Page 24: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OO

Vantagens• Rapidez (uso de ponteiros para navegar),

mas apenas em propósitos específicos

• Alto nível de abstração

Desvantagens• Orientado a aplicações específicas

• Não possui base matemática, como o modelo relacional

Prof. Marcos R. Cardoso

Page 25: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OO

Produtos• Gemstone

• Gbase

• Vbase

• Jasmine

• ObjectStore

• O2

Prof. Marcos R. Cardoso

Page 26: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

Características• Novos tipos de dados (complexos)

• Modelo relacional acrescido de orientação a objetos

• Linguagem padrão de acesso as estruturas do metadados

• Linguagem persistente ou extensão para manipulação de objetos

Prof. Marcos R. Cardoso

Page 27: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

Query SGBD Relacional

Query SGBD OR

Prof. Marcos R. Cardoso

SELECT C.Sobrenome||', '||C.PrimeiroNomeFROM Clientes C, Enderecos AWHERE A.cdCidade = C.cdCidadeAND A.nmCidade=“São Paulo”

SELECT Formal(C.Nome)FROM Clientes CWHERE C.endereco.nmCidade = “São Paulo”

Page 28: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

Exemplo

Prof. Marcos R. Cardoso

Título Autores Data (d,m,a) Palavras Chaves

Meta de vendas {Carlos, Ana} (18, março, 2003) {Estratégia, vendas}

Relatório aos Fornecedores

{Manoel} (23, maio, 2002) {Aquisição, compras}

Documentos

Page 29: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

Tipo complexo

Prof. Marcos R. Cardoso

Create type MinhaSequencia char varying;

Create type MinhaData

( dia integer,

mes char(10),

ano integer);

Create type Documento

( nome MinhaSequencia,

lista_autor setof (MinhaSequencia),

lista_palavras_chaves setof (MinhaSequencia),

data MinhaData);

Create table docs of type Documento;

Page 30: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

Herança

Prof. Marcos R. Cardoso

Create type Pessoa( nm_pessoa MinhaSequencia,

nr_CPF integer);

Create type Estudante( nm_curso MinhaSequencia) under Pessoa;

Create type Professor( nm_departamento MinhaSequencia) under Pessoa;

Create type AssintenteDeEnsino under Estudante, Professor;

Page 31: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

SGBD Oracle

Prof. Marcos R. Cardoso

/* criação do objeto */CREATE OR REPLACE TYPE obj_pessoa AS OBJECT( cd_pessoa NUMBER(3), nm_pessoa VARCHAR2(30), nr_telefone VARCHAR2(12), dt_nascimento DATE, MEMBER FUNCTION obter_idade RETURN NUMBER);

/* criação da tabela */CREATE TABLE clientes OF obj_pessoa;

Page 32: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

SGBD Oracle

Prof. Marcos R. Cardoso

/* descrevendo a estrutura */SQL> DESC obj_pessoa;Nome Nulo? Tipo------------------------------ -------- -------------CD_PESSOA NUMBER(3)NM_PESSOA VARCHAR2(30)NR_TELEFONE VARCHAR2(12)DT_NASCIMENTO DATE

METHOD------ MEMBER FUNCTION OBTER_IDADE RETURNS NUMBER

Page 33: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

SGBD Oracle

Prof. Marcos R. Cardoso

/* manipulação de dados */

SQL> INSERT INTO clientes VALUES (1, 'Joao Bento Goncalves', '4799999999', '01/02/1982');

1 linha criada.

Page 34: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

SGBD Oracle

Prof. Marcos R. Cardoso

/* recuperação dos dados */SQL> SELECT VALUE(c) 2 FROM clientes c;

VALUE(C)(CD_PESSOA, NM_PESSOA, NR_TELEFONE, DT_NASCIMENTO)---------------------------------------------------------------OBJ_PESSOA(1, 'Joao Bento Goncalves', '4799999999', '01/02/82')

SQL> SELECT c.nm_pessoa, c.obter_idade()2 FROM clientes c;

NM_PESSOA C.OBTER_IDADE()------------------------------ ---------------Joao Bento Goncalves 26

Page 35: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

SGBD Oracle

Prof. Marcos R. Cardoso

/* Criação do método */CREATE OR REPLACE TYPE BODY obj_pessoa AS MEMBER FUNCTION obter_idade RETURN NUMBER AS idade NUMBER; BEGIN SELECT TO_NUMBER(TRUNC(MONTHS_BETWEEN(SYSDATE,

dt_nascimento)/12),'999') INTO idade FROM clientes; RETURN idade; END;END;

Page 36: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

PostgreSQL

Prof. Marcos R. Cardoso

CREATE TABLE Pessoa(nome varchar(50), telefone numeric(12), endereco varchar(100));

CREATE TABLE PessoaFisica(idade numeric(3), cpf numeric(11), estado_civil char) inherits(Pessoa);

CREATE TABLE PessoaJuridica(cnpj numeric(15), insc_est numeric(12)) inherits(Pessoa);

Page 37: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

PostgreSQL

Prof. Marcos R. Cardoso

INSERT INTO Pessoa VALUES ('Sou pessoa', 1111111, 'Sem endereco');

INSERT INTO PessoaFisica VALUES ('Maria', 5487777, 'Rua Progresso, 87', 20,

02487555544, 'S');

INSERT INTO PessoaJuridica VALUES('Confeitaria BomBom', 2235874, 'Av Brasil 1500', 111111111111111, 0);

Page 38: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – AbordagensSGBD OR

PostgreSQL

Prof. Marcos R. Cardoso

SELECT nome FROM PessoaFisica;

SELECT nome FROM PessoaJuridica;

SELECT nome FROM Pessoa;

SELECT nome FROM ONLY Pessoa;

Page 39: Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso

Bancos de Dados – SGBDFuncionamento

Produtos• PostgreSQL

• Illustra

• Omniscience / Oracle Lite

• UniSQL

• Valentina

• Versões recentes de DB2, Oracle e SQL Server

Prof. Marcos R. Cardoso