Skip to content
Update manual inter database framework with licence authored by Cecilia's avatar Cecilia
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
| 19/06/2017 | 1.2 | Adição da Introdução e Contexto | Vitor Borges | | 19/06/2017 | 1.2 | Adição da Introdução e Contexto | Vitor Borges |
| 19/06/2017 | 1.3 | Adição dos Frozen e Hot Spots | Thiago Moreira | | 19/06/2017 | 1.3 | Adição dos Frozen e Hot Spots | Thiago Moreira |
| 19/06/2017 | 1.4 | Adição do Diagrama de Pacotes v2 | Thiago Moreira | | 19/06/2017 | 1.4 | Adição do Diagrama de Pacotes v2 | Thiago Moreira |
| 20/06/2017 | 1.5 | Adição da Licença | Cecilia Dib |
<p align="center"><a href="#" target="_blank"><img width="180"src="/uploads/ab17516a69d0d6cdbfee25653b811168/ID2.png"></a></p> <p align="center"><a href="#" target="_blank"><img width="180"src="/uploads/ab17516a69d0d6cdbfee25653b811168/ID2.png"></a></p>
...@@ -30,66 +31,66 @@ ...@@ -30,66 +31,66 @@
# 1. Introdução # 1. Introdução
<p align="justify">Este artefato visa mostrar e descrever as principais características do <i>Framework</i> proposto como projeto final da disciplina de Desenho e Arquitetura de Software da Universidade de Brasília. Consiste em trazer uma visão geral sobre o completo funcionamento do mesmo e qual o problema e oportunidade de negócio que ele procura solucionar.</p> <p align="justify">&emsp;&emsp;Este artefato visa mostrar e descrever as principais características do <i>Framework</i> proposto como projeto final da disciplina de Desenho e Arquitetura de Software da Universidade de Brasília. Consiste em trazer uma visão geral sobre o completo funcionamento do mesmo e qual o problema e oportunidade de negócio que ele procura solucionar.</p>
# 2. Contexto # 2. Contexto
## 2.1. Oportunidade de Negócio ## 2.1. Oportunidade de Negócio
<p align="justify">No desenvolvimento de Software, é muito comúm ferramentas que automatizem o trabalho dos desenvolvedores, diminuindo seu esforço para fazer tarefas não muito triviais para dar continuidade à programação dos projetos. Com essa ideia em mente e a problemática encontrada no desenvolvimento do Trabalho 01, a equipe viu uma oportunidade desenvolver uma solução que facilite a configuração e conexão com diversos tipos de bases de dados e SGBDs, tanto relacionais quanto não-relacionais, utilizando a tecnologia Node.js.</p> <p align="justify">&emsp;&emsp;No desenvolvimento de Software, é muito comum ferramentas que automatizem o trabalho dos desenvolvedores, diminuindo seu esforço para fazer tarefas não muito triviais para dar continuidade à programação dos projetos. Com essa ideia em mente e a problemática encontrada no desenvolvimento do Trabalho 01, a equipe viu uma oportunidade desenvolver uma solução que facilite a configuração e conexão com diversos tipos de bases de dados e SGBDs, tanto relacionais quanto não-relacionais, utilizando a tecnologia Node.js.</p>
## 2.2. Nicho de Aplicação/GAP Tecnológico ## 2.2. Nicho de Aplicação/GAP Tecnológico
<p align="justify"> Muitas vezes, principalmente para os iniciantes dessa tecnologia, a configuração e conexão com bancos de dados não é algo fácil de ser realizado, principalmente que muitas delas utilizam módulos as vezes não conhecidos e/ou não triviais de serem integrados/utilizados. No Trabalho 01 da disciplina a equipe se deparou com esse mesmo problema, onde a conexão com o SQLServer da Microsoft que está sendo utilizado gerou diversos problemas de configuração devido a sua complexidade. À partir disso, a equipe viu que não era um problema encontrado apenas por eles, mas sim por diversos outros desenvolvedores ao redor do mundo que fazem o uso da tecnologia Node.js para seus projetos.</p> <p align="justify">&emsp;&emsp;Muitas vezes, principalmente para os iniciantes dessa tecnologia, a configuração e conexão com bancos de dados não é algo fácil de ser realizado, principalmente que muitas delas utilizam módulos as vezes não conhecidos e/ou não triviais de serem integrados/utilizados. No Trabalho 01 da disciplina a equipe se deparou com esse mesmo problema, onde a conexão com o SQLServer da Microsoft que está sendo utilizado gerou diversos problemas de configuração devido a sua complexidade. À partir disso, a equipe viu que não era um problema encontrado apenas por eles, mas sim por diversos outros desenvolvedores ao redor do mundo que fazem o uso da tecnologia Node.js para seus projetos.</p>
<p align="justify">Com isso, a equipe decidiu propor um <i>Framework</i> para facilitar a conexão e configuração dessas bases de dados para a tecnologia utilizada, visando diminuir o esforço dos programadores nessas características e permiti-los focar nas funcionalidades específicas do Software, sem se preocupar com sitanxe dos diferentes bancos, utilizando comandos mais simples e diretos.</p> <p align="justify">&emsp;&emsp;Com isso, a equipe decidiu propor um <i>Framework</i> para facilitar a conexão e configuração dessas bases de dados para a tecnologia utilizada, visando diminuir o esforço dos programadores nessas características e permiti-los focar nas funcionalidades específicas do Software, sem se preocupar com sitanxe dos diferentes bancos, utilizando comandos mais simples e diretos.</p>
# 3. O que é o Inter Database? # 3. O que é o Inter Database?
<p align="justify">O Inter Database é um <i>framework</i> que visa facilitar a comunicação entre uma aplicação em Node.js e um Banco de Dados. Essa comunicação inclui toda a parte de configuração do Banco, no âmbito da conexão, que é uma das dificuldades encontradas pela maioria dos desenvolvedores mais inexperientes, e inclui também a parte das querys, onde através de um simples método, o desenvolvedor pode realizar uma operação extremamente complexa no banco. </p> <p align="justify">&emsp;&emsp;O Inter Database é um <i>framework</i> que visa facilitar a comunicação entre uma aplicação em Node.js e um Banco de Dados. Essa comunicação inclui toda a parte de configuração do Banco, no âmbito da conexão, que é uma das dificuldades encontradas pela maioria dos desenvolvedores mais inexperientes, e inclui também a parte das querys, onde através de um simples método, o desenvolvedor pode realizar uma operação extremamente complexa no banco. </p>
<p align="justify">Além disto, o Inter Database também serve como uma forma de unificar a comunicação entre vários Bancos de Dados e uma aplicação, onde o desenvolvedor não necessita saber a sintaxe específica de cada banco para realizar comandos nos SGBDs.</p> <p align="justify">&emsp;&emsp;Além disto, o Inter Database também serve como uma forma de unificar a comunicação entre vários Bancos de Dados e uma aplicação, onde o desenvolvedor não necessita saber a sintaxe específica de cada banco para realizar comandos nos SGBDs.</p>
<p align="justify">Em linhas gerais, o <i>framework</i> é dividido em duas vertentes, que são as visões mais amplas de suas capacidades. A primeira vertente é a capacidade de se conectar à vários bancos diferentes e executar seus comandos específicos e a segunda é sua extensibilidade à novos bancos. Essas duas visões serão melhor detalhadas nos próximos tópicos.</p> <p align="justify">&emsp;&emsp;Em linhas gerais, o <i>framework</i> é dividido em duas vertentes, que são as visões mais amplas de suas capacidades. A primeira vertente é a capacidade de se conectar à vários bancos diferentes e executar seus comandos específicos e a segunda é sua extensibilidade à novos bancos. Essas duas visões serão melhor detalhadas nos próximos tópicos.</p>
## 3.1. Conexão com o Banco ## 3.1. Conexão com o Banco
<p align="justify">Em uma aplicação mais complexa que use vários Bancos diferentes, exige que o desenvolvedor seja muito qualificado ou que na equipe de desenvolvimento tenha várias pessoas que entenda cada tecnologia diferente, e que saiba muito bem cada comando para utilizar com eficiência cada um dos seus bancos. Com o uso deste <i>framework</i> esta exigência é quebrada, onde o a complexidade é reduzida pois, com uma simples instância do Inter Database, qualquer desenvolvedor é capaz de utilizar uma gama de Bancos diferentes, sem ter que saber nenhuma sintaxe específica sobre eles.</p> <p align="justify">&emsp;&emsp;Em uma aplicação mais complexa que use vários Bancos diferentes, exige que o desenvolvedor seja muito qualificado ou que na equipe de desenvolvimento tenha várias pessoas que entenda cada tecnologia diferente, e que saiba muito bem cada comando para utilizar com eficiência cada um dos seus bancos. Com o uso deste <i>framework</i> esta exigência é quebrada, onde o a complexidade é reduzida pois, com uma simples instância do Inter Database, qualquer desenvolvedor é capaz de utilizar uma gama de Bancos diferentes, sem ter que saber nenhuma sintaxe específica sobre eles.</p>
<p align="justify">Abaixo, segue uma representação figurativa da capacidade do Inter Database de se conectar há vários bancos diferentes de uma forma simples, de acordo com a necessidade do desenvolvedor em sua aplicação.</p> <p align="justify">&emsp;&emsp;Abaixo, segue uma representação figurativa da capacidade do Inter Database de se conectar há vários bancos diferentes de uma forma simples, de acordo com a necessidade do desenvolvedor em sua aplicação.</p>
<p align="center"><a href="#" target="_blank"><img width="450"src="/uploads/5cf67809a44684874bce1fb2eb57d066/dsw1.gif"></a><p align="center"><b><b>Figura 1 - Conexão entre o Inter Database e dois Bancos de Dados distintos.</b></p></p> <p align="center"><a href="#" target="_blank"><img width="450"src="/uploads/5cf67809a44684874bce1fb2eb57d066/dsw1.gif"></a><p align="center"><b><b>Figura 1 - Conexão entre o Inter Database e dois Bancos de Dados distintos.</b></p></p>
<p align="justify">Em uma aplicação cliente, o desenvolvedor pode herdar o Inter Database em uma classe Modelo, e por exemplo, utilizar seus métodos para funcionamento dos Getters e Setters.</p> <p align="justify">&emsp;&emsp;Em uma aplicação cliente, o desenvolvedor pode herdar o Inter Database em uma classe Modelo, e por exemplo, utilizar seus métodos para funcionamento dos Getters e Setters.</p>
<p align="justify">Na figura abaixo, o desenvolvedor em uma parte do seu código tem a necessidade de fazer uma pesquisa em determinado banco, então utiliza o objeto do Inter Database para mandar as informações requeridas.</p> <p align="justify">&emsp;&emsp;Na figura abaixo, o desenvolvedor em uma parte do seu código tem a necessidade de fazer uma pesquisa em determinado banco, então utiliza o objeto do Inter Database para mandar as informações requeridas.</p>
<p align="center"><a href="#" target="_blank"><img width="450"src="/uploads/23803a5dfc77316d57a6239ee75aa8b6/dsw2.gif"></a><p align="center"><b><b>Figura 2 - Cliente realizando uma busca utilizando uma instância do Inter Database.</b></p></p> <p align="center"><a href="#" target="_blank"><img width="450"src="/uploads/23803a5dfc77316d57a6239ee75aa8b6/dsw2.gif"></a><p align="center"><b><b>Figura 2 - Cliente realizando uma busca utilizando uma instância do Inter Database.</b></p></p>
<p align="justify">Após isso, o Inter Database processa as informações recebidas e, internamente, analisa qual o Banco que foi solicitado para realizar a operação. Após a análise, o <i>framework</i> abre a devida conexão com o banco correto para possibilitar a troca de informações e envia os dados para o Banco. Abaixo, segue uma pequena representação do que foi explicado.</p> <p align="justify">&emsp;&emsp;Após isso, o Inter Database processa as informações recebidas e, internamente, analisa qual o Banco que foi solicitado para realizar a operação. Após a análise, o <i>framework</i> abre a devida conexão com o banco correto para possibilitar a troca de informações e envia os dados para o Banco. Abaixo, segue uma pequena representação do que foi explicado.</p>
<p align="center"><a href="#" target="_blank"><img width="450"src="/uploads/6145c41f2683bfae2cb789238104baec/dsw3.gif"></a><p align="center"><b><b>Figura 3 - Processamento das informações e conexão com o Banco correto.</b></p></p> <p align="center"><a href="#" target="_blank"><img width="450"src="/uploads/6145c41f2683bfae2cb789238104baec/dsw3.gif"></a><p align="center"><b><b>Figura 3 - Processamento das informações e conexão com o Banco correto.</b></p></p>
<p align="justify">Em seguida, o Banco acionado retorna as informações que foram requeridas para o Inter Database. Com isso, o mesmo trata as informações recebidas do Banco e as converte para o formato JSON, que facilita seu uso na aplicação cliente do desenvolvedor. Após isso, a conexão com Banco utilizado é fechada. A imagem a seguir representa essa transação entre o <i>framework</i> e o Banco, e a aplicação recebendo os dados, onde, após a utilização do objeto, a conexão é fechada e o desenvolvedor segue escrevendo o seu código com os dados recebidos.</p> <p align="justify">&emsp;&emsp;Em seguida, o Banco acionado retorna as informações que foram requeridas para o Inter Database. Com isso, o mesmo trata as informações recebidas do Banco e as converte para o formato JSON, que facilita seu uso na aplicação cliente do desenvolvedor. Após isso, a conexão com Banco utilizado é fechada. A imagem a seguir representa essa transação entre o <i>framework</i> e o Banco, e a aplicação recebendo os dados, onde, após a utilização do objeto, a conexão é fechada e o desenvolvedor segue escrevendo o seu código com os dados recebidos.</p>
<p align="center"><a href="#" target="_blank"><img width="450"src="/uploads/fde655a6d0cade20d6743564df8a5dca/dsw4.gif"></a><p align="center"><b><b>Figura 4 - Banco retornando as informações para a aplicação.</b></p></p> <p align="center"><a href="#" target="_blank"><img width="450"src="/uploads/fde655a6d0cade20d6743564df8a5dca/dsw4.gif"></a><p align="center"><b><b>Figura 4 - Banco retornando as informações para a aplicação.</b></p></p>
<p align="justify">Ao projetar esta vertente do <i>framework</i>, foi utilizado o conceito de Caixa Preta, que é uma reutilização provida por composição e orientado por <i>Frozen Spots</i>. Ao utilizar a conexão com o Banco, o usuário apenas utiliza a composição dos serviços já desenvolvidos dentro do Inter Database, de acordo com a sua demanda específica.</p> <p align="justify">&emsp;&emsp;Ao projetar esta vertente do <i>framework</i>, foi utilizado o conceito de Caixa Preta, que é uma reutilização provida por composição e orientado por <i>Frozen Spots</i>. Ao utilizar a conexão com o Banco, o usuário apenas utiliza a composição dos serviços já desenvolvidos dentro do Inter Database, de acordo com a sua demanda específica.</p>
## 3.2. Configuração de um Novo Banco ## 3.2. Configuração de um Novo Banco
<p align="justify">Atualmente, há uma gama de SGBDs diferentes e, para o escopo de desenvolvimento deste <i>framework</i> para a disciplina de DSW, foi possível abranger apenas a configuração/conexão de poucos bancos especificamente. Apesar disto, ele foi projetado com um ponto flexível que permite a adição de qualquer banco, apenas utilizando uma herança das classes principais de configuração e de conexão. Isto torna possível uma boa extensibilidade por parte do Inter Database, pois a adição de novos Bancos pode enriquecer mais ainda o projeto e ajudar um grupo maior de desenvolvedores que tem tais problemas.</p> <p align="justify">&emsp;&emsp;Atualmente, há uma gama de SGBDs diferentes e, para o escopo de desenvolvimento deste <i>framework</i> para a disciplina de DSW, foi possível abranger apenas a configuração/conexão de poucos bancos especificamente. Apesar disto, ele foi projetado com um ponto flexível que permite a adição de qualquer banco, apenas utilizando uma herança das classes principais de configuração e de conexão. Isto torna possível uma boa extensibilidade por parte do Inter Database, pois a adição de novos Bancos pode enriquecer mais ainda o projeto e ajudar um grupo maior de desenvolvedores que tem tais problemas.</p>
<p align="justify">Já para projetar esta vertente do <i>framework</i>, foi utilizado o conceito de Caixa Branca, que é a reutilização provida por pontos flexíveis, utilizando heranças, normalmente. Este ponto flexível do Inter Database. A figura a seguir representa o processo citado acima, onde o Inter Database (que é o "Pai"), contêm os pontos maleáveis, onde um Banco novo tem suporte para se integrar facilmente ao <i>framework</i>.</p> <p align="justify">&emsp;&emsp;Já para projetar esta vertente do <i>framework</i>, foi utilizado o conceito de Caixa Branca, que é a reutilização provida por pontos flexíveis, utilizando heranças, normalmente. Este ponto flexível do Inter Database. A figura a seguir representa o processo citado acima, onde o Inter Database (que é o "Pai"), contêm os pontos maleáveis, onde um Banco novo tem suporte para se integrar facilmente ao <i>framework</i>.</p>
<p align="center"><a href="#" target="_blank"><img width="450"src="/uploads/f35bed04f781500dfeb68c7e48368090/dsw5.gif"></a></a><p align="center"><b><b>Figura 5 - Adição de um Banco novo por Herança.</b></p</p> <p align="center"><a href="#" target="_blank"><img width="450"src="/uploads/f35bed04f781500dfeb68c7e48368090/dsw5.gif"></a></a><p align="center"><b><b>Figura 5 - Adição de um Banco novo por Herança.</b></p</p>
<p align="justify">Com isso, o Inter Database por completo é um <i>framework</i> Caixa Cinza, que engloba tanto <i>Frozen Spots</i> e <i>Hot Spots</i> e é hibrido por utilizar em sua arquitetura pontos Caixa Preta e Caixa Branca.</p> <p align="justify">&emsp;&emsp;Com isso, o Inter Database por completo é um <i>framework</i> Caixa Cinza, que engloba tanto <i>Frozen Spots</i> e <i>Hot Spots</i> e é hibrido por utilizar em sua arquitetura pontos Caixa Preta e Caixa Branca.</p>
# 4. Arquitetura # 4. Arquitetura
<p align="justify">Nesta seção iremos explicar sobre os estilos e padrões arquiteturais que foram selecionados para desenvolver o framework proposto.</p> <p align="justify">&emsp;&emsp;Nesta seção iremos explicar sobre os estilos e padrões arquiteturais que foram selecionados para desenvolver o framework proposto.</p>
## 4.1. Estilos Arquiteturais ## 4.1. Estilos Arquiteturais
<p align="justify">Como já foi dito e será melhor detalhado visualmente falando no <a href="#42-Diagrama-de-Classes">Diagrama de Classes</a>, a problemátiva envolve o consumo de dados de diferentes bancos de dados, com diversas restrições e especificações de acesso e configuração. A partir disso, a equipe modelou o <i>Framework</i> utilizando o Estilo Arquitetural N-Camadas, que é geralmente utilizado para a modelar a interface de subsistemas, organizando-o em um conjunto de camadas - ou máquinas abstratas -, onde essas camadas em específico são responsáveis por fornecer diferentes tipos de serviços.</p> <p align="justify">&emsp;&emsp;Como já foi dito e será melhor detalhado visualmente falando no <a href="#42-Diagrama-de-Classes">Diagrama de Classes</a>, a problemátiva envolve o consumo de dados de diferentes bancos de dados, com diversas restrições e especificações de acesso e configuração. A partir disso, a equipe modelou o <i>Framework</i> utilizando o Estilo Arquitetural N-Camadas, que é geralmente utilizado para a modelar a interface de subsistemas, organizando-o em um conjunto de camadas - ou máquinas abstratas -, onde essas camadas em específico são responsáveis por fornecer diferentes tipos de serviços.</p>
<p align="justify">Esse Estilo arquitetural define que se uma camada é alterada, normalmente, as camadas dependentes à ela serão afetadas também. <p align="justify">Esse Estilo arquitetural define que se uma camada é alterada, normalmente, as camadas dependentes à ela serão afetadas também.
<p align="justify">A modelagem do <i>Framework</i> então foi feita baseando-se em três camadas: Configuração, Conexão e Consumo. <p align="justify">A modelagem do <i>Framework</i> então foi feita baseando-se em três camadas: Configuração, Conexão e Consumo.
</p> </p>
...@@ -131,10 +132,10 @@ ...@@ -131,10 +132,10 @@
<p align="center"><a href="#" target="_blank"><img width="300"src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Node.js_logo.svg/1200px-Node.js_logo.svg.png"></a></p> <p align="center"><a href="#" target="_blank"><img width="300"src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Node.js_logo.svg/1200px-Node.js_logo.svg.png"></a></p>
<p align="justify">Construído com base em Javascript, o Node.js tem a capacidade de executar código Javascript fora dos navegadores. Além disso, ele pode ser usado também como complemento de outras aplicações ou até mesmo em uma aplicação nativa, permitindo que <i>scripts</i> em JS sejam executados das mais variadas formas, proporcionando um melhor aproveitamento do mesmo. Ele é muito utilizado ao lado do servidor, atendendo demandas de aplicações web e APIs. Apesar disto, ele tem a capacidade de ser executado sem um servidor, sendo uma vantagem relevante.</p> <p align="justify">&emsp;&emsp;Construído com base em Javascript, o Node.js tem a capacidade de executar código Javascript fora dos navegadores. Além disso, ele pode ser usado também como complemento de outras aplicações ou até mesmo em uma aplicação nativa, permitindo que <i>scripts</i> em JS sejam executados das mais variadas formas, proporcionando um melhor aproveitamento do mesmo. Ele é muito utilizado ao lado do servidor, atendendo demandas de aplicações web e APIs. Apesar disto, ele tem a capacidade de ser executado sem um servidor, sendo uma vantagem relevante.</p>
<p align="justify">O Node.js utiliza o conceito de assincronidade no seu funcionamento, onde realiza varias atividades ao mesmo tendo, facilitando na realização de tarefas e otimizando o seu tempo. Quando o Node foi criado, em 2009, os desenvolvedores queriam deixar esse processo de assincronidade mais fácil e conveniente.</p> <p align="justify">&emsp;&emsp;O Node.js utiliza o conceito de assincronidade no seu funcionamento, onde realiza varias atividades ao mesmo tendo, facilitando na realização de tarefas e otimizando o seu tempo. Quando o Node foi criado, em 2009, os desenvolvedores queriam deixar esse processo de assincronidade mais fácil e conveniente.</p>
<p align="justify">A arquitetura do Node.js é baseada no paradigma de Programação Orientada a Evento, onde, basicamente, utiliza métodos para monitorar os eventos que avisa o código especializado em responder a um determinado evento, que aquele evento que ele espera ocorreu. Com isso, o código que foi avisado responde ao evento. Esse métodos citados são chamados de callback, e são utilizados constantemente na execução do Node. A assincronidade só é possível devido a presença desses métodos, para ter controle das ações dos diversos <i>scripts</i> rodando ao mesmo tempo na aplicação.</p> <p align="justify">&emsp;&emsp;A arquitetura do Node.js é baseada no paradigma de Programação Orientada a Evento, onde, basicamente, utiliza métodos para monitorar os eventos que avisa o código especializado em responder a um determinado evento, que aquele evento que ele espera ocorreu. Com isso, o código que foi avisado responde ao evento. Esse métodos citados são chamados de callback, e são utilizados constantemente na execução do Node. A assincronidade só é possível devido a presença desses métodos, para ter controle das ações dos diversos <i>scripts</i> rodando ao mesmo tempo na aplicação.</p>
<p align="justify">No Inter Database em específico o Node foi utilizado no backend, com o intuito de criar um "node module", que é um tipo de pacote que pode ser publicado na biblioteca no <a href="https://www.npmjs.com/">npm</a>, que é um gerenciador de pacotes para Javascript. Quando um node module é criado, ele pode ser usado como dependência em qualquer projeto novo, através do package.json.</p> <p align="justify">&emsp;&emsp;No Inter Database em específico o Node foi utilizado no backend, com o intuito de criar um "node module", que é um tipo de pacote que pode ser publicado na biblioteca no <a href="https://www.npmjs.com/">npm</a>, que é um gerenciador de pacotes para Javascript. Quando um node module é criado, ele pode ser usado como dependência em qualquer projeto novo, através do package.json.</p>
* **Versão:** v6.11.0 * **Versão:** v6.11.0
* O download do Node.js pode ser realizado em seu [site oficial](https://nodejs.org/en/download/). * O download do Node.js pode ser realizado em seu [site oficial](https://nodejs.org/en/download/).
...@@ -143,9 +144,9 @@ ...@@ -143,9 +144,9 @@
<p align="center"><a href="#" target="_blank"><img width="300"src="http://3.bp.blogspot.com/-sSO8x0sX56Y/UfV7femeJhI/AAAAAAAABhE/RyLvuPy9CZw/s1600/Microsoft-SQL-Server.png"></a></p> <p align="center"><a href="#" target="_blank"><img width="300"src="http://3.bp.blogspot.com/-sSO8x0sX56Y/UfV7femeJhI/AAAAAAAABhE/RyLvuPy9CZw/s1600/Microsoft-SQL-Server.png"></a></p>
<p align="justify">Focado em Bancos de Dados Relacionais, o SQL Server é um Gerenciados de Banco de Dados criado pela Microsoft em 1998. Seu diferencial é a grande variedade de edições, onde o desenvolvedor pode escolher a melhor que se adapta ao contexto do seu projeto, seja ele uma aplicação com grandes cargas de requisições em bancos distribuídos ou até mesmo projetos mais simples com banco local. O SQL Server utiliza as linguagens T-SQL, que é uma implementação do SQL que adiciona várias extensões e possibilidades ao programador, em conjunto ao ANSI SQL para consulta primárias. É uma das três tecnologias de banco de dados líderes do mercado, juntamente com o Oracle Database e o DB2 da IBM.</p> <p align="justify">&emsp;&emsp;Focado em Bancos de Dados Relacionais, o SQL Server é um Gerenciados de Banco de Dados criado pela Microsoft em 1998. Seu diferencial é a grande variedade de edições, onde o desenvolvedor pode escolher a melhor que se adapta ao contexto do seu projeto, seja ele uma aplicação com grandes cargas de requisições em bancos distribuídos ou até mesmo projetos mais simples com banco local. O SQL Server utiliza as linguagens T-SQL, que é uma implementação do SQL que adiciona várias extensões e possibilidades ao programador, em conjunto ao ANSI SQL para consulta primárias. É uma das três tecnologias de banco de dados líderes do mercado, juntamente com o Oracle Database e o DB2 da IBM.</p>
<p align="justify">A versão do SQL Server 2016 em específico, que é a versão utilizada no projeto, adicionou novos recursos para sintonização de desempenho, análise operacional em tempo real e visualização de dados e relatórios em celulares, tendo disponível a Edição Developer, totalmente licenciada e de forma gratuita.</p> <p align="justify">&emsp;&emsp;A versão do SQL Server 2016 em específico, que é a versão utilizada no projeto, adicionou novos recursos para sintonização de desempenho, análise operacional em tempo real e visualização de dados e relatórios em celulares, tendo disponível a Edição Developer, totalmente licenciada e de forma gratuita.</p>
<p align="justify">O SQL Server é um dos bancos que o Inter Database Framework oferece suporte.</p> <p align="justify">&emsp;&emsp;O SQL Server é um dos bancos que o Inter Database Framework oferece suporte.</p>
* **Versão:** 2016 * **Versão:** 2016
* Para instalar o cliente do SQL Server no seu projeto em Node.js, execute o comando abaixo ou acesse sua [documentação](https://www.npmjs.com/package/mssql) para mais informações: * Para instalar o cliente do SQL Server no seu projeto em Node.js, execute o comando abaixo ou acesse sua [documentação](https://www.npmjs.com/package/mssql) para mais informações:
...@@ -158,8 +159,8 @@ $ npm install --save mssql ...@@ -158,8 +159,8 @@ $ npm install --save mssql
<p align="center"><a href="#" target="_blank"><img width="300"src="http://www.redetivha.com.br/wp-content/uploads/2017/05/postgresql-logo.png"></a></p> <p align="center"><a href="#" target="_blank"><img width="300"src="http://www.redetivha.com.br/wp-content/uploads/2017/05/postgresql-logo.png"></a></p>
<p align="justify">Estruturado como um Sistema Gerenciados de Banco de Dados Objeto Relacional, o PostgreSQL é um SGBDOR de código aberto baseado na evolução do projeto Ingres, que é um banco de dados relacional, criado no ano de 1982. Berkeley, que é o criador, no desenvolvimento do PostgreSQL focou em resolver o problema dos banco de dados relacionais comuns da época, que não tratavam com eficiência a combinação de dados de várias tabelas, que formam outros tipos (objetos).</p> <p align="justify">&emsp;&emsp;Estruturado como um Sistema Gerenciados de Banco de Dados Objeto Relacional, o PostgreSQL é um SGBDOR de código aberto baseado na evolução do projeto Ingres, que é um banco de dados relacional, criado no ano de 1982. Berkeley, que é o criador, no desenvolvimento do PostgreSQL focou em resolver o problema dos banco de dados relacionais comuns da época, que não tratavam com eficiência a combinação de dados de várias tabelas, que formam outros tipos (objetos).</p>
<p align="justify">Atualmente, ele conta com diversos recursos mais avançados, como chaves estrangeiras, linguagem procedural, modelo híbrido objeto-relacional, indexação por texto e estrutura para dados georeferenciados.</p> <p align="justify">&emsp;&emsp;Atualmente, ele conta com diversos recursos mais avançados, como chaves estrangeiras, linguagem procedural, modelo híbrido objeto-relacional, indexação por texto e estrutura para dados georeferenciados.</p>
<p align="justify">O PostgreSQL é um dos bancos que o Inter Database Framework oferece suporte.</p> <p align="justify">O PostgreSQL é um dos bancos que o Inter Database Framework oferece suporte.</p>
* **Versão:** 9.4.12 * **Versão:** 9.4.12
...@@ -172,10 +173,10 @@ $ npm install --save pg ...@@ -172,10 +173,10 @@ $ npm install --save pg
### 5.1.4 MySQL ### 5.1.4 MySQL
<p align="center"><a href="#" target="_blank"><img width="300"src="https://upload.wikimedia.org/wikipedia/en/thumb/6/62/MySQL.svg/1200px-MySQL.svg.png"></a></p> <p align="center"><a href="#" target="_blank"><img width="300"src="https://upload.wikimedia.org/wikipedia/en/thumb/6/62/MySQL.svg/1200px-MySQL.svg.png"></a></p>
<p align="justify">Uma outra tecnologia a ser utilizada e é bastante comum no âmbito de sistemas gerenciadores de bancos de dados Relacionais é o MySQL, que nada mais é do que um servidor de banco de dados SQL (Structured Query Language) rápido, multi-tarefas ou <i>multi-threared</i> e robusto. O MySQL é um <i>trademark</i> que pertence atualmente à Oracle Corporation e foi criado na Suécia por David Axmark, Allan Larsson e Michael Widenius. É um dos SGBDs mais conhecidos mundialmente e o seu uso/desenvolvimento/manutenção empregam mais de 400 mil pessoas ao redor do mundo, onde sua plataforma já foi baixada mais de 10 milhões de vezes desde o seu lançamento.</p> <p align="justify">&emsp;&emsp;Uma outra tecnologia a ser utilizada e é bastante comum no âmbito de sistemas gerenciadores de bancos de dados Relacionais é o MySQL, que nada mais é do que um servidor de banco de dados SQL (Structured Query Language) rápido, multi-tarefas ou <i>multi-threared</i> e robusto. O MySQL é um <i>trademark</i> que pertence atualmente à Oracle Corporation e foi criado na Suécia por David Axmark, Allan Larsson e Michael Widenius. É um dos SGBDs mais conhecidos mundialmente e o seu uso/desenvolvimento/manutenção empregam mais de 400 mil pessoas ao redor do mundo, onde sua plataforma já foi baixada mais de 10 milhões de vezes desde o seu lançamento.</p>
<p align="justify">Algumas das principais características do SGBD MySQL são: portabilidade, compatibilidade, desempenho, estabilidade, facilidade de uso e instalação, licença GPL, entre outros.</p> <p align="justify">&emsp;&emsp;Algumas das principais características do SGBD MySQL são: portabilidade, compatibilidade, desempenho, estabilidade, facilidade de uso e instalação, licença GPL, entre outros.</p>
A versão 5.7 a ser utilizada no projeto truxe algumas melhorias em relação às antigas como melhorias de segurança, suporte JSON, manipulação condicional, otimização e diversas outras boas características que podem ser encontradas [aqui](https://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html#mysql-nutshell-additions). A versão 5.7 a ser utilizada no projeto trouxe algumas melhorias em relação às antigas como melhorias de segurança, suporte JSON, manipulação condicional, otimização e diversas outras boas características que podem ser encontradas [aqui](https://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html#mysql-nutshell-additions).
* **Versão:** 5.7 * **Versão:** 5.7
* Para instalar o cliente do MySQL no seu projeto em Node.js, execute o comando abaixo ou acesse sua [documentação](https://www.npmjs.com/package/mysql) para mais informações: * Para instalar o cliente do MySQL no seu projeto em Node.js, execute o comando abaixo ou acesse sua [documentação](https://www.npmjs.com/package/mysql) para mais informações:
...@@ -190,7 +191,17 @@ $ npm install --save mysql ...@@ -190,7 +191,17 @@ $ npm install --save mysql
# 7. Utilizando o Framework # 7. Utilizando o Framework
# 8. Licenças <p align="justify">&emsp;&emsp; </p>
# 8. Licença
<p align="justify">&emsp;&emsp; A <b>Licença MIT</b> é similar às condições da licença BSD, sendo a diferença desta segunda de conter um aviso proibindo o uso promocional do nome do autor sob <i>copyright</i>. Já a licença MIT usa de forma explícita os direitos do usuário final, incluindo o direito ao uso, cópia, modificação, fusão, distribuição, "sublicenciamento" e/ou venda de software.</p>
<p align="justify">&emsp;&emsp; É uma licença permissiva que é concisa e objetiva. Ela permite que as pessoas usem e até alterem seu código, desde que forneçam uma atribuição de volta para você e não lhe responsabilize.</p>
<p align="justify">&emsp;&emsp; Resumindo, a exigência da licença MIT é o aviso de licença e direitos autorais. E os motivos que foram considerados para a escolha desta licença foram: uso comercial, modificação, distribuição e sublicenciamento.</p>
Inter Database é distribuído sob a licença MIT. Consulte [LICENSE](https://gitlab.com/Desenho-2017-1/Inter-Database/blob/development/LICENSE) para obter detalhes.
... ...
......