Menu English Ukrainian Russo Início

Biblioteca técnica gratuita para amadores e profissionais Biblioteca técnica gratuita


Base de dados. Estabelecendo relacionamentos básicos (mais importante)

Notas de aula, folhas de dicas

Diretório / Notas de aula, folhas de dicas

Comentários do artigo Comentários do artigo

Índice (expandir)

Aula nº 8

O assunto desta palestra será uma discussão bastante detalhada do operador de criação de relação de base. Analisaremos o próprio operador em um registro de pseudocódigo, analisaremos todos os seus componentes e seu trabalho e analisaremos os métodos de modificação, ou seja, alterando as relações básicas.

1. Símbolos metalinguísticos

Ao descrever as construções sintáticas usadas na escrita do operador de criação da relação base em pseudocódigo, vários métodos são usados. símbolos metalinguísticos. Esses são todos os tipos de colchetes de abertura e fechamento, várias combinações de pontos e vírgulas, em uma palavra, símbolos que cada um carrega seu próprio significado e facilitam para o programador escrever código.

Vamos apresentar e explicar o significado dos principais símbolos metalinguísticos mais usados ​​no desenho de relações básicas. Então:

1) caráter metalinguístico "{}". Construções sintáticas em chaves são obrigatório unidades sintáticas. Ao definir uma relação de base, os elementos necessários são, por exemplo, atributos de base; sem declarar atributos básicos, nenhum relacionamento pode ser projetado. Portanto, ao escrever o operador de criação da relação base em pseudocódigo, os atributos base são listados entre chaves;

2) o símbolo metalinguístico "[]". Nesse caso, o oposto é verdadeiro: as construções de sintaxe entre colchetes representam opcional elementos de sintaxe. As unidades sintáticas opcionais no operador de criação da relação base, por sua vez, são os atributos virtuais das chaves primária, candidata e estrangeira. Aqui, é claro, também há sutilezas, mas falaremos sobre elas mais tarde, quando passarmos diretamente ao projeto do operador para criar a relação de base;

3) símbolo metalinguístico "|". Este símbolo significa literalmente "ou", como o símbolo análogo na matemática. A utilização deste símbolo metalinguístico implica a escolha entre duas ou mais construções separadas, respectivamente, por este símbolo;

4) símbolo metalinguístico “…”. Uma reticência colocada imediatamente após qualquer unidade sintática significa a possibilidade repetições esses elementos sintáticos que antecedem o símbolo metalinguístico;

5) símbolo metalinguístico ",..". Este símbolo significa quase o mesmo que o anterior. Somente ao utilizar o símbolo metalinguístico ",..", reiteração construções sintáticas ocorrem separados por vírgulasque muitas vezes é muito mais conveniente.

Com isso em mente, podemos falar sobre a equivalência das duas construções sintáticas a seguir:

unidade [, unidade]...

и

unidade,.. ;

2. Um exemplo de criação de um relacionamento básico em uma entrada de pseudocódigo

Agora que esclarecemos os significados dos principais símbolos metalinguísticos usados ​​ao escrever o operador de criação da relação de base em pseudocódigo, podemos prosseguir para a consideração propriamente dita desse operador. Como pode ser entendido a partir das referências acima, o operador para criar uma relação de base na entrada de pseudocódigo inclui declarações de atributos de base e virtuais, chaves primárias, candidatas e estrangeiras. Além disso, como será mostrado e explicado acima, esse operador também abrange restrições de valor de atributo e restrições de tupla, bem como as chamadas restrições de integridade referencial.

As duas primeiras restrições, ou seja, a restrição de valor de atributo e a restrição de tupla, são declaradas após a palavra reservada especial verificar.

As restrições de integridade referencial podem ser de dois tipos: em atualização, que significa "ao atualizar", e ao excluir, que significa "na exclusão". O que isto significa? Isso significa que ao atualizar ou excluir atributos de relacionamentos referenciados por uma chave estrangeira, a integridade do estado deve ser mantida. (Falaremos mais sobre isso mais tarde.)

O próprio operador de criação de relação base é utilizado por nós já estudados - o operador Crie, apenas para criar um relacionamento básico, a palavra-chave é adicionada mesa ("atitude"). E, é claro, como a relação em si é maior e inclui todas as construções discutidas anteriormente, bem como novas construções adicionais, o operador create será bastante impressionante.

Então, vamos escrever em pseudocódigo a forma geral do operador usado para criar relações básicas:

Criar tabela nome da relação base

