Obrigatória – 60 horas – 4 créditos
Pré-requisitos: Técnicas de Programação II
Professor Responsável: Reinaldo Viana Alvares
Objetivos da Disciplina
Capacitar o aluno a classificar esquemas de banco de dados de acordo com o seu nível de abstração (conceitual, lógico e físico) e de acordo com a arquitetura de três esquemas da ANSI-SPARC; identificar os usuários do banco de dados de acordo com os níveis de abstração dos modelos de dados em que atuam; classificar Sistemas de Gerenciamento de Banco de Dados; projetar esquema conceitual entidade-relacionamento de banco de dados; projetar esquema conceitual orientado a objeto de banco de dados; traduzir esquema conceitual entidade-relacionamento do banco de dados em esquema lógico de banco de dados relacional; avaliar informalmente a qualidade do projeto conceitual e lógico de um banco de dados; aplicar regras formais para normalização de banco de dados relacional; escrever comandos para criação de banco de banco de dados relacional empregando a linguagem SQL; escrever comandos para manipulação (inclusão, remoção e atualização de dados) de um banco de dados relacional empregando a linguagem SQL.
Ementa
Conceitos básicos sobre Bancos de Dados e Sistemas de Gerência de Banco de Dados. Modelo Entidades e Relacionamentos e Modelagem de Dados com UML. Modelo relacional. Álgebra relacional e SQL. Restrições de integridade e visões. Dependências Funcionais e Formas Normais. Projeto de bancos de dados relacionais.
Conteúdo Programático
- Princípios de Banco de dados
- Definição de bancos de dados e Sistema de Gerenciamento de Banco de Dados
- Processamento de arquivos versus o uso de banco de dados
- Vantagens no uso de banco de dados
- Papéis em um ambiente de banco de dados
- Níveis de abstração de banco de dados
- Modelo de banco de dados
- Arquitetura ANSI-SPARC de três esquemas
- Esquema do banco de dados
- Estado do banco de dados
- Metadados
- Linguagens de SGBD
- Módulos típicos de um SGBD
- Utilitários de Sistemas de Banco de Dados
- Modelagem conceitual de banco de dados
- Arquitetura SGBD centralizada
- Arquitetura Cliente/Servidor
- Arquitetura de três camadas para aplicações web
- Classificação dos SGBDs baseada em modelo, número de usuários e número de sites
- Arquitetura e classificação de SGBD
- Modelagem conceitual empregando o modelo Entidades-Relacionamentos (ER)
- Modelagem conceitual empregando o modelo Entidades-Relacionamentos-Estendido (ERE)
- Exemplo de ferramenta para construção de modelo ER/ERE de banco de dados
- Modelagem conceitual empregando diagrama de classes da UML
- Exemplo de ferramenta para construção de diagrama de classes da UML
- Projeto relacional de bancos de dados
- Construção de modelo de banco de dados relacionado a partir de modelo conceitual ER/ERE empregando regras de mapeamento ER/EER para banco de dados relacional
- Aplicação de medidas informais para qualidade de projeto de banco de dados
- Dependências funcionais e normalização de banco de dados
- Structured Query Language (SQL)
- Exemplo de Sistema de Gerenciamento de Bancos de Dados Relacionais
- Comandos para criação de banco de dados
- Criação de conta de usuário
- Criação de esquema
- Criação de tabela
- Definição de tipos de dados para colunas
- Especificação de restrições: not null, default, check, primary key, unique, foreign key
- Comandos de remoção (drop)
- Comandos de alteração
- Comandos para manipulação do banco de dados (select, insert, update e delete)
Metodologia
Aprendizagem baseada em projeto: ao longo da disciplina, a partir de um domínio pré-definido, o aluno deve projetar esquema conceitual do banco de dados empregando modelo entidade-relacionamento e projeto esquema conceitual empregando diagrama de classes da UML. Em seguida, ele deve elaborar o modelo lógico do banco de dados empregando notação simplificada como, por exemplo, a notação proposta por Heuser (2008). O aluno deve então traduzir este modelo lógico para comandos SQL para criação do banco de dados, especificando as restrições que devem ser consideradas no banco de dados. Por fim, o aluno deve manipular o banco de dados através do armazenando de dados fictícios neste banco de dados, elaboração de consultas, atualização e exclusão de dados.
Exposição de conteúdo: para apoiar o aluno na realização das suas tarefas, são realizadas aulas presenciais com exposição de conteúdos e aplicação de exercícios de fixação.Avaliação
Três provas parciais (70% da média).
Testes, exercícios e trabalhos em grupo (30% da média).
Prova final para alunos com média maior ou igual a 4,0 e menor que 7,0.Bibliografia
- Elmasri, R. Navathe. S.B. Sistemas de Bancos de Dados. 5ª Edição. Addison-Wesley, 2005.
- Elmasri, R. Navathe. S.B. Sistemas de Bancos de Dados. 6ª Edição. Addison-Wesley, 2010.
- Heuser, C.A. Projeto de Bancos de Dados. Sagra Luzzato, 2008.
- Date, C.J. Introdução a Sistemas de Bancos de Dados. Campus, 2000.