3. http://techmaster.vn
Một số khái niệm cơ bản
• Database – Cơ sở dữ liệu
• Table – Bảng dữ liệu
• SQL (Structured Query Language): Ngôn ngữ
truy vấn và thao tác dữ liệu
– Thêm, sửa, xóa dữ liệu
– Truy vấn dữ liệu
4. http://techmaster.vn
Chuẩn hóa dữ liệu
1. First Normal Form (1NF)
2. Second Normal Form (2NF)
3. Third Normal Form (3NF)
Chuẩn hóa dữ liệu giúp giảm thiểu dữ liệu dư thừa
và giúp dễ dàng thao tác với dữ liệu.
5. http://techmaster.vn
Chuẩn hóa dữ liệu
Ví dụ một bảng dữ liệu chưa chuẩn hóa về
thông tin của các sinh viên và môn học
Cột Subject có chứa các nhóm thông tin trên cùng 1 dòng (Biology, Maths)
=> Gây khó khăn khi truy vấn, cập nhật CSDL
6. http://techmaster.vn
First Normal Form (1NF)
Chuẩn hóa lại theo chuẩn 1NF
Sử dụng cả 2 cột Student và Subject để làm khóa chính, tách dữ liệu ra nhiều dòng
=> Dễ cập nhật, truy vấn CSDL nhưng làm tăng dữ liệu dư thừa
7. http://techmaster.vn
Second Normal Form (2NF)
Theo chuẩn 2NF: Tách bảng Student ra làm 2 bảng
Chứa thông tin về
tuổi của student
Chứa thông tin về
môn học của student
8. http://techmaster.vn
Third Normal Form (3NF)
Ví dụ một bảng dữ liệu theo chuẩn 2NF, có chứa
thông tin về sinh viên và địa chỉ của sinh viên
Bảng có khóa chính là Student_id. Tuy nhiên các thuộc tính Street,
City, State lại phụ thuộc vào Zip
9. http://techmaster.vn
Third Normal Form (3NF)
Theo chuẩn 3NF, các thuộc tính trong bảng đều phải
phụ thuộc vào khóa chính => Tách làm 2 bảng
Bảng Student có khóa chính là Student_id
Bảng Address có khóa chính là Zip, liên kết với bảng Student qua trường Zip
10. http://techmaster.vn
Cài đặt Postgres
• Tải Postgres tại:
http://www.postgresql.org/download/
• Với MacOSX có thể sử dụng Postgres App:
http://postgresapp.com/
11. http://techmaster.vn
Postgres App
Open psql command và sử dụng
lệnh create user để tạo thêm user
và gán quyền truy cập cho user đó
Tạo tài khoản techmaster với mật khẩu là 123456 và có quyền tạo cơ sở dữ liệu (createdb)
14. http://techmaster.vn
Kiểu dữ liệu trong Postgres
• http://www.postgresql.org/docs/9.4/static/datatype.html
• Một số kiểu dữ liệu cơ bản thường dùng:
– Kiểu số: integer, smallint, bigint, serial, smallserial, bigserial, double
precision
– Kiểu ký tự: character, character varying, text
– Kiểu datetime: date, timestamp with time zone, timestamp without time
zone
– Kiểu boolean: boolean
– Kiểu json: json, jsonb
23. http://techmaster.vn
Truy vấn dữ liệu
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ [ AS ] output_name ] [, ...]
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ]
[ LIMIT { count | ALL } ]
[ OFFSET start [ ROW | ROWS ] ]
24. http://techmaster.vn
Truy vấn dữ liệu sử dụng JOIN query
• INNER JOIN (Viết tắt là JOIN)
• FULL OUTER JOIN (Viết tắt là OUTER JOIN)
• LEFT OUTER JOIN (Viết tắt là LEFT JOIN)
• RIGHT OUTER JOIN (Viết tắt là RIGHT JOIN)
• CROSS JOIN
25. http://techmaster.vn
Aggregate Functions
• Danh sách Aggregate functions trong Postgres:
http://www.postgresql.org/docs/9.4/static/functions-aggregate.html
• Một số Aggregate functions hay dùng:
– Count(expression)
– Sum(expression)
– Avg(expresssion)
– Min(expression), Max(expression)