Buscar

Desenvolvimento, aplicações e análises

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

36
SISTEMA DE ENSINO PRESENCIAL CONECTADO
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
EMERSON ALMIRANTE BASTOS
SISTEMA DE INFORMAÇÃO
Desenvolvimento, aplicações e análises
Paulista
2015
emerson almirante bastos
SISTEMA DE INFORMAÇÃO
Desenvolvimento, aplicações e análises
Projeto do Curso Análise e Desenvolvimento de Sistemas da UNOPAR - Universidade Norte do Paraná, como requisito parcial para obtenção da média do segundo semestre para as disciplinas Banco de Dados 1, Análise Orientada de Objetos 1, Linguagens de Programação e Estrutura de Dados e Organização de Computadores.
Professor Roberto Ykio Nishimura, Professora Polyanna Pacheco Gomes Fabris, Porfessora Meris Mozer, Professor Anderson Emídio de Macedo Gonçalves, Professor Paulo Kiyoshi Nishitani.
Paulista
2015
SUMÁRIO
1	INTRODUÇÃO	3
1.1	OBJETIVO	3
2	Criação de Banco de dados – conceito	4
3	ANÁLISE ORIENTADA DE OBJETOS – conceito	6
4	LINGUAGENS DE PROGRAMAÇÃO E ESTRUTURA DE DADOS – conceito	9
5	ORGANIZAÇÃO DE COMPUTADORES – conceito	13
6	PESQUISA DE PIZZARIAS – PESQUISA DE MERCADO	15
7	ESCOLHA DO SGBD – SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS.	17
8	ESTRUTURA DE DADOS DO CASO PROPOSTO	20
9	PESQUISA DE MERCADO – HARDWARE PARA IMPLEMENTAÇÃO	28
10	NOVAS FUNCIONALIDADES – IMPLEMENTAÇÃO DE BANCO DE DADOS	30
Estudo de Caso	31
REFERÊNCIAS	34
ANEXOS	35
INTRODUÇÃO
Este Projeto é Feito para o Planejamento de Tecnologia da Informação e Sistemas de Informação de uma Organização. Iremos abordar a empresa cujo ramo é de Comercialização de Alimento – Pizzarias e entregas, o qual A Empresa “Na Poparome” fez um Contrato com a Empresa de Softwares House SoftPlus para automatizar o processo de venda e entregas de pizzas. Iremos demonstrar como fazer o levantamento de requisitos, e escolha de um Sistema de Banco de dados para Gerenciamento das Necessidades da Pizzaria. Faremos nosso trabalho com base calculada e finalizando um ou mais sistema apropriado para esta Organização. 
A Pizzaria tem o intuito de expandir mais suas vendas e aprimorar cada vez o melhor atendimento mediante ao que iremos apresentar aqui.
OBJETIVO
Iremos colocar em prática o estudo abordado em Banco de dados: Criaremos um Banco de dados utilizando os softwares estudados para criação de Case e desenvolver o SBGD no BRModelo para Geração de Scripts no SQL. Na Análise orientada de Objetos utilizaremos a linguagem UML com o software Astah para um entendimento das funcionalidades básicas e utilização de casos de Uso para formação do Gerenciador de Banco de Dados. Utilizaremos a Linguagem de programação e estrutura de dados com Algoritmos demonstrando os casos de listas. E por fim a apresentação de um esquema de organização de Computadores demonstrando a aplicação deste estudo na composição dos Hardwares para automatização da Empresa Estudada.
Criação de Banco de dados – conceito
Existem vários tipos de banco de dados e eles estão presentes na nossa vida há muito tempo, a lista telefônica por exemplo pode ser considerada um banco de dados. Antigamente as empresas armazenavam informações em arquivos físicos, mas o surgimento e evolução dos computadores possibilitaram o armazenamento de dados de modo digital. Assim os bancos de dados evoluíram e se tornaram o coração de muitos sistemas de informação.
Banco de dados E uma coleção de dados logicamente coerente que possui um significado implícito cuja interpretação é dada por uma determinada aplicação.
Sistema Gerenciador de Bancos de Dados (SGBD): Software construído para facilitar as atividades de definição, construção e manipulação de bancos de dados. Conjunto de programas que tratam da manipulação dos dados armazenados em um BD.
Sistema de Bancos de Dados: Banco de Dados + Software que o manipula.
Funções do SGDB:
Armazenamento dos dados e meta-dados
Recuperação de dados armazenados de forma eficiente
Tratamento correto e eficiente de acessos simultâneos aos dados armazenados
A garantia de satisfação das restrições impostas sobre os dados
Processamento e execução de comandos da LDD e da LMD do modelo de dados correspondente
Garantia da recuperação contra falhas
Suporte a gerência de backups.
Modelo de Dados: Conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dado, tipos de dados, relacionamentos e restrições. Pode também incluir operações que especificam consultas e atualizações no banco de dados.
Esquema: Descrição da estrutura do banco de dados; Especificado no momento do projeto do BD; Não muda com frequência.
Diagrama: Representação gráfica de um esquema.
Instância ou Estado: Conjunto dos dados existente em um BD num certo instante; Muda frequentemente; cada mudança constitui um novo estado.
ANÁLISE ORIENTADA DE OBJETOS – conceito
O conceito de orientação a objetos surgiu com o intuito de minimizar os problemas encontrados até então na criação de softwares complexos, projetados por meio de decomposição funcional e sub-rotinas.
Podemos identificar como um dos maiores problemas a não existência de encapsulamento lógico para operações e dados, o que leva a não existência da divisão de tarefas por responsabilidades. O que leva a construção de longos trechos de código, muitas vezes difíceis de compreender devido ao acúmulo de responsabilidade que lhe é atribuído.
Por consequência, quanto mais complexo o software se torna, mais difícil se torna também a sua manutenção. Com isso aumentam os custos e o risco de confiabilidade do mesmo.
O foco da análise OO é no mapeamento de uma solução sistêmica para algum processo de negócio.
No início da análise OO, elaboramos os casos de uso. Estes juntamente com as descrições dos casos de uso formam uma espécie de ponte funcional entre o processo de negócio e a solução de software a ser produzida.
Outros dois documentos podem ser usados como fontes complementares aos casos de uso na análise OO:
Glossário: onde estão definidos os significados de todos os termos inerentes ao negócio mapeado nos casos de uso;
Documento de arquitetura: na utilização de possíveis mecanismos de análise, que são padrões de comportamento ou estrutura de uso recorrente e comprovadamente válido. 
A classe de fronteira é responsável por modelar a interação entre o ambiente do sistema e seus trabalhos internos. Essa interação envolve transformar e converter eventos, bem como observar mudanças na apresentação do sistema. É a classe de fronteira que trata das questões relativas à camada mais externa do sistema.
A classe de controle é usada para modelar um comportamento de controle específico de um ou alguns casos de uso. Geralmente estão controlando chamadas a classes de entidade. Por isso seu comportamento é muito ligado à idéia de coordenação, de ponte entre a camada mais externa do sistema (classes de fronteira) e a camada mais interna do sistema (classes de entidade).
 E finalmente, com a classe de entidade, modelamos comportamentos e informações que devem ser armazenados. É de responsabilidade das classes de entidade manter e atualizar informações relativas ao negócio do sistema, como: pessoas, eventos, objetos reais, ou qualquer outra informação ligada ao negócio ao qual o sistema está inserido. Por exemplo: em um sistema voltado para a área de ensino, provavelmente teremos uma classe de entidade chamada aluno, outra chamada disciplina e assim por diante.
