UNIVERSIDADE ESTATUDAL DE MARINGÁ Programa de Pós-graduação em desenvolvimento de sistemas para web. João Eduardo Rosa da Fonseca

Tamanho: px
Começar a partir da página:

Download "UNIVERSIDADE ESTATUDAL DE MARINGÁ Programa de Pós-graduação em desenvolvimento de sistemas para web. João Eduardo Rosa da Fonseca"

Transcrição

1 UNIVERSIDADE ESTATUDAL DE MARINGÁ Programa de Pós-graduação em desenvolvimento de sistemas para web João Eduardo Rosa da Fonseca Visão comparativa de gravação de arquivos em sistema de arquivos e em banco de dados utilizando servidor web Maringá 2013

2 UNIVERSIDADE ESTATUDAL DE MARINGÁ Programa de Pós-graduação em desenvolvimento de sistemas para web João Eduardo Rosa da Fonseca Visão comparativa de gravação de arquivos em sistema de arquivos e em banco de dados utilizando servidor web Trabalho de conclusão do programa de pósgraduação em desenvolvimento de sistemas web da universidade estatual de Maringá para obtenção do título de especialista em desenvolvimento web Orientador: Munif Gebara Junior 2 Maringá 2013

3 3 A minha família e amigos, Pela ajuda e incentivo durante minha trajetória

4 AGRADECIMENTOS A todos que contribuíram para a realização deste trabalho, fica expressa aqui a minha gratidão especialmente: Ao professor Munif Gebara Junior, pela orientação, aprendizado e apoio durante todo os momento necessários. Aos meus colegas de classe durante toda trajetória do curso e pelas amizades que permaneceram após o termino da etapa presencial. Aos meus amigos que me apoiaram e me ajudaram de alguma forma após o meu acidente de carro que ocorreu durante a etapa de escrita do presente trabalho, em especial aos senhores Alessandro Willian e Ulter Witte que me receberam em Florianópolis e me ajudaram. Ao mestre e grande amigo Alex Mattos que leu e revisou o presente trabalho por algumas vezes. Ao senhor Edilson Hipolito, o qual eu conheci durante o curso e tive a honra de ser seu padrinho de casamento. Ao metallica e aos discos death magnetic e S&M, pink floyd e aos discos dark side of the moon e pulse, assim como tantas outras bandas que compuseram obras primas que me animaram durante a escrita deste trabalho. A minha família que me apoiou sempre que necessário. A todos que de alguma forma apoiaram para esta construção. 4

5 Visão comparativa de gravação de arquivos em sistema de arquivos e em banco de dados utilizando servidor web João Eduardo Rosa da Fonseca 1 Resumo O presente trabalho apresenta uma estudo de análise de comparação da gravação de arquivo enviados pela web e armazenado de duas formas diferente, em sistema de arquivo e em banco de dados. Para isso foram escolhidos quatro diferentes banco de dados sendo três no modelo relacional e um do modelo NoSQL, no caso dos modelos relacionais, foram escolhidos banco de dados com licenças do tipo freeware, GPL, Comercial, que são os bancos de dados Postgres, MySql e oracle, já no modelo NoSql foi escolhido o MongoDB. Os resultado obtidos mostram que ambos os métodos de gravação de arquivos possuem suas vantagens e desvantagens. Entre as vantagens apresentadas no caso dos bancos de dados existem a manipulação de partes específicas dos arquivos, sistema de bakcup incremental nativo do próprio gerenciados do banco de dados, melhor performance na inserção e buscas dos dados no caso dos bancos NoSql. Já as desvantagens nos bancos de dados estão no aumento do espaço de armazenamento, perda de performance após a inserção de vários registros na tabela dos bancos relacionais. Já a vantagens na gravação de arquivos no sistema de arquivos são a fácil implementação, o arquivo ser uma cópia fiel ao arquivo de origem sem aumentar o tamanho ou adicionar bytes de controle e a não instalação de um software gerenciador. Já as desvantagens estão presente na hora de realizar backups, comprar diferença de versões de arquivo, gerenciamento e localização de arquivos. Palavra chave: banco de dados NoSql, banco de dados relacional, gravação de dados. 5

6 LISTA DE FIGURAS LISTA DE TABELAS 6

7 LISTA DE SIGLAS ASCII American Standard Code for Information Interchange BLOB Binary large object CD Compact disk CLOB Caracter larg object DVD Digital Versatile Disc IBOPE Instituto brasileiro de opinião pública e estatísticas LOB Large object HTTP Hypertext Transfer Protocol NCLOB - National Character Large Object NoSQL Not only SQL ORDBMS object-relational database management system PHP Hypertext Preprocessor SQL Structured Query Language SSD Solid state disk UOL Universo on-line 7

8 SUMÁRIO 1.INTRODUÇÃO DESENVOLVIMENTO SOBRE CLIENTE/SERVIDORES SERVIDORES DE ARQUIVO SERVIDORES DE BANCO DE DADOS SERVIDORES WEB SOBRE ARQUIVOS SOBRE BANCO DE DADOS RELACIONAIS NÃO RELACIONAIS SOBRE GRAVAÇÃO DE ARQUIVOS GRAVAÇÃO EM FILE SYSTEM GRAVAÇÃO EM BANCO DE DADOS ORACLE MYSQL POSTGRESQL MONGODB CONSIDERAÇÕES FINAIS MYSQL

9 3.1.1.POSTGRES ORACLE MONGODB RESULTADOS CONCLUSÃO REFERÊNCIAS Introdução Segundo reportagem do portal de tecnologia do UOL(Universo on-line) em 1 o de novembro de 2012 com o título de Ibope: internet no Brasil chega a 70,9 milhões de pessoas em casa e no trabalho, exibe dados coletados por pesquisas do IBOPE(Instituto brasileiro de opinião pública e estatísticas) sobre o crescimento de pessoas no Brasil que acessam a internet em casa e no trabalho, no mês de setembro de 2012 esse número atingiu 70,9 milhões de usuários, sendo que crescimento do números de usuários ativos em setembro de 2012 foi 1,4% maior em relação a agosto do mesmo ano e 11% maior que no mesmo período de (UOL notícias, 2013) Em outra reportagem publicada no portal exame da editora abril em 02 de junho de 2011 com o título: Você sabe o tamanho da internet?, que toma como base os estudo visual networking index realizado pela cisco que afirma que A estimativa é de que, hoje, o trafego da internet produz por hora informações suficientes para ser contidas em 7 milhões de DVDs (Exame.com, 2013). O estudo realizado pela cisco ainda prevê que em 2015 o trafego por hora produza 966 exabytes de informação, o que daria para preencher 28 milhões de DVDs. 9

10 Essas duas reportagens mostra que popularização da internet por meio de banda larga, e a quantidade de conteúdo produzido na internet mostra que cada vez mais o armazenamento de grande capacidade de dados será necessária. Para esse armazenamento existem diversas técnicas de recebimento, processamento e armazenamento dos dados produzidos. Essas técnicas variam desde a gravação do arquivo em uma pasta do sistema operacional, até do armazenamento dos dados e documentos como registros de banco de dados. 2. Desenvolvimento Inicialmente para entendimento da diferença entre a gravação dos documentos em forma de arquivos, é necessário entender a diferença básica entre as duas forma de armazenamento, a em arquivo de sistema e como registro em banco de dados. A gravação de arquivos em sistema de arquivos(file system) originados de uma requisição web é realizada é chamada de upload. O arquivo é envidado para um servidor web via protocolo http, onde o servidor recebe e armazena o arquivo em uma pasta no seu disco, nesse caso o usual é que no banco de dados fique armazenado o nome do arquivo com o seu caminho físico em disco. (Searchnetworking, 2013) Já no upload e gravação de arquivo em banco de dados, o arquivo é convertido uma cadeia de byte, cada banco de dados tem seu tipo de dado(data type) para armazenar cadeias de bytes, essa cadeia de bytes é enviada para uma coluna no banco de dados(searchnetworking, 2013), dependendo do tamanho do arquivo é possível ser armazenado em um só registo, mas em alguns data types tem limitações de tamanho dos dados, fazendo assim que se use uma estratégia onde 10

11 arquivo é quebrado em várias cadeias de bytes e essas cadeias são inseridas em vários registros no banco de dados. Quando o usuário requisita o arquivo, é necessário que o registro ou registros sejam recuperado e convertido novamente para arquivo através de um algoritmo Sobre Cliente/servidores Na arquitetura cliente/servidor, o servidor seria o responsável pelo controle e centralização de informações que são compartilhadas e acessadas por computadores em uma rede, os computadores que fazem o acesso ao servidor são nomeados de clientes. segundo Júlio Battisti : É uma arquitetura onde o processamento da informação é dividido em módulos ou processos distintos. Um processo é responsável pela manutenção da informação (Servidor), enquanto que outro é responsável pela obtenção dos dados (Cliente) (BATTISTI, 2001). Assim sendo, a arquitetura de cliente servidor pode ser utilizado tanto na forma de gravação de arquivos via file system, assim como na gravação de arquivos em banco de dados. também é necessário entender que para que a arquitetura de cliente/servidor funcione de forma eficiente, há um componente vital entrer o cliente e o servidor, que é a infraestrutura de rede. Essa infraestrutura de rede influencia diretamente na performance de subira(upload) e descida(download) dos arquivos do servidor para o cliente, assim sendo, uma rede melhor estruturada, com equipamentos de alta velocidade, ou mesmo a utilização de serviços de banda largar no caso da internet fazem com que arquivos sejam enviado e recuperado no servidor de forma mais ágil e rápida. Outra coisa que influencia na velocidade é o poder de processamento do servidor, a quantidade de memória e quantos acessos o servidor está recebendo no instante da recuperação de arquivos. Pois quanto maior o número de acessos, maior é o consumo de memória do servidor e maior é o 11

