BD 5

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 19

Modelo de Dados Relacional

Modelo de Dados Relacional e as


Restrições de um Banco de Dados
Relacional

Banco de Dados - Professor Ivan Pires

Modelo de Dados Relacional

• Conceitos do Modelo Relacional


– Representa o banco de dados como uma coleção
de relações.
– Comparação informal a um tabela.
• Cada linha representa uma coleção de valores de dados
relacionados
• Cada linha na tabela representa um fato que
corresponde a uma entidade ou relacionamento no
mundo real
• O nome da tabela o das colunas auxiliam na
interpretação dos significados dos valores de cada
linha

Banco de Dados - Professor Ivan Pires

1
Modelo de Dados Relacional

• Na terminologia do modelo relacional, uma


linha é chamada de tupla,
• um cabeçalho de coluna é chamado de
atributo,
• e a tabela é chamada de relação.
• O tipo de dados que descreve os tipos de
valores que podem aparecer em cada coluna é
chamado de domínio.

Banco de Dados - Professor Ivan Pires

Modelo de Dados Relacional

• Um domínio é um conjunto de valores


atômicos

• A especificação de um domínio é definida por


um tipo de dados do qual os valores de dados
que formam o domínio sejam retirados; e
• A especificação de um nome para este
domínio de modo a ajudar na interpretação
de seus valores.

Banco de Dados - Professor Ivan Pires

2
Modelo de Dados Relacional

• Exemplos:

• Numero_fone_br: conjunto de números de telefones válidos no Brasil com 11


dígitos

• Nome_pessoa: conjunto de cadeia de cacteres que representa os nomes das


pessoas

• Idades_empregados: possíveis idades dos empregados de uma empresa;


cada um deve ter um valor entre 15 e 80 anos de idade

• CPF: conjunto de 11 dígitos de números inteiros e válidos.

Banco de Dados - Professor Ivan Pires

Modelo de Dados Relacional

• Figura 5.1

Banco de Dados - Professor Ivan Pires

3
Modelo de Dados Relacional

• Características das Relações


– Ordenação de tuplas em uma relação
• A ordenação de tupla não é parte da definição de uma
relação;

• Muitas ordens podem ser implementadas;

• A definição de uma relação não define qualquer ordem.

Banco de Dados - Professor Ivan Pires

Modelo de Dados Relacional

• Notação do Modelo Relacional


– Um esquema de relação R de grau n é indicado por R(A1,
A2, A3, ..., An)
– Uma n-tupla t em uma relação r(R) é indicada por t= <v1,
v2, ..., vn), em que vi é o valor correspondente ao atributo
Ai
• t[Ai] e t.Ai referem-se ao valor vi em t do atributo Ai.

– As letra Q, R, S significam nomes de relação.


– As letra q, r, s significam estados da relação
– As letra t, u, v significam tuplas

Banco de Dados - Professor Ivan Pires

4
Modelo de Dados Relacional

• Notação do Modelo Relacional


– Ex.:
• Aluno
– (também indica o conjunto corrente de tuplas nessa relação
[estado])

• Aluno.Nome (atributo nome da relação aluno)

• Aluno.Idade (atributo idade da relação aluno)

• Aluno( Nome, CPF, ...)


– Refere-se apenas ao esquema da relação

Banco de Dados - Professor Ivan Pires

Modelo de Dados Relacional

• Restrições de domínio
– Especificam que dentro de cada tupla, o valor decada
atributo A deve ser um valor atômico do domínio
dom(A).
– Os tipos de dados associados aos domínios incluem:
• Inteiros (inteiro curto, inteiro e inteiro longo)
• Número reais (ponto flutuante e flutuante de precisão
dupla)

• Caracteres booleanos
• Cadeias de caracteres (data, hora, timestamp), etc.

Banco de Dados - Professor Ivan Pires

5
Modelo de Dados Relacional

• Restrições de chaves
– Uma relação é definida como um conjunto de tuplas

– Um conjunto de atributos identificadores são chamados de


superchave
• Especifica uma restrição de unicidade.

