Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SQLAlchemy - Desenvolvendo uma aplicação com Python

2,403 views

Published on

Slides apresentados no III Pyletras ocorrido no dia 26/03/2011. Apresenta conceitos iniciais de banco de dados, SQL e a biblioteca SqlAlchemy.

Published in: Technology
  • Be the first to comment

SQLAlchemy - Desenvolvendo uma aplicação com Python

  1. 1. SQLAlchemy - Desenvolvendo uma aplicação com Python Filipe Fernandes dos Santos Brasil de Matos
  2. 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. 3. Agenda● Banco de dados relacionais;● Linguagem SQL;● SQLAlchemy;● Como instalar;● Um exemplo simples.
  4. 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. 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. 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. 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. 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. 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.
  10. 10. SQLAlchemy
  11. 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. 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. 13. Um exemplo simples“Os empregados de uma empresa de consultoria estãodistribuídos em departamentos. Cada trabalho captado pelaempresa constitui um projeto e a cada projeto estãoassociados diversos empregados. Um empregado não podeparticipar de mais de um projeto simultaneamente. Durante aexecução do projeto, um empregado o gerencia, denominadogerente do projeto. Desenhe o DER deste sistema, supondo aexistê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. 14. Um exemplo simples“Os empregados de uma empresa de consultoria estãodistribuídos em departamentos. Cada trabalho captado pelaempresa constitui um projeto e a cada projeto estãoassociados diversos empregados. Um empregado não podeparticipar de mais de um projeto simultaneamente. Durante aexecução do projeto, um empregado o gerencia, denominadogerente do projeto. Desenhe o DER deste sistema, supondo aexistê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.”
  15. 15. SQLAlchemy
  16. 16. Um exemplo simples Vamos ao código! :D

×