terça-feira, 13 de dezembro de 2011

Trabalho Final BD1

 SUMÁRIO

1. Introdução.. 4

2. ESCOPO.. 4

2.1 Dados para serem lançados no sistema. 4

2.2 Restrições e regras para existentes para o armazenamento e consulta dos dados. 5

2.3 Caso de Uso do sistema. 5

3. MODELAGEM.. 6

3.1 Diagrama de Atividades. 6

3.1.1 Manter Funcionário. 6

3.1.2 Manter Cliente. 7

3.1.3 Gerar Contas a Receber 8

3.1.4 Emitir Recibo. 9

3.1.5 Relatório Contas a Receber 10

3.1.6 Relatório de Clientes. 11

3.1.7 Relatório de Clientes. 12

3.2 Modelo DER (Diagrama de Entidade-Relacionamento) 13

3.3 M-Rel 14

4. Implementação.. 14

4.1 Comandos SQL. 14

               



1.  Introdução

Este trabalho é um software CCR criado pelo grupo que tem a finalidade de apresentar uma solução gerencial para uma empresa que necessite de uma automação comercial afim de agilizar suas atividades rotineiras e sua administração,sendo muito útil até ajudando os administradores nas tomada de decisões.


2.  ESCOPO

O fornecimento deste projeto tem como finalidade fornecer todas as ferramentasfacilitadoras das atividades diária da empresa SPJ Prestação de Serviços de Vigilância e Conservação SC LTDA.

Este sistema consiste em automatizar toda rotina de trabalho, desde gerenciamento de cadastro de clientes até emição de recibos de pagamento. O sistema também inclui um lógica de programação para multas por atraso de pagamento, informativos e comunicados direcionados a caixa postal eletronica de seu grupo de clientes.



2.1  Dados para serem lançados no sistema


·         Nome completo da pessoa física ou razão social;

·         Endereço do cliente;

·         Telefone do cliente;

·         Relatórios;

·         Cliente:

·         Código;

·         Nome;

·         Endereço;

·         CPF ou CNPJ.

·         Contas a receber:

·         Código do cliente;

·         Nome do cliente;

·         Data do vencimento do pagamento;

·         Valor do pagamento.

·         Data de pagamento:

·         Código do cliente;

·         Nome do cliente;

·         Data de pagamento.

2.2  Restrições e regras para existentes para o armazenamento e consulta dos dados


Para gerenciar os clientes e funcionáriosousuário deverá estar logado no sistema e assim ele vai conseguirefetua a manutenção do sistema (inclusão, exclusão, alteração e consulta). No caso de inclusão de novos clientes o sistema irá gerar um novo código automaticamente.

O funcionário também poderá consultas de todo tipo, sempre com a possibilidade de filtrar suas buscas afim de facilitar o processo.

O usuário depois de logado também poderá gerar dar manutenção ou consultar contas a receber, emitir recibos, gerar relatórios de clientes de datas de pagamentos, datas de contas a receber e contas a pagar.

 

2.3  Caso de Uso do sistema






3.  MODELAGEM

3.1  Diagrama de Atividades

Segue abaixo a representação gráfica das atividades envolvidas de cada etapado sistema de acordo com o objetivo desejado.

3.1.1  Manter Funcionário


3.1.2  Manter Cliente




3.1.3  Gerar Contas a Receber






3.1.4  Emitir Recibo







3.1.5  Relatório Contas a Receber






3.1.6  Relatório de Clientes





3.1.7  Relatório de Clientes





3.2  Modelo DER (Diagrama de Entidade-Relacionamento)

O software CCR afim de proporcionar um trabalho de alto nível para a empresa de Prestação de Serviçoes de Vigilância e Conservação Patrimônial elabou um modelo diagramático que descreve o modelo de dados do sistema com alto nível de abstração.

Esta é uma execelente forma de representar gráficamente o Modelo de Entidade e Relacionamento, detalhando assim o modelo conceitual do negócio.



3.3  M-Rel



Funcionario




Cod.Func.
Nome
End.







Clientes




Cod.Cliente
Nome
End.
Tel.
Cod.Func.





Pagamentos




Cod.Pagam.
Valor Pagam.
Data Pagam.
Cod.Cliente






Contas a Receber




Cod.Contas a Receber
Data de Recebim.
Cod.Pagam.






4.  Implementação


Para implementação do banco de dados do sistema foi utilizado o Access com a linguagem Sql, esta foi a ferramentas escolhida por atendender nossa aplicação e por ser a de mais facil acesso e de menor custo.


4.1  Comandos SQL

Os comandos SQL são as intruções dada pelo programador que a o computador poderá interpretar através do software responsavel pela criação e gerenciamento de banco de dados.  Entre eles podemos destacar os seguintes:


