sistema gerenciador de banco de dados sgbd alcides calsavara

39
Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Upload: internet

Post on 17-Apr-2015

118 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Sistema Gerenciador deBanco de Dados

SGBD

Alcides Calsavara

Page 2: 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.

Page 3: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Método de apresentação

Estudo de caso: sistema de informações para o controle de salários de funcionários de uma empresa.

Page 4: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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

Page 5: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Informações

Dependente– código do dependente– número de matrícula do funcionário– nome– grau de parentesco– data de nascimento– idade

Page 6: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Informações

Nível Salarial– código de nível salarial– valor mensal– valor da hora

Page 7: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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

Page 8: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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.

Page 9: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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.

Page 10: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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.

Page 11: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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).

Page 12: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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).

Page 13: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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.

Page 14: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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.

Page 15: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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.

Page 16: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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.

Page 17: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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.

Page 18: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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.

Page 19: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Aspectos

Bancos de dados hierárquicos e de rede: difícil manutenção Bancos de dados relacionais Teoria de relações (Matemática) 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

Page 20: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Aspectos

Integridade Transação Controle de concorrência Acesso remoto Índices Segurança Visões Normalização Modelagem de dados (MER) e objetos (UML)

Page 21: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Aspectos

Gatilhos (triggers) Procedimentos armazenados (stored procedures) Arquitetura 3-tier Otimizações Replicação Fragmentação Data mining Dataware housing ODBC (Java/JDBC) Internet/Intranet: CGI, ASP, PHP

Page 22: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Aspectos

Distribuição Modelo Cliente/Servidor Dados não convencionais e complexos - som - imagem - HTML - objetos binários - dados espaciais - dados temporais Orientação a objetos

Page 23: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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

Page 24: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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

Page 25: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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

Page 26: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Operadores de SGBD

SQL:– SELECT ... FROM ... WHERE ...– CREATE TABLE ...– INSERT ROW ... INTO TABLE ...– DELETE ROW ... FROM TABLE ...

SET-ORIENTED

Page 27: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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

Page 28: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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

Page 29: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Formas normais

primeira: nenhum atributo contém um grupo de valores

segunda: cada tupla deve ter uma chave-primária

terceira: cada atributo depende diretamente da chave-primária

Page 30: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Definição de uma tabela

TABELA Pessoa

nome do atributo nulo? domínio

rg N Inteiro

nome N String

endereço Y Endereço

Page 31: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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)

);

Page 32: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Associação entre tabelas

Tipos de associação:

– muitos para muitos

– um para muitos

– um para um

Page 33: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Associação muitos-para-muitos: modelo

Em pres a

nom eendereço

P es s oa

nom eendereço

T rabalha-para

s alár io

Page 34: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

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

Page 35: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Associação muitos-para-muitos: criação da tabela associativa

CREATE TABLE Trabalha-para

( empresa-cnpj Integer not null,

pessoa-oid Integer not null,

salario double,

PRIMARY KEY (empresa-cnpj, pessoa-rg),

FOREIGN KEY (empresa-rg)

REFERENCES Empresa,

FOREIGN KEY (pessoa-oid)

REFERENCES Pessoa

);

Page 36: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Associação bináriaum-para-muitos: modelo

Em pres a

nom eendereço

P es s oa

nom eendereço

T rabalha-para

s alár io

Page 37: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Associação binária um-para-muitos: 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

Page 38: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Associação um-para-muitos (cont.)

vantagens da junção de tabelas:– menos tabelas– melhor desempenho devido ao menor número

de tabelas para navegar

Page 39: Sistema Gerenciador de Banco de Dados SGBD Alcides Calsavara

Associação um-para-muitos (cont.)

desvantagens da junção de tabelas:– menos rigor de design: um objeto contém

informação sobre outro objeto (contra a idéia de encapsulamento)

– extensibilidade reduzida: se a multiplicade mudar para muitos-para-muitos então as tabelas devem mudar

– mais complexidade: a representação assimétrica complica operações de busca e atualização