วันอังคารที่ 27 กุมภาพันธ์ พ.ศ. 2561

W7 Edit Week 6 SQlite

W7 Edit Week 6 SQlite

คำสั่ง SQL ที่ใช้

select * from transcript where gpa = 'A' limit 1000000
ใช้เวลา  3422ms = 3.422s

select * from transcript where gpa = 'B' limit 1000000
ใช้เวลา  3482ms = 3.482s

select * from transcript where gpa = 'D' limit 1000000
ใช้เวลา  3244ms = 3.244s

select * from transcript limit 10000
ใช้เวลา  18ms = 0.018s

select * from transcript limit 100000
ใช้เวลา  177ms = 0.177s

select * from transcript limit 1000000
  
ใช้เวลา  1774ms = 1.774s

select * from transcript limit 10000000
ใช้เวลา  22972ms = 22.972s

What have you done/learned


- ได้เรียนรู้ว่า where ใข้เวลา นาน กว่า การ query ปกติโดย fix row ที่ได้

Problem/Solution


- การทำข้อมูลให้เหมือนกัน แก้โดยการทำ data กลางแล้ว copy ให้เหมือนกัน

Decision


- ตัดสินใจเอา คำสั่งให้เหมือนกันทั้งหมด และ ข้อมูลชุดเดียวกัน

Related Info/link/reference


- link ref  sqlite : https://sqlite.org/cli.html
- link ref sql language : https://www.w3schools.com/

W6 Big DATABASE file SQlite

W6 Big DATABASE file SQlite 


ใช้ insert จาก JS
ผลจาก Insert 100000 rows
ใช้เวลานานเกินไปเลยเปลี่ยนมา  import CSV แทน
ทำโปรแกรม generate CSV

ทำ การ Import CSV ได้ แค่ 50 M rows ก็ คอมค้าง ที่ 16 M ใช้เวลานานประมาน 6-8 นาที

เมื่อ file มีขนาดใหญ่ต้องใช้ command ที่ 250M rows ยังไม่มีปัญหา import ประมาน 6-8 นาที

ลอง Query เมื่อมีข้อมูลใน DB เยอะ โดยใช้ JavaScript

100000 rows ( 643 ms )


1000000 rows ( 6214 ms ~ 0.6 s)


10000000 rows เกิด Error เลย ใช้ ตัวอื่น

ลอง Query เมื่อมีข้อมูลใน DB เยอะ โดยใช้ DB browser


ลอง Query เมื่อมีข้อมูลใน DB เยอะ โดยใช้ command


What have you done/learned


- รู้ว่าเมื่อมีข้อมูลเยอะจะเกิดอะไรขึ้น เช่น คอมช้าลง คอมค้าง 

Problem/Solution


- คอมช้าลง คอมค้าง แก้ตามสถานการ
- generate csv เวลาใช้คำสั่ง write ลง csv ได้ไม่เกิน 5 Mบรรทัด แล้ว เกิดการ ram ไม่พอ แก้ไขโดย ใช้ append ทีละ 5ล้านเลือยๆ จนครบ 200M

Decision


- ตัดสินใจ ใช้การ import CSV 

Related Info/link/reference


- link ref node js : https://nodejs.org/api/index.html 
- link ref import csv sqlite : https://sqlite.org/cli.html
- link ref sql language : https://www.w3schools.com/

วันพุธที่ 14 กุมภาพันธ์ พ.ศ. 2561

W5 ER Diagram the music database

 ER Diagram The Music Database


The Music Database
The music database stores details of a personal music library, and could be used to manage your MP3, CD




One artist can make many albums . Conversely, an album is by one artist.
Which has an artist_id attribute that uniquely identifies it.





One album can contain many tracks . Conversely, a track is on one album.

Each Album entity is uniquely identified by its album_id combined with the artist_id of the corresponding Artist entity
.


One track can be played many times . Conversely, each play is associated with one track

A Track entity is similarly uniquely identified by its track_id combined with the related album_id and artist_id attributes. The Played entity is uniquely identified by a combination of its played time, and the related track_id, album_id, and artist_idattributes.


What have you done/learned


- รู้การสร้าง ER digram

Problem/Solution


- วาดรูปลำบาก แก้ โดยวาดรูป ลง google slide 

Decision


- ตัดสินใจเอาตัวย่าง the music database

Related Info/link/reference


- link ER diagram :  ลิ้งค์

วันอังคารที่ 6 กุมภาพันธ์ พ.ศ. 2561

W 4 USE DBMS SQLite และ ทำ code javascript กับ SQLite

USE DBMS SQLite และ ทำ code javascript กับ SQLite

ผลการค้นหารูปภาพ


ใช้ DBMS MySQL ในการสร้าง database และ table ในการเก็บข้อมูล
และลองการ INSERT,SELECT,DELETE,UPDATE,JOIN

ผลการค้นหารูปภาพสำหรับ DB Browser for SQLite

ใช้ program DB Browser for SQLite เพื่อทำการลองทดสอบคำสั่งของ SQL

ใช้ Java script ในการทำงานกัน SQLite

ตารางที่ได้ ออก แบบ



Code ส่วน Insert

Insert Transcript

.

Insert Student


Select * from table


cmd คือคำสั่งมี่สั่งเข้า sql แล้วได้ตามที่ออก มา


delete แถวใน table ทั้งหมด



Result

Transcript Table


Student Table


Course Table






Problem/Solution



- ใช้ Javascript ติดต่อกับ SQLite ต้องทำการติดตั้งโมดูล แก้ปัญหาโดยต้อง ดาวโหลดโดยใช้ npm ของ node js
- เมื่อเรา insert ข้อมูลลง Sqlite แล้ว ไม่เกิด การติด foriegn key แก้คือ ใส่ PRAGMA foreign_keys = ON

แล้วจะ insert ข้อมูลไม่ได้

Decision


- ใช้ Java script + node js ในการทำงาน

Related Info/link/reference



- reference w3school  https://www.w3schools.com/sql/
- reference JadeJS  http://jade-lang.com/
- reference ExpressJS  http://expressjs.com/en/api.html
- reference JQuery  https://api.jquery.com/

: : RESULT : :
- link PDF slide : pdf link
- link Git : https://github.com/tapetop18135/DBweekkk4
- link Heroku :  https://week4database.herokuapp.com/