thuật ngữ IT cho Comtor. #3

tiếp theo bài trước.

Ref: https://www.w3schools.com/sql/default.asp

Hãy bắt đầu với một thuật ngữ cơ bản: IT

IT là gì? là viết tắt của Information Technology phải không ạ?

Vậy tại sao lại gọi là ngành IT? Một cách ngắn gọn thì:

Người ta gọi là “Information Technology” (Công nghệ Thông tin) vì ngành này tập trung vào việc sử dụng công nghệ để quản lý, xử lý và truyền đạt thông tin.

Như vậy, đối tượng quản lý chính yếu của ngành IT là thông tin và đó cũng là đặc điểm quan trọng phân biệt IT với các ngành khác.

I. Thông tin và dữ liệu (data/データ)

Trong IT, để có thể xử lý thông tin (information 情報), người ta cần thực hiện quy trình “dữ liệu hóa” (データ化) thông tin trước. Cụ thể như sau:

  1. Thu thập và tạo ra dữ liệu: Các dữ liệu cần được thu thập (collect 収集) từ các nguồn khác nhau, hoặc tạo ra (creategenerate 作成・生成) thông qua các quá trình/hệ thống.
  2. Chuẩn hóa và tổ chức dữ liệu: Dữ liệu cần được chuẩn hóa (normalize/standardize 正規化/標準化) về định dạng (format 形式フォーマット), cấu trúc (structure 構造) và nội dung để có thể xử lý dễ dàng.
  3. Lưu trữ và quản lý dữ liệu: Dữ liệu được lưu trữ/ bảo quản (save/store 保存/保管) an toàn và có hệ thống, thường sử dụng các cơ sở dữ liệu (database データベース) hoặc kho dữ liệu (data warehouse データウエアハウス).
  4. Phân tích và xử lý dữ liệu: Các kỹ thuật phân tích, tính toán và xử lý được áp dụng trên dữ liệu để tạo ra thông tin và tri thức có ý nghĩa.
  5. Trình bày và truyền tải thông tin: Thông tin được tổng hợp, trình bày và truyền tải một cách hiệu quả cho người dùng.

Như thế “dữ liệu hóa” thông tin là một bước quan trọng, việc chuyển đổi (convert 変換) thông tin thành data là cần thiết trong mọi hệ thống và ứng dụng IT.

II. Database

Công cụ để lưu trữ và quản lý dữ liệu một cách an toàn và hiệu quả, như đã nói ở trên, là Cơ sở dữ liệu (database). Công nghệ database đã xuất hiện rất sớm và giữ vai trò là một yếu tố cơ bản trong ngành IT.

  1. Những năm 1960s – 1970s: Các hệ thống quản lý cơ sở dữ liệu (DBMS データベース管理システム) như IBM’s IMS, CODASYL, và sau này là SQL/relational database của IBM, Oracle, Microsoft được phát triển và áp dụng rộng rãi.
  2. Những năm 1980s – 1990s: Sự phát triển vượt bậc của các hệ quản lý cơ sở dữ liệu quan hệ (RDBMS) như Oracle, Microsoft SQL Server, IBM DB2. Các ngôn ngữ truy vấn dữ liệu (データクエリ言語) như SQL (Structured Query Language) trở nên phổ biến.
  3. Những năm 2000s – 2010s: Sự ra đời của các công nghệ database phi quan hệ (NoSQL) để đáp ứng nhu cầu quản lý dữ liệu lớn, không cấu trúc (非構造データ) như MongoDB, Cassandra, Couchbase.
  4. Từ 2010s đến nay: Sự phát triển của các DBMS phân tán (distributed processing 分散処理), đám mây (cloud クラウド) như Amazon DynamoDB, Google Cloud Datastore, Microsoft Azure Cosmos DB.

Tiếp theo bài viết sẽ chủ yếu giới thiệu các thuật ngữ dùng trong Relational Database (リレーショナルデータベース)

