• Nenhum resultado encontrado

Modelo Relacional Wendel Melo

N/A
N/A
Protected

Academic year: 2021

Share "Modelo Relacional Wendel Melo"

Copied!
39
0
0

Texto

(1)

Modelo Relacional

Modelo Relacional

Wendel Melo

Faculdade de Computação Universidade Federal de Uberlândia

www.facom.ufu.br/~wendelmelo

(2)

2 Modelo Relacional

Modelo Relacional

• Proposto por Ted Codd em 1970;

• Se tornou padrão nos principais SGBD’s de uso geral devi-do a sua simplicidade e embasamento matemático;

• O modelo relacional abre mão de algumas funcionalida-des presentes em outros tipos de modelo, como o Entida-de Relacionamento.

• Esse foco na simplicidade permite implementações efici-entes para a manipulação dos dados, o que contribuiu for-temente para o sucesso dos SGBD’s relacionais.

(3)

3 Modelo Relacional

Modelo Relacional - Limitações

Em nome da eficiência na manipulação dos dados, as seguin-tes limitações são impostas no modelo relacional:

• Todo atributo deve ser monovalorado; Atributos multivalo-rados não são permitidos.

• Apenas entidades (relações) podem possuir atributos. Não há atributos de relacionamento;

• Cada relacionamento envolve, no máximo, duas entidades (relações) distintas;

(4)

4 Modelo Relacional

Modelo Relacional - Limitações

Em nome da eficiência na manipulação dos dados, as seguin-tes limitações são impostas no modelo relacional:

Apenas relacionamentos do tipo um para um ou um para muitos são permitidos;

Assim, relacionamentos do tipo muitos para muitos preci-sam ser decompostos em dois relacionamentos um para muitos com uma entidade (relação) auxiliar.

(5)

5 Modelo Relacional

Modelo Relacional

• O modelo relacional representa o banco de dados como um conjunto de relações.

– Podemos encarar o termo relação como sendo si-nônimo de tabela. Ex: a relação de alunos do curso de BD (a tabela (listagem) de alunos de BD).

• Assim, o modelo relacional é baseado em tabelas bidi-mensionais (linha e coluna);

Uma relação é a representação de uma entidade do mun-do real (um objeto, conceito ou fato), e pode ser encarada como uma tabela.

(6)

6 Modelo Relacional

Modelo Relacional

Dada uma tabela associada à uma relação R:

• As linhas (tuplas) representam instâncias da relação (enti-dade) sendo modelada;

• As colunas representam os atributos da relação;

• Cada célula armazena um valor de atributo para uma instân-cia da relação (entidade);

Pessoa nome cpf sexo dt_nasc altura

Laura G 77777777777 F 30/03/1992 1.62 Camila C 22222222222 F

(7)

7 Modelo Relacional

Modelo Relacional

Pessoa nome cpf sexo dt_nasc altura

Laura G 77777777777 F 30/03/1992 1.62 Camila C 22222222222 F

Fernanda P 33333333333 07/01/1993 1.68

• Pelo fato do modelo ser baseado em tabela bidimensionais, cada célula armazena um valor atômico (que não pode ser subdividido em seu domínio);

• Assim, não há suporte para atributos multivalorados;

• Para armazenar 3 telefones de uma pessoa, seria preciso criar 3 atributos distintos, ou uma nova relação apenas para telefones;

(8)

8 Modelo Relacional

Modelo Relacional

Formalmente, cada linha da tabela é chamada de tupla ou

n-tupla (lista composta por n valores);

• Cada componente da tupla pode conter um dado de um de-terminado tipo sujeito a um domínio de possíveis valores;

• Um domínio pode receber um nome, um tipo de dado e um formato. Ex: o atributo cpf pode estar em um domínio cha-mado cpf_brasil com o tipo sequência de 11 dígitos.

Pessoa

char[200] cpf_brasil {F, M} date float

nome cpf sexo dt_nasc altura

Laura G 77777777777 F 30/03/1992 1.62 Camila C 22222222222 F

(9)

9 Modelo Relacional

Modelo Relacional

• Um esquema para descrever uma relação R é indicado por: R(A1, A2, …, An)

• dom(Ai) representa o domínio do atributo Ai;

