Bảng dữ liệu là gì

Cơ sở dữ liệu là môn học cơ sở của chuyên ngành CNTT, bất kỳ sinh viên CNTT nào cũng cần nắm vững và sử dụng thành thạo Cơ sở dữ liệu để sử dụng cho công việc sau này. Tuy nhiên, đây cũng là môn học khó hiểu với nhiều sinh viên, nhất là giai đoạn thiết kế Cơ sở dữ liệu. Do vậy tôi viết chuỗi bài viết này với hy vọng sẽ giúp các bạn dễ dàng hơn trong việc tiếp cận môn học này.

Lý do cần có cơ sở dữ liệu

Chúng ta bắt đầu câu chuyện của một quán tạp hóa của dì Ba đầu ngõ, mỗi ngày bán được 3-5 bao xà phòng, 4 chai nước mắm, 6 gói Bim Bim… Để biết được lời, lỗ và đảm bảo không bị sót, mất mát, dì Ba lấy một cuốn tập làm sổ ghi chép số tiền mua hàng, số tiền bán hàng mỗi ngày và kiểm tra qua số hàng còn lại để biết lỗ lãi.

Từ ngày chung cư phía trước hình thành, dân cư đến ở đông, tiệm dì Ba tấp nập hẳn lên. Mỗi ngày bán hàng trăm mặt hàng, mỗi mặt hàng từ vài chục đến trăm cái, dì Ba không thể nào tính được việc lời lỗi hay tồn kho nữa.

May mà trong nhà có cái Tí vừa học xong khóa tin học văn phòng nên dì Ba mua cho nó cái máy tính và bảo nó giúp. Nó lập nên các bảng Excel quản lý Tồn kho, Nhập hàng, Bán hàng như sau:

Thêm một số công thức nữa thì công việc tính toán, cộng, trừ, nhân, chia hàng ngày của dì Ba giảm hẳn, đỡ được nhiều việc.

Khi chung cư trước mặt lấp đầy thì công việc buôn bán của dì Ba trở nên vô cùng phát đạt. Bên cạnh tạp hóa dì bán thêm văn phòng phẩm và một số mặt hàng gia dụng nữa. Mấy cái bảng con Tí làm dùng trước đây cũng được nhưng bây giờ nhiều quá chạy quá chậm, đôi lúc không cẩn thận lại chạy sai [do không cập nhật công thức]. Hơn nữa chỉ có mỗi nó làm được, ai đó mà đụng vô là sai tùm lum hết nên cũng bất tiện.

Hôm rồi dì hỏi thằng Tôm bên nhà, nó là dân IT hẳn hoi, nó bảo dì phải dùng phần mềm và cơ sở dữ liệu thì mới giải quyết được. Nó bảo có cơ sở dữ liệu và phần mềm dì sẽ không sợ sai công thức, không sợ nhiều dữ liệu mà ai nhập cũng được. Nghe vậy gì cũng ưng.

Vậy cơ sở dữ liệu là gì?

“Cơ sở dữ liệu là cách thức tổ chức lưu trữ dữ liệu hiệu quả để đảm bảo việc nhập và khai thác dữ liệu nhanh và chính xác”.

Cơ sở dữ liệu quan hệ là gì?

Cơ sở dữ liệu có nhiều cách tổ chức, trong đó cách hiệu quả nhất là tổ chức theo mô hình quan hệ do tiến sĩ E.F.Code người Đức đề xuất năm 1969 và người ta gọi đó là cơ sở dữ liệu quan hệ.

“Cơ sở dữ liệu quan hệ tổ chức dữ liệu theo các bảng và có quan hệ với nhau để giảm thiểu sự dư thừa dữ liệu đồng thời vẫn đảm bảo sự hiệu quả trong lưu trữ và truy xuất dữ liệu ”

Ngày nay, cơ sở dữ liệu quan hệ được dùng trong hầu hết các hệ thống phần mềm từ kế toán, ngân hàng, doanh nghiệp, …

Các thành phần cơ bản của một Cơ sở dữ liệu quan hệ

1. Bảng dữ liệu [Table]

Bảng dữ liệu là thành phần chính trong cơ sở dữ liệu quan hệ. Bảng chứa dữ liệu.

