- vừa được xem lúc

[Declarative Programming + SQL] Bài 1 - RDBMS & MySQL

0 0 15

Người đăng: Semi Art

Theo Viblo Asia

Mô hình lập trình thứ hai trong Series Một Số Mô Hình Lập Trình Phổ BiếnDeclarative Programming, cũng đã được giới thiệu qua bài viết Imperative & Declarative của Series Tự Học Lập Trình Web mà mình đã thực hiện trước đó.

Ở phần này thì mình chọn SQL là ngôn ngữ để tìm hiểu song song với việc giới thiệu lại Declarative Programming; Tuy nhiên do phần giới thiệu ở Series JavaScript cũng rất tổng quát rồi nên mục đích chủ yếu của Sub-Series này mình sẽ để dành tìm hiểu về ngôn ngữ SQL và sử dụng RDBMS - môi trường ứng dụng chính của ngôn ngữ này.

RDBMS là ...

Tên viết tắt của Relational DataBase Management System - trong đó thì cái Relational DataBase đã được giới thiệu trong Sub-Series Database nếu như bạn đã đồng hành cùng mình từ Series Tự Học Lập Trình Web. Và tại Sub-Series Database đó thì chúng ta cũng đã viết một phần mềm Management System nho nhỏ để quản lý một cái Relational DataBase đơn giản - sử dụng cho trang blog cá nhân đang xây dựng ở thời điểm đó.

Trong trường hợp bạn đến với bài viết này từ một nguồn tìm kiếm nào đó kiểu như Google hay Bing thì đây là định nghĩa ngắn gọn cho cái RDBMS:

  • Relational DataBase - là một cơ sở dữ liệu mà các bản ghi dữ liệu có sự lệ thuộc lẫn nhau. Ví dụ là bản ghi A sẽ cần tham chiếu tới bản ghi B để có thêm thông tin chi tiết về một trường dữ liệu nào đó mô tả cho bản ghi A.
  • Management System - là một phần mềm được thiết kế để quản lý cái Relational DataBase ở phía trên. Bạn có thể tự viết một cái nếu muốn, hoặc tìm một cái đã được viết sẵn bởi các lập trình viên rất rất giỏi để sử dụng.

Vậy một cái RDBMS về cơ bản là bao gồm có hai thành phần như trên; Và đứng từ vị trí người sử dụng thì chúng ta cần tìm hiểu nhiều hơn về cái Management System. Cụ thể là khi nhắc tới RDBMS người ta thường nghĩ tới các phần mềm phổ biến sử dụng chung một ngôn ngữ giao tiếp tiêu chuẩn tên là SQL; Ví dụ như phần mềm SQL Server - Microsoft, MySQL- Oracle, PostgreSQL, Oracle SQL, MariaDB, v.v...

Hãy tạm chưa nói tới ngôn ngữ SQL. Các phần mềm quản trị dữ liệu này đều có một thiết kế chung đó là được thiết kế ở dạng một HTTP server. Khi khởi chạy thì phần mềm quản trị database sẽ chờ yêu cầu được gửi tới và phản hồi lại kết quả ở dạng chuỗi mô tả dữ liệu truy vấn được. Tức là thứ mà chúng ta sẽ học cách sử dụng là giao diện lập trình API do các phần mềm RDBMS cung cấp. Và ở đây thì mình chọn một cái RDBMSMySQL đang thuộc sở hữu của Oracle, để phục vụ cho mục đích học tập khởi đầu.

Cài đặt MySQL Sever

Oracle có cung cấp một phiên bản MySQL miễn phí có thể được tải về tại đây: MySQL Community. Nếu bạn đang sử dụng một bản phân phối Linux nào đó thì có mấy lựa chọn đầu tiên để thêm thư viện các bộ cài MySQL cho APT, YUM, SUSE, v.v... Còn nếu bạn đang sử dụng Windows thì có cái lựa chọn MySQL Installer for Windows ở phía bên dưới để tải về tệp cài đặt tự động.

Thao tác cài đặt trên các hệ điều hành có thể khác nhau đôi chút, tuy nhiên về cơ bản là cứ Next, Next, và Next... vì chúng ta đang mới bắt đầu học sử dụng nên cứ cài đặt theo mặc định thôi chứ không cần tùy biến gì nhiều. Ở bước tùy chỉnh cài đặt mạng Type and Networking bạn có thể chỉnh lại port để sử dụng cho phần mềm server và ghi chú lại đâu đó để sử dụng sau này. Mình sẽ chỉnh lại là 3045.

Mốc quan trọng tiếp theo là bước đặt mật khẩu cho tài khoản quản trị root và tùy chọn tạo thêm tài khoản quản trị với tên khác. Bạn chỉ cần nhớ ghi lại thông tin các tài khoản quản trị để sử dụng sau này là được. Ở đây mình để tạm mật khẩu đơn giản là 1->9 cho cả tài khoản quản trị gốc là root và tài khoản tạo thêm là semiarthanoi.

Full-Slide cài đặt MySQL-Community trên Windows

Sau khi cài đặt xong thì chúng ta sẽ có một cửa sổ dòng lệnh đang chạy một phần mềm console có tên là MySQL Shell và một cửa sổ phần mềm quản lý có giao diện đồ họa tên là MySQL Workbench.