Pessoa nome cpf sexo dt_nasc altura

Laura G 77777777777 F 30/03/1992 1.62 Camila C 22222222222 F

Fernanda P 33333333333 07/01/1993 1.68

(10)

10 Modelo Relacional

Modelo Relacional

• Um esquema para descrever uma relação R é indicado por: R(A1, A2, …, An)

• dom(Ai) representa o domínio do atributo Ai;

• Para o nosso exemplo, temos:

Pessoa(nome, cpf, sexo, dt_nasc, altura)

Pessoa nome cpf sexo dt_nasc altura

Laura G 77777777777 F 30/03/1992 1.62 Camila C 22222222222 F

Fernanda P 33333333333 07/01/1993 1.68

(11)

11 Modelo Relacional

Modelo Relacional

• O(s) atributo(s) sublinhado(s) compõe(m) a chave primária da relação;

• Pode-se detalhar melhor indicando os tipos dos atributos: Pessoa(nome: char[200], cpf: char[11],

sexo: char, dt_nasc: date, altura: float)

Pessoa nome cpf sexo dt_nasc altura

Laura G 77777777777 F 30/03/1992 1.62 Camila C 22222222222 F

(12)

12 Modelo Relacional

Modelo Relacional

• Podemos representar relações graficamente:

Pessoa nome cpf sexo dt_nasc altura

Laura G 77777777777 F 30/03/1992 1.62 Camila C 22222222222 F

(13)

13 Modelo Relacional

Modelo Relacional

• A definição de uma relação não inclui uma ordem específica para as tuplas (linhas);

Assim, as tuplas da tabela Pessoa poderiam ser apresentadas em qualquer ordem, que, ainda assim, o estado corrente da re-lação seria o mesmo;

Pessoa nome cpf sexo dt_nasc altura

Laura G 77777777777 F 30/03/1992 1.62 Camila C 22222222222 F

(14)

14 Modelo Relacional

Exemplo - Modelo Relacional

Construa um modelo de dados relacional que atenda aos se-guintes requisitos de um berçário:

1) É necessário manter um cadastro dos pais com nome, RG, sexo, data de nascimento, telefone e endereço;

2) A cada bebê que nasce, são cadastrados nome, data/hora de nascimento, sexo, peso, altura, tipo de parto, pai (quando for conhecido) e mãe;

3) Para cada profissional de saúde, são armazenados nome, RG, CPF, data de nascimento, registro de ordem (se houver) e um dos cargos pré-cadastrados em uma relação de cargos;

4) É preciso cadastrar quais os profissionais envolvidos no nas-cimento de cada bebê.

(15)

15 Modelo Relacional

Exemplo - Modelo Relacional

Diagrama construído usando

a ferramenta MySQL Work-bench.

(16)

16 Modelo Relacional

Exemplo - Modelo Relacional

Considerações

so-bre a notação do

MySQL Workbench

(17)

17 Modelo Relacional

Exemplo - Modelo Relacional

A chave indica que o atributo

compõe a chave primária da relação.

(18)

18 Modelo Relacional

Exemplo - Modelo Relacional

Losango cheio indica que o

atributo é de preenchimento obrigatório.

(19)

19 Modelo Relacional

Exemplo - Modelo Relacional

Losango vazado indica que o

atributo é de preenchimento

(20)

20 Modelo Relacional

Exemplo - Modelo Relacional

Losango ou chave vermelha

indica chave estrangeira. Quando a chave estrangeira é parte também da chave pri-mária, é usada a chave. Quando a chave estrangeira não é parte da chave, é usado losango.

(21)

21 Modelo Relacional

Exemplo - Modelo Relacional

Relacionamento 1:n

identifica-dor (chave estrangeira participa da chave primária, preenchi-mento obrigatório).

Dois traços verticais: 1

(22)

22 Modelo Relacional

Exemplo - Modelo Relacional

Relacionamento 1:n não

identi-ficador (chave estrangeira par-ticipa da chave primária), preenchimento não obrigatório. A bola ao lado esquerdo indica que o bebê pode ter 0 ou 1 pai. Traço vertical com bola: 0 ou 1 Um vertical e dois diagonais: n

(23)

