• Nenhum resultado encontrado

BCD29008 Banco de dados

N/A
N/A
Protected

Academic year: 2021

Share "BCD29008 Banco de dados"

Copied!
34
0
0

Texto

(1)

BCD29008 – Banco de dados

Modelo ER & Modelo Relacional

Prof. Emerson Ribeiro de Mello

Instituto Federal de Santa Catarina – IFSC campus S˜ao Jos´e

[email protected]

http://docente.ifsc.edu.br/mello/bcd

(2)

Modelagem: criar uma entidade ou relacionamento?

Fa¸ca um ER para registrar os produtos comprados por cada cliente

A modelagem acima atenderia os casos abaixo?

N˜ao!

Amanh˜a Jo˜ao gostaria de comprar um salgado Amanh˜a Jo˜ao gostaria de comprar uma ´agua

(3)

Modelagem: criar uma entidade ou relacionamento?

Fa¸ca um ER para registrar os produtos comprados por cada cliente

Pessoa Compra Produto

Jo˜ao Jo˜ao, ´Agua Agua´ Ana Ana, ´Agua Salgado Pedro Pedro, Salgado

Pedro, ´Agua

A modelagem acima atenderia os casos abaixo?

N˜ao!

Amanh˜a Jo˜ao gostaria de comprar um salgado Amanh˜a Jo˜ao gostaria de comprar uma ´agua

(4)

Modelagem: criar uma entidade ou relacionamento?

Fa¸ca um ER para registrar os produtos comprados por cada cliente

Pessoa Compra Produto

Jo˜ao Jo˜ao, ´Agua Agua´ Ana Ana, ´Agua Salgado Pedro Pedro, Salgado

Pedro, ´Agua

A modelagem acima atenderia os casos abaixo?

N˜ao!

Amanh˜a Jo˜ao gostaria de comprar um salgado Amanh˜a Jo˜ao gostaria de comprar uma ´agua

(5)

Modelagem: criar uma entidade ou relacionamento?

Fa¸ca um ER para registrar os produtos comprados por cada cliente

Pessoa Compra Produto

Jo˜ao Jo˜ao, ´Agua Agua´ Ana Ana, ´Agua Salgado Pedro Pedro, Salgado

Pedro, ´Agua

A modelagem acima atenderia os casos abaixo? N˜ao!

Amanh˜a Jo˜ao gostaria de comprar um salgado Amanh˜a Jo˜ao gostaria de comprar uma ´agua

(6)

Modelagem: criar uma entidade ou relacionamento?

Fa¸ca um ER para registrar os produtos comprados por cada cliente

Amanh˜a Jo˜ao gostaria de comprar um salgado Amanh˜a Jo˜ao gostaria de comprar uma ´agua

Jo˜ao Agua´ 2017-07-14 Ana Agua´ 2017-07-14 Pedro Salgado 2017-07-14 Jo˜ao Salgado 2017-07-15 Jo˜ao Agua´ 2017-07-15 3/21

(7)

Modelagem: criar uma entidade ou relacionamento?

Fa¸ca um ER para registrar os produtos comprados por cada cliente

Jo˜ao tomou sua ´agua e gostaria de comprar outra

A modelagem atual permitiria Jo˜ao fazer duas compras distintas de um mesmo produto em um mesmo dia? N˜ao! Jo˜ao Agua´ 2017-07-14 Ana Agua´ 2017-07-14 Pedro Salgado 2017-07-14 Jo˜ao Salgado 2017-07-15 Jo˜ao Agua´ 2017-07-15

(8)

Modelagem: criar uma entidade ou relacionamento?

Fa¸ca um ER para registrar os produtos comprados por cada cliente

Jo˜ao tomou sua ´agua e gostaria de comprar outra

A modelagem atual permitiria Jo˜ao fazer duas compras distintas de um mesmo produto em um mesmo dia? N˜ao!

Jo˜ao Agua´ 2017-07-14 Ana Agua´ 2017-07-14 Pedro Salgado 2017-07-14 Jo˜ao Salgado 2017-07-15 Jo˜ao Agua´ 2017-07-15 3/21

(9)

Modelagem: criar uma entidade ou relacionamento?

Fa¸ca um ER para registrar os produtos comprados por cada cliente

Jo˜ao tomou sua ´agua e gostaria de comprar outra

A modelagem atual permitiria Jo˜ao fazer duas compras distintas de um mesmo produto em um mesmo dia?

