วันเสาร์ที่ 16 เมษายน พ.ศ. 2559

PostgreSQL

          PosgreSQL เป็น Object-Relational DBMS โดยสามารถใช้รูปแบบของภาษา SQL ได้เกือบทั้งหมดและยังเป็น Open-source
ขอจํากัดของ PostgreSQL

  • ขนาด database: ไมเกิน 60GB 
  • ขนาดตารางขอมูล(table) ไมเกิน 64 TB ในระบบปฏิบัติการทุกระบบ
  • ขนาดของขอมูลแตละรายการ(row):ไมจํากัด ตั้งแต Version 7.1 ขึ้นไป
  • ขนาดของขอมูลแตละ field : 1GB ตั้งแต Version 7.1 ขึ้นไป
  • จํานวนรายการ(rows) ในตารางขอมูล(table) : ไมจํากัด
  • จํานวน columns ในตารางขอมูล(table): 1600 columns
  • จํานวน indexes ในตารางขอมูล(table) : ไมจํากัด

การตั้งชื่อ
  • ตนดวยตัวอักษรหรือ underscore(_) 
  • ความยาวไมเกิน 31 ตัวอักษร
  • ไมซ้ำกับ reserve word 
  • ชื่อที่อยูในประเภทเดียวกันตองไมซ้ำกัน เชน ƒชื่อ Table ที่อยูใน Database เดียวกันตองไมซ้ำกัน ƒ ชื่อ Column ที่อยูใน Table เดียวกันตองไมซ้ำกัน ƒ ชื่อ Index ที่อยูใน Database เดียวกันตองไมซ้ำกัน

how to install postgresql

ก่อนการ install postgresql ควร  update ก่อน
apt-get update
sudo apt-get install postgresql postgresql-contrib
หลังจาก install postgresql ต่อไปเป็นการใช้งาน

how to use postgresql

พิมพ์
          " \h "  เพื่อดูวิธีการใช้งานเบื้องต้น
          " \q "  เพื่อออกจาก
          " \l "  เพื่อแสดงดาต้าเบสทั้งหมดที่มีอยู่
          " \c  ์NameDatabase"  เพื่อเลือกการเข้าถึงดาต้าเบส(เชื่อมต่อ)
          " \d "  เพื่อแสดงตารางต่างๆที่มีอยู่ในดาต้าเบส
          " \d+ NameTable "  เพื่อแสดงรายละเอียดต่างๆ ที่มีอยู่ในตารางที่ต้องการทราบ( NameTable) ซึ่งจะประกอบไปด้วยชื่อคอลัมต่างๆ, ชนิดของข้อมูลที่ทำการเก็บในแต่ละคอลัม, ระบุ primary key Attribute ไหน , foreign key อะไรบ้างและแสดงการอ้างอิงไปยังตารางอื่นๆ

            ER diagram ที่นำมาจากหนังสือ Database Systems - Design, Implementation, and Management (9th Edition) Carlos Coronel, Steven A. Morris, Peter Rob ISBN: 0538469684

รูปภาพแสดง ER diagram ของระบบ inventory transaction
การใช้งาน PostgreSQL : https://spalinux.com/2011/01/learn_to_use_postgresql


- create databases

$ createdb nameDatabase
รูปภาพแสดงการสร้างฐานข้อมูลและการแสดงฐานข้อมูลต่างๆ โดยใช้คำสั่ง \l
           จากนั้นใช้คำสั่ง \c inv_trans เพื่อเข้าไปยังฐานข้อมูลของ inv_trans หรือเราอาจใช้คำสั่งต่อไปนี้ก็ได้เหมือนกัน 
$ psql testdb
- create tables

$ create table ชื่อตาราง (ชื่อคอลัมนชนิดขอมูล, ...); 
รูปภาพแสดงการสร้างตารางต่างๆของดาต้าเบส inv_trans

how to install psycopg2 

เนื่องจากในเครื่องไม่มี pip จึงทำคำสั่งต่อไปนี้เพื่อลง python-pip ซะก่อน
sudo apt-get install python-pip
จากนั้นทำตามคำสั่งต่อไปนี้เพื่อลง psycopg2
sudo apt-get update
sudo apt-get install libpq-dev python-dev
sudo pip install psycopg2
          psycopg2 เป็น library ของ python ที่ใช้สำหรับการติดต่อกับดาต้าเบสของ PostgreSQL โดยเราจะนำมาใช้ในการ insert ข้อมูลให้กับแต่ละตาราง

how to insert data

          เราจะใช้โค้ด python ในการ insert ข้อมูล


compare Sqlite Mysql and PostgreSQL

          
file size :
         
         Sqlite : 6.44GB
         Mysql : 
         PostgreSQL : 13GB


references link :
install postgresql : https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-12-04
install psycopg2 : http://stackoverflow.com/questions/11583714/install-psycopg2-on-ubuntu
generate data : http://initd.org/psycopg/docs/usage.html