Sei sulla pagina 1di 60

BANCO DE DADOS

Tiago Alves de Oliveira


tiago.alves@uemg.br
Introdução
• O que são banco de dados?
O que são Bancos de Dados?
• Banco de Dados são coleções de informações que se
relacionam de forma que crie um sentido.
4

Histórico

• Crescimento da utilização da informática


• aumento na necessidade de processamento de dados
• práticas de armazenamento e processamento vem ampliando-se
ao longo dos anos
5

Histórico
• Década de 1960

• Dados armazenados em fitas magnéticas e Decks de cartão


perfurado.

• A leitura era feita sequencialmente, os programas realizavam seu


trabalho de forma específica.
6

Histórico (cont...)
• Final de 1960

• inicio da década de 1970

• Surgiram os discos rígidos e suas facilidades.

• Os dados não necessitam de processamento


“sequencial”.

• Nascimento dos banco de dados em rede e hierárquico.


• Organização por lista e arvores.
7

Histórico (cont...)
• Década de 1980
• Os projetos System R e SQL/DS, banco de dados
relacional.
• DB Relacionais X Rede e Hierárquicos.
• Durante os anos 80, os DB do tipo Relacional são
absolutos.
8

Histórico (cont...)
• Década de 1990
• Explosão da WEB, maior utilização dos sistemas de DB.
• Sistemas que aceitam interface para Web.
• DB voltados para consulta, utilização da linguagem SQL.
9

HISTÓRICO (CONT...)
• Anos 2000

• Surgimento da linguagem XML e XQUERY, um novo


conceito em Banco de Dados.
• A redução de esforços da administração de sistemas.
10

Fitas magnéticas
Introdução
• Por que estudar Bancos de Dados?
• Os Bancos de Dados fazem parte do nosso dia-a-dia:
• Escola/Universidade
• Reserva de hotel
• Cadastro em um site online
• etc
Por que estudar BD?
13

Qual a necessidade de Um BD?


Por que estudar BD?
• Considere uma grande organização que não utiliza BD.
• Várias subdivisões gerenciais
• Grande volume de dados
• Aplicações manipulam dados comuns
15

Tipos de Banco de Dados


 Arquivos simples. Exemplo: planilhas

 Distribuídos.

 Relacional
Exemplo de um BD
BDs nem sempre foram utilizados
• Sistemas de Arquivos (armazenados em pastas, no
disco):
• Funcionalidades oferecidas
• Registros de tamanho fixo com campos de tipos diferentes
• Possibilidade de memória virtual e persistência
• Índices: hash, árvore-B
• Bloqueio de arquivo e registro para concorrência

• Dados de diferentes aplicações não estão integrados


• Dados são projetados para atender uma aplicação
específica
Sistemas de arquivos
• Sistema de arquivos:
• Qual o problema abaixo?
Sistemas de arquivos
• Redundância leva a:
• inconsistência
• re-digitação de informações
• dificuldade de extração de informações
• Dados pouco confiáveis e de baixa disponibilidade
• Concorrência
• Complicado implementar
Sistemas de arquivos
• Tolerância a falhas
• Falta de luz, erro de disco, etc
• Cópias? Restauração do estado anterior? Consistência da base?
• Segurança
• Acesso diferenciado por tipo de usuário
• Outros problemas:
• Número máximo de arquivos
• Tamanho de memória
• Limitações do tipo de arquivo, tipo de acesso
• Preocupações técnicas junto com problemas do domínio
21

Como surgiram os bancos de dados?


Maiores dificuldades
Aumento do volume
de gestão.
de informação.