N˜ao!

Nota

Algumas abordagens ER n˜ao permitem usar atributos

identificadores em relacionamentos n:n

(10)

Modelagem: criar uma entidade ou relacionamento?

Fa¸ca um ER para registrar os produtos comprados por cada cliente

Uma ou mais compras por par (pessoa, produto)

id data pessoa produto 1 2017-07-14 iDJo˜ao iD´Agua 2 2017-07-14 iDJo˜ao iD´Agua 3 2017-07-14 iDJo˜ao iDSalgado 4 2017-07-14 iDPedro iDSalgado

(11)

Diferentes modelos ER podem ser equivalentes

Podem gerar o mesmo esquema de banco de dados

Todo relacionamento muitos-para-muitos (n:n) pode ser transformado em entidade

Algumas abordagens ER excluem o uso de relacionamentos n:n, outras excluem apenas relacionamentos n:n com atributos

(12)

Modelagem: atributo versus entidade relacionada

Se n˜ao houver qualquer objeto relacionado com a Cor, ent˜ao essa poderia ser modelada como atributo

Se fosse necess´ario registrar o fabricante da tinta da referida cor, datas de in´ıcio e fim de uso da cor, etc. ent˜ao optaria por modelar como entidade

Deseja-se armazenar os telefones dos alunos. Qual abordagem usar? Telefone seria um atributo de Aluno ou Telefone seria uma entidade?

(13)

Modelagem: atributo versus entidade relacionada

Se n˜ao houver qualquer objeto relacionado com a Cor, ent˜ao essa poderia ser modelada como atributo

Se fosse necess´ario registrar o fabricante da tinta da referida cor, datas de in´ıcio e fim de uso da cor, etc. ent˜ao optaria por modelar como entidade

Deseja-se armazenar os telefones dos alunos. Qual abordagem usar? Telefone seria um atributo de Aluno ou Telefone seria uma entidade?

(14)

Modelagem: atributo versus especializa¸c˜

ao

A especializa¸c˜ao deve ser usada quando sabe-se que os objetos possuem propriedades particulares

´

E necess´ario representar o fato que os funcion´arios s˜ao divididos entre homens e mulheres. Qual abordagem usar?

(15)

Modelagem: atributo versus especializa¸c˜

ao

A especializa¸c˜ao deve ser usada quando sabe-se que os objetos possuem propriedades particulares

´

E necess´ario representar o fato que os funcion´arios s˜ao divididos entre homens e mulheres. Qual abordagem usar?

(16)

Leitura recomendada

Heuser, C. A.

Projeto de banco de dados

6a. Edi¸c˜ao - Editora Bookman, 2009

Leia as seguintes se¸c˜oes do cap´ıtulo 3 (p´agina 72)

3.1, 3.2 e 3.3

(17)
(18)

Esquema e instˆ

ancia de banco de dados

Esquema de banco de dados

Projeto l´ogico do banco de dados

Fazendo analogia com a linguagem Java, o esquema seria equivalente a declara¸c˜ao de uma classe

Instˆancia de banco de dados

Situa¸c˜ao dos dados em um banco de dados em um determinado instante no tempo

Fazendo analogia com a linguagem Java, a instˆancia seria equivalente a um objeto, que nada mais que ´e uma instˆancia da classe

(19)

Tabela ou Rela¸c˜

ao

Em um banco de dados relacional os dados est˜ao organizados na forma de tabelas, tamb´em chamadas de rela¸c˜oes

Tabela ´e um conjunto n˜ao ordenado de linhas (tuplas). Cada linha ´e composta por uma s´erie de campos (colunas ou atributos)

(20)

Chaves

Chave em um banco de dados relacional

tem por objetivo identificar linhas e estabelecer rela¸c˜oes entre linhas de diferentes tabelas

N˜ao trata-se de um ´ındice para tornar o acesso mais r´apido. Trata-se apenas de uma restri¸c˜ao de integridade

Chave prim´aria (primary key – PK)

Coluna ou combina¸c˜ao de colunas cujos valores distinguem uma linha das demais dentro de uma rela¸c˜ao

Chave estrangeira (foreign key – FK)

Coluna ou combina¸c˜ao de colunas cujo valores aparecerem necessariamente na chave prim´aria de uma outra tabela

O mecanismo que permite a implementa¸c˜ao de relacionamentos em banco de dados relacionais

(21)
(22)

