Bll là viết tắt của từ gì trong lập trình năm 2024

DataSet là một đối tượng có thể chứa nhiều DataTable cùng với mối liên hệ giữa chúng (relationship) và kể các ràng buộc (constraint) được lưu hoàn toàn trong bộ nhớ để làm việc offline. Qua bài viết này, bạn có thể hiểu cấu trúc của DataSet, DataTable cũng như nạp dữ liệu, tạo relation, constraint và thao tác dữ liệu trên các đối tượng dữ liệu này.

2. Cấu trúc của DataSet và DataTable

NAMESPACE: System.Data

Một DataSet tương tự như một tập tin database vật lý hoàn chỉnh nhưng được lưu trong bộ nhớ. DataSet bao gồm các DataTable, DataTable bao gồm các DataColumn, DataRow, các constraint được minh họa như hình dưới:

Bll là viết tắt của từ gì trong lập trình năm 2024

Các property của DataSet và DataTable dùng để lưu trữ các collection theo hình minh họa trên.

DATASET:

Type Name Description DataTableCollection Tables Gets the collection of tables contained in the System.Data.DataSet DataRelationCollection Relations Get the collection of relations that link tables and allow navigation from parent tables to child tables.

DATATABLE:

Type Name Description DataColumnCollection Columns Gets the collection of columns that belong to this table. DataRowCollection Rows Gets the collection of rows that belong to this table. ConstraintCollection Constraints Gets the collection of constraints maintained by this table.

1. Phân biệt mô hình 3 Tier và mô hình MVC

Mô hình 3 Tier quá trình đi theo chiều dọc, bắt đầu từ Presentation, sang BL, rồi tới Data, và từ Data, chạy ngược lại BL rồi quay ra lại Presentation.

Bll là viết tắt của từ gì trong lập trình năm 2024

Mô hình 3 Tier

Trong mô hình MVC, dữ liệu được nhận bởi View, View sẽ chuyển cho Controller cập nhật vào Model, rồi sau đó dữ liệu trong Model sẽ được đưa lại cho View mà không thông qua Controller, do vậy luồng xử lý này có hình tam giác.(Mô hình này mình sẽ nói sau một dịp khác)

Bll là viết tắt của từ gì trong lập trình năm 2024

Mô hình MVC

2. Sơ đồ những cách thao tác với 3 Tier

Có rất nhiều các để thực hiện việc kết nối trong 3 Tier dùng nhiều đối tượng khác nhau, dưới đây là mô hình tổng quát các bước thực hiện của từng cách để hoàn thành việc kết nối từ DB lên tới GUI.

Bll là viết tắt của từ gì trong lập trình năm 2024

Sơ đồ tổng quát các cách thực hiện tạo 3 Tier

Theo sơ đồ tên bạn có thể tạo mô hình theo các cách nào cũng được. trước hết mình sẽ nói qua các thuộc tính của chúng.

  • CSDL, cái này mình viết tắt cơ sở dữ liệu. Theo như chúng ta được học thì database có thể là SQL hay Access. Trong trường mình thì dùng Access cho dễ kiểm tra và thi tốt nghiệp (Cái này các bạn có thể tự tạo và ràng buộc mối quan hệ cho các table)
  • con: OleDbConnection : Làm việc với CSDL Access // tạo kết nối
  • cmd : OleDbCommand : Thực hiện stored procedure dùng để thực thi câu lệnh SQL
  • da: OleDbDataAdapter : Đổ dữ liệu vào ds và thực thi câu lệnh SQL
  • dv: DataView : được dùng cho việc sắp xếp, lọc, tìm kiếm và thay đổi các bản ghi của một bảng. Lớp DataView nằm trong namespace System.Data.

– ds: Dataset: là một đối tượng có thể chứa nhiều DataTable cùng với mối liên hệ giữa chúng (relationship) và kể các ràng buộc (constraint) được lưu hoàn toàn trong bộ nhớ để làm việc offline. Qua bài viết này, bạn có thể hiểu cấu trúc của DataSet, DataTable cũng như nạp dữ liệu, tạo relation, constraint và thao tác dữ liệu trên các đối tượng dữ liệu này

  • dr: OleDbDataReader : dùng để chứa kết quả trả về từ đối tượng Command với việc thực thi hàm ExecuteReader
  • Form là nơi giao diện hiển thị, đây là một phần của GUI

p/s: Trong loạt hướng dẫn này mình sẽ không giới thiệu từng class là như thế nào, chỉ nói sơ sở để khi làm việc với các class thì chúng ta hiểu vì sao áp dụng nó. Nếu có time mình sẽ tìm hiểu từng Class một và trình bày trong này.

Hiện tại có một số bạn sắp thi tốt nghiệp, mình không giúp được gì nhiều nhưng cũng muốn giúp các bạn hiểu rõ bản chất và có thể tự mình làm tốt hơn. Chúc các bạn sớm hoàn thành chương trình học.

Mình có sưu tập và tìm hiểu về mô hình này trước đây, vậy để có thể viết code tốt chúng ta cần hiểu rõ mô hình 3 Tier, 3 Layer là thế nào.

Bll là viết tắt của từ gì trong lập trình năm 2024