12 consumo da banda da rede, tornado assim mais lento o acesso e recuperação do arquivo armazenado no servidor. Segue a ilustração da arquitetura cliente/servidor. Figura - Arquitetura cliente/servidor Fonte :Cliente/Servidor, 2013 Nos próximos capítulos iremos explorar mais a fundo o funcionamento de toda a estrutura da arquitetura cliente/servidor Servidores de arquivo Segundo o site da microsoft sobre servidores de arquivo: O servidor de arquivos fornece um ponto centralizado na rede para armazenamento e compartilhamento de arquivos entre os usuários. Quando desejarem usar um arquivo importante, como um planejamento de projeto, os usuários podem acessá-lo diretamente no servidor de arquivos, em vez de precisarem repassar o arquivo entre cada computador. Se os usuários da rede precisarem acessar os mesmos arquivos 12

13 e aplicativos acessíveis pela rede, configure o computador como servidor de arquivos. (Microsoft, 2012) Assim sendo, o servidor de arquivo tem um papel fundamental nas empresas, centralizando o compartilhamento de arquivos e sendo uma tentativa de evitar que esses arquivos seja compartilhado com todos a todo momento, assim como evitar que o mesmo arquivo tenha cópias de diferentes versões. Com a evolução das redes de dados, dispositivos de armazenamento e serviços providos na internet, os servidores de arquivos passaram a ser uma ferramenta que não precisa mais ficar alocado dentro da empresa e sim como um serviços na internet. A disponibilização do servidor de arquivos como serviço permitiu que a sua utilização deixa-se de ser apenas pelo meio coorporativo e passou a estar disponível também para o uso particular. Existem alguns exemplos de servidores de arquivos disponível como serviço e utilizado de forma particular hoje em dia, como o google drive da google, Skydrive da microsoft, Dropbox da Dropbox inc. entre outros. Mas não é possível saber se esse servidor de arquivos armazena os documentos em file system ou em banco de dados. Existem também servidores de arquivos para compartilhamento de arquivos de forma pública, onde o usuário disponibilizam arquivos que podem ser baixados por qualquer usuário com conexão de internet e um browser. Essa forma de compartilhamento de arquivo gerou alguns problemas depois de um tempo por uma grande quantidade de usuários disponibilizarem arquivos com conteúdo protegido por direito autoral. alguns desses serviços públicos de servidor de arquivos chegaram a ser fechados judicialmente como por exemplo o mega upload. já outros mudaram sua política de publicação de conteúdo como por exemplo os serviços do 4shared, RapidShare, MediaFire etc. 13

14 Mas o objetivo do artigo não é falar sobre a parte legal do compartilhamento de arquivos e sim a forma com que esses dados podem ser armazenados Servidores de banco de dados Os servidores de banco de dados, tem como finalidade ser o ponto central de armazenamento de informações em um sistema de tabelas, sendo ela relacional ou não. segundo Júlio Battisti: Sistema inovador surgido nos anos 90 e muito utilizado no meio corporativo, baseado em três componentes principais: gerenciamento de banco de dados, que funcionam como servidores; redes, que funcionam como meio de transporte de dados e, finalmente, softwares para acesso aos dados: Clientes. (BATTISTI, 2001, pg 39). Esse software para acesso apontado por Battisti, pode ser desde um simples browser de internet fazendo uma requisição de informações para o servidor de banco de dados. até uma aplicação específica criada para acessos mais específicos de dados. Um diferencial do servidor de banco de dados é que além de fornecer um ponto central para o armazenamento de arquivos, é possível também armazenar dados de outros tipo de informações pertencente a uns sistema implementado para o cliente. Um outro ponto forte dos servidores de banco de dados seria que a próprias ferramenta fornece mecanismos realização de backups, recuperação por meio de um arquivo único de todas as informações assim como funções desenvolvidas para que o banco realize esses backup s de forma automatizada Servidores web Como o presente trabalho tem como objetivo demostrar a gravação de arquivos nos servidores de arquivos e de banco de dados por meio de um ambiente web, não poderíamos deixar de falar do servidor web. O servidor web tem como finalidade fornecer os serviços uma aplicação web, interagindo assim com os outros 14

15 servidores(arquivos e banco de dados) em um ambienta acessado por um navegar. segundo o site da microsoft Servidores web são computadores com software específico que permitem a aceitação de solicitações de computadores de clientes e retornam respostas à essas solicitações. Os servidores web permitem que você compartilhe informações pela Internet ou por uma intranet ou extranet..(microsoft, servidor web, 2012) No site da microsoft, ainda é apontado algumas finalidades de uso dos servidores. Que no caso do site expõem algo mais voltado para o servidor desenvolvido pela própria empresa, chamado de IIS(Internet Information Services). Na tabela 1 segue os exemplos das aplicações em servidores web IIS 7 Tabela - Aplicações dos servidores web Fornecer informações para usuários pela Internet. Permitir que usuários façam download e upload de conteúdos com FTP ou WebDAV (criação e versão distribuídas na Web). Hospedar serviços da Web que contém lógica empresarial para aplicativos de três camadas. Distribuir aplicativos para usuários pela Internet ao invés de disquetes ou CDs. Os servidores Web podem ser úteis para clientes e necessidades diferentes. Por exemplo: Proprietários de pequenas empresas podem fornecer informações sobre seus serviços usando um simples site. Proprietários de empresas médias podem oferecer seus produtos e serviços por meio de um sistema de pedidos online composto por vários aplicativos em um site. Empresas de negócios podem desenvolver e fornecer aplicativos de negócios a funcionários por meio de intranets corporativas. Empresas de hospedagem podem fornecer, a clientes individuais, espaço e serviços de hospedagem de diferentes conteúdos online e aplicativos. Empresas podem fornecer aplicativos de negócios e informações pertinentes para parceiros de negócios por meio de extranets. Fonte: Microsoft 15

16 Mas assim como a escolha de qualquer tipo de servidor, o dimensionamento dos recursos do servidor web passa por uma análise das necessidades da aplicação desenvolvida e da quantidade de recurso que sua aplicação irá necessitar Sobre arquivos Os arquivos de computadores são, um conjunto de bytes estruturado armazenados em algum meio que pode ser recuperado depois. Essas estruturas são armazenadas e contém uma extensão responsável por indicar qual o programa responsável pela leitura, processamento e abertura desse arquivo, assim, recuperando a informação contidas nele. Existe também arquivos denominados executáveis, esses arquivos conseguem a partir da sua própria estrutura serem abertos e lidos para executar ações pré definidas Sobre banco de dados Atualmente existe um grande número de banco de dados que podem ser instalado e utilizados em servidores, a definição de qual o banco de dados será utilizado em sua aplicação, varia muito do que será desenvolvido e o que esse aplicativo irá necessitar armazenar de dados. É comum que a escolha do sistema de banco de dados passe por uma avaliação criteriosa que vai desde a quantidade prevista de acessos simultâneos, tipo de dados que serão armazenados, até quais as licenças que esse sistema de banco de dados segue para a sua utilização. Os banco de dados, tem como princípio básico seguir alguns atributos, como tabelas, registros, colunas e chaves. Uma tabela é uma simples estrutura de linhas e colunas. Em uma tabela, cada linha contém um mesmo conjunto de colunas. Em um banco de dados podem existir uma ou centenas de tabelas, sendo que o limite pode ser imposto tanto pela 16

17 ferramenta de software utilizada, quanto pelos recursos de hardware disponíveis no equipamento. As colunas de uma tabela são também chamadas de atributos. Ex.: O campo Nome, ou endereço de uma tabela de um banco de dados relacional. Os registros são linhas formadas por pelas colunas, mas não necessariamente todas as colunas precisam estar completas, apenas as que estão estabelecidas como não nulas(not null). As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro. Existem diferentes tipos de bancos de dados, sendo diferenciados sempre pela sua estrutura de armazenamento e recuperação de informações. Os banco de dados são divididos em duas classes, os relacionais e os não relacionais, que também são conhecidos como NoSql Relacionais Os banco de dados relacionais, são bancos de dados mais utilizados em aplicações por seguirem as 13 regras do modelo relacional, essas regras foram criadas e publicadas por Edgar Frank Codd em 1985, para que o banco de dados seja considerado relacional, ele deve seguir as seguintes regras apresentadas na tabela 2. Tabela - As 12 regras de Codd Regra Regra 1 Descricação Todas as informações em um banco de dados relacional são representadas de forma explícita no nível lógico e exatamente em Regra 2 apenas uma forma - por valores em tabelas. Cada um e qualquer valor atômico (datum) em um banco de 17

