Baixe o app para aproveitar ainda mais
Prévia do material em texto
Key (Chave) � Elemento fundamental para se identificar um determinado registro ou para estabelecer associações entre as tuplas de tabelas de dados. � Na abordagem relacional existem 3 tipos de chaves: 1- Primary Keys (Chaves Primárias); 1 1- Primary Keys (Chaves Primárias); 2- Foreign Keys (Chaves Estrangeiras); 3- Alternate Keys (ChavesAlternativas). Primary Key (PK) � Atributo (coluna) ou conjunto de atributos que diferenciam um registro dos demais dentro de uma tabela. matrícula nome curso ALUNO 2 A coluna matrícula é a chave primária da tabela ALUNO uma vez que através dela podemos distinguir uma tupla das demais. matrícula nome curso 001 Pedro CC 002 Maria SI 003 José Redes • Indica o relacionamento entre tabelas; • Normalmente será a chave primária de uma das tabelas do relacionamento. Foreign Key (FK) Matrícula CodCurso NomeAluno 001 C1 Pedro 002 C2 Maria 003 C3 José ALUNO CodCurso NomeCurso C1 CC C2 SI C3 Redes CURSO 3 Validando a Foreign Key � Incluindo uma linha na tabela: � Deve-se garantir a existência do valor da chave estrangeira na tabela referenciada. � Atualizando o valor da chave estrangeira: � Deve-se garantir que o valor da chave estrangeira na tabela referenciada de fato exista. 4 � Deve-se garantir que o valor da chave estrangeira na tabela referenciada de fato exista. � Excluindo uma linha da tabela que contém a chave primária referenciada pela chave estrangeira: � Deve-se garantir que a na coluna chave estrangeira não apareça o valor da chave primária que foi excluída. EMPREGADO DEPENDENTEPossui 1 N CPF Nome NSeq Nome Conceitual Foreign Key CPF Nome 111 José 222 Maria 333 Pedro NSeq Nome 1 Gil 2 Gal 1 Igor CPF_EMPREGADO 111 EMPREGADO DEPENDENTE 333 555 Lógico 5 Alternate Key � Há situações em que mais de uma coluna poderá ser usada para distinguir uma linha das demais, neste caso, escolhendo-se uma, as outras passam a ser denominadas Alternate Key ou Chaves Alternativas. � No exemplo abaixo, não fará diferença adotar Matrícula ou CPF_Aluno como chave primária.primária. 6 Matrícula CPF_Aluno NomeAluno 001 444 Pedro 002 555 Maria 003 888 José ALUNO Observações Importantes � Domínio: Tipos de valores que os campos de uma tabela podem assumir. � Campo Vazio (NULL): Ocorre quando o campo de uma tabela não assume nenhum dos valores definidos no domínio. � Há situações em que não será admitido que determinados campos não assumam valores, neste caso teremos os campos obrigatórios. � Haverá também situações em que será admitido que determinados campos assumam NULL, neste caso teremos os campos opcionais. � A foreign key poderá possuir campos opcionais. � Isso não ocorre com a primary key, para a qual não é admitido que haja campos com valor NULL. 7 Restrições de Integridade • Conjunto de requisitos visando a consistência dos dados e que é mantida pelo SGBD. • Principais Restrições de Integridade: a) Integridade de Domínio; 8 b) Integridade deVazio; c) Integridade de Chave; d) Integridade Referencial; e) Integridade de Unicidade; • Não há necessidade de o programador implementá-las, uma vez que o SGBD garante tais restrições. Restrições de Integridade � Integridade de Domínio: - Estabelece quais os valores que podem ser assumidos pelos campos de uma coluna. � Integridade de Vazio: - Determina a possibilidade de os campos de uma coluna serem ou não serem vazios. 9 � Integridade de Chave: - Determina que os valores assumidos pelas chaves primária e alternativa devem ser atômicos. � Integridade Referencial: - Estabelece que os valores dos campos que estão numa chave estrangeira devem estar também na chave primária da tabela referenciada. � Integridade de Unicidade: - Define que os valores das colunas da tabela sejam únicos. Regras de Negócio � Também definidas na Literatura como Restrições Semânticas. � Haverá situações que precisarão ser implementadas pelo programador. 10 programador. � Exemplo: � Determinado aluno não pode ter a sua nota maior do que 10. Especificação de Banco de Dados Relacional � A especificação (modelo) de um Banco de Dados Relacional considera três fatores fundamentais: As tabelas que formam o Banco de Dados; 11 1) As tabelas que formam o Banco de Dados; 2) As colunas das tabelas; 3) As restrições de integridade. Especificação de Banco de Dados Relacional � Cada uma das tabelas é identificada por seu respectivo nome. � Imediatamente após o nome da tabela, vêm entre parêntesis os nomes das colunas, sempre entre vírgulas. 12 colunas, sempre entre vírgulas. � A chave primária será sublinhada. � Definida a tabela, é hora de especificar as chaves estrangeiras que estarão na tabela. � No caso de a chave estrangeira ser composta por mais de uma coluna, basta separá-las com vírgulas. Especificação de Banco de Dados Relacional CodTipoItem DescrTipoItem CodItem DescrItem PreçoItem CodTipoItem 1 Detergente 1,20 1 TipoDoItem Item 13 1 Limpeza 2 Alimentação 1 Detergente 1,20 1 2 Arroz 1,70 2 3 Sabão em Pó 2,60 1 4 Feijão 3,40 2 TipoDoItem (CodTipoItem,DescrTipoItem) Item (CodItem,DescrItem,PrecoItem,CodTipoItem) CodTipoItem referencia TipoDoItem Transformando Modelos 14 nº conta corrente saldo seqüência saldo Transformando Modelos CONTA INVESTIMENTOPOSSUICONTA CORRENTE (1,1) (0,n) 15 nº conta corrente saldo seqüência saldo Transformando Modelos CONTA INVESTIMENTOPOSSUICONTA CORRENTE (1,1) (0,n) Conta Investimento (NContaCorrente,Sequencia,Saldo) 16 Transformando Modelos 17 Grupo (CodGrup,Nome) Transformando Modelos 18 Transformando Modelos Empresa (CodGrup,NºEmpresa, Nome) 19 Transformando Modelos Empregado (CodGrup,NºEmpresa,NºEmpregado,Nome) 20 Transformando Modelos Dependente (CodGrup,NºEmpresa,NºEmpregado,NºSequencia,Nome) 21 Recursão Grupo (CodGrup,Nome) Empresa (CodGrup,NºEmpresa, Nome) Transformando Modelos Empregado (CodGrup,NºEmpresa,NºEmpregado,Nome) Dependente (CodGrup,NºEmpresa,NºEmpregado,NºSequ encia,Nome) 22 Transformando Modelos 23 Transformando Modelos Empregado (CodEmp,Nome) 24 Transformando Modelos Projeto (NºProj,Nome) 25 Empregado (CodEmp,Nome) Transformando Modelos Atuação (CodEmp,NºProj, Função) 26 Empregado (CodEmp,Nome) Projeto (NºProj,Nome) Generalização\Especialização • Três maneiras de representar: – Uma única TABELA para toda a cadeia hierárquica. – Uma TABELA para cada entidade da cadeia. 27 – Uma TABELA para cada entidade da cadeia. – Uma TABELA para cada entidade especializada. Generalização\Especialização 28 Matricula Nome CREA OAB CRM Tipo Empregado Generalização\Especialização 111 GAL - A1 - ADV 222 GIL E1 - - ENG 333 BETE - A2 - ADV 444 PEDRO - - M1 MED 555 JOÃO - A3 - ADV 29 Empregado Matricula Nome 111 GAL 222 GIL 333 BETE 444 PEDRO Generalização\Especialização Advogado Engenheiro Médico 555 JOÃO Matrícula CREA 222 E1 Matricula OAB 111 A1 333 A2 555 A3 Matrícula CRM 444 M1 30 Advogado Médico Matricula OAB Nome 111 A1 GAL Matricula CRM Nome 444 M1 PEDRO Generalização\Especialização Engenheiro 333 A2 BETE 555 A3 JOÃO Matricula CREA Nome222 E1 GIL 31 1- Suponha que Médicos de um hospital realizam consultas em pacientes. Sabe-se que, para ser considerado um paciente do hospital, é necessário ter, pelo menos, uma consulta com um dos médicos do hospital, e, para ser considerado médico do hospital, basta ter um código identificador único (ou seja, diferente dos códigos dos outros médicos) no banco de dados. Os médicos e pacientes são descritos por código e nome e as consultas são agendadas para um momento (data/hora) específico. Exercício são agendadas para um momento (data/hora) específico. Diante do exposto acima, construa o DER, sabendo-se que: - linhas mais grossas entre uma entidade E1 e um relacionamento R1 representam que a entidade E1 é fraca em relação à(s) entidade(s) a que E1 está relacionada por R1; - atributos chaves de uma entidade ou relacionamento são identificados por bolinhas pretas; - atributos não chaves de uma entidade ou relacionamento são identificados por bolinhas brancas. 32 Referências Bibliográficas EMASRIEMASRIEMASRIEMASRI, , , , Ramez; NAVATHERamez; NAVATHERamez; NAVATHERamez; NAVATHE, , , , ShamkantShamkantShamkantShamkant B. Sistema de Banco de Dados. Pearson B. Sistema de Banco de Dados. Pearson B. Sistema de Banco de Dados. Pearson B. Sistema de Banco de Dados. Pearson EducationEducationEducationEducation do do do do Brasil. Brasil. Brasil. Brasil. São Paulo. 2005São Paulo. 2005São Paulo. 2005São Paulo. 2005.... SILBERSCHARTZ, Abraham; KORTH, SILBERSCHARTZ, Abraham; KORTH, SILBERSCHARTZ, Abraham; KORTH, SILBERSCHARTZ, Abraham; KORTH, Henry; SUDARSHAN, S. Sistemas de Banco de Dados. Henry; SUDARSHAN, S. Sistemas de Banco de Dados. Henry; SUDARSHAN, S. Sistemas de Banco de Dados. Henry; SUDARSHAN, S. Sistemas de Banco de Dados. 3º 3º 3º 3º edição, São Paulo: Makron Books edição, São Paulo: Makron Books edição, São Paulo: Makron Books edição, São Paulo: Makron Books 1999.1999.1999.1999. 33
Compartilhar