23 Modelo Relacional

Exemplo - Modelo Relacional

Relacionamento 1:n não

iden-tificador (chave estrangeira

não participa da chave

primá-ria) com preenchimento obri-gatório.

Dois traços verticais: 1

(24)

24 Modelo Relacional

Exemplo - Modelo Relacional

Considerações

(25)

25 Modelo Relacional

Exemplo - Modelo Relacional

O modelo prevê dois

genito-res para cada bebê (pai e mãe). Por essa razão, há dois relacionamentos entre Geni-tor e Bebe, com duas chaves estrangeiras em Bebe.

(26)

26 Modelo Relacional

Exemplo - Modelo Relacional

Cada genitor pode ter vários

bebês. Por sua vez, cada bebê só terá um genitor como mãe e um ou zero genitor como pai. Por essa razão, es-ses relacionamentos são 1:n (um para muitos)

(27)

27 Modelo Relacional

Exemplo - Modelo Relacional

Observe que a chave primária

de Bebe é composta de nome e mãe. Isso porque é possível que vários bebês tenham o mesmo nome. Observe que Bebe é uma entidade fraca, pois por não possuir chave candidata própria, pega carona chave primária de Genitor.

(28)

28 Modelo Relacional

Exemplo - Modelo Relacional

Cada profissional de saúde

deve ter um cargo. Em cada cargo, podemos ter vários profissionais. Por essa razão, esse relacionamento é 1:n.

(29)

29 Modelo Relacional

Exemplo - Modelo Relacional

Note que a chave estrangeira

em Profissional_saude não faz parte da chave primária. Por essa razão, o uso da linha pontilhada.

(30)

30 Modelo Relacional

Exemplo - Modelo Relacional

Note que cargo não possui

uma chave candidata própria. Por essa razão, criamos uma chave primária artificial cha-mada idCargo.

(31)

31 Modelo Relacional

Exemplo - Modelo Relacional

Para cada bebê nascer.

Po-demos ter vários profissionais envolvidos. Por sua vez, cada profissional pode trabalhar no nascimento de vários bebês. Desse modo, temos um rela-cionamento n:n entre Bebe e Profissional_saude.

(32)

32 Modelo Relacional

Exemplo - Modelo Relacional

Como o modelo relacional não

suporta relacionamentos n:n diretamente, foi necessário cri-ar uma relação auxilicri-ar Profis-sional_saude_has_Bebe. Em cada linha dessa relação, te-mos uma par profissional, bebê. Assim, é possível listar todos os profissionais que atu-aram com cada bebê.

(33)

33 Modelo Relacional

Exemplo - Modelo Relacional

Assim, ambos Bebe e

Profis-sional_saude terão relaciona-mento 1:n com a relação auxi-liar

(34)

34 Modelo Relacional

Exemplo - Modelo Relacional

• Podemos representar o esquema modelado da seguinte forma: Genitor(RG, nome, sexo, dt_nasc, telefone, endereco)

Bebe(nome, Genitor_mae_RG, Genitor_pai_RG, dthr_nasc, sexo, peso, altura, tipo_parto) Profissional_saude_has_Bebe(Bebe_nome, Bebe_Genitor_mae,

Profissional_saude_CPF) Profissional_saude(CPF, RG, nome, dt_nasc, registro, Cargo_idCargo)

(35)

35 Modelo Relacional

nome Genitor_

mae_RG _pai_RGGenitor dthr_nasc sexo peso altura tipo_parto

Joãozinho 1111111 2222222 07-09-2017 12:41 M 3.1 50 Normal Mariazinha 333333 2222222 19-04-2018 09:26 F 2.9 48 Normal Zequinha 1111111 21-08-2018 21:57 M 3 51 Normal Joãozinho 555555 6666666 30-08-2018 16:38 3.3 50 Normal

CPF RG nome dt_nasc registro Cargo_idCargo

10101 100001 Cesar M 07-02-1987 55555 1 99800 232323 Cristine S 22-02-1986 44444 2 20202 234000 Camila R 16-10-1986 44044 1 31333 777000 Viviane Z 18-06-1988 54004 2

Profissional_saude Bebe_nome Bebe_Genitor_mae

