Commits

Mike Bayer committed 86191a2

edits

  • Participants
  • Parent commits 14ea90a

Comments (0)

Files changed (12)

File handout.pdf

Binary file modified.

File handout/_sources/glossary.txt

         will be permanently available following the ``COMMIT`` statement.
 
     rollback
-        Denotes a premature end to a :term:`transaction` which reverses
+        Denotes the end to a :term:`transaction` which reverses
         all the effects of the transaction that have proceeded thus far; the
         state established within the transaction is discarded.   In SQL,
         this is normally denoted using the ``ROLLBACK`` statement:
 
     Structured Query Language
     SQL
-        SQL (pron.: /s kju l/ "S-Q-L";[3] or Structured Query
-        Language) is a special-purpose programming language designed
+        A special-purpose programming language designed
         for managing data in relational database management systems
         (RDBMS).
 
         are swapped.  At least
         one row will be returned for every row in the right table, and
         columns from the left row will be filled with NULL if the ON
-        criteria does not match.  In SQLAlchemy, outer joins are left
-        outer joins.
+        criteria does not match.  Right outer joins are not frequently
+        used.
 
     subquery
         A ``SELECT`` statement embedded in another ``SELECT`` statement.  Data

File handout/_sources/relational.txt

 organized into simple primary and foreign key relationships, that's often
 a sign that it isn't strongly normalized.
 
