Modelo de banco de dados relacional: elementos, como fazê-lo, exemplo

O modelo de banco de dados relacional é um método de estruturar dados usando relacionamentos, usando estruturas em forma de grade, consistindo em colunas e linhas. É o princípio conceitual de bancos de dados relacionais. Foi proposto por Edgar F. Codd em 1969.

Desde então, tornou-se o modelo de banco de dados dominante para aplicativos comerciais, quando comparado a outros modelos de banco de dados, como hierárquico, rede e objeto.

Modelo de banco de dados relacional: elementos, como fazê-lo, exemplo 1

Fonte: pixabay.com

Codd não tinha idéia de quão extremamente vital e influente seria seu trabalho como plataforma para bancos de dados relacionais. A maioria das pessoas está muito familiarizada com a expressão física de um relacionamento em um banco de dados: a tabela.

O modelo relacional é definido como o banco de dados que permite agrupar seus elementos de dados em uma ou mais tabelas independentes, que podem ser relacionadas entre si usando campos comuns para cada tabela relacionada.

Gerenciamento de banco de dados

Uma tabela de banco de dados é semelhante a uma planilha. No entanto, os relacionamentos que podem ser criados entre as tabelas permitem que um banco de dados relacional armazene eficientemente uma grande quantidade de dados, que podem ser recuperados com eficiência.

O objetivo do modelo relacional é fornecer um método declarativo para especificar dados e consultas: os usuários declaram diretamente quais informações o banco de dados contém e quais informações desejam dele.

Por outro lado, eles permitem que o software do sistema de gerenciamento de banco de dados descreva as estruturas de dados para armazenamento e o procedimento de recuperação para responder às consultas.

A maioria dos bancos de dados relacionais usa a linguagem SQL para consultar e definir dados. Atualmente, existem muitos sistemas de gerenciamento de banco de dados relacional ou RDBMS (Relational Data Base Management System), como Oracle, IBM DB2 e Microsoft SQL Server.

Características e elementos

– Todos os dados são representados conceitualmente como um arranjo ordenado de dados em linhas e colunas, chamado relacionamento ou tabela.

– Cada tabela deve ter um cabeçalho e um corpo. O cabeçalho é simplesmente a lista de colunas. O corpo é o conjunto de dados que preenche a tabela, organizado em linhas.

– Todos os valores são escalares. Ou seja, em qualquer posição de linha / coluna na tabela, há apenas um valor exclusivo.

-Elements

A figura a seguir mostra uma tabela com os nomes de seus elementos básicos, que compõem uma estrutura completa.

Modelo de banco de dados relacional: elementos, como fazê-lo, exemplo 2

Tupla

Cada linha de dados é uma tupla, também conhecida como registro. Cada linha é uma n-tupla, mas o “n-” geralmente é descartado.

Coluna

Cada coluna de uma tupla é chamada de atributo ou campo. A coluna representa o conjunto de valores que um atributo específico pode ter.

Chave

Cada linha possui uma ou mais colunas chamadas chave de tabela. Esse valor combinado é exclusivo para todas as linhas em uma tabela. Essa chave identificará cada tupla exclusivamente. Ou seja, a chave não pode ser duplicada. É chamado chave primária.

Por outro lado, uma chave externa ou secundária é o campo de uma tabela que se refere à chave primária de outra tabela. É usado para referenciar a tabela principal.

Regras -Integrity

Ao projetar o modelo relacional, são definidas algumas condições que devem ser atendidas no banco de dados, chamadas regras de integridade.

Integridade da chave

A chave primária deve ser exclusiva para todas as tuplas e não pode ter o valor nulo (NULL). Caso contrário, você não poderá identificar a linha exclusivamente.

Relacionado:  Topologia de barramento: recursos, vantagens, desvantagens

Para uma chave que consiste em várias colunas, nenhuma dessas colunas pode conter NULL.

Integridade referencial

Cada valor de uma chave estrangeira deve corresponder a um valor da chave primária da tabela principal ou referenciada.

Somente uma linha com uma chave estrangeira pode ser inserida na tabela secundária se esse valor existir em uma tabela primária.

Se o valor da chave for alterado na tabela principal, porque a linha é atualizada ou excluída, todas as linhas nas tabelas secundárias com essa chave estrangeira devem ser atualizadas ou excluídas de acordo.

Como fazer um modelo relacional?

-Reúna dados

Os dados necessários para armazená-los no banco de dados devem ser coletados. Esses dados são divididos em tabelas diferentes.

Um tipo de dados apropriado deve ser escolhido para cada coluna. Por exemplo: números inteiros, números de ponto flutuante, texto, data etc.

-Definir chaves primárias

Para cada tabela, uma coluna (ou poucas colunas) deve ser escolhida como a chave primária, que identificará exclusivamente cada linha da tabela. A chave primária também é usada para se referir a outras tabelas.