10101 Joãozinho 1111111 31333 Joãozinho 1111111 31333 Mariazinha 333333 99800 Mariazinha 333333 20202 Mariazinha 333333

Relacionamento n:n na prática

Bebe

Profissional

_saude

Profissional_saude

_has_Bebe

(36)

36 Modelo Relacional

nome Genitor_

mae_RG _pai_RGGenitor dthr_nasc sexo peso altura tipo_parto

Joãozinho 1111111 2222222 07-09-2017 12:41 M 3.1 50 Normal Mariazinha 333333 2222222 19-04-2018 09:26 F 2.9 48 Normal Zequinha 1111111 21-08-2018 21:57 M 3 51 Normal Joãozinho 555555 6666666 30-08-2018 16:38 3.3 50 Normal

CPF RG nome dt_nasc registro Cargo_idCargo

10101 100001 Cesar M 07-02-1987 55555 1 99800 232323 Cristine S 22-02-1986 44444 2 20202 234000 Camila R 16-10-1986 44044 1 31333 777000 Viviane Z 18-06-1988 54004 2

Profissional_saude Bebe_nome Bebe_Genitor_mae

10101 Joãozinho 1111111 31333 Joãozinho 1111111 31333 Mariazinha 333333 99800 Mariazinha 333333 20202 Mariazinha 333333

Relacionamento n:n na prática

Bebe

Profissional

_saude

Profissional_saude

_has_Bebe

(37)

37 Modelo Relacional

Restrições do Modelo Relacional

Restrição de integridade das instâncias de relações: exige que

nenhum valor de chave primária possa estar vazio (NULL), pois isso impediria a identificação de uma instância da relação;

Restrição de chave: estabelece que cada instância da relação possui um valor de chave primária diferente de todas as de-mais que existem, ou já existiram no BD;

Restrição de integridade referencial: impõe consistência no re-lacionamento entre relações, isto é, que cada chave estrangeira em um exemplar de uma relação possua um valor que de fato seja chave primária de alguma instância de outra relação;

(38)

38 Modelo Relacional

Restrições do Modelo Relacional

Restrição de domínio: especifica que cada valor deve estar no

domínio do seu respectivo atributo;

Restrição de não-nulidade (NOT NULL): impõe que atributos de uma relação marcados como NOT NULL não podem estar vazios em nenhuma das suas instâncias.

• As restrições anteriores são especificadas no esquema de BD relacional através da Linguagem de Definição de Dados (DDL);

A Linguagem de Consulta Estruturada (SQL) contém instruções que atuam como DDL;

(39)

39 Modelo Relacional

Restrições do Modelo Relacional

Um esquema de banco de dados é um conjunto de esquemas

de relação e um conjunto de restrições de integridade;

• Se todas as instâncias de relações presentes no BD obedecem a todas as restrições anteriores, dizemos que o BD está em um estado válido.

Referências

Documentos relacionados

Efésios 3.20 E agora, que a glória seja dada a D E agora, que a glória seja dada a Deus, o qual, por meio do seu poder que age e eus, o qual, por meio do seu poder que age em nós,

O conceito pode fornecer, também, uma cartografia mais rica das relações das cenas musicais com outras cenas (a teatral, a literária, a cinematográfica), enfatizando tanto

É perceptível, desta forma, o constante aumento do aprofundamento dos personagens: os “príncipes” têm agora não só nome e falas, mas personalidades bem desenvolvidas,

Caso o Investidor opte por indicar o número de Unidades de Conta, o montante a resgatar em cada Fundo Autónomo será igual ao valor que resultar da multiplicação entre o número

Realça-se ainda que, com a instalação do sistema de videovigilância, não se visou e nem se visa investigar qualquer ilícito criminal em concreto, razão pela

--- Depois, por outro lado, dizer-lhe também, admito que nasçam mais clubes na Amadora e é bom que assim aconteça, mas os que temos neste momento nos termos em que é a

Taking into account that the cardiometabolic risk is higher in older individuals compared to younger ones, there is a correlation with the increase in the measurement of the

Analisando as Figuras nota-se que a polpa de cupuaçu pura (Fig. 6) apresentou característica de um gel mais estruturado, devido às pectinas, e ao se adicionar pequenas