18 dados relacionam possui a garantia de ser logicamente acessado pela combinação do nome da tabela, do valor da chave primária e Regra 3 do nome da coluna. Valores nulos devem ser suportados de forma sistemática e independente do tipo de dado para representar informações Regra 4 inexistentes e informações inaplicáveis. A descrição do banco de dados é representada no nível lógico da mesma forma que os dados ordinários, permitindo que usuários autorizados utilizem a mesma linguagem relacional aplicada aos Regra 5 dados regulares. Um sistema relacional pode suportar várias linguagens e várias formas de recuperação de informações. Entretanto, deve haver pelo menos uma linguagem, com uma sintaxe bem definida e expressa por conjuntos de caracteres, que suporte de forma compreensiva todos os seguintes itens: definição de dados, definição de "views", manipulação de dados (interativa e embutida em programas), restrições de integridade, autorizações e limites de transações Regra 6 Regra 7 (begin, commit e rollback). Todas as "views" que são teoricamente atualizáveis devem também ser atualizáveis pelo sistema. A capacidade de manipular um conjunto de dados (relação) através de um simples comando deve-se estender às operações Regra 8 de inclusão, alteração ou exclusão de dados. Programas de aplicação permanecem logicamente inalterados quando ocorrem mudanças no método de acesso ou na forma de Regra 9 18 armazenamento físico. Mudanças nas relações e nas views provocam pouco ou nenhum impacto nas aplicações.

19 Regra 10 Regra 11 Regra 12 As aplicações não são afetadas quando ocorrem mudanças nas regras de restrições de integridade. As aplicações não são logicamente afetadas quando ocorrem mudanças geográficas dos dados. Se um sistema possui uma linguagem de baixo nível, essa linguagem não pode ser usada para subverter as regras de integridades e restrições definidas no nível mais alto. Fonte: Serpro Não relacionais Bancos não relacionais ou conhecido como NoSql, são bancos criados para atender a necessidades de aplicações onde os bancos de dados relacionais são ineficazes. O termo foi utilizado pela primeira vez em 1998 por seu criado, Carlo Strozzi, onde ele dizia que o NoSql é complemente distindo do modelo relacional e, portanto, deveria ser mais apropriado chamado de NoREL ou algo que produzisse o mesmo efeito. (NoSql, 2012) As principais características dos bancos de dados não relacionais são a sua alta performance, replicação, escalabilidade, suporte a dados estruturados e sub colunas Os bancos de dados não relacionais, ou também conhecidos como NoSQL, são bancos que não seguem os princípios das leis de Edgar Frank Codd, assim sendo, ele armazena os dados de diferentes formar, normalmente esses dados são armazenados com arrays associativos ou pares de chave e valor. Os bancos NoSQL são normalmente utilizados para finalidades específicas, conforme a tabela 3 demostra: Tabela - Projetos NoSql Tipo Documento Projeto RavenDB, CouchDB, MongoDB, MarkLogic, Server, BaseX, exist 19

20 Orientado a Objetos Chave/Valor (Key/Value) Tabular Grafos Db4o Memcachedb, Project Voldemort, Redis, SimpleDB, Hbase Cassandra e Hypertable DEX e Neo4j Fonte:NoSql 2.7. Sobre gravação de arquivos A gravação de arquivos pode ser feita em vários meios, pois os blocos de bytes, podem ser divididos e armazenados em diversos tipos dispositivos e de diversas formas diferentes, seja ela diretamente no dispositivo de armazenamento, banco de dados, além disso o arquivo pode ser compactado, criptografado, divididos em blocos etc, antes de sua gravação Gravação em file system A gravação em file system, ou também conhecida como sistema de arquivos é realizada em pequenos blocos pré-definidos no sistema operacional, esse blocos são conjunto de bytes que o sistema operacional padroniza para gravar e recuperar os arquivos direto de disco rígidos, SSD(Solid state disk), fita magnética, CD(Compact disk) ou qualquer outro meio de gravação Gravação em banco de dados Para a gravação de arquivos em banco de dados, existem tipos específicos de campos para registro e técnicas diferentes técnicas de inserção dos dados. Para entender a gravação desses arquivos no banco, é necessário entender os tipo de arquivo que será gravado e como essas informações são armazenadas. Nos bancos de dados relacionais, cada banco tem o seu tipo específico de registro de como armazenas esses arquivos. No caso dos bancos escolhidos para o prensente trabalho, Foram escolhidos bancos de dados de diferentes tipo de 20

21 licenças, Sendo escolhido no modelo relacional o Postgres, MySql e oracle, já no modelo NoSql foi escolhido o MongoDB. Na tabela 4 é possível visualizar os tipos de dados e o tamaho máximo que é possível armazenar nesses registros Tabela - Tipos de dados Nome Oracle 11g MySql PostgreSQL Tipo para gravação de dados BLOB, CLOB, NCLOB, BFILE TINYBLOB, TINYTEXT BLOB, TEXT MEDIUMBLOB, MEDIUMTEXT LONGBLOB, LONGTEXT BYTEA(HEX,ES CAPE) Fonte: Desenvolvida pelo autor. Máximo por registro 128 terabytes 256 bytes 64 Kilobytes 16 Megabytes 4 Gigabytes 1 Gigabytes Oracle O Banco de dados oracle 11g possuí o diferentes tipos de dados para armazenamento de arquivos, esses tipos de dados são chamado de LOB(Large object) e são divididos em sub-tipo que são os BLOB(Binary large object), CLOB(Caracter larg object), NCLOB e BFILE. segundo a documentação da oracle subro os tipos LOB permitem armazenar e manipular grandes blocos de dados não estruturados (como texto, imagens, gráficos, vídeos, som e formas de onda) em formato binário ou caracteres. (Oracle, 2013, tradução nossa) Ainda na documentação, a oracle descreve como os tipos LOBs trabalham que é: eles fornecem acesso aleatório, eficiente a pedaços inteligentes dos dados. (Oracle, 2013, tradução nossa) Os dados do tipo LOB diferem em dois tipos, os RAW e LONG RAW. Mas ele explica que ambos os tipos não são interpretados pelo banco de dados: Os tipos 21

22 de dados RAW e LONG RAW são usados para dados que não deve ser interpretado (não convertido ao mover dados entre diferentes sistemas) pelo banco de dados Oracle. Esses tipos de dados são destinados para dados binários ou cadeias de bytes. (Oracle, 2013, tradução nossa). O que indica que por exemplo uma imagem armazenada em banco, é convertida para dados binários ou cadeiras de bytes. Caso uma consulta seja realizada por uma query no banco irá não irá mostrar a imagem, mas sim os dados binários ou a cadeia de bytes. Para que a imagem seja exibida, será necessário que um programa consulte o banco e converta os dados binário ou a cadeia de bytes na imagem. Na documentação do oracle 11g ainda explica que LONG RAW pode ser usado para armazenar gráficos, som, documentos, ou matrizes de dados binários. A interpretação depende do uso. RAW é um tipo de dados de comprimento variável como o tipo de dados de caractere VARCHAR2, A documentação indica que LONG RAW dados não podem ser indexados, mas RAW dados podem ser indexados. (Oracle, 2013, tradução nossa) A tabela 5 mostra outras características dos tipos de dados RAW e LONG RAW indicadas na documentação do banco dados oracle 11g. Tabela - Caracteristicas de RAW e LONG RAW LONG. Uma tabela pode conter colunas LOB, mas apenas uma coluna Uma tabela contendo uma ou mais colunas LOB pode ser dividida, mas uma tabela contendo uma coluna LONG não pode ser particionado. O tamanho máximo de um LOB é de 128 terabytes, dependendo do tamanho do bloco de dados, e o tamanho máximo de um LONG é de apenas 2 gigabytes. LOBs apoiar o acesso aleatório a dados, mas LONG s suportam 22

23 apenas acesso seqüencial. Tipos de dados LOB (exceto NCLOB ) pode ser atributos de um tipo de objeto definido pelo usuário, mas tipos de dados LONG não pode. LOBs temporários que atuam como variáveis locais podem ser usados para realizar transformações em dados LOB. LOBs temporários internos ( BLOBs, CLOBs e NCLOB s) são criados em um espaço de tabela temporária e são independentes de tabelas. Para tipos de dados LONG, no entanto, não há disponibilidade de estruturas temporárias. Tabelas com colunas LOB pode ser replicadas, mas tabelas com colunas LONG não pode Fonte: Oracle Depois de entendermos sobre o funcionamento dos dados RAW e LONG RAW, podemos prosseguir com o entendimento dos tipo de dados que pertencem ao LOB, que são os BLOB, CLOB, NCLOB e BFILE. Na documentação do oracle 11g, afirma sobre o BLOB que: O tipo de dado BLOB armazena dados binários não estruturados no banco de dados. BLOBs pode armazenar até 128 terabytes de dados binários. (Oracle, 2013, tradução nossa) Os tipo CLOB e NCLOB são diferenciados do BLOB por armazenarem os dados em forma de caracteres: Os tipos de dados CLOB e NCLOB armazenar até 128 terabytes de dados de caracteres do banco de dados. (Oracle, 2013, Tradução nossa). Ainda sobre CLOB e NCLOB, a documentação fala mais especificamente sobre o CLOB: O tipo de dados CLOB armazena dados de caracteres de byte único e multibyte. Ambos os conjuntos de caracteres de largura fixa e variável são suportados, e ambos utilizam o conjunto de caracteres do banco de dados. 23

