Objetivos

Expor os principais fundamentos de banco de dados e os sistemas gerenciadores que administram sua utilização. Apresentar técnicas de modelagem e de implementação de bancos de dados.

Programa Resumido

Introdução: arquitetura de bancos de dados. Modelagem de bancos de dados: projeto conceitual, lógico e físico de bancos de dados. Modelos conceituais: modelo ER básico e estendido. Projeto de bancos de dados utilizando o modelo ER estendido. Modelo relacional: definições e formalização. Mapeamento do modelo ER estendido para o Modelo Relacional. Linguagens do modelo relacional: álgebra relacional, cálculo relacional e SQL. Dependências funcionais e normalização de relações. Índices hashing e árvores B, B+. Controle de concorrência e algoritmos para recuperação de falhas. Otimização de consultas relacionais. Dados semi-estruturados (por exemplo, XML e JSON). Novas tecnologias para gerenciamento de dados (por exemplo, NoSQL).

Bibliografia

1- R. Elmasri, S.B. Navathe, Fundamentals of Database Systems, 6th ed., Addison-Wesley, 2010. 2- C.J. Date, Introdução a Sistemas de Bancos de Dados, 8ª ed., Campus, 2004.
3- J.E. Ferreira, M. Finger, Controle de concorrência e distribuição de dados: a teoria clássica, suas limitações e extensões modernas, XII Escola de Computação, IME-USP, 2000.
4- C.A. Heuser, Projeto de Banco de Dados, 6ª ed., Bookman, 2008.
5- A. Silberschatz, H.F. Korth, S. Sudarshan, Database System Concepts, 6th ed., McGraw-Hill, 2010.
6- V.W. Setzer, F.C. Silva, Bancos de Dados: Aprenda o que são, melhore seu conhecimento, construa os seus, Edgar Blucher, 2005.
7- P.J. Sadalage, M. Fowler, NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence, Addison Wesley, 2011.

Ementa completa disponível em:

https://uspdigital.usp.br/jupiterweb/obterDisciplina?sgldis=MAC0426