Introduo a Banco de Dados -08 Introduo a Banco de Dados -08
Mirella M. Moro Departamento de Cincia da Computao Universidade Federal de Minas Gerais mirella@dcc.ufmg.br 2009/1 Avaliao Provas 60 pontos Trabalhos Prticos 30 pontos Exerccios e Participao DCC011 - 2009/1 - profa. Mirella 2 Exerccios e Participao 10 pontos www.dcc.ufmg.br/~mirella/DCC011 Programa Introduo Conceitos bsicos, caractersticas da abordagem de banco de dados, modelos de dados, esquemas e instncias, arquitetura de um sistema de banco de dados, componentes de um sistema de gerncia de banco de dados. Modelos de dados e linguagens REVISO PARA PROVA 1 DCC011 - 2009/1 - profa. Mirella 3 Modelos de dados e linguagens Modelo entidade-relacionamento (ER), modelo relacional, lgebra relacional, SQL. Projeto de bancos de dados Fases do projeto de bancos de dados, projeto lgico de bancos de dados relacionais, normalizao. Novas Tecnologias e Aplicaes de Banco de Dados Conceitos Bsicos Definio de Banco de Dados [Elmasri & Navathe, 2000] Um banco de dados uma coleo de dados relacionados Representando algum aspecto do mundo real DCC011 - 2009/1 - profa. Mirella 5 Representando algum aspecto do mundo real (mini-mundo ou universo de discurso) Logicamente coerente, com algum significado Projetado, construdo e gerado (povoado) para uma aplicao especfica Sist. de Gerncia de Banco de Dados Um sistema de gerncia de banco de dados (SGBD) um conjunto de programas que permite criar e manter (manipular) um banco de dados BD + SGBD = sistema de banco de dados DCC011 - 2009/1 - profa. Mirella 6 BD + SGBD = sistema de banco de dados Projeto de Banco de Dados Viso Externa1 Viso Externa2 Modelo Conceitual requisitos requisitos DCC011 - 2009/1 - profa. Mirella 7 Modelo Lgico Modelo Fsico Esquema Conceitual Esquema Lgico Esquema Fsico INDEPENDENTE de SGBD DEPENDENTE de SGBD Mini-Mundo Anlise de Requisitos Requisitos do BD Projeto Conceitual Esquema Conceitual Requisitos Funcionais Anlise Funcional Especificao das Transaes Projeto de Bancos de Dados DCC011 - 2009/1 - profa. Mirella 8 Esquema Conceitual (em um modelo de dados de alto nvel) Projeto Lgico Esquema Lgico (em um modelo de dados lgico) Projeto Fsico Esquema Fsico (para um SGBD especfico) Especificao das Transaes (em alto nvel) Projeto das Aplicaes Implementao Programas Independente de SGBD Especfico para um SGBD Conceitos e Arquitetura do SBD 1.Modelos de Dados, Esquemas e Instncias 2.Categorias de Modelos de Dados 3.Arquitetura de Trs Esquemas e Independncia de Dados 1. Modelo de Dados, Esquema e Instncia Modelo DCC011 - 2009/1 - profa. Mirella 10 Modelo de Dados Esquema Instncia Regras para estruturao dos dados Regras para verificao das instncias Modelo de Dados, Esquema e Instncia Modelo de dados: Conjunto de conceitos descrevem a estrutura de um BD Abstrao de dados Estrutura = tipos de dados + relacionamentos + restries (+operaes recuperao e atualizao) DCC011 - 2009/1 - profa. Mirella 11 restries (+operaes recuperao e atualizao) Esquema: Descrio (textual ou grfica) da estrutura de um BD de acordo com um determinado modelo de dados Instncia: Conjunto de dados armazenados em um BD em um determinado instante de tempo 2. Categorias de Modelo de Dados MODELOS CONCEITUAIS Descrevem a estrutura de um BD de uma forma mais prxima da percepo dos usurios Independente de aspectos de implementao DCC011 - 2009/1 - profa. Mirella 12 Independente de aspectos de implementao Conceitos: entidades, atributos, relacionamentos Exemplos: Modelo entidade-relacionamento (ER) Modelo funcional Modelo orientado a objetos (OO) Categorias de Modelo de Dados MODELOS REPRESENTACIONAIS (lgicos) Descrevem a estrutura de um BD da forma como ser manipulado atravs de SGBD Mais dependente das estruturas fsicas de armazenamento de dados DCC011 - 2009/1 - profa. Mirella 13 armazenamento de dados Exemplos: Modelo relacional Modelo de rede (CODASYL) Modelo hierrquico Categorias de Modelo de Dados MODELOS FSICOS Descrevem como os dados so fisicamente armazenados Conceitos: formatos dos registros, DCC011 - 2009/1 - profa. Mirella 14 Conceitos: formatos dos registros, ordenamento dos registros, caminhos de acesso (eficincia) 3. Arquitetura de um Sistema de BD Caractersticas do enfoque de BD Isolamento de programas e dados Suporte de vises mltiplas de usurios Catlogo para armazenar a descrio DCC011 - 2009/1 - profa. Mirella 15 Catlogo para armazenar a descrio (esquema) do BD Arquitetura de trs nveis Mantm independncia de dados e programas Suporta mltiplas vises Arquitetura de um Sistema de BD Componentes 1. Esquema interno Descreve armazenamento fsico 2. Esquema conceitual DCC011 - 2009/1 - profa. Mirella 16 2. Esquema conceitual Descreve entidades, tipos de dados, relacionamentos, operaes e restries Esconde detalhes de armazenamento 3. Esquemas externos (vises) Descreve pores do banco para diferentes comunidades Arquitetura de um Sistema de BD DCC011 - 2009/1 - profa. Mirella 17 Arquitetura de um Sistema de BD exemplo 1 Esquema conceitual Estudantes (eid: string, nome: string, login: string, idade: integer, gpa:real) Cursos (cid: string, cnome:string, creditos:integer) Matricula (eid:string, cid:string, nota:string) DCC011 - 2009/1 - profa. Mirella 18 Matricula (eid:string, cid:string, nota:string) Esquema Fsico Relaes guardadas como arquivos desordenados ndices na primeira colunas de estudantes Esquema externo (Viso): Info_Curso(cid:string, horrio:string) Arquitetura de um Sistema de BD exemplo 2 EXTERNO (Ling. Pascal) Funcionario = Record nome: string(30); salario: real; End; EXTERNO (Ling. Cl) Participante = struct { char[30] Nome; int Departamento; } CONCEITUAL Empregado NOME CHARACTER (30) DCC011 - 2009/1 - profa. Mirella 19 NOME CHARACTER (30) SALARIO NUMERIC (5) DEPARTAMENTO NUMERIC (2) SEXO CHARACTER (1) INTERNO RegistroEmpregadoLENGTH=50 NOME TYPE= BYTE(30) SAL TYPE=FULLWORD DEP TYPE=WORD SEXO TYPE=BYTE(1) Altera um nvel Altera Viso Externa Esquema Conceitual DCC011 - 2009/1 - profa. Mirella 20 Altera nvel vizinho Dependncia de Dados Independncia de Dados Esquema Fsico Independncia de Dados Capacidade de se alterar o esquema em um determinado nvel sem alterar o esquema (ou esquemas) do nvel imediatamente mais alto DCC011 - 2009/1 - profa. Mirella 21 imediatamente mais alto VANTAGEM: Imunidade dos programas em relao a mudanas na estrutura do banco de dados Um dos maiores benefcios de usar SGBD Independncia de Dados Independncia de dados lgica Capacidade de alterar o esquema conceitual sem alterar esquema externo ou aplicaes Ex. Expanso ou reduo DCC011 - 2009/1 - profa. Mirella 22 Ex. Expanso ou reduo Independncia de dados fsica Capacidade de mudar o esquema interno sem mudar o esquema conceitual (ou externo) Ex. Reorganizao de arquivos para melhorar desempenho Modelo Entidade-Relacionamento 1. Entidades, atributos 2. Relacionamentos 3. Restries sobre relacionamentos 4. Papis e relacionamentos recursivos 5. Entidade fraca 6. Generalizao e especializao 7. Restries sobre Hierarquias de Especializao/Generalizao Processo de Projeto de Bancos de Dados Requisitos de Dados Independente Esquema Conceitual Modelo de dados de alto nvel DCC011 - 2009/1 - profa. Mirella 24 Independente de SGBD 1. Entidades, atributos Entidades Objetos do mundo real que so de interesse para alguma aplicao Atributos Propriedades para descrever uma entidade DCC011 - 2009/1 - profa. Mirella 25 Propriedades para descrever uma entidade Tipos de Atributos Simples ou compostos Ex. Endereo Monovalorados ou multivalorados Ex. Profisso Armazenados ou derivados Endereo End_Rua Cidade Estado CEP Rua Nro Apto DCC011 - 2009/1 - profa. Mirella 26 Armazenados ou derivados Data de Nascimento Idade, Empregados trabalhando no departamento NumeroDeEmpregados Valores Null No aplicvel: Nmero do apartamento Desconhecido: Telefone de casa Tipos de Entidade Tipo de entidade Define um conjunto de entidades que tm os mesmos atributos (propriedades) Descreve o esquema para um conjunto de DCC011 - 2009/1 - profa. Mirella 27 Descreve o esquema para um conjunto de entidades que compartilham a mesma estrutura Exemplos Empregado, Empresa DCC011 - 2009/1 - profa. Mirella 28 Fig. 3.5 Duas entidades Empregado e Empresa, e algumas instncias dos dados Chave e Domnio Chave de um tipo de entidade Atributo que possui valor nico para cada entidade (instncia) Ex. Nome da companhia, identidade do empregado Chave pode ser formada por vrios atributos: chave composta DCC011 - 2009/1 - profa. Mirella 29 Chave pode ser formada por vrios atributos: chave composta Registro do Veiculo: Numero de Registro e Estado Domnio de um atributo Conjunto de valores que podem ser atribudos a um atributo para cada entidade individualmente Ex. Idade do Empregado: (16, 70); Nome do Empregado:String DCC011 - 2009/1 - profa. Mirella 30 Fig. 3.7 - O tipo entidade CARRO com dois atributos-chave, Registro e IDVeiculo DCC011 - 2009/1 - profa. Mirella 31 Fig. 3.8 - Projeto inicial dos tipos entidade para o banco de dados EMPRESA. 2. Relacionamentos Associaes entre duas ou mais entidades distintas (instncias) com um significado Exemplo: Empregado John Smith trabalha para DCC011 - 2009/1 - profa. Mirella 32 Empregado John Smith trabalha para Departamento pesquisa Empregado Fred Brown gerencia Departamento pesquisa Departamento pesquisa controla Projeto X Tipo de Relacionamento Define um conjunto de associaes entre n tipos de entidade E 1 , E 2 , ..., E n Exemplo: Trabalha_para entre Empregado e DCC011 - 2009/1 - profa. Mirella 33 Trabalha_para entre Empregado e Departamento Empregado trabalha para Departmento DCC011 - 2009/1 - profa. Mirella 34 Figura 3.9 Algumas instncias do conjunto de relacionamento TRABALHA_PARA, que representa um tipo relacionamento TRABALHA_PARA entre EMPREGADO e DEPARTAMENTO. DCC011 - 2009/1 - profa. Mirella 35 Figura 3.10 Algumas instncias de relacionamento do conjunto de relacionamento ternrio FORNECE. 3. Restries sobre relacionamentos Limitam as possveis combinaes de entidades que podem participar no conjunto de relacionamentos Cardinalidade: nmero de instncias de um tipo de relacionamento do qual uma entidade pode participar Participao: se a existncia de uma entidade depende DCC011 - 2009/1 - profa. Mirella 36 Participao: se a existncia de uma entidade depende de seu relacionamento com outra entidade atravs 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 + Participao Restries Estruturais DCC011 - 2009/1 - profa. Mirella 37 Figura 3.12 Relacionamento GERENCIA 1:1 DCC011 - 2009/1 - profa. Mirella 38 Figura 3.13 Relacionamento TRABALHA_EM, M:N M DCC011 - 2009/1 - profa. Mirella 39 Esquema conceitual 4. Papis e Relacionamentos Recursivos Entidades atuam com um determinado papel Significado do papel dado por um nome, atribudo a cada tipo de entidade Nomes s so necessrios em tipos de DCC011 - 2009/1 - profa. Mirella 40 Nomes s so necessrios em tipos de relacionamento que envolvam mais de uma vez o mesmo tipo de entidade relacionamentos recursivos Exemplo: Superviso, onde Empregado tem os papis de Supervisor e Subordinado DCC011 - 2009/1 - profa. Mirella 41 Figura 3.11 Um relacionamento recursivo SUPERVISAO entre EMPREGADO, no papel de supervisor (1), e EMPREGADO, no papel de subordinado (2). 5. Entidade Fraca Tipos de entidade que no tm chave prpria As instncias so identificadas atravs do relacionamento com entidades de outro DCC011 - 2009/1 - profa. Mirella 42 relacionamento com entidades de outro tipo, chamado de dono ou identificador, juntamente com os valores de alguns atributos (chave parcial) Exemplo: Dependente M DCC011 - 2009/1 - profa. Mirella 43 6. Especializao e Generalizao Especializao: Processo de definio de um conjunto de sub-classes (sub-tipos) de um tipo de entidade Generalizao: DCC011 - 2009/1 - profa. Mirella 44 Processo de definio de um tipo de entidade genrico (super-classe ou super-tipo) a partir de um conjunto de tipos de entidade Exemplo: {secretria, engenheiro, tcnico} uma especializao de Empregado; ou Empregado uma generalizao de {secretria, engenheiro, tcnico} Especializao e Generalizao Toda instncia de uma sub-classe (ou sub-tipo) tambm instncia de sua super-classe (ou super-tipo) Ex.: John Smith um engenheiro e tambm um empregado DCC011 - 2009/1 - profa. Mirella 45 empregado Herana de Tipo: Uma entidade de uma sub-classe tem todos os atributos e relacionamentos da super-classe Em outra palavras, ela herda todos os atributos e relacionamentos da super-classe E pode definir seus proprios atributos e relacionamentos locais ou especificos (*) DCC011 - 2009/1 - profa. Mirella 46 Figura 4.1 Notao de diagrama EER para representar as subclasses e a especializao. DCC011 - 2009/1 - profa. Mirella 47 Figura 4.2 Instncias de uma especializao. Especializao O processo de especializao permite: Definir um conjunto de sub-classes (sub- tipos) de um tipo de entidade Estabelecer atributos especficos adicionais DCC011 - 2009/1 - profa. Mirella 48 Estabelecer atributos especficos adicionais para cada sub-classe (sub-tipo) Estabelecer tipos de relacionamentos especificos adicionais entre cada sub- classe (sub-tipo) e outros tipos de entidades ou outras sub-classes (sub- tipos). DCC011 - 2009/1 - profa. Mirella 49 Figura 4.3 Generalizao. (a) Dois tipos de entidade, CARRO e CAMINHAO. (b) Generalizando CARRO e CAMINHAO na superclasse VEICULO. 7. Restries sobre Hierarquias de Especializao/Generalizao Definida por atributo ou usurio Disjuo: Sub-classes podem ser disjuntas ou sobrepostas Completude: A cobertura da super-classe em relao s sub- DCC011 - 2009/1 - profa. Mirella 50 A cobertura da super-classe em relao s sub- classes pode ser total ou parcial Restries possveis: Disjunta/Total Disjunta/Parcial Sobreposta/Total Sobreposta/Parcial d = disjuno Um Empregado -Secretria OU -Tcnico OU -Engenheiro DCC011 - 2009/1 - profa. Mirella 51 Figura 4.4 Notao do diagrama EER para uma especializao definida por atributo em TipoTrabalho. o = sobreposio Uma pea -fabricada E/OU -fornecida DCC011 - 2009/1 - profa. Mirella 52 Figura 4.5 Notao de diagrama EER para uma especializao sobreposta (no disjunta). TOTAL TODO Empregado Assalariado OU Horista DCC011 - 2009/1 - profa. Mirella 53 Figura 4.1 Notao de diagrama EER para representar as subclasses e a especializao. Restries sobre Hierarquias de Especializao/Generalizao Hierarquia Toda sub-classe participa como uma sub- classe em apenas um relacionamento classe/sub-classe DCC011 - 2009/1 - profa. Mirella 54 classe/sub-classe Reticulado lattice, herana mltipla, grade de especializao Uma sub-classe pode participar em mais de um relacionamento classe/sub-classe DCC011 - 2009/1 - profa. Mirella 55 Figura 4.6 Um reticulado de especializao, com a subclasse GERENTE_ENGENHARIA compartilhada. Figura 4.7 Um reticulado de especializao, com herana mltipla, para um banco de dados UNIVERSIDADE. DCC011 - 2009/1 - profa. Mirella 56 DCC011 - 2009/1 - profa. Mirella 57 Figura 4.7 Um reticulado de especializao, com herana mltipla, para um banco de dados UNIVERSIDADE. IMPORTANTE Modelo Conceitual CONCEITOS, ABSTRAES ENTIDADE, ATRIBUTO, RELACIONAMENTO Piloto, equipe, pas, circuito, corrida Piloto representa Pas DCC011 - 2009/1 - profa. Mirella 58 Piloto representa Pas Equipe sede em Pas SE pas uma entidade; Piloto e equipe possuem atributo Pas? Mas a especificao diz!!!! ???? N modelos conceituais para um cenrio Modelo tem APENAS o que est na especificao Restries, excees, peculiaridades, viagem na maionese: OUTRO MODELO Pecar por excesso x Pecar por falta Modelo Relacional (3 rd ed: 7.1-7.2; 5 th ed: 5.1-5.2) 1. Introduo 2. Conceitos do Modelo Relacional 3. Restries de Integridade Bsicas 4. Esquema do BD Relacional 5. Restries de Integridade do Esquema 6. Operaes sobre Relaes 7. Violaes de Restries Requisitos de Dados Independente Esquema Conceitual Modelo de dados de alto nvel Processo de Projeto de Bancos de Dados DCC011 - 2009/1 - profa. Mirella 60 Independente de SGBD SGBD Especfico Esquema Lgico (Conceitual) em um modelo de dados de um SGBD especfico 1. Introduo O modelo relacional representa um banco de dados como um conjunto de relaes Informalmente uma relao = uma tabela de valores DCC011 - 2009/1 - profa. Mirella 61 uma relao = uma tabela de valores cada linha representa uma coleo de dados relacionados cada linha de uma tabela representa um fato que tipicamente corresponde a uma entidade ou relacionamento do mundo real 2. Conceitos do Modelo Relacional Linhas de uma relao (tabela) = tuplas Cabealho de cada coluna = atributo Conjunto de valores que pode aparecer em cada coluna = domnio DCC011 - 2009/1 - profa. Mirella 62 Figura 7.1 Os atributos e as tuplas de uma relao ALUNO. As tuplas de uma relao no so ordenadas (entre elas) Caractersticas de uma Relao DCC011 - 2009/1 - profa. Mirella 63 Registros em um arquivo so ordenados de acordo com a posio em que so armazenados no disco Figura 7.2 A relao ALUNO da Figura 7.1 com uma ordenao diferente das tuplas. Uma tupla uma lista ordenada de valores O valor de cada atributo em uma tupla atmico Atributos compostos e multivalorados no so permitidos Caractersticas de uma Relao DCC011 - 2009/1 - profa. Mirella 64 permitidos O valor especial null utilizado para representar valores no conhecidos ou no aplicveis a uma determinada tupla Um esquema de relao pode ser visto como uma declarao ou assero Esquema de relao = Predicado Valores em cada tupla satisfazem o predicado 3. Restries de Integridade Bsicas Restries de domnio Especificam que o valor de cada atributo A de uma relao deve ser um valor atmico do domnio dom(A) DCC011 - 2009/1 - profa. Mirella 65 do domnio dom(A) Restries de Integridade Restries de chave Um esquema de relao pode ter mais de uma chave chaves candidatas Dentre as chaves candidatas de um esquema de relao, uma delas indicada como chave primria e as demais DCC011 - 2009/1 - profa. Mirella 66 uma delas indicada como chave primria e as demais constituem as chaves alternativas Figura 7.4 A relao CARRO com duas chaves candidatas: NumeroLicenca e NumeroChassi. Restries de Integridade Restries em valores null Especifica se a um atributo permitido ter valores null Exemplo: todo Aluno deve ter um nome vlido, DCC011 - 2009/1 - profa. Mirella 67 Exemplo: todo Aluno deve ter um nome vlido, no-null 4. Esquema de um BD Relacional Um esquema de BD relacional S define: um conjunto de esquemas de relao R = {R 1 , R 2 , ..., R n }, e um conjunto de restries de integridade I DCC011 - 2009/1 - profa. Mirella 68 um conjunto de restries de integridade I S = (R, I) Esquema de um BD Relacional DCC011 - 2009/1 - profa. Mirella 69 Figura 7.5 Diagrama para o esquema do banco de dados relacional EMPRESA. 5. Restries de Integridade do Esquema Outras restries alm das restries de domnio e de chave Restrio de integridade de entidade DCC011 - 2009/1 - profa. Mirella 70 Restrio de integridade de entidade Nenhum componente de uma chave primria pode ser nulo Restries de Integridade Restrio de integridade referencial Usada para manter a consistncia entre tuplas de duas relaes Uma tupla em uma relao que se refere DCC011 - 2009/1 - profa. Mirella 71 Uma tupla em uma relao que se refere a outra relao deve referenciar uma tupla existente nesta outra relao Aparecem devido aos relacionamentos entre entidades Restries de Integridade Restrio de integridade referencial Seja FK um conjunto de atributos de um esquema de relao R 1 definido sobre o mesmo domnio dos atributos da chave DCC011 - 2009/1 - profa. Mirella 72 mesmo domnio dos atributos da chave primria PK de outro esquema R 2 . Ento, para qualquer tupla t 1 de R 1 : t 1 [FK] = t 2 [PK], onde t 2 uma tupla de R 2 ou t 1 [FK] nulo DCC011 - 2009/1 - profa. Mirella 73 Figura 7.7 Restries de integridade referencial exibidas no esquema de um banco de dados relacional EMPRESA. Notao NomeTabelaPrincipal Chave Atributo 1 Atributo n DCC011 - 2009/1 - profa. Mirella 74 NomeTabelaReferenciada Chave Atributo 1 Atributo n A restrio de integridade referencial pode ser expressa pela notao R 1 [FK] R 2 [PK], onde PK a chave primria de R 2 e FK a chave Restries de Integridade DCC011 - 2009/1 - profa. Mirella 75 onde PK a chave primria de R 2 e FK a chave estrangeira de R 1 Exemplos: EMPLOYEE[DNO] DEPARTMENT[DNUMBER] WORKS_ON[ESSN] EMPLOYEE[SSN] WORKS_ON[PNO] PROJECT[PNUMBER] 6. Operaes sobre Relaes As operaes sobre um BD relacional podem ser classificadas em: Operaes de recuperao (consulta) Operaes de atualizao DCC011 - 2009/1 - profa. Mirella 76 Operaes de atualizao (sobre tuplas): Insero (insert) Remoo (delete) Modificao (update) Operaes sobre Relaes Insero (insert) Adiciona uma nova tupla (ou vrias) em uma relao Remoo (delete) DCC011 - 2009/1 - profa. Mirella 77 Remoo (delete) Remove uma tupla da relao Modificao (update) Altera os dados de uma tupla Em qualquer operao, a integridade da base de dados relacional deve ser mantida 7. Violao de Restries Restries de integridade no podem ser violadas!!! Insero Restrio de Domnio: valor fora do domnio DCC011 - 2009/1 - profa. Mirella 78 Restrio de Domnio: valor fora do domnio Restrio de Chave: valor j existe Restrio de integridade de entidade: se chave for null Restrio de integridade referencial: se chave estrangeira referencia tupla inexistente Ao default: rejeitar insero (com explicao) Exemplos Empregado Nome IM Sobrenome CPF DataNasc Endereo Salrio Supervisor Depto Departamento NomeD NumeroDep CPFGer DataInicioGer Inserir <Mirella, M, Moro, 1234567890, 1960-04-05, 6347 Whatever, 28000, nulo, 4> em Empregado DCC011 - 2009/1 - profa. Mirella 79 Inserir <Cecilia, F, Kolonsky, nulo, 1960-04-05, 6347 Whatever, 28000, 12312312345, 4> em Empregado Inserir <Alicia, J, Zelaya, 1234567890, 1960-04-05, 9281 Whatever, 28000, 1234567890, 6> em Empregado 6347 Whatever, 28000, nulo, 4> em Empregado Violao de Restries Remoo Tupla excluda referenciada por chaves estrangeiras Ao default: bloqueia/rejeitar a remoo (com explicao) DCC011 - 2009/1 - profa. Mirella 80 (com explicao) OUTRAS OPES???? Propagar remoo de tuplas que violem uma restrio de integridade referencial Efeito cascata Modificar o valor da chave estrangeira para nulo Violao de Restries Modificao Modificar o valor de um atributo que no chave primria ou estrangeira no causa problemas (se o valor for do domnio, e, se for null, que este valor seja permitido) DCC011 - 2009/1 - profa. Mirella 81 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 Opes de Remoo da RIR A cada RIR R 1 [FK] R 2 [PK] possvel associar uma opo de remoo que especifica como a remoo de uma tupla de R 2 executada em relao a R 1 As opes de remoo possveis so: DCC011 - 2009/1 - profa. Mirella 82 bloqueio propagao substituio por nulos Notao: R 1 [FK] R 2 [PK], onde op {b, p, n} op DCC011 - 2009/1 - profa. Mirella 83 EXERCCIO: adicionar as opes de remoo s chaves estrang. bloqueio propagao substituio por nulos n nn n p pp p p pp p b bb b b bb b b bb b b bb b DCC011 - 2009/1 - profa. Mirella 84 Restries de integridade referencial com opes de remoo p pp p b bb b bloqueio propagao substituio por nulos 1. Formula 1 Deseja-se projetar uma base de dados que mantenha resultados de corridas de Frmula 1. A base de dados deve manter informaes sobre as equipes (cdigo, nome e pas), bem como sobre os pilotos que pertencem a cada equipe (equipe a que pertence, cdigo, nome e pas). Os pases so identificados por uma sigla e a base de dados deve conter o nome de cada pas. Tambm necessrio armazenar dados sobre os circuitos (cdigo, nome e pas). Para cada corrida realizada no circuito, necessrio saber a data em que ocorreu, a durao em minutos e a posio que cada piloto obteve na corrida. DCC011 - 2009/1 - profa. Mirella 85 piloto obteve na corrida. Pais(SiglaPais, NomePais) Equipe(CodEq, NomeEq, SiglaPais) SiglaPais referencia Pais Piloto(CodPil, NomePil, CodEq, SiglaPais) CodEq referencia Equipe SiglaPais referencia Pais Ciruito(CodCirc, NomeCirc, SiglaPais) SiglaPais referencia Pais Corrida (CodCirc, Data, Tempo) CodCirc referencia Circuito PosPilotoCorrida(CodCirc, Data, CodPil, Posicao) CodCirc, Data referencia Corrida CodPil referencia Piloto Pas Equipe Piloto Circuito Corrida PosPilotoCorrida 2. Agncia Viagens Uma agncia de viagens resolveu montar uma base de dados com informaes sobre vos das companhias de aviao das quais vende bilhetes. A agncia atende vrias companhias de aviao, cada qual identificada por uma sigla (por exemplo, GLO) e tendo um nome (por exemplo, Gol). Cada companhia possui vrios vos. Um vo identificado por uma sigla (por exemplo, GLO0982) que inclui a sigla da companhia responsvel. Cada vo sai de um aeroporto e tem como destino outro aeroporto. Os aeroportos so igualmente identificados por uma sigla (por exemplo CNF) e tm um nome (por exemplo Belo Horizonte). Cada vo tem um horrio de sada e um horrio de chegada. H alguns vos compartilhados. Um vo compartilhado um vo de uma companhia, mas que usa, na realidade, um vo de outra companhia. Por exemplo, o vo JJ4598 da TAM no existe fisicamente, mas utiliza o vo RG2324 da Varig. Para vos compartilhados necessrio conhecer o vo que eles usam. DCC011 - 2009/1 - profa. Mirella 86 mas utiliza o vo RG2324 da Varig. Para vos compartilhados necessrio conhecer o vo que eles usam. Companhia (SiglaCia, NomeCia) Voo(SiglaCia, NoVoo, SiglaAeroSaida, SiglaAeroDestino, HoraSaida, HoraChegada) SiglaAeroSaida referencia Aeroporto SiglaAeroDestino referencia Aeroporto SiglaCia referencia Companhia Aeroporto(SiglaAero, NomeAero) VooCompart(SiglaCiaCompart, NoVooCompart, SiglaCia, NoVoo) (SiglaCia, NoVoo) referencia Voo Cia Vo Aeroporto VooCompart 3. Artigos Publicados A SBC deseja manter uma base de dados com artigos publicados pelos pesquisadores brasileiros. Para cada pesquisador, necessrio conhecer seu nome e a instituio a qual ele est vinculado. O pesquisador identificado pelo seu CIC. Cada instituio tem um cdigo que a identifica e um nome. Adicionalmente, necessrio conhecer os artigos publicados por cada autor. Para cada artigo, necessrio saber seu ttulo, o veculo de publicao e a pgina inicial e final em que aparece o artigo dentro do veculo. Veculos de publicao so, por exemplo, peridicos especializados ou anais de congressos. Para cada veculo de publicao, necessrio conhecer seu ttulo e local em que foi publicado. Tanto veculos de publicao, quanto artigos tm um cdigo numrico que os identifica. DCC011 - 2009/1 - profa. Mirella 87 de publicao, quanto artigos tm um cdigo numrico que os identifica. Instituicao (CodInst, NomeInst) Pesquisador (CIC, NomePesq, CodInst) CodInst referencia Instituicao Artigo(CodArt, TituloArt, PagInic, PagFim, CodVeic) CodVeiculo referencia Veiculo Veiculo(CodVeic, TituloVeic, LocalVeic) ArtigoPesquisador (CodPesqu, CodArt) CIC referencia Pesquisador CodArt referencia Artigo Instituio Pesquisador ArtigoPesquis Artigo Veculo Exerccio 1 A figura a seguir apresenta uma entidade e respectivos atributos, muitos deles opcionais e um multivalorado. Considere que h dois tipos de clientes, pessoas fsicas e pessoas jurdicas. Pessoas fsicas possuem cdigo, CIC, nome, sexo (opcional), data de nascimento (opcional) e telefones (opcionais). Pessoas jurdicas possuem cdigo, CGC, razo social e telefones (opcionais). Apresente um diagrama ER que modele DCC011 - 2009/1 - profa. Mirella 88 (opcionais). Apresente um diagrama ER que modele mais precisamente esta realidade. CLIENTE nome cdigo dataNasc telefone CIC CGC razoSocial sexo Exerccio 1 A figura a seguir apresenta uma entidade e respectivos atributos, muitos deles opcionais e um multivalorado. Considere que h dois tipos de clientes, pessoas fsicas e pessoas jurdicas. Pessoas fsicas possuem cdigo, CIC, nome, sexo (opcional), data de nascimento (opcional) e telefones (opcionais). Pessoas jurdicas possuem cdigo, CGC, razo social e telefones (opcionais). Apresente um diagrama ER que modele mais precisamente esta realidade. cdigo DCC011 - 2009/1 - profa. Mirella 89 CLIENTE sexo dataNasc numero CGC CGC razoSocial TELEFONE PJURDICA PFSICA nome Exerccio 2 Construa um diagrama ER (entidades, relacionamentos e cardinalidades) para a administradora de imveis: A administradora trabalha tanto com administrao de condomnios quanto com a administrao de aluguis DCC011 - 2009/1 - profa. Mirella 90 aluguis A empresa administra condomnios formados por unidades condominiais Cada unidade condominial de propriedade de uma ou mais pessoas. Uma pessoa pode possuir diversas unidades. Cada unidade pode estar alugada para no mximmo uma pessoa. Uma pessoa pode alugar diversas unidades Exerccio 2 Condomnio composto 1 n DCC011 - 2009/1 - profa. Mirella 91 Unidade Pessoa propriedade aluguel n n n 1 Exerccio 3 O diagrama a seguir envolve clientes e contas. Clientes podem ter vrias contas e contas podem ser conjuntas de vrios clientes. Ns associamos cada cliente com um conjunto de contas, e contas so membros de um ou mais conjuntos. Critique o seguinte modelo. Que modificaes podem ser realizadas? Endereo nome DCC011 - 2009/1 - profa. Mirella 92 CjtoContas Pcpal nome numero balano Cliente Conta Endereo endereo 1, 1 1, 1 1, 1 1, n 1, 1 1, n Exerccio 3 CjtoContas Endereo Pcpal nome numero balano Cliente Conta Endereo endereo 1, 1 1, 1 1, 1 1, n 1, 1 1, n DCC011 - 2009/1 - profa. Mirella 93 Endereo apenas um simples endereo, poderia ser um atributo de Cliente. Se o banco guardasse vrios endereos para o cliente, da poderia ser entidade, mas a cardinalidade no seria 1. A entidade CjtoContas desnecessria. Cada cliente tem um nico conjunto com as suas Contas. Conectar direto Cliente-Conta faz mais sentido, apenas necessrio mudar a cardinalidade para 1-N Exerccio 4 Para o seguinte esquema relacional parcial, identifique as chaves primrias e estrangeiras Aluno (codAluno, nome, curso) DCC011 - 2009/1 - profa. Mirella 94 Aluno (codAluno, nome, curso) Curso (codCurso, nome) Disciplina (codDisc, nome, creditos, depto) Curriculo (curso, disc, obrigatria-opcional) Conceito (aluno, disc, ano-semestre, conceito) Departamento (codDepto, nome) Exerccio 4 Aluno (codAluno, nome, curso) curso referencia Curso Curso (codCurso, nome) Disciplina (codDisc, nome, creditos, depto) depto referencia Departamento DCC011 - 2009/1 - profa. Mirella 95 depto referencia Departamento Curriculo (curso, disc, obrigatria-opcional) curso referencia Curso disc referencia Disciplina Conceito (aluno, disc, ano-semestre, conceito) aluno referencia Aluno disc referencia Disciplina Departamento (codDepto, nome) Exerccio 5 Uma imobiliria deseja montar uma base de dados contendo os dados de imveis que tem para vender ou que j vendeu. Na base de dados somente estaro armazenados dados de apartamentos residenciais em edifcios. Cada edifcio identificado por um cdigo de 5 dgitos e necessrio saber seu nome, seu endereo, o bairro em que est localizado e o ano de construo, bem como os apartamentos que esto a venda ou j foram vendidos. Para cada apartamento, alm de saber se ele j foi ou no vendido, necessrio conhecer seu preo, sua rea total, sua rea real, bem como o seu nmero identificador dentro do prdio. Para cada apartamento necessrio conhecer os quartos que o compe. DCC011 - 2009/1 - profa. Mirella 96 Para cada apartamento necessrio conhecer os quartos que o compe. Cada quarto tem um nmero que o identifica dentro do apartamento, tem uma descrio (como "sala"ou "cozinha") e necessrio conhecer sua rea. Alguns apartamentos esto relacionados a uma ou mais vagas de estacionamento. Uma vaga tem um nmero que a identifica dentro do prdio (ateno, no um nmero que identifica a vaga dentro do apartamento). Para cada vaga necessrio saber sua rea, quantos veculos nela cabem e o seu tipo (se coberta ou no). Projete uma base de dados relacional que armazena os dados acima sem redundncia de dados. Enumere as tabelas, suas colunas, as chaves primrias e a as chaves estrangeiras. No devem ser criadas colunas artificiais, alm das apresentadas no enunciado. Apresente o esquema na notao textual vista em aula. Exerccio 5 Edificio (CodEd, NomeEd, EnderecoEd, BairroEd, AnoConstrEd) Apartamento (CodEd, NumeroAp, VendidoAp, PrecoAp, AreaTotalAp, AreaRealAp) (CodEd) referencia Edificio Quarto (CodEd, NumeroAp, NumeroQuarto, DCC011 - 2009/1 - profa. Mirella 97 Quarto (CodEd, NumeroAp, NumeroQuarto, DescricaoQuarto, AreaQuarto) (CodEd, NumeroAp) referencia Apartamento VagaEst (CodEd, NoVaga, NoAp, AreaVaga, NoCarrosVaga, CobertaVaga) (CodEd, NumeroAp) referencia Apartamento
Aspectos Fitossociológicos Do Bosque Rodrigues Alves - Jardim Botânico Da Amazônia, 15 Hectares de Floresta Preservada em Meio Ao Espaço Urbano Da Cidade de Belém PDF