Método comum de identificação de domínio: definir um tipo

Livre

0
0
23
1 year ago
Preview
Full text

ABORDAGEM ENTIDADE RELACIONAMENTO

  Introdução Domínios Tabelas Valores vazios Chaves Restrições de integridade

  Proposta de Ted Codd (1970) Principal modelo usado nos sistemas de gerência de banco de dados do tipo relacional

  Existência de outros tipos de sistemas no mercado, além dos SGBD relacionais Claro predomínio dos SGBD relacionais

  

Surgimento de conceitos usados no projeto de um

banco de dados em combinação com a abordagem relacional, como a normalização

  

Composição de um modelo relacional: tabelas ou

relações

  Tabela: terminologia mais comum nos produtos

  comerciais e na prática

  

Relação: mais comum na área acadêmica e nos livros

  texto (utilizada na literatura original sobre a abordagem relacional) Conjunto de valores atômicos

  Atomicidade: cada valor no domínio é indivisível em se tratando de

  modelo relacional formal Método comum de identificação de domínio: definir um

  tipo de dado do qual são retirados os valores de dados que

  formam o domínio Especificação de

  nome de domínio: auxílio na intepretação

  de seus valores Exemplos de definições

   !"# $ % & "&'() &'$: conjunto de números de telefone com

  dez dígitos válidos no Brasil Associação de um tipo de dado ou formato para cada domínio Exemplos

  

!"# $ % & "$ ('$: cadeias ou sequências de

caracteres no formato , onde cada é um dígito e os dois primeiros dígitos representam um código de área de telefone válido

  !: cadeias ou sequências de caracteres

  • *'* !: números inteiros entre 15 e 80

  Definição: conjunto não ordenado de linhas ( tuplas, na terminologia acadêmica)

  Cada linha é composta por uma série de campos (valor de atributo, na terminologia acadêmica) Correspondência entre linhas e ocorrências de entidades e relacionamentos de um DER

  

Cada campo é identificado por nome de campo

nome de atributo, na terminologia acadêmica)

  (

  Exemplo: representação gráfica

  Cada linha é uma representação de dados específicos de um aluno (uma ocorrência particular da entidade) Nomes de colunas: usados para indicar como são interpretados os valores de dados em cada linha, com base na coluna em que cada valor se encontra

  FUNCIONARIO Exemplo: tabela

  , Esquema relacional: usado para descrição textual de uma

  1 , v

  ): conjunto de n linhas ou tuplas

  Sintaxe: r = {t

  1 , t

  2 , ..., t n

  } Tupla t n

  : lista ordenada de n valores t = <v

  2 , ..., v n

  1 , A

  > Cada valor v i

  

, 1 ≤ i ≤ n, é um elemento de

dom(A i

  ) ou é um valor especial NULL Valor i

  6ésimo na tupla t (correspondente ao atributo A i

  ): referenciado como t[A i

  ] ou t.A i

  2 , ..., A n

  Relação (ou estado de relação) r de um esquema relacional R(A

  tabela ou relação Sintaxe:

  n

  1 , A

  2 , ..., A n

  ) R: nome da tabela ou relação

  Campo ou atributo A

  n

  : nome de um papel desempenhado por algum domínio D no esquema da tabela ou relação R Domínio de A

  : indicado por dom(A

  

ALUNO (Nome: string, CPF: string, Endereco: string, Telefone: string)

,

  n )

  Representação gráfica (diagrama) de esquema relacional: exemplo

  

Grau (ou aridade) de tabela ou relação: número de campos

  ou atributos n do esquema da relação Exemplo

  ALUNO (Nome, CPF, Endereco, Telefone)

  Variante da sintaxe: acréscimo de definição de tipos de dados usados

  (ou t[i] se usarmos a notação posicional)

  , Exemplo

  Tupla # = -. '&) $ '/)*! &01 .233 444 35367801 . / &)*' *'

  '91 32:301 ; #< = ou # = -. '&) $ '/)*! &0; #< 1 $ % & 1 &* ( = ou # > 1 $ % & 1 &* ( ? =

  • -.233 444 35367801 1 . / &)*' *' '91 32:30;

  Análise comparativa: tabela x arquivo convencional )#@ ) 'A $' B )/

  Ordenamento Linhas não estão Aplicativos responsáveis pela ordenadas (ordem de manutenção dos dados mantêm recuperação arbitrária, controle sobre ordem de a menos que a armazenamento, com possibilidade instrução de consulta de referenciamento de registros por especifique a) sua posição relativa

  Valores de e Possibilidade de campos campos compostos por outros campos