{ nome do atributo base

tipo de valor de atributo básico

verificar (limite de valor de atributo)

{Nulo | não nulo}

omissão (valor padrão)

},..

[nome do atributo virtual

as (Fórmula de cálculo)

],..

[,verificar (restrição de tupla)]

[,chave primária (Nome do Atributo,..)]

[,Chave candidata (Nome do Atributo,..)]...

[,chave estrangeira (Nome do Atributo,..) referências nome da relação de referência (nome do atributo, ..)

na atualização { Restringir | Cascata | Definir Nulo}

ao excluir { Restringir | Cascata | Definir Nulo}

] ...

Assim, vemos que vários atributos básicos e virtuais, chaves candidatas e estrangeiras podem ser declarados, pois após as construções sintáticas correspondentes existe um símbolo metalinguístico ",.." Após a declaração da chave primária, este símbolo não está presente, pois as relações de base, conforme mencionado anteriormente, permitem apenas uma chave primária.

Em seguida, vamos dar uma olhada no mecanismo de declaração. atributos básicos.

Ao descrever qualquer atributo no operador de criação de relação base, no caso geral, seu nome, tipo, restrições em seus valores, sinalizador de validade de valores nulos e valores padrão são especificados. É fácil perceber que o tipo de um atributo e suas restrições de valor determinam seu domínio, ou seja, literalmente o conjunto de valores válidos para aquele determinado atributo.

Restrição de valor de atributo é escrito como uma condição dependente do nome do atributo. Aqui está um pequeno exemplo para tornar este material mais fácil de entender:

Criar tabela nome da relação base

Curso

número inteiro

verificar (1 <= Curso e Curso <= 5;

Aqui, a condição "1 <= Cabeçalho e Cabeçalho <= 5" juntamente com a definição de um tipo de dados inteiro realmente condiciona completamente o conjunto de valores permitidos do atributo, ou seja, literalmente seu domínio.

O sinalizador de permissão de valores Nulos (Null | not Null) proíbe (não Null) ou, inversamente, permite (Null) o aparecimento de valores Null entre os valores de atributo.

Tomando o exemplo que acabamos de discutir, o mecanismo para aplicar sinalizadores de validade nula é o seguinte:

Criar tabela nome da relação base

Curso

número inteiro

verificar (1 <= Curso e Curso <= 5);

Não nulo;

Portanto, o número do curso de um aluno nunca pode ser nulo, não pode ser desconhecido para compiladores de banco de dados e não pode não existir.

Valores padrão (omissão (valor padrão)) são usados ​​ao inserir uma tupla em um relacionamento se os valores dos atributos não estiverem definidos explicitamente na instrução insert.

É interessante notar que os valores padrão também podem ser valores Nulos, desde que os valores Nulos para aquele determinado atributo sejam declarados válidos.

Agora considere a definição atributo virtual no operador de criação da relação base.

Como dissemos anteriormente, definir um atributo virtual consiste em definir fórmulas para seu cálculo através de outros atributos base. Vamos considerar um exemplo de declaração de um atributo virtual "Cost Rub". na forma de uma fórmula dependendo dos atributos básicos "Peso Kg" e "Preço Rub. por Kg".

Criar tabela nome da relação base

Peso, kg

tipo de valor de atributo básico Peso Kg

verificar (restrição do valor do atributo Peso Kg)

não nulo

omissão (valor padrão)

Preço, esfregue. por kg

tipo de valor do atributo base Price Rub. por kg

verificar (limitação do valor do atributo Price Rub. por Kg)

não nulo

omissão (valor padrão)

...

Custo, esfregue.

as (Peso Kg * Preço Rub. por Kg)

Um pouco antes, examinamos as restrições de atributo, que foram escritas como condições dependentes dos nomes dos atributos. Agora considere o segundo tipo de restrições declaradas ao criar uma relação de base, a saber restrições de tupla.

O que é uma restrição de tupla, como ela é diferente de uma restrição de atributo? Uma restrição de tupla também é escrita como uma condição dependente do nome do atributo base, mas somente no caso de uma restrição de tupla, a condição pode depender de vários nomes de atributo ao mesmo tempo.

Considere um exemplo que ilustra o mecanismo de trabalho com restrições de tupla:

Criar tabela nome da relação base

Peso mín. Kg

valor tipo de atributo base min Peso Kg

verificar (restrição do valor do atributo min Peso Kg)

não nulo

omissão (valor padrão)

Peso máximo Kg

tipo de valor do atributo base máx. Peso Kg

verificar (restrição do valor do atributo Max Peso Kg)

não nulo

omissão (valor padrão)

verificar (0 < min Peso Kg e min Peso Kg < max Peso Kg);

Assim, aplicar uma restrição a uma tupla equivale a substituir os valores da tupla por nomes de atributos.

Vamos passar a considerar o operador de criação de relação de base. Uma vez declarados, os atributos base e virtual podem ou não ser declarados. chaves: primário, candidato e externo.

Como dissemos anteriormente, o subesquema de uma relação de base que em outra (ou na mesma) relação de base corresponde a uma chave primária ou candidata no contexto da primeira relação é chamado chave estrangeira. As chaves estrangeiras representam mecanismo de link tuplas de algumas relações sobre tuplas de outras relações, ou seja, existem declarações de chaves estrangeiras associadas à imposição das chamadas já mencionadas restrições de integridade referencial. (Esta restrição será o foco da próxima aula, uma vez que a integridade do estado (ou seja, a integridade imposta pelas restrições de integridade) é crítica para o sucesso da relação base e de todo o banco de dados.)

A declaração de chaves primárias e candidatas, por sua vez, impõe as restrições de exclusividade apropriadas no esquema de relação de base, que discutimos anteriormente.

E, por fim, deve-se dizer sobre a possibilidade de deletar a relação de base. Muitas vezes, na prática de projeto de banco de dados, é necessário remover uma antiga relação desnecessária para não sobrecarregar o código do programa. Isso pode ser feito usando o operador já familiar Cair. Em sua forma geral completa, o operador delete da relação base se parece com isso:

Soltar tabela o nome da relação de base;

3. Restrição de integridade por estado

Restrição de integridade objeto de dados relacionais a partir de é o chamado invariante de dados.

Ao mesmo tempo, a integridade deve ser distinguida com segurança da segurança, que, por sua vez, implica a proteção dos dados contra o acesso não autorizado a eles para divulgar, modificar ou destruir dados.

Em geral, as restrições de integridade em objetos de dados relacionais são classificadas por níveis de hierarquia esses mesmos objetos de dados relacionais (a hierarquia de objetos de dados relacionais é uma sequência de conceitos aninhados: "atributo - tupla - relação - banco de dados").

O que isto significa? Isso significa que as restrições de integridade dependem de:

1) no nível de atributo - a partir de valores de atributo;

