SlideShare uma empresa Scribd logo
SQLAlchemy - Desenvolvendo uma aplicação com Python




        Filipe Fernandes dos Santos Brasil de Matos
Um pouco sobre mim
●   Nome: Filipe Fernandes dos S B de Matos.
●   Idade: 23 anos;
●   Mestrando em Ciência da Computação pela
    UECE (Primeiro Semestre);
●   Graduando em Tecnologia em Telemática pelo
    IFCE (9º semestre fatorial :D);
●   Desenvolvedor Python à 3 anos;
●   Sócio-fundador da Acens, onde trabalhei com
    Python em alguns projetos;
Agenda
●   Banco de dados relacionais;
●   Linguagem SQL;
●   SQLAlchemy;
●   Como instalar;
●   Um exemplo simples.
Banco de Dados Relacionais
●   Coleção de tabelas, de nomes únicos;
●   As tabelas e seus atributos relacionam-se entre si;
●   Atavés desses relacionamentos, procura-se evitar a
    duplicidade de dados;
●   Especialização, generalização e associação;
●   Chaves primárias coordenam a concatenação de
    dados;
Banco de Dados Relacionais
●   Relacionamentos possíveis:
    ●   Um para um: Aluno/Matrícula;
    ●   Um para muitos: Professor/Departamento;
    ●   Muitos para muitos: Alunos/Disciplinas.
●   Normalização garante eficiência nas pesquisa;
●   Principais operações:
    ●   Seleção, atualização e deleção de registros.
Linguagem SQL
●   Inspirada na Álgebra Relacional;
●   Linguagem DDL (Definição) + DML (Manipulação);
●   A mais popular e mais utilizada;
●   Possibilidade de interação com outras linguagens;
●   Principais cláusulas:
    ●   INSERT, UPDATE, DELETE, FROM, WHERE, ORDER
        BY, GROUP BY, CREATE, ALTER, DROP, UNION,
        JOIN, ...
Linguagem SQL
●   SELECT m.marca, c.modelo, c.cor, c.valor FROM marcas as m, carros as c
    WHERE m.codMarca = c.codMarca AND c.valor between 20000 and 30000
●   UPDATE Persons SET Address='Nissestien 67', City='Sandnes;
●   DELETE * FROM Persons WHERE LastName='Tjessem' AND
    FirstName='Jakob';
●   CREATE TABLE customer (First_Name char(50), Last_Name char(50),
    Address char(50), City char(50), Country char(25), Birth_Date date);
●   SELECT m.marca, c.modelo, c.cor, c.valor FROM marcas as m, carros as c
    WHERE m.codMarca = c.codMarca AND c.valor between 20000 and 30000;
●   SELECT m.marca, sum(c.valor) as total FROM marcas as m, carros as c
    WHERE m.codMarca = c.codMarca GROUP BY m.marca ORDER BY total
    desc;
●   DROP DATABASE bdexemplo;
SQLAlchemy
●   "SQLAlchemy é uma biblioteca de mapeamento
    objeto-relacional SQL em código aberto
    desenvolvido para a linguagem de programação
    Python e disponibilizado sobre a licença MIT."


●   Versão mais atual: SQLAlchemy 0.7 Beta 1;
●   Possui algumas extensões: Elixir, Migrate,
    GeoAlchemy, Camelot...;
●   Oferece suporte aos principais SGBDs do mercado.
SQLAlchemy
●   “O principal objetivo do SQLAlchemy é mudar a
    forma como você pensa sobre banco de dados e
    SQL”;


●   Fácil instalação;
●   Camada de abstração colocada sobre o BD;
●   Virtualização do banco de dados;
●   Poder do SQL com a versatilidade do Python.
SQLAlchemy
SQLAlchemy
●   Mapeamento entre tabelas e classes Python;
●   Objetos funcionam como registros;
●   Facilidade de manipulação dos dados:
    ●   Sessões oferecem abstrações do SQL.
●   Mas sem esquecer dos métodos tradicionais:
    ●   Possível utilizar comandos SQL direto.
Como instalar?
●   3 formas possíveis:
    ●   Via easy_install:
        –  easy_install SQLAlchemy
    ●   Via pip:
        – pip install SQLAlchemy
    ●   Baixando o pacote do site:
        –   python setup.py install
Um exemplo simples
“Os empregados de uma empresa de consultoria estão
distribuídos em departamentos. Cada trabalho captado pela
empresa constitui um projeto e a cada projeto estão
associados diversos empregados. Um empregado não pode
participar de mais de um projeto simultaneamente. Durante a
execução do projeto, um empregado o gerencia, denominado
gerente do projeto. Desenhe o DER deste sistema, supondo a
existência das seguintes classes de entidades e atributos:
●   Empregado: matrícula do empregado, nome, nível e
    departamento;
