SGBD

Propaganda
Sistema Gerenciador de
Banco de Dados
SGBD
Alcides Calsavara
Objetivos
 Mostrar
as vantagens da abordagem baseada
em SGBD para a construção de sistemas de
informações sobre a abordagem baseada em
programas que fazem acesso direto a
arquivos.
 Mostrar as principais características de um
SGBD.
Método de apresentação
 Estudo
de caso: sistema de informações
para o controle de salários de funcionários
de uma empresa.
Aspectos de SGBD









Bancos de dados hierárquicos e de rede: difícil manutenção
Teoria de relações (Matemática)
Bancos de dados relacionais
Independência de linguagem de programação
Independência de fornecedor de SGBD
DDL: Data Definition Language
DML: Data Manipulation Language (ex. SQL)
CL: Computational Language
Mecanismo geral para consulta, criação, modificação e
remoção de dados
Aspectos









Integridade
Transação
Controle de concorrência
Acesso remoto
Índices
Segurança
Visões
Normalização
Modelagem de dados (MER) e objetos (UML)
Aspectos de SGBD
 Gatilhos
(triggers)
 Procedimentos armazenados (stored procedures)
 Distribuição
 Modelo Cliente/Servidor
 Internet/Intranet: CGI, ASP, PHP
Vantagens de SGBD
 recuperação
em caso de falha
 compartilhamento entre usuários
 compartilhamento entre aplicações
 segurança
 integridade
 extensibilidade
 distribuição de dados
Conceitos de BD relacionais
 Partes
de um SGBD:
– dados que são apresentados como tabelas
– operadores para manipulação de tabelas
– regras de integridade para as tabelas
Estrutura lógica de um SGBD
 coleção
de tabelas
 cada tabela tem um determinado número de
colunas e um número qualquer de linhas
 colunas são chamadas de atributos
 linhas são chamadas de tuplas
 cada atributo tem um domínio: conjunto de
valores legais
Operadores de SGBD
 SQL:
–
–
–
–
SELECT ... FROM ... WHERE ...
CREATE TABLE ...
INSERT ROW ... INTO TABLE ...
DELETE ROW ... FROM TABLE ...
SET-ORIENTED
Integridade em SGBD
 Integridade
de entidade: cada tabela tem
exatamente uma chave-primária
chave-primária: combinação de um ou
mais atributos cujo valor identifica
unicamente cada linha em uma tabela
Integridade em SGBD (cont.)
 Integridade
referencial: cada chave
estrangeira deve ser consistente com sua
correspondente chave primária
chave estrangeira: é uma chave primária de
uma tabela embutida em outra (ou na
mesma) tabela
Formas normais
 primeira:
nenhum atributo contém um
grupo de valores
 segunda: cada tupla deve ter uma chaveprimária
 terceira: cada atributo depende diretamente
da chave-primária
Definição de uma tabela
TABELA Pessoa
nome do atributo
nulo?
domínio
rg
N
Inteiro
nome
N
String
endereço
Y
Endereço
Criação de uma tabela em SQL
CREATE TABLE Pessoa
( rg
integer
not null,
nome
char(30) not null,
endereço char(50)
PRIMARY KEY (rg)
);
Associação entre tabelas
 Tipos
de associação:
– muitos para muitos (ex: em uma empresa
trabalham muitas pessoas e uma pessoa trabalha
em muitas empresas)
– um para muitos (ex: uma pessoa trabalha
somente em uma empresa)
– um para um (ex: uma pessoa possui somente
outra como cônjuge, e vice-versa)
Associação muitos-para-muitos:
definição da tabela associativa
TABELA Trabalha-para
nome do atributo
nulo?
domínio
empresa-cnpj
N
Integer
pessoa-rg
N
Integer
salario
Y
Real
Associação muitos-para-muitos:
criação da tabela associativa
CREATE TABLE Trabalha-para
(
empresa-cnpj Integer not null,
pessoa-rg
Integer not null,
salario
double,
PRIMARY KEY (empresa-cnpj, pessoa-rg),
FOREIGN KEY (empresa-cnpj)
REFERENCES Empresa,
FOREIGN KEY (pessoa-rg)
REFERENCES Pessoa
);
Associação binária um-paramuitos: tabela
TABELA Pessoa
nome do atributo
nulo?
domínio
rg
N
Integer
nome
N
String
endereço
Y
Endereço
empresa-cnpj
Y
Integer
salário
Y
Real
Estudo de Caso
Sistema de controle de recursos humanos
 Funcionários
 Dependentes
 Salários