Chave estrangeira

Uma rela¸c˜ao r1 pode incluir entre seus atributos a chave prim´aria de

uma outra rela¸c˜ao, por exemplo, r2

Esse atributo ´e ent˜ao chamado de chave estrangeira de r1,

referenciando r2

r1 ´e chamada de rela¸c˜ao referenciadora da dependˆencia da chave

estrangeira

r2 ´e chamada de rela¸c˜ao referenciada da chave estrangeira

Restri¸c˜ao de integridade referencial

Em qualquer instˆancia de banco de dados, dada qualquer tupla ta de r1,

dever´a haver alguma tupla tb em r2, tal que o valor do atributo da chave

estrangeira de ta seja o mesmo valor da chave prim´aria de tb

(23)

Restri¸c˜

oes impostas por chave estrangeira

Inclus˜ao de linha na tabela que cont´em chave estrangeira

O valor a ser colocado na chave estrangeira deve obrigatoriamente aparecer na coluna chave prim´aria da tabela referenciada

Altera¸c˜ao do valor da chave estrangeira

O novo valor deve obrigatoriamente aparecer na coluna chave prim´aria da tabela referenciada

Exclus˜ao de uma linha da rela¸c˜ao referenciada da chave estrangeira

Deve ser garantido que na coluna chave estrangeira da rela¸c˜ao referenciadora n˜ao apare¸ca o valor que est´a sendo exclu´ıdo da chave prim´aria da tabela referenciada

Altera¸c˜ao do valor da chave prim´aria referenciada pela chave estrangeira

Na chave estrangeira da rela¸c˜ao referenciadora n˜ao pode aparecer o valor antigo da chave prim´aria que est´a sendo alterada

(24)

Restri¸c˜

oes impostas por chave estrangeira

Na tabela Aluno posso inserir um aluno com o valor 321 em idCurso?

N˜ao!

Na tabela Aluno posso alterar o valor de idCurso do aluno Juca para 122?

Sim!

Na tabela Curso posso excluir o curso 230?

Sim!

Na tabela Curso posso alterar o valor de idCurso 290 para 207?

N˜ao!

(25)

Restri¸c˜

oes impostas por chave estrangeira

Na tabela Aluno posso inserir um aluno com o valor 321 em idCurso? N˜ao!

Na tabela Aluno posso alterar o valor de idCurso do aluno Juca para 122? Sim! Na tabela Curso posso excluir o curso 230? Sim!

(26)

Dom´ınios e valores vazios

Dom´ınio do campo ´e o conjunto de valores que s˜ao permitidos na referida coluna em uma tabela

Cadeia de caracteres, inteiro, data, . . .

Ao criar um campo em uma tabela deve-se especificar seu dom´ınio e se a mesma poder´a aceitar valores nulos (NULL)

Colunas obrigat´orias n˜ao permitem valores nulos Colunas opcionais permitem valores nulos

Colunas que comp˜oem chaves prim´arias s˜ao colunas obrigat´orias, por´em tal exigˆencia n˜ao ´e necess´aria para chave estrangeira

Restri¸c˜oes de integridade de dom´ınio

SGBD garantem automaticamente a integridade de dom´ınio, de valores nulos, integridade de chave e integridade referencial . O desenvolvedor de aplica¸c˜ao n˜ao precisa se preocupar em fazer tais verifica¸c˜oes

(27)

Dom´ınios e valores vazios

Dom´ınio do campo ´e o conjunto de valores que s˜ao permitidos na referida coluna em uma tabela

Cadeia de caracteres, inteiro, data, . . .

Ao criar um campo em uma tabela deve-se especificar seu dom´ınio e se a mesma poder´a aceitar valores nulos (NULL)

Colunas obrigat´orias n˜ao permitem valores nulos Colunas opcionais permitem valores nulos

Colunas que comp˜oem chaves prim´arias s˜ao colunas obrigat´orias, por´em tal exigˆencia n˜ao ´e necess´aria para chave estrangeira

Restri¸c˜oes de integridade de dom´ınio

SGBD garantem automaticamente a integridade de dom´ınio, de valores nulos, integridade de chave e integridade referencial . O desenvolvedor de aplica¸c˜ao n˜ao precisa se preocupar em fazer tais verifica¸c˜oes

(28)

Representa¸c˜

ao do esquema de banco de dados relacional

Diagrama – representa¸c˜ao gr´afica

