1 / 23

Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional. Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-2-2041842 - Fax: 351-222000808. Email: gtd@fe.up.pt URL: http://www.fe.up.pt. Objectivos. Ted Codd, 1970

benjy
Télécharger la présentation

Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-2-2041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL: http://www.fe.up.pt

  2. Objectivos • Ted Codd, 1970 • Fornecer um elevado grau de independência dos dados. • Proporcionar uma definição comum dosdados de simplicidade espartana, de forma que uma vasta gama de utilizadores numa empresa possa com ela lidar. • Simplificar o potencialmente gigantesco trabalho do administrador da BD. • Introduzir uma fundamentação teórica na gestão de BD. • Fundir os campos de pesquisa de factos e gestão de ficheiros, preparando a posterior adição de serviços de inferência no mundo comercial. • Elevar a programação de aplicações de BD para um novo nível, em que conjuntos sejam tratados como operandos, em vez de serem tratados elemento a elemento.

  3. Sistemas • Norma ANSI/SPARC • Alguns sistemas relacionais • Rendez-vous • Oracle • QBE • Ingres • Informix • Há sistemas que têm estrutura tabular, mas não possuem todos os operadores relacionais básicos ou apresentam limitações práticas importantes (semi-relacionais). • Sybase • Paradox • Access • SQL ...

  4. Produto cartesiano • domínios • D1 = { rosa, cravo, tulipa } • D2 = { branco, amarelo, vermelho, negro } • produto cartesiano • D1  D2 = { (r,b), (r,a), (r,v), (r,n), (c,b), (c,a), (c,v), (c,n), (t,b), (t,a), (t,v), (t,n), (r,b) } • = { (x, y) | x  D1, y  D2 } D2 • branco amarelo vermelho negro • rosa (r,b) (r,a) (r,v) (r,n) • cravo (c,b) (c,a) (c,v) (c,n) • tulipa (t,b) (t,a) (t,v) (t,n) D1

  5. Tuplo • Generalização do produto cartesiano • D1 D2 D1 = { (x, y, z) | x  D1, y  D2, z  D1} • tuplo (n-uplo) • sequência ordenada, eventuais repetições; •  conjunto, sem ordem nem repetições • tantos elementos quantos os domínios do produto cartesiano • (2 - par; 3 - terno; ...)

  6. Relação • relação subconjunto de produto cartesiano • R  D1 D2 • extensão R = { (r,b), (c,v), (t,n) } • compreensão R= { (f, c) | existe no meu jardim a flor f com a côr c } • relação é conjunto • os tuplos são todos diferentes (existe chave) • a ordem dos tuplos na relação é irrelevante • a ordem dos componentes nos tuplos é importante (referência por posição) • se se atribuir um nome a cada elemento do tuplo (atributo), onde aquele for indicado, a ordem não interessa - vê-se o tuplo como um mapeamento dos atributos para os respectivos valores • se t=(r, b) então flor(t) = r, côr(t) = b, e também t = (r, b) = (côr: b, flor: r)

  7. Relação normalizada • relação não normalizada: contém tuplos cujos valores são conjuntos, i.e., não atómicos • não normalizada R = { (r, {b,a}), (c, {b,v}), (t,n)} • normalizada correspondente R= {(r,b), (r,a), (c,b), (c,v), (t,n)}

  8. Tabela • atributo : nome de uma coluna • esquema : conjunto dos atributos • esquema da BD : contém o conjunto dos esquemas das relações • BD : conjunto das instâncias das relações R = { (r,b), (c,v), (t,n) } • R • Flor Côr • b • v • n esquema de R [plano] instância de R [conteúdo] tuplo linha componente coluna

  9. Chaves de relações • Um conjunto S de atributos de uma relação R é uma chave se • nenhuma instância de R, representando um estado possível do mundo, pode ter dois tuplos que coincidam em todos os atributos de S e não sejam o mesmo tuplo; • nenhum subconjunto próprio de S satisfaz (1). • Ex: chave(R) = {flor} • (f,c1), (f, c2)  c1 = c2 • significa que só pode haver uma linha para uma dada flor • Ex: chave(Inscrito) = {coddis, bia} • (d, a, r1), (d, a, r2)  r1 = r2 • só coddis ou só bia não garantem a condição (1) • {coddis, bia, resultado} não é chave porque contém uma chave. • conceito de chave depende do esquema, não da instância • várias chaves numa relação — chaves candidatas; escolhe-se uma delas como chave primária

  10. EA versus relacional bi número nome saldo data_nasc titular Pessoa Conta Pessoa bi nome data_nasc 1111 João 53-03-24 2222 Maria 54-09-11 3333 Miguel 80-03-01 4444 Pedro 83-05-29 Titular bi número 1111 1327 1111 6498 1111 9185 2222 9185 2222 5623 3333 8998 Conta número saldo 1327 23 000 6498 78 000 9185 127 000 5623 41 000 8998 5 000 entidade entidade associação n  m

  11. conjunto de entidades E entidade ex: conj. entidades Pessoa se E tiver chave emprestada, incluir esses atributos na relação ex: Turma associação A = (E1, ..., Ek) ligação ex: associação titular relação, esquema = atributos de E tuplo Pessoa( bi, nome, data_nasc ) Turma( curso, ano, letra ) relação, esquema = atributos nas chaves de E1, ..., Ek, renomeando iguais tuplo Titular( bi, numero ) Tradução entidades relações associações só um conceito, maior uniformidade, menos operadores

  12. Exemplo dos cursos codcurso letra segue Curso Turma designacur ano plano lecciona atribuído coddis Disciplina sigla designadis BI nome BI morada nome Professor Aluno telefone morada habilitação telefone inscrito resultado grupo data_nasc

  13. [Entidades] 1 Curso(codcurso, designacur) 2 Disciplina(coddis, sigla, designadis) 3 Turma(codcurso, ano, letra) 4 Professor(bip, nome, morada, telefone, habilitação, grupo) 5 Aluno(bia, nome, morada, telefone, data_nasc) [Associações] 6 Plano(codcurso, coddis) 7 Inscrito(coddis, bia, resultado) 8 Atribuido(bia, codcurso, ano, letra) 9 Lecciona(bip, coddis, codcurso, ano, letra) 10Segue(codcurso, ano, letra) Tradução do exemplo • na associação Segue elimina-se o atributo repetido; o resultado é igual a Turma

  14. Quando os esquemas das relações são uma tradução do modelo EA: relação vinda de um conjunto de entidades: a chave da entidade é a chave da relação relação vinda de uma associação muitos-para-muitos: chave inclui, frequentemente, todos os atributos relação vinda de entidade fraca: chave inclui a chave da entidade forte associação um-para-um entre E e F: tanto a chave de E como a de F podem ser chave para a relação associação muitos-para-um de E1, ..., Ek-1 em Ek: frequentemente, os atributos E1, ..., Ek-1 formam uma chave [Associações] 6 Plano(codcurso, coddis) 7 Inscrito(coddis, bia, resultado) 8 Atribuido(bia, codcurso, ano, letra) 9 Lecciona(bip, coddis, codcurso, ano, letra) 10 Segue(codcurso, ano, letra) Conteúdo das chaves • [Entidades] • 1 Curso(codcurso, designacur) • 2 Disciplina(coddis, sigla, designadis) • 3 Turma(codcurso, ano, letra) • 4 Professor(bip, nome, morada, telefone, habilitação, grupo) • 5 Aluno(bia, nome, morada, telefone, data_nasc) chave primáriachave candidata

  15. Tradução (cont.) • Simplificação - Duas relações com uma chave candidata em comum podem ser combinadas numa só relação cujo esquema é a reunião dos outros dois. • poupa espaço • perguntas envolvendo atributos das duas relações têm resposta mais rápida Aluno bia nome ... 243 João 12 321 Rui 31 427 Tiago 5 575 Luis 40 Atribuido bia curso ano letra 243 CG 10 A 321 CG 11 B 427 CG 10 A Aluno (novo) bia nome … curso ano turma 243 João … CG 10 A 321 Rui ... CG 11 B 427 Tiago … CG 10 A 575 Luis ...    tuplo pendente  - valor nulo

  16. Regras práticas • entidade  relação • ex: Disciplina, Aluno • associação m  1 (binária)  atributo do lado m • ex: atribuído  Aluno • associação m  n (ou m  1 > binária)  relação • ex: plano, lecciona

  17. Esquema relacional de Cursos Relações recombinadas 1 Curso(codcurso, designacur) 2 Disciplina(coddis, sigla, designadis) 3 Turma(codcurso, ano, letra) 4 Professor(bip, nome, morada, telefone, habilitação, grupo) 5 Aluno(bia, nome, morada, telefone, data_nasc, codcurso, ano, letra) 5 + 8 6 Plano(codcurso, coddis) 7 Inscrito(coddis, bia, resultado) 9 Lecciona(bip, coddis, codcurso, ano, letra) • Associação Segue: está contida em Turma e portanto desaparece

  18. Tradução alternativa de hierarquias • todas as especializações numa tabela • reunir numa única tabela os atributos da generalização e das especializações, renomeando se necessário • acrescentar um atributo obrigatório Tipo com tantos valores quantas as especializações • os atributos das especializações são optativos; em cada entidade só se especificam os valores dos atributos da especialização correspondente • vistas para manipular especializações • vista LIVRO = PUBLICAÇÃO(nr, titulo, ano, editor) condição tipo='L' • vista REVISTA = PUBLICAÇÃO(nr, titulo, ano, vol, no) condição tipo='R' título nr ano Publicação isa isa Livro Revista editor volume número Publicação nr titulo ano tipo editor vol no 327 'Os Maias' 1983 'L' Bertrand  581 'Software' 1994 'R'  

  19. Hierarquias (cont.) • especializações em tabelas separadas • uma tabela por especialização, incluindo os atributos próprios mais os herdados • generalização acessível por uma vista contendo a reunião das especializações (só para consulta) • vista PUBLICAÇÃO = LIVRO (nr, titulo, ano)  REVISTA (nr, titulo, ano) • alterações são feitas directamente nas especializações Livro nr titulo ano editor 327 'Os Maias' 1983 'Bertrand' Revista nr titulo ano vol no 581 'Software' 1994 41 2 uma tabela várias tabelas • tudo junto • acesso simples • muitos nulos • integridade via programação • integridade mais explícita • subconjuntos menores • muitas tabelas • problemas com a vista reunião

  20. Associação característica • A classe D tem chave emprestada se, para definir a sua chave de utilizador, for necessário recorrer à chave de outra classe C que seja o lado um de uma associação de que D é o lado muitos • caso da turma num curso: turma 2B da LEIC e 2B da LGEI • a existência de objectos em D depende da existência de objectos em C, enquanto que os objectos em C existem independentemente de D • diz-se que D corresponde a uma entidade fraca e que entre D e C existe uma associação característica • exemplo: entidade Facturas e entidade Linhas (das facturas)

  21. Elementos activos na BD • Esquema da BD = esquemas das tabelas + restrições de integridade • elementos activos complementam os estruturais • Restrição • função booleana cujo valor têm que ser verdadeiro • uma alteração que conduza a um estado que viole uma restrição é rejeitada • Trigger • código que espera por um evento (inserção, apagamento, …) • executa uma sequência de acções disparadas pelo evento • usado para verificar regras de integridade suplementares

  22. Restrições de integridade • chave - identifica uma entidade; não pode haver duas entidades com a mesma chave; não pode ser nula • valor único - impede a repetição da mesma combinação de valores nos atributos envolvidos • valor não nulo - preenchimento obrigatório • integridade referencial - exige que um valor referido por uma entidade de facto exista na BD (chave externa) • domínio - exige que o valor pertença a um determinado conjunto ou gama • genérica - asserção que tem que ser verdadeira

  23. Tuplos pendentes • tuplo pendente - tuplo numa tabela que não tem par na outra, ao combinar duas relações • formas de reduzir o problema 1) impondo restrições de integridade referencial • [se o valor V aparece em A de R1, também tem que existir em B de R2] • chave externa - restringir os valores num, ou vários atributos de uma tabela ao conjunto de valores nos atributos chave de uma outra relação [atributo bia em Inscrito só deve admitir valores que existam na chave de Aluno] 2) colocando um símbolo especial nos atributos desconhecidos (), o valor nulo. • valores nulos não podem aparecer na chave primária • dois valores nulos são sempre diferentes

More Related