Aulas Teóricas
Aula 1: 17.09.2012
Apresentação
Considerações gerais sobre o programa, bibliografia, funcionamento das
aulas e método de avaliação.
Aula 2: 18.09.2012
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
concetual, 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.
Aula 3: 24.09.2012
Os Modelos ER e EER
Restrições nos relacionamentos: cardinalidade e
participação. Entidades fracas. Diagramas ER. Restrição
estrutural. Relacionamentos ternários.
Aula 4: 25.09.2012
Os Modelos ER e EER
Modelação de uma base de dados sobre uma empresa de transportes
públicos.
Aula 5: 01.10.2012
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 o processamento de
infrações ao código da estrada.
Aula 6: 02.10.2012
Os Modelos ER e EER
Modelação de uma base de dados sobre a gestão de serviços multimédia e
respetivos clientes.
Aula 7: 08.10.2012
O Modelo Relacional
Conceitos básicos e notação genérica: relações, atributos, domínios e
tuplos. Superchaves, chaves, 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 uma empresa de transportes
públicos.
Aula 8: 09.10.2012
O Modelo Relacional
Conversão do modelo EER para o modelo relacional. Conversão para o
modelo relacional das bases de dados sobre o processamento de
infrações ao código da estrada e sobre a gestão de serviços multimédia
e respetivos clientes.
Aula 9: 15.10.2012
Álgebra e Cálculo Relacional
Álgebra relacional: operações de seleção, projeção, renomeação,
reunião, interseção, diferença, produto cartesiano, junção interna e
junção externa.
Aula 10: 16.10.2012
Álgebra e Cálculo Relacional
Álgebra relacional: operações de divisão e agregação. Cálculo
relacional por tuplos: quantificador existencial.
Aula 11: 22.10.2012
Álgebra e Cálculo Relacional
Cálculo relacional por tuplos: quantificador universal. Cálculo
relacional por domínios. Expressões da álgebra relacional como
expressões do cálculo relacional por tuplos e do cálculo relacional
por domínios.
Aula 12: 23.10.2012
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). Manipulação de tuplos em SQL: adicionar tuplos a uma tabela
(INSERT INTO) e remover tuplos de uma tabela (DELETE FROM).
Aula 13: 29.10.2012
A Linguagem SQL
Consultas em SQL (SELECT-FROM-WHERE, SELECT *, SELECT
DISTINCT). Operadores especiais de comparação (BETWEEN, LIKE, IS
NULL). Definir a ordem e o número de tuplos do resultado (ORDER BY,
LIMIT). Operações sobre conjuntos (UNION, INTERSECT e EXCEPT).
Aula 14: 30.10.2012
A Linguagem SQL
Consultas encadeadas (IN, ALL, ANY) e consultas correlacionadas
(EXISTS).
Aula 15: 05.11.2012
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 16: 06.11.2012
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 17: 12.11.2012
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. SQL embebido em C: declarar variáveis SQL, estabelecer e
terminar ligações com o SGBD, executar comandos SQL, declarar
cursores, executar consultas associadas a cursores, deslocar 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 (Persistent Stored
Modules). Transações: problemas relacionados com concorrência.
Aula 18: 13.11.2012
SQL em Ambiente de Programação
Proteção contra falhas: log de transações e checkpoints. Transaçõ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 MySQL
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 e $_REQUEST.
Aula 19: 19.11.2012
Interface PHP ao MySQL
Estruturar o código em PHP: include files, funções, variáveis globais
e constantes. Controle de erros em PHP. Acesso ao MySQL em PHP: a API
PHP do MySQL, código-tipo de uma aplicação que utiliza a API PHP do
MySQL, processamento de transações e processamento de tuplos. Sessões
em PHP: a variável $_SESSION.
Aula 20: 20.11.2012
Interface PHP ao MySQL
Exemplo prático de uma aplicação de acesso ao MySQL por utilização da
interface PHP.
Aula 21: 26.11.2012
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. Dependência funcional parcial, completa e
transitiva. Segunda forma normal e normalização 2NF. Terceira forma
normal e normalização 3NF. Resolução de exercícios.
Aula 22: 27.11.2012
Normalização
Forma normal de Boyce-Codd e normalização BCNF. Decomposição com
junção-não-aditiva. 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. Resolução de exercícios.
Aula 23: 03.12.2012
Normalização
Resolução de exercícios.
Organização Física dos Dados
Armazenamento da informação em bases de dados: discos, registos e
ficheiros de registos. Ficheiros não-ordenados e ficheiros ordenados.
Aula 24: 04.12.2012
Organização Física dos Dados
Ficheiros de acesso direto. Índices primários, índices cluster,
índices secundários e índices de níveis múltiplos.
Aula 25: 10.12.2012
Organização Física dos Dados
Árvores B e árvores B+. Índices sobre atributos múltiplos. Índices em
SQL (CREATE INDEX, DROP INDEX). Resolução de exercícios.
Aula 26: 11.12.2012
Organização Física dos Dados
Resolução de exercícios.