quinta-feira, 28 de junho de 2012

Seminário





Banco de dados

Modelo de dados

Modelo Hierarquico

O modelo hierárquico foi o primeiro a ser reconhecido como um modelo de dados.Nesse
modelo, os dados são estruturados em hierarquias ou árvores.Os nós das
hierarquias contêm ocorrências de registros, onde cada registro é uma coleção de campos
(atributos), cada um contendo apenas uma informação. O registro da hierarquia que precede a
outros é o registro-pai, os outros são chamados de registros-filhos.
Os dados organizados segundo este modelo podem ser acessados segundo uma seqüência hierárquica
com uma navegação do topo para baixo e da esquerda para a direita.Um registro pode estar
associado a vários registros diferentes, desde que seja replicado.replicação possui duas grandes
desvantagens: pode causar inconsistência de dados quando houver atualização e o desperdício
de espaço é inevitável.Grande parte das restrições e consistências de dados
estava contida dentro dos programas escritos para as aplicações.Era necessário escrever
programas na ordem para acessar o banco de dados.Um diagrama de estrutura de árvore
descreve o esquema de um banco de dados hierárquico.



Modelo em Rede

O modelo em redes surgiu como uma extensão ao modelo hierárquico, eliminando o conceito
de hierarquia e permitindo que um mesmo registro estivesse envolvido em várias associações.
No modelo em rede, os registros são organizados em grafos onde aparece um único tipo de
associação (set) que define uma relação entre 2 tipos de registros: proprietário e membro.
Desta maneira, dados dois relacionamentos entre os registros A e D e entre os registros C
e D é possível construir um relacionamento entre A e D.O mecanismo de segurança fornecia
uma facilidade na qual parte do banco de dados (ou área) pudesse ser bloqueada para
prevenir acessos simultâneos, quando necessário.Estes dois modelos: Hierárquico e Rede
são Orientados a Registros, isto é, qualquer acesso à base de dados – inserção, consulta,
alteração ou remoção – é feito em um registro de cada vez.





Modelo Relacional

O modelo relacional apareceu devido às seguintes necessidades: aumentar a independência
de dados nos sistemas gerenciadores de banco de dados; prover um conjunto de funções
apoiadas em álgebra relacional para armazenamento e recuperação de dados; permitir
processamento dedicado.O Modelo relacional revelou-se ser o mais flexível e adequado ao
solucionar os vários problemas que se colocam no nível da concepção e implementação da
base de dados. O modelo relacional não tem caminhos pré-definidos para se fazer acesso aos
dados como nos modelos que o precederam.para trabalhar com essas tabelas, algumas restrições
precisaram ser impostas para evitar aspectos indesejáveis, como: Repetição de informação,
incapacidade de representar parte da informação e perda de informação. Essas restrições
são: integridade referencial, chaves e integridade de junções de relações.

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto começaram a se tornar comercialmente viáveis em
meados de 1980. A motivação para seu surgimento está em função dos limites de
armazenamento e representação semântica impostas no modelo relacional. Alguns exemplos
são os sistemas de informações geográficas (SIG), os sistemas CAD e CAM.Contudo, estes
sistemas necessitam guardar representações das estruturas de dados que utilizam no
armazenamento permanente.
O termo Modelo Orientado a Objetos é usado para documentar o padrão que
contém a descrição geral das facilidades de um conjunto de linguagens de programação
orientadas a objetos e a biblioteca de classes que pode formar a base para o Sistema de
Banco de Dados. Quando os bancos de dados orientados a objetos foram introduzidos,
algumas das falhas perceptíveis do modelo relacional pareceram ter sido solucionadas com
esta tecnologia e acreditava-se que tais bancos de dados ganhariam grande parcela do
mercado. Hoje, porém, acredita-se que os Bancos de Dados Orientados a Objetos serão
usados em aplicações especializadas, enquanto os sistemas relacionais continuarão a
sustentar os negócios tradicionais, onde as estruturas de dados baseadas em relações são
suficientes.







Arquitetura de banco de dados

Os usuários não costumam saber como estão organizados e armazenados os dados. 

Por este motivo um banco de dados deve apresentar os dados de forma que o usuário possa interpreta-los e modifica-los. Evidentemente, isto não pode ser aplicado a um informático que necessite saber onde se encontram fisicamente os dados para poder trata-los. 
Podemos destacar três níveis principais segundo a visão e a função que realize o usuário sobre o banco de dados: 





 O Nível Externo

•O nível externo é o nível do usuário individual.
umUsuário Final

a linguagem é uma linguagem deconsulta ou de uso especial, através de formulários oumenus,  
adaptada aos requisitos do usuário com suportea programas aplicativos on-line.

 O Nível Conceitual