Efetuar uma boa análise OO na criação de um sistema é fundamental para o seu sucesso. Por incrível que pareça, muita gente ainda enxerga a análise OO apenas como uma forma de documentar um sistema. Sim, esse é um dos ganhos que se tem com ela. Afinal, com seu uso, o conhecimento sobre o sistema não fica preso apenas na cabeça de quem o construiu, como também não fica submerso em meio a milhares de linhas de código fonte. Isso facilita a reutilização, o entendimento e a manutenção do software. Mas o benefícioda documentação não é o único ao se utilizar a análise OO.
A maior vantagem em utilizá-la é justamente poder pensar em uma solução sistêmica focada em responsabilidades, antes de começar a construí-la em linguagens de programação. 
É claro que para o sistema que vai controlar seu estoque pessoal de DVDs, a análise OO não se faz tão necessária assim. Mas na medida em que vamos aumentando o nível de complexidade e o tamanho das soluções de software, mais a análise OO se apresenta como uma grande aliada.
 Quanto maior a complexidade de um software, maior a necessidade de:
Ter disponível uma visão mais contemplativa possível sobre os problemas que se quer resolver, para assim achar os melhores caminhos a seguir;
Poder traçar estratégias isoladas ou abrangentes;
Poder identificar de quem é a responsabilidade sobre determinado conceito. 
 Unindo UML, estereótipos de análise e padrões de divisão de responsabilidade, a Análise Orientada a Objetos se encaixa como uma boa alternativa para a solução destas necessidades. 