Trong đó:

  • Cột/Trường [Field]: các trường thể hiện thuộc tính của bảng dữ liệu ví dụ tên, địa chỉ
  • Dòng[row]: là một dòng dữ liệu gồm các dữ liệu có liên quan với nhau hay còn gọi là bảng ghi [record].
  • Ô [cell]: Giao giữa dòng và cột và là nơi chứa dữ liệu.
  • Khóa chính[Primary Key]: là một trường hoặc nhiều trường gộp lại được sử dụng để định nghĩa bảng ghi. Khóa chính có 02 thuộc tính là không được trùng và không được rỗng. Ví dụ: giá trị 1 của trường CustomerID đó sẽ suy ra được tất cả dữ liệu của dòng đầu tiên. Hay nói cách khác các giá trị của dòng đầu tiên là giá trị các thuộc tính của bảng ghi có customerID = 1.

Một bảng có thể có khóa chính hoặc không, tuy nhiên để dễ quản lý người ta thường định nghĩa khóa chính cho các bảng.

2. Mối quan hệ [Relationship]

Trong đó:

  • Khóa ngoại [Foreign Key]: là trường ở bảng này [bảng Invoice] nhưng có trường tương ứng làm khóa chính ở bảng kia [bảng Customer] để tạo ra mối quan hệ giữa hai bảng.
  • Mối quan hệ [Relationship]: tạo ra mối liên kết giữa hai bảng nhằm xác định mối liên quan giữa các trường dữ liệu của hai bảng. Ví dụ: nếu bạn muốn biết khách hàng có mã khách hàng số 1 mua những đơn hàng nào thì bạn phải dựa vào mối quan hệ trên. Trong cơ sở dữ liệu quan hệ mối quan hệ thể hiện ở 03 dạng sau:
    • Quan hệ 1-1: Trong quan hệ này mỗi bảng chỉ có một và chỉ một bảng ghi tương ứng mà thôi. Ví dụ quan hệ vợ – chồng, quan hệ Thông tin cơ bản – Thông tin chi tiết …
    • Quan hệ 1-n: Là quan hệ phổ biến nhất trong cơ sở dữ liệu, trong hệ này 1 bảng ghi ở bảng này có nhiều bảng ghi tương ứng ở bảng kia. Trong ví dụ trên một bảng ghi trong bảng Customer có nhiều bảng ghi trong bảng Invoice.
    • Quan hệ n-n: trong quan hệ này một bảng ghi trong bảng này tương ứng với nhiều bảng ghi trong bảng kia và ngược lại.

Bạn hãy xem mô hình hóa bên dưới để hiểu rõ hơn về các mối quan hệ.

3. Lược đồ thực thể quan hệ [ERD: Entity Relationship Diagram]

ERD sẽ giúp bạn hiểu nhanh hơn về cấu trúc của Cơ sở dữ liệu, từ đó giúp bạn dễ dàng thao tác hơn với chúng.

Lược đồ quan hệ [ERD] của cơ sở dữ liệu quản lý đơn hàng

Hệ quản trị Cơ sở dữ liệu [Database Management System – DBMS]

DBMS là các phần mềm dùng để quản lý và vận hành Cơ sở dữ liệu. Các DBMS phổ biến như MySQL, SQL Server, Oracle Database, DB2 …

Bảng so sánh một số DBMS phổ biến:

DBMS Kích thước hệ thống Hệ điều hành Năm ra đời
Oracle Lớn UNIX
Windows
1979
DB2 Lớn và vừa AIX[R]

HP-UX

Linux[R]

Solaris

1985
MySQL Vừa và nhỏ All OS 1987
MS SQL Server Vừa và nhỏ Windows 2000

 Tóm lại

Chúng ta vừa tìm hiểu các khái niệm về cơ bản của Cơ sở dữ liệu và Cơ sở dữ liệu quan hệ, còn rất nhiều vấn đề cần tìm hiểu như tại sao phải sử dụng cơ sở dữ liệu quan hệ, làm thế nào để thiết kế cơ sở dữ liệu … Chúng ta sẽ tiếp tục tìm hiểu các phần tiếp theo ở các bài sau.

Bài tiếp: Thiết kế cơ sở dữ liệu – Các bước thực hiện

