A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

TC – DEI, 2005/2006. Armazenamento de Dados -- Ficheiros & Bases-de-Dados -- Paulo Marques Tecnologia.

Apresentações semelhantes


Apresentação em tema: "TC – DEI, 2005/2006. Armazenamento de Dados -- Ficheiros & Bases-de-Dados -- Paulo Marques Tecnologia."— Transcrição da apresentação:

1 TC – DEI, 2005/2006

2 Armazenamento de Dados -- Ficheiros & Bases-de-Dados -- Paulo Marques Tecnologia dos Computadores 2005/2006

3 TC – DEI, 2005/2006 Motivação Departamento de Engenharia Informática Numerus clausus = 120, Duração média=4.5anos Alunos Inscritos… 120x4.5 = 630 Adicionemos alunos de mestrado, doutoramento, docentes e funcionários… ~ 1000 pessoas Sistema de Informação… struct Pessoa { char nome[80]; long BI; char morada[200]; pixel_rgb fotografia[640][480];... }; sizeof(Pessoa) 900 Kbyte 900Kbyte * Mbyte

4 TC – DEI, 2005/2006 Motivação (2) É necessário armazenar os dados de forma persistente (i.e. não volátil) Não é possível manter simultaneamente todos os dados em memória, mesmo quando o programa está em execução Os 900 Mbyte foram uma estimativa por baixo!

5 TC – DEI, 2005/2006 Sistemas de Informação Actualmente, é comum separar-se as aplicações em dados persistentes e lógica de negócio Em sistemas pequenos: Ficheiros directos Em sistemas grandes: Bases-de-dados Lógica de Controlo Dados Persistentes Programa

6 TC – DEI, 2005/2006 Sistema de Ficheiros Sistema de Ficheiros: Recurso directamente disponível a nível do sistema operativo O SO apenas oferece primitivas para: Abrir e fechar ficheiros Ler e escrever blocos de bytes no ficheiro O programador é responsável por programar toda a gestão de dados nos ficheiros Índices para pesquisas rápidas, tolerância a erros, gestão de concorrência, etc. Aplicação

7 TC – DEI, 2005/2006 Bases-de-Dados Existe um programa especial (SGBD – Sistema de Gestão de Base-de-Dados) que faz toda a gestão dos dados Oracle, MS-SQL Server, Postgre, MySQL, etc. O programa estabelece uma ligação à base-de-dados utilizando um protocolo chamado ODBC A BD pode estar na mesma máquina ou noutra máquina Através da ligação, envia os seus dados e pode fazer pesquisas SQL = Structured Query Language Aplicação Base de Dados SGBD (Sistema de Gestão de BD) ODBC

8 Sistemas de Ficheiros

9 TC – DEI, 2005/2006 Acesso a ficheiros O sistema operativo disponibiliza funções para: Abrir e fechar ficheiros open() / close() Ler e escrever dados read()/write() Quando se abre um ficheiro, é retornado um handle (inteiro) que representa o ficheiro nesse processo

10 TC – DEI, 2005/2006 Acesso a ficheiros (2) Associado a cada handle, que representa um ficheiro aberto, também existe um FILE POINTER (FP) O FP representa a posição corrente de leitura ou escrita no ficheiro O FP é incrementado automaticamente sempre que há uma leitura ou escrita Associado a cada handle existe um buffer de dados Principio da localidade temporal e espacial Funciona como cache e pre-fetch FP Ficheiro

11 TC – DEI, 2005/2006 Como é que o SO organiza os ficheiros? Árvore de Directórios

12 TC – DEI, 2005/2006 Como é que o SO sabe onde estão os ficheiros?

13 TC – DEI, 2005/2006 Um exemplo prático FAT (DOS/Windows) O disco encontra-se dividido em sectores (clusters), a unidade mínima de informação a que se consegue aceder num disco No início do disco (disquete) existe: Boot sector File Allocation Table (FAT) Disk Root Directory

14 TC – DEI, 2005/2006 FAT Cada entrada da FAT indica qual o próximo sector que um certo ficheiro ocupa Cada entrada da Disk Root Directory indica o nome e atributos de um certo ficheiro, assim como o seu primeiro sector EOF204205EOF FREEEOF214BADEOF BootFATDirectory Table Data Frequência.docRH :30…201 Disco O ficheiro Frequência.doc ocupa os sectores 201, 203, 204 e 205 Exame.docRH :21…

15 TC – DEI, 2005/2006 Questões… A Disk Root Table apenas contém as entradas do directório raiz do disco. Como é que são guardadas os sub-directórios? FAT16 quer dizer que os ponteiros na FAT são de 16 bits. Qual é o número máximo de ficheiros que o disco pode ter? Tendo um disco de 40Gbytes, qual seria o tamanho de cada sector (cluster)? Vê algum problema nisso? (hoje, em Windows, quando não se utiliza NTFS utiliza-se FAT32)