LINGUAGENS DE PROGRAMAÇÃO E ESTRUTURA DE DADOS – conceito
A automatização de tarefas é um aspecto marcante da sociedade moderna. O aperfeiçoamento tecnológico alcançado, com respeito a isto, teve como elementos fundamentais a análise e a obtenção de descrições da execução de tarefas em termos de ações simples o suficiente, tal que pudessem ser automatizadas por uma máquina especialmente desenvolvida para este fim, O COMPUTADOR.
Em ciência da computação houve um processo de desenvolvimento simultâneo e interativo de máquinas (hardware) e dos elementos que gerenciam a execução automática (software) de uma dada tarefa. E essa descrição da execução de uma tarefa, como considerada acima, é chamada algoritmo.
As estruturas de dados são chamadas tipos de dados compostos que dividem-se em homogêneos (vetores e matrizes) e heterogêneos (registros):
As estruturas homogêneas são conjuntos de dados formados pelo mesmo tipo de dado primitivo.
As estruturas heterogêneas são conjuntos de dados formados por tipos de dados primitivos diferentes (campos do registro) em uma mesma estrutura.
A escolha de uma estrutura de dados apropriada pode tornar um problema complicado em um de solução relativamente simples. O estudo das estruturas de dados está em constante desenvolvimento (assim como o de algoritmos), mas, apesar disso, existem certas estruturas clássicas que se comportam como padrões.
Vetores ou arrays são estruturas de dados lineares e estáticas, isto é, são compostas por um número fixo (finito) de elementos de um determinado tipo de dados. O tempo de acesso aos elementos de um vetor é muito rápido, sendo considerado constante: o acesso aos elementos é feito pelo seu índice no vetor. Porém, a remoção de elementos pode ser custosa se não for desejável que haja espaços "vazios" no meio do vetor, pois nesse caso é necessário "arrastar" de uma posição todos os elementos depois do elemento removido.
Lista - Uma Lista é uma estrutura de dados linear. Uma lista ligada, também chamada de encadeada, é linear e dinâmica, é composta por nós que apontam para o próximo elemento da lista, o último elemento apontará para nulo. Para compor uma lista encadeada, basta guardar seu primeiro elemento
Fila - As filas são estruturas baseadas no princípio FIFO (first in, first out), em que os elementos que foram inseridos no início são os primeiros a serem removidos. Uma fila possui duas funções básicas: ENQUEUE, que adiciona um elemento ao final da fila, e DEQUEUE, que remove o elemento no início da fila. A operação DEQUEUE só pode ser aplicada se a fila não estiver vazia, causando um erro de underflow ou fila vazia se esta operação for realizada nesta situação.
Pilha - É uma estrutura de dados baseada no princípio LIFO (LAST in, FIRST out), na qual os dados que foram inseridos primeiros na pilha serão os últimos a serem removidos. Existem duas funções que se aplicam a todas as pilhas: PUSH, que insere um dado no topo da pilha, e POP, que remove o item no topo da pilha.
Arvores - Uma árvore é uma estrutura de dados em que cada elemento tem um ou mais elementos associados, podendo definir-se uma árvore recursivamente como:
Uma estrutura (uma árvore);
Um nó (designado por raiz), que contém a informação a armazenar e um conjunto finito de árvores (as sub-árvores).
Cada árvore tem apenas uma raiz. Além disso, os elementos associados a cada nó são habitualmente chamados de filhos desses nós. Os nós sem filhos de uma árvore são chamados de folhas.
DEFINIÇÃO DE ALGORITMO
 "O conceito central da programação e da Ciência da Computação é o conceito de algoritmos, isto é, programar é basicamente construir algoritmos."
 É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa.
 "O algoritmo pode ser usado como uma ferramenta genérica para representar a solução de tarefas independente do desejo de automatizá-las, mas em geral está associado ao processamento eletrônico de dados, onde representa o rascunho para programas (Software)."
 "Serve como modelo para programas, pois sua linguagem é intermediária à linguagem humana e às linguagens de programação, sendo então, uma boa ferramenta na validação da lógica de tarefas a serem automatizadas."
 "Um algoritmo é uma receita para um processo computacional e consiste de uma série de operações primitivas, interconectadas devidamente, sobre um conjunto de objetos. Os objetos manipulados por essas receitas são as variáveis."
 O algoritmo pode ter vários níveis de abstrações de acordo com a necessidade de representar ou encapsular detalhes inerentes às linguagens de programação. Ex: Certamente um algoritmo feito com o objetivo de servir como modelo para uma linguagem de III geração é diferente daquele para uma linguagem de IV geração. Mas isso não impede que a ferramenta em si possa ser usada em ambos o caso.
 Como qualquer modelo, um algoritmo é uma abstração da realidade. A abstração é o processo de identificar as propriedades relevantes do fenômeno que está sendo modelado. Usando o modelo abstrato, podemos nos centrar unicamente nas propriedades relevantes para nós, dependendo da finalidade da abstração, e ignorar as irrelevantes.
 É a forma pela qual descrevemos soluções de problemas do nosso mundo, afim de, serem implementadas utilizando os recursos do mundo computacional. Como este possuí severas limitações em relação ao nosso mundo, exige que, sejam impostas algumas regras básicas na forma de solucionar os problemas, para que, possamos utilizar os recursos de hardware e software disponíveis. Pois, os algoritmos, apesar de servirem para representar a solução de qualquer problema, no caso do Processamento de Dados, eles devem seguir as regras básicas de programação para que sejam compatíveis com as linguagens de programação.
