Ir para o curso

Página 18: Sistemas de banco de dados

/pt/criacao-de-sites/linguagens-e-frameworks/content/

Sistemas de banco de dados

Os bancos de dados são fundamentais para os sites dinâmicos, onde estão todas as informações administrativas e o conteúdo do site.

O banco de dados é um componente fundamental de um site dinâmico, nele contém todas as informações necessárias para que um site funcione. O banco de dados deve conter informações administrativas como usuários, permissões e senhas, informações textuais, que é o conteúdo do site e outras informações que fazem parte do projeto.

Banco de Dados Relacional

Existem vários modelos de bancos de dados e aqui vamos mostrar um deles que é usado principalmente no desenvolvimento de sites, estamos falando do modelo relacional. Este modelo tem fundamentos teóricos na álgebra relacional que foi proposta por Edgar "Ted" Codd na década de 70, como uma espécie de teoria de conjuntos aplicada aos dados.
Diagrama Entidade - Relacionamento

Diagrama Entidade - Relacionamento

Entidades

Um dos conceitos importantes no modelo relacional é o conceito de entidade. Uma entidade representa algo que é significativo e que contém atributos relevantes para o sistema. Por exemplo, se o site for um blog, uma possível entidade seria "artigo" e alguns possíveis atributos seriam sua "data de publicação" e seu "título". Mas se o site for uma loja online, uma possível entidade seria "produto" com possíveis atributos "nome" e "preço".

Chaves

É importante que cada entidade tenha um identificador único conhecido como sua chave primária que pode ser artificial, ou seja, gerado pelo sistema ou natural, isto é, normalmente faz parte da entidade. As chaves facilitam as pesquisas no banco de dados e permitem estabelecer relações entre entidades.

Relacionamentos

Um relacionamento é uma associação entre duas entidades, podemos identificar esses relacionamento quando usamos verbos como ter, conter, fazer parte de, estar inscrito, etc. Os relacionamentos são estabelecidos no momento da concepção do banco de dados e com base na experiência do projeto. Por exemplo, se o site é um blog, sabemos que um autor escreve vários artigos, então encontramos uma relação entre a entidade "artigo" da entidade e a entidade "autor". Se nosso site é uma loja on-line, sabemos que uma compra tem um ou mais produtos, então encontramos uma relação entre a entidade "compra" e a entidade "produto".

Para implementar as relações é usado o conceito de chave estrangeira que é primária para uma entidade e é copiada como um atributo de outra entidade, estabelecendo assim o relacionamento. Seguindo o exemplo do blog, para relacionar um autor com seus artigos, adicionaremos ao "artigo" um novo atributo "escrito por", que conterá o valor da chave primária da entidade "autor".

Pesquisas

Um dos benefícios de ter um modelo matemático para bancos de dados relacionais é que facilitam a criação de uma linguagem de pesquisa estruturada conhecido como SQL (Structured Query Language). Por meio dela podemos executar atualizações e consultas sobre os dados, por exemplo, atualizar atributos de uma entidade, procurar entidades que atendam a certas condições ou encontrar grupos de entidades associadas, entre muitas outras opções.

Implementação informática

Os sistemas de gerenciamento de banco de dados relacionais, RDBMS implementam o modelo relacional através do conceito de tabela. Uma tabela contém linhas e colunas. Cada entidade é registrada em uma linha da tabela e cada um de seus atributos é registrado na coluna da linha. No final, as tabelas são materializadas como arquivos no disco, de modo que suas informações sejam gravadas de forma permanente e definitiva.
Tabela Autor

Exemplo de tabela "AUTOR"

Além disso, estes sistemas oferecem funcionalidades como o gerenciamento de usuários e permissões, acesso simultâneo através da rede, criação de backups e análise de desempenho, entre outros. No mercado, encontramos muitos desses sistemas, podemos mencionar o MySQL, Oracle e PostgreSQL entre os mais conhecidos.
Tabela artigo

Exemplo de tabela "ARTIGO"

Alternativas 

O campo dos bancos de dados é bastante amplo, tanto a nível acadêmico como a nível empresarial. Existem diferentes critérios para classificá-los, uma infinidade de implementações e de drivers para se conectar a eles usando várias linguagens de programação. Dependendo da complexidade do site, podemos ter um ou mais bancos de dados, é possível combinar diferentes tipos de bancos de dados no mesmo projeto de acordo com as necessidades.

Entre as alternativas do modelo relacional, podemos encontrar outras formas de armazenamento, como repositórios de valores-chave, bancos de dados orientados a objetos, tabelas distribuídas, bancos de dados orientados a documentos ou armazenamento baseado em logs. Cada um deles tem semelhanças e diferenças com o modelo relacional. Podemos mencionar o MongoDB, Ozone DB, Oracle Berkeley Database, Apache Cassandra e Hypertable entre outros.

/pt/criacao-de-sites/integrando-tudo/content/