24 E sobre NCLOB: O tipo de dados NCLOB armazena dados Unicode. Ambos os conjuntos de caracteres de largura fixa e variável são suportados, e ambos utilizam o conjunto de caracteres nacionalizados. (Oracle Tradução nossa). Já por fim o tipo BFILE armazena os dados arquivos do sistema operacional, ou seja, fora do banco de dados: O tipo de dado BFILE são dados binários não estruturados de em arquivos do sistema operacional fora do banco de dados. A coluna ou atributo BFILE armazena um arquivo localizador que aponta para um arquivo externo que contém os dados. A quantidade de dados BFILE que podem ser armazenados é limitado pelo sistema operativo. BFILEs são somente leitura, você não pode modificá-los. Eles suportam apenas leituras aleatórias (não sequencial), e não participar de transações. O sistema operacional subjacente deve manter a integridade de arquivos, segurança e durabilidade para BFILEs. O administrador de banco de dados deve garantir que o arquivo existe e que os processos de banco de dados Oracle tem permissões de leitura do arquivo no sistema operacional. (Oracle, 2013, Tradução nossa) Na documentação da oracle, as colunas do tipo LOB são sujeitas a algumas regras, a tabela 6 lista algumas delas. Tabela - Regras das colunas LOB primária. Você não pode especificar um LOB como uma coluna de chave Clusters não pode conter LOBs, quer como chave ou colunas nãochave. Você não pode especificar colunas LOB no ORDER BY cláusula de uma consulta, ou no GROUP BY cláusula de uma consulta ou em uma função agregada. 24

25 Você não pode especificar uma coluna LOB em uma SELECT... DISTINCT ou SELECT... UNIQUE declaração ou em uma junção. No entanto, você pode especificar um atributo LOB de uma coluna de tipo de objeto em um SELECT... DISTINCT ou em uma consulta que usa a UNION ou operador MINUS de conjunto, se o tipo da coluna objeto tem um MAP ou ORDER função definida sobre ele. O (primeiro INITIAL extensão) de um segmento de LOB deve conter, pelo menos, três blocos de dados. Você não pode especificar uma coluna LOB, como parte de uma chave de índice. No entanto, você pode especificar uma coluna LOB na especificação indextype de um índice de domínio. Além disso, o Oracle Text permite que você defina um índice em uma coluna CLOB. Em uma operação INSERT... AS SELECT, você pode ligar até 4000 bytes de dados para colunas LOB e atributos Se a tabela tem tanto LONG e colunas LOB, você não pode ligar mais de 4000 bytes de dados tanto para o LONG e colunas LOB na mesma instrução SQL. No entanto, você pode ligar mais de 4000 bytes de dados para tanto o LONG ou a coluna LOB. Restrições de operação No SQL Loader, Um campo de leitura de um LOB não pode ser usado como um argumento para uma cláusula. Consulte "Utilitários de banco de dados para carregar dados em LOBs". Sessão migração não é suportada para BFILE em servidor modo compartilhado (servidor multithreaded). Isto implica que as operações em aberto BFILE podem persistir para além do final de uma chamada para um servidor compartilhado. Em sessões de servidor compartilhado, BFILE operações são obrigados a um servidor compartilhado, que não podem migrar de um servidor para outro. Maiúsculas e minúsculas pesquisas sobre colums CLOB muitas vezes não conseguem. Por exemplo, para fazer uma pesquisa de maiúsculas e minúsculas em um colum CLOB. 25

26 A seleção não sem a LOWER função. Texto Oracle faz pesquisas maiúsculas e minúsculas. Fonte: Oracle MySql O banco de dados MySql, é um banco de dados que se tornou popular com a expansão web e foi difundido principalmente por programadores php. Atualmente o MySql pretence a Oracle Corporation. O MySql, assim como os outros bancos de dados, possui um tipo de registro especifico para arquivos, assim como já citado anteriormente, os tipos de registros são o BLOB, e o TEXT. Segundo o site do MySql: Um BLOB é um objeto binário grande que pode guardar uma quantidade variável de dados. Os quatro tipos de BLOB são TINYBLOB, BLOB, MEDIUMBLOB, e LONGBLOB. Estes diferem apenas no comprimento máximo dos valores que eles podem armazenar. Os quatro tipos TEXT são TINYTEXT, TEXT, MEDIUMTEXT, e LONGTEXT. Estes correspondem aos quatro tipos BLOB e têm o mesmo tamanho máximo e os requisitos de armazenamento. (MySql, 2013, tradução nossa). Ainda na documentação do MySql, a diferença entre o BLOB e o Text são: BLOB são valores tratados como strings binárias (cadeias de bytes). Eles não têm nenhum conjunto de caracteres, e ordenação e comparação, são baseados nos valores numéricos dos bytes de valores da coluna. TEXT são valores tratados como strings não binários (sequências de caracteres). Eles têm um conjunto de caracteres, e os valores são classificados e comparados com base no agrupamento do conjunto de caracteres. (MySql Tradução nossa). Segue a tabela 7 demosntra os tamanhos máximos que podem ser armazenados os dados em bytes. Tabela - Tamanho máximo dos dados no MySql 26

27 Tipo de dado TINYBLOB, TINYTEXT BLOB, TEXT MEDIUMBLOB, MEDIUMTEXT Tamanho L + 1 bytes, where L < 2 8 L + 2 bytes, where L < 2 16 L + 3 bytes, where L < 2 24 LONGBLOB, LONGTEXT Fonte: MySql L + 4 bytes, where L < PostgreSQL Segundo o site do PostgreSQL,: O PostgreSQL é um sistema de gestão de banco de dados objeto-relacional (ORDBMS) com base no POSTGRES, Versão 4.2, desenvolvido no Departamento de Informática da Universidade da Califórnia, em Berkeley. O POSTGRES foi pioneiro muitos conceitos que só se tornaram disponíveis em alguns sistemas de banco de dados comerciais muito mais tarde. (Postgres, Tradução nossa). O padrão SQL define que o tipo de cadeia binária é chamada de BLOB(Binary Large Object). Mas no caso do PostgreSQL o tipo de armazenamento de dados binários possuem um nome diferente que é o byteae foi inserido no postgres a partir da versão 9.0. Mesmo com o nome diferente, as funções e operadores fornecidos para a operação são praticamente os mesmos. O tipo bytea é descrito na documentação como: O tipo de dado bytea permite o armazenamento de sequências binárias.(postgres, 2013, tradução nossa ) 2 32 Essas sequências binárias de bytes são sequencias diferenciadas de sequência de caracteres por exemplo, onde a sequência de caracteres são codificados normalmente pela tabela ASCII com os caracteres imprimíveis(códigos 27

28 entre 32 e126), Assim sendo no tipo bytea são permitido codificações de tipos não imprimíveis. O bytea também é um tipo que não sofre de problemas de codificação de localidade como no caso de sequencia de caracteres. Em termos, o bytea serve para armazenar bytes de dados brutos e as sequencias de caracteres servem para armazenar textos. O tipo bytea são diferenciados em dois formatos, o hex e o escape, sendo o escape o tipo de dado mais tradicional do postgresql. No caso do escape ele segue a linha de converter as sequências binárias em sequências de caracteres ASCII. Ao converter os dados para sequencias não representadas pela tabela ASCII, o escape utiliza caracteres especiais do próprio tipo escape. Essa conversão é iniciada sempre com um ou duas barras invertidas (a barra invertida é um escape literal) e faz com que cada byte seja convertido para um conjunto de três dígitos. O mecanismo de caracteres especiais do tipo escape é um pouco pesado, assim sendo, a utilização da conversão de bytes para o tipo escape deve ser evitada. No caso do formato hex, cada registro é iniciado com \x e cada byte dos dados são codificados para dois dígitos hexadecimais, é permitido espaço entre os pares de valores hexadecimais, mas não é permitido espaço em branco entre o par do bytes convertido para hexadecimal. O tipo hex é o tipo padrão do postgres e tende a ser mais rápido que a conversão para o tipo escape, assim sendo, é preferencialmente usando nas aplicações. Ao inserir um registro do tipo bytea, é acrescido de 1 a 4 bytes como bytes de controle e mais a sequencia de bytes convertidos. Assim sendo cabe avaliar o quanto esses bytes de controle podem influir no tamanho do arquivo inserido em bando e no desempenho para sua recuperação, principalmente no caso de um arquivo que foi quebrado em diversos registro. 28

29 MongoDB O mongodb é um banco de dados open source orientado a documento desenvolvido para fácil uso de desenvolvimento e escalabilidade. Para iniciar o entendimento de como funciona um banco de dados orientado a documentos, na tabela 8 vamos comprar e entender os termos e conceitos entre um banco de dados objeto relacional e um banco de dados NoSQL. Tabela - Comparação dos termos e conceitos do Sql e NoSql Termos e conceitos do SQL Database Table Row Index Table joins Primary key(chave primária) uma única coluna ou uma combinação de colunas Termos e conceitos do MongoDB Database Collection Documento ou documento BSON Index Documentos embarcados ou linkados Primary key(chave primária) No mongodb, a chave primária é setada automaticamente no Agregação(Group by) campo _id Framework de agregação Fonte: MongoDB No caso citado na tabela anterior, o framework de agregação possui uma tabela indicando um outro comparativo de como funciona em um banco de dados SQL e o mongodb. A tabela 9 mostra essa diferença. Tabela - Comparativo de termos, funções e conceitos Sql e NoSql Termos, funções e conceitos SQL WHERE GROUP BY HAVING SELECT ORDER BY LIMIT SUM() COUNT() 29 Operações de agregação do mongodb $MATCH $GROUP $MATCH $PROJECT $SORT $LIMIT $SUM $SUM

