SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Aula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte IIAula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte II
Dalton Martins
 
Criação do pendrive bootável
Criação do pendrive bootávelCriação do pendrive bootável
Criação do pendrive bootável
Francis Torres
 

La actualidad más candente (20)

Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Speed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using DockerSpeed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using Docker
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Aula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte IIAula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte II
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
Aula 3 - Software
Aula 3 - SoftwareAula 3 - Software
Aula 3 - Software
 
Aula 03
Aula 03Aula 03
Aula 03
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualização
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end
 
Informática e suas tecnologias
Informática e suas tecnologiasInformática e suas tecnologias
Informática e suas tecnologias
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
 
Introdução ao HTML e CSS
Introdução ao HTML e CSSIntrodução ao HTML e CSS
Introdução ao HTML e CSS
 
Criação do pendrive bootável
Criação do pendrive bootávelCriação do pendrive bootável
Criação do pendrive bootável
 

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

CV - Andre De Conto Matter
CV - Andre De Conto MatterCV - Andre De Conto Matter
CV - Andre De Conto Matter
Andre Matter
 
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
 

Similar 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 Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 

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