Sou estudante de graduação e ainda não trabalhei com nenhum banco de dados, então peço desculpas se não entendi/utilizei mal algum termo. Minha pergunta vem de uma tarefa minha, mas esta é minha tentativa de aprender e não fazer o dever de casa para mim.
A tarefa, parafraseada:
O serviço de impressão de uma universidade permite que os alunos do campus carreguem seus arquivos no sistema e enviem os arquivos carregados para uma das impressoras da universidade para impressão... O sistema registra todas as impressões feitas por todos os alunos, registrando a identificação do aluno, qual impressora foi usada , o nome do arquivo de impressão, bem como a hora da impressão. Um administrador do sistema deve ser capaz de visualizar o arquivo de log filtrado para qualquer aluno, impressora e/ou período de tempo (que eu saiba, isso requer indexação).
Uma questão que me deparo é qual abordagem de armazenamento de dados (banco de dados ou sistema de arquivos) devo usar para os arquivos do aluno e o arquivo de log, sendo ambos dados de crescimento frequente.
A partir desta pergunta do SO, concluí que os arquivos de atualização freqüentes são melhor armazenados como armazenamento do sistema de arquivos e, a partir desta pergunta, os arquivos podem ser armazenados em um banco de dados com blobs.
Minhas perguntas são:
- O arquivo de log deve ser armazenado no banco de dados ou no sistema de arquivos? (Ou acho que a questão determinante seria "É possível filtrar por vários valores sem indexação?")
- Se os arquivos dos alunos forem armazenados com um blob relacionado a um aluno na tabela do banco de dados, é possível que cada aluno tenha acesso apenas aos seus próprios arquivos?
- Por que o sistema de arquivos é mais adequado para arquivos que crescem com frequência?
- É possível (ou prático) que um servidor use banco de dados e sistema de arquivos?