Informações
 Funcionário
– número de matrícula
– nome
– data de nascimento
– idade
– data de contratação
– código de nível salarial
– modo de pagamento
– número de horas trabalhadas no mês
– salário do mês
Informações
 Dependente
–
–
–
–
–
–
código do dependente
número de matrícula do funcionário
nome
grau de parentesco
data de nascimento
idade
Informações
 Nível
Salarial
– código de nível salarial
– valor mensal
– valor da hora
Programas
 Cadastro
de pessoal em modo texto
 Cadastro de pessoal em modo gráfico
 Cadastro de níveis salariais em modo texto
 Cadastro de níveis salarias em modo gráfico
 Gerador de folha de pagamento
 Facilitador de consulta pelo funcionário
Requisitos
O
número de matrícula de um funcionário é
um número inteiro não-negativo, com valor
não superior a 10.000.
 O código de dependente é um número
inteiro não-negativo, com valor não superior
a 100.
 O código de nível é uma letra de A a Z.
Requisitos
 Não
podem haver dois funcionários com o
mesmo número de matrícula.
 Não podem haver dois dependentes do
mesmo funcionário com o mesmo código de
dependente.
 Não podem haver dois níveis salariais com
o mesmo código de nível.
Requisitos
 Tanto
o nome de um funcionário quanto o
nome de um dependente devem ser uma
sequência de caracteres na qual pode-se
identificar pelo menos duas palavras.
 O grau de parentesco de um dependente
pode ser CONJUGE ou FILHO.
Requisitos
 Todas
as informações de data devem ser
compostas por um ano (um valor inteiro
não-negativo não superior a 10.000), um
mês (um valor inteiro entre 1 e 12) e um dia
(um valor inteiro entre 1 e 28, 29, 30 ou 31,
de acordo com o mês e ano).
Requisitos
 Tanto
a data de nascimento de um
funcionário quanto a data de nascimento de
um dependente não pode ser anterior a
primeiro de janeiro de 1900.
 A data de contratação de um funcionário
não pode ser anterior a 17 de abril de 1981
(data de criação da empresa).
Requisitos
 Um
dependente que tem grau de parentesco
como FILHO de um funcionário não pode
ter data de nascimento anterior à data de
nascimento do funcionário mais 10 anos.
 Tanto a idade de um funcionário como a
idade de um dependente são determinados
em função da data de nascimento e da data
atual.
Requisitos
 Um
dependente somente pode armazenar
um número de matrícula de funcionário que
de fato corresponda a um funcionário da
empresa.
 Quando um funcionário deixa a empresa,
seu registro deve ser removido do sistema
de informações, juntamente com todos os
registros de dependentes correspondentes.
Requisitos
 Um
funcionário somente pode armazenar
um código de nível salarial que de fato
corresponda a um nível salarial definido
para a empresa.
 Quando um nível salarial deixa de existir,
todos os funcionários que por acaso sejam
daquele nível precisam ser atualizados com
um nível salarial existente.
Requisitos
O
valor mensal correspondente a um nível
salarial deve ser um valor real não negativo
e não superior a R$15.000,00.
 O valor da hora correspondente a um nível
salarial deve ser um valor real não negativo
e não superior a R$100,00.
Requisitos
O
modo de pagamento de um funcionário
deve ser MENSALISTA ou HORISTA.
 O número de horas trabalhadas no mês
para um funcionário só tem sentido se seu
modo de pagamento for HORISTA.
 O número de horas trabalhadas no mês
para um funcionário deve ser um valor
inteiro entre 0 e 160.
Requisitos
O
salário do mês de um funcionário deve
ser calculado em função de seu respectivo
modo de pagamento, nível salarial e
número de horas trabalhadas no mês, se for
HORISTA, e do número de dependentes.
 O salário do mês calculado para um
funcionário deve ser um valor real não
negativo e não superior a R$20.000,00.
Download