C

  Conceito de que o valor de um determinado campo ou atributo em uma linha específica é desconhecido ou inexistente (ou ainda não foi especificado) Terminologia: uso da expressões “nulo” ou “null” (esta última, a palavra em inglês)

  Exemplo: o campo de telefone é vazio ou nulo para a linha referente ao aluno Daniel Davidson

  Campos obrigatórios: campos para os quais não são

  admitidos valores vazios ou nulos nas linhas

  Campos opcionais: campos nos quais podem aparecer

  valores vazios ou nulos nas linhas

D

  

Conceito básico para estabelecer relações entre

linhas de tabelas Tipos de chaves

  E'/ + ) F )' E'/ '$# &'#)/' E'/ !# '&G ) '

D

  Superchave: coluna ou combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela

  Restrição de exclusividade

  Dados duas tuplas distintas quaisquers

  t1 e t2 em uma

  relação r do esquema relacional R,

  t1[Superchave] ≠ t2[Superchave]

E'/ : superchave com a propriedade adicional

de que a remoção de qualquer coluna deixa um conjunto de colunas que não é mais uma

  Superchave mínima Propriedade invariável no tempo: permanecer verdadeira

  quando for inserido uma nova linha ou tupla Toda chave é uma superchave, mas não o contrário Tabelas com mais de uma chave: cada uma das chaves é chamada de

  chave candidata

D

  Chave primária: chave candidata designada para identificação de linhas em uma tabela, a partir dos valores das colunas envolvidas na referida chave

  

Campos que compõem a chave primária de uma tabela

são normalmente obrigatórias (ao contrário dos demais)

Convenção: nomes de colunas da chave são sublinhadas

  Exemplo: indicação de como chave primária da tabela ALUNO

O valor de CPF 305.610.243 51 identifica exclusivamente a

linha ou tupla correspondente à Bruno Baga na tabela

D

  Exemplo: tabela

  VEICULO

  Duas chaves candidatas:

  Placa e Numero_chassi Não é admitido a existência de dois veículos com a mesma placa ou o mesmo número de chassi

  Escolha de

  Placa como chave primária

D

  DEPENDENTE Exemplo: tabela

  Chave primária : constituída por mais de um campo ou atributo Um dos campos que compõe a chave não é suficiente para distinguir uma linha ou tupla das demais

  É possível a existência de dois ou mais dependentes com o mesmo número de dependente, mas vinculados a funcionários distintos (de códigos de funcionários distintos) Determinado código de funcionário (campo

  Codigo_Func)

pode aparecer em diferentes linhas, assim como um

determinado número de dependente ( Numero_Depen)

D H

  Coluna ou combinação de colunas, cujos valores

aparecem necessariamente na chave primária de uma

tabela Mecanismo que permite a implementação de relacionamentos em um banco de dados relacional Exemplo: Codigo_Dept como chave estrangeira em relação à chave primária da tabela DEPARTAMENTO

  Interpretação: todo funcionário estará associado a um departamento

D H

  Imposição de uma série de restrições a serem garantidas em diversos tipos de operações, quando realizadas em um banco de dados Restrição relacionada à inclusão de uma linha na tabela que contém a chave estrangeira: garantia da existência do valor da chave estrangeira em alguma linha, na coluna da chave primária referenciada

  

Exemplo: é possível incluir um funcionário de nome João

Paulo, lotado no departamento D5, na tabela FUNCIONARIO, conforme indicado abaixo?

D H

  Restrição relacionada à alteração do valor da chave

estrangeira: garantia da existência do novo valor em alguma

  linha, na coluna da chave primária referenciada Exemplo: é possível alterar o departamento de lotação do funcionária Antônio Soares, para indicar que ela está, a partir de então, vinculado a um departamento que atende pelo código D5?

D H

  Restrição relacionada à exclusão de uma linha da tabela que contém a chave primária referenciada pela chave estrangeira: garantia da não existência de nenhuma linha

  em que apareça, na coluna da chave estrangeira, o valor da chave primária especificado na linha a ser excluída Exemplo: é possível excluir o linha referente ao departamento RH (de código D2) da tabela DEPARTAMENTO?

