Impressão em: 03-01-2013 16:10:58 Ficha da Unidade Curricular (UC) 1. Identificação Unidade Orgânica : Escola Superior de Tecnologia e Gestão Curso : [IS] Informática para a Saúde Tipo de Curso : UC/Módulo : Gestão de Dados de Saúde II Carácter : obrigatória Área Científica : Informática para a Saúde ECTS : 6 Ano : 2º Ano Letivo : 2011/2012 Semestre : 2º Pré-Requisitos : Não Tem. Horas de Trabalho Ensino Teórico (T) 30:00 Ensino Prático Laboratorial (PL) 45:00 Orientação Tutorial (OT) 5:00 Horas de Trab. Autónomo 82:00 Horas Totais 162:00 Idioma: Português e Inglês 2. Corpo Docente Docente Responsável : Rui Miguel de Carvalho Leal de Oliveira Docentes: Anabela Moreira Bernardino Rui Miguel de Carvalho Leal de Oliveira 3. Enquadramento A gestão de bases de dados relacionais pode ser feita, a um nível básico, usando unicamente SQL. Contudo, a necessidade de impor sobre os dados regras de integridade e de segurança de elevada complexidade obrigam ao uso de linguagens de programação de mais baixo nível. No caso do Sistema de Gestão de Bases de Dados (SGBD) Oracle, a linguagem privilegiada é a PL/SQL. Contudo, a versatilidade oferecida pelas linguagens de programação de 3ª geração ao programador de bases de dados obriga-o a um profundo conhecimento do SGBD para o qual programa. Se assim não for, incorrerá no risco de provocar falhas de integridade severas nos dados e de causar o estrangulamento crítico de recursos. 4. Objetivos/Competências Gerais O1-Gerir a implementação eficaz e eficiente de regras de integridade e de segurança complexas sobre os dados O2-Desnormalizar de forma controlada e eficiente uma base de dados O3-Tirar partido de um conhecimento profundo do funcionamento interno do SGBD para programar uma base de dados com eficácia de proteção e eficiência de recursos maximizadas Específicas CE1-Capacidade para modelar/implementar uma base de dados de acordo com critérios de segurança dos dados CE2-Saber delinear e implementar uma estratégia de otimização de pesquisas quer com recurso a desnormalização CE3-Capacidade para resolver problemas de gestão da base de dados por aplicação do conhecimento sobre o funcionamento interno do SGBD Oracle CE4-Saber hierarquizar e impor restrições de integridade sobre os dados em ambiente cliente-servidor CE5-Adquirir e compreender conceitos genéricos relativos a bases de dados CE6-Ser capaz de usar os detalhes da linguagem de programação PL/SQL para melhorar o desempenho e gestão de recursos das aplicações de bases de dados Transversais CT1-Conseguir integrar grupos para realizar trabalho e discutir ideias CT2-Saber identificar conhecimento relevante de entre um todo CT3-Saber realizar eficientemente estudo autónomo na área e eliminar dúvidas recorrendo primariamente aos canais de conhecimento da bibliografia CT4-Ser capaz de demonstrar espírito crítico e capacidade de argumentação CT5-Dominar a língua dominante da área (Inglês) em dissertações sobre BD CT6-Compreender a importância de uma abordagem de estudo continuado para a aquisição de competências científicas CT7-Saber gerir o tempo disponibilizado pelos docentes na aquisição de conhecimento/competências/orientação 5. Programa 5.1 Resumido Aulas Teóricas -------------Desenvolvimento de aplicações para bases de dados em modo cliente-servidor Funcionamento interno do SGBD Oracle Restrições de integridade em bases de dados Otimização de pesquisas por desnormalização Aulas Prático-Laboratoriais --------------------------Aplicação a um projeto de bases de dados dos conceitos abordados nas aulas teóricas Linguagem PL/SQL do SGBD Oracle Importação de dados de fontes externas Tipos de dados particulares (encriptação e dados binários) 5.2 Detalhado 1. Problemas da abordagem normalizada às bases de dados 1.1. Performance 1.2. Complexidade de consultas 1.3. Desnormalização como solução do problema 1.3.1. Conceito e objetivos 1.3.1. Problemas associados com o espaço de armazenamento 1.3.2. Problemas associados com o controlo da redundância 1.3.3. Formatos típicos em bases de dados 1.3.3.1. Atributos derivados 1.3.3.2. Vistas materializadas 1.3.4 Síncrona vs assíncrona 1.4. Sistemas de Apoio à Decisão 1.5. Indexação 1.5.1. Índices B*Tree 1.5.2. Índices Bitmap 2. Aplicação de regras de integridade de dados em bases de dados 2.1. Sistemas preventivos vs sistemas corretivos 2.2. Incapacidades da linguagem SQL 2.3. Hierarquia de imposição de regras de integridade 2.3.1. SQL-DCL 2.3.2. SQL-DDL 2.3.3. PL/SQL 2.3.4. Programação de interfaces 3. Linguagem PL/SQL no SGBD Oracle 11G 3.1. Tipos de blocos de código em PL/SQL 3.1.1. Anónimos vs nomeados 3.1.2. Explicitamente vs implicitamente executados 3.2. Triggers 3.2.1. Pseudoregistos NEW e OLD 3.2.2. Temporização, evento e objeto 3.2.3. Componentes obrigatórios e opcionais 3.2.4. Algoritmo de aplicação de restrições integridade 3.2.5. Triggers para imposição de regras de integridade de 3º nível 3.2.6. Optimização de código em triggers: INSERTING, UPDATING, DELETING 3.3. Procedimentos 3.3.1. Parametrização 3.3.2. Procedimentos para imposição de regras de integridade de 4º nível 3.4. Implementação de desnormalização controlada com SQL e PL/SQL 4. Desenvolvimento com sucesso de aplicações para bases de dados cliente-servidor Oracle 4.1. Importância do conhecimento do sistema para uma programação afinada com os recursos 4.1.1. Migração entre SGBDs/versões do mesmo SGBD 4.1.2. Bind variables 4.1.3. Relacionamento DBA/Database Developer 4.2. Conceitos 4.2.1. Instância 4.2.2. Base de dados 4.2.3. Bloco de dados e sua importância no tipo de base de dados 4.3. Estruturas de memória 4.3.1. Tipos: SGA, PGA e UGA 4.3.2. Pools: large/shared/java/redo log buffer/database block buffer 4.4. Modos de comunicação com um servidor Oracle 4.4.1. Dedicated server 4.4.2. Shared server 4.4.3. Influência da escolha na capacidade de resposta do SGBD 4.4.4. Falácias relativas à ocupação de recursos 4.4.5. Ficheiro "tnsnames.ora" 4.5. Processos cliente/servidor/listener 4.6. Threads servidora/de background/dispatcher 4.7. Ficheiros de uma base de dados no SGBD Oracle 4.7.1. Data files 4.7.2. Redo log files 4.7.3. Temp files 4.8. Interação dos componentes do SGBD nas operações básicas SQL 5.3 Fundamentação da coerência dos conteúdos programáticos com os objetivos/competências da unidade curricular 1. Problemas da abordagem normalizada às bases de dados 1.1. Performance (CE2,CE3) 1.2. Complexidade de consultas (CE2) 1.3. Desnormalização como solução do problema (CE2) 1.3.1. Conceito e objetivos (CE5) 1.3.1. Problemas associados com o espaço de armazenamento (CE3) 1.3.2. Problemas associados com o controlo da redundância (CE3) 1.3.3. Formatos típicos em bases de dados 1.3.3.1. Atributos derivados (CE3,CE5) 1.3.3.2. Vistas materializadas (CE3,CE5) 1.3.4 Síncrona vs assíncrona (CE3,CE5) 1.4. Sistemas de Apoio à Decisão (CE5) 1.5. Indexação (CE3,CE5) 1.5.1. Índices B*Tree (CE5) 1.5.2. Índices Bitmap (CE5) 2. Aplicação de regras de integridade de dados em bases de dados 2.1. Sistemas preventivos vs sistemas corretivos (CE1,CE5,CE4) 2.2. Incapacidades da linguagem SQL (CE4,CE5) 2.3. Hierarquia de imposição de regras de integridade (CE1,CE4,CE3) 2.3.1. SQL-DCL 2.3.2. SQL-DDL 2.3.3. PL/SQL 2.3.4. Programação de interfaces 3. Linguagem PL/SQL no SGBD Oracle 11G 3.1. Tipos de blocos de código em PL/SQL 3.1.1. Anónimos vs nomeados (CE6) 3.1.2. Explicitamente vs implicitamente executados (CE6) 3.2. Triggers 3.2.1. Pseudoregistos NEW e OLD (CE6) 3.2.2. Temporização, evento e objeto (CE3,CE6) 3.2.3. Componentes obrigatórios e opcionais (CE6) 3.2.4. Algoritmo de aplicação de restrições integridade (CE1,CE2,CE4,CE6) 3.2.5. Triggers para imposição de regras de integridade de 3º nível (CE1,CE2,CE4) 3.2.6. Optimização de código em triggers: INSERTING, UPDATING, DELETING (CE6) 3.3. Procedimentos 3.3.1. Parametrização (CE6) 3.3.2. Procedimentos para imposição de regras de integridade de 4º nível (CE1,CE4,CE6) 3.4. Implementação de desnormalização controlada com SQL e PL/SQL (CE2) 4. Desenvolvimento com sucesso de aplicações para bases de dados cliente-servidor Oracle 4.1. Importância do conhecimento do sistema para uma programação afinada com os recursos 4.1.1. Migração entre SGBDs/versões do mesmo SGBD (CE3) 4.1.2. Bind variables (CE3,CE6) 4.1.3. Relacionamento DBA/Database Developer (CE3,CE5) 4.2. Conceitos 4.2.1. Instância (CE3,CE5) 4.2.2. Base de dados (CE3,CE5) 4.2.3. Bloco de dados e sua importância no tipo de base de dados (CE3,CE5) 4.3. Estruturas de memória (CE3,CE5) 4.3.1. Tipos: SGA, PGA e UGA 4.3.2. Pools: large/shared/java/redo log buffer/database block buffer 4.4. Modos de comunicação com um servidor Oracle (CE3,CE5) 4.4.1. Dedicated server 4.4.2. Shared server 4.4.3. Influência da escolha na capacidade de resposta do SGBD 4.4.4. Falácias relativas à ocupação de recursos 4.4.5. Ficheiro "tnsnames.ora" 4.5. Processos cliente/servidor/listener (CE3,CE5) 4.6. Threads servidora/de background/dispatcher (CE3,CE5) 4.7. Ficheiros de uma base de dados no SGBD Oracle (CE3,CE5) 4.7.1. Data files 4.7.2. Redo log files 4.7.3. Temp files 4.8. Interação dos componentes do SGBD nas operações básicas SQL (CE3,CE5,CE6) 6. Metodologia de Ensino / Aprendizagem 6.1 Presencial e Autónoma Aulas --------1. Leitura e discussão de material bibliográfico 2. Lecionação de matéria 3. Resolução de exercícios individuais e em grupo 4. Entrega, com reflexão, dos resultados da autoavaliação da aula anterior Orientação tutorial ----------------------1. Sessões de orientação, nomeadamente orientar o trabalho individual do estudante e esclarecer dúvidas 1. Resolução de exercícios 2. Estudo de bibliografia indicada nas aulas 3. Estudo dos apontamentos realizados nas aulas 6.2 Recursos Específicos 1. Ensino teórico - sala de aula normal 2. Ensino prático e laboratorial - laboratórios de bases de dados 3. Orientação tutorial - gabinete e laboratórios de bases de dados 6.3 Fundamentação da coerência das metodologias de ensino com objetivos/competências da unidade curricular Aulas (CT6,CT7) ----1. Leitura e discussão de material bibliográfico (CE3,CE5,CT1,CT2,CT3,CT4,CT5) 2. Lecionação de matéria (CE1,CE2,CE3,CE4,CE5,CT2,CT4) 3. Resolução de exercícios individuais e em grupo (CE1,CE2,CE3,CE4,CE5,CT1,CT2,CT3,CT4,CT5) 4. Entrega, com reflexão, dos resultados da autoavaliação da aula anterior (CT4) Orientação tutorial (CT1,CT2,CT4,CT6,CT7) ------------------1. Sessões de orientação, nomeadamente orientar o trabalho individual do estudante e esclarecer dúvidas Metodologia Autonónoma (CE1..CE5,CT2,CT3,CT4,CT5,CT6) ----------------------1. Resolução de exercícios 2. Estudo de bibliografia indicada nas aulas 3. Estudo dos apontamentos realizados nas aulas 7. Avaliação 7.1 Descrição Avaliação Periódica ------------------------Participação nas aulas práticas (PA) Prova escrita teórica (PET) Prova escrita prática (PEP) Classificação: 45% PET+10%PA+45%PEP Mínimos: 47.5% PET e 47.5% PEP Avalização Final -------------------Prova escrita teórica (PET) Prova escrita prática (PEP) Classificação: 50% PET+50%PEP Mínimos: 47.5% PET e 47.5% PEP 7.2 Número de Elementos de Avaliação 7.2.1 Contínua/Periódica: 2 7.2.2 Final: 2 8 Bibliografia 8.1 Principal - Expert Oracle Database Architecture, Thomas Kyte, Apress, 2005 - Oracle PL/SQL Programming, Scott Urman, Oracle - Manuais do Sistema de Gestão de Bases de Dados Oracle 11G - Database Administration: The Complete Guide to Pratices and Procedures (1th Edition) Craig S. Mullins, Addison-Wesley Professional. 2002 - Fundamentals of Database Systems, Ramez Elmasri & Shamkant B. Navathe, Wiley. 2010. - Material disponibilizado na plataforma Moodle 8.2 Complementar Não aplicável 9. Aprovação pelo CTC Aprovado em Conselho Científico em : 11-07-2012