Surge os Banco de
Dados
Bancos de Dados
• Mesmo sistema anterior, mas usando banco de dados:
Sistema Gerenciador de Bancos de
Dados (SGBD)
• SGBD é:
• o conjunto de programas de computador (softwares) responsáveis
pelo gerenciamento de uma base de dados.
• Objetivo
• retirar da aplicação cliente a responsabilidade de gerenciar o acesso,
a manipulação e a organização dos dados.
• O SGBD disponibiliza uma interface para:
• Inclusão
• Alteração
• Consulta
• Exclusão
• Em bancos de dados relacionais a interface é constituída pelas
APIs (Application Programming Interface) ou drivers do SGBD,
que executam comandos na linguagem SQL (Structured Query
Language).
SGBD
• Envolve:
• A definição da estrutura para armazenamento das informações
• Fornecimento de mecanismos para manipular as informações
• SGBD precisa garantir a INTEGRIDADE dos dados,
evitando resultados anômalos
• Concorrência, por exemplo.
SGBD
• Objetivo:
• gerenciar o acesso, manipulação e organização dos dados.
• retirar da aplicação cliente a responsabilidade de gerenciar o acesso,
a manipulação e a organização dos dados.
• SGBD:
• O sistema omite detalhes
• Oferece mecanismos de busca eficiente
• Vantagens:
• rapidez na manipulação e no acesso à informação,
• redução do esforço humano (desenvolvimento e utilização),
• redução da redundância e da inconsistência de informações,
• redução de problemas de integridade,
• compartilhamento de dados,
• aplicação automática de restrições de segurança,
• controle integrado de informações distribuídas fisicamente.
26

Diferença entre SGBD X DB?


• Exemplo:
• chip do celular com os contatos:

( seria o banco de dados)


• Celular
 (seria o SGDB)
• pois permite que você inclua contatos, exclua, altere.
Bancos de dados semiestruturados
• São uma forma de dados estruturados que não estão de
acordo com a estrutura formal dos modelos de dados
associados com BDs relacionais
• As informações são guardadas e manipuladas na forma
de XML, por exemplo, ao invés de tabelas.
Bancos de Dados Orientados a objetos
 Como no modelo E-R, o modelo orientado a objetos tem
por base um conjunto de objetos.
 Um objeto contém valores armazenados em variáveis de
instâncias dentro do objeto.
 Um objeto também contém conjuntos de códigos que
operam esse objeto. Esses conjuntos de códigos são
chamados métodos.
Representação de bases de objeto

• Exemplo: considere uma coleção de três pessoas:


Maria tem dois filhos: José e Joana.
• Usando o conceito de identidade de objetos,
podemos representar esta coleção da seguinte forma:

{ pessoa:&p1{
nome:"Maria", idade:45, filho:&p2,filho:&p3
}
pessoa:&p2{
nome:"José", idade:23, mãe:&p1
}
pessoa:&p3{
nome:"Joana", idade:22, mãe:&p1
}
}
Representação de bases de objeto

• Representação em grafo

root pessoa
nome José
pessoa
pessoa filho
&p2
idade 23
Maria nome
&p1 mãe
filho
45 idade nome Joana

mãe &p3
idade 22
Banco de dados biológicos
• Constitui um grande conjunto de dados persistentes
• Geralmente contêm uma grande quantidade de registros.
• Ex.: Registro associado a uma sequência de nucleotídeos
• normalmente contém:
• Uma descrição do tipo de molécula;
• Seu nome científico;
• Citações na literatura correspondentes a esta sequência.
• Objetivo:
• permitir integrar e consultar, de forma otimizada:
• dados de sequências de DNA
• padrões de expressão de genes,
• estrutura de proteínas,
• consequências clínicas,
• dentre outros elementos resultantes de pesquisas efetuadas no projeto
genoma
Bancos de dados semiestruturados
• São uma forma de dados estruturados que não estão de
acordo com a estrutura formal dos modelos de dados
associados com BDs relacionais
• As informações são guardadas e manipuladas na forma
de XML, por exemplo, ao invés de tabelas.
Dados semi-estruturados ?
• Dados semi-estruturados: dados heterogêneos e
irregulares, por exemplo XML
• Novas aplicações requerem mais flexibilidade de
representação e estão constantemente evoluindo
o esquema
• Os modelos relacional e de objetos podem não
ser suficientes
Dados semi-estruturados ?
• Uma solução: usar um modelo de grafo para armazenar
os dados com características semi-estruturadas
• Origens de dados semi-estruturados:
• integração de fontes heterogêneas
• fontes de dados sem estrutura rígida
• dados biológicos
• dados da Web
Dados semi-estruturados ?
• Evolução:

