Language (SQL) is not the only/preferred database language or unavailable Alternative to Relational Database Management Systems (RDBMS) Data manipulation using object-oriented APIs Open-source
standard Example using HTTP (Hypertext Transfer Protocol) methods Collections: h t t p : / / e x a m p l e . c o m / u s e r s / Entities: h t t p : / / e x a m p l e . c o m / u s e r s / u s e r 1 Method GET PUT POST DELETE Action Read Create/Update Insert Delete
e " : " P e t e r " , " a g e " : 3 4 , " b o o k s " : [ { " t i t l e " : " M a k e N o i s e " , " a u t h o r " : " P o p e F r a n c i s " } , { " t i t l e " : " H a r r y P o t t e r a n d t h e C h a m b e r o f S e c r e t s " , " a u t h o r " : " J . K . R o w l i n g " } ] }
(i.e. in the browser or Node.js) Emulates CouchDB’s API Data is stored locally (IndexedDB/Web SQL) Sync to CouchDB/offline support Asynchronous API (Promise-based) http://pouchdb.com
a r d b = n e w P o u c h D B ( ' h t t p : / / l o c a l h o s t : 5 9 8 4 / s t u d e n t s ' ) ; v a r s t u d e n t = { _ i d : " n e u s t u d e n t " , f i r s t N a m e : " " , n a m e : " " , a g e : 3 7 } ; d b . p u t ( s t u d e n t ) . t h e n ( f u n c t i o n ( ) { r e t u r n d b . g e t ( s t u d e n t . _ i d ) ; } ) . t h e n ( f u n c t i o n ( r e s ) { a l e r t ( J S O N . s t r i n g i f y ( r e s ) ) ; } ) ; R u n!