1. Mô hình 3 Tier

3-tiers là một kiến trúc kiểu Client/Server mà trong đó giao diện người dùng (UI-User Interface), các quy tắc xử lý(BR-business rule hay BL-business logic), và việc lưu trữ dữ liệu được phát triển như những module độc lập, và hầu hết là được duy trì trên các nền tảng độc lập, và mô hình 3 tầng (3-tiers) được coi là một kiến trúc phần mềm và là một mẫu thiết kế.

3-Tiers có tính vật lý (physical): là mô hình client-server (mỗi tier có thể đặt chung 1 nơi hoặc nhiều nơi, kết nối với nhau qua Web services, WCF, Remoting…).

Như vậy, ta có thể mô hình này phân tách ứng dụng ra làm 3 module riêng biệt, bao gồm:

– Presentation tier: bao gồm các thành phần phần xử lý giao diện Graphic User Interface (GUI). Được dùng để giao tiếp với người dùng, nhiệm vụ chính là hiển thị dữ liệu và nhận dữ liệu từ người dùng. – Business tier: gồm các thành phần Business Logic Layer (BLL), Data Access Layer (DAL) và Data Tranfer Object (DTO). Được dùng để cung cấp các chức năng của phần mềm – Data tier: lưu trữ dữ liệu, là các hệ quản trị CSDL như MS SQL Server, Oracle, SQLite, MS Access, XML files, text files,…Dùng để lưu trữ dữ liệu, cho phép lớp Business Logic có thể tìm kiếm, trích xuất, cập nhật…

2. Ưu điểm và nhược điểm mô hình 3 Tier

Ưu điểm:

– Dễ dàng mở rộng, thay đổi quy mô của hệ thống: Khi cần tải lớn, người quản trị có thể dễ dàng thêm các máy chủ vào nhóm, hoặc lấy bớt ra trong trường hợp ngược lại.

Nhược điểm:

– Việc truyền dữ liệu giữa các tầng sẽ chậm hơn vì phải truyền giữa các tiến trình khác nhau (IPC), dữ liệu cần phải được đóng gói -> truyền đi -> mở gói trước khi có thể dùng được.

– Việc phát triển ứng dụng phức tạp hơn.

3. Mô hình 3 Layer

Bll là viết tắt của từ gì trong lập trình năm 2024

Mô hình 3-Layers có tính logic (mỗi layer có 1 công việc) và là 1 thành phần của 3-Tiers. được cấu thành từ: Presentation Layers, Business Layers, và Data Layers. Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ (Services) mà mỗi lớp cung cấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi. Gồm 3 thành phần :

– Graphic User Interface (GUI): Thành phần giao diện, là các form của chương trình tương tác với người sử dụng. – Business Logic Layer (BLL): Xử lý các nghiệp vụ của chương trình như tính toán, xử lý hợp lệ và toàn vẹn về mặt dữ liệu. – Data Access Layer (DAL): Tầng giao tiếp với các hệ quản trị CSDL

4. Lý do dùng mô hình 3 Tier

Khi dùng từ layer, chúng ta nói tới việc phân chia ứng dụng thành các thành phần một cách logic theo chức năng hoặc theo vai trò, điều này giúp phần mềm của bạn có cấu trúc sáng sủa, dễ dùng lại, từ đó giúp việc phát triển và bảo trì dễ dàng hơn. Các layer khác nhau khi được thực thi vẫn có thể nằm trong cùng một vùng bộ nhớ của một process, và hiển nhiên việc giao tiếp giữa 2 layer có thể không phải là giao tiếp giữa 2 process, đồng nghĩa với việc chúng không liên quan tới mô hình Client/Server.

Trái lại, tier liên quan đến cách phân chia một cách vật lý các thành phần trên các máy tính khác nhau.

Điều làm nhiều người nhầm lẫn giữa layer và tier là chúng có cùng cách phân chia (presentation, business, data), tuy nhiên trên thực tế chúng khác nhau. Vì cách phân chia như trên nên 1 tier có thể chứa nhiều hơn 1 layer.

5. Lớp Data Access Layer (DAL) thuộc tầng nào?

Lớp Business Logic.

Trái với nhiều người nghĩ, cứ cái gì có chữ Data thì nó phải thuộc lớp 3, tuy nhiên vì DAL chỉ đóng vai trò truy vấn, chứ bản thân nó không cung cấp dữ liệu, và nó vẫn phải được thực thi bởi các Business Object, vậy nên trong đa số trường hợp nó sẽ nằm trong lớp 2 (một số thiết kế tách nó riêng thành 1 tier).

Nên nhớ rằng việc tách riêng ra một DAL giúp bạn có một thiết kế tốt hơn, nhưng không phải là bắt buộc. Và việc tự tạo một DAL với việc dùng chung một tập các lớp truy xuất dữ liệu được cung cấp bởi một công nghệ/công cụ có sẵn như LINQ to SQL, NHibernate hay Entity Framework không có gì khác nhau về kiến trúc hệ thống.

Có lẽ vì sự tồn tại của DAL mà rất nhiều người hiểu nhầm giữa 3-tiers và 3-layers. (trước đây mình cũng đã hiểu nhầm như vậy)