Representação de dados numa base de dados

Uma tabela típica num base de dados relacional (BDr) contém dados sobre um único tema, ou objecto-informativo, e tem uma denominação unívoca no esquema em que está incluída. Já um esquema é uma representação de um processo de negócio. Por exemplo, o esquema da Figura 1 denomina-se Cinema e é composto pelas tabelas Filme, Actor e Actores do Filme; neste esquema só pode haver uma tabela Actor.

Figura 1: Esquema Cinema.
Uma tabela tem que ser constituída por pelo menos uma coluna, e uma coluna é um conjunto de valores de um certo tipo de dados: nomes, números de telefone, datas, entre muitas outras possibilidades. Numa tabela não podem coexistir colunas com o mesmo nome. Por outro lado, tanto quanto possível essa denominação deve explicitamente indicar qual o tipo de dados tratados na coluna.

Figura 2: Tabela Filme.

A tabela Filme (Figura 2) tem quatro colunas: uma para o nome do filme (Título do Filme), outra para a duração em minutos (Duração), uma outra para registar o nome do realizador (Realizador) e, finalmente, uma para o ano de produção do filme (Ano de Produção).

Na Figura 2, tabela Filme, o título do filme “Gone with the Wind” é uma peça de informação atómica, ou simplesmente, uma peça de informação. Por sua vez cada linha é um objecto distinto dentro da tabela, ou dito de outro modo, cada linha é irrepetível. Ou seja, a linha da tabela Filme em que o título é “King Kong” e o ano de produção “1933” é um conjunto único de dados.

Regra geral a intercepção de uma coluna com uma linha origina sempre um valor, mas pode acontecer que ele não exista, como no caso da coluna Duração no filme “Apocalypse Now”, e nesse caso a coluna tem o valor de NULL. O valor NULL não é zero, nem um espaço em branco, é pura e simplesmente a ausência de um valor. Numa BDr sempre que não se conhece o valor para uma coluna não se deve usar nenhum dos truques clássicos da informática como, por exemplo, preencher com “-“, ou “_”. É sempre preferível deixar o campo a NULL.

Figura 3: Tabela Filme com valor nulo na coluna Duração.

Associação 1:1 entre objectos

A associação, ou relação, entre peças de informação é fundamental para no desenho do modelo de dados relacional. Tudo o que tenha o grau 1:1 deve manter-se na mesma relação.
A não observação desta regra leva a que no mesmo modelo de dados possam existir várias relações com a mesma chave primária. O que em si mesmo é uma impossibilidade lógica, pois duas relações com a mesma chave primária são uma e a mesma coisa.

Media library – Itens

Por vezes surgem em modelos de dados construções particulares que são confusas pois fogem aos estereótipos. No caso do modelo proposta por Williams (2011) há uma secção sobre a tipificação de atributos de suportes de informação como se pode ver na Figura 1.

Figura 1: Tipificação de atributos.

Como se trata de um centro de documentação onde são possíveis tipos muito distintos de elementos como, por exemplo, livros, revistas, DVD, VHS, CD, então é quase impossível ter uma tabela na base de dados onde existam em simultâneo TODOS as colunas necessárias à caracterização de casa item. Uma tabela construída dessa forma além de ter numerosas colunas teria sempre muitas que não seriam preenchidas por não se encaixarem no item a registar.

Assim, Williams (2011) propõe uma construção invulgar que começa pela definição do tipo de dados (Ref_Data_Types), que se liga a Data_Items onde se definem TODAS as características que interessem aos diferentes tipos de media. Esta última por sua vez converge em Library_Data_Items onde se atribuem as caraterísticas a cada um dos Library_Items.

A tabela Data_Item_Values proposta não faz qualquer sentido pois há uma relação de 1:1 entre a característica e o respectivo valor. Ou seja a coluna “Data_Item_Value” deve transitar para a tabela Library_data_Items, e a tabela Data_Item_Values deve ser descartada.