A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelo relacional Fundamentos de Banco de Dados

Apresentações semelhantes


Apresentação em tema: "Modelo relacional Fundamentos de Banco de Dados"— Transcrição da apresentação:

1 Modelo relacional Fundamentos de Banco de Dados
Prof. André Cypriano M. Costa

2 Revisão modelo e-r O modelo E-R possui 03 conceitos básicos: entidades, atributos, e relacionamentos Entidades  coisas / objetos identificados de forma unívoca Atributos  propriedades da entidade Relacionamento  associação entre entidades Conjunto de entidades É um conjunto que abrange entidades do mesmo tipo que compartilham os mesmos atributos

3 Revisão modelo e-r Conjunto de Entidades: Conjunto de Entidades
Atributo

4 Revisão modelo e-r Conjuntos de Relacionamentos:
É o conjunto de todas as associações entre entidades

5 Revisão modelo e-r Chaves são usadas para distinguir as entidades de um dado conjunto de entidades Superchave Chaves candidatas Chave primária

6 Revisão modelo e-r Diagrama ER

7 Modelo relacional – introdução
O modelo relacional estabeleceu-se como o primeiro modelo de dados para aplicações comerciais Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance O modelo relacional foi apresentado pela primeira vez por E. F. Codd em um clássico artigo intitulado “A Relational Model for Large Shared Data Banks” na Communications of the ACM em Junho de 1970

8 introdução Existe uma base teórica substancial nos BDs relacionais
Álgebra Relacional Essa teoria dá suporte ao projeto de BD relacionais e permite um processamento eficiente das necessidades de informações de seus usuários Codd também foi o responsável por publicar os primeiros trabalhos sobre essa teoria (álgebra relacional) nos primeiros anos da década de 70 Um dos SGBD's precursores que implementaram este modelo foi o System R (IBM). Depois surgiram: DB2 (IBM), SQL-DS (IBM), Oracle, Informix, Ingres, Sybase entre outros

9 Conceitos do modelo relacional
Um banco de dados relacional consiste de um conjunto de relações (tabelas), cada qual designada por um único nome Uma linha em uma tabela representa um relacionamento entre um conjunto de valores Uma vez que uma tabela é uma coleção de tais relacionamentos, existe uma íntima correspondência entre o conceito de tabela e o conceito matemático de relação (ou conjunto) Daí vem o nome Modelo de Dados Relacional no qual se baseiam os Bancos de Dados Relacionais

10 Conceitos do modelo relacional
Relações Cada relação (tabela) é forma por linhas e colunas Cada linha da relação é chamada de tupla Assim, pode-se dizer que uma tabela é uma relação de tuplas Cada coluna da relação será chamada de atributo O conjunto de valores passíveis de serem assumidos por um atributo, é intitulado de domínio.

11 Conceitos do modelo relacional
Atributo da Relação Relações Tupla Valor do Atributo

12 Conceitos do modelo relacional
Domínio de um Atributo O domínio de um atributo é um conjunto de valores atômicos que se aplicam ao atributo Grupo de valores, a partir dos quais um ou mais atributos (colunas) retiram seus valores reais Cada domínio está associado a um tipo de dados ou formato Um atributo em uma tupla só pode representar um valor, não pode representar um conjunto de valores Exemplo: Atributo telefone  não pode receber mais de um valor (mesmo que o cliente tenha mais de um telefone). Dizemos então que o atributo não pode ser multivalorado.

13 Conceitos do modelo relacional
Domínio de um Atributo Atributo Tipo Formato Semântica nome-agencia varchar(50) A(50) Nome das agências bancárias existentes numero-conta long int Inteiros entre 1 e representando o nº da conta nome-cliente Nomes próprios de pessoas saldo double ,99 Números reais representado o saldo da conta bancária telefone char(10) (99) Número de telefone válido

14 Conceitos do modelo relacional
Esquema de uma Relação O esquema de uma relação, nada mais é que os campos (colunas) existentes em uma tabela Já a instância da relação consiste no conjunto de valores que cada atributo assume em um determinado instante Portanto, os dados armazenados no Banco de Dados, são formados pelas instâncias das relações O esquema relacional pode ser representado de várias formas

15 Conceitos do modelo relacional
Esquema de uma Relação Exemplo: Area = (codigo, descricao) Curso = (codigo, matCoord, codArea, nome, periodos, anoCriacao) Professor = (matricula, codCurso, codTitulo, nome, formacao) Titularidade = (codigo, descricao) ...

16 Conceitos do modelo relacional
Esquema de uma Relação Exemplo:

17 Propriedades das relações
Observe as seguintes relações Nome Idade Sexo Matricula Nelson 21 M 010110 Davi 22 010100 ... Antônio 19 111111 São iguais ou diferentes? As tuplas de uma relação não tem uma ordem definida Portanto do ponto de vista conceitual, não há diferenças entre as duas relações. Aluno Nome Idade Sexo Matricula Antônio 19 M 111111 Davi 22 010100 Nelson 21 010110 ... Aluno