D H

  Uso do termo “estrangeira” para denominar este tipo de chave: possibilidade de ser enganoso Sugestão de que uma chave estrangeira sempre referencia uma chave primária de outra tabela Restrição inexistente: uma chave primária pode referenciar a chave primária da própria tabela

  Exemplo: campo Codigo_Chefe como chave estrangeira em relação à chave primária da própria tabela FUNCIONARIO Coluna Codigo_Chefe: código de um outro funcionário, o chefe do funcionário correspondente ao funcionário da linha em questão Intepretação: qualquer funcionário que responder a um chefe, este chefe é também um funcionário

D

  Existência de mais de uma coluna ou combinações de colunas (chave) para distinção de uma linha das demais em uma tabela, em alguns casos

  Seleção de uma coluna (ou combinação de colunas) como chave primária Demais colunas ou combinações de colunas: denominadas chaves

  alternativas

  Exemplo: uma segunda versão da tabela

  FUNCIONARIO Codigo_Func quanto a coluna CPF podem ser

  Tanto a coluna usadas para distinguir uma linha das demais

  Codigo_Func como chave primária (diz se,

  Definição da coluna

I H

  &# G )*'* * *'* !: os dados de um banco de dados

  íntegro refletem corretamente a realidade representada pelo banco de dados Também denominadas de !# )JK ! A'! '*'!

  !B '! ou !# )JK ! L+$M()#'!

  Um dos objetivos primordiais de um SGBD Geralmente especificadas através de uma linguagem de definição de dados (DDL)

  

!# )JN * )&# G )*'* : mecanismo oferecido pelos SGBDs

  para tentar garantir a integridade de um banco de dados Regra de consistência de dados garantida pelo próprio SGBD

  Classificação de restrições de integridade

  &# G )*'* * * M&) &# G )*'* * /'$ /'9) O& $ &# G )*'* * (E'/ &# G )*'* % &()'$

  Restrições garantidas automaticamente por um SGBD relacional Sem necessidade de elaboração de procedimentos e rotinas específicas para garanti las explicitamente, quando do desenvolvimento de uma aplicação

I H

  &# G )*'* * * M&) : restrições deste tipo especificam

  que o valor de um campo deve obedecer a definição de valores admitidos para o campo (o domínio da coluna) SGBD relacionais comerciais: uso apenas de domínios pré definidos (número inteiro, número real, alfanumérico de tamanho definido, data, entre outros) Impossibilidade de uso de domínios próprios de aplicações de usuários (por exemplo, o domínio dos dias da semana ou das unidades da federação)

  Exemplo: é possível a inclusão de uma nova linha em que o código do funcionário é um número real, sabendo se que o campo

  Codigo_Func admite apenas valores numéricos

I H

  &# G )*'* * /'9) O& $ : definição do campo como A )G'#P ) ou +() &'$

  Possibilidade da admissão ( ) de valores vazios/nulos em linhas naquele coluna Campos que compõe a chave primária são normalmente obrigatórios

  Exemplo 01: é possível incluir um novo funcionário sem especificar seu código, sabendo se que o campo

  Codigo_Func é obrigatório?

I H

  Exemplo 02: é possível alterar a linha referente à funcionária

  NAIARA SANTOS, de modo que seu código (campo Codigo_Func) seja nulo?

I H

  

&# G )*'* * (E'/ : definição de que os valores de

chaves primárias e alternativas devem ser únicos

Exemplo 01: é possível incluir um novo funcionário, de

nome RENATO MAURÍCIO, com o mesmo código (campo

  Codigo_Func) da funcionária MARIA SOUZA?

I H

  Exemplo 02: é possível alterar a linha referente à ANTÔNIO

  SOARES, de modo que o código do funcionário (campo Codigo_Func) seja o mesmo definido para a funcionária

I H

  &# G )*'* % &()'$: garantia da existência dos valores

  dos campos que compõe uma chave estrangeira na chave primária de linhas da tabela referenciada (vide páginas 21, 22 e 23)

I H

  Existência de outras restrições de integridade não enquadradas em nenhuma das categorias mencionadas anteriormente

  Normalmente não são garantidas pelo SGBD Denominações atribuídas a esses tipos de restrições:

  !# )JK ! A'! '*'! &' '+$)('JN ou !# )JK ! ! Q&#)('! ou !# )JK ! * & GP() ! Implementação através da elaboração de procedimentos e

rotinas específicas, quando do desenvolvimento de uma

aplicação

I H

  Recuperação Atualização

  ( + 'JN : uso de expressões da álgebra relacional para de informações em um banco de dados

  

# '$)9'JN : modificação do estado das tabelas

de um banco de dados

  Operações básicas

  

Inserção: inserção de um ou mais linhas em uma tabela

Exclusão: exclusão de linhas ou tuplas Alteração (ou modificação): alteração dos valores de alguns campos nas linhas ou tuplas existentes

  Garantia de que as restrições de integridade especificadas sobre o esquema de banco de dados relacional não devem ser violadas, quando da execução de qualquer operação

  Tipos de operações de um modelo relacional

I H

  • + 'JN * )&! JN : fornecimento de uma relação

  campo que não é do tipo de dado apropriado designado para o domínio

  !# )JN * /'9) O& $ : violada, quando for atribuído o valor

  vazio/nulo a um campo obrigatório

  !# )JN * (E'/ : violada, quando for atribuído um valor de

  chave na nova linha que já exista em alguma outra linha na tabela

  !# )JN * * M&) : violada, quando for atribuído um valor de

  

de valores de campo para inserção de uma nova linha

em uma tabela

Violação de qualquer um dos quatros tipos de restrições

discutidos anteriormente

I H

  • + 'JN * L($ !N : especificação de uma

  

condição sobre os campos ou atributos da tabela para

identificação de linha(s) ou tupla(s) a ser(em) excluídas

Exemplo: exclusão de todas as linhas da tabela

FUNCIONARIO em que o código do funcionário (campo

Codigo_Func) é inferior a 3 Violação apenas da integridade referencial

  Opções disponíveis, quando da violação de alguma restrição referencial por uma operação de exclusão !# )(#: rejeição da exclusão (padrão) '!('*

  # & $$ ou # * %' $#

SGDBs: possibilidade de especificação da opção a ser

aplicada no caso de uma violação da restrição de integridade referencial, quando da definição da mesma no banco de dados

I H

  • +JN * L($ !N '!('# > ('!('#'?:

  de propagação da exclusão

Exclusão da linha é acompanhada da exclusão prévia de

outras linhas que referenciam a referida linha Exemplo: exclusão em cascata da linha referente ao departamento

  RH provocaria a exclusão das linhas

relacionadas aos funcionários ANTÔNIO e MARIA, já que

ambas referenciam a linha referente ao departamento RH

I H

  • +JN * L($ !N # $$ # %' $#:

  de modificação dos valores de campos em outras linhas que referenciam a linha a ser excluída

  Valor a ser usado: vazio/nulo ou algum que referencie outra linha da tabela na qual ocorre a operação de exclusão Impeditivos

  Se o campo referenciado objeto da violação compõe uma ou mais chaves primárias de outras tabelas, não é possível o uso do valor vazio/nulo para modificação das linhas que referenciam a linha a ser excluída (possível incidência de violação de restrição de chave)

  Aplica se o mesmo raciocínio se o campo objeto da violação for referenciado em campos obrigatórios (possível incidência de violação de restrição de vazio/nulo)

  Se o valor a ser usado referencia uma linha inexistente na tabela na qual ocorre a operação de exclusão, o mesmo

também não poderá ser usado (possível incidência de

violação de restrição referencial)

I H

  Opção de Exclusão Set Null: exemplo Exclusão da linha referente ao departamento RH provocaria

a modificação das linhas relacionadas aos funcionários

ANTÔNIO e MARIA, com a atribuição do valor vazio/nulo ao campo

  Codigo_Dept, já que ambas referenciam a linha referente ao departamento RH

I H

  • + 'JN * '$# 'JN : alteração dos valores de um ou

  mais campos ou atributos em uma linha (ou linhas) de alguma tabela Especificação de condição sobre os campos ou atributos para identificação da linha ou linhas a serem modificadas

  Exemplo: alteração do departamento de lotação para D3 (campo Codigo_Dept) em todas as linhas da tabela FUNCIONARIO nas quais o funcionário referenciado se encontra no departamento de código D2

  Atualização de campos que não compõe a chave primária da tabela ou que estejam referenciados em chaves estrangeiras de outras tabelas: em geral não causa problemas

  Tipos de violações: domínio e vazio/nulo

  Atualização dos valores de campos que compõe a chave primária: semelhante à exclusão de uma linha seguida da inserção de outra em seu lugar, já que a chave primária é usada para identificação de linhas

  Violações, da forma como discutidas para as operações de inserção e exclusão, se aplicam igualmente aqui

  SGBDs: inclusão de opções semelhantes às discutidas para as operações de alteração, quando do tratamento de violações de

  !# )(#: rejeição da exclusão (padrão) '!('* # & $$ ou # * %' $#

I H

  • +JN * $# 'JN '!('# > ('!('#'?:

  de propagação da alteração

Alteração dos valores dos campos que compõe a chave

primária é acompanhada da alteração dos mesmos valores em outras linhas que referenciam a referida linha Exemplo: alteração em cascata do código (campo Codigo_Dept) do departamento RH (de D2 para D5) provocaria a alteração do mesmo código nas linhas

  ANTÔNIO e MARIA, já que relacionadas aos funcionários

ambas referenciam a linha referente ao departamento RH

I H

  • +JN * $# 'JN # $$ # %' $#: de

  modificação dos valores de campos em outras linhas que referenciam a linha a ser alterada Valor a ser usado: vazio/nulo ou algum que referencie outra linha da tabela na qual ocorre a operação de alteração Impeditivos idênticos aos existentes em relação à operação de exclusão ou , conforme discutido anteriormente Exemplo: alteração Set null do código (campo Codigo_Dept) do departamento RH (de D2 para D5) implicaria na alteração do valor

  NULL nas linhas relacionadas aos

  do mesmo campo para funcionários ANTÔNIO e MARIA, já que ambas referenciam a linha referente ao departamento RH

  Especificação de um banco de dados relacional com as seguintes definições, no mínimo

  'A $'! ' + ! + ! &# ! ('*' #'A $' !# )JK ! * )&# G )*'*

  Existência de diversas notações, com variantes de um SGBD para o outro Exemplo: os tipos de domínios pré definidos variam de SGBD para SGBD

  Notação textual (Heuser, 2009) Reconhecidamente incompleta

  Exemplo: notação textual para um banco de dados constituído pelas tabelas FUNCIONARIO e DEPENDENTE

  Notação gráfica (Elmasri; Navathe, 2011): Uso de notação de esquema relacional para definição de tabelas e campos (vide pág. 9) Definição de chaves estrangeiras: representação de arcos

direcionados de cada campo que compõe uma chave

estrangeira para a tabela referenciada

  Ponta da seta apontada o chave primária da tabela referenciada, para maior clareza

  Exemplo: mesmo banco de dados constituído pelas tabelas FUNCIONARIO e DEPENDENTE

S H

  ELMASRI, Ramez; NAVATHE, Shamkant B. )!#

  '! * '&( '* !. 6.ed. São Paulo: Person Addison Wesley, 2011. * HEUSER, Carlos Alberto. T # * '&( * '* !. 6.ed.

  Porto Alegre: Sagra Luzzato, 2009.

Novo documento

Tags

Documento similar

Ensino de Ciências e tradição Maxakali: construindo relações em busca de um mundo comum
0
2
173
Validação de conteúdo de um instrumento para identificação de violência contra criança.
0
2
13
Implantação do Método Mãe-Canguru na percepção de enfermeiras de um hospital universitário.
0
2
6
Elaboração de um instrumento de coleta de dados para identificação dos diagnósticos de enfermagem em parturiente.
0
2
9
Trabalho e morbidade comum em indústria de celulose e papel: um perfil segundo setor.
0
2
11
Projeto de um banco de ensaio de desgaste do tipo "pin-on-disc".
0
4
6
Método de mineração de dados para identificação de câncer de mama baseado na seleção de variáveis.
0
2
10
Desenvolvimento e caracterização de queijo tipo petit suisse de soja comum e de soja livre de lipoxigenase, enriquecidos com cálcio.
0
2
5
Método híbrido CONWIP/KANBAN um estudo de caso.
0
13
22
Método para análise de benefícios em cadeias de suprimento: um estudo de caso.
0
2
12
Método de identificação do grau de gestão nas atividades de produção de flores de corte.
0
3
8
COLABORAÇÃO E PRODUTIVIDADE CIENTÍFICA NA UFRJ: identificação de autores por tipo de vínculo (2010)
0
0
8
Uma cultura de segurança comum na UE através de um programa de formação europeu para as polícias
0
0
102
Repositório Institucional da UFPA: Estratégia de identificação paramétrica aplicada à modelagem fenomenológica de um sistema do tipo correia transportadora industrial para fins de detecção de faltas
0
0
137
Análise de Sulfonamidas no Mel: Validação e Optimização de um Método de HPLC-Fluorescência
0
1
99
Show more