200 likes | 526 Views
Modelo Relacional. Marcelo Mendes. Manaus - 2012. O Modelo Relacional. Foi proposto em 1970 por Ted Codd da IBM Atraiu atenção imediata devido à simplicidade e fundamentos matemáticos Foi implementado em grande número de sistemas comerciais nos últimos 20 anos
E N D
Modelo Relacional Marcelo Mendes Manaus - 2012
O Modelo Relacional • Foi proposto em 1970 por Ted Codd da IBM • Atraiu atenção imediata devido à simplicidade e fundamentos matemáticos • Foi implementado em grande número de sistemas comerciais nos últimos 20 anos • A linguagem de consulta SQL é padrão para SGBDs relacionais comerciais
Modelo Relacional • Conceitos do Modelo Relacional • Características de Relações • Restrições Relacionais • Bancos de Dados Relacionais e Esquemas • Operação de Atualização e Violação de Restrições
Conceitos • O modelo relacional representa o banco de dados como uma coleção de relações. • Na terminologia formal do modelo relacional, uma linha é chamada de tupla, o título da coluna é denomidado atributo e a tabela é chamada de relação. O tipo de dado que descreve os tipos de valores que podem aparecer em cada coluna é denominado domínio.
Conceitos • Um domínio é um conjunto de valores atômicos (indivisíveis) • Ex: Números de telefone, Salários, Nomes de empregados, Idades de empregados. • Para cada domínio é especificado um tipo ou formato de dado • Ex: telefone char(10), salário decimal(15,2), nome_emp varchar(40), idade smallint.
Conceitos • Um esquema de relação é feito de um nome de relação (R) e uma lista de atributos (A1, A2, .., An). Cada atributo Ai é o nome desempenhado por algum domínio D no esquema R. • Cliente(nome, rua, cidade, cpf) • O grau de uma relação é o número de atributos (n) de seu esquema de relação. • Grau(Cliente) = 5
Conceitos Nome da relação Atributos CLIENTE Cidade Rua CPF Nome RG Manaus Silves 413697262 Monier 101744 Natal 413658929 Fábio 806503 Boa Vista Tuplas Rio Branco 432024 Pará 230561947 Paulo Atributos e tuplas da relação CLIENTE
Características • Ordem de tuplas em uma relação • Matematicamente falando, elementos de um conjunto não têm ordem, logo tuplas não possuem ordem específica • Ordem de valores dentro de uma tupla • uma tupla é uma lista ordenada de valores • Valores nas tuplas. • Cada valor em uma tupla terá um valor atômico • Um domínio é atômico se seus elementos forem indivisíveis • Interpretação de uma relação. • Um esquema de relação pode ser interpretado como um fato; • Pode representar entidades ou relacionamentos; ou • como valores de tuplas que satisfazem a predicados
Restrições • Restrições de Domínio • Especifica que o valor de cada atributo A deve ser um valor atômico do domínio dom(A). • Restrições de Chave • Todas as tuplas de uma relação devem ser distintas • Super-Chave, Chave Candidata e Chave Primária • Restrição em Nulo • Pode-se especificar se o valor nulo pode ou não ser permitido.
Restrições • Restrição de integridade de entidade • nenhum valor de chave primária pode ser nulo. • Restrição de integridade referencial • Informalmente, a restrição de integridade referencial diz que uma tupla da relação (R1), que refere-se a outra relação (R2), deve referir-se a uma tupla existente em R2.
Restrições • Chave estrangeira: Em duas relações R1 e R2, um conjunto de atributos FK na relação R1 é uma chave estrangeira de R1 que referencia R2, se satisfaz as duas regras a seguir: • (i) Os atributos de FK tem o mesmo domínio que os atributos da chave primária PK de R2, onde os atributos FK são ditos que se referem a relação R2; • (ii) Um valor de FK em uma tupla t1 de R1, ou ocorre em uma tupla t2 de R2 ou tem valor nulo. R1 ALUNO NOME ENDERECO NSSSUPER DTNASC SALARIO MAT NUMD R2 TURMA COD QTDEALUNOS MATALUNO NOME
Restrições • As restrições de integridade referencial tipicamente vem dos relacionamentos entre entidades • Uma chave estrangeira pode referir-se a sua própria relação • O relacionamento de supervisão na entidade empregado • É possível mostrar diagramaticamente as restrições de integridade através de uma seta que liga cada chave estrangeira a respectiva chave primária da relação referenciada • As restrições de integridade referencial não incluem uma grande classe de restrições mais gerais conhecidas como restrições de integridade semântica. • Salário de um empregado não pode exceder o salário de seu supervisor; • Número máximo de horas que um empregado pode trabalhar em todos os projetos por semana não pode ultrapassar 40 horas
Restrições Numero Nome Localização 1 1 1 N 1 1 N 1 N N N N DtIni Supervisiona Gerencia Departamento Salário Trabalha Controla NSS Empregado Nome Endereço Possui Participa Projeto Parentesco Horas DtNasc Dependente Numero Nome Nome
Restrições EMPREGADO NOME ENDERECO NSSSUPER DTNASC SALARIO NSS NUMD DEPARTAMENTO NOMED DATINIGER NSSGER NUMDEP TRABALHA_EM NSSE HORAS NUMP LOCALIZACOES_DEP LOCALDEP NUMDEP PROJETO NOMEP LOCALPROJ NUMPROJ NUMD DEPENDENTE NOMDEP DTNASC NSSE PARENTESCO
Violação de Restrições Operação de Inserção • Restrição de domínio (valor não correspondente ao domínio especificado) • Restrição de chave (se um valor de chave já existe) • Integridade de entidade (se a chave primária é nula) • Integridade referencial (se o valor da chave estrangeira refere-se a uma tupla que não existe na relação referenciada) • A opção default (padrão) é rejeitar a inserção
Violação de Restrições Operação de Exclusão • Pode violar somente integridade referencial • Ocorre quando a tupla sendo excluída é referenciada como chave estrangeira de outras tuplas no banco de dados • Três opções estão disponíveis: • Rejeitar a exclusão • Propagar a exclusão • Modificar o valor do atributo sendo referenciado, seja colocando o valor null ou colocar um outro valor válido. Se o atributo referenciado fizer parte da chave primária o atributo não poderá assumir valor nulo, senão será violada a restrição de integridade de entidade
Violação de Restrições Operação de Atualização • Usada para alterar os valores de um ou mais atributos em uma tupla • Atributos que não são chaves primárias ou estrangeiras, não tem problemas, exceto a checagem de tipos e domínios • Modificar uma chave primária é a mesma coisa que apagar uma tupla e inserir outra em seu lugar. As mesmas regras de inserção e exclusão se aplicam aqui • Se uma chave estrangeira é modificada, o SGBD tem que garantir que o novo valor refere-se a uma tupla existente na relação referenciada