SUMÁRIO
Introdução..........................................................................................................................21. DESENVOLVIMENTO DE SOFTWARE...............................................................4
1.1 Processo de Desenvolvimento de Software..........................................................41.2 Engenharia de software........................................................................................51.3 Modelos de Processo..............................................................................................51.4 Manutenção............................................................................................................7
2. PROGRAMAÇÃO – O DELPHI...............................................................................83. BANCO DE DADOS – O MYSQL..........................................................................11
Vantagens...................................................................................................................114. O SISTEMA DESENVOLVIDO - FUNCIONALIDADES...............................13
4.1 Módulo de cadastro de clientes..........................................................................134.2 Módulo de agendamento.....................................................................................134.3 Módulo de contabilidade salarial.......................................................................134.4 Módulo de prestação de serviços........................................................................144.5 Módulo de vendas e estoque...............................................................................14
5. O SISTEMA DESENVOLVIDO - PROGRAMAÇÃO.........................................156. SISTEMA DESENVOLVIDO – O BANCO DE DADOS......................................16
6.1 Tabela Cliente......................................................................................................166.2 Tabela Servico......................................................................................................176.3 Tabela Detalhes_Servicos...................................................................................186.4 Tabela Categorias_Servico.................................................................................186.5 Tabela Funcionários............................................................................................196.6 Tabelas Descontos e Acrescimos........................................................................206.7 Tabela Cargos......................................................................................................216.8 Tabela Venda.......................................................................................................226.8 Tabela Detalhes_Venda.......................................................................................236.9 Tabela Produtos...................................................................................................24
CONCLUSÃO................................................................................................................26REFERÊNCIAS BIBLIOGRAFICAS............................................................................27
IntroduçãoDesde a antiguidade o ser humano sente a necessidade de estar bem consigo, mesmo
que isso significasse exageros em sua aparência. Não era a toa que a grande civilização
Grega tinha grande apreço pela beleza, com seus deuses dotados, (pelo menos a grande
maioria) de uma grande beleza física.
Por mais que lendas fossem criadas em relação a esses exageros, como a de Narciso,
que de tanto amar sua própria aparência foi amaldiçoado pelos deuses, há uma
necessidade, em meio ao mundo pós moderno que os seres estejam apresentados. Beleza
já passa de um conceito abstrato, mas algo que hoje em dia está tão presente em cada
pessoa que, ao conhecer alguém novo, não fica preso as questões filosóficas de
importância interior.
Hoje os padrões de estética são aquilo que faz; o que diríamos serem; a nossa primeira
opinião a tal pessoa. Beleza está diretamente ligada a estética do tempo e do espaço ao
qual se vive. – Reescrever esse parágrafo
Sócrates (470-399 a.C.), um dos mais notórios pensadores da Grécia Clássica, foi um
dos primeiros a refletir sobre estas questões de estética. Há indícios de que ele refutou
os conceitos tradicionalmente atribuídos ao belo falando que ele não irá definir o que é
belo julgando-se incapaz de explicar o belo em si.
Platão (428/27-347 a.C.) em seu tempo também tentou entender o conceito de “ser
belo” , tentando entender os objetos que o incorporavam como proporção, harmonia e
união. Mas o belo que Platão estava mais na idéia do belo em si, que era colocado como
absoluto e eterno, não dependendo dos objetos . Platão dissociava o belo do mundo
sensível, sua existência ficava confinada ao mundo das idéias, associando-se ao bem, a
verdade, ao imutável e a perfeição.
Para ele, para definir o que era ou não belo, era somente a partir do ideal de beleza
suprema, assim possivel emitir um juizo estético. O belo platoniano, por estar fora de
um mundo sensivel, está separado também da intromissão do julgamente humano,
sendo que o estado é passivo diante do belo, estabelecendo uma anião inseparavel entre
o belo, a beleza, o amor e o saber, conduzindo o homem à perfeição.
Aristoteles (384-322 a.C.), que era discipulo de Platão, dispensou idéias de seu mestre,
ligando a beleza ao mundo sensitivel, deixando a idéia de abstração para uma idéia mais
concreta do belo. Com o belo materializado a beleza, no pensamento aristotélico, já não
era imutavel, nem eterno, mas está sendo aprimorado com a evolução do ser humano.
Foi ele que deu o primeiro passo para que o conceito de beleza disassociasse de
perfeição, trazendo o belo a uma condição mais mundana, uma esfera mais “alcaçável”
aos seres humanos. Assim sendo a beleza deixava de ser algo longe, separado do ser
humano, mas intrinseco a ele.
É o belo aristotélico, que segue critérios de simetria, composição, ordenação,
proposição, equilíbrio, que foi eaquecido por um longo tempo, mas reavivado no final
da Idade Média que será o que adaptamos hoje em dia.
A Arte segue os padrões estéticos, e hoje o ser humano tenta, cada vez mais estar
englobado naquilo que adotamos como padrão estético.
Não é a toa que hoje em dia há muitos salões que tentam ajudar a humanidade a alcaçar
esse objetivo, que a cada momento fica mais proximo da realidade.
1. DESENVOLVIMENTO DE SOFTWARE
O desenvolvimento de software é o ato de elaborar e implementar um sistema
computacional, isto é, transformar a necessidade de um utilizador ou de um mercado em
um produto de software. Também é entendido como a aplicação dos processos da
engenharia de software combinados com a pesquisa das necessidades do produto para
desenvolver software.
1.1 Processo de Desenvolvimento de Software
Para desenvolver um software é necessário realizar os seguintes passos:
Análise Econômica: Estabelece se o projeto de Software gerará lucro, e se a receita
gerada será o suficiente para cobrir os custos. Este processo acompanha todas as demais
etapas de desenvolvimento do Software.
Análise de requisitos de software: A extração dos requisitos de um desejado produto
de software é a primeira tarefa na sua criação. Embora o cliente, provavelmente,
acredite saber o que o software deva fazer, esta tarefa requer habilidade e experiência
em engenharia de software para reconhecer a incompletude, ambigüidade ou
contradição nos requisitos. Análise de requisitos pode ser um processo longo e árduo.
Novos sistemas mudam o ambiente e a relação entre as pessoas, então é importante
identificar todos os envolvidos, levando em conta todas as suas necessidades e
assegurando que eles compreenderam as implicações dos novos sistemas. Os analistas
podem empregar várias técnicas para solicitar os requisitos dos clientes. Historicamente,
isto envolve coisas tais como organizar entrevistas ou grupos focais (workshops) e a
criação de lista de requisitos. Técnicas mais modernas incluem prototipação, e casos de
uso, onde o analista irá aplicar uma combinação de métodos para estabelecer os
requisitos exatos de seus stakeholders, tal que um sistema que atenda as necessidades do
negócio seja produzido.
Especificação: É a tarefa de descrever precisamente o software que será escrito,
preferencialmente de uma forma matematicamente rigorosa. Na prática, somente
especificações mais bem sucedidas foram escritas para aplicações bem compreendidas e
afinadas que já estavam bem desenvolvidas. Especificações são mais importantes para
interfaces externas que devem permanecer estáveis.
Arquitetura de Software: Remete a uma representação abstrata daquele sistema.
Arquitetura é concernente à garantia de que o sistema de software irá ao encontro de
requisitos do produto, como também assegurar que futuros requisitos possam ser
atendidos. A etapa da arquitetura também direciona as interfaces entre os sistemas de
software e outros produtos de software, como também com o hardware básico ou com o
sistema operacional.
Implementação (ou codificação): A transformação de um projeto para um código deve
ser a parte mais evidente do trabalho da engenharia de software, mas não
necessariamente a sua maior porção.
Teste: É essencial testar partes do software, especialmente onde tenha sido codificado
por dois ou mais engenheiros trabalhando juntos, é um papel da engenharia de software.
Documentação: Visa documentar o projeto interno do software para propósitos de
futuras manutenções e aprimoramentos. As documentações mais importantes são das
interfaces externas.
1.2 Engenharia de software
A criação de um programa de computador consiste de cinco passos principais:
1. Reconhecer a necessidade de um programa para resolver um problema.
2. Planificar o programa e selecionar as ferramentas necessárias para resolver o
problema.
3. Escrever o programa na linguagem de programação escolhida.
4. Compilação: tradução do código fonte legível pelo homem em código executável
pela máquina, o que é feito através de compiladores e outras ferramentas.
5. Testar o programa para ter a certeza de que funciona; se não, regressar ao passo 3.
Estes cinco passos são coletivamente conhecidos como engenharia de software. A
programação põe ênfase nos passos 2, 3 e 4. A codificação põe ênfase no passo 3. O
termo coder, por vezes usado como sinônimo para programador, pode tornar-se errado
porque ignora as capacidades necessárias para lidar com os outros quatro passos.
1.3 Modelos de Processo
Não existe um modelo de processo usado por todos, cada programador utiliza aquele
que melhor se encaixa modo para fazer o desenvolvimento.
Porém, existe alguns modelos mais conhecidos e bastante utilizados como:
Processo em cascata
Os programadores estabelecem os requisitos, os analisam, projetam uma abordagem
para solução, arquitetam um esboço do software, implementam o código, testam
(inicialmente os testes unitários e então os testes de sistema), implantam e mantêm.
Depois que cada passo é terminado, o processo segue para o próximo passo, tal como
construtores que não revisam as fundações de uma casa depois que as paredes foram
erguidas. Se as iterações não são incluídas no planejamento, o processo não tem meios
para corrigir os erros nas etapas inicias (por exemplo, nos requisitos), então o processo
inteiro da engenharia de software deve ser executado até o fim, resultando em
funcionalidades de software desnecessárias ou sem uso. Para isso tem que se fazer o
implemento dos requisitos anteriormente analisados pelo programador.
Processos Iterativos
O Desenvolvimento iterativo e incremental prescreve a construção de uma porção
pequena, mas abrangente, do projeto de software para ajudar a todos os envolvidos a
descobrir cedo os problemas ou suposições, falhas que possam a levar ao desastre. O
processo iterativo é preferido por desenvolvedores porque lhes fornece um potencial
para atingir os objetivos de projeto de um cliente que não sabe exatamente o que quer,
ou quando não se conhece bem todos os aspectos da solução.
É um processo de desenvolvimento ágil de software . Os processos ágeis usam o
feedback, mais que o planejamento, como seus mecanismos de controle primário. O
feedback é produzido por testes regulares e das versões do software desenvolvido.
Processos ágeis
Os processos em Desenvolvimento ágil de software parecem ser mais eficientes do que
as metodologias antigas. Utiliza menos tempo do programador no desenvolvimento de
softwares funcionais de alta qualidade, mas tem a desvantagem de ter uma perspectiva
de negocio que não provê uma capacidade de planejamento em longo prazo. Em
essência, eles provem mais funcionalidades por custo/benefício, mas não dizem
exatamente o que a funcionalidade irá fazer.
Existem várias metodologias que podem ser consideradas como abordagens ágeis, entre
elas: Scrum, Programação extrema, FDD, Crystal Clear, DSDM entre outras.
A Programação Extrema (XP), é o mais bem conhecido processo ágil. Em XP, as fases
são continuadas em passos extremamente pequenos (ou contínuos) comparados aos
processos antigos. A primeira passada (iteração incompleta) através das etapas deve
levar um dia ou uma semana, ao invés de meses ou anos para cada fase completa do
modelo em cascata. Primeiramente, escreve-se um autômato de teste, que provê
objetivos concretos para o desenvolvimento. Depois é codificado (por um par de
programadores), este passo está completo quando todos os testes se concluem, e os
programadores não pensem em nada mais que possa ser testado. Projetistas e Arquitetos
executam uma refatoração do código. O projeto é feito por pessoas que estão
codificando. O sistema incompleto mas funcional é entregue e demonstrado para os
usuários. Neste ponto, os envolvidos iniciam novamente uma nova fase de escrita e teste
para as próximas partes mais importantes do sistema.
Método formal
Os Métodos Formais são abordagens matemáticas para resolver problemas de software
e hardware ao nível de requisito, especificação e projetos. Exemplos de métodos
formais incluem Método-B, Redes Petri, RAISE e VDM. Várias notações de
especificação formal estão disponíveis, tais como a notação-Z. De forma mais genérica,
a teoria do autômato pode ser usada para construir e validar o comportamento da
aplicação para o projeto de um sistema de máquina de estado finito.
Máquinas de estado finito baseadas nestas metodologias permitiram especificar
software executáveis e contornar a codificação convencional.
1.4 Manutenção
A manutenção e melhoria de software lidam com a descoberta de novos problemas e
requisitos. Ela pode tomar mais tempo que o gasto no desenvolvimento inicial do
mesmo. Não somente pode ser necessário adicionar códigos que combinem com o
projeto original, mas determinar como o software trabalhará em algum ponto depois da
manutenção estar completa, pode requerer um significativo esforço por parte de um
engenheiro de software.
2. PROGRAMAÇÃO – O DELPHI
Delphi , também conhecido como Borland Delphi, é um compilador, uma IDE e uma
linguagem de programação, produzido antigamente pela Borland Software Corporation
e atualmente produzido pela Embarcadero. O Delphi, originalmente direcionado para a
plataforma Windows, chegou a ser usado para desenvolvimento de aplicações nativas
para Linux e Mac OS.
O Delphi é muito utilizado no desenvolvimento de aplicações desktop, aplicações
multicamadas e cliente/servidor, compatível com os bancos de dados mais conhecidos
do mercado. O Delphi pode ser utilizado para diversos tipos de desenvolvimento de
projeto, abrangendo desde Serviços a Aplicações Web e CTI.
O Delphi é um ambiente de desenvolvimento de softwares com as seguintes
particularidades:
Visual: A definição da interface e até mesmo de parte da estrutura de um
aplicativo Delphi pode ser realizada com o auxílio de ferramentas visuais. Por
exemplo, uma tela é criada com um simples clique e um botão, selecionando
esta imagem em uma barra de ferramentas e clicando sobre a tela onde ele deve
aparecer;
Orientada a Objeto: Os conceitos de classe, herança e polimorfismo são
abarcados pela linguagem de programação do Delphi, o Object Pascal. Esta não
é, no entanto, uma linguagem puramente orientada a objeto como Smalltalk e
Eiffel;
Orientada a Eventos: Cada elemento de uma interface de aplicativo é capaz de
capturar e associar ações a uma série de eventos;
Compilada: A geração de código em linguagem de máquina acelera a execução
dos aplicativos.
INTRODUÇÃO AO DELPHI
Antes do Delphi e do Visual Basic, todas as linguagens de programação eram parecidas
do ponto de vista conceitual. Havia diferenças de sintaxe, é claro, bem como diferenças
importantes de paradigmas, mas a metodologia da programação em C, por exemplo, era
a mesma da programação em Pascal, Cobol ou Fortran.
As linguagens visuais introduziram estratégias radicalmente novas de programação. O
fato é que, com o passar do tempo, escrever programas passou a ser cada vez mais
difícil, especialmente programas que exigiam interface gráfica. Entretanto, algumas
delas, como construir janelas, menus ou botões, podiam ser feitas sempre da mesma
forma. Estes programadores, encapsular algumas destas rotinas em uma espécie de
"objeto" pronto para ser usado. A idéia final, que deu origem ao Visual Basic e ao
Delphi, foi a percepção de que vários destes objetos podiam simplesmente ser
desenhados na tela como se desenha um retângulo ou outra figura qualquer.
O Delphi, é um pacote de ferramentas de programação concebido para programação em
Windows. Os objetos são desenhados na tela de forma visual, com auxílio do mouse, e
não por meio de programação. A programação é orientada a objetos mas em si é
orientada a eventos. Quando um evento ocorre, tal como uma tecla pressionada ou um
clique de mouse, uma mensagem é enviada para a fila de mensagens do Windows. A
mensagem estará disponível para todos os aplicativos que estiverem rodando, mas
apenas aquele interessado no evento responderá à mensagem. Tudo que o usuário
precisa fazer é detectar o evento e mandar que um trecho de código seja executado
quando isto acontecer. O Delphi torna esta tarefa fantasticamente fácil, como veremos.
Delphi não é somente uma linguagem de programação no sentido convencional, mas
sim um pacote de programação que inclui:
Uma linguagem de programação estruturada, baseada no Object Pascal;
Um conjunto de ferramentas de programação;
Uma interface com o API (Applications Program Interface) do Windows.
Um programa em Delphi pode acessar diretamente os recursos do API.
EXEMPLO DE LINHAS DE PROGRAMAÇÃO
implementation
{$R *.dfm}
procedure TForm1.botao1Click(Sender: TObject);// evento que sera executado ao clique do botão calcular
begin edit3.Text := inttostr(strtoint(edit1.Text) + strtoint(edit2.Text)); //edit1,edit2,edit3 são ferramentas para se inserir dados
{ inttostr e strtoint convertem os dados de numeros inteiros para texto(string) e de texto para numero inteiro respectivamente}end;
end.
3. BANCO DE DADOS – O MYSQL
O banco de dados MySQL ® tornou-se banco de dados do mundo open source mais
popular por causa de seu desempenho consistente rápido, alta confiabilidade e facilidade
de uso. É usado em todos os continentes ,mesmo na Antártida - Por desenvolvedores da
Web individuais, assim como muitos do mundo o maior e mais rápido crescimento das
organizações para economizar tempo e dinheiro alimentando seus locais de alto volume
da Web, empresas de sistemas críticos e pacotes de software - incluindo líderes da
indústria como o Yahoo!, Alcatel -Lucent, Google, Nokia, YouTube, e Zappos.com.
Banco de dados MySQL não é apenas do mundo open source mais popular, é também
tornar-se o banco de dados de escolha para uma nova geração de aplicações construídas
sobre o LAMP (Linux, Apache, MySQL, PHP / Perl / Python.) MySQL funciona em
mais de 20 plataformas, incluindo Linux, Windows, OS / X, HP-UX, AIX, Netware,
dando-lhe o tipo de flexibilidade que coloca você no controle.
Usuários novos em tecnologia de banco de dados ou um experiente desenvolvedor ou
DBA, o MySQL oferece uma gama abrangente de software certificadas, suporte,
treinamento e consultoria para fazê-lo bem sucedido.
Vantagens
Escalabilidade e flexibilidade
O servidor de banco de dados MySQL oferece o máximo em escalabilidade, ostentando
a capacidade para lidar com aplicações profundamente encaixados com uma pegada de
apenas 1MB de executar armazéns de dados maciços exploração terabytes de
informação. Flexibilidade da plataforma é uma característica do MySQL leal com todos
os sabores de Linux, UNIX e Windows que está sendo apoiada. E, claro, a natureza
open source do MySQL permite a personalização completa para aqueles que querem
acrescentar requisitos específicos para o servidor de banco de dados.
Alta Performance
A arquitetura de armazenamento original permite que os profissionais de banco de
dados para configurar o servidor de banco de dados MySQL para aplicações específicas,
com o resultado final sendo os resultados do desempenho surpreendente. Destina-se a
aplicação ou um sistema de alta velocidade de processamento de transação ou um site
Web de alto volume que os serviços de um bilhão de consultas por dia, o MySQL pode
satisfazer as expectativas de desempenho mais exigentes de todo o sistema. Com alta
velocidade de utilitários de carga, caches de memória distintiva, índices de texto
completo, e melhorar o desempenho de outros mecanismos, o MySQL oferece toda a
munição certa para os atuais sistemas de negócio críticos.
Forte Proteção de Dados
Porque guardar o patrimônio de dados das corporações é o número um trabalho de
profissionais de banco de dados MySQL oferece características excepcionais de
segurança que garantam a protecção dos dados absolutos. Em termos de autenticação de
banco de dados MySQL fornece poderosos mecanismos para garantir que somente
usuários autorizados tenham acesso ao servidor de banco de dados, com a capacidade de
bloquear os usuários até o nível da máquina cliente que está sendo possível
4. O SISTEMA DESENVOLVIDO - FUNCIONALIDADES
Com base nas necessidades descritas pelo proprietário do estabelecimento foi
detectado o que o software deverá conter módulo de cadastro de clientes, de
agendamento, um de contabilidade salarial de funcionários, contabilidade de serviços
prestados, incluindo a venda de produtos estabelecendo e fixando o tipo de pagamento,
além de estabelecer um controle do estoque.
4.1 Módulo de cadastro de clientes
O sistema proporcionará a opção de cadastrar ou simplesmente agendar um
cliente. Esta ação deverá ser iniciada com a escolha do proprietário. Se a opção for
cadastrar, será armazenado um espaço na memória que contenha dados mais específicos
do cliente, por exemplo, além do nome, data, horário e serviço, será armazenado
também dados como sobrenome, endereço, data de nascimento, cidade e-mail - fato que
não aconteceria se houvesse um agendamento. Esses dados seriam utilizados para fazer
uma mala-direta dos aniversariantes do mês visando agradecer principalmente os
clientes de longa data, para registrar e acompanhar os tratamentos que foram realizados
desde o cadastro do cliente, para obter-se um histórico e facilitar a contabilidade de
compras e vendas.
4.2 Módulo de agendamento
O sistema deverá armazenar uma agenda específica de cada funcionário, exibindo
seus horários de modo que cada um tenha controle das tarefas a serem executadas em
seu expediente, e de forma a agilizar o agendamento de horário de certo serviço. Haverá
uma tabela com informações básicas para executar as atividades diárias do salão.
Para isso dispomos de telas que devidamente programadas com a função; junto a
um banco de dados; de armazenar os horários de forma simples e rápida.
4.3 Módulo de contabilidade salarial
O proprietário terá um maior controle sobre o gerenciamento financeiro do sistema
tanto na área de pagamento de funcionários, como no valor de serviços prestados,
formas de pagamento de cada cliente, saída de produtos oferecidos pelo
estabelecimento, de modo que o próprio sistema tenha armazenado o salário de cada
funcionário, indicando acréscimos, horas extras, descontos, etc. O mesmo para serviços
prestados, juntamente com a saída de produtos e a forma de pagamento. O programa
deverá estar capacitado a armazenar a renda daquele dia e também exibir a valor de
capital que entrou e saiu daquele mês.
4.4 Módulo de prestação de serviços
Esta parte do sistema deverá apresentar uma tabela que ao ser acessada exiba os
tipos de serviços que o salão pode oferecer mostrando também o valor base para se ter
um média dos cálculos relacionados sobre os serviços, já deixará pré-definido o cargo
de cada funcionário e o serviço que ele irá executar, (Para o caso de um funcionário
prestar um serviço que não foi estabelecido por ele).
4.5 Módulo de vendas e estoque
Ao se deparar com produtos vendidos no salão também foram analisadas questões
relacionadas á esta área, para isso será cadastrado os produtos que ficam expostos,
armazenando os dados principais como preço e marca juntamente com o nome do
funcionário que vendeu, dessa forma ficará mais bem organizada a saída de produtos e
controle da renda extra com estes. Em relação ao estoque, será cadastrada a quantidade
em unidade interligada ao nome do produto e marca (dados essenciais), para fins de
controle.
5. O SISTEMA DESENVOLVIDO - PROGRAMAÇÃO
6. SISTEMA DESENVOLVIDO – O BANCO DE DADOS
Como já falado o nosso programa terá o apoio de um DataBase (Base de Dados1) que
alocara os dados das movimentações feitas no estabelecimento mencionado. As tabelas
foram estruturadas de acordo com o DER2 (Ver Anexo) onde foram necessárias 11
tabelas descritas a seguir, junto com a descrição. As sintaxes de criação da tabela em
DQL estão anexas no final, no “Anexo – Tabelas (Sintaxe SQL)”
6.1 Tabela Cliente
A tabela Cliente tem por objetivo cadastrar os clientes que fizera ou fazem
constantemente algum serviço no estabelecimento. Também usada para ter algum
histórico do serviço que determinado cliente fez, tendo em vista a performance de cada
serviço prestado.
Descrição:
Campo Tipo Atributos Nulo Padrão ExtraCod_Cliente int(7) Não auto_increment Nome varchar(15) Não Sobrenome varchar(20) Sim NULL Telefone int(10) Não 0 Endereco varchar(30) Sim NULL Cidade varchar(30) Sim NULL CEP int(8) Sim NULL RG varchar(11) Sim NULL CPF int(11) Sim NULL Dta_Nasc date Sim NULL
Na tabela o campo Cod_Cliente é a Chave Primaria3 e possui como atributo extra o auto
incremento (ou auto numeração), isso para impedir a duplicação.
1 Base de dados ou DataBase: De acordo com a inciclopédia Larousse Cultural “um conjunto estruturado de dados que agrupa informações com certos caracteres em comum”2 DER: Diagrama Entidade Relacionamento3 Chave Primaria(PK): dado principal de uma tabela com o qual a tabela é organizada, e não admite duplicação (caso de dado repetido)
As únicas tabelas que não admitem dado nulo (à exceção da chave primária) são os
campos Nome e Telefone, dado que para o salão efetuar um serviço para algum cliente
qualquer, não é necessário os demais dados, mas por questões maiores os demais
campos foram adicionados.
6.2 Tabela Servico
A tabela Servico vem como meio de armazenar o registro de um serviço prestado. Nela
será mercado as datas dos serviços relacionados aos clientes, e (juntamente com a tabela
Detalhes_Servico, descrita a seguir) os dados que são relacionados aos serviços
prestados.
Descrição:
Campo Tipo Atributos Nulo Padrão ExtraData date Não 0000-00-00 Cod_Cliente int(7) Não 0 Cod_Servico int(7) Não 0 Status varchar(10) Sim NULL
O fato de não poder se registrar mais de um serviço em nome de um determinado cliente
na mesma data nos obrigou a optar por uma chave composta4, pelo fato do conjunto de
dados colocados como PK não poder ser repetido. Isso faz com que um cliente tenha
que (na hora da inserção dos dados) determinar os horários que seus serviços serão
prestados.
O campo Status surgiu da idéia de se ter um campo que marque se um serviço foi
confirmado ou não e se ele foi efetuado, para o caso que, quando se fechar um relatório
dos serviços prestados no dia, a contabilidade tenha como gerar o quanto de lucro se
teve no dia.
4 Chave Composta: Quando mais de um campo é selecionado para servir de chave primaria em uma tabela, esse conjunto de tabela é chamado de chave composta.
6.3 Tabela Detalhes_Servicos
A partir do momento que um cliente pode efetuar vários tipos de serviços tem-se a
necessidade de se criar uma tabela que aloque os dados dos serviços que o cliente
solicitou. Em nosso caso essa tabela tem o nome de Detalhes_Servicos.
Detalhes:
Campo Tipo Atributos Nulo Padrão ExtraCod_Servico int(7) Não 0 Cod_func int(7) Não 0 Horário time Não 00:00:00 Cod_cat int(7) Não 0 Valor float Não 0 Desconto float Sim 0
Nessa tabela tanto Cod_Func como Cód_cat servem como chave estrangeira5 das tabela
Funcionário e Categoria_Servico respectivamente.
Como um funcionário não pode executar mais de um serviço por horário, todos esses
campos se tornam PK formando assim uma chave composta de três campos.
O campo Valor tem a finalidade de marcar o valor efetivamente pago pelo serviço, ao
passo que, não há alguma restrição do estabelecimento e ceder algum desconto na hora
para o cliente e pelo fato que muitos serviços tem variantes a ser consideradas pelo
funcionário que cadastrou o serviço, mas não ao sistema em si.
6.4 Tabela Categorias_Servico
Existem muitos serviços cobrados no Salão, cada um com um preço base que seja
necessário já estar armazenado no sistema e que apenas ao o proprietário tenha acesso
de mudá-los (Essa restrição será dado na programação), assim, foi-se criada a tabela que
tem por objetivo armazenar esses dados que serão exportados para a tabela
Detalhes_Servico.
Detalhe:
5 Chave Estrangeira: quando um campo vem exportado de outra tabela como meio de ligação entre elas, o campo na tabela de destino ganha o nome de chave estrangeira.
Campo Tipo Atributos Nulo Padrão ExtraCod_Cat int(7) Não auto_increment Nome varchar(20) Não Valor float Não 0 Descricao varchar(40) Sim NULL
Por padrão o campo Descricao pode admitir valor nulo, e os campos Nome, e Valor, por
serem os dois objetos principais dessa tabela não devem em hipótese alguma terem
valores nulo. O campo Cod_Cat (que serve como Chave estrangeira na tabela
Detalhes_Servico) não pode ser duplicado então ele tem como atributo o fato de ser PK
além de ser auto_increment.
6.5 Tabela Funcionários
O salão possui vários funcionário, e em uma analise de requisitos feito com o
proprietário do local, teve-se a necessidade de se ter uma tabela especifica dos
funcionários, que serve tanto como chave estrangeira da tabela Detalhes_Servico como
das tabela Acrescimos e Descontos(descritas a seguir). Primordialmente essa tabela tem
por objetivo principal servir para o módulo de contabilidade salarial, tendo em vista
também o fato de se ter uma ,agenda dos determinados serviços que um empregado
deve realizar.
Descrição:
Campo Tipo Atributos Nulo Padrão ExtraCod_Func int(7) Não auto_increment Nome varchar(15) Não Sobrenome varchar(20) Não RG varchar(11) Não 0 CPF int(14) Não 0 Carteira_Trab int(15) Sim NULL Endereco varchar(20) Não Cidade varchar(20) Não CEP int(10) Não 0 Telefone int(10) Sim NULL Celular int(10) Sim NULL
Dta_Nasc date Não 0000-00-00 Dta_Admissão date Não 0000-00-00 Cod_Cargo int(7) Não 0
O campo Cod_func é a chave de ligação, tanto com a tabela Detalhes_Servico como
Descontos e Acrescimos servindo de link dessas tabelas. Para evitar duplicata, esse
campo serve como PK e tem como atributo extra a auto-numeração.
O campo Cod_cargo é a chave estrangeira da tabela cargos, de onde vem (no sistema) o
salário base de cada cargo no salão. Esse campo é que faz a ligação entre as
determinadas tabelas.
Todos os campos são obrigatórios à exceção de Telefone, Celular, já que nem todos os
funcionários têm a obrigação de ter um telefone e um celular. O campo Carteira_Trab
também não é obrigatório, pois nem todos os funcionários do salão tem registro em
carteira.
6.6 Tabelas Descontos e Acrescimos
Um funcionário tem Acréscimo e descontos em seu salário base, e um empregado pode
exercer uma função diferente da qual ele está habituado, mas para isso ele ganha certa
porcentagem (ou valor) em cima do valor cobrado.
Essas necessidades nos levaram a criar essas duas tabelas com a finalidade de
armazenar essas informações para o calculo básico. Como as tabelas são idênticas, as
funções que servem em uma tendem a permanecer iguais na outra.
Descrição da tabela Acrescimos:
Campo Tipo Atributos Nulo Padrão ExtraCod_Func int(7) Não 0 Data date Não 0000-00-00 Valor float Não 0 Detalhes varchar(30) Não
Descrição da tabela Descontos:
Campo Tipo Atributos Nulo Padrão ExtraCod_Func int(7) Não 0 Data date Não 0000-00-00 Valor float Não 0 Detalhes varchar(30) Não
Nessas tabelas não há uma PK, pois qualquer dado (ou conjunto) pode ser duplicado.
Poderia ter-se criado um campo que se alocasse um código para cada desconto ou
acréscimo, mas seria um campo inútil, sem qualquer serventia, então, optou-se por
tabelas sem qualquer PK.
O campo Cod_Func é a ligação entre os valores contidos nessa tabela e o funcionário e
vem da tabela “Funcionarios” como chave estrangeira.
Nenhum campo deve receber valor nulo, pois se algum funcionário recebe um
acréscimo ou desconto em seu salário, este deve ter alguma justificativa (armazenado
em Detalhes).
Essa é uma tabela que deve ser acessível primordialmente pelo proprietário do
estabelecimento.
6.7 Tabela Cargos
Um funcionário tem apenas um cargo, e por sua vez, um cargo pode ter vários
funcionários estabelecendo assim um relacionamento6 1 para N, assim sendo, a idéia
dessa tabela vem de que, a partir do momento que um cargo tem uma salário base fixo,
mudando de acordo com os critérios adotados pelo dono do estabelecimento, seria mais
fácil se o salário bruto de um cargo fosse adotado se uma tabela arrumada
criteriosamente pelo cargos.
Assim, uma tabela com o conteúdo da descrição de cada cargo e suas funcionalidades
vem a otimizar e enriquecer o sistema e o Banco de dados.
Descrição:
Campo Tipo Atributos Nulo Padrão ExtraCod_Cargo int(7) Não auto_increment
6 Relacionamento: Tipo de interação entre duas ou mais tabelas.
Detalhes varchar(30) Sim NULLHs_Min time Sim NULLSalario float Não 0
O campo Cod_Cargo é a PK e tem atributo extra de auto-incremento para se evitar que
um cargo tenha mais de um código o especificando, pois este campo que serve de chave
estrangeira para a tabela de funcionarios, fazendo o link7 entre essa tabela a de
funcionários.
Como campos obrigatórios temos a PK e o salário(campo originalmente em que foi
baseado a tabela). O campo Hs_Min é as horas mínimas referentes ao mês em que esse
funcionário tem seu salário bruto calculado.
6.8 Tabela Venda
Levando-se em consideração que no salão, além de se fazer um tratamento estético,
pode-se também comprar o produto pelo funcionário recomendado. O fato do salão
também fazer a venda de produtos, nos dá a idéia que se deve ter um banco de dados
que armazene as movimentações de venda efetuada. Essa é o objetivo dessa tabela.
Detalhes:
Campo Tipo Atributos Nulo Padrão ExtraCod_Venda int(7) Não auto_increment Dta_Venda date Não 0000-00-00 Cod_Func int(7) Não 0
Para se evitar a duplicação de código de venda (Cod_Venda) é que esse campo que
ganha o atributo de chave primaria, e que servira de chave estrangeira para a tabela de
detalhes de venda.
O campo Cod_Func, tem por objetivo armazenar o código do funcionário que efetuou a
venda , para devidas precauções.
7 Link: Do inglês que significa: Elo, ligação. Empregado no texto, como a conexão entre duas tabelas.
6.8 Tabela Detalhes_Venda
A utilidade dessa tabela se dá pelo fato que uma compra necessariamente não necessita
ter apenas um produto, podendo assim ter mais. Poderia se ter um campo na tabela
venda para alocar o produto vendido, mas isto restringiria uma compra a ter apenas um
produto, o que não é viável nem interessante, o que nos fez optar por uma tabela que
tenha como se ter os detalhes.
Descrição:
Campo Tipo Atributos Nulo Padrão ExtraCod_Venda int(7) Não 0 Cod_Produto int(7) Não 0 Qtt int(3) Não 0 Valor_Venda float Não 0
Não há uma chave primária, pelo fato que uma venda pode ter vários produtos do
mesmo gênero, e para não se criar um campo de código do detalhe (o que seria um
campo inútil) optou-se por deixar essa tabela sem uma chave primária.
O campo Cod_Produto tem a finalidade de fazer a ligação entre a tabela de produtos e a
tabelas de detalhes, sendo ela a união que o sistema usara para ligar ambas, igualmente
Cod_Produto que faz a ligação com a tabela Produtos.
Valor da venda, armazena o valor real cobrado pelo produto, para fins administrativos.
6.9 Tabela Produtos
Para armazenar os produtos que o salão tem disponibilidade de venda se criou essa
tabela Produtos.
Descrição:
Campo Tipo Atributos Nulo Padrão ExtraCod_Produto int(7) Não auto_increment Nome varchar(20) Não Marca varchar(20) Não Preco float Não 0
Para se evitar duplicação de códigos, o campo Cod_Produto assume a forma de PK,
servindo assim como chave estrangeira para a tabela Detalhes_Venda.
Nome e Marca armazenam, respectivamente, o nome do produto e a sua marca para
uma consulta, que em um formulário e ser colocado na programa usará a informação
correspondente.
Preço, armazena o preço base para cobrança do produto em questão, que será
transportado para a tabela Detalhes_Venda, e lá poderá ser alterado, para algum
acréscimo ou desconto.
7. O SISTEMA DESENVOLVIDO – A INTERFACE
CONCLUSÃO
REFERÊNCIAS BIBLIOGRAFICAS
Wikipédia, A enciclopédia livre – Artigo: CodeGear Delphi – Visitado em 13/11/2009 – Disponível em < http://pt.wikipedia.org/wiki/CodeGear_Delphi>,
XTibia, fórum – Artigo: Introdução ao Delphi – visitado em 13/11/2009 – Disponível em < http://www.xtibia.com/forum/Introducao-Ao-Delphi-t22862.html>,
MySQL, site oficial – Visitado em 20/11/2009 – Disponível em < http://www.mysql.com/>