•Avisão conceitual
é uma representação de todo oconteúdo de informações do banco de dados.•É uma forma um  
tanto abstrata em comparação com omodo como os dados são armazenados fisicamente.•A visão  
conceitual consiste em muitas ocorrências decada um dos vários tipos de registros  
conceituais. Porexemplo:

–Coleção de registros de departamentos;
–Coleção de registros de empregados;
–Coleção de registros de fornecedores;
–Coleção de registros de peças;


 O Nível Interno

•A visão interna
é uma representação de baixo nível dobanco de dados por inteiro.
•Consiste em muitas  
ocorrências de cada um dos váriostipos de
registros internos.
•Corresponde a construção que chamamos de registro armazenado.
•A visão interna ainda está muito afastada do nível físico“não manipula registros físicos” 
– conhecidos por blocos ou páginas.
•Também não leva em consideração especificaçõesespecíficas de dispositivos, tais como  
tamanho do cilindro ou trilha




•A visão interna é descrita por meio do esquema interno.
•Não só define os diversos tipos de registros armazenadosmas também especifica:
–Quais índices existem;–Como os campos armazenados estão representados;
–Em que seqüência física estão os registrosarmazenados;


Além dos três níveis básicos, uma arquitetura envolve, emgeral certos mapeamentos:

   O mapeamento conceitual/interno

Define a correspondência entre a visão conceitual e obanco de dados armazenado;

   Mapeamento externo/conceitual

–Define a correspondência entre uma visão externaespecífica e a visão conceitual;

Em geral, as diferenças que podem existir entre esses doisníveis são semelhantes às que  
podem existir entre a visãoconceitual e o banco de dados armazenado. Por exemplo:
•Os campos podem ter diferentes tipos de dados;
•Os nomes de campos e registros podem ser alterados;





SGBD (Sistema Gerenciador de Banco de Dados):



é um software com recursos
específicos para facilitar a manipulação das informações de um BD e o
desenvolvimento de programas aplicativos. Exemplos: Oracle, Paradox, MySQL,
Access, Interbase, Sybase.
Principais Características de SGBD:
·         
      Controle de redundância
·         Restrição a acesso não autorizado
·         Garantia de armazenamento persistente
·         Compartilhamento de dados
·         Backup e restauração
·          Restrições de integridade



Modelo de Dados
Uma das principais características da abordagem banco de dados, é que a mesma fornece alguns níveis de abstração de dados omitindo ao usuário final, detalhes de como estes dados são armazenados. Um modelo de dados é um conjunto que podem ser utilizados para descrever a estrutura lógica e física de um banco de dados. Por estrutura podemos compreender o tipo dos dados, os relacionamentos e as restrições que podem recair sobre os dados.
Os modelos de dados podem ser basicamente de dois tipos
. Alto nível: ou modelo de dados conceitual, que fornece uma visão mais próxima do modo comum os usuários visualizam os dados realmente;
. Baixo nível: ou modelo de dados físico, que fornece uma visão mais detalhada do modo como os dados estão realmente armazenados no computado.


Esquema e Istância
Em qualquer modelo de dados utilizado, é importante distinguir a ¨descrição¨ do banco de dados do ¨banco de dados¨por si próprio. A descrição de um banco de dados é chamada de ¨esquema de um banco de dados¨ e é especificada durante o projeto do banco de dados. Geralmente, poucas mudanças ocorrem no esquema de banco de dados.
Os dados armazenados em um banco de dados em um determinado instante do tempo formam um conjunto chamado de ¨instância do banco de dados¨. A instância altera toda vez que uma alteração no banco de dados é feita.
O SGBD é respnsável por garantir que toda instância do banco de dados satisfaça ao esquema do banco de dados, respeitando sua estrutura e suas restrições. O esquema de um banco de dados também pode ser chamado de ¨intensão¨ de um banco de dados e a istância de ¨extenção¨de um banco de dados.






terça-feira, 26 de junho de 2012

Redes




Internet é o conglomerado de redes, em escala mundial de milhões de computadores interligados, que permite o acesso a informações e todo tipo de transferência de dados.
A constante troca de informações entre computadores é possível graças a uma linguagem especial desenvolvida para a internet, denominada protocolo. A rede mundial se utiliza de inúmeros protocolos, que fazem parte de uma sequência de protocolos denominada TCP/IP.
Tal sequência de protocolos, baseia-se na identificação de cada computador, através de um endereço chamado IP; assim, é possível encaminhar dados de acordo com a associação de endereços realizada pelos protocolos.



Aplicações domésticas





Alguns dos usos mais populares da Internet para usuários domésticos são:




- Acesso a informações remotas.
- Comunicação entre pessoas.
- Entretenimento interativo.
- Comércio eletrônico.




Protocolo


Protocolo é um padrão de comunicação entre dois pc's, assim como o idioma português é o "protocolo" de idioma dos brasileiros. Existem os protocolos TCP/IP (que é usado na internet), protocolos UDP, menos utilizados. Por exemplo, o msn utiliza protocolos de envio e recebimento de mensagens diferente dos protocolos do ICQ, por isso não há comunicação entre si.
Fato importante a ser lembrado é que o protocolo de rede não depende do sistema operacional, por isso que os linuxers conseguem acessar a internet, porque o sistema obedece ao protocolo TCP IP e o HTTP.


Protocolos Humanos 


- Que horas são?
- Eu tenho uma pergunta
- Apresentações
- Regras de comportamento


Protocolos de Redes 



- Máquinas ao invés de humanos
- Toda atividade de comunicação internet é governada por protocolos.

Estrutura de redes


Borda da rede:
 - aplicações e hospedeiros


Sistemas finais (hospedeiros):
 - Executam programas deaplicação
  Ex.: Web, e-mail
 - Localizam-se nas extremidadesda rede


 Modelo cliente/servidor
 - O cliente toma a iniciativaenviando pedidos que sãorespondidos por servidores
  Ex.: Web client (browser)/server; e-mail client/server


 Modelo peer-to-peer:
 -Mínimo (ou nenhum) uso deservidores dedicados
 Ex.: Gnutella, KaZaA

Núcleo da rede: 
- roteadoresrede de redes- Malha de roteadoresinterconectados
 - A questão fundamental:
 como os dados são transferidosatravés da rede?


- Comutação de circuitos:
usaum canal dedicado para cadaconexão.
  Ex.: rede telefônica


- Comutação de pacotes:
dadossão enviados em “blocos”discretos


 Redes de acesso, meio físico:
 - enlaces de comunicação
Uma visão mais de perto da estrutura da rede:




(Material muito bom sobre estrutura: http://www.profallan.com/profallan.com/tp.pdf )
Recomendação: http://www.ietf.org/

segunda-feira, 28 de maio de 2012

IA





A inteligência artificial é um ramo de pesquisa da ciência da computação que busca, através de símbolos computacionais, construir mecanismos e/ou dispositivos que simulem a capacidade do ser humano de pensar, resolver problemas, ou seja, de ser inteligente.

Com a evolução computacional a inteligência artificial ganhou mais força, tendo em vista que o seu desenvolvimento possibilitou um grande avanço na análise computacional, podendo a máquina chegar a fazer análise e síntese da voz humana. No início os estudos sobre A.I. buscavam apenas uma forma de reproduzir a capacidade humana de pensar, mas assim como todas as pesquisas que evoluem, com essa não foi diferente.

O progresso na principal área dessa pesquisa, que é a de fazer uma inteligência similar à do ser humano, é lento. Porém, os estudos nessa área têm surtido efeito em várias outras áreas, como o planejamento automatizado e escalonamento, jogos, programas de diagnóstico médico, controle autônomo, robótica e outras mais. 


Na área da Visão Computacional e do Reconhecimento de Padrões em Imagens e Sinais Digitais, a verdade crua e dolorosa é que não existe um algoritmo de “Visão Computacional” genérico. A interpretação de padrões em imagens é um processo complexo e constituído de muitos passos. A interpretação de Imagens é realizada através de: 



Um conjunto de algoritmos (filtros) para imagens, cuja natureza varia dependendo do que se quer identificar e do tipo de imagem trabalhado.
Esses algoritmos são encadeados em uma "pipeline de processamento".
Serão sempre extremamente específicos para cada tarefa a ser realizada
Variação grande. Conjunto de algoritmos a ser utilizado varia:
De acordo com a tarefa
De acordo com as características da imagem.




domingo, 27 de maio de 2012

Sistema WEB






Web é uma palavra inglesa que significa teia ou rede. O significado de web ganhou outro sentido com o aparecimento da internet. A web passou a designar a rede que conecta computadores por todo mundo, a World Wide Web (WWW). Web pode ser uma teia de aranha ou um tecido e também se utiliza para designar uma trama ou intriga.
A web significa um sistema de informações ligadas através de hipermídia (hiperligações em forma de texto, vídeo, som e outras animações digitais) que permitem ao usuário acessar uma infinidade de conteúdos através da internet. Para tal é necessário ligação à internet e um navegador (browser) onde são visualizados os conteúdos disponíveis. São exemplos de navegadores: Google Chrome, Safari, Mozilla Firefox, Internet Explorer, Opera, etc.


Hipermidia e HipertextoHipertexto é o termo que remete a um texto em formato digital, ao qual agrega-se outros conjuntos de informação na forma de blocos de textos, imagens ou sons, cujo acesso se dá através de referências específicas denominadas hiperlinks, ou simplesmente links. Esses links ocorrem na forma de termos destacados no corpo de texto principal, ícones gráficos ou imagens e têm a função de interconectar os diversos conjuntos de informação, oferecendo acesso sob demanda a informações que estendem ou complementam o texto principal.


Hipermidia é o conjunto de meios que permite acesso simultâneo a textos, imagens e sons de modo interativo e não linear, possibilitando fazer links entre elementos de mídia, controlar a própria navegação e, até, extrair textos, imagens e sons cuja seqüência constituirá uma versão pessoal desenvolvida pelo usuário.





O que é um browser?
Um browser é um programa que permite navegar na internet. Em português o termo mais comum é navegador.
Existem vários browsers como por exemplo o Internet Explorer (IE), o Firefox, o Chrome, Safari, etc.
O primeiro browser que apareceu foi o Netscape (actualmente Firefox) que chegou a dominar o mercado. Mas a inclusão do IE no Windows acabou de vez com esta supermacia.
Esta reportagem foi feita por em Nova Iorque (Times Square) por um repórter da Google. Apenas 8% sabiam o que é um browser. Ninguém na entrevista tinha ouvido falar no Chrome (o browser da Google).



O que é Web 2.0
Quem usa a internet com freqüência percebeu significativas mudanças na maioria das páginas que visita. Há alguns anos, os sites estavam disponíveis como livros: as pessoas acessavam, liam e viam o que era de interesse e fechavam. No máximo, a comunicação com os desenvolvedores ou responsáveis pelo conteúdo era através de um email. Atualmente, uma página que se limitar a isso está fadada ao esquecimento.
Hoje, para uma página ser minimamente enquadrada nesse “segundo capítulo” da história da internet, ela deve fornecer experiência de conteúdo para o usuário. Este conteúdo deve ser dinâmico e aberto à participação dele, no mínimo. Deve fugir de blocos de textos e proporcionar opções de alcance daquilo que o usuário deseja.


(O que é Web 2.0): O nome da revolução.
Essas mudanças ganharam o nome de Web 2.0 e são talvez a maior revolução que a internet já passou como um todo. O “2.0” indica uma nova versão da internet, um novo capítulo, novos rumos para a grande rede. O objetivo é fornecer aos navegantes mais criatividade, compartilhamento de informação e, mais que tudo, colaboração entre eles, fazendo com que esses navegantes tomem parte nesta revolução.
Com base nestes conceitos, explodiram serviços de relacionamentos sociais, páginas repletas de vídeos, wikis, blogs e outros serviços com um traço em comum: a participação efetiva do usuário nos dois sentidos do tráfego de informação: recebe-se conteúdo dinâmico, fornece-se o mesmo tipo de informação com a mesma facilidade. O mais interessante disto tudo é que não se trata de uma revolução tecnológica ou atualização brusca. É simplesmente uma mudança na maneira de promover conteúdo dinâmico através da internet.

Ajax: Ciclo de vida e aplicação.





Deficiências da Web Atual
• Apenas descrições sintáticas
• Não há marcação semântica
• Apenas suporte sintático para descoberta,
composição e execução
– Usabilidade, acesso e integração de software
Problema Central da Web Atual
• O significado do conteúdo não é processável
às máquinas: falta semântica
• Grande cobertura, baixa precisão
• Resultados muito sensíveis ao vocabulário

domingo, 13 de maio de 2012

Computação Gráfica e Games

Computação Gráfica e Games            

                 As artes visuais digitais (também conhecidas como Computação Gráfica) é o estudo das imagens e efeitos visuais que são derivados da optica e transmitidos por aparelhos transmissores (Computadores, Televisões, Cinema e afins), com o intuito de passar aos olhos humanos imagens ou aspectos gráficos para o entretenimento.
                 Contudo, a vertente mais conhecida desta área é nada mais nada menos, que os bons e velhos conhecidos jogos, pois é graças às técnicas de edição visual e as ferramentas para manipulação de imagens, que os profissionais da área gráfica podem usar seus diversos conhecimentos sobre a física e matemática.
        Além do mais é graças aos games que a maioria da população acaba demonstrando interesse na área, pois com o atual crescimento do mercado de games, e o aumento dos fãs deste a tendência aos crescimento do mercado desenvolvedor e consumidor tende a crescer.

sábado, 12 de maio de 2012

Utilidades da Computação Gráfica


Gráficos para TV
Esse é o tipo de aplicação que vemos com mais frequência. Suas animações são mais voltadas para movimentação de logotipos e textos.

Visualização Científica
Na aplicação de estudos acadêmicos a computação gráfica tem um papel importante. Ela tem a tarefa de traduzir números e dados em representações gráficos de leitura mais fácil. Essas representações são chamadas as vezes de Visual Data Analysis.

Simulação
A computação gráfica, pode ser utilizada para simular acidentes ou acontecimentos importantes para um público maior. Esse tipo de simulação é muito utilizado em jornalismo, para ilustrar algum acontecimento. Nos EUA, existem empresas especializadas em criar simulações de acidentes de trânsito, para apresentação em tribunais.

Simuladores de Vôo
Os treinamentos de pilotos são realizados de maneira barata e segura nesses simuladores. Essa aplicação é mais restrita, já que os equipamentos envolvidos são caros.


MilitaresOs militares são consumidores ávidos por computação gráfica, pelo menos os militares americanos. Eles utilizam a CG para treinamentos e simulações de cenários envolvidos em conflitos. Os investimentos necessários para o desenvolvimento da informática e da computação gráfica, só foram possíveis graças a interesses militares.

Astronomia e espaço
Esse tipo de aplicação é muito semelhante a visualização científica, mas sua aplicação é mais ilustrativa do que acadêmica. Eventos que se passam a milhões de KM da nossa atmosfera não podem ser filmados com facilidade, então eles são apresentados ao público em geral na forma de uma animação. Existem aplicações científicas também, como estudo de trajetórias e simulação de colisões no espaço.

Arquitetura
A visualização de projetos arquitetônicos é extremamente difundida entre as pessoas que estão começando a trabalhar no mercado de CG. Todos se interessam pelas famosas “maquetes eletrônicas”. Esse interesse não é justificado pela aplicação comercial mais imediata desse produto. Existem mais pessoas interessadas em comprar esse tipo de CG. Com o crescimento do setor de construção, esse é um ramo da CG que só tende a crescer no nosso país.
Arqueologia
O uso de CG para arqueologia é muito parecido com o seu uso para arquitetura. A diferença é o objetivo. Na visualização arquitetônica, a CG mostra o que será construído e na arqueologia o objetivo é reconstruir um local, para mostrar como ela era no passado.

Medicina
Aplicações médicas são importantes na CG para desenvolvimento de treinamentos e auxílio em diagnósticos. Algumas empresas de CG são especializadas nesse tipo de aplicação, como eu já mostrei em um artigo publicado aqui.
Filmes
Acho que eu não preciso falar muito sobre esse tipo de aplicação, já que é uma área altamente divulgada. Aqui as aplicações da CG são fundamentais para contar uma história de maneira convincente. Nos últimos anos a CG tem tido um destaque mair pela presença de filmes completamente produzidos em CG.

Efeitos especiais
Esse ramo da CG tem relação direta com os filmes. Várias produções utilizam a exaustão efeitos especiais para contar uma história. Você já imaginou contar a história de Star Wars, sem efeitos especiais? Tanto a área de filmes como a de efeitos especiais exigêm hardware sofisticado e conhecimentos técnicos avançados, dos profissionais envolvidos na produção.

Publicidade
Utilizar a CG na publicidade ajuda a vender mais produtos, com a utilização de recursos sofisticados. Essa área é bem desenvolvida no nosso país e pode absorver muitos profissionais no futuro.

Comunicação corporativa
Com acesso facilitado a tecnologia, várias empresas utilizam a CG para realizar treinamentos e comunicados. Material produzido dentro da própria empresa pode ser atualizado de maneira mais fácil e rápida.

Educação
As aplicações da CG para educação são infinitas, podendo simular praticamente qualquer coisa com o objetivo de instruir e ensinar. O advento de instituições que utilizam ensino a distância, impulsiona esse mercado, já que boa parte do materia deve ser produzido em meios eletrônicos.
Jogos
O mercado de jogos eletrônicos sempre foi uma grande promessa no nosso país. Os jogos modernos consomem uma enorme quantidade de animações, modelos 3D e ilustrações. Esse é um mercado que tem poucos profissionais especiaizados e que pode trazer um bom retorno para quem se interessar.

Arte
A CG também tem aplicações para artistas interessados em desenvolver trabalhos em 3D e ilustração. Existem vários artistas desenvolvendo animações abstratas e simulações que envolvem formas e tempo.

Multimídia
Essa área é uma mistura de várias das aplicações citadas aqui. A habilidade de misturar textos, sons e imagens em uma interface com o usuário. Esse tipo de aplicação pode ser utilizado para vender produtos, apresentar idéias ou educar pessoas. Existem empresas e profissionais especializados em produzir esse tipo de material.Como você deve ter percebido, as aplicações da CG são variadas e algumas áreas se relacionam diretamente entre si. A escolha da área certa para atuar pode determinar o sucesso ou o fracasso de um profissional. Com esse artigo, pessoas que estão começando a sua jornada profissional na CG, podem escolher de maneira mais fácil a área em que desejam atuar."

Como podemos ver as áreas de atuação de CG são enormes, sendo uma realidade cada vez mais solida no cotidiano pessoal e profissional do homem.

sábado, 21 de abril de 2012

Banco de dados - NoSQL (Parte 02) - Resenha do dia 16/04/12

NoSQL

NoSQL são diferentes sistemas de armazenamento que vieram para suprir necessidades em demandas onde os bancos de dados tradicionais (relacionais) são ineficazes. Muitas dessas bases apresentam características muito interessantes como alto desempenho, escalabilidade, replicação, suporte à dados estruturados e sub colunas.

Os atuais bancos de dados relacionais são muito restritos a isso, sendo necessária a distribuição vertical de servidores, ou seja, quanto mais dados, mais memória e mais disco um servidor precisa. O NoSQL tem uma grande facilidade na distribuição horizontal, ou seja, mais dados, mais servidores, não necessariamente de alta performance. Um grande utilizador desse conceito é o Google, que usa computadores de pequeno e médio porte para a distribuição dos dados; essa forma de utilização é muito mais eficiente e econômica. Além disso, os bancos de dados NoSQL são muito tolerantes a erros.

No caso dos bancos NoSQL, toda a  informação necessária estará agrupada no mesmo registro, ou seja, em vez de você ter o relacionamento entre várias tabelas para formar uma informação, ela estará em sua totalidade no mesmo registro.

Mas qual a diferença entre bancos de dados relacionais e NoSQL?

Banco de dados Relacionais

O que é: baseia-se em que todos os dados estão guardados em tabelas, pelo conceito de entidade e relacionamento. Os dados são separados de forma única, tentando diminuir ao máximo a redundância, pois a informação é criada pelo conjunto dos dados, onde são as relações entre as tabelas que fazem esse serviço.
Características: tabelas, schema definido, hierarquia, redundância mínima, entidade e relacionamento, formas normais, transações ACID (Atomicidade, Consistência, Isolamento, Durabilidade).
Necessidades: sistemas locais, financeiros, corporativos; segurança da informação; consistência dos dados.
Cases: SAP, OpenERP, Previdência Social, Caixa, Itaú, Salesforce, Vale.

Banco de Dados NoSQL

O que é: uma solução alternativa para os bancos de dados relacionais, possuem uma alta escalabilidade e desempenho
Características: registros, schema-free, tolerância à falha, escalabilidade, clusterização, mapreduce, sharding.
Necessidades: sistemas em nuvem, análises sociais, alta escalabilidade, performance na consulta/escrita, replicação.
Cases:Twitter,Facebook, Digg, Amazon, LinkedlN, Google, Yahoo, The New York Times, Bit.ly.

Alguns exemplos de quando usar NoSQL
- Logging/ArquivamentoInsight em computação social.
- Integração de feed de dados externos.
- Sistemas de processamento de pedidos Front-end.
- Serviço de gerenciamento de conteúdo empresarial.
- Estatísticas/análises em tempo real


Banco de dados - SGBDs Relacionais (Parte 01) - Resenha do dia 16/04/12





SGBDs Relacionais
Desde sua criação no início dos anos 1970, o Modelo Relacional de dados tem sido utilizado em larga escala pela grande maioria dos sistemas de gerenciamento de banco de dados. Tendo surgido como sucessor dos modelos hierárquico e de rede, o modelo relacional tornou-se padrão para a grande maioria dos SGBDs (Sistemas Gerenciadores de Banco de Dados), tais como o SQL Server, Oracle, PostgreSQL, MySQL, etc. 
Seus elementos básicos são as relações (ou tabelas), as quais são compostas de linhas (ou tuplas) e colunas (ou atributos).Os dados estão estruturados conforme esse modelo. Outra característica fundamental desse modelo é a utilização de restrições de integridade. Esses elementos são utilizados para garantir que a integridade dos dados seja mantida. As restrições de integridade mais comuns são as chaves, mais especificamente, as chaves primárias e as chaves estrangeiras. 


A chave primária tem o objetivo de assegurar a identificação única das tuplas das tabelas. A chave estrangeira torna os valores de determinado atributo dependentes dos valores existentes em outro atributo, normalmente de outra tabela. Outra característica importante do Modelo Relacional é o processo de Normalização. Seu objetivo é a aplicação de certas regras sobre as tabelas do banco de dados, de forma a garantir o projeto adequado dessas tabelas. Uma característica básica da normalização consiste na separação dos dados referentes a elementos distintos em tabelas distintas, associadas através da utilização das chaves. 


Adicionalmente, o modelo relacional passou a adotar como linguagem de definição, manipulação e consulta de dados a SQL (Structured Query Language). Os SGBDs relacionais oferecem aos usuários processos de validação, verificação e garantias de integridade dos dados, controle de concorrência, recuperação de falhas, segurança, controle de transações, otimização de consultas, dentre outros. A utilização de tais recursos facilitou a vida dos desenvolvedores de aplicações, possibilitando que estes pudessem se preocupar exclusivamente com o foco da aplicação. Como um dos conceitos mais básicos do modelo relacional, as chaves representam uma forma simples e eficaz de associação entre as tabelas do banco de dados. 
A chave primária foi criada com o objetivo de identificar de forma única as tuplas da tabela e ainda de determinar a ordem física dessas tuplas. A chave estrangeira permite uma relação de dependência entre atributos de tabelas distintas, de forma que os valores permitidos em um atributo dependam dos valores existentes em outro atributo. Tais recursos são amplamente utilizados em bancos de dados relacionais e servem como base para a utilização de outros componentes, como é o caso dos índices. Estes elementos tornaram-se padrão para todo tipo de tabela por propiciarem um significativo ganho de desempenho no processamento de consultas. 


Além desses componentes, os SGDBs Relacionais possibilitam que múltiplos usuários possam acessar e manipular um mesmo banco de dados simultaneamente de forma eficiente, recurso indispensável para sistemas de grande porte. Outra característica importante dos SGDBs relacionais consiste na possibilidade do sistema se recuperar de forma adequada de possíveis falhas. O sistema tem a capacidade de retornar ao ponto anterior a falha ocorrida, garantindo que o banco permanecerá em um estado consistente. 
Todos esses recursos ajudaram a manter os SGDBs Relacionais em posição de destaque entre os mais diversos tipos de ambientes computacionais, mas não impediram o surgimento de certos problemas, principalmente devido ao crescimento vertiginoso do volume de dados presentes nos bancos de certas organizações.

domingo, 8 de abril de 2012

Extensão em computação (resenha do dia 09/04/12)


Como dito no site do Departamento de Ciência da Computação da UFBA,  os projetos de extensão constituem o espaço do exercício da função de vincular ensino/pesquisa e sociedade,  articulando a Instituição com os diversos segmentos sociais, tais como entidades governamentais, setor privado, comunidades, movimentos sociais, público consumidor de conhecimentos, artes e serviços. Desta forma, os projetos de extensão atualmente em curso na UFBA vêm priorizando as metas definidas pelo Plano Nacional de Extensão do Ministério de Educação. As atividades de extensão em computação são:


1. Projeto Criptografia e Computação Quântica.  (parceria entre o Departamento de Ciência de Computação e o Departamento de Matemática da UFBA)


 Essa área estuda métodos para processar computacionalmente a informação armazenada em estados quânticos. O projeto tem duas vertentes de ação: a primeira consiste na criação de um grupo de especialistas em informática quântica. O grupo, a ser criado, terá entre seus principais objetivos a realização de um curso e eventos científicos visando a formação de massa crítica no estado para pesquisas nesta nova fronteira tecnológica. A segunda vertente objetiva a realização de pesquisas fundamentais na área de Informação Quântica visando a construção de novas chaves (gates) lógicas quânticas e de novos algoritmos quânticos. O projeto visa dar o primeiro passo rumo ao estabelecimento futuro de uma rede estadual de pesquisa em Informação Quântica, visando justamente agregar e coordenar esforços no estado da Bahia.


2. Curso de Extensão em Software Livre.  (parceria entre Colivre, DCC, e SaferNet Brasil)


 Este projeto de extensão do DCC visa difundir o conhecimento tecnológico por meio da realização de cursos que envolvem direta ou indiretamente softwares que utilizam licenças livres. Desta forma, pretende-se suprir uma demanda de capacitação técnica oriunda da sociedade baiana em geral e, particularmente, da comunidade acadêmica para a apropriação dos softwares livres.


3. Programa Onda Digital. 


 O Programa Onda Digital é um projeto universitário, idealizado com o intuito de envolver professores, estudantes e funcionários da Universidade Federal da Bahia (UFBA) no processo de inclusão sócio-digital. O programa é coordenado pelo Departamento de Ciência da Computação (DCC). A missão desse programa é contribuir no processo de inclusão sócio-digital na Bahia, envolvendo a Universidade em ações educativas, sociais, culturais e de difusão da filosofia do software livre.

domingo, 25 de março de 2012

A importância dos grupos de pesquisa (resenha do dia 26/03/12)

 Em uma universidade, o corpo docente é fator fundamental no bom funcionamento da mesma. Porém, é importante lembrar dos grupos de pesquisa, criados com o intuito de ir além do que foi aprendido na sala de aula durante a graduação. Para o curso de Bacharelado em Ciência da Computação, existem diversos grupos, dentre eles: GAUDI, LES, LASID e MULTIVIUW.

 O Gaudi, Grupo de Algoritmos e Computação Distribuída, foca seus estudos nos algoritmos e em sua aplicação no desenvolvimento de componentes de software para facilitar a construção de sistemas confiáveis. Saber desenvolver algoritmos é essencial, logo mostrando a importância do Gaudi.

 LES é a sigla para Laboratório de Engenharia de Software. Como o nome já diz, o LES tem como objetivo estudar a disciplina de engenharia de software, bem como as o que influencia no método de desenvolvimento e de manutenção de software de cada profissional.

 LaSiD se entende por Laboratório de Sistemas Distribuídos, que tem como missão desenvolver métodos, técnicas e ferramentas que ajudem na confecção de sistemas distribuídos corretos e confiáveis, investigando problemas desafiadores para preparar a próxima geração de pesquisadores e desenvolvedores da área.

 Por fim, o MultiViUW, Laboratório de Pesquisa e Experimentação em Multimídia, Computação Visual, Computação Ubíqua e Web, tem como objetivo pesquisar e desenvolver em áreas que envolvem a interação entre a web e a computação de forma visual. Logo, como o nome diz, é um grupo que foca na área da multimídia e da computação visual.

 Existem outros grupos de pesquisa que não foram citados no post, como o Indigente, mas que possuem também uma grande importância na UFBA. É importante que o aluno busque conhecer melhor cada um dos grupos de pesquisa, para que possa ter um melhor entendimento da área, e até uma contribuição para a sua futura carreira profissional.

domingo, 18 de março de 2012

A recompensa pela dedicação (resenha do dia 19/03/12)



É certo que, atualmente, a educação e o ensino de qualidade são imprescindíveis na formação de um bom profissional. No Brasil, a educação de nível superior é relativamente melhor nas universidades federais. Isso se dá devido ao reconhecimento que as mesmas têm por agregar professores aptos ao cargo e competentes, garantindo aos seus alunos uma boa formação mesmo sem a necessidade de pagar uma mensalidade, mas ao custo de passar por um rigoroso processo seletivo antes.
 No curso de Bacharelado em Ciência da Computação, os alunos são preparados para atenderem as demandas do mercado de trabalho em relação às tecnologias de informação. Um egresso nesse curso é apto a solucionar problemas utilizando algoritmos e elaborando programas capazes de funcionar de forma coerente ao que lhe é programado, além de ser capaz de entender e aplicar modelos matemáticos em suas tecnologias.
 É importante lembrar que um aluno de BCC, assim como um de outro curso, possui o seu colegiado. Este o serve como a representação da sua classe fora da sala de aula, de forma a ouvir e tentar solucionar quaisquer problemas que ocorram durante a vida acadêmica. Os colegiados são como “pontes”, que unem os alunos aos professores e demais funcionários da área. Entender o que são e como funcionam esses colegiados é fundamental para um melhor aproveitamento da estadia do aluno na universidade, pois de nada adianta adotar um modelo de ensino que não permita que o aluno interaja com os seus mestres.

Introdução



Oi visitante, bem-vindo ao "Mendoratos".
Esse é um blog criado com o intuito de que os professores da disciplina de Seminários de Introdução ao Curso poderão acompanhar o trabalho dos alunos de forma mais próxima, podendo interagir ou promover debates e discussões acerca do curso em si, Bacharelado em Ciência da Computação, ou mesmo questionar sobre a nossa opinião em relação à instituição, Universidade Federal da Bahia, e aos seus métodos de ensino.
Esperamos que esse espaço possa servir para interação entre aluno e professor, de forma que atenda às necessidades de questionar e entender o curso e a instituição em si, bem como os profissionais na área e a função de cada um.

Integrantes do grupo

Os integrantes do grupo são:
Alan Militão Atta Magalhães
Antônio César de Santana
Felipe Cruz Rios Amaral
Gabriel Dantas Lopes
Manoel Denilson Marques da Silva Junior

Turma: Bacharelado em Ciência da Computação. 2012.1
Professores: Vaninha Vieira dos Santos, Gustavo Bittencourt Figueredo.