Instituto Federal de Educação, Ciência e
Tecnologia de São Paulo - IFSP
Campus de Caraguatatuba
Tecnólogo em Análise e Desenvolvimento de Sistemas
10 Semestre de 2013
Banco de Dados I – BD I
Prof. Lineu Mialaret
Aula 8: Modelo Relacional
Banco de Dados I
Aula 8 - 1/33
©Prof. Lineu Mialaret
Desenvolvimento de um
um Aplicativo de Banco de Dados (1)
Requisitos
+
Regras de
Modelo Lógico
Modelo Físico
Visão de
Sistema
Projeto
Negócio
Modelo Conceitual
Visão de
Negócio
Análise
Modelo Funcional
BD Operacional
Banco de Dados I
Aula 8 - 2/33
©Prof. Lineu Mialaret
Desenvolvimento de um
um Aplicativo de Banco de Dados (2)
M
Banco de Dados I
Aula 8 - 3/33
©Prof. Lineu Mialaret
Introdução (1)
 O Modelo Relacional estabeleceu-se como o primeiro modelo de
dados consolidado para aplicações comerciais.
 Os primeiros SGBD´s tiveram por base o Modelo Hierárquico e o
Modelo Rede. Esses dois antigos modelos de dados estão mais
próximos da implementação no nível físico que o Modelo
Relacional.
 Existe uma base teórica fundamental no Modelo Relacional, a
qual apóia o desenvolvimento de Aplicativos de Banco de Dados
Relacionais e permite o processamento eficiente das
necessidades de manipulação de informações de seus usuários.
 Atualmente, o Modelo Relacional está presente em numerosas
aplicações no âmbito
processamento de dados.
Banco de Dados I
de
aplicações
Aula 8 - 4/33
tradicionais
de
©Prof. Lineu Mialaret
Introdução (2)
 O Modelo Relacional foi introduzido pelo pesquisador da IBM
Edward Codd, em 1970, e gerou uma grande quantidade de
pesquisa acadêmica ao longo da década de 70.
 A Relational Model for Large Shared Data Banks, Communications of
the ACM, 13(6), June 1970, artigo disponível na página da matéria.
 Características marcantes desse modelo de dados:
 formal por natureza
 com estruturas de dados simples e uniformes.
 O Modelo Relacional baseia-se na teoria matemática de conjuntos,
onde os dados de um determinado domínio de conhecimento são
representados por meio de uma coleção de relações ou tabelas.
 É o modelo lógico de BD mais utilizado comercialmente. Hoje
existem dezenas de SGBD´s relacionais no mercado, para todas as
plataformas de hardware e software existentes.
 Ex: Oracle, Sybase, Microsoft, etc.
Banco de Dados I
Aula 8 - 5/33
©Prof. Lineu Mialaret
Modelo Relacional - Conceitos (1)
 Um domínio D é um conjunto de valores atômicos, ou seja, cada
valor nesse domínio é indivisível. Um tipo de dado ou formato é
também associado a cada domínio.
 Exemplo:
 conjunto dos números inteiros, das cores disponíveis, dos brasileiros,
etc.
 Produto cartesiano: Sejam D1,D2,D3,...,Dk domínios de tipos de
dados. O produto cartesiano representado por
D1 x D2 x D3 x ... x Dk
é o conjunto de todas as k-tuplas (a1,a2,...,ak) onde cada ai  Di.
 Exemplo: Sejam
k = 2 (denominado de grau da relação)
D1 = {0,1}
D2 = {a,b,c}
Então R = {(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)} é uma relação.
 Uma relação r é um subconjunto do produto cartesiano de domínios.
Banco de Dados I
Aula 8 - 6/33
©Prof. Lineu Mialaret
Modelo Relacional - Conceitos (2)
 Um Banco de Dados Modelo Relacional consiste numa coleção de





