Lớp 12Tin Học

Ngôn ngữ CSDL được sử dụng phổ biến hiện nay là?

Câu hỏi: Ngôn ngữ CSDL được sử dụng phổ biến hiện nay là:

A. SQL       

B. Access       

Bạn đang xem: Ngôn ngữ CSDL được sử dụng phổ biến hiện nay là?

C. Foxpro       

D. Java

Trả lời: 

Ngôn ngữ CSDL được sử dụng phổ biến hiện nay là SQL (Structured Query Language – Ngôn ngữ hỏi có cấu trúc).

Đáp án: A.

Cùng THPT Ninh Châu tìm hiểu chi tiết về các thông tin liên quan đến ngôn ngữ CSDL dưới đây

1. Lý Thuyết

a. Cơ sở dữ liệu và Bảng

       Về cơ bản cơ sở dữ liệu (quan hệ) là một tập hợp của các bảng. Mỗi bảng có một danh sách dữ liệu lặp lại được sắp xếp logic về một thông tin cụ thể. Ví dụ một bảng cho khách hàng, sinh viên, đơn đặt hàng, sản phẩm,… Về mặt trực quan, nó thường được hiển thị giống như một bảng tính trên exel.

       Bảng là cấu trúc cơ bản nhất của cơ sở dữ liệu, cấu trúc của nó bao gồm các hàng và cột. Nó là nơi bạn sẽ đặt dữ liệu của mình, xác định kiểu dữ liệu và mối quan hệ giữa các bảng với bảng khác. Khi biểu diễn cơ sở dữ liệu quan hệ, chúng ta thường biểu diễn được mối quan hệ giữa các bảng trong cơ sở dữ liệu. Chẳng hạn như ở dưới đây, bảng step có quan hệ với bảng recipe và step_ingredients. Tất cả các bảng hợp thành một cơ sở dữ liệu.

       Trong mỗi bảng, mỗi hàng đại diện cho một bản ghi dữ liệu (chẳng hạn như một sinh viên, một khách hàng, một đơn hàng hoặc một nhân viên) mỗi bản ghi này lại gồm nhiều trường dữ liệu (ví dụ sinh viên có thể có tên, ngày sinh, quê quán, điểm trung bình,…), các trường dữ liệu được xác định trong các cột của bảng. Mỗi cột mô tả một phần dữ liệu. Nó cung cấp thuộc tính quan trọng như tên, ID, email, ngày sinh…

       Mọi hàng đều phải tuân theo cùng một cấu trúc, theo cùng một định dạng của cột. Không được phép sai lệch so với quy cách đã thiết lập. Và để xác định các định dạng của cột này, chúng ta đặt ra các quy tắc đối với dữ liệu và DBMS sẽ không để việc phá vỡ các quy tắc này xảy ra. Ví dụ, trong bảng trên, kiểu dữ liệu của phone_no có thể được quy ước là dạng số điện thoại hợp lệ (có các điều kiện kiểm tra) hoặc commission là kiểu số thực có giá trị nhỏ hơn 1.

       Tóm lại, các cột xác định vị trí và định dạng của dữ liệu sẽ có trong bảng, trong khi các hàng giữ các giá trị thực tế mà bạn sẽ truy xuất, chèn, cập nhật và xóa. Bạn có thể nghe thấy thuật ngữ “bộ dữ liệu (tuple)” hoặc bản ghi thay cho các hàng (row) trong bảng, và bạn cũng có thể nghe thấy thuật ngữ “thuộc tính” hoặc trường dữ liệu thay cho cột (column). Các khái niệm này là tương đương và thường được sử dụng thay thế cho nhau.

       Trước khi đi tiếp tục với các khái niệm tiếp theo trong lý thuyết cơ sở dữ liệu, chúng ta cần phân biệt 3 loại cột trong cơ sở dữ liệu:

– Cột đơn: Gồm một giá trị duy nhất.

– Cột tổng hợp: Một giá trị bao gồm sự kết hợp của một số giá trị khác. Ví dụ: trường tên đầy đủ là sự kết hợp của tên, tên đệm và họ. Bất kỳ thuộc tính tổng hợp nào cũng sẽ được phân tách thành nhiều thuộc tính riêng biệt.