16 TC – DEI, 2005/2006 Voltemos ao Sistema de Informação… Suponhamos que armazenamos todas as pessoas do DEI num ficheiro sequencial… Pessoas.dat JOANA FRANCISCA R. Fernão Lop Qual é o problema se quisermos encontrar o aluno com o BI Nº ? Esquecendo as caches… Tempo médio de acesso ao disco = 10ms Em média temos de percorrer ½ ficheiro = 500 entradas 500 entradas X 10ms = 5000ms = 5s!!!

17 TC – DEI, 2005/2006 Utilização de Índices Se se sabe que vão ser feitas pesquisas por BI, cria-se uma tabela especial que para cada BI indica qual a entrada no ficheiro que a contém. Esta tabela chama-se um índice sobre o BI A tabela é armazenada conjuntamente no ficheiro ou num ficheiro à parte (…) BI Entrada Pessoas.dat ……

18 TC – DEI, 2005/2006 Utilização de Índices Os índices resultam porque… Tipicamente o tamanho do índice é muito mais pequeno do que o tamanho dos dados Muitas vezes é mesmo possível manter todo o índice em memória Os índices podem estar ordenados (pesquisa binária) ou pode fazer-se hashing* Um índice deste género também é conhecido como TABELA INVERTIDA (Inverted Table) * Hashing Uma técnica muito inteligente e rápida que permite encontrar um elemento numa tabela usando tipicamente apenas uma comparação. Irá falar muito dela durante o próximo ano (PA3)

19 TC – DEI, 2005/2006 Tamanho do Índice Atenção: em muitos sistemas, o tamanho dos índices pode tornar-se um problema No nosso caso e admitindo que o Sistema de Informação comporta no máximo alunos, qual é que teria de ser o tamanho do índice para BIs?

20 TC – DEI, 2005/2006 » If you dont find it in the index, look very carefully through the entire catalogue « Sears, Roebuck and Co. Consumers Guide, 1897

21 TC – DEI, 2005/2006

22 Bases-de-Dados A aplicação estabelece uma ligação ao SGBD que é responsável por manter todos os dados da aplicação O protocolo de comunicação utilizado é ODBD A linguagem utilizada para falar com a BD chama-se SQL (Structured Query Language) A base-de-dados tem obrigação de: Mandar os dados de forma persistente Facilitar a forma como a gestão dos dados é realizada Responder a interrogações e actualizações de forma rápida Tolerar falhas (e.g. faltar a luz a meio de uma escrita) Aplicação Base de Dados SGBD (Sistema de Gestão de BD) ODBC

23 TC – DEI, 2005/2006 Modelo de Dados A maioria das bases-de-dados actuais seguem o chamado MODELO RELACIONAL No Modelo Relacional, os dados são vistos em termos de tabelas e relações entre tabelas Tabela Alunos

24 TC – DEI, 2005/2006 Tabelas Tuplo: Conjunto ordenado de dados relacionados Chave Primária: Atributo especial que permite identificar univocamente um tuplo Atributo: Algo que caracteriza a entidade

25 TC – DEI, 2005/2006 Relacionamentos Tabela Alunos Tabela Cadeiras Tabela Inscrições

26 TC – DEI, 2005/2006 Relacionamentos A tabela Inscrições está relacionada com a tabela Alunos e Cadeiras As chaves primárias dos relacionamentos aparecem como atributos da chave do relacionamento

27 TC – DEI, 2005/2006 Exemplo Prático – MS Access

28 TC – DEI, 2005/2006 Queries Como as tabelas estão relacionadas, é possível fazer interrogações (queries) à base-de-dados Exemplo: Quais os nomes e anos de nascimento dos alunos que estiveram inscritos a Tecnologias dos Computadores em

29 TC – DEI, 2005/2006 Queries - SQL Quais os nomes e os anos de nascimento dos alunos que estiveram inscritos a Tecnologias dos Computadores em 1998 SELECT nome, ano_nasc FROM alunos A, cadeiras C, inscrições INS WHEREnome_cadeira=Tecnologias dos Computadores AND INS.ano = 1998 AND C.num_cadeira = INS.num_cadeira AND INS.num_aluno = A.num_aluno

30 TC – DEI, 2005/2006 Queries - SQL As queries em SQL também retornam tabelas SELECT nome, ano_nasc FROM alunos A, cadeiras C, inscrições INS WHEREnome_cadeira=Tecnologias dos Computadores AND INS.ano = 1998 AND C.num_cadeira = INS.num_cadeira AND INS.num_aluno = A.num_aluno