CREATE TABLE CLIENTE (

  COD_CLI NUMBER(04) NOT NULL,

NOM_CLI VARCHAR(50) NULL,

  END_CLI VARCHAR(50) NULL,

  TEL_CLI NUMBER(11) NULL

);



CREATE TABLE FUNCIONARIO (

  COD_FUN NUMBER(04) NOT NULL,

  NOM_FUNVARCHAR(50) NULL,

  END_FUN VARCHAR(50) NULL,

);



CREATE TABLE PAGAMENTOS (

COD_PAGNUMBER(04) NOT NULL,

VAL_PAGVARCHAR(10) NULL,

DATA_PAGVARCHAR(10) NULL,



);

CREATE TABLE CONTA_RECEBER(

  COD_CRNUMBER(04) NOT NULL,

DATAREC_CRVARCHAR(10) NULL,

COD_CRVARCHAR(4) NULL,

);



CREATE UNIQUE INDEX PK1_CLIENTE ON CLIENTE

(

    COD_CLI ASC

);



CREATE UNIQUE INDEX PK1_FUNCIONARIO ON FUNCIONARIO

(

    COD_FUN ASC

);



CREATE UNIQUE INDEX PK1_PAGAMENTOS ON PAGAMENTOS

(

    COD_PAG ASC

);





CREATE UNIQUE INDEX PK1_PAGAMENTOS ON PAGAMENTOS

(

    COD_PAG ASC

);



CREATE UNIQUE INDEX PK1_ CONTA_RECEBER ON CONTA_RECEBER

(

    COD_CR ASC

);



ALTER TABLE CLIENTE

ADD CONSTRAINT  PK1_CLIENTE PRIMARY KEY (COD_CLI);



ALTER TABLE FUNCIONARIO

ADD CONSTRAINT  PK1_FUNCIONARIO PRIMARY KEY (COD_FUN);



ALTER TABLE PAGAMENTO

ADD CONSTRAINT  PK1_PAGAMENTO PRIMARY KEY (COD_PAG);



ALTER TABLE CONTA_RECEBER

ADD CONSTRAINT  PK1_CONTA_RECEBER PRIMARY KEY (COD_CR);







segunda-feira, 28 de novembro de 2011

Comando e Conceitos do SQL

1) O que significa a sigla SQL? Qual a finalidade dessa linguagem? Como ela se divide? Quais são os comandos principais de cada divisão? Explique-os resumidamente.

A sigla SQL significa Structured Query Language, ou Linguagem de Consulta Estruturada. SQL apresenta uma série de comandos que permitem à definição dos dados (chamada DDL – Data Definition Language), que é composta, entre outros, pelos comandos CREATE, que é destinado a criação do Banco de Dados, das Tabelas que o compõe, além das relações existentes entre as tabelas. Ela é dividida em:

DML - Linguagem de Manipulação de Dados - Primeiro há os elementos da DML (Data Manipulation Language). A DML é um subconjunto da linguagem usada para inserir, atualizar e apagar dados.

INSERT é usada para inserir um registro (formalmente uma tupla) a uma tabela existente.
UPDATE para mudar os valores de dados em uma ou mais linhas da tabela existente.
DELETE permite remover linhas existentes de uma tabela.

DDL - Linguagem de Definição de Dados - O segundo grupo é a DDL (Data Definition Language - Linguagem de Definição de Dados). Uma DDL permite ao utilizador definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias no DDL.

CREATE cria um objeto (uma Tabela, por exemplo) dentro da base de dados.
DROP apaga um objeto do banco de dados.

DCL - Linguagem de Controle de Dados - O terceiro grupo é o DCL (Data Control Language - Linguagem de Controle de Dados). DCL controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados.

Duas palavras-chaves da DCL:

GRANT - autoriza ao usuário executar ou setar operações.
REVOKE - remove ou restringe a capacidade de um usuário de executar operações.
Outros comandos DCL:

ALTER PASSWORD
CREATE SYNONYM
DTL - Linguagem de Transação de Dados

BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado para marcar o começo de uma transação de banco de dados que pode ser completada ou não.
COMMIT envia todos os dados das mudanças permanentemente.
ROLLBACK faz com que as mudanças nos dados existentes desde que o último COMMIT ou ROLLBACK sejam descartadas.

DQL - Linguagem de Consulta de Dados - Embora tenha apenas um comando, a DQL é a parte da SQL mais utilizada. O comando SELECT permite ao usuário especificar uma consulta ("query") como uma descrição do resultado desejado. Esse comando é composto de várias cláusulas e opções, possibilitando elaborar consultas das mais simples às mais elaboradas.

2) Quais são os tipos de dados que a linguagem SQL padrão (ANSI) suporta? Explique cada um resumidamente.

TINYINT: Valores numéricos inteiros variando de 0 até 256

SMALLINT: Valores numéricos inteiros variando de –32.768 até 32.767

INT: Valores numéricos inteiros variando de -2.147.483.648 até 2.147.483.647

