Aulas Teóricas

Aula 1: 22.09.2009

Apresentação
Considerações gerais sobre o programa, bibliografia, funcionamento das aulas e método de avaliação.

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.

Aula 2: 23.09.2009

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 e participação. Entidades fracas. Diagramas ER. Restrição estrutural. Relacionamentos ternários.

Aula 3: 29.09.2009

Os Modelos ER e EER
Modelação de uma base de dados sobre os STCP.

Aula 4: 30.09.2009

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 a Brigada de Trânsito.

Aula 5: 06.10.2009

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 os STCP.

Aula 6: 07.10.2009

O Modelo Relacional
Conversão do modelo EER para o modelo relacional. Conversão para o modelo relacional da base de dados sobre a Brigada de Trânsito.

Aula 7: 13.10.2009

Álgebra e Cálculo Relacional
Álgebra relacional: operações de selecção, projecção, renomeação, reunião, intersecção, diferença, produto cartesiano, junção interna e junção externa.

Aula 8: 14.10.2009

Álgebra e Cálculo Relacional
Álgebra relacional: operações de divisão e agregação. Cálculo relacional por tuplos: quantificador existencial.

Aula 9: 20.10.2009

Á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 10: 21.10.2009

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), remover tuplos de uma tabela (DELETE FROM) e alterar os valores dos atributos de uma tabela (UPDATE).

Aula 11: 27.10.2009

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 12: 28.10.2009

A Linguagem SQL
Consultas encadeadas (IN, ALL, ANY) e consultas correlacionadas (EXISTS).

Aula 13: 03.11.2009

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). 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).

Aula 14: 04.11.2009

A Linguagem SQL
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).

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.

Aula 15: 10.11.2009

SQL em Ambiente de Programação
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). 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).

Aula 16: 17.11.2009

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. 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 transacções e processamento de tuplos. Sessões em PHP: a variável $_SESSION.

Aula 17: 18.11.2009

Interface PHP ao MySQL
Exemplo prático de uma aplicação de acesso ao MySQL por utilização da interface PHP.

Aula 18: 24.11.2009

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 19: 25.11.2009

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 20: 02.12.2009

Organização Física dos Dados
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 e índices cluster.

Aula 21: 09.12.2009

Organização Física dos Dados
Índices secundários, índices de níveis múltiplos e índices sobre atributos múltiplos. Árvores B e árvores B+. Índices em SQL (CREATE INDEX, DROP INDEX).

Aula 22: 15.12.2009

Organização Física dos Dados
Resolução de exercícios.