Nếu bạn có điều gì chưa rõ hoặc thắc mắc bạn có thể để lại bình luận bên dưới tôi sẽ sẵn sàng trao đổi với bạn.

Trong phần này sẽ tìm hiểu chi tiết hơn về các bảng dữ liệu MS Access, các kiểu dữ liệu và sự liên kết giữa các bảng.

Một số khái niệm liên quan đến bảng [table] trong Access

Bảng [Table] là nơi lưu trữ thông tin dữ liệu các đối tượng quản lý. Bảng có cấu trúc hai chiều gồm các dòng [Record - bản ghi - hàng] và các cột [Field - trường dữ liệu]

Ví dụ, bảng HOCSINH lưu trữ thông tin về đối tượng học sinh gồm các trường dữ liệu [field]: HOCSINHID, Ho, Ten, Ngaysinh, Dantoc, Noisinh, Diachi

Mỗi đối tượng học sinh được biểu diễn trong một bản ghi [Record, dòng] dữ liệu. Bảng có thể có nhiều, một hoặc không có record nào.

Trong một CSDL thường có nhiều bảng, mỗi bảng lưu trữ dữ liệu của một đối tượng nào đó, các đối tường này có thể có quan hệ với nhau.

Ví dụ, bảng LOP và bảng HOCSINH có liên hệ một - nhiều. Mỗi lớp có nhiều học sinh, mỗi học sinh thuộc về một lớp

Khóa chính [primary key] là trường dữ liệu [cột] có giá trị duy nhất giữa các hàng [record]. Khóa chính để xác định chính xác Record nào đó trong bảng, nên khi ứng dụng hãy chọn một loại dữ liệu chuyên biệt nào đó làm khóa chính, ví dụ như bảng về sản phẩm thì chọn mã sản phẩm, bảng về nhân viên thì là mã nhân viên [hoặc số CMT] ... Ví dụ bảng HOCSINH có một cột - trường dữ liệu là HOCSINHID làm khóa chính, nó thiết kế là một con số duy nhất - dành cho mỗi học sinh - biết khóa chính sau này sẽ nhanh chóng tìm đến Record chứa khóa chính đó. Trong sơ đồ quan hệ ở trên, trường có ký hiệu chìa khóa là khóa chính của bảng. Cách thiết lập khóa chính cho bảng ở phần sau.

Khóa ngoại - Foreign key

Khóa ngoại là trường [cột] dữ liệu chứa các giá trị tham chiếu [trỏ đến] một khóa chính của bảng khác. Việc tạo ra các cột [trường] là khóa ngoại sẽ hình thành nên mối quan hệ giữa các bảng.

Như sơ đồ trên, bảng DIEM có trường HOCSINHID là khóa ngoại, nó tham chiếu đến khóa chính HOCSINHID của bảng HOCSINH, từ đó mỗi điểm xác định được của học sinh nào, tương tự có trường MONHOCID là khóa ngoại tham chiếu đến bảng MONHOC

Tạo bảng trong Access

Khi đã định hướng được cần tạo một bảng, bảng gồm các trường dữ liệu gì thì bắt đầu tạo bảng bằng cách chọn mục Create trên Menu Ribbon.

Bạn có thể chọn Table - để tạo bảng và vào ngày chế độ Datasheet View để thiết kế bảng, ở chế độ này bạng đang quan sát bảng dạng như bảng tính - từ đó thêm các cột

Chọn menu Table Design để tạo bảng mới và vào ngay chế độ Design View - Ta sẽ sử dụng chế độ tổng quát này khi tạo, thiết kế bảng

Thiết kế bảng ta phải định nghĩa các thành phần:

  • Field Name - Định nghĩa cột [trường dữ liệu trong bảng]
  • Data Type - Chọn kiểu dữ liệu của trường [xem các kiểu dữ liệu ở dưới]
  • Description - Mô tả thông tin thêm về trường, chứa các thông tin để đọc lại biết được mục đích dữ liệu
  • Fiel Properties - Thiết lập các thuộc tính cho trường dữ liệu, nó gồm có hai nhóm
    • General - thông tin chung, tùy thuộc vào kiểu dữ liệu của trường mà thông tin chung có các mục khác nhau như định dạng hiện thị dữ liệu, kích thước dữ liệu, giá trị mặc định ...
    • Lookup - xác định các nguồn dữ liệu và định dạng hiện thị nếu cần thiết

