Tiếp theo của phần 1: https://tuananalytic.com/website-de-tu-hoc-data-analytics-phan-1/
Table of Contents
Vì sao phải hiểu các khái niệm về database?
Tiếp tục với chủ đề tự học SQL hôm trước, mình có một bổ sung nhỏ mà cá nhân mình cảm thấy có thể giúp ích cho các bạn tự học.
Như các bạn biết, SQL là một ngôn ngữ dành cho Database, hệ thống dữ liệu. Như vậy, bạn muốn thực hành query dữ liệu trên SQL thì phải tự set up một SQL Database. Việc này không hề khó, cái khó nhất chính là sự bỡ ngỡ khi xắn tay áo lên làm việc này. Lí do: bạn không có tí khái niệm gì về việc này, port là cái gì? server là sao? client là gì? workbench mở rồi sao không chạy được file
—–> Bỏ cuộc (oh no no no)
May mắn thay hôm nay mình sẽ giải thích một số khái niệm để giúp việc này dễ hơn cho các bạn. Mình sẽ liệt kê chỉ một vài khái niệm thôi nhưng vô cùng cốt lõi, giúp bạn tiết kiệm thời gian tự học đáng kể.
Các khái niệm thường gặp
Client và Server
Việc khó khăn đầu tiên khi bạn cố gắng tải từ internet về “phần mềm MySQL/ PostgreSQL/….” đó chính là khi bạn tải các “phần mềm” này về, nó chả có giao diện gì cả, dùng theo hướng dẫn thì toàn là gõ lệnh bên trong một cái màn hình gõ lệnh đen xì, nhìn có vẻ không giống với những hướng dẫn trên mạng (Giao diện đẹp đẽ, nhiều tính năng).
Lí do là vì bạn đang sử dụng phần mềm dành cho SERVER . Giao diện của phần mềm dành cho Server rất hạn chế, vì phần mềm cho Server chủ yếu để nhận lệnh từ bên ngoài vào, lưu dữ liệu lại, và chỉ có giao diện CLI (Giao diện gõ lệnh) cho trường hợp khẩn cấp nếu người quản trị server cần dùng.
Để điều khiển cái database này, chúng ta không nên sử dụng trực tiếp CLI, mà nên kết nối với nó từ bên ngoài bằng một phần mềm gọi là CLIENT.
Client sẽ kết nối với phần mềm Server ( Đại khái thế haha ), và sẽ chỉ cho phần mềm server này phải làm gì, nhập lệnh vào đâu, với giao diện đẹp đẽ chứ không chỉ toàn câu lệnh. Client trông tương tự như bên dưới, với cấu trúc server bên trái, dữ liệu bên phải, và đôi khi có nơi nhập lệnh.
Khoan!
Vậy khi chúng ta nói các loại SQL như MySQL, PostgreSQL, SQL Server,… chúng ta đang nói đến loại phần mềm nào?
Khi chúng ta nói các loại SQL đó chúng ta đang nói đến phần Server, không phải client. Cho nên khi bạn tải Client, bạn sẽ thấy tên của các Client SQL chả liên quan gì đến những tên tuổi ở trên cả. Cụ thể mình lấy ví dụ một SQL Client bên dưới tên là DBeaver .
DBeaver hỗ trợ các database dùng JDBC. Do MySQL cũng dùng JDBC -> DBeaver kết nối được với MySQL.
Như vậy chúng ta có học MySQL như sau: DBeaver SQL Client ——–connect ——> MySQL Server. Viết SQL trên DBeaver, không phải phần mềm server nhé. Ngoài DBeaver còn nhiều phần mềm nổi tiếng nữa mình xin liệt kê một số ví dụ:
- DBeaver: https://dbeaver.io/
- Workbench: https://www.mysql.com/products/workbench/
- Online SQL client (Không cần tải): https://sqliteonline.com/
Address, IP và Port
Address và IP
Ba khái niệm này có vẻ quen thuộc, vì hiện nay chúng ta đều sử dụng internet và quen thuộc với địa chỉ web, ip, có port có thể có 1 tí xa lạ.
Chúng ta sẽ nói tới Address và IP trước nhé. Như các bạn có thể thấy, address chính là địa chỉ của server.
Nhưng IP cũng là …”địa chỉ” của server vậy khi nào là address khi nào là IP.
Khi bạn nhập địa một trang web vào, ví dụ tuananalytic.com bạn sẽ được trỏ về IP của website , mình chưa check nên ví dụ thôi nhé: tuananalytic.com —> 111.111.111.111
Như vậy, có thể cơ bản nói address hay IP là tương tự nhau, chỉ đơn giản là address nhìn đẹp hơn, và cuối cùng sẽ trả về IP cho bạn truy cập.
Vậy còn port
Giả sử như bạn truy cập vào một IP, nó giống như bạn đi vào một căn nhà có nhiều phòng, mỗi phòng này chúng ta gọi là một port.
Chúng ta có rất nhiều port trong căn phòng IP này, tuy nhiên không phải phòng nào cũng mở khoá, bạn chỉ có thể vào được căn phòng nào mà không khoá thôi. Ví dụ trong hình trên, chúng ta có căn nhà 111.111.111.111 chỉ mở phòng port 80, còn khi chúng ta có vào phòng port 900, sẽ không vào được.
Vậy nó liên quan gì database
Khi các bạn cài đặt một SQL server, phần mềm sẽ hỏi bạn bạn muốn chạy trên port nào ( IP chính là IP của máy bạn chạy phần mềm – nếu như bạn dùng server). Bạn sẽ chọn port bạn muốn server bạn chạy ( đặt SQL server của bạn vào căn phòng port như trong ví dụ phía trên).
Khi bạn sử dụng SQL Client, bạn có thể điền thông tin của Server với một số gợi ý sau:
- Nếu Server chạy trong máy của bạn (không phải máy khác ): Address = localhost ( Port thì do bạn tự set up server nên phải biết )
- Nếu Server được một người khác chạy: Hỏi người này có address hay IP không, và họ đang mở port nào .
Kết
Dù chỉ là một số khái niệm đơn giản, bạn có thể tiết kiệm được rất nhiều thời gian cho việc đi lanh quanh tìm hiểu. Mình mong có thể giúp đỡ một số bạn đang bắt đầu học SQL mà vẫn còn bỡ ngỡ bởi các khái niệm này.
Sau khi bạn đã hiểu được sự tách bạch của Client và Server cũng như cơ bản về IP và port, bạn có thể hoàn toàn tự tin set up một sql server trong máy, tải một client về và bắt đầu học sql thôi !
Các bạn đón đọc Phần 3: Hướng dẫn set up một sqlite server đơn giản nhé.
Cảm ơn các bạn.