• Superchave pode ter atributos redundante, chave não.

– Uma chave mínima é quando pode-se remover atributos e ainda


persistir a unicidade na relação

– Um esquema de relação pode ter mais de uma chave.


• Cada chave é chamada de Chave Candidata.

• Indica-se uma das chaves candidatas como chave primária.

Banco de Dados - Professor Ivan Pires

Modelo de Dados Relacional

• Figura 5.4

Banco de Dados - Professor Ivan Pires

6
Modelo de Dados Relacional

• Restrição de integridade de entidade


– Nenhum valor de chave primária pode ser null

• Restrição de integridade referencial


– Classificada entre duas relações
– Mantêm a consistência entre as tuplas
– Uma tupla em uma relação, que faz referência a
outra relação, deve se referir a uma tupla
existente nessa relação.

Banco de Dados - Professor Ivan Pires

Modelo de Dados Relacional

• A chave estrangeira especifica a restrição de integridade


referencial entre os dois esquemas de relação R1 e R2
• Um conjunto de atributos FK do esquema da relação R1 é
uma chave estrangeira de R1, que faz referencia a relação
R2, se ela satisfazer as duas regras:
– Os atributos FK têm os mesmos domínios que os atributos da
chave primária PK de R2
– Um valor de FK em uma tupla ti, do estado corrente r1(R1), ou
ocorre como um valor de PK para alguma tupla t2 ou é null.

– t1[FK] = t2[PK] a tupla t1 faz referência ou se refere à tupla t2

Banco de Dados - Professor Ivan Pires

7
Modelo de Dados Relacional

• A chave estrangeira especifica a restrição de integridade


referencial entre os dois esquemas de relação R1 e R2
• Um conjunto de atributos FK do esquema da relação R1 é
uma chave estrangeira de R1, que faz referencia a relação
R2, se ela satisfazer as duas regras:
– Os atributos FK têm os mesmos domínios que os atributos da
chave primária PK de R2
– Um valor de FK em uma tupla ti, do estado corrente r1(R1), ou
ocorre como um valor de PK para alguma tupla t2 ou é null.

– t1[FK] = t2[PK] a tupla t1 faz referência ou se refere à tupla t2

Banco de Dados - Professor Ivan Pires

Modelo de Dados Relacional

• Outros tipos de restrições


– “O salário de um empregado não deve exceder o
do supervisor do empregado”

– “O número máximo de horas que um empregado


pode trabalhar por semana, em todos os projetos
é 56”

– Restrições impostas dentro do programa

– Gatilhos e Asserções.

Banco de Dados - Professor Ivan Pires

8
Modelo de Dados Relacional

• Operações de atualização e Tratamento de


Violações de Restrição
– Insert

– Delete

– Update

Banco de Dados - Professor Ivan Pires

9
10
Modelo de Dados Relacional

• Operação Delete
– Pode violar apenas a integridade referencial se a
tupla removida for referida por chaves
estrangeiras de outras tuplas no banco de dados.

Banco de Dados - Professor Ivan Pires

11
Modelo de Dados Relacional

• Operação Update
– Muda os valores de um ou mais atributos em uma
tupla de alguma relação R.

– É necessário especificar uma condição nos


atributos da relação para selecionar a tupla a ser
modificada.

– Verifica o domínio correto.

Banco de Dados - Professor Ivan Pires

SQL

• SQL-99
– Structured Query Language

– Possui comandos de dados, consulta e


atualizações.
• DDL e DML

Banco de Dados - Professor Ivan Pires

12
SQL

• Definição de dados e Tipos de Dados SQL


– Tabela, linha e coluna

– O principal comando SQL para a definição de


dados é o CREATE.
• Esquemas

• Tabelas (relações)

• Domínos

Banco de Dados - Professor Ivan Pires

SQL

• Esquemas e Catálogos
– Os privilégios para a criação de esquemas, tabela e outros
construtores deve ser explicitamente concedidos (granted) para
as contas de usuários relevantes.
– Um catálogo é uma coleção de esquemas em um ambiente SQL
que recebe um nome.