18 Propriedades das relações
Observe as seguintes relações Nome Idade Sexo Matricula Nelson 21 M 010110 Davi 22 010100 ... Antônio 19 111111 São iguais ou diferentes? Não existe ordem entre os atributos, desde que seja mantida a correspondência entre atributos e valores Portanto do ponto de vista conceitual, não há diferenças entre as duas relações. Aluno Matricula Nome Sexo Idade 010110 Nelson M 21 010100 Davi 22 ... 111111 Antônio 19 Aluno

19 Propriedades das relações
Observe as seguintes relações Válido ou não? Relação inválida! Todos os atributos são atômicos. Não há atributos multivalorados e nem compostos. Nome Telefone Sexo Data de Nascimento Dia Mês Ano Claudia F 10 03 1974 ... Antônio M 25 08 1977 Atributo multivalorado Atributo composto

20 Propriedades das relações
Cada atributo numa relação tem um nome que é único dentro da relação Não há tuplas duplicadas Não pode haver duas linhas com os mesmos valores em uma tabela Cada chave primária deve ser única para cada tupla. Nenhuma chave primária pode ser nula. Uma tupla em uma relação que referencia outra relação deve referenciar uma tupla existente naquela relação (chamamos esta regra de integridade referencial).

21 chaves Chave Primária: Chave Estrangeira:
É o atributo ou o conjunto de atributos escolhidos como meio principal de identificação de entidades dentro de um conjunto de entidades. Chave Estrangeira: Conjunto de campos em uma relação que é usado para fazer referência a uma tupla em outra relação (Deve corresponder à chave primária da segunda relação).

22 Chaves estrangeira Uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de outra tabela Mecanismo que permite a implementação de relacionamentos em um banco de dados relacional

23 Chaves estrangeira Um conjunto de atributos de uma relação R1 é uma chave estrangeira se satisfaz às seguintes regras: Os atributos da chave estrangeira têm o mesmo domínio dos atributos da chave primária de outra relação R2. Um valor da chave estrangeira numa tupla t1 de R1 possui o mesmo valor da chave primária para alguma tupla t2 em R2 ou é NULO. A integridade referencial estabelece que todo valor de chave estrangeira numa relação deve corresponder a um valor de chave primária de uma segunda relação ou deve ser nulo

24 Chaves estrangeira Exemplo:

25 Chaves estrangeira Chave estrangeira nem sempre é estrangeira, ou seja, vir de outra tabela Uma chave estrangeira pode referenciar a sua própria relação (autorelacionamento). Ex.: Empregado(matrícula, nome, depto, salário, matr_gerente) Matricula Nome Depto Salario Matr_gerente E1 Soares D1 2.300,00 E2 Silva 4.500,00 E5 E3 Santos D2 5.000,00 Souza 5.500,00 null

26 Chaves estrangeira Validação da chave estrangeira pelo SGBD:
Quando da inclusão de uma linha na tabela que contém a chave estrangeira O valor da chave estrangeira deve aparecer na coluna da chave primária referenciada Quando da alteração do valor da chave estrangeira O novo valor de uma chave estrangeira deve aparecer na coluna da chave primária referenciada Quando da exclusão de uma linha da tabela que contém a chave primária referenciada pela chave estrangeira Na coluna chave estrangeira não deve aparecer o valor da chave primária que está sendo excluída

27 Chaves estrangeira As restrições de integridade devem ser implementadas pelo SGBD Muitos SGBD's implementam as restrições de integridade básicas que existem

28 Restrição de integridade
Objetivo primordial de um SGBD Garantir a consistência de dados Para garantir a consistência de um banco de dados SGBD oferecem o mecanismo de restrições de integridade Uma restrição de integridade é uma regra de consistência de dados que é garantida pelo próprio SGBD IMPORTANTE: Regras de consistência que não são implementadas pelo SGBD devem ser implementadas dentro dos programas de aplicação

29 Restrição de integridade
Tipos básicos de restrição de integridade: Integridade de domínio Especificadas através do tipo de dado de cada atributo do esquema de uma relação É especificado através de tipos primitivos de dados, tais como integer, float, char, date, time, etc. Integridade de chave Toda tupla tem um conjunto de atributos que a identifica de maneira única na relação Nenhum valor de chave primária poderá ser NULL

30 Restrição de integridade
Tipos básicos de restrição de integridade: Integridade referencial Especificadas através de regras de relacionamento entre os esquemas das relações que compõem o esquema do banco de dados As regras de relacionamento se dá através da chave estrangeira Essas restrições são garantidas automaticamente por um SGBD relacional Não é exigido que o programador escreva procedimentos para garanti-las explicitamente

31 Restrição de integridade
Há muitas outras restrições de integridade que não se encaixam nas categorias básicas Essas restrições são chamadas de restrições semânticas (ou regras de negócio) Exemplos de restrições semânticas: Um empregado do departamento denominado “Finanças” não pode ter a categoria funcional “Engenheiro” Um empregado não pode ter um salário maior que seu superior imediato