2) no nível da tupla - dos valores da tupla, ou seja, dos valores de vários atributos;

3) no nível das relações - de uma relação, ou seja, de várias tuplas;

4) no nível do banco de dados - de vários relacionamentos.

Então, agora só nos resta considerar com mais detalhes as restrições de integridade no estado de cada um dos conceitos acima. Mas primeiro, vamos dar os conceitos de suporte processual e declarativo para restrições de integridade de estado.

Assim, o suporte para restrições de integridade pode ser de dois tipos:

1) processual, ou seja, criado escrevendo código de programa;

2) declarativo, ou seja, criado pela declaração de certas restrições para cada um dos conceitos aninhados acima.

O suporte declarativo para restrições de integridade é implementado no contexto da instrução Create para criar a relação de base. Vamos falar sobre isso com mais detalhes. Vamos começar considerando o conjunto de restrições a partir da base da nossa escada hierárquica de objetos de dados relacionais, ou seja, a partir do conceito de atributo.

Restrição de nível de atributo inclui:

1) restrições quanto ao tipo de valores de atributos.

Por exemplo, uma condição inteira para valores, ou seja, uma condição inteira para o atributo "Curso" de uma das relações básicas discutidas anteriormente;

2) uma restrição de valor de atributo, escrita como uma condição dependente do nome do atributo.

Por exemplo, analisando a mesma relação básica do parágrafo anterior, vemos que nessa relação também há uma restrição nos valores dos atributos usando a opção verificar, ou seja:

verificar (1 <= Curso e Curso <= 5);

3) A restrição de nível de atributo inclui restrições de valor nulo definidas pelo sinalizador bem conhecido de validade (nulo) ou, inversamente, inadmissibilidade (não nulo) de valores nulos.

Como mencionamos anteriormente, as duas primeiras restrições definem a restrição de domínio do atributo, ou seja, o valor de seu conjunto de definições.

Além disso, de acordo com a escada hierárquica de objetos de dados relacionais, precisamos falar sobre tuplas. Então, restrição de nível de tupla se reduz a uma restrição de tupla e é escrita como uma condição que depende dos nomes de vários atributos básicos do esquema de relação, ou seja, essa restrição de integridade de estado é muito menor e mais simples que a similar, correspondendo apenas ao atributo.