Nếu bạn từng đến thăm một nhà kho hay thư viện hiện đại, bạn sẽ thấy nó được tổ chức hết sức ngăn nắp: chia thành các khu vực, mỗi khu vực chứa nhiều giá/ kệ, mỗi ô chứa hàng được đánh số theo hàng/ cột trong giá/kệ đó ….

Một database (DB) kiểu quan hệ (relational) cũng được tổ chức phân cấp tương tự. Một DB chứa nhiều Schema (スキーマ), một Schema chứa nhiều Bảng (Table テーブル) và một Table chứa nhiều bản ghi (Record/row レコード・行), một bản ghi thì có nhiều trườngcột (field/column フィールド) để chứa dữ liệu:

DB> Schema> Table> Record> Field

Như vậy, đơn vị lưu trữ data trong database là recordtable

Để làm việc với DB, ta sử dụng các công cụ (tool ツール) gọi là Database management application (ứng dụng quản lý cơ sở dữ liệu), các tool này thường là do các hãng hoặc bên thứ ba (3rd party サードパーティー) cung cấp. Ví dụ: MySQL Workbench, phpMyAdmin, Oracle SQL Developer, Navicat, Redash … Ngoài ra, người dùng các tool này cũng cần biết sử dụng ngôn ngữ thường dùng để thao tác với database: SQL.

Với SQL, ta có thể thực thi 4 thao tác cơ bản với data trong các table của database:

  1. Create (Tạo mới 新規作成・登録・挿入) – Chèn dữ liệu mới vào bảng
  2. Read (Đọc 参照・抽出 ・取得取り出す読み取る) – Truy vấn và lấy dữ liệu từ bảng
  3. Update (Cập nhật 更新・変更) – Sửa đổi dữ liệu hiện có trong bảng
  4. Delete (Xóa 削除) – Xóa dữ liệu khỏi bảng

Các thao tác này thường được gọi là “CRUD” – Create, Read, Update, Delete – các thao tác mà bất kỳ database nào cũng cung cấp

III. SQL

Câu lệnh SQL cơ bản nhất là câu lệnh Select, dùng để lấy dữ liệu từ table trong database.

Câu SQL trên sẽ lấy toàn bộ thông tin CustomerName và City từ bảng Customers.

Để hạn chếgiới hạn (limit 制限) dữ liệu lấy từ bảng, tức là không lấy toàn bộ, mà chỉ lấy những dữ liệu phù hợp với một vài điều kiện tìm kiếm (search condition 検索条件) nhất định, người ta sẽ bổ sung Where clause (ウェア区). VD:

Vì câu SQL trên tìm kiếm dữ liệu theo cách chọn lọc nên người ta cũng gọi những câu SQL có Where là câu filter (フィルター絞り込む) dữ liệu.

Câu lệnh select/ filter data cũng còn được gọi là câu query (クエリー truy vấn) data. Thuật ngữ query phổ dụng đến nỗi về sau người ta gọi mọi câu lệnh SQL là câu query (クエリー句), mặc dù có thể “câu query” đó không hề có nhiệm vụ lấy (retrieveget) data gì cả.

Người ta cũng có thể thêm mới data vào table bằng câu lệnh Insert (挿入):

hoặc chỉnh sửa data hiện có trong table với câu lệnh Update:

hoặc xoá data khỏi table với câu lệnh Delete:

Với câu lệnh Delete có Where ở trên ta sẽ phải đưa điều kiện xoá dữ liệu vào, như thế cần phải cân nhắc sử dụng điều kiện nào cho chính xác … Với trường hợp cần xoá nhanh, xoá toàn bộ data bất cần điều kiện thì ta có thể bỏ Where clause:

Câu lệnh trên sẽ xóa toàn bộ data nhưng vẫn giữ lại table rỗng cho chúng ta. Một cách khác để làm điều tương tự là dùng câu lệnh Truncate (トランケート) table:

Lưu ý:

  • TRUNCATE hoạt động nhanh hơn so với DELETE vì nó không ghi lại các hoạt động xoá trong log.
  • Sau khi sử dụng TRUNCATE, không thể khôi phục lại dữ liệu, cần cẩn thận trước khi dùng.