32 Transformação do modelo e-r para o modelo relacional
Modelo E-R: conveniente para representar um esquema inicial e de alto nível do banco de dados Modelo Relacional representa os dados em um formato que é utilizado pelos bancos de dados Entidades  Atributos  Relacionamentos  Existe um método para transformar um esquema ER em modelo relacional? Tabelas Colunas das tabelas Chaves estrangeiras e opcionalmente tabelas

33 Transformação do modelo e-r para o modelo relacional
Como um conjunto de entidades é representado em uma relação? Num mapeamento direto, onde os atributos da entidade tornam-se atributos da tabela e a chave torna-se chave primária Empregado codigo (PK) nome cargo

34 Transformação do modelo e-r para o modelo relacional
Relacionamento com restrição de cardinalidades Qual é a cardinalidade que existe? 1 empregado trabalha em 1 departamento Em 1 departamento trabalham n empregados Como transformar esse relacionamento para o modelo relacional?

35 Transformação do modelo e-r para o modelo relacional
Como relacionar o empregado ao departamento? Cria-se uma coluna nova em uma das tabelas para ser a chave estrangeira. Mas em qual tabela? A chave primária normalmente sai da entidade que tem cardinalidade 1 e vai para a entidade que tem cardinalidade n Departamento dcodigo (PK) dnome ddescr Tabela Departamento Empregado codigo (PK) nome cargo dcodigo (FK) Empregado codigo (PK) nome cargo Tabela Empregado

36 Transformação do modelo e-r para o modelo relacional
Conjunto de relacionamentos sem restrição de cardinalidade Como transformar o relacionamento “Trabalha em” em uma tabela?

37 Transformação do modelo e-r para o modelo relacional
Ao transformar um conjunto de relacionamentos em uma tabela, devemos ter os seguintes atributos: A chave primária de cada conjunto de entidades da relação (como chaves estrangeiras). Este conjunto de atributos forma uma superchave para a relação Todos atributos descritivos do relacionamento TrabalhaEm codigo (PK) dcodigo (PK) desde

38 Transformação do modelo e-r para o modelo relacional
Auto-relacionamento Supervisiona codigo_sup (PK) codigo_empr (PK)

39 Transformação do modelo e-r para o modelo relacional
Auto-relacionamento Empregado codigo_emp (PK) nome cargo codigo_empr (FK)

40 Transformação do modelo e-r para o modelo relacional
Uma entidade fraca pode ser identificada univocamente considerando apenas a chave primária de outra entidade (que a possui) A entidade dominante e a entidade fraca devem participar em um conjunto de relacionamentos 1..n (1 dominante, muitas entidades fracas) O conjunto-entidade fraca deve ter participação total neste conjunto de relacionamentos As entidades fracas e o relacionamento identificador (quanto tiver algum atributo) são transformados em uma única tabela Quando a entidade “dominante” é removida, todas as entidades fracas também devem ser removidas

41 Transformação do modelo e-r para o modelo relacional
PlanoDependente codigo (PK) dnome (PK) idade custo

42 Transformação do modelo e-r para o modelo relacional
Especializações/Generalizações

43 Transformação do modelo e-r para o modelo relacional
Especializações/Generalizações Existem 03 opções comumente utilizadas Inserir os atributos das subclasses na superclasse Inserir os atributos da superclasse nas subclasses Inserir os atributos comuns na superclasse e deixar os atributos específicos nas respectivas subclasses

44 Transformação do modelo e-r para o modelo relacional
Especializações/Generalizações Inserir os atributos das subclasses na superclasse Pessoa identificacao(PK) nome dt_nasc curso coeficiente salario cargo

45 Transformação do modelo e-r para o modelo relacional
Especializações/Generalizações Inserir os atributos da superclasse nas subclasses aluno identificacao (PK) nome dt_nasc curso coeficiente empregado identificacao (PK) nome dt_nasc cargo salario

46 Transformação do modelo e-r para o modelo relacional
Especializações/Generalizações Inserir os atributos comuns na superclasse e deixar os atributos específicos nas respectivas subclasses pessoa identificacao (PK) nome dt_nasc empregado pessoa (PK) cargo salario aluno pessoa (PK) curso coeficiente

47 Linguagens de consulta
O valor de um BD está relacionado à facilidade de se obter informações deste banco Uma importante característica do modelo relacional: Suporte a consultas de dados simples mas poderosas Consultas podem ser escritas de forma intuitiva e o SGBD é responsável por sua avaliação para execução eficiente A chave para isso é ter uma semântica precisa para consultas relacionais Possibilita que o otimizador amplamente reordene operações, assegurando que as respostas não se alterem Linguagens de consulta relacionais: Álgebra relacional; Cálculo relacional; SQL

48 bibliografia SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.. Sistema de banco de dados. 3 ed. São Paulo: Pearson Makron Books, 2005, Cap. 3 Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. Notas de aula sobre Modelo Relacional do Prof. Edson Thizon. Notas de aula sobre Modelo Relacional do Prof. Cláudio Batista, CCT/UFPB. Notas de aula sobre Modelo Relacional de Arnaldo Rocha e Maria Luiza Campos, IME, 2005.


Carregar ppt "Modelo relacional Fundamentos de Banco de Dados"

Apresentações semelhantes


Anúncios Google