E novamente, seria útil relembrar o exemplo da relação básica que passamos anteriormente, que tem a restrição de tupla que precisamos agora, a saber:

verificar (0 < min Peso Kg e min Peso Kg < max Peso Kg);

E, finalmente, o último conceito significativo no contexto da restrição de integridade do estado é o conceito de nível de relacionamento. Como dissemos antes, restrição de nível de relacionamento inclui limitar os valores do primário (chave primária) e candidato (Chave candidata) chaves.

É curioso que as restrições impostas aos bancos de dados não sejam mais restrições de integridade de estado, mas restrições de integridade referencial.

4. Restrições de Integridade Referencial

Assim, a restrição de nível de banco de dados inclui a restrição de integridade referencial de chave estrangeira (chave estrangeira). Já mencionamos isso brevemente quando falamos sobre restrições de integridade referencial ao criar um relacionamento de base e chaves estrangeiras. Agora é hora de falar sobre esse conceito com mais detalhes.

Como dissemos antes, a chave estrangeira da relação base declarada refere-se à chave primária ou candidata de alguma outra relação base (na maioria das vezes). Lembre-se que neste caso, a relação referenciada pela chave estrangeira é chamada referência ou parental, porque meio que "gera" um atributo ou vários atributos na relação base de referência. E, por sua vez, uma relação contendo uma chave estrangeira é chamada filho, também por razões óbvias.

O que é restrição de integridade referencial? E consiste no fato de que cada valor da chave estrangeira do relacionamento filho deve necessariamente corresponder ao valor de qualquer chave do relacionamento pai, a menos que o valor da chave estrangeira contenha valores nulos em quaisquer atributos.

Tuplas de uma relação filha que violam essa condição são chamadas pendurado.

De fato, se a chave estrangeira da relação filho se refere a um atributo que não existe na relação pai, então ela não se refere a nada. São justamente essas situações que devem ser evitadas de todas as formas possíveis, e isso significa manter a integridade referencial.

Mas, sabendo que nenhum banco de dados jamais permitirá a criação de uma tupla pendente, os desenvolvedores garantem que não haja tuplas pendentes inicialmente no banco de dados e que todas as chaves disponíveis se refiram a um atributo muito real do relacionamento pai. No entanto, existem situações em que tuplas pendentes são formadas já durante a operação do banco de dados. Quais são essas situações? Sabe-se que quando as tuplas são removidas da relação pai ou quando o valor da chave de uma tupla da relação pai é atualizado, a integridade referencial pode ser violada, ou seja, podem ocorrer tuplas pendentes.

Para excluir a possibilidade de sua ocorrência ao declarar um valor de chave estrangeira, é especificado um dos seguintes: três disponível regras mantendo a integridade referencial, aplicada de acordo ao atualizar o valor da chave na relação pai (ou seja, como mencionamos anteriormente, em atualização) ou ao remover uma tupla da relação pai (ao excluir). Deve-se notar que adicionar uma nova tupla ao relacionamento pai não pode quebrar a integridade referencial, por razões óbvias. Afinal, se essa tupla fosse apenas adicionada à relação base, nenhum atributo poderia se referir a ela antes por causa de sua ausência!

Então, quais são essas três regras que são usadas para manter a integridade referencial em bancos de dados? Vamos listá-los.

1. restringirOu regra de restrição. Se, ao definir nossa relação base, ao declarar chaves estrangeiras em uma restrição de integridade referencial, aplicarmos essa regra de mantê-la, atualizar uma chave na relação pai ou excluir uma tupla da relação pai simplesmente não pode ser executada se essa tupla for referenciado por pelo menos uma tupla da relação filho, ou seja, operação restringir proíbe totalmente a execução de quaisquer ações que possam levar ao aparecimento de tuplas suspensas.

Ilustramos a aplicação dessa regra com o exemplo a seguir.

Sejam dadas duas relações:

Atitude dos pais

relação infantil

Vemos que as tuplas de relação filho (2,...) e (2,...) referem-se à tupla de relação pai (..., 2), e a tupla de relação filho (3,...) refere-se a a (..., 3) atitude parental. A tupla (100,...) da relação filho está pendente e não é válida.

Aqui, apenas as tuplas da relação pai (..., 1) e (..., 4) permitem que os valores-chave sejam atualizados e as tuplas sejam excluídas porque não são referenciadas por nenhuma das chaves estrangeiras da relação filho.

Vamos compor o operador para criar uma relação básica, que inclui a declaração de todas as chaves acima:

Criar tabela Atitude dos pais

Chave primária

Número inteiro

não nulo

chave primária (Chave primária)

Criar tabela relação infantil

Chave_estrangeira

Número inteiro

Nulo

chave estrangeira (Chave_estrangeira) referências Relacionamento pai (chave_primária)

na atualização Restringir

excluir Restringir

2. CascataOu regra de modificação em cascata. Se, ao declarar chaves estrangeiras em nossa relação base, usamos a regra de manter a integridade referencial Cascata, a atualização de uma chave na relação pai ou a exclusão de uma tupla da relação pai faz com que as chaves e tuplas correspondentes da relação filha sejam atualizadas ou excluídas automaticamente.

Vejamos um exemplo para entender melhor como funciona a regra de modificação em cascata. Sejam dadas as relações básicas que já nos são familiares do exemplo anterior:

Atitude dos pais

и

relação infantil

Suponha que atualizemos algumas tuplas na tabela que define o relacionamento “Relação pai”, ou seja, substituímos a tupla (..., 2) pela tupla (..., 20), ou seja, obtemos uma nova relação:

Atitude dos pais

E vamos ao mesmo tempo na declaração de criar nossa relação base "Relação filho" ao declarar chaves estrangeiras, usamos a regra de manter a integridade referencial Cascata, ou seja, o operador para criar nosso relacionamento base se parece com isso:

Criar tabela Atitude dos pais

Chave primária

Número inteiro

não nulo

chave primária (Chave primária)

Criar tabela relação infantil

Chave_estrangeira

Número inteiro

Nulo

chave estrangeira (Chave_estrangeira) referências Relacionamento pai (chave_primária)

na atualização Cascade

ao excluir Cascata

Então, o que acontece com a relação filho quando a relação pai é atualizada da maneira descrita acima? Terá o seguinte formato:

relação infantil

Assim, de fato, a regra Cascata fornece uma atualização em cascata de todas as tuplas na relação filho em resposta a atualizações na relação pai.

3. Definir nuloOu regra de atribuição nula. Se, na declaração de criação de nossa relação base, ao declarar chaves estrangeiras, aplicarmos a regra de manter a integridade referencial Definir nulo, atualizar a chave de uma relação pai ou excluir uma tupla de uma relação pai implica atribuir automaticamente valores Nulos aos atributos de chave estrangeira da relação filho que permitem valores Nulos. Portanto, a regra é aplicável se tais atributos existirem.

Vejamos um exemplo que já usamos antes. Suponha que nos sejam dadas duas relações básicas:

"Paternidade"

relação infantil

Como você pode ver, os atributos da relação filho permitem valores nulos, daí a regra Definir nulo aplicável neste caso específico.

Suponhamos agora que a tupla (..., 1) foi removida da relação pai e a tupla (..., 2) foi atualizada, como no exemplo anterior. Assim, a relação pai assume a seguinte forma:

Atitude dos pais

Então, levando em consideração o fato de que ao declarar as chaves estrangeiras da relação filho, aplicamos a regra de manter a integridade referencial Definir nulo, a relação filho ficará assim:

relação infantil

A tupla (..., 1) não foi referenciada por nenhuma chave de relação filho, portanto, excluí-la não tem consequências.

O próprio operador de criação da relação base usando a regra Definir nulo ao declarar chaves estrangeiras, o relacionamento se parece com isso:

Criar tabela Atitude dos pais

Chave primária

Número inteiro

não nulo

chave primária (Chave primária)

Criar tabela relação infantil

Chave_estrangeira

Número inteiro

Nulo

chave estrangeira (Chave_estrangeira) referências Relacionamento pai (chave_primária)

na atualização Definir Nulo

ao excluir Definir Nulo

Assim, vemos que a presença de três regras diferentes para manter a integridade referencial garante que em frases em atualização и ao excluir funções podem variar.

Deve ser lembrado e entendido que a inserção de tuplas em uma relação filho ou a atualização dos valores-chave das relações filho não será realizada se isso levar a uma violação da integridade referencial, ou seja, ao aparecimento das chamadas tuplas pendentes. A remoção de tuplas de uma relação filho sob nenhuma circunstância pode levar a uma violação da integridade referencial.

É interessante que uma relação filho possa atuar simultaneamente como pai com suas próprias regras para manter a integridade referencial, se as chaves estrangeiras de outras relações de base se referirem a alguns de seus atributos como chaves primárias.

