TC – DEI, 2005/2006
This presentation is the property of its rightful owner.
Sponsored Links
1 / 42

Armazenamento de Dados -- Ficheiros & Bases-de-Dados -- PowerPoint PPT Presentation


  • 52 Views
  • Uploaded on
  • Presentation posted in: General

Armazenamento de Dados -- Ficheiros & Bases-de-Dados --. Paulo Marques [email protected] http://www.dei.uc.pt/~pmarques. Tecnologia dos Computadores 2005/2006. Motivação. Departamento de Engenharia Informática Numerus clausus = 120, Duração média=4.5anos Alunos Inscritos… 120x4.5 = 630

Download Presentation

Armazenamento de Dados -- Ficheiros & Bases-de-Dados --

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Armazenamento de dados ficheiros bases de dados

TC – DEI, 2005/2006


Armazenamento de dados ficheiros bases de dados

Armazenamento de Dados-- Ficheiros & Bases-de-Dados --

Paulo [email protected]://www.dei.uc.pt/~pmarques

Tecnologia dos Computadores 2005/2006


Motiva o

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 * 1000  900 Mbyte

TC – DEI, 2005/2006


Motiva o 2

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!

TC – DEI, 2005/2006


Sistemas de informa o

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

TC – DEI, 2005/2006


Sistema de ficheiros

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

TC – DEI, 2005/2006


Bases de dados

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

Base

de

Dados

Aplicação

ODBC

SGBD (Sistema de

Gestão de BD)

TC – DEI, 2005/2006


Sistemas de ficheiros

Sistemas de Ficheiros


Acesso a ficheiros

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

TC – DEI, 2005/2006


Acesso a ficheiros 2

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

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

TC – DEI, 2005/2006


Como que o so organiza os ficheiros

Como é que o SO organiza os ficheiros?

Árvore de Directórios

TC – DEI, 2005/2006


Como que o so sabe onde est o os ficheiros

Como é que o SO sabe onde estão os ficheiros?

TC – DEI, 2005/2006


Um exemplo pr tico fat dos windows

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

TC – DEI, 2005/2006


Armazenamento de dados ficheiros bases de dados

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

Exame.doc

RH

2003.12.06-14:21

10345

210

Frequência.doc

RH

2003.12.05-17:30

14121

201

Disco

Boot

FAT

Directory Table

Data

O ficheiro “Frequência.doc”

ocupa os sectores 201, 203,

204 e 205

207

203

EOF

204

205

EOF

202

208

209

215

FREE

EOF

214

BAD

EOF

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

TC – DEI, 2005/2006


Quest es

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)

TC – DEI, 2005/2006


Voltemos ao sistema de informa o

Voltemos ao Sistema de Informação…

  • Suponhamos que armazenamos todas as pessoas do DEI num ficheiro sequencial…

“Pessoas.dat”

JOANA FRANCISCA

10896534

R. Fernão Lop

Qual é o problema se quisermos encontrar o aluno

com o BI Nº 10896534?

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!!!

TC – DEI, 2005/2006


Utiliza o de ndices

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

“Pessoas.dat”

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

10896534

12

11843234

43

17345342

234

(…)

(…)

Entrada

BI

TC – DEI, 2005/2006


Utiliza o de ndices1

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)

TC – DEI, 2005/2006


Tamanho do ndice

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 10.000 alunos, qual é que teria de ser o tamanho do índice para BIs?

TC – DEI, 2005/2006


Armazenamento de dados ficheiros bases de dados

» If you don’t find it in the index, look very carefully through the entire catalogue « Sears, Roebuck and Co. Consumer’s Guide, 1897

TC – DEI, 2005/2006


Armazenamento de dados ficheiros bases de dados

TC – DEI, 2005/2006


Bases de dados1

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)

Bases-de-Dados

Base

de

Dados

Aplicação

ODBC

SGBD (Sistema de

Gestão de BD)

TC – DEI, 2005/2006


Modelo de dados

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

TC – DEI, 2005/2006


Tabelas

Tabelas

Chave Primária: Atributo especial que permite identificar univocamente um tuplo

Atributo: Algo que caracteriza a entidade

Tuplo: Conjunto ordenado de dados relacionados

TC – DEI, 2005/2006


Relacionamentos

Relacionamentos

Tabela Alunos

Tabela Cadeiras

Tabela Inscrições

TC – DEI, 2005/2006


Relacionamentos1

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

TC – DEI, 2005/2006


Exemplo pr tico ms access

Exemplo Prático – MS Access

TC – DEI, 2005/2006


Queries

Queries

7

2

7

1

6

3

4

5

  • 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 1998”

TC – DEI, 2005/2006


Queries sql

Queries - SQL

  • “Quais os nomes e os anos de nascimento dos alunos que estiveram inscritos a Tecnologias dos Computadores em 1998”

  • SELECT nome, ano_nascFROM alunos A, cadeiras C, inscrições INSWHEREnome_cadeira=‘Tecnologias dos Computadores’ ANDINS.ano = 1998ANDC.num_cadeira = INS.num_cadeira ANDINS.num_aluno = A.num_aluno

TC – DEI, 2005/2006


Queries sql1

Queries - SQL

7

2

1

7

6

3

4

5

  • As queries em SQL também retornam tabelas

    • SELECT nome, ano_nascFROM alunos A, cadeiras C, inscrições INSWHEREnome_cadeira=‘Tecnologias dos Computadores’ ANDINS.ano = 1998ANDC.num_cadeira = INS.num_cadeira ANDINS.num_aluno = A.num_aluno

TC – DEI, 2005/2006


Inser o de dados sql

Inserção de Dados - SQL

  • Também se podem inserir dados na base-de-dados…

  • INSERT INTOalunos(num_aluno, nome, morada, ano_nasc)VALUES(5010034322, ‘Teresa Matos’, ‘R. Alforrecas, 12, 3000-203 Coimbra’, 1984)

TC – DEI, 2005/2006


Recordemos

Recordemos…

Base

de

Dados

Aplicação

ODBC

SGBD (Sistema de

Gestão de BD)

O que viaja na ligação são estas

“ordens”, na linguagem SQL. A

aplicação tem de enviar as suasordens nesta linguagem e

processar os resultados

retornados

SELECT nome FROM alunos

TC – DEI, 2005/2006


Cria o de bases de dados

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

TC – DEI, 2005/2006


Modelo entidade relacionamento

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

Inscrito

N

N

ALUNO

CADEIRA

1

Possui

N

TESTE

TC – DEI, 2005/2006


Leitura do er

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

TC – DEI, 2005/2006


Recordemos1

Recordemos…

TC – DEI, 2005/2006


Inform tica mais do que escrever c digo

Informática é mais do que escrever código…

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

Mars Climate Orbiter, crashed into Mars on Sep 23, 1999

Cost  US$125 million dollars

TC – DEI, 2005/2006


Transac es em bds motiva o

Transacções em BDs – Motivação

REDE

Base

de

Dados

“Transfere €1.000.000 da conta

43248932 para a conta 43298743”

1:boolean ok = conta1.retira(1000000);

2:if (ok)

3:{

4: conta2.coloca(1000000);

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??

TC – DEI, 2005/2006


Transac es em bds

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

TC – DEI, 2005/2006


Transac es

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(1000000);

if (ok)

{

conta2.coloca(1000000);

trans.commitTransaction();

}

else

trans.rollbackTransaction();

TC – DEI, 2005/2006


Transac es ideia da implementa o

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

TC – DEI, 2005/2006


Para saber mais

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)

TC – DEI, 2005/2006


  • Login