Banco de dados Modelo relacional Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina – IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/bcd 20 de fevereiro de 2017 1/22 Modelos de banco de dados Modelo de banco de dados é uma descrição dos tipos de informações que estão armazenadas em um banco de dados Modelo é construı́do por meio de uma linguagem de modelagem de dados, que pode ser textual ou gráfica A representação de um modelo de dados por meio de uma linguagem de modelagem de dados é chamada de esquema de banco de dados 2/22 Modelos de banco de dados Modelo conceitual indica quais dados podem aparecer em um banco de dados, mas não indica como esses estão armazenados pelo SGBD Descrição do banco de dados de forma independente de implementação em um SGBD 3/22 Modelos de banco de dados Modelo conceitual indica quais dados podem aparecer em um banco de dados, mas não indica como esses estão armazenados pelo SGBD Descrição do banco de dados de forma independente de implementação em um SGBD Modelagem entidade-relacionamento (ER) é a técnica mais difundida de modelagem conceitual 3/22 Modelo lógico Modelo lógico é a descrição de um banco de dados no nı́vel de abstração visto pelo usuário do SGBD Em um SGBD relacional os dados estão organizados na forma de tabelas 4/22 Modelo lógico Modelo lógico é a descrição de um banco de dados no nı́vel de abstração visto pelo usuário do SGBD Em um SGBD relacional os dados estão organizados na forma de tabelas 4/22 A modelagem é necessária? Desejamos desenvolver um Sistema acadêmico e precisamos armazenar dados sobre Alunos Funcionários Cursos Campus Quantas tabelas precisarı́amos? Quais seriam as colunas de cada tabela? 5/22 A modelagem é necessária? Desejamos desenvolver um Sistema acadêmico e precisamos armazenar dados sobre Alunos Funcionários Cursos Campus Quantas tabelas precisarı́amos? Quais seriam as colunas de cada tabela? Práticas da Engenharia de Software Envolvimento do usuário na especificação aumenta a qualidade do software gerado Modelos conceituais descrevem a organização e são mais simples de entender por usuários leigos em Informática 5/22 Projeto de banco de dados Fases de um projeto 1 Modelagem conceitual Captura necessidades da organização em termos de armazenamento e de forma independente da implementação Diagrama Entidade-Relacionamento (ER) é normalmente usado 2 Projeto lógico Transforma modelo conceitual em uma implementação dependente do SGBD P.e. Criação das tabelas em um banco de dados relacional 3 Projeto fı́sico São feitos ajustes para melhorar o desempenho do banco de dados, porém sem influenciar as funcionalidades Geralmente trata-se de um processo contı́nuo, também chamado de sintonia do banco de dados (tuning ) 6/22 Entidades Entidade é uma coisa ou objeto do mundo real que é distinguı́vel de todos os outros objetos Conjunto de entidades reúne entidades do mesmo tipo que compartilham as mesmas propriedades ou atributos 7/22 Atributos Atributos descrevem as entidades Para cada atributo da entidade existe um conjunto de valores permitidos, chamado de domı́nio Valor nulo (NULL) é membro de qualquer domı́nio e indica que o valor é desconhecido ou não existe Elipse dupla indica que o atributo permite múltiplos valores 8/22 Atributos Identifique os atributos da entidade Livro 8/22 Superchave Superchave é um conjunto de atributos que pode ser usado para identificar unicamente uma entidade Superchaves possı́veis: 9/22 Superchave Superchave é um conjunto de atributos que pode ser usado para identificar unicamente uma entidade Superchaves possı́veis: {matricula} {matricula, nome} {matricula, cpf }, etc. 9/22 Superchave Superchave é um conjunto de atributos que pode ser usado para identificar unicamente uma entidade Superchaves possı́veis: {matricula} {matricula, nome} {matricula, cpf }, etc. Identifique as superchaves possı́veis para a entidade Livro 9/22 Chave Chave é uma superchave mı́nima (conjunto com menor número de elementos) Superchave da qual não se pode remover quaisquer atributos e ainda manter a restrição de identificar unicamente uma entidade Quando houver mais de uma chave, essas são chamadas de chave candidata Chaves candidatas possı́veis: 10/22 Chave Chave é uma superchave mı́nima (conjunto com menor número de elementos) Superchave da qual não se pode remover quaisquer atributos e ainda manter a restrição de identificar unicamente uma entidade Quando houver mais de uma chave, essas são chamadas de chave candidata Chaves candidatas possı́veis: {matricula}, {cpf } 10/22 Chave Chave é uma superchave mı́nima (conjunto com menor número de elementos) Superchave da qual não se pode remover quaisquer atributos e ainda manter a restrição de identificar unicamente uma entidade Quando houver mais de uma chave, essas são chamadas de chave candidata Chaves candidatas possı́veis: {matricula}, {cpf } Identifique as chaves candidatas possı́veis para a entidade Livro 10/22 Chave primária Chave primária (primary key – pk) é uma chave candidata escolhida como principal meio para identificar uma entidade A representação de uma chave primária no diagrama ER é feita sublinhando o atributo escolhido 11/22 Chave estrangeira Uma tabela t1 pode incluir entre seus atributos a chave primária da tabela t2 e assim esse atributo é chamado de chave estrangeira (foreign key – fk) t1 é chamada de tabela referenciadora t2 é chamada de tabela referenciada Restrição de integridade referencial Dada qualquer linha da tabela t1 , deverá haver alguma linha na tabela t2 tal que o valor da chave estrangeira t1FK seja o mesmo que o valor da chave primária t2PK 12/22 Chaves 13/22 Relacionamentos Relacionamento é uma associação entre várias Entidades Losango representa uma conjunto de relacionamentos 14/22 Relacionamentos Relacionamento é uma associação entre várias Entidades Losango representa uma conjunto de relacionamentos 14/22 Relacionamentos Definição matemática (teoria dos conjuntos) Dados dois conjuntos, A e B o produto cartesiano desses conjuntos (A × B) é o conjunto com todos os pares de ambos conjuntos 15/22 Relacionamentos Definição matemática (teoria dos conjuntos) Dados dois conjuntos, A e B o produto cartesiano desses conjuntos (A × B) é o conjunto com todos os pares de ambos conjuntos Relacionamento é um subconjunto de A × B 15/22 Relacionamentos Faz é um relacionamento, logo é um subconjunto de Aluno × Curso, logo: Uma entidade pode aparecer 0, 1 ou mais vezes no relacionamento A combinação de entidades (p.e. João – Tele) só pode aparecer uma única vez 16/22 Relacionamentos Faz é um relacionamento, logo é um subconjunto de Aluno × Curso, logo: Uma entidade pode aparecer 0, 1 ou mais vezes no relacionamento A combinação de entidades (p.e. João – Tele) só pode aparecer uma única vez 16/22 Relacionamentos Faz é um relacionamento, logo é um subconjunto de Aluno × Curso, logo: Uma entidade pode aparecer 0, 1 ou mais vezes no relacionamento A combinação de entidades (p.e. João – Tele) só pode aparecer uma única vez Identifique um relacionamento entre a entidade Livro e uma outra a ser escolhida por você 16/22 Relacionamentos: Atributos Relacionamentos podem possuir atributos 17/22 Relacionamentos: Atributos Relacionamentos podem possuir atributos A chave de um relacionamento pode ser constituı́da pela união das chaves primárias das entidades participantes 17/22 Restrições: Cardinalidade A restrição de cardinalidade indica quantas vezes uma dada entidade poderá aparecer em um relacionamento Um professor pode ser orientador de quantos alunos? Um aluno pode ter quantos orientadores? Co-orientador é um outro papel 18/22 Restrições: Cardinalidade 19/22 Restrições: Cardinalidade Um-para-um: Um professor pode orientar no máximo um Aluno Um Aluno pode ser orientado por no máximo um Professor 19/22 Restrições: Cardinalidade Um-para-muitos: Um professor pode orientar muitos Alunos Um Aluno pode ser orientado por no máximo um Professor 19/22 Restrições: Cardinalidade Muitos-para-um: Um professor pode orientar no máximo um Aluno Um Aluno pode ser orientado por muitos Professores 19/22 Restrições: Cardinalidade Muitos-para-muitos: Um professor pode orientar muitos Alunos Um Aluno pode ser orientado por muitos Professores 19/22 Restrições: Cardinalidade Exemplos 1 Alunos e Disciplinas Cada aluno pode fazer várias disciplinas e cada disciplina pode ter vários alunos 2 Sala de cinema e Filme Cada sala de cinema para exibir diversos filmes e cada filme pode ser exibido em diversas salas de cinemas 3 Hotel e hóspedes O quarto de um hotel pode ser reservado por diversos hóspedes e um hóspede pode reservar diversos quartos 20/22 Restrições: Cardinalidade Exemplos 1 Alunos e Disciplinas Cada aluno pode fazer várias disciplinas e cada disciplina pode ter vários alunos 2 Sala de cinema e Filme Cada sala de cinema para exibir diversos filmes e cada filme pode ser exibido em diversas salas de cinemas 3 Hotel e hóspedes O quarto de um hotel pode ser reservado por diversos hóspedes e um hóspede pode reservar diversos quartos Apresente a cardinalidade para o relacionamento entre a entidade Livro e a outra entidade que você escolheu no exercı́cio anterior (lâmina 16) 20/22 Restrições: Cardinalidade Exercı́cio 7.1 do livro Sistemas de banco de dados Desenhe um diagrama E-R para uma seguradora de automóveis em que cada cliente possua um ou mais carros. Cada carro tem associado a ele zero ou mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento tem uma data de vencimento associada, além da data em que o pagamento foi recebido. 21/22 Restrições: Cardinalidade Exercı́cio 7.1 do livro Sistemas de banco de dados Desenhe um diagrama E-R para uma seguradora de automóveis em que cada cliente possua um ou mais carros. Cada carro tem associado a ele zero ou mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento tem uma data de vencimento associada, além da data em que o pagamento foi recebido. 1 Encontrar as entidades (normalmente os substantivos) 21/22 Restrições: Cardinalidade Exercı́cio 7.1 do livro Sistemas de banco de dados Desenhe um diagrama E-R para uma seguradora de automóveis em que cada cliente possua um ou mais carros. Cada carro tem associado a ele zero ou mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento tem uma data de vencimento associada, além da data em que o pagamento foi recebido. 1 Encontrar as entidades (normalmente os substantivos) 21/22 Restrições: Cardinalidade Exercı́cio 7.1 do livro Sistemas de banco de dados Desenhe um diagrama E-R para uma seguradora de automóveis em que cada cliente possua um ou mais carros. Cada carro tem associado a ele zero ou mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento tem uma data de vencimento associada, além da data em que o pagamento foi recebido. 1 Encontrar as entidades (normalmente os substantivos) 2 Encontrar os relacionamentos (normalmente os verbos) 21/22 Restrições: Cardinalidade Exercı́cio 7.1 do livro Sistemas de banco de dados Desenhe um diagrama E-R para uma seguradora de automóveis em que cada cliente possua um ou mais carros. Cada carro tem associado a ele zero ou mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento tem uma data de vencimento associada, além da data em que o pagamento foi recebido. 1 Encontrar as entidades (normalmente os substantivos) 2 Encontrar os relacionamentos (normalmente os verbos) 21/22 Restrições: Cardinalidade Exercı́cio 7.1 do livro Sistemas de banco de dados Desenhe um diagrama E-R para uma seguradora de automóveis em que cada cliente possua um ou mais carros. Cada carro tem associado a ele zero ou mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento tem uma data de vencimento associada, além da data em que o pagamento foi recebido. 1 Encontrar as entidades (normalmente os substantivos) 2 Encontrar os relacionamentos (normalmente os verbos) 3 Encontrar os atributos (normalmente ficam explı́citos) 21/22 Restrições: Cardinalidade Exercı́cio 7.1 do livro Sistemas de banco de dados Desenhe um diagrama E-R para uma seguradora de automóveis em que cada cliente possua um ou mais carros. Cada carro tem associado a ele zero ou mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento tem uma data de vencimento associada, além da data em que o pagamento foi recebido. 1 Encontrar as entidades (normalmente os substantivos) 2 Encontrar os relacionamentos (normalmente os verbos) 3 Encontrar os atributos (normalmente ficam explı́citos) 21/22 Restrições: Cardinalidade Exercı́cio 7.1 do livro Sistemas de banco de dados 21/22 Restrições: Cardinalidade Exercı́cio 7.1 do livro Sistemas de banco de dados 21/22 Aulas baseadas em Henry F.; Sudarshan Silberschatz, Abraham; Korth. Sistemas de banco de dados. 6a. Edição - Editora Campus, 2012 Heuser, C. A. Projeto de banco de dados 6a. Edição - Editora Bookman, 2009 Sullivan, D. G. Computer Science – Harvard University 22/22