Unidade Curricular: | Código: | ||
Bases de Dados | 1093BDAD | ||
Ano: | Nível: | Curso: | Créditos: |
3 | Licenciatura | Engenharia Informática | 6 ects |
Período Lectivo: | Língua de Instrução: | Nº Horas: | |
Primeiro Semestre | Português/Inglês | 78 | |
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) |