Angélica Toffano Seidel Calazans
E-mail: angelica_toffano@yahoo.com.br
Abordagem Relacional
Chave alternativa
Quando mais de
uma coluna ou
combinação podem
servir para
distinguir uma
linha das demais
Codempreg
ado
Nome
CodDepto
CPF
E5
Ana
D1
2224441995
E4
Eva
D1
4445666777
E1
Pedro
D2
4456879908
Exercício:
Identifique os requisitos funcionais, não funcionais e regras de negocio para
os sistemas abaixo:
1 - "A Editora ABC trabalha com diversos autores que escrevem livros para
ela publicar.
Alguns autores escrevem apenas um livro, enquanto outros escrevem
muitos. Além disso, alguns livros são escritos por diversos autores.
Mensalmente é enviado às livrarias um catálogo com o nome dos livros
lançados e seus respectivos autores. Esse catálogo é organizado por assunto
para facilitar a divulgação.
Informações sobre a cota de compra de cada livraria são modificadas a cada
três meses, de acordo com a média de compra no trimestre solicitada pela
livraria.
Uma carta é enviada à livraria anunciando a nova cota em cada assunto e
os descontos especiais que lhe serão concedidos para comprar em
quantidades maiores.
Aos autores dos dez livros mais vendidos no ano, a Editora ABC oferece
prêmios.
A festa de premiação é anunciada com dez dias de antecedência, por meio
de publicação em jornal dos dez livros mais vendidos, com seus respectivos
autores.
Requisitos funcionais
Rf01 – O Sistema deve cadastrar autor
Rf02 – O sistema deve cadastrar livro (rng01)
Rf03 – O sistema deve gerar catalogo de lançamento de livros (rc01) (rng02) (rng03)
Rf04 – O sistema deve cadastrar as livrarias
Rf05 – O sistema deve cadastrar o pedido da livraria (venda)
Rf06 – O sistema deve cadastrar a cota de cada livraria
Rf07 – O sistema deve cadastrar descontos especiais
Rf08 – O sistema deve gerar nova cota de livro (rng04) (rng05)
Rf09 – O sistema deve gerar os descontos especiais (rng06)
Rf10 – O sistema deve emitir carta de nova cota a livraria (rc02)
Rf11 – O sistema deve emitir relatório dos livros mais vendidos (rc03) (rc04) (rng07)
Rf12 – O sistema deve calcular media de compra (rng08)
Rf13 – O sistema deve cadastrar premio
Rf14 – O sistema deve permitir relacionar premio ao autor do livro mais vendido
Requisitos Complementares
Rc01 – o catalogo deve conter o nome do livro, assunto e seu(s) respectivo(s) autor(es)
Rc02 – a carta de nova cota deve conter os descontos especiais e nova cota
Rc03 – o relatório deve conter o nome dos dez livros
Rc04 – o relatório dos 10 livros mais vendidos deve conter o nome do(s) autor(es)
Regras de negocio
Rng01 – o livro pode ter um ou mais autores
Rng02 – o catalogo deve estar organizado por assunto
Rng03 – o catalogo deve ser gerado mensalmente
Rng04 – a cota deve ser modificada a cada 3 meses
Rng05 – a cota deve ser calculada pela media de compra no trimestre
Rng06 – os descontos especiais serão calculados a partir do pedido da livraria
Rng07 – o relatório dos livros mais vendidos deve ser dos dez livros mais vendidos no ano
Restrições de integridade
Restrições são condições que devem ser
mantidas sobre todas as instâncias de uma
relação (conjunto de tuplas) para assegurar
que mudanças feitas no banco de dados não
resultem em perdas e/ou inconsistências dos
dados.
Objetivo primordial de um SGBD - Garantir a
integridade dos dados.
Uma restrição de integridade é uma regra de
consistência de dados que é garantida pelo
próprio SGBD.
5Restrições de
integridade(cont.)
Tipos
Restrições de domínio
Restrições de nulidade (vazio).
Restrições de chave.
Restrições de entidade.
Restrições referencial.
6
Restrições de Domínio
Forma mais elementar de restrição de
integridade.
Dentro de cada tupla, o valor de cada atributo A
1
deve ser um valor atômico do domínio de A
1
.
No esquema de relação empregado:
Empregado(CodEmpregado: integer, Nome: string,
dataNasc.:Date, Telefone:Integer )
Os únicos valores que pode ser dados a matrícula são
inteiros. Desta forma, a tupla abaixo não poderá ser
inserida nesta relação:
(“a12345”, “Geraldo”, “12/12/1978”,45678909)
Restrições de Domínio (cont.)
Outros possíveis domínios podem ser descritos
por faixas de valores de um tipo de dados ou
como um tipo de dados enumerado em que
todos os possíveis valores são explicitamente
listados.
Assegurar que os valores do atributo “valor” deverá
ser maior ou igual a 4.00.
Restringir que o atributo “codigo-cliente” seja um
inteiro de 000000 a 999999.
Os valores do atributo dia-semana devem estar entre
(‘segunda-feira’,’terça-feira’,’quarta-feira’,’quinta-feira’,’sexta-feira’,’sábado’,’domingo’)
Restrição de Nulidade
Especifica se o valor de um atributo pode ou
não ser nulo.
Exemplo:
Empregado (
CodEmpregado: integer not null,
Nome: string not null,
DataNasc.:Date,
Telefone:Integer
)
9
Restrições de Chave
Todas as tuplas de uma relação devem ser distintas.
Uma superchave de uma relação é um conjunto de um ou mais
atributos em que seus valores determinam unicamente cada
entidade.
São exemplos de superchaves: {RA}, {CPF}, {RA,CPF}, {CPF,Nome},
{RA, Nome}, {RA, Telefone}, {RA, Endereco},
Não são superchaves: {Nome}, {Telefone}, {Endereco}, {Telefone,
Endereco}
10
RA Nome Endereco CPF Telefone
3345676/6 Marilia Asa Norte 234567890-77 67778998
3347876/8 Marilia Sobradinho 345678902-99 87690898
3456788/8 José Sobradinho 545568902-66 87690898
Aluno
Restrições de Chave (cont.)
Uma chave candidata de uma entidade é
uma superchave mínima.
Uma superchave mínima é uma superchave
K tal que a remoção de qualquer atributo de
K resulta em um conjunto de atributos que
não é uma superchave .
No exemplo anterior RA e CPF são chaves
candidatas.
11
Restrições de Chave
Mesmo que várias chaves candidatas possam
existir, apenas uma delas é selecionada para ser
a chave primária (primary key – PK )
PKs possuem representação sublinhada.
Exemplo:
Aluno (RA, Nome, Endereco, CPF, Telefone)
As demais chaves candidatas (agora
denominadas chaves alternativas) podem se
transformar em chaves únicas (unique keys),
garantindo sua unicidade no banco de dados.
12
Integridade de entidade
Restrição de integridade de entidade
estabelece que nenhum valor de chave
primária pode ser nulo. Esta restrição (assim
como a restrição de chave) é aplicada em
relações individuais.
É assegurada pelos próprios SGBD’s Relacionais
Chaves primárias podem ser compostas (por mais
de um atributo) => A regra se aplica em PKs
compostas.
13
Exercício -Identifique o tipo de restrição
existente
(dominio, nulidade, chave, entidade)
Empregado(CodEmpregado: integer, Nome: string,
dataNasc.:Date, Telefone:Integer, Sexo: string )
(“12345”, “Geraldo”, “12/12/1930”,45678909, 0 )
Empregado(CodEmpregado: integer not null, Nome: string not
null, DataNasc.:Date, telefone:Integer)
(“12345”, , “12/12/1930”,45678909)
Exercício
Identifique o tipo de restrição existente
(dominio, nulidade, chave, entidade)
RA- PK Nome Endereco CPF Telefone
3345676/6 Marilia Asa Norte 234567890-77 67778998
3345676/6 Marilia Sobradinho 345678902-99 87690898
José Sobradinho 545568902-66 87690898
Integridade referencial
Mecanismo que permite a implementação de
relacionamentos em um banco de dados
relacional.
Especifica a relação entre tuplas de duplas
relações: a relação que referencia e a que é
referenciada.
Tuplas na relação que referencia R
1possui
atributos FK’s (chamados chaves estrangeiras –
foreign key’s) que referenciam a chave primária
(PK) da relação referenciada R
2.
O valor da chave estrangeira (FK) em R1 deve ser igual
ao valor da chave primária em R2 para haver
relacionamento entre as tuplas das duas relações.
Integridade referencial (cont.)
O atributo CodDisciplina é FK na relação Empregado
pois referencia a PK da relação Departamento.
17
CodEmpregado Nome CodDepto CatFuncional CPF E1 Souza D1 null 132.121.331-20 E2 Santos D2 C5 891.221.111-11 E3 Silva D2 C5 341.511.775-45 E5 Soares D1 C2 631.692.754-88 CodDepto NomeDepto D1 Compras D2 Engenharia D3 Vendas
Empregado
Departamento
Integridade referencial (cont.)
Os valores de uma chave estrangeira ou são
null ou existem na tabela referenciada.
18
CodEmpregado Nome CodDepto CatFuncional CPF E1 Souza D1 null 132.121.331-20 E2 Santos D2 C5 891.221.111-11 E3 Silva D2 C5 341.511.775-45 E5 Soares D1 C2 631.692.754-88 CatFuncional DescCategoria C1 Analista C2 Programador C3 Engenheiro C4 Secretário C5 Advogado
Os valores da FK não poderão ser nulos
se existir uma regra que restringe o
domínio a ser não nulo. Ou seja, existe
a obrigatoriedade do relacionamento
entre as tabelas.
Empregado
CategoriaFuncional
Integridade referencial (cont.)
Quando da inclusão de uma linha na tabela que
contém a chave estrangeira:
O valor da chave estrangeira deve aparecer na coluna
da chave primária referenciada.
Quando da alteração do valor da chave
estrangeira:
O novo valor de uma chave estrangeira deve aparecer
na coluna da chave primária referenciada.
Quando da exclusão de uma linha da tabela que
contém a chave primária referenciada pela
chave estrangeira:
Na coluna chave estrangeira não deve aparecer o
valor da chave primária que está sendo excluída.
19
Integridade referencial (cont.)
Chave estrangeira na mesma tabela
20
CodEmpregado Nome CodDepto CodEmpGerente E1 Souza D1 null E2 Santos D2 E5 E3 Silva D2 E5 E5 Soares D1 E1