tabelas (relacionais), cada uma das quais designadas com um
nome único.
Uma linha numa tabela representa um relacionamento entre um
conjunto de valores.
Uma vez que essa tabela representa uma coleção de tais
relacionamentos, há uma estreita correspondência entre o conceito
de tabela e o conceito matemático de relação, a partir da qual se
originou o nome desse modelo de dados.
Seja a tabela Conta apresentada a seguir na próxima transparência.
Ela possui três colunas: numero_conta, nome_agencia e saldo.
Essas colunas são denominadas de atributos.
Para cada atributo da tabela Conta há um conjunto de valores
permitidos, ou seja, o domínio do atributo.
Por exemplo, para o atributo numero_conta, o domínio é o conjunto
de todos os números de contas permitidos.
Banco de Dados I
Aula 8 - 7/33
©Prof. Lineu Mialaret
Modelo Relacional - Conceitos (3)
numero_conta
nome_agencia
saldo
Exemplo da relação ou tabela Conta.
Banco de Dados I
Aula 8 - 8/33
©Prof. Lineu Mialaret
Modelo Relacional - Conceitos (4)
 Suponha que D1 denote esse conjunto de valores de contas
permitidos, D2 identifique o conjunto de todas as agências e D3 o
conjunto de todos os valores de saldos permitidos.
 Qualquer linha da tabela Conta consiste necessariamente de uma
tupla (v1,v2,v3) em que v1 é um numero de conta, (ou seja, v1 está
no domínio D1), v2 é o nome de uma agência e v3 representa um
valor de saldo.
 Em geral, a tabela Conta é um subconjunto de
D1 x D2 x D3
 Uma tabela de n atributos deve ser um subconjunto de
D1 x D2 x ... x Dn
 Matematicamente se define uma relação como um subconjunto de
um produto cartesiano de uma lista de domínios.
 Em essência, tabelas são relações, e pode-se usar os termos
matemáticos relação e tupla como sinônimos de tabela e linha.
Banco de Dados I
Aula 8 - 9/33
©Prof. Lineu Mialaret
Modelo Relacional - Conceitos (5)
 Formalmente, dados os conjuntos D1,D2,…,Dn, uma relação r é um
subconjunto de D1 x D2 x … x Dn
 Assim, uma relação pode ser entendida como um subconjunto de
tuplas (a1,a2,…,an) onde cada ai  Di
 Exemplo: sejam os valores dos seguintes atributos:
nome_cliente
= {Jones, Smith, Curry, Lindsay}
endereco_cliente = {Main, North, Park}
cidade_cliente
= {Harrison, Rye, Pittsfield}
 Então r = {
(Jones, Main, Harrison),
(Smith, North, Rye),
(Curry, North, Rye),
(Lindsay, Park, Pittsfield)
}
é uma relação sobre o produto cartesiano de:
nome_cliente x endereco_cliente x cidade_cliente
Banco de Dados I
Aula 8 - 10/33
©Prof. Lineu Mialaret
Características dos Atributos
 Cada atributo (coluna) de uma relação (tabela) tem um nome.
 O conjunto de valores permitidos para cada atributo é chamado
de domínio do atributo.
 Os valores dos atributos devem ser atômicos, ou seja, os
atributos são indivisíveis.
 Por exemplo:
 atributos multivalorados não são atômicos
 atributos compostos não são atômicos.
 O valor especial nulo (null) faz parte de qualquer domínio.
Banco de Dados I
Aula 8 - 11/33
©Prof. Lineu Mialaret
Esquema de Relação
 Um esquema de relação R, denotado por R(A1,A2,...,An) é um
conjunto de atributos {A1,A2,...,An}.
 Cada atributo Ai é o nome do papel desempenhado por algum
domínio Di no esquema de relação R. O domínio Di é chamado de
domínio de Ai e é denotado por dom(Ai).
 Um
esquema
de
relação
é usado
esquematicamente uma relação (tabela).
para
descrever
 O nome da relação é R e o número de atributos n no esquema é
denominado de grau da relação.
 Exemplo:
ESTUDANTE(Nome, CPF, Tel_Res, Endereco, Tel_Trab, Idade, CR) ou
Estudante(Nome, CPF, Tel_Res, Endereco, Tel_Trab, Idade, CR)
Banco de Dados I
Aula 8 - 12/33
©Prof. Lineu Mialaret
Instância de Relação (1)
 Uma