Programa - Um programa é a codificação em alguma linguagem formal que garanta que os passos do algoritmo sejam executados da maneira como se espera por quem executa as instruções.
ORGANIZAÇÃO DE COMPUTADORES – conceito
Um computador (hardware) é um conjunto de circuitos eletrônicos que manipulam sinais elétricos e que são capazes de transformar sinais de entrada em sinais de saída. Os sinais elétricos podem ser representados, basicamente, pelos números zero e um. O importante a destacar é que uma computação ´e uma manipulação de dados residentes em memória através de alterações de sinais elétricos realizadas por circuitos integrados implementados normalmente em placas de silício. Quando os computadores foram criados, na década de 1930, a programação deles era feita de maneira muito precária. Era necessário configurar uma situação dos circuitos para manipular os sinais elétricos da maneira desejada para cada programa particular. Para se executar outro programa era necessário alterar os circuitos, assim se reprogramando o computador para manipular os dados de outra maneira. Um computador era algo raro naquelestempos, e devia rodar vários programas diferentes, o que resultava em imenso trabalho para os engenheiros (os programadores eram engenheiros na época). A memória do computador, naqueles tempos, era exclusividade dos dados que seriam manipulados. O programa era feito nos circuitos eletrônicos.
Classificação de arquiteturas
No projeto de sistemas computacionais no nível de processador (trabalhando com grupos de palavras, os tipos de componentes considerados são processadores, memórias, dispositivos de entrada e saída, e meios de interconexão.
Processadores - Contemplam componentes tais como CPU, controladores e coprocessadores. Têm um conjunto de instruções (de propósito geral para a CPU, especializado para coprocessadores) operando sobre instruções e dados (obtidos e armazenados externamente) organizados em palavras.
Memórias - Incluem dois subsistemas principais, memória principal e memória secundária. O custo associado à memória está diretamente relacionado à sua capacidade de armazenamento e à sua velocidade de operação.
Dispositivos de entrada e saída - São conversores de representação física de dados. Em geral, são lentos quando comparados com o processador.
Meios de interconexão - Estabelecem a comunicação entre componentes através de barramentos sob seu controle. Um problema crítico na utilização dos meios de interconexão é a contenção, a disputa pelo uso simultâneo de recursos compartilhados.
PESQUISA DE PIZZARIAS – PESQUISA DE MERCADO
	Na realização da pesquisa de mercado encontramos três pizzarias como exemplo de implantação e manipulação de banco de dados para automação comercial:
	Pizzaria Bruna (http://www.brunapizzaria.com.br/) – Que utiliza o software Katinu automação (http://www.katinu.com.br/), que faz gerenciamento de toda pizzaria, com as Funcionalidades:
Controle de Delivery (identificador de chamadas)
Cadastro de Clientes
Histórico de Pedidos
Taxa de entrega por região
Controle de consumo por Mesas
Transferência de Consumo entre mesas
Pizzas ½ a ½
Detalhes no item (Ex. sem cebola, com bacon)
Pedidos através de iOS e Android (mobilidade)
Impressão direta para produção
Controle de Estoque (controle de receita)
Controle de Caixa
Contas a Pagar
Contas a Receber
Relatórios e Gráficos
	
	Pizzaria Gulas (http://www.gulas.net/) – Que utiliza o software Expert Essencial (http://www.expertsystems.com.br/), que faz gerenciamento de toda pizzaria.
	Pizzaria Piola (http://www.piola.it/) – Que utiliza o software NCR COLIBRI (http://www.colibri.com.br/), que faz gerenciamento de toda pizzaria.
Atendimento telefônico direcionado
Gerenciador de pedidos do dia
Identificador de chamadas (BINA) com busca automática do cadastro de clientes
Localizador de endereço pelo nome ou telefone
Variação de taxas e entregas por região
Pedidos de entrega agendados
Histórico de compras dos clientes para atendimento personalizado.
ESCOLHA DO SGBD – SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS.
Existem no mercado vários sistemas de gerenciamento de banco de dados pagos e gratuitos. Pesquisaremos os sistemas: Mysql da Oracle, Microsof Sql e o Microsof Access (este também é considerado SGBDR – Sistema de Gerenciamento de banco de dados Relacional.
	Mysql da Oracle - MySQL é o banco de dados de código aberto mais popular do mundo e possibilita a entrega econômica de aplicativos de banco de dados confiáveis, de alto desempenho e redimensionáveis, com base na Web e incorporados. 
Propostas: Fácil de usar - download à instalação completa em menos de 15 minutos.
Menor TCO - Implante o MySQL para aplicações essenciais com economias significativas nos custos em relação ao Microsoft SQL Server.
Escalabilidade e desempenho - Atenda às necessidades de escalabilidade e desempenho dos web sites com mais tráfego e das aplicações mais exigentes
Suporte à produção - O Oracle Premier Support ajuda a reduzir o custo total e os riscos de propriedade de soluções MySQL
	
	Microsoft SQL Server - Como um Banco de dados, é um produto de software cuja principal função é a de armazenar e recuperar dados solicitados por outras aplicações de software, seja aqueles no mesmo computador ou aqueles em execução em outro computador através de uma rede (incluindo a Internet). Há pelo menos uma dúzia de diferentes edições do Microsoft SQL Server destinadas a públicos diferentes e para diferentes cargas de trabalho (variando de pequenas aplicações que armazenam e recuperam dados no mesmo computador, a milhões de usuários e computadores que acessam grandes quantidades de dados a partir da Internet ao mesmo tempo). Suas linguagens de consulta primárias são T-SQL e ANSI SQL. 
	Propostas: 
Armazenamento de dados OLTP
Relatório de dados
Análise de dados OLAP
Fluxos de dados
Limpeza de dados
Repositório único de dados
Replicação de dados entre servidores
	Microsoft Access - é um Sistema de gerenciamento de banco de dados da Microsoft, incluído no pacote do Microsoft Office Professional, que combina o Microsoft Jet Database Engine com uma interface gráfica do utilizador (graphical user interface). Ele permite o desenvolvimento rápido de aplicações (RAD - Rapid Application Development) que envolvem tanto de dados como também a interface a ser utilizada pelos usuários.
Microsoft Access é capaz de usar dados guardados em qualquer recipiente de dados compatível com ODBC.
O desenvolvimento da estrutura de dados se dá de forma muito intuitiva, bastando que o desenvolvedor possua conhecimentos básicos em modelagem de dados e lógica de programação.
	Um dos benefícios do Access do ponto de vista do programador é sua relativa compatibilidade com o SQL – buscas podem ser visualizadas e editadas como sendo indicações de SQL, e estes por sua parte podem ser usados diretamente em Macros e Módulos VBA para manipular tabelas do próprio Access. Usuários podem misturar e usar ao mesmo tempo VBA e Macros para formulários de programação e lógica, além de serem oferecidos possibilidades com técnicas de orientação-objeto.
	Neste trabalho escolheremos o Microsoft Access pelos motivos:
	Custo benefício: O mesmo já vem no pacote office que pode ser usado em qualquer computador que possua o Windows. Poderemos utilizar os outros programas.
	Facilidade de Interação com outros Programas – O access pode se relacionar com excel, word e power point, visual basic, visual studio e também com o sql. Geração de relatórios impressos e formulários para preenchimentos de dados.
	Banco de dados Relacional – Comparado ao Mysql e Sqlserver o Access é o único que possui base de dados relacionada. É um banco de dados que modela os dados de uma forma que eles sejam percebidos pelo usuário como tabelas, ou mais formalmente relações. Os Bancos de Dados Relacionais foram desenvolvidos para prover acesso facilitado aos dados, possibilitando que os usuários utilizassem uma grande variedade de abordagens no tratamento das informações. Pois, enquanto em um banco de dados hierárquico os usuários precisam definir as questões de negócios de maneira específica, iniciando pela sua raiz, nos Bancos de Dados Relacionais os usuários podem fazer perguntas relacionadas aos negócios por meio de vários pontos. A linguagem padrão dos Bancos de Dados Relacionais é a Structured Query Language, ou simplesmente SQL, como é mais conhecida.
ESTRUTURA DE DADOS DO CASO PROPOSTO			
Utilizaremos no Banco de dados da pizzaria o algoritmo com a estrutura de Fila para as solicitações dos pedidos. Isto é uma lista linear.
Existem outros tipos como: Listas lineares encadeadas, diferentemente das listas lineares sequenciais (ou contíguas), os elementos não estão necessariamente armazenados sequencialmente na memória. Assim, para manter a ordem lógica entre os elementos, as listas lineares encadeadas podem ser implementadas de duas formas:
Simplesmente encadeada
Numa lista linear simplesmente encadeada cada elemento possui, além do espaço para armazenamento da informação, um espaço para armazenar uma referência da localização na memória onde opróximo elemento da lista (ou o anterior) se encontra.
A representação simbólica para a lista linear simplesmente encadeada é apresentada a seguir:
Duplamente encadeada
Numa lista linear duplamente encadeada cada elemento possui, além do espaço para armazenamento da informação, um espaço para armazenar a referência da localização de memória onde se encontra o próximo elemento da lista e outro espaço para armazenar a referência da localização de memória onde se encontra o elemento anterior.
A representação simbólica para a lista linear duplamente encadeada é apresentada a seguir:
Na figura acima note que, na lista duplamente encadeada, o campo próximo de um nó faz referência ao próximo nó da lista, e o campo anterior faz referência ao nó anterior ao nó em questão.
Uma primeira vantagem da utilização de lista duplamente encadeada sobre a lista simplesmente encadeada é a maior facilidade para navegação, que na lista duplamente encadeada pode ser feita nos dois sentidos, ou seja, do início para o fim e do fim para o início. Isso facilita a realização de operações tais como inclusão e remoção de nós, pois diminui a quantidade de variáveis auxiliares necessárias.
A principal vantagem da utilização de listas encadeadas sobre listas sequenciais é o ganho em desempenho em termos de velocidade nas inclusões e remoções de elementos. Em uma lista contígua é necessário mover todos os elementos da lista para uma nova lista para realizar essas operações. Com estruturas encadeadas, como não existe a obrigatoriedade dos elementos estarem em posições contíguas da memória, basta realizar alterações nas referências dos nós, sendo um novo nó rapidamente inserido ou removido. Esta estrutura é mais adequada para lista com centenas ou milhares de nós, onde uma inserção ou remoção em uma lista contígua representará uma perda notável no desempenho do processamento.
Rotinas de Manipulação Lista Simplesmente Encadeada
As rotinas inserção e remoção de elementos numa lista são realizadas manipulando-se a referência ao próximo nó da lista. Observe a ilustração a seguir:
Inserção:
Remoção:
Veja o algoritmo a seguir: 
#include 
struct Nodo {
	int info;
	struct Nodo *prox;
};
struct ListaSimplesEnc {
	struct Nodo *prim;
};
void criarLista (struct ListaSimplesEnc *pList) {
	pList -> prim = NULL;
}
void mostrarLista (struct ListaSimplesEnc *pList){
	struct Nodo *p;
	for (p = pList -> prim; p != NULL; p = p->prox) {
		printf("%d\t", p->info);
	}
	printf("\n");
}
void inserirIni (struct ListaSimplesEnc *pList, int v){
	struct Nodo *novo;
	novo = (struct Nodo*) malloc (sizeof (struct Nodo));
	novo -> info = v;
	novo -> prox = pList -> prim;
	pList -> prim = novo;
}
void removerIni (struct ListaSimplesEnc *pList){
	struct Nodo *pAux = pList -> prim;
	pList -> prim = pList -> prim -> prox;
	free(pAux);
}
void inserirOrd (struct ListaSimplesEnc *pList, int v){
	struct Nodo *novo;
	novo = (struct Nodo*) malloc (sizeof (struct Nodo));
	novo -> info = v;
	
	struct Nodo *pAtu, *pAnt;
	pAnt = NULL;
	pAtu = pList -> prim;
	while ( pAtu != NULL && pAtu->info < v){
		pAnt = pAtu;
		pAtu = pAtu -> prox;
	}
	novo -> prox = pAtu -> prox;
	pAnt -> prox = novo;
}
int estaVazia(struct ListaSimplesEnc *pList) {
	return (pList->prim == NULL);
}
void main () {
	struct ListaSimplesEnc minhaLista;
	int valor, op;
	criarLista(&minhaLista);
	while( 1 ){
		printf( "1 - Inserir elemento no inicio\n" );
		printf( "2 - Inserir elemento em ordem (so se a lista estiver ordenada)\n" );
		printf( "3 - Remover elemento no inicio\n" );
		printf( "4 - Remover elemento\n" );
		printf( "5 - Mostrar lista\n" );
		printf( "6 - Sair\n" );
		printf( "Opcao? " );
		scanf( "%d", &op );
		switch( op ){
			case 1: // inserir elemento no inicio
		
				printf( "Valor? " );
				scanf( "%d", &valor );
				inserirIni(&minhaLista, valor);
				break;
			case 2: // inserir elemento ordenado
				printf( "Valor? " );
				scanf( "%d", &valor );
				inserirOrd(&minhaLista, valor);
				break;
			case 3: // remover o primeiro
				break;
			case 4: // remover determinado elemento
				break;
			case 5: // mostrar lista
				if (estaVazia(&minhaLista)) {
					printf("Lista vazia");
				}
				else {
					mostrarLista(&minhaLista);
				}
				break;
			case 6: // abandonar o programa
				exit(0);
		}
	}
}
Rotinas de Manipulação Lista Duplamente Encadeada
As rotinas inserção e remoção de elementos numa lista são realizadas manipulando-se a referência ao próximo nó da lista. Observe a ilustração a seguir:
Inserção:
Remoção:
Veja o algoritmo a seguir: 
#include 
// elemento da lista - nó ou nodo
struct Nodo {
	int info;
	struct Nodo *ant;
	struct Nodo *prox;
}no;
void main () {
	struct Nodo *inicio = NULL, *tmp, *p;
	int v;
	while( 1 ){
		printf( "\nValor? " );
		scanf( "%d", &v );
		if ( v == 0 ) break;
		// cria um novo nodo para ser inserido na lista
		tmp = (struct Nodo* ) malloc ( sizeof( struct Nodo ) );
		tmp -> info = v; 
		tmp -> prox = NULL;
		if (inicio == NULL) { // lista vazia
			inicio = tmp;
			tmp->ant = tmp->prox = NULL;
		}
		else {
			// p irá percorrer a lista			
			p = inicio;
			
			while ( p->prox != NULL && p->info != v) {
				p = p->prox;
			}
			if ( p->info != v ){
	
				p->prox = tmp;
				tmp->ant = p;
			}
		}
	}
	
	// mostrando a lista
	p = inicio;
	while ( p != NULL ) {
		printf( "%d\t", p->info);
		p = p->prox;
	}
	printf( "\n");
}
Em programação, lista é uma série de elementos ligados. O primeiro é ligado no segundo, que é ligado no terceiro etc.
Filas e pilhas são estruturas usualmente implementadas através de listas, restringindo a política de manipulação dos elementos da lista.
Uma fila (queue) tipicamente estabelece uma política FIFO -- first in, first out -- de acesso aos dados. Em outras palavras, a ordem estabelecida na lista é a ordem de inserção. No momento de retirar um nó da lista, o nó mais antigo (o primeiro que entrou) é o primeiro a ser retirado.
Como as políticas de inserção e remoção são pré-definidas, para esse tipo de estrutura as operações são descritas de forma genérica, INSERT e REMOVE. Há duas possibilidades para implementar as operações de uma fila usando os procedimentos descritos para listas:
restringir a inserção ao procedimento INSERT e a remoção ao procedimento REMOVELAST, ou
restringir a inserção ao procedimento APPEND e a remoção ao procedimento REMOVEFIRST.
Uma estrutura de pilha (stack), por outro lado, estabelece uma política LIFO -- last in, first out. Uma estrutura de pilha também oferece basicamente duas operações de manipulação, PUSH, para inserção no topo da pilha, e POP, para retirada do topo da pilha.
Embora também fosse possível implementar uma pilha através de lista usando os procedimentos que acrescentam e removem os nós no final da lista, por razões óbvias de desempenho uma pilha é usualmente implementada usando os procedimentos INSERT e REMOVEFIRST, que não requerem a varredura da lista para estabelecer essa política de manipulação de dados.
Em nossa pizzaria como exemplo temos o atendimento ao cliente que por meio de FILA entrará no atendimento. O cliente João fará um pedido de pizza às 8 horas e as 8 e dez o cliente Pedro solicitou uma pizza, independentemente do tempo de preparo ou de entrega e localização a pizza de João sairá primeiro do que a de Pedro. 
PESQUISA DE MERCADO – HARDWARE PARA IMPLEMENTAÇÃO			
Montagem de Rede - Para montar uma pequena rede para uma pizzaria teremos:
1 – Roteador de banda Larga - é um aparelho usado em redes de computadores para o encaminhamento das informações acondicionadas em pacotes de dados, proporcionando conectividade entre os dispositivos como computadores, smartphones e tablets, em redes LAN com a internet. Preço R$ 167 - TP-Link-TL-WR941ND-300Mbps-Wireless-com-3-Antenas.Central Telefônica – O uso do telefone, seja convencional ou celular, se tornou indispensável para facilitar o dia a dia da empresa. Oferece linha executiva, programação via web, siga-me, correio de voz, conferência, identificador de chamadas DTMF/FSK incorporado, monitoração de ambiente, música de espera, porteiro eletrônico, intercalação e ligações telefônicas IP (VoIP). Possui, também, estacionamento e retenção de chamadas, programação via PC pela serial (RS 232), USB ou placa Ethernet. Central PABX Híbrida Impacta 16 – Intelbras R$ 869,00.
1 – Servidor - Em servidores são utilizados componentes e placas mais robustas, sistemas de redundância (discos, alimentação de energia, coolers e outros), sistemas de refrigeração mais elaborados, recursos avançados de gerenciamento, possibilidade de substituição e expansão de hardware sem a necessidade de paradas (Hot swap), além de suporte diferenciado que é oferecido pela maioria das grandes empresas do ramo. Tudo isso para garantir a disponibilidade e confiabilidade na entrega de serviços e continuidade dos negócios. Servidor HP ProLiant R$ 1.999,90.
2 – Terminais – MK 802 - Esse PC é curioso, pois tem a aparência e o tamanho de um pendrive, mas é um computador quase completo. Ele conta com 512 MB de RAM e 4 GB de memória HD. Além disso, ele transforma qualquer tela em monitor, desde que ela seja acessível por USB ou HDMI. R$ 148,00
3 – Monitores – Qualquer monitor hoje em dia já está equipado para rodar tanto em Servidores copmo em estações de trabalho desktops, utilizaremos na montagem da pizzaria o Monitor Lcd 17 Polegadas Lg R$ 149,90.
1 – Impressora – Uma impressora matricial é importante para solicitações de pedidos e notas fiscais. Utilizaremos a Impressora Matricial Diebold Mecaf R$ 97,00.
NOVAS FUNCIONALIDADES – IMPLEMENTAÇÃO DE BANCO DE DADOS
Verificamos que a empresa de pizzaria não possui um cadastro de fornecedores de produtos para o preparo das pizzas e componentes, como os utilizados propriamente para amassa mas também para prestação de serviço completa como a entrega de refrigerantes e sucos.
Implementamos no banco de dados o Fornecedor que além dos dados cadastrais como telefone, responsável, endereço, temos o indicador Preço e Prazo, para a empresa poder negociar e com isso facilitar o crédito para venda de pizzas para o usuário final.
Ao gerenciar o fornecedor com seu prazo poderemos manipular os pagamentos da empresa para que não haver atraso, acarretando multas e juros.
			Estudo de Caso			
(Cenário Proposto: “Sistema de Entrega de Pizza”
A empresa “An Poparome” realizou contato com a Software House SoftPlus e informou que necessita automatizar seu processo de entrega de pizza. A SoftPlus enviou um analista de sistemas para realizar o levantamento dos requisitos.
Durante a reunião, o proprietário da “An Poparome”, o Sr. Mário, informou que a pizzaria está em expansão, mas no momento a maior necessidade é automatizar as entregas e, posteriormente, os demais setores.
Com base no levantamento realizado pelo analista de sistemas, foi possível identificar que a pizzaria necessitará dos seguintes controles:
1) Controle de Cliente: Neste controle é necessário o nome do cliente, telefone de contato, endereço, ponto de referência e data de nascimento. Com base nestes dados, no momento do pedido, o atendente realizará uma pesquisa pelo número do telefone do cliente, caso esteja cadastrado, os seus dados deverão ser exibidos, caso contrário, deverá cadastrá-lo. Este cenário leva a uma situação onde, por exemplo, em uma residência, cujo telefone fixo já esteja cadastrado para um dos moradores, não poderá ser cadastrado para outro morador da mesma residência, porém, caso necessário poderá mudar o nome do morador.
2) Controle de Entregadores: Neste controle são necessários os seguintes dados: nome do entregador, CPF, RG e celular.
3) Controle do Produto: Neste caso os produtos são as pizzas a serem vendidas, sendo necessária a inclusão dos dados, nome do produto, descrição, tamanho e custo.
4) Controle de Pedido: Para gerenciar os pedidos realizados pelo cliente, o atendente deverá informar no registro do pedido: nome do cliente, nome do produto, quantidade, tamanho etc. O pedido pode conter várias pizzas, porém, cada pizza apenas um sabor.
Automaticamente o sistema deverá calcular o valor total do pedido, por exemplo:
Pedido 1
1 pizza de calabresa, média, custa R$45,00.
1 pizza Romeu e Julieta, pequena, R$35,00.
Resultando no valor total de R$ 80,00, mais a taxa de entrega. E caso necessário, o troco é registrado no sistema.
Os pedidos serão atendidos com base nas ligações recebidas e o atendimento ao pedido deverá respeitar a ordem das ligações. Os pedidos ficarão nos seguintes status:
Pendente: Quando o atendente finaliza seu registro.
Em trânsito: Quando o motoboy retira o pedido para a entrega.
Cancelado: Quando surge alguma intercorrência e o pedido não pode ser entregue.
Entregue: Quando o motoboy conclui a entrega e apresenta o pagamento.
O Sr. Mário informou também que, semanalmente, seu gerente deverá gerar pelo sistema um relatório das “Entregas Realizadas” para o pagamento dos entregadores.
O ambiente no qual o sistema deverá ser executado deverá ser estruturado e ter, pelo menos, os seguintes equipamentos:
01 Servidor.
01 Estação (utilizada pelo atendente).
01 Estação (utilizada pelo gerente).
01 Impressora Jato de Tinta em rede. – Utilizaremos Matricial pelo custo benefício.
01 Roteador.
01 Modem com conexão ao provedor – Não utilizaremos pois o roteador wifi já faz este serviço.
01 Hub - Modem com conexão ao provedor – Não utilizaremos pois o roteador wifi já faz este serviço.
CONCLUSÃO
O somatório do aprendizado de todas as disciplinas ministradas no segundo período do curso de Análise e Desenvolvimento de Sistemas da UNOPAR possibilitou a criação deste trabalho que demonstra as principais características de um Banco de Dados, que foi usado desde a Modelagem de banco de Dados a Estrutura de Hardware para abordar o tema e fazer o estudo do caso da PIZZARIA.
A abordagem da linguagem programação para criação de um Sistema de Gerenciamento de banco de Dados é ferramenta essencial, onde pode ser usada para fins de negócio e lucro tem por finalidade a aplicação no trabalho de Analista e Desenvolvedor, para serem comercializados por empresas que usam este meio e buscam inovar no mundo globalizado e tecnológico.
O estudo demonstra que o profissional da área de Análise e Desenvolvimento tem uma grande abrangência no mercado, tanto nas áreas comerciais como na área tecnológica com desenvolvimento de softwares.
Para uma reunião de estudo de software utilizamos o BRmodelo, vimos como ficará o cadastro de clientes, funcionários, produtos, entregadores e fornecedores (este aplicado após um estudo visto a importância deste elemento no setor de comércio de alimentos).
REFERÊNCIAS
Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. Osvaldo Kotaro Takai, Isabel Cristina Italiano, João Eduardo Ferreira, DCC-IME-USP – Fevereiro - 2005 https://www.ime.usp.br/~jef
Artigo Engenharia de Software 2 - Análise Orientada a Objetos - http://www.dicasdeprogramacao.com.br/o-que-e-um-banco-de-dados/ - Revista Engenharia de Software 2 edição especial. http://www.devmedia.com.br/artigo-engenharia-de-software-2-analise-orientada-a-objetos/9150#ixzz3aDGm6ly2
OMG - The Object Management Group - www.omg.org
RUP - Rational Unified Process 7.0 - http://www-306.ibm.com/software/awdtools/rup/
UML Essencial -Martin Fowler, Editora Bookman
Utilizando UML e Padrões S. Carvalho. Introdução a Programação com Pascal. Editora Campus, 1982.
H. e outros Farrer. PASCAL Estruturado. Editora Guanabara Dois, 1999. 3a edição Guanabara Dois.
Manuais on-line do freepascal. Disponíveis juntamente com o compilador em http://www.freepascal.org.
D. E Knuth. The Art of Computer Programming, volume 1–3. Addison Wessley, 1968.
C. Medina, M.A.Fertig. Algoritmos e Programação: Teoria e Prática. Novatec, 2005.
L.M. Salveti, D.D. Barbosa. Algoritmos. Makron Books, 1998.
P. Tremblay. Ciência dos Computadores. McGraw-Hill, 1983.
N. Wirth. Programação Sistemática em PASCAL. Editora Campus, 1978. 
Paul E. Black (ed.), Data structure. Dictionary of Algorithms and Data Structures. 
U.S. National Institute of Standards and Technology, 2004. Versão online.
Advanced Computer Architecture: Parallelism, Scalability, Programmability Kai Hwang, McGraw-Hill 1993, ISBN 0-07-031622-8
Computer Architecture: Design and Performance, 2nd. ed. Barry Wilkinson Prentice Hall 1996, ISBN 0-13-518200-X
High-Performance Computer Architecture, 3rd. ed. Harold S. Stone, Addison Wesley 1993, ISBN 0-201-52688-3
Interligação em redes com TCP/IP; Comer, Douglas E.: tradução de ARX publicações – rio de janeiro: Elsevier, 1998 – 13° reimpressão.
Redes de Computadores e a Internet (uma abordagem top down); Kurose James F., Ross Keith W.; 2006: Pearson Addison Weslwy.
ANEXOS
-- Geração de Modelo físico
-- Sql ANSI 2003 - brModelo.
CREATE TABLE Entregador (
NOME Texto(1),
RG Texto(1),
CELULAR Texto(1),
CPF Texto(1) PRIMARY KEY,
CODIGO Texto(1)
)
CREATE TABLE Pizza (
NOME Texto(1) PRIMARY KEY,
DESCRIÇÃO Texto(1),
TAMANHO Texto(1),
CUSTO Texto(1)
)
CREATE TABLE cliente (
CPF Texto(1) PRIMARY KEY,
NOME Texto(1),
ENDERECO Texto(1),
TELEFONE Texto(1),
PEDIDO Texto(1),
CODIGO Texto(1)
)
CREATE TABLE PEDIDO (
ENTREGADOR Texto(1),
QUANTIDADE Texto(1),
ATENDENTE Texto(1),
CLIENTE Texto(1),
PIZZA Texto(1),
CODIGO Texto(1) PRIMARY KEY,
STATUS Texto(1)
)
CREATE TABLE Produto (
CODIGO Texto(1),
NOME Texto(1),
FOREIGN KEY(CODIGO) REFERENCES PEDIDO (CODIGO)/*falha: chave estrangeira*/
)
ALTER TABLE Entregador ADD FOREIGN KEY(CODIGO) REFERENCES PEDIDO (CODIGO)
ALTER TABLE cliente ADD FOREIGN KEY(CODIGO) REFERENCES PEDIDO (CODIGO)

Continue navegando