– Um ambiente SQL é uma instalação de um SGBD relacional-


padrão SQL.
– Um catálogo sempre contém um esquema especial chamado
INFORMATION_SCHEMA, que proporciona as informações sobre
todos os esquemas do catálogo e todos os descritores de seus
elementos.

Banco de Dados - Professor Ivan Pires

13
SQL

• Esquemas e Catálogos
– Um esquema SQL é identificado por um nome de
esquema e inclui uma identificação de autorização,
que indica o usuário ou a conta a qual o esquema
pertence, bem como os descritores de cada elemento
do esquema.

– Os elementos incluem: tabela, restrições, visões,


domínio e outros construtores.

– CREATE SCHEMA EMPRESA AUTHORIZATION JSMITH

Banco de Dados - Professor Ivan Pires

SQL

• CREATE TABLE
– Especifica uma nova relação, dando-lhe um nome e
especificando seus atributos e restrições iniciais

– Os atributos são definidos primeiro e, a cada atributo,


é dado um nome, um tipo para especificar o domínio
de seus valores e alguma restrição de atributo, como
NOT NULL

CREATE TABLE EMPREGADO

CREATE TABLE EMPRESA.EMPREGADO

Banco de Dados - Professor Ivan Pires

14
SQL

• Tipo de dados
– Numerico (int, smallint, float, double)
– Cadeia de caracteres (char, varchar)
– Bit-string
– Boolean
– Date e time
– Timestamp
– Interval

Banco de Dados - Professor Ivan Pires

SQL

• Tipo de dados

CREATE DOMAIN TIPO_SSN AS CHAR(9)

Banco de Dados - Professor Ivan Pires

15
SQL

– CREATE TABLE <nome da tabela>


(<definições de colunas>
<definição da chave primária>
<definições de chaves alternativas>
<definições de chaves estrangeiras>);

Figura 8.1

Banco de Dados - Professor Ivan Pires

SQL

Banco de Dados - Professor Ivan Pires

16
SQL

• Restrições de Atributos e Padrões

– É possível definir um valor default para um atributo


por meio da adição da cláusula DEFAULT <valor> na
definição de um atributo

– É possível limitar os valores do atributo ou de seu


domínio pelo uso da cláusula CHECK

– DNUMERO INT NOT NULL CHECK (DNUMERO > 0 AND DNUMERO <21)

Banco de Dados - Professor Ivan Pires

SQL

• Restrições de Chave e de Integridade Referencial


– A cláusula PRIMARY KEY
• DNUMERO INT PRIMARY KEY

– A cláusula UNIQUE define as chaves alternativas


(candidatas)

– A integridade referencial é especificada pela cláusula


FOREING KEY (chave estrangeira)

– Figura 8.1

Banco de Dados - Professor Ivan Pires

17
SQL

• Restrições de Chave e de Integridade Referencial

– A ação padrão é rejeitar


– Pode-se especificar uma ação alternativa:
• SET NULL = marcar nulo

• CASCADE = propagar

• SET DEFAULT

• Estas opções devem ser escolhidas com ON DELETE ou ON UPDATE

– Figura 8.2

Banco de Dados - Professor Ivan Pires

SQL

• Restrições de Chave e de Integridade


Referencial
• A restrição de integridade referencial pode ser
violadas quando as tuplas são inseridas ou
deletadas, ou quando os valores dos atributos
referentes à chave estrangeira ou à chave
primária forem modificadas.

Banco de Dados - Professor Ivan Pires

18
SQL

Alteração de Esquemas SQL

• DROP SCHEMA EMPRESA CASCADE


– Remove o esquema empresa com todas as suas tabelas,
domínios e outros elementos.

– Se utilizar o RESTRICT remove somente se não contiver


nenhum elemento.

• DROP TABLE DEPENDENTE CASCADE

Banco de Dados - Professor Ivan Pires

SQL

• Dependência Funcional
– 1ª forma normal

– 2ª forma normal

– 3ª forma normal

Banco de Dados - Professor Ivan Pires

19

Você também pode gostar