aula 1 - Unisinos

Propaganda
Comunicação Digital – Banco de Dados
Banco de Dados
Prof.: Sandro Rigo & Ernesto Lindstaedt
Banco de dados
Roteiro:
• Revisão de conceitos básicos
• Histórico e exemplos de utilização
• Caso de estudo: comunidades
• Exercícios
Revisão de conceitos básicos
Exemplos:
http://www.amazon.com/
http://www.wikipedia.org/
http://www.google.com/
http://www.juonline.com.br/
http://www.uol.com.br/
http://www.flickr.com/
http://www.orkut.com
http://www.minha.unisinos.br
http://www.last.fm
http://del.icio.us/
http://creative.gettyimages.com
www.bb.com.br
http://www.receita.fazenda.gov.br/
http://servicos.capes.gov.br/capesdw/
http://www.imdb.com/
http://www.unisinos.br/oqueedesign/
Revisão de conceitos básicos
Exemplos de aplicações:
Google, cms mambo, juonline, uol, flickr, orkut, minhaunisinos,
last.fm, del.ici.us, xingu, getimages, bancos, correios, receita
federal, portal capes, imdb, blog design, pagina de professores,
amazon, submarino, ...
Interação (ponto de vista do usuário):
- acesso ao site
- escolha de opções
- recebimento de resultados
- ....
Pontos em comum:
- estrutura de armazenamento de dados
- formato padrão e eficiente de acesso aos dados
Revisão de conceitos básicos
Dados:
indicações de fatos que podem ser armazenados e tratados
individualmente.
Base de dados:
conjunto de dados relacionados entre si com alguma lógica particular.
Sistema Gerenciador de Banco de Dados (SGBD):
aplicação integrada contendo funções necessárias para a criação,
manutenção e gerência de bases de dados.
Conceitos Básicos de Bancos de Dados
Sistema Gerenciador de Banco de Dados (SGBD)
- aplicação integrada permitindo:
- criação de bases de dados
- acesso seguro (usuários/grupos/privilégios)
- manutenção de bases de dados
- integração com aplicações
- gerenciamento de transações
- opções de conectividade
- diversidade
- ferramentas comerciais, código aberto
- escalas (centenas a milhões de registros)
- dados específicos (alfanuméricos, imagens, sons..)
- utilização em rede, na web, isolada, ...
Revisão de conceitos básicos
cf. Matoso
Alguns SGBDs...
•
•
•
•
•
•
•
•
•
•
•
•
Firebird
Microsoft SQL Server
IBM DB2
PostgreSQL
IBM Informix
Apache Derby
Interbase
MySQL
Oracle
SQLite
Sybase ASE
ZODB
Conceitos Básicos de Bancos de Dados
Exemplos de usos do SGBD: portal web (IBM Websphere)
Conceitos Básicos de Bancos de Dados
Exemplos de usos do SGBD: integração de diversas aplicações e
bases de dados em portal web (Peoplesoft)
Conceitos Básicos de Bancos de Dados
Exemplos de usos do SGBD: Framework web (Zope => objetos)
Conceitos Básicos de Bancos de Dados
Exemplos de usos do SGBD: Framework web semântica (KAON)
Revisão de conceitos básicos
Armazenamento
centralizado x distribuído
Revisão de conceitos básicos
Alguns exemplos - tamanho:
Orçamento pessoal
436 Kbytes (103)
Algumas músicas/vídeos
30 Mbytes (106)
Empresa de contabilidade
180 Gbytes (109)
Universidade
3 Tbytes (1012)
Empresa de Energia Elétrica
4 Tbytes
Yahoo/Google
20-40 milhões de documentos
NASA (Monitoramento)
3 Tbytes por dia
Earth simulator
700 Tbytes
Blue Gene
1,1 Pbytes (1015)
Google
2-5 Pbytes
GridK
4,2 Pbytes
San Diego Supercomputer Center
6
Pbytes
Visão geral de aplicação web com SGBD
SGBD
lista.htm
Lista.....
lista.php
index.htm
Insere Lista
insere.htm
Formulário
inseriu.htm
Resultado.....
insere.php
Conceitos Básicos de Bancos de Dados
Banco de dados Relacional
Modelo de implementação de banco de dados no qual são
utilizados relacionamentos entre conjuntos de dados.
Os conjuntos de dados são dispostos em elementos
específicos (tabelas) que possuem atributos para relacionamento.
Difere de outros formatos
BD orientado a Objetos
BD Objeto Relacional
BD específicos, para casos típicos (imagem, som,..)
Conceitos Básicos de Bancos de Dados
Componentes do SGBD:
- Base de dados: organização de um conjunto de dados em
uma forma coerente para uma determinada aplicação
- Tabela: estruturação de grupos de dados
relacionados de forma operacional
- Campo: componente unitário de uma
tabela
- Registros: implementação do
armazenamento de dados
Conceitos Básicos de Bancos de Dados
Componentes do SGBD:
- Base de dados: Elementos_de_TI
- Tabela: cadastro
- Campo: nome: char[40], idade:integer
- Registros: “José Carlos”, “34”
Revisão de conceitos básicos
Campos (atributos): elementos unitários de um agrupamento de dados,
representando atributos de entidade do mundo real
Registro (tupla): conjunto único de campos, representando entidade do
mundo real
Tabela : organização de campos e de registros
Chave: elemento (campo) usado na identificação de registros em tabelas,
ou na geração de índices
Chave-primária: utilizada na identificação de registros em uma tabela
Chave-estrangeira: utilizada para indicação de relações entre tabelas
Revisão de conceitos básicos
Linguagem de consulta
Permite:
- a descrição de tabelas, com indicações de campos e tipo de dado
para cada campo
- a aplicação de operações de álgebra relacional, como seleção,
projeção ou junção
- a inserção de novos dados ou atualização e deleção de dados
armazenados
Linguagem de consulta
Implementação
Etapa 1: criação da base de dados
Implementação
Linguagem SQL
CREATE TABLE `equipe` (`id` INT NOT NULL
AUTO_INCREMENT ,
`nome` VARCHAR( 60 ) NOT NULL ,
`nacionalidade` VARCHAR( 60 ) NOT NULL ,
`data_nascim` DATE NOT NULL ,
`premios` VARCHAR( 120 ) NOT NULL ,
`naturalidade` VARCHAR( 60 ) NOT NULL ,
`mini_biografia` VARCHAR( 255 ) NOT NULL ,
`home_page` VARCHAR( 120 ) NOT NULL ,
`email` VARCHAR( 120 ) NOT NULL ,
`sexo` CHAR( 1 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
Formulário
Web para
Inserção de
filme:
Não foi implementada
como documento
HTML
A tabela “equipe” foi
consultada para a
montagem da lista de
seleção de diretores
Inserção de gênero:
Trecho da codificação:
.....
$sql = "INSERT INTO `genero` ( `id` , `nome` , `observacoes` )
VALUES ('', '".$nome."', '".$obs."')";
$result = mysql_query($sql, $link);
if (!$result) {die('Query inválida: ' . mysql_error()); }
mysql_close($link);
echo("<br>Dados recebidos: <hr>
Nome: $nome<br>
Observações: $obs<br><hr>");
Inserção de gênero:
TABELA
CAMPOS
Trecho da codificação:
.....
$sql = "INSERT INTO `genero` ( `id` , `nome` , `observacoes` )
VALUES ('', '".$nome."', '".$obs."')";
$result = mysql_query($sql, $link);
VALORES
if (!$result) {die('Query inválida: ' . mysql_error()); } RECEBIDOS
mysql_close($link);
DO
FORMULÁRIO
echo("<br>Dados recebidos: <hr>
Nome: $nome<br>
Observações: $obs<br><hr>");
Consulta por filme/diretor:
Formulário:
Opção de indicação de
nome de filme ou de nome
de diretor
Consulta por filme/diretor:
Teste: Opção de nome de filme com a letra “A”
Exemplo de revista eletrônica
Exemplo de acesso ao conteúdo de revista eletrônica
Exemplo de revista impressa
Exemplo de acesso ao conteúdo de revista impressa
Documento de visão
Projeto:
Solicitante:
Setor:
Centro de Custos:
Data:
JUSTIFICATIVA / SITUAÇÃO ATUAL
OBJETIVOS
ESCOPO
REQUISITOS FUNCIONAIS / NÃO-FUNCIONAIS
ATORES / PAPÉIS
PREMISSAS
RESTRIÇÕES
Documento de requisitos
REQUISITOS
Id: RF001
Identificação do Requisito: Cadastro
Prioridade: Alta
Importância: necessário
Complexidade: média
Descrição: realização de cadastro simples (nome, email,
nome de acesso na web, senha de acesso ao sistema
gerador). Este cadastro pode ser vinculado aos registros da
Universidade, para autenticação com senha única, ou não.
Hoje existem as duas possibilidades
• Caso de estudos :
– Gerenciador de conteúdo Web
Arquitetura da informação
• Em um projeto: perguntas iniciais
– O que é ?
– Qual o motivo ?
– Quem vai usar ?
– Como avaliar ?
Arquitetura da informação
• Definições do projeto:
– Missão e visão do site web
– Definição de conteúdo
– Escolha de funcionalidades
– Interação do usuário:
• organização, navegação, terminologia
• Sistemas de apoio (busca, auxílio)
• Previsão de escala e modificações
Arquitetura da informação
• Perspectivas
– usuário/consumidores
• facilidade de entendimento
• localização da informação desejada
• acomodação de diferenças
– produtores/editores
• implementação de melhorias
• inserção de novos conteúdos
• definições de políticas de consenso
Arquitetura da informação
• Conhecimentos necessários
– Designer gráfico
– Bibliotecário
– Jornalista
– Engenheiro de usabilidade
– Analista de Marketing
– Analista de sistemas
Arquitetura da informação
• Processo geral
– Levantamento de requisitos
– Descrição do conteúdo e seu
relacionamento (mapa do site)
– Organização da interface (interação:
telas)
– Layout (web design)
– Implementação (html, scripts, BD,
Arquitetura da informação
• Processo geral
Documentos
descritivo geral (mapa de
informações)
esquema das interfaces (wire-frame)
layout (design gráfico)
Arquitetura da informação
• Processo geral
Documentos
descritivo geral (mapa de
informações)
esquema das interfaces (wire-frame)
layout (design gráfico)
Arquitetura da informação
• Processo geral
Documentos
descritivo geral (mapa de
informações)
esquema das interfaces (wire-frame)
layout (design gráfico)
Arquitetura da informação
• Processo geral
Documentos
descritivo geral (mapa de
informações)
esquema das interfaces (wire-frame)
layout (design gráfico)
Arquitetura da informação
• Processo geral
Documentos
descritivo geral (mapa de
informações)
esquema das interfaces (wire-frame)
layout (design gráfico) +
implementação
Arquitetura da informação
• Processo geral de construção
– Levantamento de requisitos
– Descrição do conteúdo e seu
relacionamento (mapa do site)
– Organização da interface (interação:
telas)
– Layout (web design)
– Implementação (html)
Exemplo
- banco de dados para implementação de menus e itens.
Exemplo
- banco de dados para implementação de menus e itens.
Exemplo
- banco de dados para implementação de menus e itens.
Exemplo:
Menu:
Início
Graduação
Vestibular
Exemplo:
Menu:
Início
Graduação
Vestibular
Exemplo:
Menu:
Início
Graduação
Vestibular
Exemplo:
Menu:
Início
Graduação
Vestibular
Exemplo:
Menu:
Início
Graduação
Vestibular
Exemplo:
Menu:
Início
Graduação
Vestibular
SELECT conteudo.conteudo
FROM conteudo
WHERE conteudo.id=item.valor
And Menu.idMenu=item.idMenu
And idMenu=1;
Download