-Criar relacionamentos entre tabelas

Um banco de dados que consiste em tabelas independentes e não relacionadas tem pouco objetivo.

O aspecto mais crucial no design de um banco de dados relacional é identificar os relacionamentos entre as tabelas. Os tipos de relacionamento são:

Um para muitos

No banco de dados “Lista de turmas”, um professor pode ensinar em zero ou mais turmas, enquanto uma turma é ministrada por um único professor. Esse tipo de relacionamento é conhecido como um para muitos.

Esse relacionamento não pode ser representado em uma única tabela. No banco de dados “Lista de turmas”, você pode ter uma tabela chamada Professores, que armazena informações sobre os professores.

Para armazenar as aulas ministradas por cada professor, poderiam ser criadas colunas adicionais, mas um problema seria enfrentado: quantas colunas criar.

Por outro lado, se você tiver uma tabela chamada Classes, que armazena informações sobre uma classe, colunas adicionais podem ser criadas para armazenar informações sobre o professor.

No entanto, como um professor pode ensinar em muitas classes, seus dados serão duplicados em várias linhas da tabela Classes.

Projete duas tabelas

Portanto, duas tabelas precisam ser projetadas: uma tabela Classes para armazenar informações sobre as classes, com Class_Id como chave primária e uma tabela Masters para armazenar informações sobre os professores, com Maestro_Id como chave primária.

Você pode criar o relacionamento um para muitos armazenando a chave primária da tabela Mestre (Maestro_Id) na tabela Classes, conforme ilustrado abaixo.

Modelo de banco de dados relacional: elementos, como fazê-lo, exemplo 3

A coluna Maestro_Id na tabela Classes é conhecida como chave estrangeira ou chave secundária.

Para cada valor Master_Id na tabela Mestre, pode haver zero ou mais linhas na tabela Classes. Para cada valor de Class_Id na tabela Classes, há apenas uma linha na tabela Masters.

Muitos para muitos

Em um banco de dados “Vendas de produtos”, o pedido de um cliente pode conter vários produtos e um produto pode aparecer em vários pedidos. Esse tipo de relacionamento é conhecido como muitos para muitos.

Relacionado:  Tecnologia Fixa: Recursos, Vantagens, Desvantagens, Exemplos

Você pode iniciar o banco de dados “Venda de produtos” com duas tabelas: Produtos e Pedidos. A tabela Produtos contém informações sobre os produtos, com o ID do produto como chave primária.

Por outro lado, a tabela Pedidos contém os pedidos do cliente, com o ID do pedido como a chave primária.

Você não pode armazenar os produtos pedidos na tabela Pedidos, pois não se sabe quantas colunas reservar para os produtos. Os pedidos também não podem ser armazenados na tabela Produtos pelo mesmo motivo.

Para admitir um relacionamento muitos-para-muitos, você precisa criar uma terceira tabela, conhecida como tabela de união (Detalhes do Pedido), em que cada linha representa um elemento de um pedido específico.

Para a tabela OrderDetails, a chave primária consiste em duas colunas: orderID e productID, identificando exclusivamente cada linha.

As colunas requestID e productID na tabela OrderDetails são usadas para referenciar as tabelas Orders e Products. Portanto, eles também são chaves estrangeiras na tabela OrderDetails.

Modelo de banco de dados relacional: elementos, como fazê-lo, exemplo 4

Um a um

No banco de dados “Vendas de produtos”, um produto pode ter informações opcionais, como descrição adicional e sua imagem. Mantê-lo dentro da tabela Produtos geraria muitos espaços vazios.

Portanto, outra tabela (Extras do produto) pode ser criada para armazenar os dados opcionais. Somente um registro será criado para produtos com dados opcionais.

As duas tabelas, Produtos e Extras, têm um relacionamento individual. Para cada linha na tabela Produtos, há no máximo uma linha na tabela ProductExtras. O mesmo ID do produto deve ser usado como chave primária para ambas as tabelas.

Modelo de banco de dados relacional: elementos, como fazê-lo, exemplo 5

Vantagens

Independência estrutural

No modelo de banco de dados relacional, as alterações na estrutura do banco de dados não afetam o acesso aos dados.

Quando é possível fazer alterações na estrutura do banco de dados sem afetar a capacidade do DBMS de acessar os dados, pode-se dizer que a independência estrutural foi alcançada.

Simplicidade conceitual

O modelo de banco de dados relacional é ainda mais simples no nível conceitual do que o modelo de rede hierárquica ou de banco de dados.

Como o modelo de banco de dados relacional libera o designer dos detalhes do armazenamento físico dos dados, os designers podem se concentrar na visão lógica do banco de dados.

Facilidade de design, implementação, manutenção e uso

