Giới thiệu về cơ sở dữ liệu

Nạp dữ liệu gọn nhẹ với pandas

Amany Mahfouz

Instructor

Cơ sở dữ liệu quan hệ

  • Dữ liệu về thực thể được tổ chức trong các bảng
  • Mỗi hàng (bản ghi) là một trường hợp của thực thể
  • Mỗi cột chứa thông tin về một thuộc tính
  • Bảng có thể liên kết với nhau qua khóa duy nhất
  • Hỗ trợ nhiều dữ liệu, nhiều người dùng đồng thời, và kiểm soát chất lượng dữ liệu
  • Kiểu dữ liệu được chỉ định cho từng cột
  • SQL (Structured Query Language) để tương tác với cơ sở dữ liệu
Nạp dữ liệu gọn nhẹ với pandas

Các hệ CSDL quan hệ phổ biến

Logo Microsoft SQL Server

Logo Oracle

  • Cơ sở dữ liệu SQLite là các tệp trên máy tính

Logo PostgreSQL

Logo SQLite

Nạp dữ liệu gọn nhẹ với pandas

Kết nối tới cơ sở dữ liệu

  • Quy trình hai bước:
    1. Tạo cách kết nối tới cơ sở dữ liệu
    2. Truy vấn cơ sở dữ liệu

Hình minh họa cơ sở dữ liệu

Nạp dữ liệu gọn nhẹ với pandas

Tạo Database Engine

Logo SQLAlchemy

  • create_engine() của sqlalchemy tạo engine quản lý kết nối cơ sở dữ liệu
    • Cần chuỗi URL của cơ sở dữ liệu để kết nối
    • Định dạng URL SQLite: sqlite:///filename.db
Nạp dữ liệu gọn nhẹ với pandas

Truy vấn cơ sở dữ liệu

  • pd.read_sql(query, engine) để nạp dữ liệu từ cơ sở dữ liệu
  • Tham số
    • query: Chuỗi chứa truy vấn SQL hoặc tên bảng cần nạp
    • engine: Đối tượng engine/kết nối cơ sở dữ liệu
Nạp dữ liệu gọn nhẹ với pandas

Ôn SQL: SELECT

  • Dùng để truy vấn dữ liệu từ cơ sở dữ liệu
  • Cú pháp cơ bản:
    SELECT [column_names] FROM [table_name];
    
  • Lấy toàn bộ dữ liệu trong một bảng:
    SELECT * FROM [table_name];
    
  • Quy ước code: từ khóa VIẾT HOA, dấu chấm phẩy (;) kết thúc câu lệnh
Nạp dữ liệu gọn nhẹ với pandas

Lấy dữ liệu từ cơ sở dữ liệu

# Nạp pandas và create_engine của sqlalchemy
import pandas as pd
from sqlalchemy import create_engine

# Tạo engine cơ sở dữ liệu để quản lý kết nối engine = create_engine("sqlite:///data.db")
# Nạp toàn bộ bảng weather bằng tên bảng weather = pd.read_sql("weather", engine)
Nạp dữ liệu gọn nhẹ với pandas
# Tạo engine cơ sở dữ liệu để quản lý kết nối
engine = create_engine("sqlite:///data.db")

# Nạp toàn bộ bảng weather bằng SQL weather = pd.read_sql("SELECT * FROM weather", engine)
print(weather.head())
       station                         name  latitude  ...   prcp  snow  tavg tmax  tmin
0  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         52    42
1  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    39
2  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    42
3  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         51    40
4  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.75   0.0         61    50

[5 rows x 13 columns]
Nạp dữ liệu gọn nhẹ với pandas

Ayo berlatih!

Nạp dữ liệu gọn nhẹ với pandas

Preparing Video For Download...