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

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

Transcript of Bancos de Dados Abordagens de SGBD Prof. Marcos R. Cardoso.

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