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

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

1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 URL: Modelo.

Apresentações semelhantes


Apresentação em tema: "1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 URL: Modelo."— Transcrição da apresentação:

1 1 Gabriel David FEUP - Rua dos Bragas, Porto - PORTUGAL Tel Fax: URL: Modelo relacional m noções básicas m tradução do modelo de objectos m álgebra relacional

2 Modelo relacional - 2 Objectivos m Ted Codd, 1970 q Fornecer um elevado grau de independência dos dados. q Proporcionar uma definição comum dosdados de simplicidade espartana, de forma que uma vasta gama de utilizadores numa empresa possa com ela lidar. q Simplificar o potencialmente gigantesco trabalho do administrador da BD. q Introduzir uma fundamentação teórica na gestão de BD. q 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. q 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 Modelo relacional - 3 Sistemas m Norma ANSI/SPARC m Alguns sistemas relacionais q Rendez-vous q Oracle q QBE q Ingres q Informix m 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). q Sybase q Paradox q Access q SQL...

4 Modelo relacional - 4 Produto cartesiano m domínios q D1 = { rosa, cravo, tulipa } q D2 = { branco, amarelo, vermelho, negro } m produto cartesiano q 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 } branco amarelo vermelhonegro 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) D1D1 D2D2

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

6 Modelo relacional - 6 Relação m relação subconjunto de produto cartesiano q R D 1 D 2 q extensão R = { (r,b), (c,v), (t,n) } q compreensão R= { (f, c) | existe no meu jardim a flor f com a côr c } m relação é conjunto q os tuplos são todos diferentes (existe chave) q a ordem dos tuplos na relação é irrelevante q 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 Modelo relacional - 7 Relação normalizada m relação não normalizada: contém tuplos cujos valores são conjuntos, i.e., não atómicos q não normalizada R = { (r, {b,a}), (c, {b,v}), (t,n)} q normalizada correspondente R= {(r,b), (r,a), (c,b), (c,v), (t,n)}

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

9 Modelo relacional - 9 Um conjunto S de atributos de uma relação R é uma chave se 1nenhuma 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; 2nenhum subconjunto próprio de S satisfaz (1). Um conjunto S de atributos de uma relação R é uma chave se 1nenhuma 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; 2nenhum subconjunto próprio de S satisfaz (1). Chaves de relações q Ex: chave(R) = {flor} (f,c 1 ), (f, c 2 ) c 1 = c 2 significa que só pode haver uma linha para uma dada flor q Ex: chave(Inscrito) = {coddis, BIa} (d, a, r 1 ), (d, a, r 2 ) r 1 = r 2 só coddis ou só bia não garantem a condição (1) {coddis, bia, resultado} não é chave porque contém uma chave. q conceito de chave depende do esquema, não da instância q várias chaves numa relação chaves candidatas; escolhe-se uma delas como chave primária

10 Modelo relacional - 10 Do projecto à implementação m O modelo de objectos contém a maior parte da estrutura declarativa: q especificação das classes q atributos q hierarquia de herança q e associações. m Bases de Dados q a versatilidade do paradigma OO permite o projecto não só de sistemas e programas como também de bases de dados, sejam elas hierárquicas, reticuladas, relacionais ou orientadas por objectos q as bases de dados relacionais são um tipo importante a considerar, devido à sua popularidade q embora não tão populares, as bases de dados orientadas por objectos são importantes para diversas áreas de aplicação

11 Modelo relacional - 11 Identificadores de objectos OIDs m por várias razões, entre as quais a simplicidade, recorre-se a atributos IDs, para mapear o conceito de identificador de objecto implícito na noção de objecto m utilização de IDs q vantagens: imutabilidade, independência, estabilidade q desvantagens: não são suportados pelos SGBDRs, conflituam com a intenção original das BDRs de manipular informação com base apenas nos seus valores

12 Modelo relacional - 12 Classes m Cada classe é mapeada para uma ou mais tabelas q a tabela terá os mesmos atributos que a classe respectiva, mais o atributo referente ao identificador de objecto q decide-se para cada atributo da tabela se poderá ou não ter valores nulos q atribui-se a cada atributo um domínio, pré-definido ou definido pelo utilizador

13 Modelo relacional - 13 Associações binárias m Em geral, uma associação pode ou não ser mapeada para uma tabela, dependendo: q do tipo e multiplicidade da associação q das preferências do projectista em termos de extensibilidade, número de tabelas e compromissos de performance m Uma associação muitos-para-muitos é sempre mapeada para uma tabela distinta q a chave primária será constituída pela concatenação das chaves primárias de cada uma das tabelas envolvidas na associação

14 Modelo relacional - 14 Associações binárias (n - m)

15 Modelo relacional - 15 Associações binárias (1 - n) m Uma associação um-para-muitos pode ser mapeada de 2 formas q criação de uma tabela distinta para a associação q adicionar uma chave-externa na tabela relativa a muitos m Vantagens de não criar uma tabela distinta q menos tabelas no esquema final q maior performance devido a um menor número de tabelas a navegar m Desvantagens de não criar uma tabela distinta q menos rigor em termos de projecto do esquema q extensibilidade reduzida q maior complexidade