BIGINT: Valores numéricos inteiros variando de –92.23.372.036.854.775.808 até 9.223.372.036.854.775.807

BIT: Somente pode assumir os valores 0 ou 1. Utilizado para armazenar valores lógicos.

DECIMAL(I,D) e NUMERIC(I,D): Armazenam valores numéricos inteiros com casas decimais utilizando precisão. I deve ser substituído pela quantidade de dígitos total do número e D deve ser substituído pela quantidade de dígitos da parte decimal (após a vírgula). DECIMAL e NUMERIC possuem a mesma funcionalidade, porém DECIMAL faz parte do padrão ANSI e NUMERIC é mantido por compatibilidade.

SMALLMONEY: Valores numéricos decimais variando de -214.748,3648 até 214.748,3647

MONEY: Valores numéricos decimais variando de -922.337.203.685.477,5808 até 922.337.203.685.477,5807

REAL: Valores numéricos aproximados com precisão de ponto flutuante, indo de -3.40E + 38 até 3.40E + 38

FLOAT: Valores numéricos aproximados com precisão de ponto flutuante, indo de -1.79E + 308 até 1.79E + 308

SMALLDATETIME: Armazena hora e data variando de 1 de janeiro de 1900 até 6 de junho de 2079. A precisão de hora é armazenada até os segundos.

DATETIME: Armazena hora e data variando de 1 de janeiro de 1753 até 31 de Dezembro de 9999. A precisão de hora é armazenada até os centésimos de segundos.

CHAR(N): Armazena N caracteres fixos (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo é preenchido com espaços em branco.

VARCHAR(N): Armazena N caracteres (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido.

TEXT: Armazena caracteres (até 2.147.483.647) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que 2.147.483.647, o resto do campo não é preenchido. Procure não utilizar este tipo de dado diretamente, pois existem funções específicas para trabalhar com este tipo de dado.

NCHAR(N): Armazenam N caracteres fixos (até 4.000) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo é preenchido com espaços em branco.

NVARCHAR(N): Armazenam N caracteres (até 4.000) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido.

NTEXT: Armazena caracteres (até 1.073.741.823) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que 1.073.741.823, o resto do campo não é preenchido. Procure não utilizar este tipo de dado diretamente, pois existem funções específicas para trabalhar com este tipo de dado.

3) Explique o comando SELECT. Sua sintaxe, características básicas, Cláusula Where, operadores, conectores, subconsultas, funções de agregação, cláusula order by, group by, having e compute by.

SELECT é usada para selecionar um subconjunto de tuplas de uma relação as quais devem satisfazer uma condição de seleção.

SELECT {A1, A2,..., AN | * } FROM R1, R2, ...,RN WHERE P

EQUIVALE A

ΠA1, A2,..., AN (ΣP (R1 X R2 X...X RN))

ONDE CADA AI REPRESENTA UM ATRIBUTO E CADA RI É UMA RELAÇÃO.


Caso a cláusula where seja omitida, o predicado P é verdadeiro. A lista A1, A2,..., An de atributos pode ser substituída por um asterisco (*) para selecionar todos os atributos de todas as relações presentes na cláusula from.

4) O que é uma visão (view) em SQL? Explique suas propriedades, utilidades e os comandos para a sua manipulação.

Uma visão(view) é qualquer relação que não faz parte do modelo lógico do banco de dados, mas é visível ao usuário. Sua propriedade da visão é composta com linhas e colunas como se fosse uma tabela real, a utilidade esta ligada ao aumento de segurança obtendo assim uma visão limitada e controlada dos dados que podem ser obtidos e a performance que utilizada consulta otimizada.

5) Os que são procedimentos armazenados (stored procedure)? Para que servem, o que eles permite fazer e quais comandos podemos utilizar no seu corpo e para criá-los?

São procedimentos executados no servidor, ele serve como dispensamento de banco de dados eles permitem encapsular tarefas repetitivas aceita parâmetros de entrada e retorno um valor de status o que acaba reduzindo o trafego na rede e melhorando a performance.

Comandos utilizados:

Create procedure busca
@nomedebusca varchar(50)
as
select nome1,nome2
from nome_da tabela
where nome = @nomebusca

6) Os que são gatilhos (TRIGGERS)? Para que servem, quais as vantagens na sua utilização, como funcionam e como criá-los?

Os Gatilhos ou TRIGGERS são maneiras para executar um programa quando o evento associado ocorrer, ela mantém a consistência dos dados ou então propaga as alterações de dados de uma tabela para outras, sua vantagem é que quando ocorrer alguma alteração na tabela ele é disparado e deixa gravadas todas as informações do usuário que fez a alteração, eles são criados e funcionam da seguinte forma:

CREATE TRIGGER nome_do_gatilho ON dono.nome_da_tabela
FOR INSERT (ou UPDATE OU DELETE)
As
Código da execução