O modelo de banco de dados relacional alcança a independência dos dados e a independência da estrutura, o que torna o design, manutenção, administração e uso do banco de dados muito mais fácil do que os outros modelos.

Recurso de consulta ad-hoc

A presença de um recurso de consulta muito poderoso, flexível e fácil de usar é uma das principais razões para a imensa popularidade do modelo de banco de dados relacional.

A linguagem de consulta do modelo de banco de dados relacional, chamada linguagem de consulta estruturada ou SQL, torna as consultas ad-hoc uma realidade. SQL é uma linguagem de quarta geração (4GL).

Um 4GL permite ao usuário especificar o que deve ser feito, sem especificar como deve ser feito. Assim, com o SQL, os usuários podem especificar quais informações desejam e deixar os detalhes sobre como obter as informações no banco de dados.

Desvantagens

Despesas de hardware

O modelo de banco de dados relacional oculta as complexidades de sua implementação e os detalhes do armazenamento físico dos dados do usuário.

Relacionado:  Soft Technology: Recursos, Aplicações e Exemplos

Para fazer isso, os sistemas de bancos de dados relacionais precisam de computadores com dispositivos de armazenamento de dados e hardware mais poderosos.

Portanto, o RDBMS precisa de máquinas poderosas para funcionar sem problemas. No entanto, como o poder de processamento dos computadores modernos está aumentando a uma taxa exponencial, a necessidade de mais poder de processamento no cenário atual não é mais um problema muito grande.

A facilidade de design pode levar a um design inadequado

O banco de dados relacional é fácil de projetar e usar. Os usuários não precisam conhecer os detalhes complexos do armazenamento físico de dados. Eles não precisam saber como os dados são realmente armazenados para acessá-los.

Essa facilidade de design e uso pode levar ao desenvolvimento e implementação de sistemas de gerenciamento de banco de dados mal projetados. Como o banco de dados é eficiente, essas ineficiências de design não serão reveladas quando o banco de dados for projetado e quando houver apenas uma pequena quantidade de dados.

À medida que o banco de dados cresce, os bancos de dados mal projetados diminuem a velocidade do sistema e causam degradação do desempenho e corrupção de dados.

Fenômeno “Ilhas da Informação”

Como afirmado anteriormente, os sistemas de bancos de dados relacionais são fáceis de implementar e usar. Isso criará uma situação na qual muitas pessoas ou departamentos criarão seus próprios bancos de dados e aplicativos.

Essas ilhas de informações impedirão a integração de informações, essencial para o funcionamento suave e eficiente da organização.

Esses bancos de dados individuais também criarão problemas como inconsistência de dados, duplicação de dados, redundância de dados etc.

Exemplo

Suponha um banco de dados composto pelas tabelas Fornecedores, Peças e Remessas. A estrutura das tabelas e alguns registros de amostra são definidos abaixo:

Modelo de banco de dados relacional: elementos, como fazê-lo, exemplo 6

Cada linha da tabela Fornecedores é identificada por um número de fornecedor exclusivo (SNo), identificando exclusivamente cada linha da tabela. Da mesma forma, cada peça tem um número de peça exclusivo (PNo).

Além disso, não pode haver mais de uma remessa para uma determinada combinação Fornecedor / Peça na tabela Remessas, pois essa combinação é a chave principal de Remessas, que serve como uma tabela de união, pois é um relacionamento de muitos para muitos.

O relacionamento das tabelas de Peças e Remessas é dado por ter em comum o campo PNo (número da peça) e o relacionamento entre Fornecedores e Remessas decorre de ter em comum o campo SNo (número do fornecedor).

Analisando a tabela Remessas, pode-se obter como informação que um total de 500 castanhas estão sendo enviadas dos fornecedores Suneet e Ankit, 250 cada.

Da mesma forma, 1.100 parafusos foram enviados no total de três fornecedores diferentes. 500 parafusos azuis foram enviados do fornecedor Suneet. Não há remessas de parafusos vermelhos.

Referências

  1. Wikipedia, a enciclopédia livre (2019). Modelo relacional. Retirado de: en.wikipedia.org.
  2. Techopedia (2019). Modelo Relacional Retirado de: techopedia.com.
  3. Dinesh Thakur (2019). Modelo Relacional Notas do computador Retirado de: ecomputernotes.com.
  4. Geeks para Geeks (2019). Modelo Relacional Retirado de: geeksforgeeks.org.
  5. Universidade Tecnológica de Nanyang (2019). Um tutorial de início rápido sobre o design de banco de dados relacional. Retirado de: ntu.edu.sg.
  6. Adrienne Watt (2019). Capítulo 7 O Modelo de Dados Relacional. BC Open Textbooks. Retirado de: opentextbc.ca.
  7. Toppr (2019). Bancos de dados relacionais e esquemas. Retirado de: toppr.com.

Deixe um comentário