31 TC – DEI, 2005/2006 Inserção de Dados - SQL Também se podem inserir dados na base-de-dados… INSERT INTOalunos (num_aluno, nome, morada, ano_nasc) VALUES( , Teresa Matos, R. Alforrecas, 12, Coimbra, 1984)

32 TC – DEI, 2005/2006 Recordemos… Aplicação Base de Dados SGBD (Sistema de Gestão de BD) ODBC SELECT nome FROM alunos O que viaja na ligação são estas ordens, na linguagem SQL. A aplicação tem de enviar as suas ordens nesta linguagem e processar os resultados retornados

33 TC – DEI, 2005/2006 Criação de Bases-de-Dados Na prática, quando se quer fazer uma base-de- dados, não se começa por criar tabelas… Cria-se (modela-se) o problema: Modelo CONCEPTURAL da Base-de-dados Para criar o modelo conceptual da Base-de-dados, utilizam-se Diagramas ENTIDADE- RELACIONAMENTO (Diagramas ER) Só após se ter o diagrama Entidade- Relacionamento é que se criam as tabelas: MODELO FÍSICO da Base-de-dados Muitas vezes, as ferramentas permitem passar automaticamente do modelo conceptual para o modelo físico

34 TC – DEI, 2005/2006 Modelo Entidade-Relacionamento Modela o problema em termos de ENTIDADES e RELAÇÕES entre entidades As relações podem ser de: 1 para 1 (1:1) 1 para N (1:N) N para N (N:N) As relações podem ter participação obrigatória ou não ALUNOCADEIRA Inscrito NN TESTE Possui 1 N

35 TC – DEI, 2005/2006 Leitura do ER Cada aluno pode estar inscrito em várias cadeiras; cada cadeira pode ter vários alunos inscritos Cada aluno tem de estar obrigatoriamente inscrito a uma cadeira; pode haver cadeiras sem alunos (e.g. cadeiras que não funcionam num ano) Em cada cadeira pode haver vários testes; cada teste só pode pertencer a uma cadeira Pode haver cadeiras sem testes (e existem!); Cada teste tem de ter obrigatoriamente uma cadeira associada

36 TC – DEI, 2005/2006 Recordemos…

37 TC – DEI, 2005/2006 Informática é mais do que escrever código… Mars Climate Orbiter, crashed into Mars on Sep 23, 1999 Cost US$125 million dollars The Mars Climate Orbiter Spacecraft was lost because one NASA team used Imperial units while another used metric units for a key spacecraft operation (BBC Online Report, 1999/09/30)

38 TC – DEI, 2005/2006 Transacções em BDs – Motivação Base de Dados REDE Transfere da conta para a conta :boolean ok = conta1.retira( ); 2:if (ok) 3:{ 4: conta2.coloca( ); 5:} -- E se a aplicação crasha na linha 2?? -- E se deixa de haver ligação de rede na linha 4?? -- E se o servidor crasha entre a linha 1 e 2??

39 TC – DEI, 2005/2006 Transacções em BDs Uma das razões muito importantes para se utilizar BDs, para além da performance, é o ter garantias de integridade de dados Transacção: uma conjunto de operações que devem ser executadas de forma indivisível (i.e. atómica) Uma operação atómica é aquela em que ou executa tudo ou não executa nada As base-de-dados têm suporte directo para transacções

40 TC – DEI, 2005/2006 Transacções Transacção Tem um início bem definido Ou existe um COMMIT ou um ROLLBACK COMMIT As alterações tornam-se permanentes ROLLBACK As alterações são anuladas Durante uma transacção, as alterações na BD apenas são visíveis para o utilizador que as está a fazer. Todos os outros utilizadores vêem os dados como se nada estivesse a acontecer (...) trans.beginTransaction(); boolean ok = conta1.retira( ); if (ok) { conta2.coloca( ); trans.commitTransaction(); } else trans.rollbackTransaction();

41 TC – DEI, 2005/2006 Transacções – Ideia da Implementação Sempre que um utilizador inicia uma transacção, todos os dados sobre os quais trabalha são privados (é feita uma cópia) Quando é feito o COMMIT da transacção, a BD é então actualizada No caso de haver conflito no acesso a dados, pode ser necessário suspender temporariamente outras transacções Dentro da transacção: é criada uma cópia de todos os dados que estão a ser actualizados COMMIT: Actualiza-se ROLLBACK: Deita-se fora

42 TC – DEI, 2005/2006 Para saber mais… Computer Science – An Overview Capítulo 8 (8.1, 8.2, 8.3) Capítulo 9 (9.1, 9.2, 9.3) Computer Science Illuminated Capítulo 11 (11.1, 11.2) Capítulo 12 (12.1, 12.3)


Carregar ppt "TC – DEI, 2005/2006. Armazenamento de Dados -- Ficheiros & Bases-de-Dados -- Paulo Marques Tecnologia."

Apresentações semelhantes


Anúncios Google