110 likes | 231 Views
Bases de Dados 2. José Júlio Alferes Departamento de Informática Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa. Objectivos. Em Bases de Dados 1 pretendia-se: Que os alunos fossem capazes de desenhar uma bases de dados relacional
E N D
Bases de Dados 2 José Júlio Alferes Departamento de Informática Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa
Objectivos • Em Bases de Dados 1 pretendia-se: • Que os alunos fossem capazes de desenhar uma bases de dados relacional • Que conseguissem implementar uma base de dados relacional (centralizada) usando um sistema de gestão de bases de dados • Que dominassem o uso de linguagens de manipulação e interrogação de bases de dados • Que os alunos soubessem os fundamentos para desenharem uma base de dados e usarem um sistema de gestão de bases de dados relacional • Em Bases de Dados 2 pretende-se que os alunos conheçam as “entranhas” dum tal sistema de gestão de bases de dados • “[…] bases necessárias à compreensão dos problemas envolvidos na construção e funcionamento de sistemas de gestão de bases de dados, dando ênfase à utilização eficiente de sistemas de bases de dados”
Programa • Implementação de sistemas de Bases de Dados • Armazenamento e estrutura de ficheiros • Indexação e hashing em bases de dados • Processamento e optimização de perguntas • Processamento de transacções em bases de dados • Propriedades ACID • Controlo de concorrência • Recovery systems • Arquitecturas de sistemas de gestão de bases de dados • Bases de dados distribuídas • Bases de dados paralelas
Implementação de SGBDs • Em Bases de Dados 1, o SGBD aparece como uma “caixa preta” que oferece um nível de abstracção (nível lógico) • Em Bases de Dados 2 começa-se desvendando o que está dentro dessa caixa preta • Como é que as bases de dados são de facto armazenadas num computador • Com que estrutura de ficheiros em disco • Com que estruturas de dados para permitir acesso rápido • Porque é importante saber isto? • Porque um Eng. Informático não é um mero utilizador de sistemas, e deve conhecer os sistemas que utiliza • Porque só conhecendo minimamente como um SGBD é implementado se pode tirar partido eficiente dele • Porque só conhecendo as suas estruturas de dados internas se pode tirar partido do sistema e pode melhorar a sua eficiência
Processamento e optimização de perguntas • Não basta saber como é que os dados são armazenados! • Um SGBD processa perguntas, em geral feitas numa linguagem declarativa de alto nível (e.g. SQL). Como é que são implementadas? • Em BD1 ensinou-se como usar a linguagem declarativa SQL para perguntas. • Em BD2 ensina-se como é que se implementam essas perguntas: • Como é que se passa duma pergunta SQL para código (imperativo) a executar sobre a base de dados? (processamento) • Como se podem transformar perguntas noutras equivalentes, que executem de forma mais eficiente? (optimização) • Porque é importante saber isto? • Porque um Eng. Informático não é um mero utilizador e deve conhecer que utiliza • Porque isto é essencial para usar as perguntas SQL de forma eficiente! • Em grandes bases de dados é essencial aferir da eficiência das perguntas
Processamento de transacções • O conceito de transacção é essencial em bases de dados • Só ele permite fornecer um nível lógico em que vários utilizadores acedem em simultâneo a uma base de dados • Na prática do dia a dia, os sistemas de bases de dados são acedidos por milhares de utilizadores, muitos deles em simultâneo • Como garantir que isto é possível sem gerar inconsistências? • Em BD1 aflorou-se muito brevemente o tema de transacções. • Em BD2 aprofunda-se o tema quer do ponto de vista de uso em SGBDs existentes, quer da sua implementação • Porque é importante saber isto? • Porque para tirar verdadeiro partido das funcionalidades oferecidas pelos SGBDs no que toca a acessos simultâneos há que conhecer o que estes disponibilizam, e como é que o implementam
Arquitecturas de SGBDs • Num mundo em que cada vez mais há grandes quantidades de informação disponível, e a informação está cada vez mais distribuída, não faz sentido pensar em bases de dados apenas como repositórios centralizados • Existem várias arquitecturas de SGBDs, que serão estudadas em BD2 • Bases de dados distribuídas homogéneas • Bases de dados heterogéneas • Quando os dados não estão centralizados, o próprio processamento das perguntas não pode ser centralizado. • Mas mesmo que os dados estejam centralizados, por eficiência pode fazer sentido paralelizar o processamento • Porque é importante saber isto? • Porque nos dias de hoje as bases de dados distribuídas são uma realidade, e só estudando se podem conhecer
A disciplina e o novo curso • No novo curso de Mestrado em Engenharia Informática (2º ciclo) existe a disciplina de “Sistemas de Bases de Dados” que funcionará com os objectivos aqui expostos para BD2. • A disciplina é uma disciplina do bloco inicial, do 1º semestre do curso. • A matéria deste ano em BD2 sofreu já as alterações e adaptações necessárias para o funcionamento nos novos moldes. • Também por essa razão, a partir desta introdução os slides serão (tentativamente) em inglês. • Por enquanto outra informação na página da disciplina é em Português, mas tal poderá mudar em função de eventuais alunos Erasmus • Veremos como funciona…
Avaliação • Exame escrito sem consulta a valer 75% da nota • Nota mínima para aprovação na disciplina: 10 valores • Trabalho prático em grupo de 3 alunos a valer 25% da nota • A fazer parte nas aulas práticas e parte fora • Com grande ênfase em relatório • Tem uma apresentação oral • O trabalho consiste num case study dum SGBD, que não o Oracle, incluindo a sua comparação com o Oracle 10g • Os alunos devem instalar o sistema e fazer uma pequena aplicação • Devem fazer testes de benchmarking • Fazer relatório com avaliação da implementação do SGBD escolhido
Outros aspectos de funcionamento • Sobre • Práticas e teóricas • Docentes • Bibliografia • Turnos (haverá pelo menos mais um turno de práticas!) • Inscrições • … consulte a página da disciplina em: http://ssdi.di.fct.unl.pt/lei/bd2/