-The `Wikipedia page on normalization <http://en.wikipedia.org/wiki/Database_normalization>`_
+The Wikipedia page on normalization (http://en.wikipedia.org/wiki/Database_normalization)
 is a great place to learn more.
 
 
 ----------------------
 
 It's very helpful (at least the author thinks so) to keep straight exactly
-how ``SELECT`` goes about its work when given a combination of aggregation and 
+how ``SELECT`` goes about its work when given a combination of aggregation and
 clauses (such as ``WHERE``, ``ORDER BY``, ``GROUP BY``, ``HAVING``).
 
 Given a series of rows::
 ==========
 
 The flip side to the relational model employed by relational databases is the
-so called :term:`transactional` model most of them provide.   The acronym :term:`ACID` 
+so called :term:`transactional` model most of them provide.   The acronym :term:`ACID`
 refers to the principal properties of relational database transactions
 (as well as transactions for any kind of hypothetical database).
 
 it's too late.   This "peace of mind" allows us to write and test our applications
 more quickly and boldly than we would be able to otherwise; more quickly because
 the relational database already does lots of the integrity checking we'd otherwise
-have to write by hand, and more boldly because we can produce test code more
-quickly without as much risk of corrupting our data as if we hadn't used constraints.
+have to write by hand, and more boldly because there is much less chance
+that code errors can result in corruption of data as if we hadn't used constraints.
 
 .. _isolation:
 

File handout/_sources/setup.txt

 
 * Interactive Python "slide runner" application, which
   is essentially a customized `REPL <http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`_
-  that can step through segments of a Python script
+  that can step through segments of a Python script.
 
 * Demonstration Python scripts which illustrate various features
   of SQLAlchemy; these scripts are formatted to work best with the

File handout/glossary.html

 are swapped.  At least
 one row will be returned for every row in the right table, and
 columns from the left row will be filled with NULL if the ON
-criteria does not match.  In SQLAlchemy, outer joins are left
-outer joins.</dd>
+criteria does not match.  Right outer joins are not frequently
+used.</dd>
 <dt id="term-rollback">rollback</dt>
-<dd><p class="first">Denotes a premature end to a <a class="reference internal" href="#term-transaction"><em class="xref std std-term">transaction</em></a> which reverses
+<dd><p class="first">Denotes the end to a <a class="reference internal" href="#term-transaction"><em class="xref std std-term">transaction</em></a> which reverses
 all the effects of the transaction that have proceeded thus far; the
 state established within the transaction is discarded.   In SQL,
 this is normally denoted using the <tt class="docutils literal"><span class="pre">ROLLBACK</span></tt> statement:</p>
 </div>
 </dd>
 <dt id="term-structured-query-language"><span id="term-sql"></span>Structured Query Language<br />SQL</dt>
-<dd><p class="first">SQL (pron.: /s kju l/ &#8220;S-Q-L&#8221;;[3] or Structured Query
-Language) is a special-purpose programming language designed
+<dd><p class="first">A special-purpose programming language designed
 for managing data in relational database management systems
 (RDBMS).</p>
 <p>Originally based upon relational algebra and tuple relational

File handout/objects.inv

Binary file modified.

File handout/relational.html

 refer to &#8220;Employee Department-&gt;name&#8221;.  When a schema resists being
 organized into simple primary and foreign key relationships, that&#8217;s often
 a sign that it isn&#8217;t strongly normalized.</p>
-<p>The <a class="reference external" href="http://en.wikipedia.org/wiki/Database_normalization">Wikipedia page on normalization</a>
+<p>The Wikipedia page on normalization (<a class="reference external" href="http://en.wikipedia.org/wiki/Database_normalization">http://en.wikipedia.org/wiki/Database_normalization</a>)
 is a great place to learn more.</p>
 </div>
 </div>
 it&#8217;s too late.   This &#8220;peace of mind&#8221; allows us to write and test our applications
 more quickly and boldly than we would be able to otherwise; more quickly because
 the relational database already does lots of the integrity checking we&#8217;d otherwise
-have to write by hand, and more boldly because we can produce test code more
-quickly without as much risk of corrupting our data as if we hadn&#8217;t used constraints.</p>
+have to write by hand, and more boldly because there is much less chance
+that code errors can result in corruption of data as if we hadn&#8217;t used constraints.</p>
 </div>
 <div class="section" id="isolation">
 <span id="id7"></span><h3>Isolation<a class="headerlink" href="#isolation" title="Permalink to this headline">¶</a></h3>

File handout/searchindex.js

-Search.setIndex({objects:{},terms:{osx:2,all:[1,3,4],concept:[1,3,4],jason:[3,5],consider:4,illustr:[1,4,2],queri:[1,0,4],global:[1,4],codd:[1,4],four:[1,4],defining_unique_kei:1,scalar:1,correl:[1,4],abil:4,follow:[1,4],disk:4,ptr:5,evalu:[1,4],row:[1,4],whose:[1,4],privat:4,middl:1,depend:[1,4,2],elsewher:4,specif:[1,4],send:3,cach:1,program:[1,3,2],swap:1,sql92:5,sens:[1,4],project_id:1,introduc:[3,4],identitymap:1,"case":[1,4],sourc:[1,2],everi:[1,4],string:[1,4],made:[1,4],area:[1,4],evaul:1,zipchk:1,rise:4,none:4,focus:4,util:4,data_manipulation_languag:1,candid:[1,4],volum:5,jack:[1,4],failur:[1,4],veri:[1,3,4],affect:4,implicitli:1,cartesian_product:1,tri:[1,4],sql_join:1,level:[1,4],list:[1,0,4,5,3],signific:4,handout:[3,0,2],factori:1,"try":[1,4],session:1,larg:[1,3],ride:1,proj:1,enterpris:5,data_definition_languag:1,user_account_id:1,user_account:1,weslei:5,natur:[1,4],direct:1,sign:4,jump:4,grant:4,second:[3,4],mysqldb:1,design:[1,4],aggreg:[1,4],pass:[1,4],download:[3,2],further:[3,0,2,5],acid:[1,0,4],append:1,even:[1,4],index:[1,4,2],what:[1,3,5,4],anywher:1,hide:4,sub:4,compar:1,consistency_:1,section:3,abl:[3,4],brief:4,char_length:1,delet:[1,4],version:[1,3,2,4],primary_kei:1,succinct:1,"new":[1,4],net:1,method:1,metadata:1,ongo:[1,4],elimin:4,full:1,themselv:4,deriv:[1,4],dodg:1,gener:[1,3,4],never:[1,4],here:[1,3,2,4],restat:4,satisfi:4,procur:1,modif:[1,4],address:1,path:[1,3],along:[1,4],vertic:1,modifi:[1,4,5],implicit:1,valu:[1,4],invis:1,condit:1,search:4,celko:5,ahead:3,database_norm:1,alchemist:4,reason:4,prior:[3,2],orm:1,throughput:4,behav:1,social:1,earli:1,extrem:3,implement:[1,4,5],explain:5,commonli:[1,4],intric:4,employe:[1,4],via:[1,2],depart:[1,4],drive:4,appli:[1,4],modul:1,prefer:2,layer:3,readili:1,"boolean":1,visibl:[1,4],instal:[3,0,2],total:1,establish:[1,4],beginin:1,select:[1,4],highli:4,kei:[1,3,4],discuss:4,pycon2013_student_packag:2,from:[1,4,2,5],proceed:[1,4],zip:2,memori:[1,4],distinct:[1,4],longer:4,univers:3,two:[1,3,4],perl:3,msn:1,database_system:1,edward:4,overhead:[1,4],criteria:[1,4],scope:[1,4],facad:1,type:[1,4],more:[1,3,4],flat:4,relax:1,peopl:4,hundr:4,claus:[1,4],yahoo:1,visual:4,"transient":1,stick:1,former:4,particular:[1,4,2],known:[1,4],postgresql:[1,4],compani:4,role_nam:1,must:[1,4,2],accid:4,account:[1,3,5,4],join:[1,4],sometim:[1,4],augment:1,hous:5,employeeproject:1,car:1,setup:[3,0,2],work:[1,3,2,4],uniqu:[1,4],dev:1,conceptu:1,remain:[1,4],archiv:3,obvious:4,can:[1,3,2,4],morgan:5,learn:[3,4],purpos:[1,0,3],fetch:1,def:1,appropri:[1,4],control:[1,4],claim:[4,5],sqlite:[1,4,2],omit:4,give:4,process:[1,4,2],lock:4,atomicity_:1,nock:5,share:1,indic:[1,4],topic:[4,5],critic:5,minimum:2,want:[1,4],basebal:3,natural_kei:1,phrase:1,serial:[1,4],unavoid:4,occur:[1,4],repl:2,nearli:1,low:[1,4],alwai:[1,4],cours:4,multipl:[1,4],goal:3,secur:1,rather:[1,4],anoth:[1,4],distinctli:[],environ:[1,0,2,3],classifi:1,write:[3,4],how:4,criterion:4,recoveri:1,fourth:5,reject:4,nyc:3,negoti:1,simpl:[1,4],updat:[1,4,2],rollback:[1,4],map:1,product:1,resourc:5,overridden:1,huge:3,max:[1,4],clone:2,after:[1,3,4],variant:[1,4],database_transact:1,reflect:1,befor:[1,4],catalog:1,employee_project:1,mixin:1,discard:1,mai:[1,3,2,4],end:[1,4],redund:1,philosophi:4,data:[1,0,5,4],averag:4,subsequ:4,attempt:[3,4],practic:[1,3,4],read:[1,0,4,5,3],bind:1,divid:1,explicit:1,correspond:[1,4],element:4,caus:1,inform:[1,4,2,5],scoped_sess:1,preced:[1,4],combin:[1,4],queuepool:1,allow:[1,3,4],my_us:1,mechan:5,"__delete__":1,order:[1,4],talk:1,includ:[1,3,2,4],origin:[1,4],depth:1,composit:[1,4],help:[1,3,4],offici:4,move:1,becaus:[1,4],intermediari:[1,4],held:1,through:[1,3,2,4],nyt:1,unique_kei:1,still:4,paramet:1,conjunct:[1,4],group:[1,3,4],monitor:4,concis:1,chosen:[1,4],psycopg2:1,fix:[1,4],acid_model:1,kirtland:[3,5],surrogate_kei:1,late:4,platform:3,window:2,pend:1,transpar:[1,4],requir:[1,4,2],helper:1,persist:1,bin:2,mail:[3,0],hidden:1,main:1,might:[1,4],alter:1,memoiz:1,them:[1,4],good:[3,4,5],"return":[1,4],thei:[1,4,2],mapper:1,python:[1,3,2,4],promin:1,overal:3,initi:1,number:[1,4],"break":4,promis:4,automat:[1,4],instead:[1,4],front:[3,0],inspect:[1,4],detach:1,hall:5,introduct:[1,0,4,3],term:[1,0,3],makefil:2,name:[1,4],auto:4,instrumentedattribut:1,edit:[3,5],drop:1,revert:4,artistri:4,separ:[1,4],easili:[4,2],slide:[3,0,2],isolation_:1,compris:[1,4],each:[1,4],fulli:[1,4],higher:4,side:[1,4],mean:[1,4],subset:4,recommend:2,domain:5,outlin:4,citat:1,dialect:1,michael:3,individu:[1,4],idea:[1,3,4],realli:4,ensur:[1,3,2,4],linkag:1,been:[1,3,5,4],fewer:4,begun:1,year:[3,4],distributor:1,our:4,iter:1,thing:[1,4],event:1,special:[1,2],out:[1,4],variabl:1,accomplish:4,attend:3,goe:4,storag:[1,4],algebra:[1,4],dep_nam:4,categori:4,suitabl:1,rational:1,emp_id:[1,4],determin:[1,4],correct:[1,4],integr:4,proxi:1,insid:[1,4],advanc:1,systemwid:2,manipul:[1,0,4],situat:1,given:[1,4],omiss:4,standard:[1,4,2,5],unboundexecutionerror:1,base:[1,3,4],table_2:4,theori:4,dictionari:1,table_1:4,quicki:1,org:[1,3,2,5],dorset:5,limit:1,repeat:[1,4],care:4,kaufmann:5,thread:1,capabl:1,could:[1,4],traceback:1,synchron:4,address_obj:1,keep:[1,4],filter:4,turn:[1,4],length:1,enforc:4,place:[1,3,4],perman:[1,4],geometri:4,profess:5,confus:[1,4],assign:[1,4],first:[1,4],oper:[1,4],softwar:[3,4,5],major:[1,3],project_employe:1,onc:[1,4],independ:[1,4],uncorrel:1,denorm:4,thereof:1,yourself:4,tier:1,instruct:4,alreadi:[1,3,4],done:4,construct:[1,4],plainli:4,fantast:5,primari:[1,4,5],size:[1,3],datetim:1,avail:[1,3,2,5],differ:[1,4],cartesian:1,smaller:[1,4],convent:[4,5],script:[1,2],associ:[1,4],top:1,habit:4,system:[1,3,2,4],least:[1,3,4],attach:1,necessarili:[],master:[4,2],demonstr:2,statement:[1,4],toolset:3,scheme:4,"final":[3,4],store:[1,4],too:[3,4],back:[1,4],consol:4,option:1,relationship:[1,4],tool:[3,4],copi:[3,4],specifi:[1,4],get_bind:1,part:[1,3,2],enclos:1,mostli:1,daunt:4,essenti:[1,3,2,4],exactli:[1,4,5],haven:1,serv:1,wide:[1,3,2,4],liter:1,ben:3,target:[1,4],keyword:[1,4],unload:1,provid:[1,4,5],gotten:4,remov:[1,4],zero:1,structur:[1,4,5],horizont:1,project:[1,3],matter:[3,0],"__init__":1,boil:4,iron:1,were:[1,3,4],edgar_f:1,surrog:[1,4],html:[1,2],seri:[1,4],analysi:5,rowset:1,fashion:1,comput:4,behavior:[1,4],runner:[3,2],thereaft:1,modern:[1,4],mind:4,argument:[1,4],hypothet:4,packag:[1,0,2,3],properli:4,expir:1,increment:[1,4],tabl:[1,4],need:[1,4,2,5],seen:1,seem:5,predic:1,dogbert:4,uncomplet:1,dbapi:1,issu:4,counter:1,three:[1,4,5],engin:[1,4],techniqu:[1,4,2],lib:1,min:[1,4],latter:4,violat:4,client:1,note:[1,4],also:[1,4,2],ideal:[1,4],maintain:1,constructor:1,take:[1,4],which:[1,3,2,4],ad_count:1,green:1,analogu:1,subject:4,noth:1,channel:[3,0],wherebi:[1,4],blue:4,pipelin:4,unless:1,normal:[1,4],track:1,who:[1,3,2,5,4],oracl:3,most:[1,3,2,4],said:1,whether:1,portion:[1,3],advic:5,pair:1,prentic:5,segment:2,"class":[1,3,2],prematur:1,simplic:4,allevi:1,synonym:[],exc:1,url:1,doc:[1,2],clear:1,later:4,cover:3,sale:4,doe:[1,4,2],declar:[1,4],snapshot:1,wildcard:4,fowler:[1,5],dep_id_fk:1,incur:1,constrain:4,usual:[1,4],cannot:1,fact:4,think:[4,5],somewhat:4,carefulli:4,enumer:1,bring:1,directli:[1,2],concurr:[1,4,5],particularli:4,schmidt:5,myclass:1,protocol:1,rough:4,debat:4,fine:2,overflow:1,make:[1,3,2,4],involv:1,current:[1,4],onli:[1,4],explicitli:1,locat:1,acquir:[1,4],hadn:4,trigger:[1,4],transact:[1,3,4],print:1,activ:1,behind:[1,4],than:[1,4],configur:[1,4,2],latenc:1,dict:1,analyz:4,"__tablename__":1,local:[1,3,2,4],compoment:1,wilei:5,predict:4,contribut:3,variou:2,get:[1,3,2,4],familiar:[3,4,2],express:[1,4],stop:1,kind:[1,3,4],addison:5,secondari:1,expres:1,mimick:4,tcp:1,network:[3,2,5],report:4,gem:5,layout:2,prime:4,reveal:4,homegrown:3,scene:4,enabl:[1,4],organ:[1,4],yield:4,across:4,sum:4,expedi:1,stuff:4,common:[1,4],mediat:1,contain:[1,4,2],demarc:[1,4],"01_engine_usag":2,where:[1,4,2],wrote:3,view:[1,3,4],wiki:[1,5],smarti:5,set:[1,4],creator:1,proce:[1,4],duplic:[1,4],knowledg:5,orphan:1,assumpt:4,flip:4,resist:4,see:[1,4,2],temporarili:1,result:[1,4],respons:1,fail:[1,4],close:1,email_address:1,servic:1,best:[4,2],gmail:1,closer:4,awar:4,statu:1,detect:[1,4],onto:[1,4],correctli:4,hopefulli:3,databas:[1,0,2,4,3],review:[3,0,4],wikipedia:[1,4,5],data_1:1,tend:[1,4],state:[1,4],durability_:1,check_constraint:1,googlegroup:3,between:[1,4,2],call:[1,4,2],"import":[1,4],awai:4,experi:3,approach:1,email:[1,3],attribut:[1,4],accord:[1,4],user_obj:1,extend:1,hai:5,fundament:[1,4],style:[1,4,2],isol:[1,4],pypi:2,extens:[1,4],lazi:1,succeed:4,unitofwork:1,would:[1,3,4],outer:[1,4],boss:4,come:4,problem:1,regular:[1,4],thank:3,both:[1,4,5],proofread:3,last:[1,4],easi:2,someth:[1,4],howev:[1,4,2],rdbmss:4,job:1,martinfowl:1,foreign:[1,4],etc:4,instanc:[1,4],context:1,logic:[1,4],pdf:2,corrupt:4,whole:[1,4],trofatt:3,"default":[1,2],load:[1,4],among:1,unclear:1,author:4,mass:1,figur:4,instanti:1,overview:[0,4],suppos:[1,4],inher:4,period:1,subq:1,book:5,written:[1,3,4],non:[1,3,2,4],linux:2,mistak:4,guid:1,pycon:0,backend:1,code:[1,4],better:4,ultim:[1,3],becom:4,java:[3,4],comma:1,compos:[1,4],instrument:1,addition:[1,4],rebuild:2,"__set__":1,mari:1,calculu:1,sinc:[1,4],compon:1,accumul:[1,4],behvior:1,much:[3,4],treat:1,untouch:2,basic:[1,3,4],addit:[1,4],date:4,partial:1,quickli:4,box:4,versa:1,usag:[1,2],venv:2,summari:4,great:4,ani:[1,4,2,5],tiger:1,coordin:1,schema:[1,0,5,4],emp_count:4,togeth:[1,4],child:[1,4],"catch":3,repetit:4,repres:[1,3,4],driver:1,decad:3,present:[1,0,4,3],emploi:4,multi:[1,3,4],ident:[1,4],look:[1,4],heavili:[1,4],plain:1,straight:[1,4],properti:[1,4],histor:4,contextu:1,defin:[1,4],"while":[1,3,2,4],outcom:1,abov:[1,4],error:[1,4],glossari:[1,0,4,3],fixtur:4,correlat:1,observ:4,manner:1,propag:1,seven:4,zipcod:1,customiz:1,coher:1,advantag:1,prerequistit:2,almost:4,"null":[1,4],deliv:1,therefor:[1,4],site:[3,0,2],worri:4,equal:4,techspot:[3,5],middlewar:1,itself:[1,3,2,5,4],edgar:[1,4],crash:1,avg:4,wherea:[1,4],mvcc:[1,4],sever:[3,2],scienc:4,parent:[1,4],nullpool:1,employee_id:1,develop:4,realiti:1,minim:[1,4,2],perform:[1,4],impact:[1,4],began:4,referenti:1,exchang:4,cross:[1,4],same:[1,3,4],member:[1,4],walli:[1,4],tutori:[1,3,2,4],largest:1,success:1,document:[1,0,2,4,3],complex:[1,4],conflict:4,difficult:4,phantom:4,safe:[1,4],http:[1,3,2,5],nil:4,again:4,referenc:[1,4],interrog:1,kju:1,upon:[1,4],effect:[1,4],hand:[1,3,4],remot:4,my_sess:1,sliderepl:2,student:[3,4,2],mani:[1,3,5,4],extern:1,studi:4,recent:[1,4,2],lower:4,task:[1,3],off:[1,4],equival:1,discourag:1,com:[1,3],thu:1,well:[1,3,2,4],spent:[1,4],without:[1,4],thought:5,exampl:[1,4,2],command:1,greatest:2,thi:[0,1,2,3,4,5],choos:4,grid:1,model:[1,0,5,4],ourselv:4,boundari:1,spend:[3,4],piec:4,left:[1,4,2],identifi:[1,4],entri:1,just:[1,4],less:[1,3,4],erron:1,sound:4,deadlock:4,obtain:[1,0,2],rest:1,risk:4,expung:1,shape:[3,4],current_timestamp:1,irc:[3,0],file:[1,2,5],mysql:[1,4],shorthand:1,simultan:1,yet:1,languag:[1,0,4,3],previous:[1,4],far:1,web:[1,0,3],versu:2,now:[1,4,5],expos:4,interfer:2,autom:1,point:[1,4],had:4,except:[1,4],param:1,contractor:3,blog:5,eager:1,add:[1,4],other:[1,3,2,4],exercis:3,citizen:1,input:4,delv:5,save:1,thows:[],latest:[3,2],match:[1,4],build:[1,0,2,4],real:1,applic:[1,3,2,5,4],inspir:[1,5],varchar:[1,4],around:1,format:2,handl:1,big:3,credit:[3,0,5],subqueri:[1,4],arguabl:4,hibern:1,built:[1,4,2],leagu:3,emp_nam:[1,4],know:[1,4],elabor:1,world:[1,3],bit:5,characterist:1,color:1,formal:4,loss:1,semi:1,lost:4,arbitrari:4,should:[1,3,4],anyon:5,manual:1,resolv:[1,4],integ:[1,4],server:[1,3],collect:1,princip:4,api:1,singl:[1,4],have:[1,4,2,5],martin:1,popular:3,output:[1,4],mode:4,record:[1,4],nest:1,decis:4,stdin:1,underli:1,www:[1,3],revers:[1,4],old:[4,2],often:[1,4],deal:[1,3,4],dilbert:[1,4],interact:[1,4,2],some:[1,3,4],begin:1,self:1,certain:1,intern:1,propos:1,unchang:[1,4],flush:1,proper:4,guarante:[1,4],successfulli:[3,4],rel:[1,4],librari:[1,2],autocommit:1,autoflush:1,txt:5,wendi:[1,4],scala:4,"function":[1,4],though:[1,4,2],definit:[1,4],pars:4,per:4,harrington:5,pron:1,mathemat:1,leav:4,unit:[1,4],backref:1,ddl:[1,4],pattern:[1,2,5],foo:1,localhost:1,refer:[1,4],machin:3,core:[1,0,3],encourag:[4,2],object:[1,0,4,5,3],run:[1,3,2,4],power:1,quit:5,acronym:[1,4],word:1,cascad:[1,4],complet:[1,3,4],nosql:4,interfac:1,uncommit:4,broken:[1,3,2,4],step:[1,3,2,4],isn:4,emp2:1,prerequisit:[3,0,2],emp1:1,standpoint:1,post:5,zzzeek:[3,2,5],don:[1,4,2],relational_model:1,describ:[1,3,4],scenario:4,comparison:1,about:[1,4,5],pep:1,central:[1,4],usa:1,constraint:[1,4],becam:1,materi:3,commun:4,slightli:1,scott:1,page:4,degre:4,lifecycl:1,foreign_key_constraint:1,act:4,fals:1,commit:[1,4],dep_id:[1,4],disabl:1,produc:[1,4],block:[1,4],own:[1,4],effici:1,rudiment:2,buildabl:[],rudimentari:1,curiou:1,datatyp:4,within:[1,3,4],pragmat:4,bound:1,terminolog:1,due:4,down:4,hotli:4,pysqlit:2,right:[1,4],empti:4,sessionmak:1,contributor:3,chang:[1,4],pgbouncer:1,next:4,create_engin:1,your:2,durabl:[1,4],manag:[1,4],git:2,wai:[1,4],few:4,overus:1,execut:[1,4],support:2,column:[1,4],custom:[1,2],like:[1,4],start:[1,4,2],reli:4,formul:1,bayer:3,inner:1,strong:4,replac:1,forward:4,typic:[1,4],strictli:4,entir:[1,3,4],lambda:1,lowest:[1,4],creation:[1,5],toward:3,form:[1,4],offer:1,tupl:1,subscrib:3,transat:[],continu:4,content:[0,2,4],sqlalchemi:[0,1,2,3,4,5],link:[1,4],gain:2,atom:[1,4],placement:1,line:[1,4],highest:4,"true":[1,4],freenod:3,"__get__":1,count:[1,4],succe:4,immedi:1,dirti:4,consist:[1,4],possibl:[1,4,2],clearli:5,wish:1,access:[1,4,2,5],dml:[1,0,4],displai:4,lead:1,insert:[1,4],below:[1,4],unusu:4,those:[1,3,2,4],unlik:4,lazyload:1,foreignkei:1,otherwis:4,embed:1,strategi:5,similar:[1,4],emit:[1,4],connect:1,serializ:4,boldli:4,classif:1,featur:[1,4,2],creat:[1,4,2],classic:[1,5],profession:5,retriev:[1,4],"abstract":[1,3],threadloc:1,meaningless:4,doesn:[1,4],descriptor:1,strongli:[4,2],chanc:4,plu:1,intro:1,exist:[1,4],either:1,request:1,encompass:4,face:4,check:[1,4],discorpor:3,fill:1,assembl:[4,5],denot:1,mutual:1,misunderstood:[1,4],against:[1,4],titl:5,user:1,when:[1,4],detail:[1,3,5],virtual:3,orient:5,"_codd":1,field:[1,4],valid:[1,4],role:1,rdbm:[1,4],rememb:4,varieti:[1,4],test:[1,3,4],tech:1,you:[1,4],roll:4,eaacatalog:1,architectur:[1,5],virtualenv:2,draw:4,relat:[1,0,4,3],intend:1,registri:1,jek:3,sprawl:5,actual:[1,3,4],sequenc:1,improv:4,googl:3,meaning:4,scale:4,consid:[1,4],sql:[1,3,5,4],throughout:[1,4],hat:4,peac:4,pool:1,deserv:3,reduc:[1,4],bitbucket:2,receiv:[1,3,4],sphinx:2,faster:4,vice:1,directori:2,accept:4,reliabl:1,lot:[3,4],multiversion_concurrency_control:1,rule:[1,4],reciev:1,candidate_kei:1,ignor:1,invok:[1,4],time:[1,3,4],sai:1},objtypes:{},titles:["PyCon 2013 - Introduction to SQLAlchemy","Glossary","Package Setup","Front Matter","Relational Database Review","Further Reading"],objnames:{},filenames:["index","glossary","setup","front","relational","reading"]})
+Search.setIndex({objects:{},terms:{osx:2,all:[1,3,4],concept:[1,3,4],jason:[3,5],consider:4,illustr:[1,4,2],queri:[1,0,4],global:[1,4],codd:[1,4],four:[1,4],defining_unique_kei:1,scalar:1,correl:[1,4],abil:4,follow:[1,4],disk:4,ptr:5,row:[1,4],whose:[1,4],privat:4,middl:1,depend:[1,4,2],system:[1,3,2,4],advantag:1,pron:[],elsewher:4,send:3,cach:1,current_timestamp:1,program:[1,3,2],swap:1,sql92:5,sens:[1,4],project_id:1,introduc:[3,4],identitymap:1,emploi:4,sourc:[1,2],everi:[1,4],string:[1,4],area:[1,4],evaul:1,zipchk:1,rise:4,none:4,exc:1,focus:4,util:4,data_manipulation_languag:1,candid:[1,4],volum:5,jack:[1,4],failur:[1,4],veri:[1,3,4],affect:4,implicitli:1,cartesian_product:1,tri:[1,4],foo:1,usa:1,sql_join:1,level:[1,4],list:[1,0,4,5,3],signific:4,handout:[3,0,2],correct:[1,4],"try":[1,4],concurr:[1,4,5],refer:[1,4],ride:1,enterpris:5,data_definition_languag:1,user_account_id:1,user_account:1,core:[1,0,3],natur:[1,4],direct:1,sign:4,jump:4,quickli:4,second:[3,4],mysqldb:1,design:[1,4],aggreg:[1,4],pass:[1,4],download:[3,2],further:[3,0,2,5],acid:[1,0,4],append:1,even:[1,4],index:[1,4,2],what:[1,3,5,4],hide:4,sub:4,compar:1,consistency_:1,section:3,abl:[3,4],brief:4,mysql:[1,4],char_length:1,delet:[1,4],version:[1,3,2,4],primary_kei:1,succinct:1,"new":[1,4],net:1,method:1,metadata:1,ongo:[1,4],elimin:4,full:1,themselv:4,deriv:[1,4],dodg:1,gener:[1,3,4],never:[1,4],here:[1,3,2,4],restat:4,satisfi:4,procur:1,modif:[1,4],address:1,path:[1,3],along:[1,4],vertic:1,modifi:[1,4,5],implicit:1,valu:[1,4],leav:4,invis:1,condit:1,search:4,produc:[1,4],ahead:3,alchemist:4,unboundexecutionerror:1,prior:[3,2],base:[1,3,4],throughput:4,behav:1,within:[1,3,4],social:1,real:1,extrem:3,implement:[1,4,5],transact:[1,3,4],commonli:[1,4],theori:4,synonym:[],employe:[1,4],via:[1,2],depart:[1,4],propag:1,appli:[1,4],modul:1,prefer:2,seven:4,readili:1,vice:1,"boolean":1,calculu:1,visibl:[1,4],instal:[3,0,2],total:1,establish:[1,4],beginin:1,select:[1,4],highli:4,kei:[1,3,4],dorset:5,from:[1,4,2,5],proceed:[1,4],zip:2,memori:[1,4],distinct:[1,4],univers:3,two:[1,3,4],perl:3,msn:1,database_system:1,edward:4,overhead:[1,4],criteria:[1,4],scope:[1,4],type:[1,4],more:[1,3,4],flat:4,minim:[1,4,2],relax:1,peopl:4,hundr:4,claus:[1,4],yahoo:1,site:[3,0,2],visual:4,"transient":1,stick:1,particular:[1,4,2],known:[1,4],central:[1,4],compani:4,role_nam:1,must:[1,4,2],accid:4,account:[1,3,5,4],join:[1,4],augment:1,hous:5,employeeproject:1,car:1,setup:[3,0,2],work:[1,3,2,4],uniqu:[1,4],dev:1,conceptu:1,remain:[1,4],itself:[1,3,2,5,4],obvious:4,can:[1,3,2,4],morgan:5,learn:[3,4],purpos:[1,0,3],fetch:1,def:1,control:[1,4],claim:[4,5],sqlite:[1,4,2],traceback:1,give:4,process:[1,4,2],lock:4,atomicity_:1,nock:5,share:1,indic:[1,4],topic:[4,5],critic:5,minimum:2,want:[1,4],basebal:3,natural_kei:1,phrase:1,serial:[1,4],keep:[1,4],occur:[1,4],contribut:3,low:[1,4],alwai:[1,4],cours:4,multipl:[1,4],goal:3,divid:1,rather:[1,4],anoth:[1,4],get:[1,3,2,4],three:[1,4,5],environ:[1,0,2,3],nyt:1,write:[3,4],concis:1,lifecycl:1,criterion:4,recoveri:1,fourth:5,reject:4,nyc:3,negoti:1,simpl:[1,4],updat:[1,4,2],rollback:[1,4],map:1,product:1,resourc:5,overridden:1,huge:3,max:[1,4],clone:2,after:[1,3,4],variant:[1,4],database_transact:1,reflect:1,befor:[1,4],catalog:1,employee_id:1,mixin:1,commit:[1,4],mai:[1,3,2,4],end:[1,4],redund:1,philosophi:4,data:[1,0,5,4],becom:4,averag:4,period:1,ident:[1,4],attempt:[3,4],practic:[1,3,4],save:1,read:[1,0,4,5,3],bind:1,valid:[1,4],secur:1,explicit:1,correspond:[1,4],descriptor:1,element:4,caus:1,inform:[1,4,2,5],scoped_sess:1,preced:[1,4],combin:[1,4],block:[1,4],allow:[1,3,4],my_us:1,mechan:5,first:[1,4],order:[1,4],talk:1,includ:[1,3,2,4],oper:[1,4],denot:1,composit:[1,4],help:[1,3,4],offici:4,move:1,becaus:[1,4],cross:[1,4],held:1,either:1,through:[1,3,2,4],classifi:1,unique_kei:1,still:4,paramet:1,conjunct:[1,4],group:[1,3,4],monitor:4,how:4,chosen:[1,4],psycopg2:1,fix:[1,4],acid_model:1,kirtland:[3,5],surrogate_kei:1,late:4,platform:3,window:2,pend:1,gem:5,creat:[1,4,2],persist:1,mail:[3,0],hidden:1,main:1,might:[1,4],alter:1,memoiz:1,them:[1,4],good:[3,4,5],"return":[1,4],candidate_kei:1,thei:[1,4,2],reveal:4,python:[1,3,2,4],promin:1,overal:3,initi:1,denorm:4,"break":4,promis:4,terminolog:1,instead:[1,4],front:[3,0],detach:1,hall:5,introduct:[1,0,4,3],term:[1,0,3],retriev:[1,4],name:[1,4],auto:4,edit:[3,5],drop:1,revert:4,instruct:4,mari:1,separ:[1,4],easili:[4,2],slide:[3,0,2],exampl:[1,4,2],isolation_:1,compris:[1,4],each:[1,4],fulli:[1,4],difficult:4,side:[1,4],mean:[1,4],subset:4,domain:5,citat:1,dialect:1,michael:3,individu:[1,4],began:4,idea:[1,3,4],realli:4,contributor:3,linkag:1,fewer:4,begun:1,year:[3,4],distributor:1,our:4,thing:[1,4],event:1,special:[1,2],out:[1,4],variabl:1,expres:1,accomplish:4,attend:3,goe:4,algebra:[1,4],semi:1,primari:[1,4,5],categori:4,suitabl:1,rational:1,emp_id:[1,4],factori:1,empti:4,common:[1,4],proxi:1,insid:[1,4],advanc:1,systemwid:2,manipul:[1,0,4],situat:1,differ:[1,4],omiss:4,standard:[1,4,2,5],reason:4,orm:1,table_2:4,intric:4,dictionari:1,table_1:4,quicki:1,org:[1,3,2,5,4],relat:[1,0,4,3],pycon2013_student_packag:2,upon:[1,4],care:4,kaufmann:5,architectur:[1,5],thread:1,capabl:1,could:[1,4],omit:4,synchron:4,address_obj:1,unavoid:4,filter:4,turn:[1,4],length:1,enforc:4,place:[1,3,4],perman:[1,4],geometri:4,profess:5,confus:[1,4],assign:[1,4],frequent:1,"__delete__":1,origin:[1,4],softwar:[3,4,5],major:[1,3],project_employe:1,martin:1,onc:[1,4],independ:[1,4],uncorrel:1,number:[1,4],thereof:1,yourself:4,tier:1,artistri:4,alreadi:[1,3,4],done:4,least:[1,3,4],plainli:4,subqueri:[1,4],fantast:5,dep_nam:4,size:[1,3],datetim:1,avail:[1,3,2,5],given:[1,4],cartesian:1,smaller:[1,4],durability_:1,convent:[4,5],script:[1,2],associ:[1,4],top:1,creator:1,sometim:[1,4],construct:[1,4],attach:1,necessarili:[],master:[4,2],demonstr:2,statement:[1,4],toolset:3,scheme:4,"final":[3,4],store:[1,4],too:[3,4],consol:4,option:1,relationship:[1,4],tool:[3,4],copi:[3,4],specifi:[1,4],task:[1,3],part:[1,3,2],enclos:1,mostli:1,daunt:4,essenti:[1,3,2,4],exactli:[1,4,5],haven:1,serv:1,wide:[1,3,2,4],liter:1,ben:3,target:[1,4],keyword:[1,4],provid:[1,4,5],gotten:4,remov:[1,4],zero:1,structur:[1,4,5],horizont:1,project:[1,3],matter:[3,0],boil:4,iron:1,were:[1,3,4],edgar_f:1,surrog:[1,4],seri:[1,4],analysi:5,rowset:1,fashion:1,comput:4,abov:[1,4],outcom:1,runner:[3,2],thereaft:1,modern:[1,4],mind:4,argument:[1,4],spent:[1,4],packag:[1,0,2,3],properli:4,expir:1,increment:[1,4],tabl:[1,4],need:[1,4,2,5],seen:1,seem:5,predic:1,dogbert:4,well:[1,3,2,4],uncomplet:1,dbapi:1,issu:4,counter:1,decad:3,engin:[1,4],techniqu:[1,4,2],lib:1,min:[1,4],latter:4,violat:4,note:[1,4],also:[1,4,2],ideal:[1,4],client:1,take:[1,4],which:[1,3,2,4],ad_count:1,green:1,analogu:1,gmail:1,maintain:1,noth:1,channel:[3,0],greatest:2,blue:4,pipelin:4,unless:1,normal:[1,4],track:1,who:[1,3,2,5,4],oracl:3,most:[1,3,2,4],detect:[1,4],portion:[1,3],pair:1,prentic:5,segment:2,"class":[1,3,2],prematur:[],simplic:4,allevi:1,placement:1,correlat:1,url:1,doc:[1,2],clear:1,later:4,cover:3,sale:4,doe:[1,4,2],declar:[1,4],snapshot:1,wildcard:4,fowler:[1,5],dep_id_fk:1,incur:1,constrain:4,left:[1,4,2],cannot:1,fact:4,think:[4,5],somewhat:4,carefulli:4,wikipedia:[1,4,5],bring:1,directli:[1,2],session:1,particularli:4,faster:4,myclass:1,identifi:[1,4],rough:4,tend:[1,4],fine:2,line:[1,4],involv:1,current:[1,4],onli:[1,4],explicitli:1,locat:1,acquir:[1,4],hadn:4,explain:5,print:1,activ:1,state:[1,4],than:[1,4],configur:[1,4,2],latenc:1,dict:1,analyz:4,"__tablename__":1,local:[1,3,2,4],compoment:1,wilei:5,predict:4,nearli:1,variou:2,distinctli:[],familiar:[3,4,2],express:[1,4],stop:1,kind:[1,3,4],addison:5,secondari:1,repl:2,rest:1,report:4,pragmat:4,requir:[1,4,2],layout:2,prime:4,mapper:1,homegrown:3,scene:4,enabl:[1,4],organ:[1,4],yield:4,email:[1,3],expedi:1,stuff:4,integr:4,mediat:1,contain:[1,4,2],demarc:[1,4],"01_engine_usag":2,where:[1,4,2],durabl:[1,4],wrote:3,view:[1,3,4],wiki:[1,4,5],set:[1,4],habit:4,proce:[1,4],knowledg:5,orphan:1,accord:[1,4],displai:4,resist:4,see:[1,4,2],temporarili:1,result:[1,4],respons:1,fail:[1,4],close:1,email_address:1,servic:1,best:[4,2],subject:4,closer:4,awar:4,statu:1,said:1,simultan:1,onto:[1,4],correctli:4,hopefulli:3,databas:[1,0,2,4,3],review:[3,0,4],enumer:1,below:[1,4],debat:4,behind:[1,4],celko:5,had:4,googlegroup:3,between:[1,4,2],call:[1,4,2],"import":[1,4],awai:4,experi:3,approach:1,across:4,attribut:[1,4],assumpt:4,user_obj:1,extend:1,web:[1,0,3],foreignkei:1,style:[1,4,2],isol:[1,4],pypi:2,extens:[1,4],lazi:1,succeed:4,unitofwork:1,unit:[1,4],outer:[1,4],boss:4,come:4,embed:1,thank:3,both:[1,4,5],proofread:3,last:[1,4],expos:4,someth:[1,4],howev:[1,4,2],job:1,martinfowl:1,foreign:[1,4],etc:4,tutori:[1,3,2,4],context:1,logic:[1,4],pdf:2,corrupt:4,whole:[1,4],becam:1,load:[1,4],among:1,unclear:1,revers:[1,4],author:4,figur:4,instanti:1,overview:[0,4],format:2,inher:4,sai:1,subq:1,written:[1,3,4],linux:2,mistak:4,guid:1,sever:[3,2],pycon:0,duplic:[1,4],code:[1,4],better:4,ultim:[1,3],strong:4,java:[3,4],comma:1,eager:1,addition:[1,4],rebuild:2,"__set__":1,compos:[1,4],been:[1,3,5,4],sinc:[1,4],compon:1,accumul:[1,4],behvior:1,much:[3,4],treat:1,untouch:2,basic:[1,3,4],contractor:3,addit:[1,4],date:4,partial:1,strategi:5,box:4,exercis:3,summari:4,great:4,ani:[1,4,2,5],tiger:1,coordin:1,schema:[1,0,5,4],emp_count:4,togeth:[1,4],child:[1,4],"catch":3,fundament:[1,4],repetit:4,repres:[1,3,4],driver:1,former:4,present:[1,0,4,3],"case":[1,4],multi:[1,3,4],schmidt:5,look:[1,4],plain:1,straight:[1,4],properti:[1,4],histor:4,contextu:1,act:4,defin:[1,4],"while":[1,3,2,4],database_norm:[1,4],behavior:[1,4],error:[1,4],glossari:[1,0,4,3],fixtur:4,observ:4,manner:1,earli:1,layer:3,zipcod:1,customiz:1,coher:1,helper:1,applic:[1,3,2,5,4],almost:4,formul:1,deliv:1,therefor:[1,4],non:[1,3,2,4],worri:4,equal:4,techspot:[3,5],middlewar:1,archiv:3,edgar:[1,4],crash:1,avg:4,wherea:[1,4],mvcc:[1,4],"__init__":1,scienc:4,parent:[1,4],nullpool:1,"null":[1,4],develop:4,clearli:5,grant:4,perform:[1,4],impact:[1,4],make:[1,3,2,4],referenti:1,exchang:4,intermediari:[1,4],same:[1,3,4],member:[1,4],walli:[1,4],add:[1,4],instanc:[1,4],largest:1,success:1,document:[1,0,2,4,3],complex:[1,4],conflict:4,higher:4,limit:1,assembl:[4,5],safe:[1,4],http:[1,3,2,5,4],nil:4,equival:1,referenc:[1,4],interrog:1,kju:[],create_engin:1,effect:[1,4],hand:[1,3,4],remot:4,my_sess:1,sliderepl:2,student:[3,4,2],mani:[1,3,5,4],extern:1,immedi:1,studi:4,recent:[1,4,2],lower:4,appropri:[1,4],off:[1,4],advic:5,discourag:1,com:[1,3],thu:1,facad:1,hypothet:4,trofatt:3,thought:5,without:[1,4],command:1,get_bind:1,thi:[0,1,2,3,4,5],choos:4,emp_nam:[1,4],model:[1,0,5,4],ourselv:4,boundari:1,self:1,piec:4,usual:[1,4],protocol:1,entri:1,just:[1,4],less:[1,3,4],erron:1,sound:4,obtain:[1,0,2],tcp:1,risk:4,expung:1,shape:[3,4],venv:2,irc:[3,0],heavili:[1,4],shorthand:1,outlin:4,yet:1,languag:[1,0,4,3],previous:[1,4],begin:1,hai:5,versu:2,now:[1,4,5],easi:2,field:[1,4],interfer:2,autom:1,point:[1,4],makefil:2,except:[1,4],param:1,discuss:4,blog:5,instrument:1,employee_project:1,other:[1,3,2,4],versa:1,citizen:1,input:4,delv:5,subsequ:4,thows:[],latest:[3,2],match:[1,4],build:[1,0,2,4],bin:2,prerequistit:2,inspir:[1,5],varchar:[1,4],around:1,transpar:[1,4],handl:1,big:3,credit:[3,0,5],suppos:[1,4],arguabl:4,test:[1,3,4],built:[1,4,2],leagu:3,grid:1,know:[1,4],elabor:1,world:[1,3],bit:5,characterist:1,color:1,formal:4,loss:1,ignor:1,specif:[1,4],lost:4,arbitrari:4,should:[1,3,4],anyon:5,manual:1,html:[1,2],integ:[1,4],server:[1,3],collect:1,princip:4,api:1,singl:[1,4],have:[1,4,2,5],cascad:[1,4],popular:3,output:[1,4],check_constraint:1,record:[1,4],nest:1,decis:4,stdin:1,underli:1,www:[1,3],instrumentedattribut:1,old:[4,2],often:[1,4],deal:[1,3,4],dilbert:[1,4],interact:[1,4,2],some:[1,3,4],back:[1,4],resolv:[1,4],intern:1,propos:1,unchang:[1,4],flush:1,proper:4,guarante:[1,4],successfulli:[3,4],rel:[1,4],librari:[1,2],registri:1,virtualenv:2,autoflush:1,txt:5,wendi:[1,4],scala:4,"function":[1,4],though:[1,4,2],definit:[1,4],pars:4,per:4,subscrib:3,harrington:5,mimick:4,mathemat:1,larg:[1,3],proj:1,ddl:[1,4],pattern:[1,2,5],backend:1,localhost:1,mode:4,machin:3,weslei:5,encourag:[4,2],object:[1,0,4,5,3],run:[1,3,2,4],complet:[1,3,4],power:1,quit:5,acronym:[1,4],word:1,inspect:[1,4],usag:[1,2],nosql:4,interfac:1,uncommit:4,broken:[1,3,2,4],step:[1,3,2,4],isn:4,emp2:1,prerequisit:[3,0,2],emp1:1,standpoint:1,post:5,zzzeek:[3,2,5],relational_model:1,describ:[1,3,4],scenario:4,comparison:1,about:[1,4,5],pep:1,postgresql:[1,4],would:[1,3,4],constraint:[1,4],column:[1,4],materi:3,commun:4,slightli:1,scott:1,page:4,degre:4,regular:[1,4],foreign_key_constraint:1,constructor:1,fals:1,discard:1,dep_id:[1,4],disabl:1,queuepool:1,own:[1,4],effici:1,rudiment:2,buildabl:[],curiou:1,datatyp:4,backref:1,profession:5,bound:1,automat:[1,4],due:4,down:4,hotli:4,pysqlit:2,right:[1,4],rdbmss:4,sessionmak:1,ensur:[1,3,2,4],chang:[1,4],pgbouncer:1,next:4,storag:[1,4],your:2,smarti:5,manag:[1,4],git:2,fill:1,wai:[1,4],few:4,overus:1,execut:[1,4],support:2,iter:1,custom:[1,2],like:[1,4],start:[1,4,2],reli:4,trigger:[1,4],bayer:3,inner:1,rudimentari:1,replac:1,forward:4,typic:[1,4],strictli:4,deserv:3,entir:[1,3,4],lambda:1,lowest:[1,4],creation:[1,5],toward:3,form:[1,4],offer:1,tupl:1,recommend:2,transat:[],continu:4,content:[0,2,4],sqlalchemi:[0,1,2,3,4,5],link:[1,4],gain:2,atom:[1,4],don:[1,4,2],overflow:1,highest:4,"true":[1,4],freenod:3,"__get__":1,count:[1,4],succe:4,made:[1,4],dirti:4,consist:[1,4],possibl:[1,4,2],whether:1,wish:1,directori:2,access:[1,4,2,5],dml:[1,0,4],flip:4,lead:1,insert:[1,4],data_1:1,unusu:4,those:[1,3,2,4],unlik:4,lazyload:1,sum:4,otherwis:4,problem:1,deadlock:4,similar:[1,4],emit:[1,4],connect:1,serializ:4,boldli:4,classif:1,featur:[1,4,2],evalu:[1,4],classic:[1,5],certain:1,"abstract":[1,3],threadloc:1,meaningless:4,doesn:[1,4],drive:4,strongli:[4,2],chanc:4,plu:1,intro:1,exist:[1,4],file:[1,2,5],request:1,encompass:4,face:4,check:[1,4],discorpor:3,spend:[3,4],phantom:4,again:4,mutual:1,misunderstood:[1,4],against:[1,4],titl:5,user:1,when:[1,4],detail:[1,3,5],virtual:3,orient:5,"_codd":1,"default":[1,2],book:5,role:1,rdbm:[1,4],rememb:4,varieti:[1,4],hibern:1,tech:1,you:[1,4],roll:4,eaacatalog:1,realiti:1,autocommit:1,draw:4,repeat:[1,4],intend:1,determin:[1,4],jek:3,sprawl:5,actual:[1,3,4],sequenc:1,improv:4,googl:3,meaning:4,scale:4,consid:[1,4],sql:[1,3,5,4],throughout:[1,4],hat:4,peac:4,pool:1,network:[3,2,5],reduc:[1,4],bitbucket:2,receiv:[1,3,4],sphinx:2,longer:4,wherebi:[1,4],unload:1,anywher:1,accept:4,reliabl:1,lot:[3,4],multiversion_concurrency_control:1,rule:[1,4],reciev:1,depth:1,mass:1,invok:[1,4],time:[1,3,4],far:1},objtypes:{},titles:["PyCon 2013 - Introduction to SQLAlchemy","Glossary","Package Setup","Front Matter","Relational Database Review","Further Reading"],objnames:{},filenames:["index","glossary","setup","front","relational","reading"]})

File handout/setup.html

 using the makefile <tt class="docutils literal"><span class="pre">handout/Makefile</span></tt>.</li>
 <li>Interactive Python &#8220;slide runner&#8221; application, which
 is essentially a customized <a class="reference external" href="http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop">REPL</a>
-that can step through segments of a Python script</li>
+that can step through segments of a Python script.</li>
 <li>Demonstration Python scripts which illustrate various features
 of SQLAlchemy; these scripts are formatted to work best with the
 &#8220;slide runner&#8221; application, though can be run directly as

File handout/source/glossary.rst

         will be permanently available following the ``COMMIT`` statement.
 
     rollback
-        Denotes a premature end to a :term:`transaction` which reverses
+        Denotes the end to a :term:`transaction` which reverses
         all the effects of the transaction that have proceeded thus far; the
         state established within the transaction is discarded.   In SQL,
         this is normally denoted using the ``ROLLBACK`` statement:
 
     Structured Query Language
     SQL
-        SQL (pron.: /s kju l/ "S-Q-L";[3] or Structured Query
-        Language) is a special-purpose programming language designed
+        A special-purpose programming language designed
         for managing data in relational database management systems
         (RDBMS).
 
         are swapped.  At least
         one row will be returned for every row in the right table, and
         columns from the left row will be filled with NULL if the ON
-        criteria does not match.  In SQLAlchemy, outer joins are left
-        outer joins.
+        criteria does not match.  Right outer joins are not frequently
+        used.
 
     subquery
         A ``SELECT`` statement embedded in another ``SELECT`` statement.  Data

File handout/source/relational.rst

 organized into simple primary and foreign key relationships, that's often
 a sign that it isn't strongly normalized.
 
-The `Wikipedia page on normalization <http://en.wikipedia.org/wiki/Database_normalization>`_
+The Wikipedia page on normalization (http://en.wikipedia.org/wiki/Database_normalization)
 is a great place to learn more.
 
 
 ----------------------
 
 It's very helpful (at least the author thinks so) to keep straight exactly
-how ``SELECT`` goes about its work when given a combination of aggregation and 
+how ``SELECT`` goes about its work when given a combination of aggregation and
 clauses (such as ``WHERE``, ``ORDER BY``, ``GROUP BY``, ``HAVING``).
 
 Given a series of rows::
 ==========
 
 The flip side to the relational model employed by relational databases is the
-so called :term:`transactional` model most of them provide.   The acronym :term:`ACID` 
+so called :term:`transactional` model most of them provide.   The acronym :term:`ACID`
 refers to the principal properties of relational database transactions
 (as well as transactions for any kind of hypothetical database).
 
 it's too late.   This "peace of mind" allows us to write and test our applications
 more quickly and boldly than we would be able to otherwise; more quickly because
 the relational database already does lots of the integrity checking we'd otherwise
-have to write by hand, and more boldly because we can produce test code more
-quickly without as much risk of corrupting our data as if we hadn't used constraints.
+have to write by hand, and more boldly because there is much less chance
+that code errors can result in corruption of data as if we hadn't used constraints.
 
 .. _isolation:
 

File handout/source/setup.rst

 
 * Interactive Python "slide runner" application, which
   is essentially a customized `REPL <http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`_
-  that can step through segments of a Python script
+  that can step through segments of a Python script.
 
 * Demonstration Python scripts which illustrate various features
   of SQLAlchemy; these scripts are formatted to work best with the