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;