30 JOIN Não existe um operador correspondente ao JOIN no mongodb, de toda forma, o operador $UNWIND tem funcionalidades semelhantes com as colunas e com os documentos. Fonte: MongoDB No mongodb a gravação de arquivo é feita atrás vez de um BinData é feita por um registro do tipo BSON(Binary-encoded serialization), que é um registro semelhante ao JSON só que para inserção de documentos. O BSON foi projetado pra ser leve e eficiente, assim como JSON. O BSON suporta a incorporação de objetos e arryas dentro de outros objetos e matrizes. No entando para armazenamento de arquivos maiores de 16 megabytes a documentação do mongodb fala para usar o GridFS como alteranativa, o GridFS tem por padrão pegar os arquivos que excedam 16 megabytes e dividir em blocos menores de 256k, nesta divisão ele utiliza duas coleções para realizado armazenamento dos dados, sendo uma para armazenar os pedrações dos arquivos e outra para armazenar o metadados. Uma das vantagens em usar o GridFS é que ao caso o usuário necessite carregar um arquivo particionado, ele vai montando os pedaços do arquivo conforme necessário, assim sendo, você pode realizar consultas apenas em partes do arquivo, sem ter que carrega-lo todo. Na documentação ainda existe uma seção chamada de Como faço para otimizar o uso de armazenamento para documentos pequenos? (Mongodb, 2013) é explicito que Cada documento MongoDB contém uma certa quantidade recursos 30

31 ocupados. Esses recursos normalmente são insignificante, mas torna-se significativo se todos os documentos inseridos são apenas alguns bytes, como poderia ser o caso se os documentos em sua coleção só tem um ou dois campos. (Mongodb, 2013) Assim sendo, a documentação passa a seguinte sugestões como estratégia para otimizar a utilização do armazenamento para coleções no mongodb: Clientes MongoDB caso o usuário não insira um valor no campo _id o mongobd adiciona automaticamente um campo _id a cada documento inserido, esse campo _id gerar 12 byte únicos. Para documentos menores isto pode representar uma quantidade significativa de espaço. Para otimizar o uso de armazenamento, os usuários podem especificar um valor para o campo _id explicitamente Ao inserir documentos na coleção. Esta estratégia permite aplicações para armazenar um valor no campo _id Isso teria espaço ocupado em outra parte do documento. Você pode armazenar qualquer valor no campo _id, mas como este valor serve como uma chave primária para documentos, caso esse valor do campo não seja único, então ele não pode servir como uma chave primária havendo colisões de chave primária duplicada, impedindo assim a identificação. Na documentação ainda tem uma seção chamada de Quando devo usar GridFS? está descrito que Para documentos em uma coleção MongoDB, você deve sempre usar GridFS para armazenar arquivos maiores que 16 MB. (Mongodb, 2013). Em algumas situações, o armazenamento de arquivos grandes pode ser mais eficiente no banco de dados MongoDB do que em um sistema de arquivos em nível de sistema, a tabela 10 exibe essas situações. Tabela - Situações onde o armazenamento de arquivos grandes pode ser mais eficiente no sitema e arquivos 31

32 O sistema de arquivos limita o número de arquivos em um diretório, você pode usar GridFS para armazenar arquivos como quanto necessário. Quando você quer manter seus arquivos e metadados automaticamente sincronizadas e implantado através de uma série de sistemas e instalações. Ao utilizer uma definição de répicas distribuidas o mongodb pode distribuir arquivos e seus metadados automaticamente para um número de instâncias mongodb. Quando você quiser acessar informações de partes de arquivos grandes sem ter que carregar arquivos inteiros na memória, você pode usar GridFS acessar seções de arquivos sem ler o arquivo inteiro na memória. Fonte:MongoDB Mas assim como existem situações onde ele não recomenda o uso do GriFS, como por exemplo Não use GridFS se você precisa atualizar o conteúdo de todo o arquivo atomicamente. (Mongosb, 2013) a alternative no caso de ter que atualizar todo conteúdo é Como alternativa, você pode armazenar várias versões de cada arquivo e especificar a versão atual do arquivo de metadados. Você pode atualizar o campo de metadados indica que "ultimo inserido" em uma atualização atômica após carregar a nova versão do arquivo e, posteriormente, remover versões anteriores, se necessário. (Monogo, 2013) A documentaçaõ ainda afirma que no caso de documentos menores que 16 megabytes que se seus arquivos são todos menores de 16 MB, tamanho limite do documento BSON, considere armazenar o arquivo manualmente em um único documento. Para isso poderá utilizar o tipo de dados BinData para armazenar os dados binários. (Mongodb, 2013) 3. Considerações finais Após a pesquisa, foi possível traçar e observar que cada banco de dados armazena seus arquivos de forma peculiar, onde diferentes tipos de registro de 32

33 banco permitem inserir diferentes quantidades de registo, assim sendo, foi possível criar uma projeção do armazenamento de dados nos bancos que acrescentam bytes de controle na inserção de arquivos utilizando o tamanho máximo de cada tipo de armazenamento de dados. A seguir iremos discorrer sobre como cada banco se comporta MySql No caso do MySql, a quantidade de dados adicionados aos registros particionados e armazenados no tamanho máximo permitido no registro, faz com que a adição dos dados chegue a 0,039% Já que existem quatro tipos de armazenamento binários e quatro tipos de dados caracteres. Tabela - Arquivo único até 1 Megabyte até 10 Megabytes até 100 Megabytes até 1 Gigabyte até 10 Gigabytes TINYBLOB( bytes) BLOB(512 Kilobytes) MEDIUMBLOB(16 Megabytes) TA + 3 bytes TA + 3 bytes LONGBLOB(4 Gigabytes) TA + 4 bytes TA + 4 bytes TA + 4 bytes TA + 4 bytes TA + 12 bytes Fonte: Desenvolvida pelo autor Tabela - Quantidade de partes do arquivo até 1 Megabyte até 10 Megabytes Quantidade de partes do arquivo até 100 Megabytes até 1 Gigabyte até 10 Gigabytes TINYBLOB(255 bytes) BLOB(511 Kilobytes) MEDIUMBLOB(15,99 Megabytes) LONGBLOB(3,99 Gigabytes) Fonte: Desenvolvida pelo autor Tabela - Quantidade de bytes adicionados aos registros 33 até 1 Megabyte Quantidade de Bytes adicionados até 10 até 100 até 1 Megabytes Megabytes Gigabyte até 10 Gigabytes Bytes TINYBLOB(255 bytes) BLOB(511 Kilobytes)

34 MEDIUMBLOB(15,99 Megabytes) LONGBLOB(3,99 Gigabytes) Fonte: Desenvolvida pelo autor Tabela - Tamanho final dos arquivos até 1 Megabyte Tamanho arquivo com bytes adicionados em bytes até 10 até 100 até 1 Megabytes Megabytes Gigabyte até 10 Gigabytes Bytes TINYBLOB(255 bytes) BLOB(511 Kilobytes) MEDIUMBLOB(15,99 Megabytes) LONGBLOB(3,99 Gigabytes) Fonte: Desenvolvida pelo autor Tabela - Tamanho do arquivo com bytes adicionados TINYBLOB(255 bytes) BLOB(511 Kilobytes) MEDIUMBLOB(15,99 Megabytes) LONGBLOB(3,99 Gigabytes) até 1 Megabyte 1,00 Megabytes Tamanho arquivo com bytes adicionados até 10 até 100 até 1 Megabytes Megabytes Gigabyte 10,00 Megabytes 100,00 Megabytes 1,00 Gigabytes até 10 Gigabytes ,00 10,03 100,39 1,00 10,03 Megabytes Megabytes Megabytes Gigabaytes Gigabytes 10,00 Gibaytes 1,00 Megabytes 1,00 Megabytes 10,00 Megabytes 100,00 Megabytes 10,00 100,00 Megabytes Megabytes Fonte: Desenvolvida pelo autor 1,00 Gigabytes 1,00 Gigabytes 10,00 Gibaytes 10,00 Gibaytes Postgres No banco de dados posgtres não fica claro a forma com a quale le insere os bytes de controle, especificando apenas que que são inseridos de 1 a 4 bytes de controle. Assim sendo foi possível estabelecer o cenário de melhor e pior caso de adição de bytes de controle onde mais uma vez os bytes de controle adicionados chegam a menos de 1% do tamanho final do arquivo, a seguir será exibida uma tabela com a projeção dos dados para um único arquivo inserido e para um arquivo inserido em partes. 34