instância da relação r de um esquema de relação
R(A1, A2,...,An), denotado por r(R), é um conjunto de tuplas (linhas)
r = {t1,t2,...,tm}.
 Cada tupla é uma lista ordenada de n valores t = {v1,v2,...,vn} onde
cada valor vi é um elemento de um domínio dom(Ai) ou um valor
nulo (null) especial.
 São também usados os termos intenção da relação para o
esquema R e extensão da relação para uma instância r(R) da
relação.
 Portanto, uma instância de relação r(R) é tal que
r(R)  (dom(A1) X dom(A2) X ... X dom(An))
ou seja, um subconjunto do produto cartesiano de uma
lista de domínios
Banco de Dados I
Aula 8 - 13/33
©Prof. Lineu Mialaret
Instância de Relação (2)
Exemplo de uma Instância de uma Relação.
Banco de Dados I
Aula 8 - 14/33
©Prof. Lineu Mialaret
Instância de Relação (3)
 Os valores correntes (instância da relação) são especificados por
uma tabela.
 Um elemento t da instância de relação r(R) é uma tupla,
representada por uma linha da tabela.
atributos
nome_cliente endereco_cliente cidade_cliente
relação
Jones
Smith
Curry
Lindsay
Main
North
North
Park
Harrison
Rye
Rye
Pittsfield
tuplas
Cliente
Banco de Dados I
Aula 8 - 15/33
©Prof. Lineu Mialaret
Características de uma Relação (1)
 A ordem das tuplas é irrelevante (as tuplas ou linhas da tabela podem
ser armazenadas em qualquer ordem arbitrária).
 Exemplo: a relação Conta com as suas tuplas desordenadas.
numero_conta
nome_agencia
saldo
Conta
Banco de Dados I
Aula 8 - 16/33
©Prof. Lineu Mialaret
Características de uma Relação (2)
 Requisitos de uma relação ou tabela (relacional) no Modelo
Relacional:
 as linhas (tuplas) da tabela contém dados sobre uma ou mais entidades
 as colunas da tabela contém dados sobre atributos de uma entidade
 as células da tabela só podem conter um único valor
 todos os valores de uma coluna são do mesmo tipo
 cada coluna tem um nome único
 a ordem das colunas não é importante
 a ordem das linhas (tuplas) não é importante
 não pode haver duas linhas (tuplas) idênticas.
Banco de Dados I
Aula 8 - 17/33
©Prof. Lineu Mialaret
Um Exemplo de uma Relação: Empregado (1)
NumeroEmpregado
PreNome
SobreNome
100
Mary
Abermany
700
Jerry
Caldera
300
Alea
Copley
40
Murugan
Jackson
Banco de Dados I
Aula 8 - 18/33
©Prof. Lineu Mialaret
Um Exemplo de uma Relação: Employee (2)
Banco de Dados I
Aula 8 - 19/33
©Prof. Lineu Mialaret
Um Exemplo de uma Tabela Não Relacional (1)
Cells of the table hold a single value
EmployeeNumber
100
Phone
335-6421,
LastName
Abermany
454-9744
700
215-7789
Caldera
300
610-9850
Copley
40
299-9090
Jackson
Banco de Dados I
Aula 8 - 20/33
©Prof. Lineu Mialaret
Um Exemplo de uma Tabela Não Relacional (2)
No two rows may be identical
EmployeeNumber
Phone
LastName
100
335-6421
Abermany
700
215-7789
Caldera
300
610-9850
Copley
100
335-6421
Abermany
40
299-9090
Jacksoni
Banco de Dados I
Aula 8 - 21/33
©Prof. Lineu Mialaret
Terminologia no Modelo Lógico Relacional
 Sinônimos no Modelo Relacional:
Banco de Dados I
Relação
Tupla
Atributo
Tabela
Linha
Coluna
Arquivo
Registro
Campo
Aula 8 - 22/33
©Prof. Lineu Mialaret
Relational Database
 A relational database consists of multiple relations.
 Information about an enterprise is broken up into parts, with each
relation storing one part of the information.
 A bank system example:
 Account: stores information about accounts
 Depositor: stores information about which customer owns which
