Relational Algebra

21
RELATIONAL ALGEBRA @tomas_stefano https://github.com/tomas-stefano

description

My presentation about Relational Algebra and Relation Library

Transcript of Relational Algebra

Page 1: Relational Algebra

RELATIONAL ALGEBRA

@tomas_stefanohttps://github.com/tomas-stefano

Page 2: Relational Algebra

PRIMEIRO ...

Page 3: Relational Algebra

VISITORS PATTERN

Page 4: Relational Algebra

“TOMAS ... NÃO ENTENDI NADA!!”

Page 5: Relational Algebra

SHOW ME THE CODE!

users = Arel::Table.new(:users)

users.project('*').to_sql=> “SELECT * FROM users”

Page 6: Relational Algebra

THE VISITOR DISPATCH

# Quando você escreve:users.project('*')

# Então por “baixo dos panos” dentro do Visitor:{ Arel::Nodes::SelectStatement =>"visit_Arel_Nodes_SelectStatement", Arel:SqlLiteral => "visit_Arel_SqlLiteral", Arel::Table => "visit_Arel_Table"}

Page 7: Relational Algebra

MIXED CASE

Page 8: Relational Algebra

QUERIA CRIAR ALGO EM C

Page 9: Relational Algebra

CRIAR ALGO QUE PRECISA SER RÁPIDO!

Page 10: Relational Algebra

RELATION! EM C! E WRAPPER EM RUBY!

Page 11: Relational Algebra

CURRENT STATUS!

Page 12: Relational Algebra

MAS ESTÁ PROGREDINDO!products = Relation::Table.new(:products)

products.select('*').to_sql"SELECT * FROM products"

products.where("company = 'SuccesSoft'").to_sql=>"SELECT * FROM products WHERE company = 'SuccesSoft'"

products.limit(1).to_sql=> "SELECT * FROM products LIMIT 1"

# E Ainda Tem muito mais!!

Page 13: Relational Algebra

BENCHMARK PREMATURO! MAS TÁ MUITO RÁPIDO! =P

Page 14: Relational Algebra

C É DIFÍCIL!

Page 15: Relational Algebra

O COMEÇO É DÍFICIL!

Page 16: Relational Algebra

MAS O TDD AJUDA!

Page 17: Relational Algebra

E NO FINAL DO PLACAR:C vs TOMAS

Page 18: Relational Algebra

CREIO QUE GANHEI! K.O!

Page 19: Relational Algebra

COMING SOON!

Page 20: Relational Algebra

OBRIGADO! ;)

@tomas_stefanohttps://github.com/tomas-stefano