• 1995: Projeto TSIMMIS, Modelo OEM na


Universidade de Stanford, EUA
• 1996: Projeto LORE, primeiro SGBD semi-
estruturado, Stanford
• 1999: aceitação de XML pela indústria para
representação de dados semi-estruturados
Uma sintaxe para dados semi-estruturados

• Dados semi-estruturados: dados sem esquema ou auto-


descritivos
• Não há separação entre os dados e o esquema
• Os dados contêm o esquema
• Exemplo
• {nome:"Ana", tel:"3334567", email:ana@abc.com.br}
• {nome:"Ana", tel:"3334567", tel:"9715432"}
• Aqui os valores são os dados atômicos
• Representação sob forma de grafos

nome nome
email tel
Ana tel Ana tel
ana@abc.com.br 9715432
3334567 3334567
Uma sintaxe para dados semi-estruturados

• Os valores podem ser objetos complexos


• Exemplo
{pessoa: {
nome:"ana", tel:"3334567"
}
},
{pessoa: {
nome:{pré-
nome:"Victor",sobrenome:"Bezerra"},
tel:"3218765"
}
},
{pessoa: {
nome:"Sandra"
}}
INTRODUÇÃO A XML
XML ?
• Uma linguagem de descrição de documentos,
definida pelo W3C
• Objetivo: definição de um formalismo para
facilitar a troca de dados na Web
Web:
• Padrão Web XML:
• XML gerado por aplicações
• XML consumido por aplicações
• Troca de dados
• entre plataformas: interoperabilidade na empresa
• entre empresas
… estão surgindo ...
• As novas aplicações
• Comércio Eletrônico
• Protocolos "B2B"
• Bibliotecas digitais
• sistemas distribuídos
• …
precisamos de um "super HTML"
XML

Um padrão W3C para complementar HTML


origens: textos estruturados em SGML
motivação:
HTML descreve apresentação
XML descreve conteúdo

http://www.w3.org/TR/REC-xml (2/98)
O Segredo do sucesso de HTML

Simplicidade: Todo mundo pode escrever HTML

HTML é textual: é legível, pode-se usar qualquer editor, ...

HTML é transportável em qualquer plataforma (o browser é a


aplicação universal)

HTML conecta pedaços de informação através de hypertext links


De HTML para XML

HTML descreve a apresentação


HTML

<h1> Bibliography </h1>


<p> <i> Foundations of Databases </i>
Abiteboul, Hull, Vianu
<br> Addison Wesley, 1995
<p> <i> Data on the Web </i>
Abiteoul, Buneman, Suciu
<br> Morgan Kaufmann, 1999
XML

<bibliography>
<book> <title> Foundations… </title>
<author> Abiteboul </author>
<author> Hull </author>
<author> Vianu </author>
<publisher> Addison Wesley </publisher>
<year> 1995 </year>
</book>

</bibliography>

XML descreve o conteúdo


Exemplo
• Suponha que um site de e-commerce precisa emitir uma nota fiscal
• Problemas:
• Diversos departamentos da empresa usam estes dados de notas fiscais
em diferentes plataformas, SO e linguagem de programação
Exemplo (cont)
• Melhor seria usar XML!

<?xml version=“1.0”>
<NotaFiscal>
<NomeCliente> Ana Silva </NomeCliente>
<EndCliente> Rua das Margaridas, Maceió, AL </EndCliente
<EndEnvio> Rua das Margaridas, Maceió, AL </EndEnvio>
<Item>
<codigo> 123 </codigo>
<descricao> Parafuso 8mm </decricao>
<quantidade> 20 </quantidade>
<preco> 3,00 </preco>
</Item>
<Item> … </Item>
</NotaFiscal>
Exemplo

