View
1.754
Download
28
Category
Preview:
DESCRIPTION
Slides apresentados no III Pyletras ocorrido no dia 26/03/2011. Apresenta conceitos iniciais de banco de dados, SQL e a biblioteca SqlAlchemy.
Citation preview
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
Recommended