Projeto de Bancos de Dados Mini Mundo DCC011 Revisão e Exercícios Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Independente de SGBD Específico para um SGBD Análise de Requisitos Requisitos it Funcionais i Requisitos it do BD Análise Funcional Projeto Conceitual Especificação das Transações Esquema Conceitual (em alto nível) (em um modelo de dados de alto nível) Projeto das Aplicações Projeto Lógico Esquema Lógico (em um modelo de dados lógico) Projeto Físico Implementação Esquema Físico (para um SGBD específico) Programas 2 Modelo Entidade Relacionamento 1. Entidades, atributos 2. Relacionamentos 3. Restrições sobre relacionamentos 4. Papéis e relacionamentos recursivos 5. Entidade fraca 6. Generalização e especialização 7. Restrições sobre Hierarquias de Especialização/Generalização 1. Entidades, atributos Entidades Objetos do mundo real que são de interesse para alguma aplicação Atributos Propriedades para descrever uma entidade 4 Tipos de Atributos Simples ou compostos Ex. Endereço Monovalorados ou multivalorados l Ex. Profissão Armazenados ou derivadosd Data de Nascimento Idade, Empregados trabalhando no departamento t NumeroDeEmpregados Valores Null Não aplicável: Número do apartamento Desconhecido: Telefone de casa Endereço End_Rua Cidade Estado CEP Rua Nro Apto Chave e Domínio Chave de um tipo de entidade Atributo que possui valor único para cada entidade (instância) Ex. Nome da companhia, identidade do empregado Chave pode ser formada por vários atributos: chave composta Registro do Veiculo: Numero de Registro e Estado Domínio de um atributo Conjunto de valores que podem ser atribuídos a um atributo para cada entidade individualmente Ex. Idade do Empregado: (16, 70); Nome do Empregado:String 5 6
2. Relacionamentos Associações entre duas ou mais entidades distintas (instâncias) com um significado Exemplo: Empregado John Smith trabalha para Departamento pesquisa Empregado Fred dbrown gerencia Departamento t pesquisa Departamento pesquisa controla Projeto X Figura 3.9 Algumas instâncias do conjunto de relacionamento TRABALHA_PARA, que representa um tipo relacionamento TRABALHA_PARA entre EMPREGADO e DEPARTAMENTO. 7 8 3. Restrições sobre relacionamentos Limitam as possíveis combinações de entidades que podem participar no conjunto de relacionamentos Cardinalidade: número de instâncias de um tipo de relacionamento do qual uma entidade d pode participar i Participação: se a existência de uma entidade depende de seu relacionamento com outra entidade d através de um tipo de relacionamento parcial ou total Ex. Todo empregado deve trabalhar p/ um departamento (total) Ex. Nem todo empregado gerencia um departamento (parcial) Cardinalidade d + Participação i Restrições Estruturais t Figura 3.12 Relacionamento GERENCIA 1:1 9 10 4. Papéis e Relacionamentos Recursivos Entidades atuam com um determinado papel Significado do papel é dado por um nome, atribuído a cada tipo de entidade Nomes só são necessários em tipos de relacionamento que envolvam mais de uma vez o mesmo tipo de entidade relacionamentos recursivos Exemplo: Supervisão, onde Empregado tem os papéis de Supervisor e Subordinado Figura 3.13 Relacionamento TRABALHA_EM, M:N 11 12
5. Entidade Fraca todo E trabalha_para 1 D todo D trabalha_para N E Tipos de entidade d que não têm chave própria As instâncias são identificadas através do relacionamento com entidades d de outro tipo, chamado de dono ou identificador, juntamente com os valores de alguns atributos (chave parcial) Exemplo: Dependente um E supervisiona 1 E p um E supervisor N E Esquema conceitual um E gerencia 1 D todo D gerencia 1E M um D controla NP todo P controla 1 D 13 14 6. Especialização e Generalização 7. Restrições sobre Hierarquias de Especialização/Generalização Especialização Processo de definição de um conjunto de sub classes (sub tipos) de um tipo de entidade Generalização Processo de definição de um tipo de entidade genérico (super classe ou super tipo) a partir de um conjunto de tipos de entidade Exemplo: {secretária, engenheiro, técnico} é uma especialização de Empregado; ou Empregado é uma generalização de {secretária, engenheiro, técnico} Definida id por atributo ou usuário Disjução: Sub classes podem ser disjuntas ou sobrepostas Completude: A cobertura da super classe em relação às sub classes pode ser total ou parcial Restrições possíveis: Disjunta/Total Disjunta/Parcial Sobreposta/Total Sobreposta/Parcial 15 16 d = disjunção Um Empregado é Secretária OU Técnico OU Engenheiro o = sobreposição Uma peça é fabricada E/OU fornecida Figura 4.4 4 Notação do diagrama EER para uma especialização definida por atributo em TipoTrabalho. Figura 4.5 Notação de diagrama EER para uma especialização sobreposta (não disjunta). 17 18
TOTAL TODO Empregado é Assalariado OU Horista Restrições sobre Hierarquias de Especialização/Generalização Hierarquia Toda sub classe participa como uma sub classe em apenas um relacionamento classe/sub classe Reticulado lattice, herança múltipla, grade de especialização Uma sub classe pode participar i em mais de um relacionamento classe/sub classe Figura 4.1 Notação de diagrama EER para representar as subclasses e a especialização. 19 20 IMPORTANTE 21 Figura 4.7 Um reticulado de especialização, com herança múltipla, para um banco de dados UNIVERSIDADE. Modelo Conceitual CONCEITOS, ABSTRAÇÕES ENTIDADE, ATRIBUTO, RELACIONAMENTO Piloto, equipe, país, circuito, corrida Piloto representa País Equipe sede em País SE país é uma entidade; Piloto e equipe possuem atributo País? Mas a especificação diz!!!!???? N modelos conceituais para um cenário Modelo tem APENAS o que está na especificação Restrições, exceções, peculiaridades, viagem na maionese: OUTRO MODELO Pecar por excesso x Pecar por falta 22 Processo de Projeto de Bancos de Dados Requisitos de Dados Modelo Relacional (3 rd ed: 7.1 7.2; 5 th ed: 5.1 5.2) 1. Introdução 2. Conceitos do Modelo Relacional 3. Restrições de Integridade Básicas 4. Esquema do BD Relacional 5. Restrições de Integridade do Esquema 6. Operações sobre Relações 7. Violações de Restrições Independente de SGBD SGBD Específico Esquema Conceitual Modelo de dados de alto nível Esquema Lógico (Conceitual) em um modelo de dados de um SGBD específico DCC011 profa. 24 Mirella M. Moro
1. Introdução O modelo relacional representa um banco de dados como um conjunto de relações Informalmente uma relação = uma tabela de valores 2. Conceitos do Modelo Relacional Linhas de uma relação (tabela) = tuplas Cabeçalho de cada coluna = atributo Conjunto de valores que pode aparecer em cada coluna = domínio cada linha representa uma coleção de dados relacionados cada linha de uma tabela representa um fato que tipicamente corresponde a uma entidade ou relacionamento do mundo real Figura 7.1 Os atributos e as tuplas de uma relação ALUNO. 25 26 3. Restrições de Integridade Básicas Restrições de domínio Especificam que o valor de cada atributo A de uma relação deve ser um valor atômico do domínio dom(a) Restrições de chave Um esquema de relação pode ter mais de uma chave chaves candidatas Dentre as chaves candidatas de um esquema de relação, uma delas é indicada como chave primária e as demais constituem as chaves alternativas Restrições em valores null Especifica se a um atributo é permitido ter valores null Exemplo: todo Aluno deve ter um nome válido, não null 4. Esquema de um BD Relacional Um esquema de BD relacional S define: um conjunto de esquemas de relação R = {R 1, R 2,..., R n }, e um conjunto de restrições de integridade I S = (R, I) 27 28 5. Restrições de Integridade do Esquema Restrição de integridade de entidade Nenhum componente de uma chave primária pode ser nulo Restrição de integridade referencial Usada para manter a consistência entre tuplas de duas relações Uma tupla em uma relação que se refere a outra relação deve referenciar uma tupla existente nesta outra relação Aparecem devido aos relacionamentos entre entidades Figura 7.7 Restrições de integridade referencial exibidas no esquema de um banco de dados relacional EMPRESA. 29 30
Notação NomeTabelaPrincipal 6. Operações sobre Relações Chave Atributo 1 Atributo n NomeTabelaReferenciada Atributo 1 Atributo n Chave NomeTabelaPrincipal (Chave, Atributo1,..., AtributoN) AtributoN referencia NomeTabelaReferenciada NomeTabelaReferenciada (Chave, Atributo1,..., AtributoN) As operações sobre um BD relacional podem ser classificadas em: Operações de recuperação (consulta) Operações de atualização Operações de atualização (sobre tuplas): Inserção (insert) Remoção (delete) Modificação (update) Em qualquer operação, a integridade da base de dados relacional deve ser mantida 31 32 7. Violação de Restrições Violação de Restrições Restrições de integridade não podem ser violadas!!! Inserção Restrição de Domínio: valor fora do domínio Restrição de Chave: valor já existe Restrição de integridade de entidade: se chave for null Restrição de integridade referencial: se chave estrangeira referencia tupla inexistente Ação default: rejeitar inserção (com explicação) Remoção Tupla excluída é referenciada por chaves estrangeiras Ação default: bloqueia/rejeitar a remoção (com explicação) OUTRAS OPÇÕES???? Propagar remoção de tuplas que violem uma restrição de integridade referencial Efeito cascata Modificar o valor da chave estrangeira para nulo 33 34 Violação de Restrições Notação NomeTabelaPrincipal Modificação Modificar o valor de um atributo que não é chave primária ou estrangeira não causa problemas (se o valor for do domínio, e, se for null, que este valor seja permitido) Modificar a chave primaria é igual a excluir uma tupla e inserir outra Modificar chave estrangeira: SGBD deve verificar se novo valor do atributo referencia tupla existente Chave Atributo 1 Atributo n p NomeTabelaReferenciada Atributo 1 Atributo n Chave NomeTabelaPrincipal (Chave, Atributo1,..., AtributoN) AtributoN referencia NomeTabelaReferenciada por propagação NomeTabelaReferenciada (Chave, Atributo1,..., AtributoN) 35 36