Unidade Curricular:Código:
Bases de Dados1093BDAD
Ano:Nível:Curso:Créditos:
3LicenciaturaEngenharia Informática6 ects
Período Lectivo:Língua de Instrução:Nº Horas:
Primeiro SemestrePortuguês/Inglês78
Objectivos de Aprendizagem:
Esta unidade curricular tem por objetivos: explicar a arquitetura clássica de um SGBD, estudar modelos lógicos e físicos de bases de dados, construir modelos de bases de dados, estudar a indexação, estudar e utilizar linguagens de consulta, e descrever problemas de concorrência e recuperação e os algoritmos existentes.
Ao completar com sucesso esta unidade curricular os alunos devem ser capazes de:
• Descrever a arquitetura de um SGBD, identificando os seus componentes
• Analisar e desenhar modelos de bases de dados, utilizando o modelo E-R
• Utilizar dependências funcionais para normalizar modelos
• Propor, desenhar e otimizar fisicamente modelos de bases de dados
• Utilizar a Álgebra Relacional como linguagem de consultas
• Utilizar e escrever consultas em SQL
• Identificar as estruturas de armazenamento e analisar a criação de índices
• Identificar e analisar as implicações do controlo de concorrência
• Explicar a recuperação e descrever as técnicas a utilizar
Conteúdos Programáticos:
1. Introdução
1.1. Arquitectura de referência de um SGBD
1.2. Componentes de um SGBD
1.3. Modelos de Dados, transações, e recuperação
2. O Modelo Relacional
2.1. Relações e Regras de integridade
2.2. Dependências Funcionais
2.3. Formas Normais e normalização
3. Conceção de Bases de Dados
3.1. Modelo Entidade-Relacionamento
3.2. Mapeamento do ER em relacional
4. Álgebra Relacional
4.1. Operadores e regras
4.2. Consultas
5. SQL
5.1. Definição de estruturas, retrições
5.2. Inserção, remoção e atualização de dados
5.3. Junções, agrupamentos e agregações
5.4. Sub-interrogações e quantificadores
5.5. Operadores sobre conjuntos
5.6. Vistas
6. Armazenamento
6.1. Modelos NSM, DSM, PAX
6.2. Técnicas de indexação
6.3. Árvores e hashing
7. Controlo de Concorrência
7.1. Transações, escalonamentos e conflitos
7.2. Serialização
7.3. Algoritmos de fechos e otimistas
7.4. Níveis de isolamento
8. Recuperação
8.1. Escalonamentos recuperáveis
8.2. Algoritmos de recuperação
Demonstração da Coerência dos Conteúdos Programáticos com os Objectivos da Unidade Curricular:
Os conteúdos programáticos cobrem os objectivos previstos, estando organizados em unidades que cobrem os componentes principais de um SGBD. Sendo uma unidade curricular de introdução a Bases de Dados, os conteúdos são organizados por forma a cobrir os componentes principais da arquitectura de um SGBD. Os objectivos de análise e de conceção de modelos são endereçados nos tópicos 2 e 3. O tópico 5 (SQL) fornece aos alunos o conhecimento necessário para manipularem programaticamente um SGBD.
Metodologias de Ensino (Avaliação Incluída):
Os conteúdos são introduzidos e expostos nas aulas teórico-práticas, sendo utilizados exemplos de problemas reais. Esta metodologia é complementada com resolução de exercícios e casos práticos, a maioria de forma individual. Como todos os alunos dispõem de um portátil, instalam um SGBD e outras ferramentas com as quais trabalham durante toda a unidade curricular.
As aulas Práticas Laboratoriais baseiam-se no desenvolvimento de mini-trabalhos, geralmente implicando a construção, desde a sua conceção, de uma base de dados. A base de dados construída é utilizada para resolução de exercícios. A instalação, configuração e administração do sistema de gestão de base de dados fica a cargo dos alunos.
O método de avaliação compreende duas componentes:
A avaliação inclui:
• 2 Testes escritos de avaliação individual (25% cada)
• Os exercícios propostos. (50%)
Demonstração da Coerência das Metodologias de Ensino com os Objectivos de Aprendizagem da Unidade Curricular:
Os objectivos de aprendizagem estão centrados na compreensão do funcionamento interno de um SGBD, do conhecimento dos seus componentes, e da utilização da sua interface de programação, nomeadamente através de SQL. A resolução de exercícios práticos, implicando desenho concetual, mas também tarefas de configuração, programação e administração permite aos alunos adquirirem as competências necessárias.
Bibliografia:
1. Feliz Gouveia, Fundamentos de Bases de Dados, FCA, Lisboa, 2014.
2. Chris J. Date, An Introduction to Database Systems, 8º ed., Addison-Wesley, USA, 2003.
3. Luís Damas, SQL: Structured Query Language, 14ª edição, FCA, Lisboa, 2017.
4. Jeffrey Ullman, Jenniffer Wisdom, A First Course in database Systems, Prentice-Hall, 2014.
Docente (* Responsável):
Hélder Pinto (helderpinto@ufp.edu.pt)
Luis Borges Gouveia (lmbg@ufp.edu.pt)