Se os programadores quiserem garantir que a integridade referencial seja imposta por algumas regras diferentes das regras padrão acima, o suporte processual para essas regras não padronizadas para manter a integridade referencial é fornecido com a ajuda dos chamados gatilhos. Infelizmente, uma consideração detalhada deste conceito não desce em nosso curso de palestras.

5. O conceito de índices

A criação de chaves em relacionamentos de base é automaticamente vinculada à criação de índices.

Vamos definir a noção de um índice.

Índice - esta é uma estrutura de dados do sistema que contém uma lista necessariamente ordenada de valores de uma chave com links para essas tuplas da relação em que esses valores ocorrem.

Existem dois tipos de índices em sistemas de gerenciamento de banco de dados:

1) simples.

Um índice simples é obtido para um subesquema de esquema da relação base de um único atributo;

2) composto.

Assim, um índice composto é um índice para um subesquema que consiste em vários atributos.

Mas, além da divisão em índices simples e compostos, nos sistemas de gerenciamento de banco de dados há uma divisão dos índices em únicos e não exclusivos. Então:

1) único índices são índices referentes a no máximo um atributo.

Índices únicos geralmente correspondem à chave primária da relação;

2) não exclusivo índices são índices que podem corresponder a vários atributos ao mesmo tempo.

As chaves não exclusivas, por sua vez, correspondem na maioria das vezes às chaves estrangeiras do relacionamento.

Considere um exemplo ilustrando a divisão de índices em únicos e não únicos, ou seja, considere os seguintes relacionamentos definidos por tabelas:

Aqui, respectivamente, Chave primária é a chave primária do relacionamento, Chave estrangeira é a chave estrangeira. Fica claro que nestas relações, o índice do atributo Chave Primária é único, pois corresponde à chave primária, ou seja, um atributo, e o índice do atributo Chave Estrangeira não é único, pois corresponde a chave estrangeira chaves. E seu valor "20" corresponde tanto à primeira quanto à terceira linha da tabela de relações.

Mas às vezes os índices podem ser criados sem levar em conta as chaves. Isso é feito em sistemas de gerenciamento de banco de dados para dar suporte ao desempenho de operações de classificação e pesquisa.

Por exemplo, uma busca dicotômica por um valor de índice em tuplas será implementada em sistemas de gerenciamento de banco de dados em vinte iterações. De onde veio essa informação? Eles foram obtidos por cálculos simples, ou seja, da seguinte forma:

106 = (103)2 = 220;

Os índices são criados em sistemas de gerenciamento de banco de dados usando a instrução Create já conhecida por nós, mas apenas com a adição da palavra-chave index. Tal operador se parece com isso:

Criar índice nome do índice

On nome da relação base (nome do atributo,..);

Aqui vemos o familiar símbolo metalinguístico ",.." denotando a possibilidade de repetir um argumento separado por uma vírgula, ou seja, um índice correspondente a vários atributos pode ser criado neste operador.

Se você quiser declarar um índice exclusivo, adicione a palavra-chave exclusiva antes da palavra de índice e, em seguida, toda a instrução de criação na relação de índice base se torna:

Crie um índice único nome do índice

On nome da relação base (nome do atributo);

Então, na forma mais geral, se lembrarmos da regra para designar elementos opcionais (o símbolo metalinguístico []), o operador de criação de índice na relação básica ficará assim:

Criar índice [único] nome do índice

On nome da relação base (nome do atributo,..);

Se você deseja remover um índice já existente da relação base, use o operador Drop, também já conhecido por nós:

Índice de queda {nome da relação base. Nome do índice},.. ;

Por que o nome do índice qualificado "nome da relação base. Nome do índice" é usado aqui? Um operador de descarte de índice sempre usa seu nome qualificado porque o nome do índice deve ser exclusivo dentro do mesmo relacionamento, mas não mais.

6. Modificação das relações básicas

Para trabalhar com sucesso e produtividade com vários relacionamentos de base, muitas vezes os desenvolvedores precisam modificar esse relacionamento de base de alguma forma.

Quais são as principais opções de modificação exigidas mais frequentemente encontradas na prática de design de banco de dados? Vamos listá-los:

1) inserção de tuplas.

Muitas vezes você precisa inserir novas tuplas em uma relação de base já formada;

2) atualizar os valores dos atributos.

E a necessidade dessa modificação na prática de programação é ainda mais comum que a anterior, pois quando chegam novas informações sobre os argumentos do seu banco de dados, inevitavelmente você terá que atualizar algumas informações antigas;

3) remoção de tuplas.