16 Modelo relacional - 16 Associações binárias (1 - n)... criação de 1 tabela distinta não criação de 1 tabela distinta

17 Modelo relacional - 17 Associações Ternárias

18 Modelo relacional - 18 Generalizações q 1. Tanto a superclasse como cada uma das subclasses são mapeadas para tabelas distintas abordagem logicamente correcta e extensível envolve várias tabelas, pelo que a navegação da superclasse para as subclasses pode tornar-se lenta q 2. Eliminação da navegação da superclasse-para-subclasse elimina a tabela da superclasse e replica todos os atributos dela em cada subclasse ideal, quando a superclasse possui poucos atributos e as subclasses muitos atributos não se pode garantir a unicidade dos valores dos atributos da superclasse q 3. Uma tabela para a superclasse criação de apenas uma tabela para a superclasse todos os atributos das subclasses são acrescentados à tabela da superclasse cada subclasse utiliza apenas os atributos que lhe pertencem, deixando os restantes com valores nulos viola a terceira forma normal abordagem interessante quando em presença de poucas subclasses (2 ou 3)

19 Modelo relacional - 19 Generalizações - 1

20 Modelo relacional - 20 Generalizações - 2

21 Modelo relacional - 21 Generalizações - 3

22 Modelo relacional - 22 Bases de Dados Relacionais m O mapeamento para BD Relacionais não é único q existem duas formas de mapear uma associação q existem três formas de mapear uma generalização q é necessário adicionar detalhes que não existem no modelo de objectos, tais como, chaves primárias e chaves candidatas, se um atributo pode ter valores nulos ou não q obriga à atribuição de um domínio a cada atributo q e obriga a listar os atributos mais frequentemente acedidos m Resumindo q criar um atributo id correspondente a cada classe q classe implementada por relação q associação muitos-para-muitos ou ternária implementada por relação q associação muitos-para-um implementada por atributo extra (id do lado 1) na relação do lado muitos

23 Modelo relacional - 23 Exemplo dos cursos Curso codcurso designacur Disciplina coddis sigla designadis Professor BIp nome morada telefone habilitação grupo Aluno BIa nome morada telefone data_nasc Turma ano letra plano segue atribuído lecciona resultado {chave:(disciplina, turma)} inscrito {chave:(BIa)} {chave:(aluno)} {chave:(codcurso)} {chave:(disciplina, aluno)} {chave:(coddis)} {chave:(codcurso, coddis)} {chave:(BIp)} {chave:(curso, turma)} {chave:(codcurso, ano, letra)}

24 Modelo relacional - 24 Tradução Relações obtidas automaticamente 1 Curso(curso-ID, codcurso, designacur) 2 Disciplina(disciplina-ID, coddis, sigla, designadis) 3 Turma(turma-ID, curso-ID, ano, letra) 4 Professor(prof-ID, bip, nome, morada, telefone, habilitação, grupo) 5 Aluno(aluno-ID, bia, nome, morada, telefone, data_nasc, turma-ID) 6 Plano(curso-ID, disciplina-ID) 7 Inscrito(disciplina-ID, aluno-ID, resultado) 9 Lecciona(prof-ID, disciplina-ID, turma-ID) classes associações relações só um conceito, maior uniformidade, menos operadores Em itálico, chaves alternativas

25 Modelo relacional - 25 qSimplificação: quando existir uma chave alternativa, o ID pode ser substituído por esta, em todas as ocorrências, e ignorado qé preferível, no modelo relacional, usar chaves naturais em vez de artificiais Chaves naturais Esquema relacional de Cursos 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) 6 Plano(codcurso, coddis) 7 Inscrito(coddis, bia, resultado) 9 Lecciona(bip, coddis, codcurso, ano, letra)

26 Modelo relacional - 26 Conteúdo das chaves m Quando os esquemas das relações são uma tradução do modelo de objectos: q relação vinda de uma classe: a chave de utilizador da classe é a chave da relação (Bia em Aluno) q relação vinda de uma associação muitos-para-muitos: chave tem, frequentemente, todos os atributos (Plano) q associação muitos-para-um de E 1,..., E k-1 em E k : as chaves de E 1,..., E k-1 formam uma chave (Lecciona) m Quando os atributos vêm de associações q associação muitos-para-um de E para F: o atributo em E é uma chave externa para F (Atribuído) q associação um-para-um entre E e F: tanto E como F podem conter a chave chave externa para a outra relação

27 Modelo relacional - 27 Associação característica m 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 q caso da turma num curso: turma 2B da LEIC e 2B da LGEI m 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 m diz-se que D corresponde a uma entidade fraca e que entre D e C existe uma associação característica q exemplo: classe de Facturas e classe de Linhas das facturas

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

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

30 Modelo relacional - 30 Tuplos pendentes m tuplo pendente - tuplo numa tabela que não tem par na outra, ao combinar duas relações m formas de reduzir o problema 1)impondo restrições de integridade referencial [se o valor V aparece em A de R 1, também tem que existir em B de R 2 ] 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 cnome em Encom só deve admitir valores que existam na chave de Cliente] 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


Carregar ppt "1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 URL: Modelo."

Apresentações semelhantes


Anúncios Google