Banco de Dados do Moodle Arquitetura do Banco de Dados do Moodle Alterações que ocorreram na versão 2.7 Lino Vaz Moniz [email protected] 8º edição do Moodle Moot Floripa 2014 09/10/2014 Sumário Padrão de nome das tabelas Colunas que registram instancias ao invés de chave estrangeira de uma única tabela Chave de integração idnumber Tabela que gerencia o contexto Tabelas que gerenciam matrículas Tabelas que gerenciam notas Estrutura da tabela de log no Moodle 2.7 Padrão de nome das tabelas Nome da tabela é composta por prefixo e nome do plugin. Exemplo: mdl_fórum mdl_fórum_post mdl_role mdl_role_assignments O prefixo padrão é mdl_ O prefixo é dinâmico. Pode ser customizado no momento da instalação No mesmo banco de dados você pode ter várias instalações do Moodle. As tabelas de cada instalação devem ser separadas por prefixo Colunas que registram instancias ao invés de chave estrangeira de uma única tabela Tabela Coluna do Tipo de Instância Coluna da Instância Descrição mdl_context contextlevel instanceid Registra tabela de domínio do contexto: 10 – Sistema 30 – Usuário 40 = Cat. de curso 50 – Curso ... Registra instância, ou seja, chave estrangeira conforme o contexto definido na coluna contextlevel. Se o contexto for 50, a chave estrangeira será da tabela mdl_course A tabela mdl_context registra o contexto de curso, usuário, grupo etc para efeito de gerenciamento de permissão. module instance Registra chave estrangeira da tabela mdl_modules Registra instância, ou seja, chave estrangeira conforme o valor da coluna module. Se a coluna module tiver id referente ao fórum, a chave estrangeira será da tabela mdl_forum itemmodule iteminstance A tabela mdl_grade_items Registra o nome do módulo Registra instância, ou seja, chave estrangeira conforme o valor da coluna itemmodule. Se a coluna itemmodule tiver valor forum, a chave estrangeira registra as avaliações geradas por diversos plugins de atividade instanciadas no ambiente do curso. mdl_course_modules mdl_grade_items A tabela mdl_course_modules registra os recursos / atividades cadastrados no curso. Chave de integração idnumber idnumber é uma chave genérica Pode ser usado para padronização de dados Pode ser usado para integração com outros sistemas Exemplos de tabelas que tem campo idnumber mdl_user mdl_course mdl_course_categories mdl_groups mdl_course_modules mdl_grade_items Tabela que gerencia o contexto Consultar registro do contexto: SELECT id,instanceid,path mdl_contexto FROM A linha contornada em vermelho mostra o contexto do curso com id 2 O id do contexto do curso com id 2 é 19 Consultar o contexto do curso SELECT id FROM mdl_context WHERE contextlevel=50 AND instanceid=2 Tabelas que gerenciam matrículas Tabela Descrição mdl_enrol Registra as regras de matrícula (método de inscrição). Cada regra é uma instância de um determinado plugin vinculado a um curso. mdl_user_enrolments Registra o vínculo do usuário a regra de inscrição. Também configura o período de validade da matrícula mdl_role_assignments Registra a matricula do usuário vinculado a um determinado contexto (categoria de curso, curso ...) e a um determinado perfil (aluno, tutor ...). Gerenciar Método de Inscrição Instanciar um novo método de inscrição no ambiente do curso O painel de gerenciamento do método de inscrição pode ser acessado no bloco de administração do curso Gerenciar Método de Inscrição Escolher qual plugin será usado para criar método de inscrição Gerenciar Método de Inscrição Configurar formulário para criar método de inscrição Gerenciar Método de Inscrição Consultar Métodos de Inscrição cadastrados: SELECT * FROM mdl_enrol O método de inscrição denominado “Método de Inscrição I” é registrado na tabela mdl_enrol com id 4 como mostra a figura abaixo Gerenciar Inscrição Tela do curso com método de inscrições habilitado O aluno precisa colocar o código habilitado no método de inscrição para acessar o curso Gerenciar Inscrição Lista de alunos inscritos no curso O aluno 2 foi inscrito usando o método de inscrição “Método de Inscrição I” Gerenciar Inscrição Consultar método de inscrição dos alunos: SELECT * FROM mdl_user_enrolments O aluno 2 foi inscrito usando o método de inscrição “Método de Inscrição I”. Observe que o campo enrolid da tabela mdl_user_enrolments é chave estrangeira da tabela mdl_enrol. SELECT * FROM mdl_enrol Gerenciar Inscrição Consultar as inscrições feitas no curso: SELECT * FROM mdl_role_assignments Observe que o campo contextid da tabela mdl_role_assignments é chave estrangeira da tabela mdl_context SELECT * FROM mdl_context Tabelas que gerenciam notas Tabela Descrição mdl_pluginxx_grade Registra as notas do plugin de atividade mdl_grade_items Registra a avaliação do plugin de forma centralizada. Duplica a avaliação para ser reconhecida pelo core do Moodle mdl_grade_grades Registra nota centralizada do Moodle. Duplica os registros de notas criados nos plugins. Notas no plugin tarefa Tabela que registra a tarefa Consultar tarefas cadastradas na tabela: SELECT * FROM mdl_assign Notas na tabela do plugin de tarefa Consultar nota na tabela de tarefa: SELECT * FROM mdl_assign_grades Interface da tabela geral de notas do Moodle Tabela geral de avaliação Consultar avaliação geral no Moodle: SELECT * FROM mdl_grade_items Tabela geral de avaliação Consultar avaliação geral no Moodle: SELECT * FROM mdl_grade_items Observe que o campo iteminstance da tabela mdl_grade_items é chave estrangeira da tabela mdl_assign desde que a coluna itemmodule da tabela mdl_grade_items tenha o valor assign SELECT * FROM mdl_assign Tabela geral de nota Consultar notas na tabela geral do Moodle: SELECT * FROM mdl_grade_grades Observe que o campo itemid da tabela mdl_grade_grades é chave estrangeira da tabela mdl_grade_items Mudança de nome da tabela de log no Moodle 2.7 Tabela Descrição mdl_log Tabela que registra log do Moodle até a versão 2.6 mdl_logstore_standard_log Tabela que registra log do Moodle a partir da versão 2.7 Relatório de log do Moodle até a versão 2.6 Estrutura da tabela de log do Moodle até a versão 2.6 Tabela de log do Moodle até a versão 2.6 Consultar log no Moodle até a versão 2.6: SELECT * FROM mdl_log Relatório de log do Moodle a partir da versão 2.7 Estrutura da tabela de log do Moodle a partir da versão 2.7 Tabela de log do Moodle a partir da versão 2.7 Consultar log no Moodle a partir da versão 2.7: SELECT * FROM mdl_logstore_standard_log Lino Vaz Moniz Telefone (61) 9937-8258 E-mail [email protected] http://www.badiu.net Skype badiu.net