E com probabilidade aproximadamente igual, torna-se necessário remover da relação base aquelas tuplas cuja presença em seu banco de dados não é mais necessária devido a novas informações recebidas.

Assim, delineamos os principais pontos de modificação das relações básicas. Como cada um desses objetivos pode ser alcançado? Em sistemas de gerenciamento de banco de dados, na maioria das vezes há operadores básicos de modificação de relacionamento embutidos. Vamos descrevê-los em uma entrada de pseudocódigo:

1) operador de inserção na relação de base das novas tuplas. Este é o operador inserção. Se parece com isso:

Inserir em nome da relação base (nome do atributo, ..)

Valores (Valor do atributo,..);

O símbolo metalinguístico ",.." após o nome do atributo e o valor do atributo nos diz que este operador permite que vários atributos sejam adicionados à relação base ao mesmo tempo. Nesse caso, você deve listar os nomes dos atributos e os valores dos atributos, separados por vírgulas, em uma ordem consistente.

Palavra-chave para dentro em combinação com o nome geral do operador inserção significa "inserir em" e indica em qual relação os atributos entre parênteses devem ser inseridos.

Palavra-chave Valores nesta declaração, e significa "valores", "valores", que são atribuídos a esses atributos recém-declarados;

2) agora considere operador de atualização valores de atributo na relação base. Este operador é chamado Atualizar, que é traduzido do inglês e significa literalmente "atualizar". Vamos dar a forma geral completa desse operador em uma notação de pseudocódigo e decifrá-lo:

Atualizar nome da relação base

Conjunto {nome do atributo - valor do atributo},..

Onde doença;

Então, na primeira linha do operador após a palavra-chave Atualizar o nome da relação base na qual as atualizações devem ser feitas é escrito.

A palavra-chave Set é traduzida do inglês como "set", e esta linha da instrução especifica os nomes dos atributos a serem atualizados e os novos valores de atributo correspondentes.

É possível atualizar vários atributos de uma só vez em uma declaração, que decorre do uso do símbolo metalinguístico ",..".

Na terceira linha após a palavra-chave Onde uma condição é escrita mostrando exatamente quais atributos desta relação de base precisam ser atualizados;

3) operador Apagarpermitindo remover quaisquer tuplas da relação de base. Vamos escrever sua forma completa em pseudocódigo e explicar o significado de todas as unidades sintáticas individuais:

Excluir de nome da relação base

Onde doença;

Palavra-chave da combinado com o nome do operador Apagar traduz como "remover de". E após essas palavras-chave na primeira linha do operador, é indicado o nome da relação base, da qual quaisquer tuplas devem ser removidas.

E na segunda linha do operador após a palavra-chave Onde ("onde") indica a condição pela qual as tuplas são selecionadas que não são mais necessárias em nossa relação base.

<< Voltar: Relacionamentos Básicos (Tipos de dados básicos. Tipo de dados personalizado. Valores padrão. Atributos virtuais. Conceito de chaves)

>> Encaminhar: Funcional dependências (Restrição de dependência funcional. Regras de inferência Armstrong. Regras de inferência derivadas. Completude do sistema de regras de Armstrong)

Recomendamos artigos interessantes seção Notas de aula, folhas de dicas:

Didática. Notas de aula

fisiologia patológica. Berço

Lei de habitação. Berço

Veja outros artigos seção Notas de aula, folhas de dicas.

Leia e escreva útil comentários sobre este artigo.

<< Voltar

Últimas notícias de ciência e tecnologia, nova eletrônica:

A existência de uma regra de entropia para o emaranhamento quântico foi comprovada 09.05.2024

A mecânica quântica continua a nos surpreender com seus fenômenos misteriosos e descobertas inesperadas. Recentemente, Bartosz Regula do Centro RIKEN de Computação Quântica e Ludovico Lamy da Universidade de Amsterdã apresentaram uma nova descoberta que diz respeito ao emaranhamento quântico e sua relação com a entropia. O emaranhamento quântico desempenha um papel importante na moderna ciência e tecnologia da informação quântica. No entanto, a complexidade da sua estrutura torna a sua compreensão e gestão um desafio. A descoberta de Regulus e Lamy mostra que o emaranhamento quântico segue uma regra de entropia semelhante à dos sistemas clássicos. Esta descoberta abre novas perspectivas na ciência e tecnologia da informação quântica, aprofundando a nossa compreensão do emaranhamento quântico e a sua ligação à termodinâmica. Os resultados do estudo indicam a possibilidade de reversibilidade das transformações de emaranhamento, o que poderia simplificar muito seu uso em diversas tecnologias quânticas. Abrindo uma nova regra ... >>

