Esta é a página oficial da disciplina de Construção de Banco de Dados (COS480) ministrada pelo professor Milton R Ramirez, oferecida sob o número SIGA 13025, às segunda e quartas, de 10h às 12h.
A disciplina abordará detalhes sobre a construção dos núcleos de Sistemas Gerenciadores de Banco de Dados (DB Engine kernels). Em particular, estudaremos o Gerenciamento do Armazenamento de Bases de Dados Relacionais, o Processamento e Otimização de Consultas Relacionais, o Gerenciamento de Transações, o Controle de Execução Concorrente e o Sistema de Recuperação de Banco de Dados.
Adotaremos a metodologia de aprendizado clássica, com ligeiras modificações, baseada em sequência pré-determinada de leituras, debates e exercícios de programação tomadas dos seguintes livros texto:
Sistemas de Banco de Dados; R. Elmasri e S. B. Navathe; ISBN: 9788543025001; 7a Edição; 2018; Editora Pearson
Sistemas de Banco de Dados; A. Silberschatz, H,F, Korth, S. Sudarshan; ISBN: 9788595157330; 7a Edição; 2020; Editora Gen/LTC
Há ainda outras bibliografias de apoio à disciplina. Algumas recomendações são apresentadas ao final dessa web página.
O método de ensino a ser adotado nessa disciplina é o clássico com algumas modificações. Ele possui seis diretivas :
Sequência pré-determinada de leitura do livro texto com elaboração de resenhas.
Aulas semanais com o professor nos horários de segundas e quartas, de 10h às 12h. Caso haja necessidade de aula ministradas de forma remota, será utilizada uma sala no Google Meet que será informada através do AVA@UFRJ.
Tarefas a serem concluídas individualmente, ou em grupo, como trabalhos de programação, listas de exercícios recomendados, estudos dirigidos e participação em debates em sala de aula.
Participação nos Fórum de discussão assíncronos, através do AVA@UFRJ, para registros da participação em discussões, aprofundamento de tópicos, orientação de estudo e esclarecimento de dúvidas.
Todas atividades de ensino terão como apoio o Ambiente Virtual de Aprendizado da UFRJ: AVA@UFRJ
Avaliação baseada na participação de discussões em sala de aula, trabalhos em grupos, testes e provas individuais.
As aulas, a que se refere o item 2, apresentarão o conteúdo na mesma sequencia apresentada na seção sobre "Ementa e Calendário". Isso vem em auxílio àqueles que porventura tiverem algum impedimento pessoal, para assistir a alguma das aulas. Deste modo poderão dar continuidade ao processo de aprendizado através de uma rotina adequada de estudos que siga a sequência semanal pré-determinada.
As atividades pedagógica serão realizadas com o apoio do Ambiente Virtual de Aprendizado da UFRJ, disponível em AVA@UFRJ, onde o estudante já estará cadastrado diretamente pelo SIGA. Caso haja algum problema na inscrição, o aluno poderá utilizar a seguinte chave de acesso de autoinscrição na turma de Construção de Banco de Dados do prof. Milton R Ramirez:
Turma Construção de Banco de Dados, de 10h às 12h (SIGA turma no 13025):
No AVA@UFRJ, busque por: "Construção de Banco de Dados - 13025", ou pela palavra curta "GRAD.2022-2.COS480.13025"
Chave de autoinscrição: MR2-CBD
Além do AVA@UFRJ há os seguintes canais para auxiliar na comunicação entre estudantes e o professor:
e-mails (dúvidas e questões individuais):
Discord (reuniões, fóruns, chats de discussões para toda a turma e mensagens individuais):
Convite para a Arena da turma: Arena no Discord
Link para a sala de aula virtual no Google Meet [será divulgado via o AVA@UFRJ]
A ementa da disciplina está dividida em três partes, cada uma contendo uma avaliação principal e um conjunto de atividades que renderão pontos. As atividades terão pontuação conforme o descrito na seção Avaliação a seguir.
Conforme a Resolução CONSUNI no. 19/2021, de 09 de dezembro de 2021, o segundo período de 2022 terá 19 semanas, iniciando no dia 29 de agosto de 2022 e terminando no dia 14 janeiro de 2023. O calendário a seguir apresenta as data planejadas para as aulas de cada tema da ementa com as correspondentes seções dos livros texto a serem estudadas e debatidas, e, também, as datas previstas para as Avaliações Principais.
Tomando-se as seguintes abreviações: SKS para o livro do Silberschatz, Korth, Sudarshan, Sistema de Banco de Dados, 7a edição; e EN para o livro do Elmasri, Navathe, Sistemas de Banco de Dados, 7a edição.
Parte 1: Arquitetura do SBD e o Gerente de Armazenamento
Semana 01 - 29 de agosto: Revisão Geral de Sistemas de Banco de Dados (seções 1.1 a 1.8 SKS, e Cap 1 e 2 EN)
Semana 02 - 05 de setembro: Hierarquia de Memória e Sistemas de Armazenamento Primário (Cap 12 e seção 13.5 SKS, e seções de 16.1 a 16.3, 16.10 e 16.11 EN)
Dia 07 de setembro: Feriado do Dia da Independência
Semana 03 - 12 de setembro: Estruturas de Armazenamento de Dados Primárias (Seções 13.1 a 13.4 SKS, e seções 16.4 a 16.9 EN)
Semana 04 - 19 de setembro: Outras Estruturas de Armazenamento de Dados (seções 13.6 e 13.7 SKS, e seções 16.9, tópico final da 17.6.4 EM)
Avalição Trabalho em grupo: Esquemas de Armazenamento Primários
Semana 05 - 26 de setembro: Indexação Básicas(Seções 14.1, 14.2, 14.6, 14.9 SKS, e seções 17.1, 17.2, 17.4, 17.5 EN)
Semana 06 - 03 de outubro: Indexação Hash (Seções 14.5 e 24.3 SKS, e seções 17.4.2 e 17.5.1 EN)
Semana 07 - 10 de outubro: Índices baseado em Árvores-B (Seções 14.3, 14.4 SKS, e seção 17.3 EN)
Dia 12 de outubro: Feriado de N. Sra. Aparecida
Semana 08 - 17 de outubro: Índices Hierárquicos n-dimensionais (Seções 14.10 e 24.4 SKS, e seção 26.3.4 EN)
Parte 2 : Processamento e Otimização de Consultas
Semana 09 - 24 de outubro: Processamento de Consultas (Cap 15 SKS, e seções 18.1 a 18.6 EN)
Semana 10 - 31 de outubro: Otimização de Consultas (Cap 16 SKS, e seções 19.1 a 19.2 EN)
Dia 02 de novembro: Feriado de Finados
Dia 07 de novembro, Prova: Indexação e Processamento de Junções
Parte 3 : Gerenciamento de Transações e de Recuperação
Semana 11 - 07 de novembro: Controle de Transações parte I (Cap 17 SKS e Cap 20 EN)
Semana 12 - 14 de novembro: Controle de Transações parte II (Cap 17 SKS e Cap 20 EN)
Semana 13 - 21 de novembro: Controle de Concorrência baseado em Lock (Seções 18.1 a 18.4 SKS e Seções 21.1, 21.5 e 21.6 EN)
Semana 14 - 28 de novembro: Controle de Concorrência baseado em Timestamps, Versionamento e Validação (Seções 18.5 a 18.8 SKS, Seções 21.2 a 21.4 EN)
Semana 15 - 05 de dezembro: Gerente de Recuperação e Falhas parte I (Cap 19 SKS)
Semana 16 - 12 de dezembro: Gerente de Recuperação e Falhas parte II (Cap 22 EN)
Semana 17 - 19 de dezembro: Debate Final
Semana 18 - 02 de janeiro de 2023: Revisão Geral para a prova
Dia 04 de janeiro de 2023: Prova Final
Semana 19 - 09 de janeiro de 2023: Revisão geral para 2a chamada
Dia 11 de janeiro de 2023: Prova de 2a Chamada
A avaliação do aprendizado nessa disciplina fará uso de cinco métodos distintos de pontuação para o computo do grau final. São eles:
Participação em discussões em sala de aula sobre temas apresentados nos livros texto. Serão avaliados o nível de participação e a qualidade das contribuições.
Conclusão e apresentação de Trabalhos em grupo. Será avaliado se estão completos, corretos, qualidade da apresentação e grau de participação dos alunos.
Testes e provas escritas.
Participação nos Fóruns de discussões assíncronas no AVA@UFRJ. Serão avaliados a frequência de participação e a qualidade das contribuições.
Os testes e as provas serão aplicados durante o horário de aula, de 10:00h às 12:00h, na própria sala de aula, ou, se necessário, em uma sala maior que permita acomodar corretamente a totalidade da turma. As provas e a sua 2a chamada estão com as seguintes datas previstas:
Prova : 07 de novembro de 2022
Prova Final: 04 de janeiro de 2023
2a Chamada: 11 de janeiro de 2023
Nos dias das provas e testes será requerido:
Documento recente com foto;
Caneta preta para a realização da prova;
Os testes poderão ter uma dinâmica de aplicação diferenciada das provas e não terão 2a chamada.
O Grau Final (média final, nota final) na disciplina será obtida pela média ponderada entre as notas, de 0 a 10, das diversas peças de avaliação.
Elmasri, Navathe, Sistemas de Banco de Dados, 7a Edição, Editora Pearson
Abraham Silberschatz, Henry F Korth, S. Sudarshan, Sistemas de Banco de Dados, 7a Edição, Editora LTC.
Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom, Database Systems, The Complete Book, 2nd Edition, Editora Pearson Prentice Hall
C. J. Date, Introdução a Sistemas de Banco de Dados, 8a. Edição, Editora LTC