Nếu cần xoá toàn bộ dữ liệu và cũng chẳng cần giữ lại table, có lệnh Drop:

Không chỉ table, cũng có thể Drop database, lúc đó toàn bộ data trong database cũng như toàn bộ các shema, tables, …. cũng như bản thân database sẽ bị xoá. Sau khi sử dụng DROP cũng không thể khôi phục lại database hay bất cứ thông tin cấu trúc table/ schema … gì trong đó, vì thế hết sức cẩn thận khi sử dụng.

IV. Một vài ràng buộc (Constraint)

Muốn query được data từ database, trước tiên phải có người tạo ra database và table đã. SQL cũng trang bị cho ta những câu lệnh để tạo ra (create) bản thân database, table …. Nhóm các câu lệnh làm nhiệm vụ tạo, sửa, xoá database/ table … như vậy gọi là DDL (Data Definition Language), trong khi các câu lệnh Select/Insert/Update … được giới thiệu ở phần trên thuộc về nhóm DML (Data Manipulation Language) – nhóm thao tác dữ liệu.

Khi sử dụng DDL để định nghĩa (定義) các table chẳng hạn, ta cần quan tâm đến thuộc tính (属性) của các column chứa dữ liệu, ví dụ loại datatype mà column đó chấp nhận. Các datatype ở đây thì cũng tương tự các kiểu dữ liệu đã được giới thiệu trong bài trước, vì thế ta sẽ đi đến một loại thuộc tính mới là NULLNOT NULL (ヌル可能ヌル不可).

Xét table được tạo với DDL như sau:

Tôi đã nhờ AI tạo data sample ngẫu nhiên cho bảng trên, được kết quả như sau:

PersonID | LastName | FirstName | Address | City
---------+----------+-----------+---------+---------------
1 | Doe | John | 123 Main St | New York
2 | Smith | Jane | NULL | Los Angeles
3 | Johnson | NULL | 789 Elm Ave | Chicago
4 | Williams | Emily | 321 Pine St | NULL
5 | Brown | David | 159 Maple Ln| Seattle

Có thể thấy, đôi khi có những giá trị là NULL trong table, VD: Giá trị Address là NULL ở record số 2, Giá trị FirstName là NULL. ở record số 3 ….

NULL ở đây là một giá trị đặc biệt với ý nghĩa là “Không có giá trị”, tức là không thể nói Address ở record 2 trong VD. trên là bằng bao nhiêu hết. NULL thì khác với “” (empty string 空文字 chuỗi ký tự rỗng). Trong khi empty string là một giá trị (value) hẳn hoi và được coi là “có dữ liệu” thì NULL là một giá trị đặc biệt và là “không có dữ liệu”.

Ở chế độ mặc định (default), một field trong table hoàn có thể chứa giá trị NULL. Nếu ta không muốn như vậy, có thể bắt buộc (enforce 強制的に) rằng column đó không được chấp nhận NULL từ lúc định nghĩa table. Trong VD dưới,  các trường “ID”, “LastName”, and “FirstName” sẽ không chấp nhận NULL:

Lúc này các trường đó sẽ có thuộc tính NOT NULL (ヌル不可) và đó cũng đồng thời là một ràng buộc (constraint 制約) dữ liệu.

Ngoài NOT NULL, ta còn có một số constraints khác như:

  • UNIQUE (ユニーク一意): Ràng buộc này đảm bảo rằng tất cả các giá trị trong một cột (hoặc một tập hợp các cột) phải là duy nhất
  • PRIMARY KEY (khoá chính 主キー): Ràng buộc này định nghĩa một hoặc nhiều column làm khóa chính của bảng. Khóa chính không được phép NULL và phải là unique.
  • FOREIGN KEY (khóa ngoại 外部キー): Ràng buộc này định nghĩa một hoặc nhiều column trong bảng này tham chiếu đến khóa chính của một bảng khác. Khóa ngoại giúp duy trì tính toàn vẹn (integrity 整合性) của dữ liệu.

Gặp lại các bạn ở bài tiếp theo về các thuật ngữ liên quan đến quá trình code, release

Add a Comment

Scroll Up