– Cột đa trị: Nhiều giá trị cho một cột. Ví dụ màu sắc của chiếc xe có thể là cả đen và đỏ. Các thuộc tính đa trị có thể được tách thành nhiều bảng.

       Việc phân biệt các loại thuộc tính (cột) này rất quan trọng trong lý thuyết cơ sở dữ liệu cũng như trong thực tế triển khai các ứng dụng sử dụng cơ sở dữ liệu, bởi nó sẽ giúp chúng ta tiến hành phân tích và tách các bảng, các cột sau này để đảm bảo tính nhất quán cho cơ sở dữ liệu. Phần tiếp theo chúng ta sẽ tìm hiều về các quan hệ trong cơ sở dữ liệu quan hệ.

b. Ngôn ngữ truy vấn có cấu trúc (SQL)

       Đây là ngôn ngữ được sử dụng để tạo, đọc, cập nhật hoặc xóa dữ liệu cũng như định nghĩa cơ sở dữ liệu. Nó không phải là một ngôn ngữ lập trình, nó được coi là một ngôn ngữ truy vấn khai báo. Bạn chỉ cần nói những gì bạn muốn và DBMS xử lý các yêu cầu truy vấn của bạn. Điều này ngược lại với các ngôn ngữ lập trình. Với ngôn ngữ lập trình, bạn sẽ phải viết các bước để thực hiện việc này; có thể là một số vòng lặp và kiểm tra xem đây có phải là dữ liệu có ràng buộc hay không. Cú pháp của SQL rất dễ hiểu, tuy nhiên hầu hết các DBMS đều có cách triển khai ngôn ngữ SQL khác nhau. Mặc dù vậy, về mặt bản chất thì cơ chế và cú pháp của chúng hầu hết là giống nhau.

2. Cách thiết kế CSDL website đa ngôn ngữ

Như mình phân tích ở trên thông thường có hai dạng yêu cầu web đa ngôn ngữ đó là:

– Web dịch toàn bộ bài

– Web chỉ dịch một số bài

Dịch toàn bộ bài viết

Trường hợp này ta có một số cách thiết kế như sau:

Cách 1: Mỗi table ta sẽ lưu số trường bằng tương ứng với số ngôn ngữ. Ví dụ website làm 3 ngôn ngữ thì mình lưu trường title là title_en, title_vi, title_cn. Như vậy nếu mở rộng thì sẽ rất khó khăn vì ta phải vào hệ thống thêm từng field.

Cách 2: Mỗi field ta sẽ lưu dạng thẻ xml dạng nội dung. Ví dụ Nội dungContent. Với cách lưu này khi mở rộng ta không cần phải bổ sung field. Tuy nhiên có hai điểm yếu, thứ nhất nếu dữ liệu quá nhiều vượt quá mức lưu trữ của MySQL thì sẽ mất dữ liệu, thứ hai tuy nhiên ban phải sử dụng thêm PHP để lập trình thật chặc chẽ (dùng Regular Expression để bóc tách).

Cách 3: Mỗi table ta sẽ lưu trữ thêm một table đa ngôn ngữ và một table liên kết nữa. Ví dụ có table News(id, titlte, content, status) với hai field title và content là đa ngôn ngữ thì ta bổ sung thêm table language như hình sau:

[CHUẨN NHẤT] Ngôn ngữ CSDL được sử dụng phổ biến hiện nay là?

       Với cách lưu trữ này khi ban thêm mới một ngôn ngữ thì chỉ cần bổ sung dữ liệu vào bảng Language.

Dịch một số bài viết

       Với yêu cầu này thì hơi rườm rà nên mình đưa ra một cách đơn giản để các bạn tham khảo.

       Chúng ta chỉ cần một bảng và trong bảng đó sẽ có một số field liên hệ với nhau như sau: News (id, title, content, language, parent_id)

       Giả sử mình chọn ngôn ngữ tiếng Việt làm ngôn ngữ chính thì khi thêm một bài viết mới nếu bài này dành cho tiếng Việt thì ta không cần chọn parrent_id, ngược lại nếu là ngôn ngữ khác thì ta phải chọn parent_id (chính là bài tiêng Việt).

Lúc này dư liệu như sau:

[CHUẨN NHẤT] Ngôn ngữ CSDL được sử dụng phổ biến hiện nay là? (ảnh 2)

Như vậy ta phải dựa vào ha field language và parrent_id đẻ xử chuyển ngôn ngữ cho thật chính xác.

Lưu ý: Để xử lý nhuần nhuyễn và chính xác các cách trên thì đòi hỏi ban phải thành thạo PHP, MySQL, Javascript để xử lý phía backend lẫn frontend.

Đăng bởi: THPT Văn Hiến

Chuyên mục: Lớp 12, Tin Học 12

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button