●   Departamento: código do departamento e nome;
●   Projeto: código do projeto, nome e gerente;
●   Gerente: matrícula do gerente, código do projeto.”
Um exemplo simples
“Os empregados de uma empresa de consultoria estão
distribuídos em departamentos. Cada trabalho captado pela
empresa constitui um projeto e a cada projeto estão
associados diversos empregados. Um empregado não pode
participar de mais de um projeto simultaneamente. Durante a
execução do projeto, um empregado o gerencia, denominado
gerente do projeto. Desenhe o DER deste sistema, supondo a
existência das seguintes classes de entidades e atributos:
●   Empregado: matrícula do empregado, nome, nível e
    departamento;
●   Departamento: código do departamento e nome;
●   Projeto: código do projeto, nome e gerente;
●   Gerente: matrícula do gerente, código do projeto.”
SQLAlchemy
Um exemplo simples



        Vamos ao código!
               :D
SQLAlchemy - Desenvolvendo uma aplicação com Python

Mais conteúdo relacionado

Mais procurados

MSDN - ASP.NET MVC
MSDN - ASP.NET MVCMSDN - ASP.NET MVC
MSDN - ASP.NET MVC
Maarten Balliauw
 
Power BI: From the Basics
Power BI: From the BasicsPower BI: From the Basics
Power BI: From the Basics
Nikkia Carter
 
Curso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTMLCurso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTML
Rodrigo Bueno Santa Maria, BS, MBA
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring Batch
Antoine Rey
 
Swagger - make your API accessible
Swagger - make your API accessibleSwagger - make your API accessible
Swagger - make your API accessible
Victor Trakhtenberg
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Leinylson Fontinele
 
Aula 04 Introdução à navegação na internet - Operador de computador
Aula 04 Introdução à navegação na internet - Operador de computadorAula 04 Introdução à navegação na internet - Operador de computador
Aula 04 Introdução à navegação na internet - Operador de computador
CEULJI/ULBRA Centro Universitário Luterano de Ji-Paraná
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
Léo Dias
 
Introduction to Django Rest Framework
Introduction to Django Rest FrameworkIntroduction to Django Rest Framework
Introduction to Django Rest Framework
bangaloredjangousergroup
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flask
juzten
 
Ppt of Basic MVC Structure
Ppt of Basic MVC StructurePpt of Basic MVC Structure
Ppt of Basic MVC Structure
Dipika Wadhvani
 
Python/Flask Presentation
Python/Flask PresentationPython/Flask Presentation
Python/Flask Presentation
Parag Mujumdar
 
UI Web Development.pptx
UI Web Development.pptxUI Web Development.pptx
UI Web Development.pptx
SHAIKIRFAN715544
 
Apresentação da disciplina Topicos Especiais em Sistemas de Informação
Apresentação da disciplina Topicos Especiais em Sistemas de InformaçãoApresentação da disciplina Topicos Especiais em Sistemas de Informação
Apresentação da disciplina Topicos Especiais em Sistemas de Informação
Rogerio P C do Nascimento
 
Laravel ppt
Laravel pptLaravel ppt
Laravel ppt
Mayank Panchal
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Leinylson Fontinele
 
PowerPoint - Aula 1
PowerPoint - Aula 1PowerPoint - Aula 1
PowerPoint - Aula 1
vanessa.barros
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Rodrigo Bueno Santa Maria, BS, MBA
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
Rodrigo Branas
 
Workshop Prototipação em ux - Como validar uma ideia sem construir o produto
Workshop Prototipação em ux - Como validar uma ideia sem construir o produtoWorkshop Prototipação em ux - Como validar uma ideia sem construir o produto
Workshop Prototipação em ux - Como validar uma ideia sem construir o produto
Carla De Bona
 

Mais procurados (20)

MSDN - ASP.NET MVC
MSDN - ASP.NET MVCMSDN - ASP.NET MVC
MSDN - ASP.NET MVC
 
Power BI: From the Basics
Power BI: From the BasicsPower BI: From the Basics
Power BI: From the Basics
 
Curso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTMLCurso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTML
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring Batch
 
Swagger - make your API accessible
Swagger - make your API accessibleSwagger - make your API accessible
Swagger - make your API accessible
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Aula 04 Introdução à navegação na internet - Operador de computador
Aula 04 Introdução à navegação na internet - Operador de computadorAula 04 Introdução à navegação na internet - Operador de computador
Aula 04 Introdução à navegação na internet - Operador de computador
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Introduction to Django Rest Framework
Introduction to Django Rest FrameworkIntroduction to Django Rest Framework
Introduction to Django Rest Framework
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flask
 
Ppt of Basic MVC Structure
Ppt of Basic MVC StructurePpt of Basic MVC Structure
Ppt of Basic MVC Structure
 