account
 Customer: stores information about customers
 Storing
all information as a single relation such
Bank(account-number,balance,customer-name,...)
as
results in:
 repetition of information (e.g. two customers own an account)
 the need for null values (e.g. represent a customer without an account).
 Normalization theory (Database Course II) deals with how to design
relational well suited schemas.
Banco de Dados I
Aula 8 - 23/33
©Prof. Lineu Mialaret
Notação do Modelo Relacional (1)
 Um esquema de relação R de grau n é representado como
R(A1,A2,...,An).
 Uma tupla numa instância de relação r(R) é representada como
t = {v1,v2,...,vn} onde cada vi é o valor correspondente ao atributo Ai.
 t[Ai] refere-se ao valor vi na tupla t para o atributo Ai.
 t[Au,Av,...,Az], onde Au,Av,...,Az são atributos de R, refere-se à
subtupla de valores <vu,vv,...,vz> da tupla t correspondente.
 Letras maiúsculas (Q, R, S) denotam nomes de relações.
 Letras minúsculas (q, r, s) denotam instâncias de relações.
 As letras (t, u, v) denotam as tuplas.
Banco de Dados I
Aula 8 - 24/33
©Prof. Lineu Mialaret
Notação do Modelo Relacional (2)
 Em geral, o nome de uma relação como por exemplo
ESTUDANTE indica a instância corrente da relação, enquanto
que ESTUDANTE(Nome,CPF,RG,Endereço,...) refere-se ao
esquema da relação.
 Nomes de atributos são algumas vezes qualificados com o nome
da relação (tabela) à qual eles pertencem.
 Exemplo:
 ESTUDANTE.Nome
 ESTUDANTE.CPF
 Estudante.Endereco
Banco de Dados I
Aula 8 - 25/33
©Prof. Lineu Mialaret
Chaves no Modelo Relacional (1)
 Uma relação é definida como um conjunto de tuplas distintas.
 Superchave (SK): são subconjuntos de atributos de um esquema de
relação R com a propriedade de que duas tuplas não têm a mesma
combinação de valores para esses atributos.
 Para quaisquer duas tuplas distintas t1 e t2 numa instância r da
relação R,
t1[SK]  t2[SK]
 Todo esquema de relação tem pelo menos uma superchave, que é
aquela constituída pelo conjunto de todos os seus atributos.
 Chave (K): num esquema de relação R, a chave K é uma superchave
mínima, isto é, uma superchave da qual não se pode remover
nenhum atributo, ou do contrário se tem um conjunto de atributos
que não se constitui numa superchave.
 Exemplo:
 {CPF} é uma chave de ESTUDANTE, e qualquer conjunto de atributos
que inclua CPF, tal como por exemplo {CPF,Nome,Idade} é uma
superchave de ESTUDANTE.
Banco de Dados I
Aula 8 - 26/33
©Prof. Lineu Mialaret
Chaves no Modelo Relacional (2)
 Chave Candidata: uma chave é determinada pelo significado
dos atributos no esquema da relação. Em geral, um esquema de
relação pode ter mais de uma chave, como por exemplo {CPF} e
{RG}. Neste caso, cada uma das chaves é chamada de chave
candidata. Chaves candidatas devem superchaves mínimas.
 Chave Primária (PK): uma das chaves candidatas escolhida
para identificar distintamente as tuplas da relação.
 Por convenção, representa-se a chave primária sublinhando-se
os atributos que a compõem.
 As
chaves candidatas que não são
denominadas de Chaves Alternativas.
Banco de Dados I
Aula 8 - 27/33
selecionadas
são
©Prof. Lineu Mialaret
Aspectos de Integridade (1)
 Aspectos de integridade de um Modelo Relacional de Banco de
Dados constituem-se num dos mais importantes princípios da
construção do mesmo.
 Esses aspectos são materializados por meio de restrições de
integridade impostas ao modelo.
 Dessa forma pode-se esquematizar resumidamente um Banco de
