Bancos de Dados
Abordagens de SGBD
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD 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
Bancos de Dados – Abordagens
SGBD Hierárquico

Desvantagens
• Dificuldade na implementação
• Buscas mais complexas pela necessidade de
navegação na estrutura de árvore
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD 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
Bancos de Dados – Abordagens
SGBD Hierárquico

Exemplo 1
Funcionário
CD_FUNC
NM_FUNC
DS_ENDERECO
10
João
Rua XV de Novembro
11
Maria
Rua Paraíba
12
Cláudio
Rua Itajaí
Filho_Funcionario
CD_FILHO
NM_FILHO
CD_FUNC
1
João Júnior
10
2
Gabriela
10
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD Hierárquico

Exemplo 2 (auto-relacionamento)
Funcionário
CD_FUNC
NM_FUNC
DS_ENDERECO
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
CD_CHEFE
Bancos de Dados – Abordagens
SGBD Hierárquico

Produtos
• IMS
• MUMPS
• DMSII
• FOCUS
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD 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
Bancos de Dados – Abordagens
SGBD 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
Bancos de Dados – Abordagens
SGBD Rede

Vantagens
• Facilidade de implementação
• Agilidade nas consultas
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD Rede

Exemplo
Funcionario
Projeto
Pedro
Projeto 1
Márcio
Projeto2
José
Antônia
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD Rede

Produtos
• TurboIMAGE
• IDMS
• RDM Embedded
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD Relacional
Em 1970, Codd idealizou o modelo
relacional utilizando-se da Álgebra
Relacional (teoria dos conjuntos)
 Marco na história dos BD
 Ambiente corporativo

Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD Relacional
 Resistência
• Recursos computacionais
• Tempo de resposta elevado,
praticamente inaceitáveis
• Mudança no paradigma de
programação
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD Relacional
Em 1979, a empresa Ashton-Tate
apresenta o dBase II
 Ocorre um crescimento
extraordinário
 Borland compra a Ashton-Tate
 dBase seria SGBD?

Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD Relacional

Aspecto Estrutural
• Tabelas (linhas e colunas)
DEPARTAMENTO
CD_DEPTO
NM_DEPTO
100
Marketing
10.000,00
110
Manutenção
12.000,00
120
Pesquisa
Prof. Marcos R. Cardoso
VL_ORCAMENTO
7.000,00
Bancos de Dados – Abordagens
SGBD Relacional

Restrição de Integridade
DEPARTAMENTO
CD_DEPTO
NM_DEPTO
100
Marketing
110
Manutenção
120
Pesquisa
FUNCIONARIO
CD_FUNC
NM_FUNC
CD_DEPTO
10.000,00
1001
Maria
100
12.000,00
1002
José
100
7.000,00
1003
Paulo
110
VL_ORCTO
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD Relacional

Manipulação dos dados
•
•
•
Restrição (linha)
Projeção (coluna)
Junção (mais de uma tabela)
DEPARTAMENTO
CD_DEPTO
NM_DEPTO
100
Marketing
110
Manutenção
120
Pesquisa
FUNCIONARIO
CD_FUNC
NM_FUNC
CD_DEPTO
10.000,00
1001
100
Maria
12.000,00
1002
100
José
7.000,00
1003
110
Paulo
VL_ORCTO
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD Relacional

Exemplos:
• DB2
• Oracle
• SQL Server
• MySQL
• Interbase
• SyBASE
• Progress
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD 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
Bancos de Dados – Abordagens
SGBD 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
Bancos de Dados – Abordagens
SGBD 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
Bancos de Dados – Abordagens
SGBD 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
Bancos de Dados – Abordagens
SGBD 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
Bancos de Dados – Abordagens
SGBD OO

Produtos
• Gemstone
• Gbase
• Vbase
• Jasmine
• ObjectStore
• O2
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD 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
Bancos de Dados – Abordagens
SGBD OR

Query SGBD Relacional
SELECT C.Sobrenome||', '||C.PrimeiroNome
FROM Clientes C, Enderecos A
WHERE A.cdCidade = C.cdCidade
AND A.nmCidade=“São Paulo”

Query SGBD OR
SELECT Formal(C.Nome)
FROM Clientes C
WHERE C.endereco.nmCidade = “São Paulo”
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD OR

Exemplo
Documentos
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}
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD OR

Tipo complexo
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;
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD OR

Herança
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;
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD OR

SGBD Oracle
/* 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;
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD OR

SGBD Oracle
/* descrevendo a estrutura */
SQL> DESC obj_pessoa;
Nome
Nulo?
------------------------------ -------CD_PESSOA
NM_PESSOA
NR_TELEFONE
DT_NASCIMENTO
Tipo
------------NUMBER(3)
VARCHAR2(30)
VARCHAR2(12)
DATE
METHOD
-----MEMBER FUNCTION OBTER_IDADE RETURNS NUMBER
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD OR

SGBD Oracle
/* manipulação de dados */
SQL> INSERT INTO clientes
VALUES
(1,
'Joao Bento Goncalves',
'4799999999',
'01/02/1982');
1 linha criada.
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD OR

SGBD Oracle
/* 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
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD OR

SGBD Oracle
/* 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;
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD OR

PostgreSQL
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);
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD OR

PostgreSQL
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);
Prof. Marcos R. Cardoso
Bancos de Dados – Abordagens
SGBD OR

PostgreSQL
SELECT nome FROM PessoaFisica;
SELECT nome FROM PessoaJuridica;
SELECT nome FROM Pessoa;
SELECT nome FROM ONLY Pessoa;
Prof. Marcos R. Cardoso
Bancos de Dados – SGBD
Funcionamento

Produtos
• PostgreSQL
• Illustra
• Omniscience / Oracle Lite
• UniSQL
• Valentina
• Versões recentes de DB2, Oracle e SQL
Server
Prof. Marcos R. Cardoso
Download

Bancos de Dados Abordagens de SGBD