Python/Flask Presentation
Python/Flask PresentationPython/Flask Presentation
Python/Flask Presentation
 
UI Web Development.pptx
UI Web Development.pptxUI Web Development.pptx
UI Web Development.pptx
 
Apresentação da disciplina Topicos Especiais em Sistemas de Informação
Apresentação da disciplina Topicos Especiais em Sistemas de InformaçãoApresentação da disciplina Topicos Especiais em Sistemas de Informação
Apresentação da disciplina Topicos Especiais em Sistemas de Informação
 
Laravel ppt
Laravel pptLaravel ppt
Laravel ppt
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
 
PowerPoint - Aula 1
PowerPoint - Aula 1PowerPoint - Aula 1
PowerPoint - Aula 1
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
 
Workshop Prototipação em ux - Como validar uma ideia sem construir o produto
Workshop Prototipação em ux - Como validar uma ideia sem construir o produtoWorkshop Prototipação em ux - Como validar uma ideia sem construir o produto
Workshop Prototipação em ux - Como validar uma ideia sem construir o produto
 

Semelhante a SQLAlchemy - Desenvolvendo uma aplicação com Python

Palestra nosql
Palestra nosqlPalestra nosql
Palestra nosql
Christiano Anderson
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Christiano Anderson
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a Aspectos
Ricardo Terra
 
MongoDB outras alternativas de persistência
MongoDB outras alternativas de persistênciaMongoDB outras alternativas de persistência
MongoDB outras alternativas de persistência
Eder Magalhães
 
CV - Andre De Conto Matter
CV - Andre De Conto MatterCV - Andre De Conto Matter
CV - Andre De Conto Matter
Andre Matter
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UML
Natanael Simões
 
Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6
Alessandro Almeida
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15
Christiano Anderson
 
Design for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPDesign for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHP
Pablo Dall'Oglio
 
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQLpgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
Raphael Silva
 
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - CachéApresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Renzo Petri
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
Rodrigo Aurélio
 
Machine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produçãoMachine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produção
Marlesson Santana
 
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Pablo Dall'Oglio
 
Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um Software
Pablo Dall'Oglio
 
Aula1
Aula1Aula1
Aula1
mentrixmax
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
Tony Alexander Hild
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
Eric Gallardo
 
SQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open sourceSQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open source
Luis Borges Gouveia
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
PythOnRio
 

Semelhante a SQLAlchemy - Desenvolvendo uma aplicação com Python (20)

Palestra nosql
Palestra nosqlPalestra nosql
Palestra nosql
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a Aspectos
 
MongoDB outras alternativas de persistência
MongoDB outras alternativas de persistênciaMongoDB outras alternativas de persistência
MongoDB outras alternativas de persistência
 
CV - Andre De Conto Matter
CV - Andre De Conto MatterCV - Andre De Conto Matter
CV - Andre De Conto Matter
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UML
 
Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15
 
Design for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPDesign for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHP
 
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQLpgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
 
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - CachéApresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
Machine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produçãoMachine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produção
 
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
 
Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um Software
 
Aula1
Aula1Aula1
Aula1
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
SQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open sourceSQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open source
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 

Último

Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ismael Ash
 
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
Faga1939
 
Aula combustiveis mais utilizados na indústria
Aula combustiveis mais utilizados na indústriaAula combustiveis mais utilizados na indústria
Aula combustiveis mais utilizados na indústria
zetec10
 
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
ronaldos10
 
Apresentação sobre Deep Web e anonimização
Apresentação sobre Deep Web e anonimizaçãoApresentação sobre Deep Web e anonimização
Apresentação sobre Deep Web e anonimização
snerdct
 
Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
Ismael Ash
 

Último (6)

Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
 
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
 
Aula combustiveis mais utilizados na indústria
Aula combustiveis mais utilizados na indústriaAula combustiveis mais utilizados na indústria
Aula combustiveis mais utilizados na indústria
 
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
 
Apresentação sobre Deep Web e anonimização
Apresentação sobre Deep Web e anonimizaçãoApresentação sobre Deep Web e anonimização
Apresentação sobre Deep Web e anonimização
 
Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
 