ficha <ficha>
Sintaxe
nome trab tipo <nome>
<fn>Vera</fn>
<ln>Santos</ln>
fn ln IBGE end email gerente
</nome>
<trab tipo=“gerente">
Vera Santos cidade cep vera@ibge.br IBGE
<end>
<cidade>Natal</cidade>
Natal 52310
<cep>52310</cep>
</end>
Elementos fn <email>vera@ibge.br</email>
Atributos tipo </trab>
Dados 52310
</ficha>
Os segredos de XML
• Como HTML:
• simples, legível, fácil de aprender
• universal e transportável
• suportado pela W3C (indústria absorve!)
• Mas, Além de HTML
• flexível : podemos representar qualquer tipo de
informação
• extensível: pode-se representar informação de qualquer
forma
Mandamentos iniciais:
• XML deverá ser diretamente utilizável na Internet
• XML deverá suportar uma larga variedade de aplicações
• XML deverá ser compatível com SGML
• A criação de páginas XML deverá ser simples
• XML deve ser de grande legibilidade
• Criação de documentos deverá ser rápida
• Sintaxe deverá ser formal e concisa
Extensibilidade e estrutura
• Desenvolvedor pode inventar livremente as tags que lhes pareçam
úteis para marcar os componentes de um documento.
• Exemplo: diversas formas de representar uma data
• <date> 5 janeiro 2000 </date>
• <date>
<ano> 2000 </ano>
<mes> 01 </mes>
<dia> 05 </dia>
</date>
• <date format='ISO-8601'> 2000-01-05 </date>
• Grande liberdade de escolha das estruturas de dados facilita a
troca de dados
• comércio eletrônico
• transações financeiras e comerciais
• pesquisa e indústria de biotecnologias
• multimídia
53

Linguagens de Banco de Dados

 Dois tipos de linguagens:


1. específica para os esquemas do BD (Linguagens
de Definição de Dados - DDL)
2. para expressar consultas e atualizações
(Linguagem de Manipulação dos Dados - DML)
54

Linguagem de Definição de Dados(DDL)

Data-Definition Language
Para expressar a especificação do esquema de dados
resultado da compilação dos parâmetros DDL’s
armazenado em tabelas que constituem o dicionário de
dados ou diretório de dados
dicionário de dados: arquivo de metadados (dados a
respeito de dados)- no SGBD o diretório é consultado
antes que o dado real seja modificado
55

Linguagem de Manipulação dos Dados


(DML)

Data-Manipulation Language
manipulação de dados:

 recuperação das informações armazenadas


no BD
 inserção de novas informações no BD
 remoção de informações do BD
 modificação das informações do BD
56

Linguagem de Manipulação dos Dados


(DML)
 DML viabiliza o acesso (manipulação) dos dados de
forma compatível ao modelo de dados apropriado.
57

Linguagem de Manipulação dos Dados


(DML)

 Data-Manipulation Language
 Procedurais exigem que o usuário especifique quais
dados são necessários, e como obtê-los.
 Não Procedurais exigem que se especifique quais
dados são necessários, sem especificar como obtê-los.
 Linguagens de consulta (query) SQL
58

Administrador de Banco de Dados

 controle centralizado tanto dos dados quanto dos


programas de acesso a estes dados administrador de
dados (DBA).
Definição do esquema e definição da
estrutura de dados e método de acesso
Esquema e modificações na organização
física
Fornecer autorização de acesso ao sistema
Especificação de regras de integridade
59

Usuários de Banco de Dados

 Diferenciados pelas expectativas de interação com o


sistema.
 Programadores de aplicações - interagem com o
sistema através de chamadas DML, envolvidas por
programas escritos na linguagem hospedeira (por
exemplo, Pascal, C, Delphi).
 Usuários sofisticados - interagem sem escrever
programas. Formulam suas solicitações ao BD através
de linguagens de consultas.
60

Usuários de Banco de Dados

 Usuários especialistas - escrevem aplicações


especializadas de BD que não podem ser classificadas
como aplicações tradicionais em processamento de
dados

 Usuários navegantes - interagem chamando um


aplicativo permanentes já escritos.

Potrebbero piacerti anche