Existem diferentes tipos de nota¸c˜oes para representa¸c˜ao gr´afica de um esquema de banco de dados (depende da ferramenta)

Representa¸c˜ao acima foi feita com o MySQL Workbench

Nota¸c˜ao UML para relacionamento

Nota¸c˜ao MySQL Workbench simplificada para tabelas

(29)

Representa¸c˜

ao do esquema de banco de dados relacional

Representa¸c˜ao textual

Linguagem SQL ´e a linguagem padr˜ao

1 CREATE TABLE `Aluno` (

2 `idAluno` INT NOT NULL,

3 `Nome` VARCHAR(45) NULL,

4 `Curso_idCurso` INT NOT NULL,

5 PRIMARY KEY (`idAluno`),

6 CONSTRAINT `fk_Aluno_Curso`

7 FOREIGN KEY (`Curso_idCurso`)

8 REFERENCES `Curso` (`idCurso`));

Representa¸c˜ao resumida

9 Aluno (idAluno, Nome, idCurso) 10 idCurso referencia Curso

11

(30)

Linguagem de consulta relacional

Linguagem de consulta permite ao usu´ario solicitar informa¸c˜oes do banco de dados e geralmente est˜ao em um n´ıvel mais alto de abstra¸c˜ao do que as tradicionais linguagens de programa¸c˜ao

´

Algebra relacional

Structured Query Language – SQL

(31)

´

Algebra relacional

Conjunto de opera¸c˜oes aplicado sobre um ou mais conjuntos e que produz um novo conjunto como resultado

Semelhantes com opera¸c˜oes alg´ebricas normais, como adi¸c˜ao, subtra¸c˜ao ou multiplica¸c˜ao

(32)

´

Algebra relacional

S´ımbolo Nome Exemplo Resultado

σ Sele¸c˜ao σsalario>500(funcionario) Todas tuplas que

satis-fa¸cam o predicado Π Proje¸c˜ao Πnome,salario(funcionario) Os atributos nome e

sal´ario de todas as tu-plas

./ Jun¸c˜ao professor ./ curso Todas pares de tuplas que possuem o mesmo valor para todos atri-butos de mesmo nome × Produto

cartesiano

professor × curso Todas pares de tuplas independente de terem os mesmos valores nos atributos comuns

(33)

Exerc´ıcios

Henry F.; Sudarshan Silberschatz, Abraham; Korth.

Sistemas de banco de dados.

6a. Edi¸c˜ao - Editora Campus, 2012

Exerc´ıcios cap´ıtulo 2 (p´agina 34)

(34)

Aulas baseadas em

Henry F.; Sudarshan Silberschatz, Abraham; Korth.

Sistemas de banco de dados.

6a. Edi¸c˜ao - Editora Campus, 2012 Heuser, C. A.

Projeto de banco de dados

6a. Edi¸c˜ao - Editora Bookman, 2009 Sullivan, D. G.

Computer Science – Harvard University

Referências

Documentos relacionados

Estes resultados apontam para melhor capacidade de estabelecimento inicial do siratro, apresentando maior velocidade de emergência e percentual de cobertura do solo até os 60

Entendendo, então, como posto acima, propõe-se, com este trabalho, primeiramente estudar a Lei de Busca e Apreensão para dá-la a conhecer da melhor forma, fazendo o mesmo com o

A variação do pH da fase móvel, utilizando uma coluna C8 e o fluxo de 1,2 mL/min, permitiu o ajuste do tempo de retenção do lupeol em aproximadamente 6,2 minutos contribuindo para

Mestrado em Administração e Gestão Pública, começo por fazer uma breve apresentação histórica do surgimento de estruturas da Administração Central com competências em matéria

In most cases, international organisations only publish statistics at the country level; the only international agencies that provide regional data are Eurostat and, to a lesser

É_Realizada n n (0,3) (0,n) Inscrição Nome RG Expedidor UF Data Média Tipo Nota Questões Número Área Sub-Área Avaliação 3 n Esquema ER para o banco de dados CONCURSO..

Marca Vendedor Veículo Ford João Carro Ford João Caminhão Ford Mário Caminhão Fiat Mário Carro Chevrolet Felipe Carro Chevrolet João Carro Chevrolet João

Membro_Faculdade (Matrícula: Inteiro, Nome: string[50], Carga: Inteiro, IniContrato: data, Curso: string[30], professor: booleano, aluno: booleano). Membro