Các kiểu dữ liệu

Khi tạo các trường cho bảng, chọn kiểu dữ liệu phù hợp rất quan trọng, nó đảm bảo CSDL vận hành hiểu quả:

Kiểu dữ liệu Mô tả Kích cỡ
Short Text Nó còn là Text ở bản 2007 - 2010, biểu diễn dữ liệu dạng chữ [tên người, tên sản phẩm, tiêu đề ...] Tối đa 255 ký tự.
Long Text Còn là kiểu Memo [2007 - 2010]. Để biểu diễn cả câu văn, đoạn văn dài. Đến 1GB
Number Các dữ liệu dạng số 1, 2, 4, 8, or 16 byte
Date/Time Biểu diễn ngày và tháng 8 bytes.
Currency Dữ liệu số, dạng tiền tệ, biểu diễn số chính xác 4 số sau dấu chấm. 8 bytes.
AutoNumber Dạng số duy nhất, tự động sinh ra bởi Access 4 bytes.
Yes/No Kiểu logic Boolean [true/false]; Access lưu nó dưới dạng số, 0 là false và -1 là true 1 byte.
Attachment Lưu các loại dữ liệu file như các file hình ảnh, tài liệu, bảng tính ...

Tới 2 GB.

Thực hành tạo các bảng dữ liệu

Phần này tiến hành tạo ra các bảng cho một ứng dụng quản lý học sinh đơn giản. Trước tiên nó gồm các bảng có mối quan hệ với sơ đồ ở phần trên.

Bảng NIENKHOA

Cấu trúc bảng

Tên cột [Field Name] Kiểu dữ liệu [Data Type] Ghi chú
KHOAID AutoNumber Khóa chính, số tự động tăng. Để thiết bật/tắt là khóa chính, chọn dòng có tên trường rồi bấm chọn Primary Key hoặc phải chuột vào tên trường và chọn Primary Key
NamNH Date/Time Năm nhập học, kiểu ngày - giờ. Định dạng trường này hiện thị năm học [không hiện thị ngày, thánh].

Định dạng hiện thị ngày tháng điền các dòng định dạng phù hợp vào mục Format, các ký hiệu có thể kết hợp gồm:

  • dd hiện thị ngày; mm hiện thị tháng [số]; yyyy hiện thị năm
  • dd/mm/yyyy là kết hợp để hiện thị dạng ngày 22/12/2000
  • mm-yyyy là kết hợp để hiện thị dạng ngày 12-2000

Ở trường này chỉ muốn hiện thị năm, nên nhập vào Format là yyyy

TenKhoa Short Text Kiểu Text, chọn kích thước 10 ký tự [Field Size], có đánh chỉ mục, không được trùng giá trị, dòng chữ có chiều dài khác 0

Chọn kiểu dữ liệu là Text [Short Text], sau đó ở mục thuộc tính, nhóm General chọn: Field Size là 10 - để thiết lập dài tối đa 10 ký tự, mục Allow Zezo length chọn là No để không cho phép bỏ trống dữ liệu này. Tại mục Indexed chọn Yes [No Duplicates] cho biết dữ liệu này được chỉ mục, không cho phép trùng dữ liệu.

Sau khi tạo bảng, lưu lại với tên NIENKHOA tiến hành nhập dữ liệu trực tiếp mẫu

Bảng NGANH

Bảng trình bày về các ngành học: tên ngành học, mã ngành, số năm học. Cấu trúc tạo bảng như hình dưới

Đối với trường nào cần thiết lập giá trị mặc định thì điền giá trị mặc định ở mục Default Value của thuộc tính trường

Sau khi tạo bảng nhập dữ liệu mẫu sau:

Bảng LOP

Bảng này quản lý danh sách các lớp học, mỗi lớp có tên lớp, và có khóa ngoại tham chiếu đến bảng NIENKHOA và NGANH, phần này vẫn chưa thiết lập các liên kết bảng nên sẽ tạo bảng này với cấu trúc như sau:

Thiết lập Lookup cho trường NGANHID

