Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 11 Disciplina Banco de Dados (BD)Disciplina Banco de Dados (BD) 1616ªª -- 1717ªª Aulas Aulas -- Integridade I Integridade I -- Integridade de identidadeIntegridade de identidade2013/1 2013/1 -- CCON4A CCON4A -- ENGN6CENGN6C IESB SulIESB Sul 2 Planejamento - BD I - 2013/1 - (previsão) D S T Q Q S S D S T Q Q S S 1 2 1 3 4 5 6 7 8 9 2 3 4 5 6 7 8 10 11 12 13 14 15 16 9 10 11 12 13 14 15 17 18 19 20 21 22 23 16 17 18 19 20 21 22 24 25 26 27 28 23 24 25 26 27 28 29 30 D S T Q Q S S D S T Q Q S S 1 2 1 2 3 4 5 6 3 4 5 6 7 8 9 7 8 9 10 11 12 13 10 11 12 13 14 15 16 14 15 16 17 18 19 20 17 18 19 20 21 22 23 21 22 23 24 25 26 27 24 25 26 27 28 29 30 28 29 30 31 31 D S T Q Q S S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 D S T Q Q S S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 FEVEREIRO MARÇO ABRIL MAIO JUNHO JULHO LEGENDA Feriado / Recesso Aula Lançamento (P1, P2 e Subst) Início / Término Aulas Avaliação (P1, P2 e Subst) Edad 2 3 Banco de Dados (BD) Para assistir a aula: Para assistir a aula: éé necessnecessáário estar que o aluno esteja rio estar que o aluno esteja matriculado na disciplina matriculado na disciplina (deve estar na lista de chamada)(deve estar na lista de chamada) procurar a Coordenaprocurar a Coordenaçção do Curso ão do Curso para a solupara a soluçção de problemasão de problemas 4 LeiamLeiam CCóódigo de digo de ÉÉticatica ResoluResoluçção Conselho Superior não Conselho Superior nºº 02/201002/2010 de 12 de agosto de 2010de 12 de agosto de 2010 (dispon(disponíível na plataforma "vel na plataforma "BlackboardBlackboard")") Banco de Dados 3 5 BD Banco de Dados EE--mail para receber o material enquanto não mail para receber o material enquanto não estestáá dispondisponíível o site da disciplinavel o site da disciplina wpereira@cpovo.net BD - Enviar material 6 �� BIBLIOGRAFIABIBLIOGRAFIA �� Bibliografia bBibliografia báásica (ordem alfabsica (ordem alfabéética):tica): �� DATE, CHRISTOPHER JDATE, CHRISTOPHER J. . IntroduIntroduçção a Sistemas de Bancos ão a Sistemas de Bancos de Dadosde Dados. Rio de Janeiro: Campus, 2000. . Rio de Janeiro: Campus, 2000. �� HEUSER, Carlos AlbertoHEUSER, Carlos Alberto. . Projeto de banco de DadosProjeto de banco de Dados. 6.ed. . 6.ed. Porto Alegre: Porto Alegre: BookmanBookman, 2010, 2010 .. �� SILBERSCHATZ, Korth; SUDARSHANSILBERSCHATZ, Korth; SUDARSHAN. . Sistema de Banco Sistema de Banco de Dadosde Dados. 3. ed. São Paulo: Makron Books, 2005.. 3. ed. São Paulo: Makron Books, 2005. Banco de Dados (BD) 4 7 �� BIBLIOGRAFIABIBLIOGRAFIA �� Bibliografia complementar (ordem alfabBibliografia complementar (ordem alfabéética):tica): �� ELMASRI, R.; NAVATHE, S. BELMASRI, R.; NAVATHE, S. B. . Sistemas de Banco de DadosSistemas de Banco de Dados. 4. ed. São . 4. ed. São Paulo: Pearson Education do Brasil, 2005.Paulo: Pearson Education do Brasil, 2005. �� KROENKE, David MKROENKE, David M. . Banco de Dados: fundamentos, projeto e Banco de Dados: fundamentos, projeto e implementaimplementaççãoão. 6. ed. Rio de Janeiro: LTC, 1999.. 6. ed. Rio de Janeiro: LTC, 1999. �� MACHADO, Felipe Nery; ABREU, MauricioMACHADO, Felipe Nery; ABREU, Mauricio. . Projeto de Banco de Dados: Projeto de Banco de Dados: uma visão pruma visão prááticatica. 16. ed. São Paulo: . 16. ed. São Paulo: ÉÉrica, 2009.rica, 2009. �� MELO, Rubens NMELO, Rubens N. . Banco de Dados em AplicaBanco de Dados em Aplicaçções Clienteões Cliente--ServidorServidor. Rio . Rio de Janeiro: Infobook, 1997.de Janeiro: Infobook, 1997. �� SETZER, Valdemar W; SILVA, FlSETZER, Valdemar W; SILVA, Fláávio Soares Correavio Soares Correa. . Bancos de Dados: Bancos de Dados: aprenda o que são, melhore seu conhecimento, construa o seuaprenda o que são, melhore seu conhecimento, construa o seu. São Paulo: . São Paulo: Edgard BlEdgard Blüücher Ltda, 2005.cher Ltda, 2005. Banco de Dados (BD) 8 �� SITES PARA APROFUNDAMENTO E FERRAMENTAS:SITES PARA APROFUNDAMENTO E FERRAMENTAS: �� brModelo 2.0brModelo 2.0. . Ferramenta de modelagem de banco de dadosFerramenta de modelagem de banco de dados. Dispon. Disponíível vel em: <http://www.sis4.com/brmodelo>. Acesso em 29 jul. 2012.em: <http://www.sis4.com/brmodelo>. Acesso em 29 jul. 2012. �� DBDesigner 4DBDesigner 4. . Ferramenta de modelagem de banco de dadosFerramenta de modelagem de banco de dados. Dispon. Disponíível vel em: <http://fabforce.net/dbdesigner4/>. Acesso em 29 jul. 2012. em: <http://fabforce.net/dbdesigner4/>. Acesso em 29 jul. 2012. �� MySQLMySQL. . Sistema Gerenciador de Banco de Dados MySQLSistema Gerenciador de Banco de Dados MySQL. Dispon. Disponíível vel em: <http://www.mysql.com/>. Acesso em 29 jul. 2012. em: <http://www.mysql.com/>. Acesso em 29 jul. 2012. �� OracleOracle. . Sistema Gerenciador de Banco de Dados OracleSistema Gerenciador de Banco de Dados Oracle. Dispon. Disponíível em: vel em: <http://www.oracle.com/br/index.html/>. Acesso em 29 jul. 2012. <http://www.oracle.com/br/index.html/>. Acesso em 29 jul. 2012. �� Power DesignerPower Designer. . Ferramenta de modelagem de banco de dadosFerramenta de modelagem de banco de dados. dispon. disponíível vel em: em: <http://www.sybase.com/products/modelingdevelopment/powerdesigne<http://www.sybase.com/products/modelingdevelopment/powerdesigner>. r>. Acesso em Acesso em 29 jul. 2012.Acesso em Acesso em 29 jul. 2012. Banco de Dados (BD) 5 9 FIES 10 Plano de Ensino 6 11 Plano de Ensino 12 Banco de Dados Formem as equipes para o 2Formem as equipes para o 2°° TrabalhoTrabalho Equipes de Equipes de 0303 ou ou 0404 integrantesintegrantes 7 13 Roteiro da Apresentação �� IntroduIntroduççãoão �� Modelos de dadosModelos de dados �� Modelo RelacionalModelo Relacional �� RestriRestriçções de integridadeões de integridade �� Integridade de identidadeIntegridade de identidade 14 Roteiro da Apresentação �� IntroduIntroduççãoão �� Modelos de dadosModelos de dados �� Modelo RelacionalModelo Relacional �� RestriRestriçções de integridadeões de integridade �� Integridade de identidadeIntegridade de identidade 8 15 � Fases: Projeto de Banco de Dados Modelo conceitualModelo conceitual 16 Entidade associativa Generalização / Especialização Relacionamento identificador Atributo identificador Atributo Relacionamento Entidade SímboloConceito � Esquemas Gráfico Abordagem Entidade-Relacionamento 9 17 DATA LOTAÇÃO FILIAL COMPOSIÇÃO Código Nome Descrição Código Nome Obs (0, N) (1, N) (0, N) (1, 1) t CLIENTE CONSULTORIA Código (0, N) (0, 1) SUPERVISÃO SUPERVISORSUPERVISIONADO Descrição DEPARTAMENTO Código CIDADE Nome (0, N) NomeCIC PESSOA FÍSICA Razão Social CNPJ PESSOA JURÍDICA 1N POSSE N° Sequencia Número TELEFONE (1, 1)(0, N) NomeCódigo EMPREGADO Abordagem Entidade-Relacionamento 17 UTILIZAÇÃO 18 � Fases: Projeto de Banco de Dados Modelo conceitualModelo conceitual Modelo lógicoModelo lógico Esquema relacional Tipo_Produto (Codigo, Descricao) Produto (Codigo, Nome, Preco, Cod_Tipo) Cod_Tipo referencia Tipo_Produto) Esquema relacional Tipo_Produto (Codigo, Descricao) Produto (Codigo, Nome, Preco, Cod_Tipo) Cod_Tipo referencia Tipo_Produto) 10 19 Introdução � Modelos de dados Restrições de integridade Integridade de identidade Integridade referencial Modelo Lógico Modelo Relacional 20 Roteiro da Apresentação � Introdução � Modelos de dados � Modelo Relacional � Restrições de integridade � Integridade de identidade 11 21 �� consisteem uma consiste em uma colecoleçção de tabelasão de tabelas, cada qual com nome , cada qual com nome úúniconico �� a base de dados vista pelos usua base de dados vista pelos usuáários como um rios como um conjunto de tabelasconjunto de tabelas �� conjunto de tabelas conjunto de tabelas que representa os dados e a relaque representa os dados e a relaçção entre elesão entre eles Modelo relacional cod nome codEmp A1 XXXX 1111 A2 YYYYY 3333 B2 TTTT 4444 B1 KKKK 1111 Empresa Empregado Empresa Mundo real: Empresa Empregado Empresa Empregado Empresa Mundo real: EmpresaMundo real: Empresa codigo nome cpf 1111 JOSE 2113232 2222 MANUEL 3678912 3333 CARLOS 998750 4444 PEDRO 6754309 Empregado 22 � Princípios matemáticos: uma relação é um subconjunto de um produto cartesiano de uma lista de domínios Modelo relacional cod nome codEmp A1 XXXX 1111 A2 YYYYY 3333 B2 TTTT 4444 B1 KKKK 1111 Empresa Empregado Empresa Mundo real: Empresa Empregado Empresa Empregado Empresa Mundo real: EmpresaMundo real: Empresa codigo nome cpf 1111 JOSE 2113232 2222 MANUEL 3678912 3333 CARLOS 998750 4444 PEDRO 6754309 Empregado 12 23 �� RelaRelaçção ão ((princprincíípio matempio matemááticotico): subconjunto de um ): subconjunto de um produto cartesiano de uma lista de domproduto cartesiano de uma lista de domííniosnios Modelo relacional valores permitidos 23 1111 2222 3333 4444 codigo JOSE MANOEL CARLOS PEDRO nome Quais as possibilidades de combinação ? (produto cartesiano) 2113232 3678912 998750 6754309 cpf DOMÍNIO 24 valores permitidos atributos Relação (R) Tabela Tupla Linha atributoscodigo nome cpf 1111 JOSE 2113232 2222 MANOEL 3678912 3333 CARLOS 998750 4444 PEDRO 6754309 EMPREGADO �� RelaRelaçção ão ((princprincíípio matempio matemááticotico): subconjunto de um produto cartesiano de ): subconjunto de um produto cartesiano de uma lista de domuma lista de domííniosnios Modelo relacional D1 D2 D3 c1 c2 c3 24 Qual o grande problema ?? 13 25 �� Propriedades:Propriedades: �� cada linha cada linha éé uma uma tuplatupla �� não existe ordenamento de tuplasnão existe ordenamento de tuplas �� não existe ordenamento de colunasnão existe ordenamento de colunas �� não existem linhas duplicadasnão existem linhas duplicadas Modelo relacional Relação (R) Tabela Tupla Linha atributoscodigo nome cpf 1111 JOSE 2113232 2222 MANOEL 3678912 3333 CARLOS 998750 4444 PEDRO 6754309 EMPREGADO c1 c2 c3 25 26 Roteiro da Apresentação � Introdução � Modelos de dados � Modelo Relacional � Restrições de integridade � Integridade de identidade 14 27 �� RestriRestriçções de integridadeões de integridade �� RegrasRegras: garantem que mudan: garantem que mudançças feitas no BD por usuas feitas no BD por usuáários rios autorizados não resultem em perda de consistência de dados.autorizados não resultem em perda de consistência de dados. �� Protegem o BD de danos acidentaisProtegem o BD de danos acidentais �� Garantia da manutenGarantia da manutençção das regras de negão das regras de negóóciocio. Ex:. Ex: �� Marido x MulherMarido x Mulher �� Quantidade mQuantidade mááximo de horas de um trabalhadorximo de horas de um trabalhador �� Disciplinas que um aluno pode freqDisciplinas que um aluno pode freqüüentarentar �� Um empregado pode trabalhar somente em uma filialUm empregado pode trabalhar somente em uma filial �� TiposTipos:: �� Integridade de identidadeIntegridade de identidade �� Integridade referencialIntegridade referencial Modelo relacional 28 Roteiro da Apresentação � Introdução � Modelos de dados � Modelo Relacional � Restrições de integridade � Integridade de identidade 15 29 �� Integridade de identidadeIntegridade de identidade �� Chaves: Chaves: �� superchavesuperchave �� chave candidatachave candidata �� chave primchave primááriaria �� chave alternativachave alternativa Modelo relacional 30 �� Superchave:Superchave: �� Conjunto de Conjunto de umum ouou mais atributosmais atributos que, tomado que, tomado coletivamentecoletivamente, permite , permite identificar unicamente uma entidadeidentificar unicamente uma entidade no conjunto de entidadesno conjunto de entidades. . �� Exemplo: Exemplo: codigocodigo �� O conceito de O conceito de superchave superchave não não éé suficiente. Se suficiente. Se KK éé uma uma superchavesuperchave, então , então qualquer qualquer superconjuntosuperconjunto de de KK tambtambéém m serseráá. . Exemplo: Exemplo: codigocodigo e e nomenome.. Integridade de identidade codigo nome cpf 1111 JOSE 2113232 2222 MANOEL 3678912 3333 CARLOS 998750 4444 PEDRO 6754309 EMPREGADO 16 31 �� Chaves candidata:Chaves candidata: �� conjunto conjunto mmíínimonimo de atributosde atributos (um ou mais) que, tomados (um ou mais) que, tomados coletivamentecoletivamente, permite , permite identificaridentificar de maneira de maneira úúnicanica uma uma entidadeentidade (ocorrência ou (ocorrência ou tuplatupla) em um conjunto de entidades) em um conjunto de entidades �� podepode--se ter vse ter váárias chaves candidatas em uma relarias chaves candidatas em uma relaçção ão (tabela).(tabela). �� qualquer qualquer superchavesuperchave que não tenha um subconjunto com que não tenha um subconjunto com outra outra superchavesuperchave Integridade de identidade 32 �� Chaves candidata:Chaves candidata: �� conjunto conjunto mmíínimonimo de atributosde atributos (um ou mais) que, tomados (um ou mais) que, tomados coletivamentecoletivamente, permite , permite identificaridentificar de maneira de maneira úúnicanica uma uma entidadeentidade (ocorrência ou (ocorrência ou tuplatupla) em um conjunto de entidades) em um conjunto de entidades �� avaliar exemplos (avaliar exemplos (certos e erradoscertos e errados):): �� codigocodigo �� nomenome �� cpfcpf �� codigocodigo, nome, nome �� codigocodigo, cpf, cpf �� nome, cpfnome, cpf �� codigocodigo, nome, cpf, nome, cpf Integridade de identidade codigo nome cpf 1111 JOSE 2113232 2222 MANOEL 3678912 3333 CARLOS 998750 4444 PEDRO 6754309 EMPREGADO 17 33 �� Chaves candidata:Chaves candidata: �� conjunto conjunto mmíínimonimo de atributosde atributos (um ou mais) que, tomados (um ou mais) que, tomados coletivamentecoletivamente, permite , permite identificaridentificar de maneira de maneira úúnicanica uma uma entidadeentidade (ocorrência ou (ocorrência ou tuplatupla) em um conjunto de entidades) em um conjunto de entidades �� Embora os atributos Embora os atributos codigocodigo e e nomenome juntos possam formar juntos possam formar uma uma superchavesuperchave para para EMPREGADOEMPREGADO, esta combina, esta combinaçção não ão não forma uma forma uma chave candidatachave candidata, uma vez que o atributo , uma vez que o atributo codigocodigo sozinho sozinho éé uma uma chave candidatachave candidata. . Integridade de identidade codigo nome cpf 1111 JOSE 2113232 2222 MANOEL 3678912 3333 CARLOS 998750 4444 PEDRO 6754309 EMPREGADO 34 �� Chave primChave primáária:ria: �� chave candidata escolhida pelo projetista de BDchave candidata escolhida pelo projetista de BD, como , como principal meio para identificaprincipal meio para identificaçção das tuplas (linha ou ão das tuplas (linha ou registro) de uma relaregistro) de uma relaçção (tabela).ão (tabela). �� observaobservaçção importante: ão importante: uma relauma relaçção (tabela) possui uma e ão (tabela) possui uma e somente uma chave primsomente uma chave primááriaria Integridade de identidade codigo nome cpf 1111 JOSE 2113232 2222 MANOEL 3678912 3333 CARLOS 998750 4444 PEDRO 6754309 EMPREGADO 18 35 ��Chave alternativa:Chave alternativa: �� toda toda chave candidatachave candidata que que nãonão foi foi selecionadaselecionada como chave como chave primprimáária. ria. Integridade de identidade codigo nome cpf 1111 JOSE 2113232 2222 MANOEL 3678912 3333 CARLOS 998750 4444 PEDRO 6754309 EMPREGADO 36 codigo nome cpf 1111 JOSE 2113232 2222 MANOEL CARLOS 998750 4444 PEDRO 6754309 EMPREGADO �� Importante:Importante: �� nenhum nenhum atributoatributo que participe de uma que participe de uma chave candidatachave candidata de de uma relauma relaçção (tabela) pode assumir ão (tabela) pode assumir valor nulovalor nulo (desconhecido (desconhecido ou não existe) ou não existe) Integridade de identidade 19 37 �� Importante:Importante: �� normalmente a normalmente a DDLDDL provê mecanismo para definir provê mecanismo para definir chaves chaves primprimááriasrias, assim como dispositivo para especificar se um , assim como dispositivo para especificar se um atributo pode ou não aceitar valores nulosatributo pode ou não aceitar valores nulos Integridade de identidade CREATE TABLE <CREATE TABLE <tabletable--namename>> ( <( <atributoatributo--nomenome> dom> domíínio [nio [NOT NULLNOT NULL]] [, <[, <atributoatributo--nomenome> dom> domíínio [nio [NOT NULLNOT NULL]]]] [, [, PRIMARY KEYPRIMARY KEY (atributo(atributo--nome (s)]nome (s)] [, [, UNIQUEUNIQUE (atributo(atributo--nome (s)];nome (s)]; CREATE TABLE EMPREGADOCREATE TABLE EMPREGADO ( ( codigocodigo NUMBER (4) NUMBER (4) NOT NULLNOT NULL , nome VARCHAR2 (20) NOT NULL, nome VARCHAR2 (20) NOT NULL , cpf VARCHAR2 (11) NOT NULL, cpf VARCHAR2 (11) NOT NULL , , PRIMARY KEYPRIMARY KEY ((codigocodigo)) , UNIQUE (cpf) );, UNIQUE (cpf) ); codigo nome cpf 1111 JOSE 2113232 2222 MANOEL 3678912 3333 CARLOS 998750 4444 PEDRO 6754309 EMPREGADO
Compartilhar