Dados Relacional da seguinte forma:
Banco de Dados I
Aula 8 - 28/33
©Prof. Lineu Mialaret
Aspectos de Integridade (2)
 As restrições de integridade resguardam o Banco de Dados contra




danos acidentais.
Elas dizem respeito à correção, consistência e segurança, por
exemplo, dos dados armazenados.
A garantia da integridade é a garantia de que o estado dos dados do
Banco de Dados está sempre coerente com a realidade para o qual
o mesmo foi projetado e criado.
Não basta apenas ter um esquema com os dados eficientemente
bem estruturados, se não existir nenhum controle sobre os valores
dos mesmos.
Se não há o gerenciamento de integridade, pode-se ter situações
como a ocorrência de dados desconhecidos, como por exemplo:
 a ausência de valor em atributos significativos, como empregado sem
código e relacionamentos incorretos ou inexistentes, ou
 a ocorrência de situações não triviais, como departamentos
sem gerente ou alguém sendo gerente de mais de um departamento.
Banco de Dados I
Aula 8 - 29/33
©Prof. Lineu Mialaret
Restrições de Integridade (1)
 Restrições de integridade -
 Restrição de domínio:
 Os valores de cada atributo Ai devem ser atômicos e pertencer a
um determinado (domínio) dom(Ai).
 Restrição de chave:
 Todo esquema de relação deve ter uma chave e os valores
destas chaves devem ser distintos.
 Restrição de integridade de entidade:
 Nenhum valor de chave primária pode ser nulo (null), porque
este valor identifica a tupla numa relação.
 Restrição de integridade referencial:
 Especificada para manter a consistência entre tuplas de duas
relações. Uma tupla numa relação que se refere a uma outra
relação deve se referir a uma tupla existente naquela relação. A
integridade referencial é especificada através do conceito de
chave estrangeira (FK, “foreign key”).
Banco de Dados I
Aula 8 - 30/33
©Prof. Lineu Mialaret
Restrições de Integridade (2)
 Chave Estrangeira (FK): Sejam dois esquemas de relações R1 e
R2. Um atributo de R2 é dito ser chave estrangeira (ou atributo
transposto ou atributo de ligação) se ele, podendo ou não ser
chave primária de R2, é chave primária de R1. Os esquemas de
relações R1 e R2 não são necessariamente distintos.
 Exemplo:
r1
r2
Banco de Dados I
Aula 8 - 31/33
©Prof. Lineu Mialaret
Restrições de Integridade (3)
 Se uma instância de relação r2 inclui uma chave estrangeira
correspondente a chave primária de uma instância de relação r1,
então todo valor da chave estrangeira de r2 deve ser:
 igual ao valor da chave primária em alguma tupla de r1, isto é,
t1[PK] = t2[FK]. Diz-se que a tupla t2 referencia ou se refere à tupla t1,
ou
 totalmente nulo (null), ou seja, cada valor do atributo que participa da
chave estrangeira deve ser nulo.
 Num Banco de Dados com muitas relações, haverá usualmente
muitas restrições de integridade referencial. Para especificar estas
restrições, deve-se primeiro ter um claro entendimento do
significado de cada conjunto de atributos nos diversos esquemas de
relação do Banco de Dados.
 Restrições de integridade referencial geralmente surgem dos
relacionamentos entre as entidades representadas pelos esquemas
de relação.
Banco de Dados I
Aula 8 - 32/33
©Prof. Lineu Mialaret
Restrições de Integridade (4)
 Restrições de integridade semântica: ou regras de negócio, são
as restrições especificadas e mantidas num Banco de Dados
Relacional, por exemplo, ou pelos programas de aplicação ou
implementadas pelo próprio SGBD (Sistema Gerenciador de
Banco de Dados com capacidade ativa), por meio de:
 Visões (views)
 Gatilhos (triggers)
 Procedimentos Armazenados (stored procedures).
 Exemplos:
 “o salário de um empregado não deve ser maior do que o salário do
seu supervisor”
 “o número máximo de horas por semana que um empregado pode
trabalhar em projetos é 56”.
Banco de Dados I
Aula 8 - 33/33
©Prof. Lineu Mialaret
Download

Aula 8 - Lineu FS Mialaret