Một trường dữ liệu có thể thiết lập thuộc tính Lookup cho nó, thuộc tính này giúp tham chiếu đến một nguồn dữ liệu khác trong quá trình nhập liệu [có thể thiết lập một ComboBox, ListBox để nhập liệu]. Ví dụ cột NGANHID sẽ tham chiếu đến bảng NGANH và trường NGANHID của bảng đó để hiện thị một danh sách các giá trị, chọn được khi soạn thảo. Từng bước thiết lập như sau:

  • Chọn Display Control là Combo Box : loại này hiện thị một hộp danh sách đổ xuống để chọn
  • Chọn Row Source Type là Table/Query - có nghĩa là nguồn dữ liệu từ bảng, hoặc các Query
  • Row Source là các truy vấn lấy ra dữ liệu - cách viết các truy vấn sẽ trình bày sau. Ở đây muốn tham chiếu đến bảng nào, hãy điền tên bảng đó vào. Điền là NGANH, nó sẽ tham khảo các dòng dữ liệu của bảng ngành
  • Bound Column là thứ tự cột cần liên kết dữ liệu, ở đây cột NGANHID của bảng NGANH là giá trị tham chiếu, cột này có vị trí số 1 - nên điền 1
  • Column Count là số cột - tính từ cột 1 cần lấy dữ liệu đưa vào Combo Box. Cần lấy cột 1 và 2 [tức cột NGANHID và TENGANH]

Làm tương tự cho cột NIENKHOAID tham chiếu đến bảng NIENKHOA

Lúc này khi soạn thảo dữ liệu bảng, nó xuất hiện Combo Box có thể chọn giá trị, những giá trị này tham chiếu từ dữ liệu bảng khác.

Để ý, nếu muốn ẩn đi cột thứ nhất chỉ hiện thị cột thứ hai [tên ngành] để nhìn dữ liệu trực quan hơn. Thì có thể thiết lập độ rộng cột cần ẩn là 0cm vào thuộc tính Colunm Widths. Ví dụ 0cm;2cm có nghĩa cột 1 0cm, cột 2 rộng 2cm [nhớ là cột trong Combo Box]. Kết quả sẽ là:

Dữ liệu mẫu

Bảng HOCSINH

Bảng này quản lý danh sách học sinh các lớp, nó có các trường dữ liệu như sau:

LookUp nguồn Value List

Trong trường giới tính GT nhận giá trị logic YES/NO, ấn định nếu là YES thì là NAM, và NO là Nữ. Mặc định thì dữ liệu là checkbox [hộp kiểm để lựa chọn]. Nếu muốn thay hộp kiểm này bằng Combo Box để có một danh sách đổ xuống chọn NAM/NỮ thì dùng Lookup với thiết lập như sau:

  • Display Control chọn Combo Box
  • Row Source Type chọn Value List
  • Row Source liệt kê các giá trị của bảng nguồn, mỗi giá trị cách nhau bởi dấu ;, chuỗi thì đặt trong dấu "" như bảng -1 NAM 0 NỮ thì điền vào -1;"Nam";0;"Nữ"
  • Bound Column chọn là 1, nghĩa là cột 1 là nguồn gán giá trị
  • Colunm Widths chọn là 0cm;2cm; để ẩn -1, 0 giữ hiện thị Nam, Nữ

Dữ liệu mẫu:

Bảng MONHOC

Bảng này để quản lý các môn học, cấu trúc như sau

Dữ liệu mẫu:

Bảng DIEM

Bảng này lưu trữ điểm của các môn học, cấu trúc như sau:

Nạp dữ liệu vào MS Access từ file Excel

Có thể nạp dữ liệu từ một Worksheet vào một bảng của MS Access. Ví dụ file Excel, có worksheet tên HOCSINH như sau: có có dòng đầu tiên giống tên các cột của bảng HOCSINH trong Access.

Ví dụ, để nạp dữ liệu vào bảng HOCSINH, nhấn phải chuột vào đối tượng bảng, chọn import từ excel như hình dưới:

Trong cửa số hiện ra, chọn file excel đúng cấu trúc, và thiết lập như hình để nạp:

File dữ liệu mẫu Excel cho bảng HOCSINH: Download

Trên đây là tạo một số bảng mẫu, bài tiếp theo sẽ tiếp tục thiết lập các quan hệ và một số thao tác nâng cao trên các bảng này.

Video liên quan

Chủ Đề