SQLAlchemy - Desenvolvendo uma aplicação com Python

  • 1. SQLAlchemy - Desenvolvendo uma aplicação com Python Filipe Fernandes dos Santos Brasil de Matos
  • 2. Um pouco sobre mim ● Nome: Filipe Fernandes dos S B de Matos. ● Idade: 23 anos; ● Mestrando em Ciência da Computação pela UECE (Primeiro Semestre); ● Graduando em Tecnologia em Telemática pelo IFCE (9º semestre fatorial :D); ● Desenvolvedor Python à 3 anos; ● Sócio-fundador da Acens, onde trabalhei com Python em alguns projetos;
  • 3. Agenda ● Banco de dados relacionais; ● Linguagem SQL; ● SQLAlchemy; ● Como instalar; ● Um exemplo simples.
  • 4. Banco de Dados Relacionais ● Coleção de tabelas, de nomes únicos; ● As tabelas e seus atributos relacionam-se entre si; ● Atavés desses relacionamentos, procura-se evitar a duplicidade de dados; ● Especialização, generalização e associação; ● Chaves primárias coordenam a concatenação de dados;
  • 5. Banco de Dados Relacionais ● Relacionamentos possíveis: ● Um para um: Aluno/Matrícula; ● Um para muitos: Professor/Departamento; ● Muitos para muitos: Alunos/Disciplinas. ● Normalização garante eficiência nas pesquisa; ● Principais operações: ● Seleção, atualização e deleção de registros.
  • 6. Linguagem SQL ● Inspirada na Álgebra Relacional; ● Linguagem DDL (Definição) + DML (Manipulação); ● A mais popular e mais utilizada; ● Possibilidade de interação com outras linguagens; ● Principais cláusulas: ● INSERT, UPDATE, DELETE, FROM, WHERE, ORDER BY, GROUP BY, CREATE, ALTER, DROP, UNION, JOIN, ...
  • 7. Linguagem SQL ● SELECT m.marca, c.modelo, c.cor, c.valor FROM marcas as m, carros as c WHERE m.codMarca = c.codMarca AND c.valor between 20000 and 30000 ● UPDATE Persons SET Address='Nissestien 67', City='Sandnes; ● DELETE * FROM Persons WHERE LastName='Tjessem' AND FirstName='Jakob'; ● CREATE TABLE customer (First_Name char(50), Last_Name char(50), Address char(50), City char(50), Country char(25), Birth_Date date); ● SELECT m.marca, c.modelo, c.cor, c.valor FROM marcas as m, carros as c WHERE m.codMarca = c.codMarca AND c.valor between 20000 and 30000; ● SELECT m.marca, sum(c.valor) as total FROM marcas as m, carros as c WHERE m.codMarca = c.codMarca GROUP BY m.marca ORDER BY total desc; ● DROP DATABASE bdexemplo;
  • 8. SQLAlchemy ● "SQLAlchemy é uma biblioteca de mapeamento objeto-relacional SQL em código aberto desenvolvido para a linguagem de programação Python e disponibilizado sobre a licença MIT." ● Versão mais atual: SQLAlchemy 0.7 Beta 1; ● Possui algumas extensões: Elixir, Migrate, GeoAlchemy, Camelot...; ● Oferece suporte aos principais SGBDs do mercado.
  • 9. SQLAlchemy ● “O principal objetivo do SQLAlchemy é mudar a forma como você pensa sobre banco de dados e SQL”; ● Fácil instalação; ● Camada de abstração colocada sobre o BD; ● Virtualização do banco de dados; ● Poder do SQL com a versatilidade do Python.
  • 11. SQLAlchemy ● Mapeamento entre tabelas e classes Python; ● Objetos funcionam como registros; ● Facilidade de manipulação dos dados: ● Sessões oferecem abstrações do SQL. ● Mas sem esquecer dos métodos tradicionais: ● Possível utilizar comandos SQL direto.
  • 12. Como instalar? ● 3 formas possíveis: ● Via easy_install: – easy_install SQLAlchemy ● Via pip: – pip install SQLAlchemy ● Baixando o pacote do site: – python setup.py install
  • 13. Um exemplo simples “Os empregados de uma empresa de consultoria estão distribuídos em departamentos. Cada trabalho captado pela empresa constitui um projeto e a cada projeto estão associados diversos empregados. Um empregado não pode participar de mais de um projeto simultaneamente. Durante a execução do projeto, um empregado o gerencia, denominado gerente do projeto. Desenhe o DER deste sistema, supondo a existência das seguintes classes de entidades e atributos: ● Empregado: matrícula do empregado, nome, nível e departamento; ● Departamento: código do departamento e nome; ● Projeto: código do projeto, nome e gerente; ● Gerente: matrícula do gerente, código do projeto.”
  • 14. Um exemplo simples “Os empregados de uma empresa de consultoria estão distribuídos em departamentos. Cada trabalho captado pela empresa constitui um projeto e a cada projeto estão associados diversos empregados. Um empregado não pode participar de mais de um projeto simultaneamente. Durante a execução do projeto, um empregado o gerencia, denominado gerente do projeto. Desenhe o DER deste sistema, supondo a existência das seguintes classes de entidades e atributos: ● Empregado: matrícula do empregado, nome, nível e departamento; ● Departamento: código do departamento e nome; ● Projeto: código do projeto, nome e gerente; ● Gerente: matrícula do gerente, código do projeto.”
  • 16. Um exemplo simples Vamos ao código! :D