Fundamentos de Bancos de Dados

Bancos de dados e seus elementos estão presentes em nosso dia a dia, sendo elementos indispensáveis para a sociedade atual. A todo momento estamos lidando, mesmo que sem perceber, com ações que envolvem algum tipo de banco de dados. Um saque em um caixa eletrônico, o aluguel de um carro, reserva um quarto de hotel, são apenas alguns dos exemplos de ações que nos colocam em contato com banco de dados.

Podemos definir os dados como sendo fatos que podemos representar com medidas ou escalas ou mesmo símbolos formais dentro de um modelo formal que representa o dito “mundo real”.

O motivo pelo qual utilizamos modelos é porque não podemos transportar o “mundo real” para dentro de um computador ou outro dispositivo computacional. Utilizamos modelos para que possamos refletir as coisas que consideramos importantes no mundo real e as entidades e propriedade que necessitamos manipular.

Dado Vs. Informação

Para fazermos uma diferenciação definimos informação como “aquilo que é obtido quando depuramos os dados brutos.”. Dados brutos podem não fazer muito sentido quando se precisa tomar decisões, mas quando levados a um nível de abstração mais elevado eles se tornam informações.

Imagine um agricultor que utiliza um sistema de medida, contagem, para sua plantação, armazenando quanto foi produzido a cada safra. Isso já seria muito interessante, pois ele poderia fazer levantamentos de quando um ano foi melhor ou pior que outro. Mas imagine esse mesmo agricultor armazenando dados como: “esse ano houve cheia e x% da plantação foi perdida” ou ainda: “plantamos 50% de cultura x e 50% de cultura y, e isso foi bem proveitoso”. São abstrações que vão além de uma simples contagem. Essas abstrações podem ajudar o agricultor a tomar decisões do tipo: “no período dos meses x e y, melhor evitar plantar cultura a, pois é época de cheias” e por aí vai. Esse tipo de informação “qualitativa” pode ser muito mais eficiente do que a “quantitativa”, pois permite que façamos previsões.

Entidades, Atributos, Valores e Relacionamentos

Entidades, atributos, valores e relacionamentos são os componentes de um modelo relacional. No SQL, a representação é feita através de linhas e de colunas. Diferentemente de planilhas, o Modelo Relacional é feito de linhas e as linhas são as colunas.

Entidades

Uma entidade pode ser um objeto concreto em sua realidade, como uma pessoa ou coisa, ou pode ser uma relação entre objetos em sua realidade, como um casamento, que pode ser tratado como se fosse um objeto. Não é óbvio que algumas informações devam sempre ser modeladas como uma entidade, um atributo ou um relacionamento. Mas pelo menos no SQL você terá uma tabela para cada classe de entidade, e cada linha representará uma instância dessa classe.

Atributos

Os atributos pertencem às entidades e as definem. Leibniz chegou mesmo a dizer que uma entidade é a soma de todos os seus atributos. O SQL concorda com essa instrução e modela atributos como colunas nas linhas de tabelas que podem assumir valores.

Valores

Um valor pertence a um atributo. O valor específico para um atributo específico é extraído de um domínio ou tem um tipo de dados. Existem várias escolas de pensamento sobre domínios, tipos de dados e valores, mas as duas principais escolas são as seguintes:

  1. Tipos de dados e domínios são conjuntos de valores no banco de dados. Ambos são conjuntos finitos porque todos os modelos são finitos. O tipo de dados difere por ter operadores no hardware ou software para que o usuário do banco de dados não precise fazer todo esse trabalho. Um domínio é construído em um subconjunto de um tipo de dados, que herda alguns ou todos os seus operadores do tipo de dados e restrições originais, mas agora o banco de dados pode ter operadores definidos pelo usuário no domínio.
  2. Um domínio é um conjunto finito ou infinito de valores com operadores que existe na realidade do banco de dados. Um tipo de dados é um subconjunto de um domínio suportado pelo computador no qual o banco de dados reside. O banco de dados aproxima um domínio com um subconjunto de um tipo de dados, que herda alguns ou todos os seus operadores do tipo de dados original e outras restrições e operadores dados a ele pelo designer do banco de dados.

Relacionamentos