35 Tabela - Arquivo inteiro Arquivo inteiro até 1 Megabyte até 10 Megabytes até 100 Megabytes até 1 Gigabyte até 10 Gigabytes Bytea melhor caso 4 Bytes 4bytes 4bytes 4bytes - Bytea pior caso 1 byte 1 byte 1 byte 1 byte - Fonte: Desenvolvida pelo autor Tabela - Arquivo em partes Arquivo em partes até 1 Megabyte até 10 Megabytes até 100 Megabytes até 1 Gigabyte até 10 Gigabytes Bytea melhor caso 4 bytes 4 bytes 4 bytes 4 bytes 40 bytes Bytea pior caso 1 byte 1 byte 1 byte 1 byte 10 bytes Fonte: Desenvolvida pelo autor Oracle No caso do oracle 11g não a indicação de bytes que são adicionados nos registro, assim como o tipo BLOB, CLOB, NCLOB que possuem um tamanho limite de 128 terabytes podendo adicionar registros inteiros até o limite do tipo BLOB, CLOB ou NCLOB Mongodb No mongodb os arquivos são inseridos por meio da biblioteca BSON no tipo BinData no caso de arquivos menores de 16 megabytes, em arquivos superiores a 16 megabtyes é recomendável utilizar o GridFS para o armazenamento de dados acima de 16 megabytes. O GridFS realiza a divisão do arquivo inserido em blocos de 256 kilobytes, perminto que um documento seja acessado em seções expecíficas, como por exempo minutos específicos de um vídeo ou mesmo de uma música sem ter carregado o arquivo como um todo. 35

36 4.Resultados Após a leitura da documentação foram elaborados pequenos testes de gravação em sistema de arquivo e no banco de dados mongodb, esses teste mostrou que a implementação da inserção de arquivo em base de dados pode ser feita de forma simples e eficiente, assim como a utilização de banco de dados NoSql. No caso do mongodb a inicialização do banco foi realizada de forma fácil pelo console de comando, onde o usuário acessava a pasta bin dentro da pasta do mongodb e digitando o comando mongod.exe dbpath <caminho da pasta de armazenamento>. Logo após inicializar o banco O Exemplo desta facilidade de inserção de arquivos na base de dados pode ser observada na figura 2 que mostra o algoritmo de inserção de arquivos no mongodb utilizando o GridFS. Figura - Código de inserção no mongodb 36

37 Antes de realizar a primeira inserção foi observado que a pasta do mongodb onde era apontada na inicialização estava apenas com arquivos de controle, como pode ser observado na figura 3. Figura - Pasta inicial da base mongodb Nos testes iniciais foram feitos uploads de um arquivo de 69 megabytes para teste e foi possível observar na pasta do mongo que foram criados arquivos de armazenamento e controle dos dados, o upload do mesmo arquivo foi feito onze vezes para observar o comportamento do mongo com o mesmo aquivo e foi observado que o mongodb alocou muito mais espaço que o conjunto de dados enviados, como pode ser observado na figura 4. Figura - Pasta da base mongodb após armazenar 11 arquivos de 69 megabytes Após subir o mesmo arquivo 11 vezes foi realizada uma busca no banco de dados mongodb para verificar como esses dados estavam armazenados e o tamanho ocupado pelo banco de dados mongodb, essa consulta pode ser observada na figura 5 e 6. Essa consulta foi feita no console do mongodb utilizando 37

38 o comando db.nomedacolecao.find(), onde esse comando retorna todos os dados armazenados na coleção estabelecida, já para observar o tamanho da base de dados mongodb foi utilizado o comando show dbs. Figura - Busca na base de dados mongodb Figura - Tamanho do bado de dados após gravar 11 arquivos de 69 megabytes Após observado o comportamento do mongodb no armazenamento de arquivos, foi efetuado o teste de armazenamento de um arquivo de 192 kb, para observar o tamanho que o arquivo de armazenamento aloca inicial para o sistema. 38

39 Essa nova coleção alocou um espaço inicial com dois arquivos, sendo um de 64 megabytes e outro de 128 megabytes, mostrando que armazenamento do mongodb com GridFS aloca um espaço inicial de 192 megabytes. Esse comportamento pode ser observado na figura 7. Figura - Pasta da base mongodb após upload de arquivo de 192 kilobytes na coleção ArquivoAteUmMega Após as inserções no banco de dados mongodb foram realizados testes de obtenção do arquivo por meio do GridFS utilizando o comando fs.findone(nomedoarquivo), onde o arquivo foi recuperado e gravado na pasta temporária do sistema operacional, além de recuperar o arquivo o mongodb inseriu um número randômico no nome do arquivo recuperado como pode ser obervado na figura 8. Figura - Pasta temporária onde foram gravados os arquivos recuperados do mongodb 39

40 Os mesmo testes foram realizados gravando os dados em sistema de arquivos, conforme a figura 9 e 10 mostra, os arquivos que foram feitos uploads foram gravados em uma pasta especificada no código. Mas diferente do banco de dados todas as versões que foram enviadas para o servidor foram sobrescritas pela última versão, restando apenas um arquivo. Figura - Pasta de gravação em sistema de aquios depois de 11 uploads de do mesmo aquivo de 69 megabytes Figura - Pasta de gravação em sistema de arquivos depois de 11 uploads do mesmo aquivo de 69 megabytes e 1 upload de um arquivo de 192 Kilobytes 40

41 Conclui-se que no caso de gravações em sistema de arquivo deve ser feito uma estratégia de gravação de arquivos em pastas diferentes ou com nomes diferente sujeridos pelo sistema onde está sendo feito o upload, na figura 11 é possível observar a comparação de como ficou a partas de arquivos gravados em sistema de arquivos e no banco mongodb. Figura - Arquivos gravados em sistema de arquivos e arquivos gravados no mongodb Além dos testes demostrados acima, foram realizados testes com outros arquivos, na tabela 18 é possível observar os tempos de subida dos arquivos e gravação em sistema de arquivos. Já na tabela 19 é possível observar os tempos do armazenamento dos arquivos em banco de dados Tabela - Gravação de dados em sistema de arquivos 41

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 6.1 ARQUIVOS E REGISTROS De um modo geral os dados estão organizados em arquivos. Define-se arquivo como um conjunto de informações referentes aos elementos

Leia mais

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com MYSQL: TIPOS DE DADOS Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com TIPOS DE DADOS Bancos de dados, como falamos anteriormente, armazenam dados dentro de tabelas, na forma de linhas e colunas.

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

Curso de Hardware Aula 01 Tema: Sistema de Medidas Por: Edmilson de Oliveira Reis Revisado em: 02/03/2012

Curso de Hardware Aula 01 Tema: Sistema de Medidas Por: Edmilson de Oliveira Reis Revisado em: 02/03/2012 Curso de Hardware Aula 01 Tema: Sistema de Medidas Por: Edmilson de Oliveira Reis Revisado em: 02/03/2012 Unidades de Medida de Armazenamento Esses detalhes refletem na quantidade de informação armazenada

Leia mais

Programação de Computadores

Programação de Computadores Aula 01 Introdução Departamento de Computação Universidade Federal de Ouro Preto 2011.1 1 Processamento de dados 2 Organização de Computadores 3 Sistemas de Numeração Processamento de dados Processamento

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22 Sumário Agradecimentos... 19 Sobre o autor... 20 Prefácio... 21 Capítulo 1 Bem-vindo ao MySQL... 22 1.1 O que é o MySQL?...22 1.1.1 História do MySQL...23 1.1.2 Licença de uso...23 1.2 Utilizações recomendadas...24

Leia mais

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Manual de Utilização

Manual de Utilização Se ainda tiver dúvidas entre em contato com a equipe de atendimento: Por telefone: 0800 642 3090 Por e-mail atendimento@oisolucoespraempresas.com.br Introdução... 3 1. O que é o programa Oi Backup Empresarial?...

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Professora conteudista: Cida Atum Sumário Administração de Banco de Dados Unidade I 1 INTRODUÇÃO A BANCO DE DADOS...1 1.1 Histórico...1 1.2 Definições...2 1.3 Importância

Leia mais

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível

Leia mais

Uma Breve Introdução. Andréa Bordin

Uma Breve Introdução. Andréa Bordin Uma Breve Introdução Andréa Bordin O que significa? NoSQL é um termo genérico que define bancos de dados não-relacionais. A tecnologia NoSQL foi iniciada por companhias líderes da Internet - incluindo

Leia mais

Introdução ao SQL Avançado

Introdução ao SQL Avançado Introdução ao SQL Avançado Introdução as consultas, manipulação e a filtragem de dados com a linguagem SQL Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

Leia mais

XDR. Solução para Big Data.

XDR. Solução para Big Data. XDR Solução para Big Data. ObJetivo Principal O volume de informações com os quais as empresas de telecomunicações/internet têm que lidar é muito grande, e está em constante crescimento devido à franca

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO O que é a Informática? A palavra Informática tem origem na junção das palavras: INFORMAÇÃO + AUTOMÁTICA = INFORMÁTICA...e significa, portanto, o tratamento da informação

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

Prof. Omero, pág. 63. Banco de Dados InterBase.

Prof. Omero, pág. 63. Banco de Dados InterBase. Prof. Omero, pág. 63 O que é o InterBase? O InterBase é um SGBDR - Sistema Gerenciador de Banco de Dados Cliente/Servidor Relacional 1 que está baseado no padrão SQL ANSI-9, de alta performance, independente

