Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
SEM0543 – Organização de Dados em
Computadores
Introdução
Objetivo:
Prover o aluno de graduação com conceitos
básicos de estruturas de dados e da teoria de
bancos de dados.
2
Ementa
Estruturas de Dados: lineares, árvores e grafos.
Estruturas de Dados: sistemas de arquivos e
métodos de acesso.
Sistemas de bancos de dados.
Sistemas de gerenciamento de banco de dados:
recuperação de falhas, controle de concorrência.
Banco de dados orientado a objetos
3
Bibliografia
Algoritmo:
CORMEN, T.H.; LEISERSON, C. E. RIVEST, R. L.
STEIN, C. Algoritmos: Teoria e Prática. 2ª edição,
São Paulo: Campus, 2002.
ZIVIANI, N. Projeto de Algoritmos: com
implementações em Pascal e C., 2ed., Pioneira
Thomson Learning, 2004.
Linguagens:
KERNIGHAN, B. W.; RITCHIE, D. M. C A Linguagem
de Programação Padrão ANSI. 2ª edição, São
Paulo: Campus, 1989.
4
Bibliografia (cont.)
Estrutura de Dados:
VELOSO, P. Estrutura de Dados. Editora Campus,
1986.
TENENBAUM, A. M.; LANGSAM, Y.; AUGENSTEIN,
M. J.; Estruturas de Dados Usando C. São Paulo:
Pearson Makron Books, 2004.
WIRTH, N. Algoritmos e Estruturas de Dados,
Prentice Hall, 1986.
5
Bibliografia (cont.)
Banco de Dados:
DATE, C. J. Introdução a Sistemas de Banco de
Dados. : Campus, 1990.
ELMASRI, R; NAVATHE, S. B. Sistemas de Banco
de Dados, 4ª edição, São Paulo: Pearson –
Addison Wesley, 2005.
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S.
Sistema de Banco de Dados. 3ª edição, São
Paulo: Makron Books, 1999.
6
Bibliografia (cont.)
Organização de Computadores:
HWANG, K. Advanced Computer Architecture:
Paralelism, Scalability, Programmability.:
McGraw-Hill, 1993.
MONTEIRO, M. A. Introdução à Organização de
Computadores. : Livros Técnicos e
Científicos(LTC), 1995.
TANEMBAUM, A. S. Organização Estruturada de
Computadores. : Prentice-Hall, 1992.
7
Recursos
Editor e compilador C e C++ gratuito:
DevC++ (Bloodshed):
http://www.bloodshed.net/devcpp.html
SGBD de uso livre (acadêmico ou
desenvolvimento):
MySQL: http://www.mysql.com/
Manual de Referência do MySQL:
http://dev.mysql.com/doc/
8
Planejamento Detalhado
Estruturas de Dados
Algoritmos, estruturas simples
Tipos de dados: primitivos e estruturados
Estruturas estáticas: arrays e matrizes
Estruturas dinâmicas: listas simplesmente e
duplamente encadeadas
Árvores
Conceito geral: árvores binárias e n-árias
Árvore Binária de Busca (ABB), Operações
9
Planejamento Detalhado (cont.)
Estruturas de Dados
Árvores
Árvores-B. Operações
Grafos
Conceito geral e componentes básicos
Dígrafos. Formas de representação
Algoritmos para busca em grafos
10
Planejamento Detalhado (cont.)
Sistema de arquivos
Conceitos de arquivos e armazenamento
secundário
Organização do sistema de arquivos
Métodos de acesso a arquivos
Indexação: chaves primárias e secundárias
Árvores B+
Hashing
11
Planejamento – Ementa (cont.)
Sistemas de Banco de Dados
Sistemas gerenciadores de bancos de dados
Modelo Entidade-Relacionamento
Mapeamento do ME-R para o Modelo Relacional
Teoria do Processamento de Transações
Controle de concorrência e Sistema de recuperação
Banco de dados Orientado a Objetos
12
Avaliação, ver “handout”
Datas:
Prova: P1 (26/09/2011)
Prova: P2 (21/11/2011) toda matéria ministrada
Prova SUB SOMENTE para alunos que não
puderam por motivos justificados fazer alguma
das provas P1 ou P2
Prova: SUB (28/11/2011) toda matéria ministrada
Média Final = (P1+P2)/2
T – Exercícios práticos e trabalhos de laboratório
(programação)
Algoritmos
Alan Turing (1912-1954)
Published On Computable Numbers, with
an Application to the
Entscheidungsproblem (1936)
Introduziu o Problema da Parada
Modelo Formal de computação
(conhecido como “Máquina de
Turing”)
15
Máquina de Turing
A Máquina de Turing é um dispositivo
teórico, conhecido como máquina
universal, que foi concebido pelo
matemático britânico Alan Turing (1912-
1954), muitos anos antes de existirem os
modernos computadores digitais (o artigo
de referência foi publicado em 1936).
Máquina de Turing Simples
. . .
Fita Infinita: Γ*
Cabeça da Fita: lê o corrente quadrado da fita,
escreve no corrente quadrado,
move um quadrado; esquerda ou direita
MT: como Autômato Finito, exceto:
transições incluem direções (esq./dir.)
escrita na fita
CF: controle finito
Máquina de Turing: descrição formal
. . .
CF
7-tuple: (Q, , Γ, δ, q0,B F)
Q: conjunto finito de estados
: alfabeto de entrada (sem símbolo branco B)
Γ: alfabeto da fita, inclue and B
δ: função de transição: Q Γ Q Γ {L, R}
q0: estado inicial, q0 Q
F: conjunto de estados finais
18
MT - Exemplo
A função yxyxf ),(
é computável
Turing Machine:
Cadeia de entrada: yx0 unária
Cadeida de saída:
0xy unária
yx,
São inteiros
19
0
0q
1 1 1 1
x y
1
Início
Estado inicial
0: delimitador que separa os dois números
20
0
0q
1 1 1 1
x y
1
0
fq
1 1
yx
11
Início
Fim
Estado Final
Estado Inicial
21
0
fq
1 1
yx
11
Fim
Estado final
0: zero ajuda quando utilizado resultado
em outras operações
22
0q
MT para a função
1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
yxyxf ),(
23
Exemplo de execução:
11x
11y
0
0q
1 1 1 1
Time 0
x y
Resultado Final
0
4q
1 1 1 1
yx
(2)
(2)
24
0
0q
1 1
Time 0
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
1 1
25
0q
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
01 11 1
Time 1
26
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
0
0q
1 1 1 1
Time 2
27
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
1q
1 11 11
Time 3
28
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
1q
1 1 1 11
Time 4
29
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
1q
1 11 11
Time 5
30
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
2q
1 1 1 11
Time 6
31
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
3q
1 11 01
Time 7
32
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
3q
1 1 1 01
Time 8
33
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
3q
1 11 01
Time 9
34
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
3q
1 1 1 01
Time 10
35
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
3q
1 11 01
Time 11
36
0q 1q 2
q
3q
L, L,01
L,11
R,
R,10
R,11
4q
R,11
4q
1 1 1 01
HALT & accept
Time 12
Tese de Church-Turing
“ A capacidade de computação representada
pela Máquina de Turing é o limite máximo que
pode ser atingido por qualquer dispositivo de
computação”
Computabilidade Complexidade
Decidibilidade
Indecidibilidade
Intratável
Tratável
Resumindo
Decidibilidade
Tratável: “Decidível
em uma quantidade
razoável de tempo
e espaço”
Indecidibilidade
40
Exercícios – 1
1) Descreva sobre Máquina
de Turing
2) Descreva sobre complexidade de algoritmos e tratabilidade
3) Descreva sobre Criptografia
4) Descreva sobre as seguintes máquinas: autômatos finitos, máquina
de Mealy e Moore.
5) Interprete a Tese de Church-Turing explicando-a.
Tópico adicional: Análise de Algoritmo: Faça uma pesquisa
bibliográfica e defina com exemplos as seguintes notações:
big-Oh O(f(n)); big-Omega (f(n)) ; big-Theta (f(n));
little-oh o(f(n)); little-omega (f(n))