Ở đây chúng ta sẽ không sử dụng cái cửa sổ dòng lệnh và khởi đầu với việc học cách sử dụng phần mềm quản lý MySQL Workbench.

MySQL Workbench

Ok.. như vậy là sau khi cài đặt xong bộ cài MySQL Community thì chúng ta đang có một phần mềm quản lý Relational DataBase ở dạng một HTTP Server đang chờ nhận yêu cầu ở địa chỉ localhost:3045 hoặc 127.0.0.1:3045. Lúc này chúng ta đã có thể viết code ở nền tảng bất kỳ và gửi tương tác tới cái MySQL Server này để thực hiện thao tác điều khiển như lưu các bản ghi dữ liệu mới, truy vấn, cập nhật, hoặc xóa các bản ghi dữ liệu đã có.

Tuy nhiên trước khi viết code để gửi các yêu cầu request tới cái MySQL Server để thực hiện các thao tác điều khiển như trên thì chúng ta cần tìm hiểu về các quy ước convention và các công cụ mà cái server này cung cấp. Cụ thể là chúng ta sẽ cần quan tâm tới 2 câu hỏi:

  • Các bản ghi dữ liệu khi được lưu vào cái Database Server này sẽ được biểu thị như thế nào?
  • Khi cần gửi yêu cầu tới MySQL Server để thực hiện một thao tác nào đó như thêm, tìm, sửa, xóa các bản ghi dữ liệu, thì chúng ta cần biểu thị cái yêu cầu request đó như thế nào trong code phần mềm mà chúng ta đang xây dựng trên các nền tảng khác nhau? Ví dụ là khi code một ứng dụng NodeJS mà muốn điều khiển cái MySQL Server kia theo ý muốn thì phải biểu thị cái yêu cầu cần gửi tới MySQL Server như thế nào?

Và chúng ta sẽ có thể tìm được câu trả lời cho cả 2 câu hỏi trên với sự giúp đỡ của phần mềm MySQL Workbench đã được cài đặt kèm theo cái MySQL Server trong bộ MySQL Community.

Trước hết thì chúng ta cần định hình rõ ở điểm này, phần mềm MySQL Workbench này là một phần mềm khách Client Program, tương tác với phần mềm MySQL Server qua giao thức HTTP chứ không phải là một phần của MySQL Server. Do đó nên ở giao diện cửa sổ mở đầu thì chúng ta đang có mục MySQL Connections với một cái server instance có tên mặc định là MySQL80 nếu bạn không thay đổi khi cài đặt. Bên cạnh đó thì bạn cũng có thể thấy thông tin về tên tài khoản quản trị gốc là root và địa chỉ nhận yêu cầu là localhost:3045. Nhấn vào thôi. 😄

Sau khi đăng nhập tài khoản quản trị với mật khẩu 1->9 thì chúng ta sẽ có một giao diện điều khiển với các thông tin truy vấn được từ MySQL Server, và các nút nhấn gắn kèm các yêu cầu thực hiện các thao tác quản trị để gửi tới đó.

Hmm... ở ô điều hướng Navigator phía bên trái có 2 tab nhỏ ở phía dưới chân, và chúng ta đang nhìn thấy tab mặc định là các thông tin thống kê quản trị Administration. Hãy chuyển qua tab Schemas biểu thị các thiết kế database xem chúng ta có những gì.

[Declarative Programming + SQL] Bài 2 - Schema & Table

Bình luận

Bài viết tương tự

- vừa được xem lúc

Closure trong Javascript - Phần 2: Định nghĩa và cách dùng

Các bạn có thể đọc qua phần 1 ở đây. Để mọi người không quên, mình xin tóm tắt gọn lại khái niệm lexical environment:.

0 0 51

- vừa được xem lúc

Var vs let vs const? Các cách khai báo biến và hằng trong Javascript

Dạo này mình tập tành học Javascript, thấy có 2 cách khai báo biến khác nhau nên đã tìm tòi sự khác biệt. Nay xin đăng lên đây để mọi người đọc xong hy vọng phân biệt được giữa let và var, và sau đó là khai báo hằng bằng const.

0 0 31

- vừa được xem lúc

VueJS: Tính năng Mixins

Chào mọi người, hôm nay mình sẽ viết về Mixins và 1 số vấn đề trong sử dụng Mixins hay ho mà mình gặp trong dự án thực. Trích dẫn từ trang chủ của VueJS:.

0 0 27

- vừa được xem lúc

Asset Pipeline là cái chi chi?

Asset Pipeline. Asset pipeline là cái chi chi. . Giải thích:.

0 0 47

- vừa được xem lúc

Tạo data table web app lấy dữ liệu từ Google Sheets sử dụng Apps Script

Google Sheets là công cụ tuyệt vời để lưu trữ bảng tính trực tuyến, bạn có thể truy cập bảng tính bất kỳ lúc nào ở bất kỳ đâu và luôn sẵn sàng để chia sẻ với người khác. Bài này gồm 2 phần.

0 0 266

- vừa được xem lúc

Học Deep Learning trên Coursera miễn phí

Bạn muốn bắt đầu với Deep Learning nhưng không biết bắt đầu từ đâu? Bạn muốn có một công việc ở mức fresher về Deep Learning? Bạn muốn khoe bạn bè về kiến thức Deep Learning của mình. Bắt đầu từ đâu.

0 0 35