Leia mais

TECNOLOGIA DA INFORMAÇÃO

TECNOLOGIA DA INFORMAÇÃO TECNOLOGIA DA INFORMAÇÃO 1 Valdick Sales FONE : 9992-4166 E-MAIL/ORKUT/FACEBOOK: valdick@gazetaweb.com Twitter : @valdicksales Pagina na Web: www.valdick.com E-mail contato da turma: facima@valdick.com

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

Centro de Computação - Unicamp Gerência de Atendimento ao Cliente (e-mail:apoio@turing.unicamp.br) Sumário

Centro de Computação - Unicamp Gerência de Atendimento ao Cliente (e-mail:apoio@turing.unicamp.br) Sumário Sumário Conceitos Microsoft Access 97... 01 Inicialização do Access... 02 Convertendo um Banco de Dados... 03 Criando uma Tabela... 06 Estrutura da Tabela... 07 Propriedades do Campo... 08 Chave Primária...

Leia mais

Tópicos Avançados em Banco de Dados Visão Geral de Tópicos Avançados em Banco de Dados I. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Visão Geral de Tópicos Avançados em Banco de Dados I. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Visão Geral de Tópicos Avançados em Banco de Dados I Prof. Hugo Souza Iniciaremos nossos estudos sobre os tópicos avançados sobre banco de dados recapitulando o histórico

Leia mais

Tutorial: Gravação de imagens em banco de dados MySQL utilizando PHP

Tutorial: Gravação de imagens em banco de dados MySQL utilizando PHP Tutorial: Gravação de imagens em banco de dados MySQL utilizando PHP Versão 1.0 Agosto de 2005 Pág. 1/12 Desenvolvido por Rafael Lossurdo Agosto de 2005 INTRODUÇÃO...3 REQUESITOS

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA XML e Banco de Dados DCC/IM/UFBA Banco de Dados na Web Armazenamento de dados na Web HTML muito utilizada para formatar e estruturar documentos na Web Não é adequada para especificar dados estruturados

Leia mais

Informática. Informática. Valdir. Prof. Valdir

Informática. Informática. Valdir. Prof. Valdir Prof. Valdir Informática Informática Valdir Prof. Valdir Informática Informática PROVA DPF 2009 Julgue os itens subseqüentes, a respeito de Internet e intranet. Questão 36 36 - As intranets, por serem

Leia mais

Computadores e Informação Digital

Computadores e Informação Digital Computadores e Informação Digital Sérgio Nunes Comunicações Digitais e Internet Ciências da Comunicação, U.Porto 2011/12 Computadores Computador O que é um computador? Um computador é uma máquina programável,

Leia mais

Tecnologia da Informação. Prof Odilon Zappe Jr

Tecnologia da Informação. Prof Odilon Zappe Jr Tecnologia da Informação Prof Odilon Zappe Jr Conceitos básicos de informática O que é informática? Informática pode ser considerada como significando informação automática, ou seja, a utilização de métodos

Leia mais

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de BD Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de informação para nosso êxito no curso. A intenção de elaborar

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

LÓGICA DE PROGRAMAÇÃO

LÓGICA DE PROGRAMAÇÃO Todos direitos reservados. Proibida a reprodução, mesmo parcial, por qualquer processo mecânico, eletrônico, reprográfico, etc., sem a autorização, por escrito, do(s) autor(es) e da editora. LÓGICA DE

Leia mais

Treinamento PostgreSQL - Aula 01

Treinamento PostgreSQL - Aula 01 Treinamento PostgreSQL - Aula 01 Eduardo Ferreira dos Santos SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com 27 de Maio de 2013 Eduardo Ferreira dos Santos

Leia mais

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados.

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Histórico Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Sistemas Integrados: racionalização de processos, manutenção dos

Leia mais

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo: Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares SENAI São Lourenço do Oeste Introdução à Informática Adinan Southier Soares Informações Gerais Objetivos: Introduzir os conceitos básicos da Informática e instruir os alunos com ferramentas computacionais

Leia mais

Escrito por Sex, 14 de Outubro de 2011 23:12 - Última atualização Seg, 26 de Março de 2012 03:33

Escrito por Sex, 14 de Outubro de 2011 23:12 - Última atualização Seg, 26 de Março de 2012 03:33 Preço R$ 129.00 Compre aqui SUPER PACOTÃO 3 EM 1: 186 Vídeoaulas - 3 dvd's - 10.5 Gybabyte. 1) SQL 2) Banco de Dados (Oracle 10g, SQL Server 2005, PostgreSQL 8.2, Firebird 2.0, MySQL5.0) 3) Análise e Modelagem

Leia mais

FileMaker 13. Guia de ODBC e JDBC

FileMaker 13. Guia de ODBC e JDBC FileMaker 13 Guia de ODBC e JDBC 2004 2013 FileMaker Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara, Califórnia 95054 FileMaker e Bento são marcas comerciais da

Leia mais

Manual Sistema MLBC. Manual do Sistema do Módulo Administrativo

Manual Sistema MLBC. Manual do Sistema do Módulo Administrativo Manual Sistema MLBC Manual do Sistema do Módulo Administrativo Este documento tem por objetivo descrever as principais funcionalidades do sistema administrador desenvolvido pela MLBC Comunicação Digital.

Leia mais

M a n u a l d o R e c u r s o Q m o n i t o r

M a n u a l d o R e c u r s o Q m o n i t o r M a n u a l d o R e c u r s o Q m o n i t o r i t i l advanced Todos os direitos reservados à Constat. Uso autorizado mediante licenciamento Qualitor Porto Alegre RS Av. Ceará, 1652 São João 90240-512

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

Manual de Instalação e Configuração

Manual de Instalação e Configuração e Configuração MyABCM 4.0 Versão 4.00-1.00 2 Copyright MyABCM. Todos os direitos reservados Reprodução Proibida Índice Introdução... 5 Arquitetura, requisitos e cenários de uso do MyABCM... 7 Instalação

Leia mais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL

Leia mais

SISTEMA DE ARQUIVOS. Instrutor: Mawro Klinger

SISTEMA DE ARQUIVOS. Instrutor: Mawro Klinger SISTEMA DE ARQUIVOS Instrutor: Mawro Klinger Estrutura dos Discos As informações digitais, quer sejam programas ou dados do usuário, são gravadas em unidades de armazenamento. O HD é uma unidade de armazenamento

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

Principal: construir uma base de dados para produção de informações sobre internações hospitalares; Principal: construir uma base de dados para produção de informações sobre internações hospitalares; Específicos: - criar um banco de dados para armazenar registros sobre internações hospitalares; - produzir

Leia mais

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados. PLANIFICAÇÃO DA DISCIPLINA DE SISTEMAS DE INFORMAÇÃO 12.ºH CURSO PROFISSIONAL DE TÉCNICO MULTIMÉDIA ANO LECTIVO 2013/2014 6. LINGUAGENS DE PROGRAMAÇÃO IV Pré-requisitos: - Planificar e estruturar bases

Leia mais

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Abordagem geral Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br Em primeiro plano, deve-se escolher com qual banco de dados iremos trabalhar. Cada banco possui suas vantagens,

Leia mais

NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro

NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro O MySQL Cluster é versão do MySQL adaptada para um ambiente de computação distribuída, provendo alta disponibilidade e alta redundância utilizando

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida UFCD 787 Administração de base de dados Elsa Marisa S. Almeida 1 Objectivos Replicação de base de dados Gestão de transacções Cópias de segurança Importação e exportação de dados Elsa Marisa S. Almeida

Leia mais

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127 Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

NoSQL. Cintia Freitas de Moura. BCC 441 Banco de Dados II / 2014

NoSQL. Cintia Freitas de Moura. BCC 441 Banco de Dados II / 2014 NoSQL Cintia Freitas de Moura BCC 441 Banco de Dados II / 2014 Origem: O termo NoSQL foi usado pela primeira vez em 1998, como o nome de um banco de dados relacional de código aberto que não possuía um

Leia mais

Principais características

Principais características .Net Framework O que é.net? Proprietário da Microsoft Versão simplificada para Linux Versão compacta para dispositivos móveis Plataforma de desenvolvimento e execução Interface com usuário, conectividade

Leia mais

CA Nimsoft Monitor Snap

CA Nimsoft Monitor Snap CA Nimsoft Monitor Snap Guia de Configuração do Meu Monitor do SQL Server mysql série 1.4 Avisos legais Copyright 2013, CA. Todos os direitos reservados. Garantia O material contido neste documento é fornecido

Leia mais

Revisão para a prova B2. Conteúdo das Aulas: 10, 11 e 14

Revisão para a prova B2. Conteúdo das Aulas: 10, 11 e 14 Revisão para a prova B2 Conteúdo das Aulas: 10, 11 e 14 Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Disciplina: Serviços de Redes Microsoft Professor:

Leia mais

05/02/2014 O QUE É UM COMPUTADOR? O QUE É UM COMPUTADOR? O QUE É UM COMPUTADOR? PENSAR EM INFORMÁTICA É PENSAR EM:

05/02/2014 O QUE É UM COMPUTADOR? O QUE É UM COMPUTADOR? O QUE É UM COMPUTADOR? PENSAR EM INFORMÁTICA É PENSAR EM: Apple I - 1976 1982 O Homem do ano Apple II - 1977 IBM PC - 1981 O QUE É UM COMPUTADOR? É uma máquina que tem a capacidade de realizar o PROCESSAMENTO de dados. É um dispositivo físico que recebe dados

Leia mais

Banco de Dados. Conceitos e Arquitetura de Sistemas de Banco de Dados. Profa. Flávia Cristina Bernardini

Banco de Dados. Conceitos e Arquitetura de Sistemas de Banco de Dados. Profa. Flávia Cristina Bernardini Banco de Dados Conceitos e Arquitetura de Sistemas de Banco de Dados Profa. Flávia Cristina Bernardini Relembrando... Vantagens da Utilização de SGBD Redundância controlada Consistência dos dados armazenados

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados Sistema de Bancos de Dados Conceitos Gerais Sistema Gerenciador de Bancos de Dados # Definições # Motivação # Arquitetura Típica # Vantagens # Desvantagens # Evolução # Classes de Usuários 1 Nível 1 Dados

Leia mais

Minicurso3 Introdução ao Banco de Dados MySQL

Minicurso3 Introdução ao Banco de Dados MySQL I Workshop de Informática INFO-BAIANO 12 a 13 de nov. de 2011 Minicurso3 Introdução ao Banco de Dados MySQL Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Leia mais

Pollyanna Gonçalves. Seminário da disciplina Banco de Dados II

Pollyanna Gonçalves. Seminário da disciplina Banco de Dados II Pollyanna Gonçalves Seminário da disciplina Banco de Dados II Web 2.0 vem gerando grande volume de dados Conteúdo gerado por redes sociais, sensores inteligentes, tecnologias de colaboração, etc. Novas

Leia mais

PRIMEIRO BIMESTRE MATERIAL PARA ESTUDO. Universidade Tuiuti do Paraná Faculdade de Ciências Exatas Introdução a Computação - CSTA.

PRIMEIRO BIMESTRE MATERIAL PARA ESTUDO. Universidade Tuiuti do Paraná Faculdade de Ciências Exatas Introdução a Computação - CSTA. Universidade Tuiuti do Paraná Faculdade de Ciências Exatas Introdução a Computação - CSTA Sistema Binário MATERIAL PARA ESTUDO PRIMEIRO BIMESTRE Para o leigo um computador, a primeira vista, pode parecer

Leia mais

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011 Banco de Dados Aula 1 - Prof. Bruno Moreno 16/08/2011 Roteiro Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD Natureza autodescritiva

Leia mais

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico Editora Carlos A. J. Oliviero Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico Orientado por Projeto 1a Edição 2 Reimpressão São Paulo 2011 Érica Ltda. Noções Livrarse Preparação muitas muita Sumário

Leia mais

Contextualização: Sistemas de Computação

Contextualização: Sistemas de Computação Contextualização: Sistemas de Computação Professor: Santiago Viertel dcc2sv@joinville.udesc.br Modelo de Computador Modelo de Computador: Informática Origem e Definição; Elementos Fundamentais; Hardware;

Leia mais

GBD. Introdução PROF. ANDREZA S. AREÃO

GBD. Introdução PROF. ANDREZA S. AREÃO GBD Introdução PROF. ANDREZA S. AREÃO Sistema de arquivos X Sistemas de Banco de Dados Sistema de arquivos Sistema de Banco de Dados Aplicativos Dados (arquivos) Aplicativos SGBD Dados (arquivos) O acesso/gerenciamento

Leia mais

Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari amanda@fcav.unesp.br

Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari amanda@fcav.unesp.br Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari amanda@fcav.unesp.br São representações dos números de uma forma consistente. Apresenta uma grande quantidade de números úteis, dando a cada número

Leia mais

BANCO DE DADOS. Introdução a Banco de Dados. Conceitos BásicosB. Engenharia da Computação UNIVASF. Aula 1. Breve Histórico

BANCO DE DADOS. Introdução a Banco de Dados. Conceitos BásicosB. Engenharia da Computação UNIVASF. Aula 1. Breve Histórico Banco de Dados // 1 Banco de Dados // 2 Conceitos BásicosB Engenharia da Computação UNIVASF BANCO DE DADOS Aula 1 Introdução a Banco de Dados Campo representação informatizada de um dado real / menor unidade

Leia mais

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG mhollweg@terra.com.br BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG mhollweg@terra.com.br BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS CONTEÚDO HARDWARE - 2 AULAS SISTEMA OPERACIONAL - 2 AULAS INFORMÁTICA Prof.: MARCIO HOLLWEG mhollweg@terra.com.br APLICATIVOS OFFICE - 3 AULAS INTERNET - 1 AULA REDE - 2 AULA SEGURANÇA - 1 AULA BANCO DE

Leia mais

Manual de referência do HP Web Jetadmin Database Connector Plug-in

Manual de referência do HP Web Jetadmin Database Connector Plug-in Manual de referência do HP Web Jetadmin Database Connector Plug-in Aviso sobre direitos autorais 2004 Copyright Hewlett-Packard Development Company, L.P. A reprodução, adaptação ou tradução sem permissão

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Arquivos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Conceituação de arquivos Implementação do sistemas de arquivo Introdução Sistema de

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro Volume de dados muito grande Principais problemas em relação aos SGBD Relacionais é conciliar o tipo de modelo com a demanda da escalabilidade. Exemplo -Facebook Um crescimento

Leia mais

Implementando rotinas de backup

Implementando rotinas de backup Implementando rotinas de backup Introdução O armazenamento de dados em meios eletrônicos é cada vez mais freqüente e esta tendência torna necessária a procura de maneiras de proteção que sejam realmente

Leia mais

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

ESTRUTURA DE SERVER 2008. Lílian Simão Oliveira

ESTRUTURA DE SERVER 2008. Lílian Simão Oliveira ESTRUTURA DE ARMAZENAMENTO SQL SERVER 2008 Lílian Simão Oliveira O Banco de Dados SQL Server mapeia um banco em um conjunto de arquivos do sistema operacional As informações de log e de dados nunca ficam

Leia mais

Sistemas Gerenciadores de Bancos de Dados

Sistemas Gerenciadores de Bancos de Dados Sistemas Gerenciadores de Bancos de Dados Orivaldo V. Santana Jr A partir de slides elaborados por Ivan G. Costa Filho Fernando Fonseca & Robson Fidalgo 1 Sistemas de Arquivos Sistemas de arquivos Principal

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Licenciatura em Computação Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Representação da informação Ao final deste capítulo você deverá ser capaz

Leia mais

Conceitos Básicos sobre Sistema de Computação

Conceitos Básicos sobre Sistema de Computação Conceitos Básicos sobre Sistema de Computação INFORMÁTICA -É Ciência que estuda o tratamento automático da informação. COMPUTADOR Equipamento Eletrônico capaz de ordenar, calcular, testar, pesquisar e

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 1 OBJETIVOS 1. Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações e transações empresariais?

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Como Configurar Catálogos de Correio Eletrônico com o MDaemon 6.0

Como Configurar Catálogos de Correio Eletrônico com o MDaemon 6.0 Como Configurar Catálogos de Correio Eletrônico com o MDaemon 6.0 Alt-N Technologies, Ltd 1179 Corporate Drive West, #103 Arlington, TX 76006 Tel: (817) 652-0204 2002 Alt-N Technologies. Todos os Direitos

Leia mais

Engenharia de software 2011A. Trabalho sobre

Engenharia de software 2011A. Trabalho sobre Engenharia de software 2011A Trabalho sobre NOSQL Not only SQL NoSQL Not only SQL GRUPO - 9 Cléverton Heming Jardel Palagi Jonatam Gebing Marcos Wassem NOSQL O Termo NoSQL, foi utilizado pela primeira

Leia mais

Laboratório de Banco de Dados

Laboratório de Banco de Dados Universidade Federal de Mato Grosso-UFMT Sistemas de Informação Laboratório de Banco de Dados Prof. Clóvis Júnior Laboratório de Banco de Dados Conteúdo Administração de Usuários de Papéis; Linguagens

Leia mais

Guia passo a passo de introdução ao Microsoft Windows Server Update Services

Guia passo a passo de introdução ao Microsoft Windows Server Update Services Guia passo a passo de introdução ao Microsoft Windows Server Update Services Microsoft Corporation Publicação: 14 de março de 2005 Autor: Tim Elhajj Editor: Sean Bentley Resumo Este documento fornece instruções

Leia mais

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião INTRODUÇÃO BANCO DE DADOS Prof. Msc. Hélio Esperidião BANCO DE DADOS Podemos entender por banco de dados qualquer sistema que reúna e mantenha organizada uma série de informações relacionadas a um determinado

Leia mais

Guia de Instalação do Backup Exec Cloud Storage para Nirvanix. Versão 1.0

Guia de Instalação do Backup Exec Cloud Storage para Nirvanix. Versão 1.0 Guia de Instalação do Backup Exec Cloud Storage para Nirvanix Versão 1.0 Guia de Instalação do Backup Exec Cloud Storage para Nirvanix O software descrito neste livro é fornecido sob um contrato de licença

Leia mais