sqlalchemy - desenvolvendo uma aplicação com python

17
SQLAlchemy - Desenvolvendo uma aplicação com Python Filipe Fernandes dos Santos Brasil de Matos

Upload: filipe-fernandes

Post on 25-May-2015

1.754 views

Category:

Technology


28 download

DESCRIPTION

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

TRANSCRIPT

Page 1: SQLAlchemy - Desenvolvendo uma aplicação com Python

SQLAlchemy - Desenvolvendo uma aplicação com Python

Filipe Fernandes dos Santos Brasil de Matos

Page 2: SQLAlchemy - Desenvolvendo uma aplicação com Python

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;

Page 3: SQLAlchemy - Desenvolvendo uma aplicação com Python

Agenda

● Banco de dados relacionais;● Linguagem SQL;● SQLAlchemy;● Como instalar;● Um exemplo simples.

Page 4: SQLAlchemy - Desenvolvendo uma aplicação com Python

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;

Page 5: SQLAlchemy - Desenvolvendo uma aplicação com Python

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.

Page 6: SQLAlchemy - Desenvolvendo uma aplicação com Python

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, ...

Page 7: SQLAlchemy - Desenvolvendo uma aplicação com Python

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;

Page 8: SQLAlchemy - Desenvolvendo uma aplicação com Python

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.

Page 9: SQLAlchemy - Desenvolvendo uma aplicação com Python

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.

Page 10: SQLAlchemy - Desenvolvendo uma aplicação com Python

SQLAlchemy

Page 11: SQLAlchemy - Desenvolvendo uma aplicação com Python

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.

Page 12: SQLAlchemy - Desenvolvendo uma aplicação com Python

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

Page 13: SQLAlchemy - Desenvolvendo uma aplicação com Python

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.”

Page 14: SQLAlchemy - Desenvolvendo uma aplicação com Python

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.”

Page 15: SQLAlchemy - Desenvolvendo uma aplicação com Python

SQLAlchemy

Page 16: SQLAlchemy - Desenvolvendo uma aplicação com Python

Um exemplo simples

Vamos ao código!

:D

Page 17: SQLAlchemy - Desenvolvendo uma aplicação com Python