0

Cơ sở dữ liệu (Phần 2) Các thao tác với bảng

1.Thao tác với bảng (表の操作) Cơ sở dữ liệu quan hệ có cấu trúc cho phép trích xuất những dữ liệu cần thiết tùy thuộc vào thao tác với bảng Có nhiều loại thao tác với bảng. Dưới đây là một vài thao tác

  • Select(選択): Là thao tác chỉ trích xuất hàng cần thiết từ bảng
  • Projection(射影): Là thao tác trích xuất cột cần thiết từ bảng

Có thể trích xuất cả dữ liệu từ nhiều bảng Ví dụ như 2 bảng sau

Nếu muốn trích xuất những học sinh mà chưa có bằng cấp gì thì chỉ một trong hai bảng sẽ không đủ dữ liệu. Khi đó, sẽ lấy ra cột thỏa mãn điều kiện từ hai bảng rồi kết hợp lại thành 1 bảng mới, hay còn gọi là thao tác Combine (結合)

Ngoài ra mình cần nắm thêm một khái niệm nữa: Insert (挿入): Thêm record ( hàng ) vào trong bảng

  1. Chuẩn hóa dữ liệu Trong cơ sở dữ liệu quan hệ, dữ liệu được quản lý bằng cách kết hợp nhiều bảng khác nhau. Chính vì vậy, khi thêm mới, update hay cóa dữ liệu của khóa chính hay khóa ngoài của từng bảng thì bắt buộc phải phản ánh lên cả những bảng khác nữa. Nếu không làm vậy, sẽ phát sinh mâu thuẫn hay trùng lặp với các dữ liệu trong bảng

    Chuẩn hóa là tạo ra bảng để có thể quản lý dữ liệu một cách chính xác. Nhờ vào việc chuẩn hóa mà chúng ta có thể loại bỏ những conflict hay trùng lặp dữ liệu trong cơ sở dữ liệu.

    Chuẩn hóa được chia ra làm 3 bước như sau

    Chúng ta sẽ lấy bảng quản lý trạng thái có bằng cấp của học sinh làm ví dụ để chuẩn hóa dữ liệu

  2. Hình thức không chuẩn hóa Bảng dưới là bảng quản lý tình trạng lấy bằng của học sinh Ở bảng này, mỗi một học sinh có thể có nhiều bằng, nên sẽ tồn tại nhiều dữ liệu trong cột "Ngày lấy bằng ", Với cấu trúc của bảng như thế nào được gọi là Hình thức không chuẩn hóa, và không thể quản lý được ở Cơ sở dữ liệu quan hệ

  3. Hình thức chuẩn hóa đầu tiên ở bước này, bảng được tạo với từng dữ liệu một cho các cột {Mã bằng}, {Tên bằng}, {Ngày lấy bằng} Với hình thức này thì bảng có thể sử dụng được ở Cơ sở dữ liệu quan hệ.

  4. Hình thức chuẩn hóa thứ hai Tuy nhiên, với bảng ở hình thức chuẩn hóa đầu tiên vẫn chưa phải là tốt. Ví dụ như, khi muốn thêm bằng mới, thì phải get bằng cấp đó là của ai hay của học sinh nào. Hay khi muốn thay đổi tên bằng tương ứng với mã bằng thì cũng phải thay đổi từng hạng mục một của toàn bộ dữ liệu. Để giải quyết vấn đề này, ta sẽ chia ra một bảng mới cho các cột mà có có quan hệ lẫn nhau (Khi thay đổi hay sửa chữa một hạng mục nào đó thì hạng mục khác cũng sẽ bị thay đổi) Ví dụ như ở bảng Chuẩn hóa thứ nhất ( ở trên) thì khi thay đổi 「学籍番号/Mã học sinh」thì 「氏名/Tên」 「クラス/Lớp」 「担任/Phụ trách」 sẽ thay đổi theo. Tương tự như thế khi thay đổi Mã bằng / 資格コード thì Tên bằng/ 資格名 cũng sẽ thay đổi theo. Chính vì thế ta sẽ cho riêng từng nhóm dữ liệu ấy thành một bảng riêng. Cách làm như vậy, phân chi bảng ra và quy định hạng mục làm khóa chính thì được gọi là Hình thức chuẩn hóa thứ hai.

    Như vậy khóa chính không chỉ có 1. Ngày lấy bằng / 取得日  sẽ được quy định dựa theo bằng đó là của học sinh nào. Hay nói cách khác, khóa chính là sự kết hợp của Mã học sinh/ 学籍番号 + Mã bằng / 資格コード Như vậy ta sẽ chia sẽ bảng như sau

    Nhờ vào sự phân chia bảng như vậy, mà neesy muốn thiết lập một loại bằng mới ta có thể thêm trước vào Bảng bằng vaaso mà không cần phải get dữ liệu của ai Ngoài ra, Nếu muốn thay đổi tên bằng, ta chỉ cần thay đổi tên bẳng trong bảng bằng cấp thôi là có thể phản ánh lên toàn bộ dữ liệu của học sinh

4. Hình thức chuẩn hóa thứ ba

Ở bảng chuẩn hóa thứ hai, hạng mục {phụ trách} được quy định khi Mã học sinh ( là khóa chính ) được quy định thì Lớp sẽ được quy định, mà Lớp được quy định thì {Phụ trách} sẽ được quy định. Việc quy định của các hạng mục 学籍番号/Mã học sinh  ➡クラス/Lớp  ➡担任 /Phụ trách sẽ được gọi là Quan hệ phụ thuộc 推移的関係従属 Bảng mà có trạng thái không có Quan hệ phụ thuộc thì được gọi là Hình thức chuẩn hóa thứ 3 Phần quan hệ phụ thuộc ấy sẽ được phân chia thành một bảng khác

Làm như treenm tất cả các record đều chỉ được quy định bằng khóa chính, Bảng mà không có trạng thái Quan hệ phụ thuộc thì được gọi là Hình thức chuẩn hóa thứ 3.

Trong cơ sở dữ liệu, nhờ vào việc quy chuẩn hóa dữ liệu mà có thể loại bỏ được sự trùng lặp hay mâu thuẫn của dữ liệu. Tuy nhiên, nếu như chia ra nhiều bảng khác nhau thì khi muốn truy xuất những dữ liệu cần thiêt thì cần phải kết hợp lại các bảng với nhau. Như vậy nhiều khi hiệu xuất truy cập lại bị giảm đi.


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.