Mini ar condicionado Sony Reon Pocket 5 09.05.2024

O verão é uma época de relaxamento e viagens, mas muitas vezes o calor pode transformar essa época em um tormento insuportável. Conheça um novo produto da Sony – o minicondicionador Reon Pocket 5, que promete deixar o verão mais confortável para seus usuários. A Sony lançou um dispositivo exclusivo - o minicondicionador Reon Pocket 5, que fornece resfriamento corporal em dias quentes. Com ele, os usuários podem desfrutar do frescor a qualquer hora e em qualquer lugar, simplesmente usando-o no pescoço. Este miniar condicionado está equipado com ajuste automático dos modos de operação, além de sensores de temperatura e umidade. Graças a tecnologias inovadoras, o Reon Pocket 5 ajusta o seu funcionamento em função da atividade do utilizador e das condições ambientais. Os usuários podem ajustar facilmente a temperatura usando um aplicativo móvel dedicado conectado via Bluetooth. Além disso, camisetas e shorts especialmente desenhados estão disponíveis para maior comodidade, aos quais um mini ar condicionado pode ser acoplado. O dispositivo pode, oh ... >>

Energia do espaço para Starship 08.05.2024

A produção de energia solar no espaço está se tornando mais viável com o advento de novas tecnologias e o desenvolvimento de programas espaciais. O chefe da startup Virtus Solis compartilhou sua visão de usar a Starship da SpaceX para criar usinas orbitais capazes de abastecer a Terra. A startup Virtus Solis revelou um ambicioso projeto para criar usinas de energia orbitais usando a Starship da SpaceX. Esta ideia poderia mudar significativamente o campo da produção de energia solar, tornando-a mais acessível e barata. O cerne do plano da startup é reduzir o custo de lançamento de satélites ao espaço usando a Starship. Espera-se que este avanço tecnológico torne a produção de energia solar no espaço mais competitiva com as fontes de energia tradicionais. A Virtual Solis planeja construir grandes painéis fotovoltaicos em órbita, usando a Starship para entregar os equipamentos necessários. Contudo, um dos principais desafios ... >>

Notícias aleatórias do Arquivo

Minas abandonadas para economizar energia 24.01.2023

Pesquisadores do Instituto Internacional de Análise de Sistemas Aplicados (IIASA) propuseram o uso de uma nova tecnologia para criar o chamado armazenamento de energia gravitacional por meio de minas desativadas.

O método é chamado de Armazenamento Subterrâneo de Energia Gravitacional (UGES). Sua essência é armazenar energia transportando areia para minas subterrâneas desativadas.

A UGES gera eletricidade baixando areia para uma mina subterrânea e convertendo a energia potencial da areia em eletricidade por meio de frenagem regenerativa. Em seguida, levantando a areia da mina para o reservatório superior usando motores elétricos para armazenar energia quando a eletricidade é barata.

Os principais componentes da UGES são o poço, motor/gerador, áreas de armazenamento superior e inferior e equipamentos de mineração. Quanto mais profundo e largo o poço, mais eletricidade pode ser extraída da usina, e quanto maior o poço, maior a capacidade de armazenamento de energia.

Graças à areia, que os desenvolvedores da UGES propõem usar para economizar energia, ela não perderá a autodescarga e fornecerá armazenamento de semanas a anos.

Outras notícias interessantes:

▪ Scooter Elétrico Xiaomi

▪ Uma maneira fácil de verificar seu coração

▪ T-shirt vai fazer um eletrocardiograma

▪ Esculturas do fundo do Ródano

▪ NB3N3020 - novo multiplicador de frequência

Feed de notícias de ciência e tecnologia, nova eletrônica

 

Materiais interessantes da Biblioteca Técnica Gratuita:

▪ seção do site Ferramentas e mecanismos para a agricultura. Seleção de artigos

▪ artigo Publicidade. Berço

▪ artigo Onde é o lugar mais seco da Terra? Resposta detalhada

▪ artigo Ladrão. Instrução padrão sobre proteção do trabalho

▪ artigo Controle de relé em baixa tensão. Enciclopédia de rádio eletrônica e engenharia elétrica

▪ artigo Engarrafamentos voadores. Segredo do Foco

Deixe seu comentário neste artigo:

Имя:


E-mail opcional):


Comentário:





Todos os idiomas desta página

Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site

www.diagrama.com.ua

www.diagrama.com.ua
2000-2024