Aula 1: 21.09.2005
- Apresentação
Considerações gerais sobre o programa, bibliografia, funcionamento
das aulas e método de avaliação.
Aula 2: 23.09.2005
- Conceitos Básicos
Diferenças entre base de dados, dados, sistema de gestão de base
de dados (SGBD) e sistema de base de dados. Características de um
sistema de base de dados. Funcionalidades típicas de um
SGBD. Modelo de dados conceptual, representacional e físico.
Fases do desenho de uma base de dados.
- Os Modelos ER e EER
Modelo Entidade-Relacionamento (ER): entidades, atributos e
relacionamentos. Domínio de um atributo e tipo de
atributos. Entidades tipo e atributos chave. Restrições nos
relacionamentos: cardinalidade.
Aula 3: 28.09.2005
- Os Modelos ER e EER
Restrições nos relacionamentos: participação. Entidades fracas.
Diagramas ER. Restrição estrutural. Relacionamentos
ternários. Modelação de uma base de dados sobre os STCP.
Aula 4: 30.09.2005
- Os Modelos ER e EER
O Modelo Entidade-Relacionamento-Estendido (EER): subclasses,
superclasses, herança de atributos, especialização, generalização
e categorias. Diagrama EER. Restrições na
especialização/generalização: especialização definida por
condição, especialização definida por atributo, especialização
definida pelo utilizador, especialização disjunta, especialização
com sobreposição, especialização total e especialização
parcial. Hierarquia de subclasses. Definições formais do modelo
EER. Modelação de uma base de dados sobre museus.
Aula 5: 12.10.2005
- O Modelo Relacional
Conceitos básicos e notação genérica: relações, atributos,
domínios e tuplos. Superchaves, chaves, chaves candidatas, chaves
primárias e chaves externas. Restrições de integridade:
integridade de domínio, integridade da chave, integridade de
entidade e integridade referencial. Violação das restrições de
integridade: operação de inserção, remoção e alteração. Esquema
relacional de uma base de dados. Conversão do modelo ER para o
modelo relacional. Conversão para o modelo relacional da base de
dados sobre os STCP.
Aula 6: 14.10.2005
- O Modelo Relacional
Conversão do modelo EER para o modelo relacional. Conversão para o
modelo relacional da base de dados sobre museus.
Aula 7: 19.10.2005
- Álgebra e Cálculo Relacional
Operações da álgebra relacional. Operações específicas de BD:
operação de selecção, projecção e renomeação. Operações sobre
conjuntos: operação de reunião, intersecção, diferença e produto
cartesiano. Noção de compatibilidade para a reunião.
Aula 8: 21.10.2005
- Álgebra e Cálculo Relacional
Operações sobre conjuntos: divisão. Operações específicas de BD:
junção e agregação. Tipos de junção: junção-theta, equi-junção,
junção natural, junção interna e junção externa. Cálculo
relacional. Cálculo relacional por tuplos (CRT).
Aula 9: 26.10.2005
- Álgebra e Cálculo Relacional
Cálculo relacional por tuplos (CRT) e cálculo relacional por
domínios (CRD). Quantificadores e Expressões Seguras.
- A Linguagem SQL
A Data Definition Language (DDL) e Data Manipulation Language
(DML) do SQL. Criar uma nova tabela (CREATE TABLE), alterar os
atributos de uma tabela (ALTER TABLE) e remover tabelas (DROP
TABLE). Domínio dos atributos, valores por defeito e restrições
sobre os atributos (DEFAULT, NOT NULL, CHECK). Restrições de
integridade da chave (PRIMARY KEY, UNIQUE, FOREIGN KEY) e
manutenção da integridade referencial (ON DELETE, ON
UPDATE). Declarar novos domínios (CREATE DOMAIN).
Aula 10: 28.10.2005
- A Linguagem SQL
Consultas em SQL (SELECT-FROM-WHERE, SELECT *, SELECT
DISTINCT). Operadores especiais de comparação (BETWEEN, LIKE, IS
NULL). Definir a ordem dos tuplos do resultado (ORDER
BY). Operações sobre conjuntos (UNION, INTERSECT e EXCEPT).
Aula 11: 02.11.2005
- A Linguagem SQL
Consultas encadeadas (IN, ALL, ANY) e correlacionadas (EXISTS).
Aula 12: 04.11.2005
- A Linguagem SQL
Operações de junção (INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN
e FULL OUTER JOIN). Funções de agregação (COUNT, SUM, MAX, MIN e
AVG). Agrupar tuplos (GROUP BY-HAVING).
Aula 13: 09.11.2005
- A Linguagem SQL
Manipulação de tuplos em SQL: adicionar tuplos a uma tabela
(INSERT INTO), remover tuplos de uma tabela (DELETE FROM) e
alterar os valores dos atributos de uma tabela (UPDATE). Criar
visões (CREATE VIEW) e remover visões (DROP VIEW). Consultas e
alterações utilizando visões. Elementos activos em SQL: asserções
(CREATE ASSERTION) e triggers (CREATE TRIGGER).
Aula 14: 11.11.2005
- SQL em Ambiente de Programação
Formas de suporte para comandos SQL em linguagens de programação:
comandos embebidos, biblioteca de funções e novas linguagens de
programação. Problemas de integração: Impedance mismatch. SQL
embebido em C: declarar variáveis SQL, estabelecer e terminar
ligações com o SGBD, executar comandos SQL. Cursores: declarar um
cursor, executar a consulta associada a um cursor, deslocar um
cursor, terminar de utilizar um cursor. API C do MySQL:
código-tipo de uma aplicação que utiliza a API C do
MySQL. Programação no SGBD: o SQL/PSM (SQL/Persistent Stored
Modules). Pequeno exemplo de uma função SQL/PSM.
Aula 15: 16.11.2005
- SQL em Ambiente de Programação
Transacções. Problemas relacionados com concorrência. Protecção
contra falhas: log de transacções e checkpoints. Transacções em
SQL (SET TRANSACTION, COMMIT e ROLLBACK). Segurança em bases de
dados: nível da conta e nível das tabelas. Privilégios em SQL
(GRANT e REVOKE).
- Interface PHP ao PostgreSQL
O que é e como funciona o PHP. Variáveis, operadores, vectores,
estruturas de controle e mudança de modo em PHP. Passar informação
em PHP: as variáveis $_GET, $_POST, $_REQUEST e $_SERVER.
Aula 16: 18.11.2005
- Interface PHP ao PostgreSQL
Estruturar o código em PHP: include files, funções, variáveis
globais e constantes. Controle de erros em PHP. Sessões em PHP: a
variável $_SESSION. Acesso ao PostgreSQL em PHP: a API PHP do
PostgreSQL, código-tipo de uma aplicação que utiliza a API PHP do
PostgreSQL, processamento de transacções e processamento de
tuplos.
Aula 17: 23.11.2005
- Interface PHP ao PostgreSQL
Exemplo prático de uma aplicação de acesso ao PostgreSQL por
utilização da interface PHP.
Aula 18: 25.11.2005
- Interface MS Access ao PostgreSQL
Exemplo prático de uma aplicação de acesso ao PostgreSQL por
utilização da interface MS Access.
Aula 19: 30.11.2005
- Normalização
Regras para o bom desenho de bases de dados relacionais. Formas
normais e normalização de relações. Primeira forma normal e
normalização 1NF. Dependências funcionais. Regras de inferência de
Armstrong. Fecho de um conjunto de dependências
funcionais. Dependência funcional parcial, completa e
transitiva. Segunda forma normal e normalização 2NF. Terceira
forma normal e normalização 3NF. Forma normal de Boyce-Codd e
normalização BCNF. Decomposição com junção-não-aditiva.
Aula 20: 02.12.2005
- Normalização
Dependências multi-valor. Regras de inferência para dependências
funcionais e multi-valor. Quarta forma normal e normalização
4NF. Dependências de junção. Quinta forma normal e normalizaçao
5NF.
Aula 21: 07.12.2005
- Organização Física dos Dados
Unidades de medida da Informação. Dispositivos de armazenamento da
informação. Armazenamento da informação em bases de dados: discos,
registos e ficheiros de registos. Ficheiros não-ordenados,
ordenados e de acesso directo. Índices primários.
Aula 22: 09.12.2005
- Organização Física dos Dados
Índices cluster e índices secundários. Índices de níveis
múltiplos. Árvores B e árvores B+. Índices sobre atributos
múltiplos. Índices em SQL (CREATE INDEX, DROP INDEX).
Aula 23: 14.12.2005
- Revisões
Resolução de exercícios de exames dos anos anteriores.