©Silberschatz, Korth and Sudarshan (Modificado)3.1.1Database System Concepts Capítulo 3: Modelo...
-
Upload
catarina-alto -
Category
Documents
-
view
223 -
download
0
Transcript of ©Silberschatz, Korth and Sudarshan (Modificado)3.1.1Database System Concepts Capítulo 3: Modelo...
©Silberschatz, Korth and Sudarshan (Modificado)3.1.1Database System Concepts
Capítulo 3: Modelo RelacionalCapítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução a tabelas de uma Esquema ER Álgebra Relacional Operações Estendidas da Álgebra Relacional Modificação da Base de Dados Vistas
©Silberschatz, Korth and Sudarshan (Modificado)3.1.2Database System Concepts
Modelos de registosModelos de registos Os modelos ER ajudam na modelização dos dados Mas não ajudarão como modelo para “tratamento” dos dados
armazenados. Como é que os dados estão armazenados? Como consultar os dados? Como alterar os dados?
Ajudava mais ver os dados organizados em tabelas ... ou, usando nomenclatura matemática, em relações
©Silberschatz, Korth and Sudarshan (Modificado)3.1.3Database System Concepts
Exemplo de uma RelaçãoExemplo de uma Relação
©Silberschatz, Korth and Sudarshan (Modificado)3.1.4Database System Concepts
Estrutura BásicaEstrutura Básica Formalmente, dados os conjuntos D1, D2, …. Dn,, uma relação r é um
subconjunto de
D1 x D2 x … x Dn
Portanto, uma relação é um conjunto de tuplos (a1, a2, …, an) em que ai Di
Exemplo: Secustomer-name = {Jones, Smith, Curry, Lindsay}customer-street = {Main, North, Park}customer-city = {Harrison, Rye, Pittsfield}
Então r = { (Jones, Main, Harrison), (Smith, North, Rye), (Curry, North, Rye), (Lindsay, Park, Pittsfield)} é uma relação em customer-name x customer-street x customer-city
©Silberschatz, Korth and Sudarshan (Modificado)3.1.5Database System Concepts
AtributosAtributos Todo o atributo de uma relação tem um nome O conjunto de valores que um atributo pode tomar é chamado
de domínio do atributo. Normalmente, obriga-se a que os valores dos atributos sejam
atómicos, ou seja, indivisíveis: E.g. atributos multivalor não são atómicos E.g. atributos compostos não são atómicos
O valor especial null pertence a todos os domínios O valor null causa complicações na definição de muitas
operações Ignoraremos o efeito dos valores nulos em grande parte da
apresentação mas consideraremos posteriormente as suas implicações
©Silberschatz, Korth and Sudarshan (Modificado)3.1.6Database System Concepts
Esquema de RelaçãoEsquema de Relação A1, A2, …, An são atributos
R = (A1, A2, …, An ) é um esquema de relação
E.g. Customer-schema = (customer-name, customer-street, customer-city)
r(R) é uma relação no esquema de relação RE.g. customer(Customer-schema)
©Silberschatz, Korth and Sudarshan (Modificado)3.1.7Database System Concepts
Instância de RelaçãoInstância de Relação Os valores correntes (instância da relação) de uma relação
são descritos por uma tabela Um elemento t de r é um tuplo, representado por uma linha da
tabela
JonesSmithCurry
Lindsay
customer-name
MainNorthNorthPark
customer-street
HarrisonRyeRye
Pittsfield
customer-city
customer
atributos
tuplos
©Silberschatz, Korth and Sudarshan (Modificado)3.1.8Database System Concepts
As relação não estão ordenadasAs relação não estão ordenadas A ordem dos tuplos é irrelevante (os tuplos podem ser armazenadas segundo qualquer ordem) E.g. relação account com os tuplos desordenados
©Silberschatz, Korth and Sudarshan (Modificado)3.1.9Database System Concepts
Base de DadosBase de Dados Uma base de dados é constituída por diversas relações A informação acerca de uma empresa é dividida em partes, em
que cada relação armazena uma parte dessa informação
E.g.: account : armazena informação acerca de contas depositor : regista os clientes que podem movimentar as contas customer : guarda informação acerca de clientes
O armazenamento da informação numa única relação bank(account-number, balance, customer-name, ..)origina repetição de informação (e.g. dois clientes que detêm uma conta) A necessidade de valores nulos (e.g. para representar um cliente
que não possui uma conta) A teoria da normalização (capítulo 7) especifica como se devem
desenhar esquemas de relação
©Silberschatz, Korth and Sudarshan (Modificado)3.1.10Database System Concepts
ChavesChaves Seja K R K é uma super-chave de R se os valores de K são suficientes
para identificar um único tuplo de toda a relação r(R) possível. Por “relação possível” entende-se uma instância r que pode existir na empresa que estamos a modelar.Exemplo: {customer-name, customer-street} e {customer-name} são ambas super-chaves de Customer, se não é possível dois clientes terem o mesmo nome.
K é uma chave candidata se K é minimalExemplo: {customer-name} é uma chave candidata para Customer, dado ser uma super-chave (assumindo que dois clientes não podem ter o mesmo nome), e nenhum subconjunto dela é uma super-chave.
©Silberschatz, Korth and Sudarshan (Modificado)3.1.11Database System Concepts
A relação A relação customercustomer
©Silberschatz, Korth and Sudarshan (Modificado)3.1.12Database System Concepts
A relação A relação depositordepositor
©Silberschatz, Korth and Sudarshan (Modificado)3.1.13Database System Concepts
DER para um bancoDER para um banco
©Silberschatz, Korth and Sudarshan (Modificado)3.1.14Database System Concepts
Derivação de relações a partir de um DERDerivação de relações a partir de um DER
Uma base de dados que seja representável por um DER pode ser também representada por intermédio de um conjunto de relações.
Para cada conjunto de entidades e para cada conjunto de associações gera-se uma única relação (ou tabela) com o nome do conjunto de entidades ou conjunto de associações respectivo.
A conversão de um DER para um esquema de tabelas constitui a base para a derivação do desenho de uma base de dados relacional a partir de um DER
©Silberschatz, Korth and Sudarshan (Modificado)3.1.15Database System Concepts
Conjuntos Conjuntos de Entidades como Tabelasde Entidades como Tabelas
Um conjunto forte de entidades reduz-se a uma relação com os mesmos atributos
©Silberschatz, Korth and Sudarshan (Modificado)3.1.16Database System Concepts
Conjuntos de Entidades FracasConjuntos de Entidades Fracas Um conjunto de entidades fracas é representado por uma
relação que inclui colunas para a chave primária do conjunto de entidades identificador, juntamente com as colunas para os restantes atributos do conjunto de entidades fracas.
©Silberschatz, Korth and Sudarshan (Modificado)3.1.17Database System Concepts
Conjuntos de AssociaçõesConjuntos de Associações Um conjunto de associações muitos para muitos é representado com uma tabela com
colunas para as chaves primárias dos dois conjuntos de entidades participantes, com colunas adicionais para os atributos próprios (ou descritivos) do conjunto de associações.
E.g.: tabela para o conjunto de associações borrower
©Silberschatz, Korth and Sudarshan (Modificado)3.1.18Database System Concepts
Determinação de Chaves a partir do DERDeterminação de Chaves a partir do DER
Conjunto de entidades fortes. A chave primária do conjunto de entidades é a chave primária da relação.
Conjunto de entidades fracas. A chave primária da relação consiste na união da chave primária do conjunto de entidades forte com o discriminante do conjunto de entidades fracas.
Conjunto de relações. A união das chave primárias dos conjuntos de entidades relacionados é uma super-chave da relação. Para conjuntos de associações binários um-para-muitos, a chave
primária do lado “muitos” é a chave primária da relação. Para conjuntos de associações um-para-um, a chave primária da
relação é a chave primária de um dos conjuntos de entidades. Para conjuntos de associações muitos-para-muitos, a união das
chaves primárias é a chave primária da relação.
©Silberschatz, Korth and Sudarshan (Modificado)3.1.19Database System Concepts
Tabelas RedundantesTabelas Redundantes Conjuntos de associações muitos-para-um e um-para-muitos, totais
no lado muitos podem ser representados adicionando atributos extra ao lado muitos contendo a chave primária do outro conjunto participante.
E.g.: Em vez de se criar uma tabela para a associação account-branch, adicionar uma coluna branch à tabela derivada a partir do conjunto de entidades account.
©Silberschatz, Korth and Sudarshan (Modificado)3.1.20Database System Concepts
Redundância de Tabelas (Cont.)Redundância de Tabelas (Cont.) Para conjuntos de associações um-para-um, qualquer dos lados pode
receber a chave primária do outro lado. Se a participação é parcial no lado muitos, a substituição da tabela por
uma coluna extra pode levar à ocorrência de valores nulos. É redundante a tabela correspondente ao conjunto de associações
relacionando um conjunto de entidades fracas com o seu conjunto identificador. E.g. A tabela payment já contém a informação que apareceria na
tabela loan-payment (i.e., as colunas loan-number e payment-number).
©Silberschatz, Korth and Sudarshan (Modificado)3.1.21Database System Concepts
Derivação de Tabelas para a EspecializaçãoDerivação de Tabelas para a Especialização
Método 1: Formar uma tabela para a entidade de maior nível (mais geral) Criar uma tabela para cada conjunto de entidades de nível abaixo,
incluindo a chave primária da entidade acima e os atributos locais.
table table attributespersonname, street, city customername, credit-ratingemployeename, salary
Desvantagem: obter a informação acerca de employee (por exemplo) obriga à consulta de duas tabelas
©Silberschatz, Korth and Sudarshan (Modificado)3.1.22Database System Concepts
Derivação de Tabelas para a EspecializaçãoDerivação de Tabelas para a Especialização
Método 2: Formar uma tabela para cada conjunto de entidades com os
atributos locais e herdadostable table attributes
personname, street, citycustomername, street, city, credit-ratingemployee name, street, city, salary
Se a especialização é total, não há necessidade de criar uma tabela para a entidade mais geral (person)
Desvantagem: street e city podem ser duplicados para pessoas que são simultaneamente clientes e empregados
©Silberschatz, Korth and Sudarshan (Modificado)3.1.23Database System Concepts
Relações Correspondendo à Relações Correspondendo à AgregaçãoAgregação
Para representar agregações, criar uma tabela com a chave primária da associação agregada, a chave primária do conjunto de entidades
participante Restantes atributos descritivos
©Silberschatz, Korth and Sudarshan (Modificado)3.1.24Database System Concepts
Diagrama do esquema para o bancoDiagrama do esquema para o banco