Thiết kế cơ sở dữ liệu – Các bước thực hiện – iViettech
- 1. Làm thế nào để thiết kế được Cơ sở dữ liệu?
- 2. Làm thế nào để biết Cơ sở dữ liệu thiết kế đúng?
Bài này tất cả chúng ta sẽ bàn về những yếu tố đó .
Mục Chính
- Thiết kế cấu trúc cơ sở dữ liệu
- Thực hành thiết kế Cơ sở dữ liệu
- Kết luận
Thiết kế cấu trúc cơ sở dữ liệu
Thiết kế cấu trúc cơ sở dữ liệu là quá trình mô hình hóa nhằm chuyển đổi các đối tượng từ thế giới thực (Real-world system) sang các bảng trong hệ thống cơ sở dữ liệu (Database system) đáp ứng các yêu cầu lưu trữ và khai thác dữ liệu.
Bạn đang đọc: Thiết kế cơ sở dữ liệu – Các bước thực hiện – iViettech
Mô hình hóa việc thiết kế cấu trúc cơ sở dữ liệu
Trong đó ,
- People (con người): những người tham gia vào hệ thống, bạn cần làm việc với những người này để xác định các dữ liệu cần lưu trữ, cần khai thác.
- Documents (tài liệu): bạn cần khảo sát các tài liệu trong hệ thống để xác định dữ liệu.
- Facilities(cơ sở vật chất): bạn cần quan tâm những cơ sở vật chất nào cần quản lý.
- Other systems(hệ thống khác, hệ thống tương tự): bạn cần tìm hiểu nghiên cứu các hệ thống tương tự để thu thập thêm dữ liệu.
Để triển khai việc phong cách thiết kế cơ sở dữ liệu tất cả chúng ta cần thực thi các bước sau đây :
- 1. Xác định các thành phần dữ liệu
- 2. Chia nhỏ các thành phần dữ liệu ra thành các phần nhỏ nhất mà hệ thống sử dụng
- 3. Xác định các bảng và các cột
- 4. Xác định khóa chính, khóa ngoại và mối quan hệ
- 5. Kiểm tra cấu trúc cơ sở dữ liệu được thiết kế với qui định chuẩn hóa
Thực hành thiết kế Cơ sở dữ liệu
Để các bạn dễ hiểu quy trình phong cách thiết kế cơ sở dữ liệu, tất cả chúng ta sẽ thực hành thực tế phong cách thiết kế cấu trúc cơ sở dữ liệu cho mạng lưới hệ thống quản trị đơn hàng có mẫu hóa đơn như sau :
Bước 1: Xác định các thành phần dữ liệu
Để xác lập các thành phần dữ liệu tất cả chúng ta cần thực thi các bước sau đây :
- 1. Phân tích hệ thống hiện tại
- 2. Đánh giá, xem xét các hệ thống tương tự
- 3. Phỏng vấn người dùng
- 4. Phân tích các tài liệu trong hệ thống hiện tại
Ở bài toán trên, tất cả chúng ta tích lũy được dữ liệu quan trọng là mẫu hóa đơn của đơn vị chức năng đang vận dụng, tất cả chúng ta sẽ nghiên cứu và phân tích nó để định nghĩa các thành phần dữ liệu .
Khảo sát hóa đơn trên tất cả chúng ta thu được các thành phần dữ liệu sau đây :
InvoiceNo : Số hóa đơn
InvoiceDate : Ngày ghi hóa đơn
CustomerName : Tên người mua
CustomerCompany : Tên công ty khách hành
CustomerAddress : Địa chỉ người mua
CustomerAccountNo : Số thông tin tài khoản của người mua
PaymentMethod : Phương thức giao dịch thanh toán
CustomerTaxNo : Mã số thuế của người mua
SequenceNo : Số thứ tự mua hành
ProductName : Tên mẫu sản phẩm
Unit : Đơn vị tính của loại sản phẩm
Quantity : Số lượng
UnitPrice : Đơn giá
Amount : Thành tiền
TotalAmount : Tổng tiền
Hóa Đơn đỏ VAT : Thuế giá trị ngày càng tăng
TotalPay : Tổng tiền phải trả
ByText : Ghi bằng chữLưu ý: Vì tiếng việt có dấu dễ gây lỗi khi code, nếu dùng không dấu thì dễ gây nhầm lẫn nên tôi khuyên các bạn nên đặt tên các thành phần dữ liệu theo tiếng Anh vừa tránh được các lỗi trên vừa giúp bạn dễ dàng tham gia các dự án quốc tế sau này.
Loại bỏ các dữ liệu trùng ở các dạng sau:
- 1. Hai thành phần dữ liệu nhưng trỏ đến một thành phần dữ liệu thực tế
- 2. Bỏ những thành phần tính toán được
- 3. Những trường không cần lưu trữ hoặc không có thực
Xem xét list các thành phần ở trên tất cả chúng ta loại các trường sau :
Amount : Thành phần này được tính từ đơn giá * số lượng
TotalAmount : Thành phần này được tính bằng tổng các mục thành tiền .
TotalPay : Thành phần này được tính bằng TotalAmount – VAT amount
ByText : Được đọc từ tổng tiền phải trả .
Các thành phần không cần như thông tin đơn vị chức năng bán, chữ ký người mua, chữ ký kế toán … Có nhưng thực sự bạn không cần lưu cùng đơn hàng vào cơ sở dữ liệu .Bước 2: Chia nhỏ các thành phần dữ liệu thành đơn vị nhỏ nhất hữu dụng
Để hiểu phần này bạn xem xét ví dụ sau :
CustomerName có giá trị là Nguyễn Văn A, trường này hoàn toàn có thể tách ra là Lastname ( Nguyễn ), Middlename ( Văn ) và Firstname ( A ). Tuy nhiên, có mạng lưới hệ thống thì lưu hết vào một trường là ‘ Nguyễn Văn A ’ như giao hàng ví dụ điển hình, có mạng lưới hệ thống chia ra là ‘ Nguyễn Văn ’, ‘ A ’ như mạng lưới hệ thống quản trị sinh viên, có mạng lưới hệ thống chia ra thành ‘ Nguyễn ’, ‘ Văn ’, ‘ A ’ như mạng lưới hệ thống quản trị bay … Do vậy, bạn cần xem xét mạng lưới hệ thống bạn đang thiết kế xây dựng sẽ lưu như thế nào .
Trong mạng lưới hệ thống này do hay sắp xếp theo tên người mua nên tất cả chúng ta tách nó ra thành 02 phần là CustomerLastName và CustomerFirstName .Tương tự trường CustomerAddress cung vậy, để quản trị theo tỉnh / thành phố và Q. / huyện tất cả chúng ta chia nó ra thành 03 trường như sau : CustomerAddress, CustomerDistrict và CustomerCity .
Bạn hãy xem xét các trường còn lại xem có phải tách trường nào ra nữa hay không .
Sau khi tách các trường cần thiết và loại bỏ các trường không cần thiết ta có các thành phần dữ liệu như sau:
InvoiceNo : Số hóa đơn
InvoiceDate : Ngày ghi hóa đơnCustomerFirstName: Tên khách hàng
CustomerLastName: Họ và tên lót của khách hàng
CustomerCompany : Tên công ty khách hành
CustomerAddress: Địa chỉ khách hàng
CustomerCity: Thành phố khách hàng đang ở
CustomerDistrict: Quận khách hàng đang ở
CustomerAccountNo : Số thông tin tài khoản của người mua
PaymentMethod : Phương thức thanh toán giao dịch
CustomerTaxNo : Mã số thuế của người mua
SequenceNo : Số thứ tự mua hành
ProductName : Tên mẫu sản phẩm
Unit : Đơn vị tính của loại sản phẩm
Quantity : Số lượng
UnitPrice : Đơn giá
Amount : Thành tiền
Hóa Đơn đỏ VAT : Thuế giá trị ngày càng tăngBước 3: Xác định các bảng và các cột cho cơ sở dữ liệu
Thực hiện theo các bước sau :
- 1. Nhóm các trường theo các thực thể (Entities)
- 2. Kiểm tra lại các trường thừa/thiếu.
Chúng ta bàn về thực thể, thực thể là người, là vật sống sót trong mạng lưới hệ thống đang xem xét. Đối với phong cách thiết kế Cơ sở dữ liệu tất cả chúng ta chỉ chăm sóc đến các thực thể mang thông tin. Xem xét list các thành phần dữ liệu từ trên xuống tất cả chúng ta hoàn toàn có thể liệt kê ra các thực thể thấy được như sau :
- Invoice(Hóa đơn)
- Customer (Khách hàng)
- Product (Sản phẩm)
Có thể bạn sẽ thấy khó hiểu chỗ này, bạn cần tâm lý kỹ để hiểu nguyên do vì sao chọn được 03 thực thể trên .
1.Tiếp theo chúng ta nhóm các thành phần dữ liệu tương ứng vào các thực thể
2. Kiểm tra các trường thừa/thiếu
- Nếu có trường thừa ra, bạn cần xem xét nó có thực sự cần lưu trữ không? Nếu cần lưu trữ thì bạn cần bổ sung thực thể chứa thuộc tính này. Nếu không cần lưu trữ bạn cần loại bỏ nó đi.
- Bạn cần kiểm tra từng thực thể xem có cần bổ sung thuộc tính bào không? Nếu cần thì bạn thêm vào.
Bước 4: Xác định khóa chính, khóa ngoại và mối quan hệ giữa các thực thể
- 1. Xác định khóa chính cho các thực thể
- 2. Xác định quan hệ giữa các thực thể
- 3. Phân tách để đưa về mô hình nhị nguyên
- 4. Bổ sung khóa ngoại
a. Xác định khóa chính cho các thực thể
Khái niệm về khóa chính các bạn xem ở bài Cơ bản về cơ sở dữ liệu. Trong phần này chúng ta bàn về cách xác định khóa chính cho thực thể. Khóa chính của thực thể có thể xác định như sau:
- -> Chọn từ một trường có sẵn đủ điều kiện làm khóa chính như InvoiceNo chẳng hạn.
- -> Nếu chưa có bạn có thể bổ sung một trường tự tăng để làm khóa chính như CustomerNo, ProductNo.
Lúc này tất cả chúng ta có các thực thể như sau :
b. Xác định mối quan hệ giữa các bảng
Xem xét các thực thể bạn có để xác lập các định mối quan hệ của chúng, tất cả chúng ta có các thực thể Customer, Product và Invoice thì mối quan hệ của chúng chỉ hoàn toàn có thể là Customer mua Product và sinh ra Invoice để ghi nhận thông tin .
Mối quan hệ trong quốc tế thực của các thực thể. Chuyển sang quy mô thực thể nó được trình diễn như sau :
Xác định loại quan hệ giữa các thực thể như sau :
- 1. Quan hệ giữa Customer và Invoice, chúng ta thấy mỗi khách hàng có thể mua nhiều đơn hàng, nhưng mỗi đơn hàng chỉ bán cho 1 khách hàng. Do vậy quan hệ này là 1-n.
- 2. Tương tự quan hệ giữa Invoice và Product, mỗi hóa đơn có thể mua nhiều sản phẩm, mỗi sản phẩm có thể bán cho nhiều hóa đơn nên quan hệ này là quan hệ n-n.
c. Phân tách các quan hệ để đưa về mô hình nhị nguyên
Theo quy mô cơ sở dữ liệu quan hệ nếu bạn để sống sót mối quan hệ n-n nó sẽ gây ra dư thừa dữ liệu ( xem bài yếu tố dư thừa dữ liệu ). Do vậy, bạn cần tách quan hệ ra thành các quan hệ 1 – n bằng cách thêm vào bảng dữ liệu mới. Trong ví dụ trên tất cả chúng ta thêm vào bảng InvoiceDetails để tách nó ra thành 02 quan hệ 1 – n như sau :
Ở đây bạn sẽ khó hiểu là tách trường nào cho bảng InvoiceDetails, dựa vào đâu. Việc này sẽ được giải thích rõ trong bài chuẩn hóa cơ sở dữ liệu bạn xem thêm nhé.
d. Bổ sung khóa ngoại cho các mối quan hệ
Khi đã xác lập xong các mối quan hệ, bạn cần đặt các khóa ngoại vào các bảng bên n trong quan hệ 1 – n để tạo link giữa chúng. Lúc này tất cả chúng ta có cấu trúc cơ sở dữ liệu như sau :
Bước 5: Chuẩn hóa cơ sở dữ liệu
Bước này giúp bạn xem lại cơ sở dữ liệu vừa thiết kế có đáp ứng được qui định của cơ sở dữ liệu quan hệ hay không. Tuy nhiên, đây là một chủ đề dài nên tôi sẽ tách ra thành một bài riêng, bạn đọc thêm ở bài Chuẩn hóa cơ sở dữ liệu nhé.
Làm thế nào để biết được cơ sở dữ liệu được thiết kế đúng?
Bạn chỉ hoàn toàn có thể Tóm lại cơ sở dữ liệu được phong cách thiết kế đúng khi các công dụng của mạng lưới hệ thống thiết lập thành công xuất sắc trên nó. Do vậy, bạn hoàn toàn có thể chạy thử ( dry run ) các công dụng trên cấu trúc cơ sở dữ liệu để kiểm tra phong cách thiết kế của nó có tương thích hay không .
Kết luận
Thiết kế cơ sở dữ liệu là một chủ đề khó, liên quan đến nhiều chủ đề nên bạn cần đọc kỹ và đọc các bài liên quan của chuỗi bài viết này để hiểu rõ hơn về nó. Ngoài ra, bạn cũng cần thực tập thiết kế nhiều cơ sở dữ để có kinh nghiệm thiết kế tốt hơn.
Xem thêm: Giáo án dạy học Toán 11 theo định hướng phát triển phẩm chất năng lực – https://thomaygiat.com
Bài tiếp: Chuẩn hóa cơ sở dữ liệu
Bài trước: Cơ sở dữ liệu là gì? Cơ sở dữ liệu quan hệ là gì?
Nếu bạn có điều gì chưa rõ hoặc vướng mắc bạn hoàn toàn có thể để lại phản hồi bên dưới tôi sẽ sẵn sàng chuẩn bị trao đổi với bạn .
Source: https://thomaygiat.com
Category : Kỹ Thuật Số
Chuyển vùng quốc tế MobiFone và 4 điều cần biết – MobifoneGo
Muốn chuyển vùng quốc tế đối với thuê bao MobiFone thì có những cách nào? Đừng lo lắng, bài viết này của MobiFoneGo sẽ giúp…
Cách copy dữ liệu từ ổ cứng này sang ổ cứng khác
Bạn đang vướng mắc không biết làm thế nào để hoàn toàn có thể copy dữ liệu từ ổ cứng này sang ổ cứng khác…
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel Xử lý dữ liệu từ máy chấm công là việc làm vô cùng…
Cách nhanh nhất để chuyển đổi từ Android sang iPhone 11 | https://thomaygiat.com
Bạn đã mua cho mình một chiếc iPhone 11 mới lạ vừa ra mắt, hoặc có thể bạn đã vung tiền và có một chiếc…
Giải pháp bảo mật thông tin trong các hệ cơ sở dữ liệu phổ biến hiện nay
Hiện nay, với sự phát triển mạnh mẽ của công nghệ 4.0 trong đó có internet và các thiết bị công nghệ số. Với các…
4 điều bạn cần lưu ý khi sao lưu dữ liệu trên máy tính
08/10/2020những chú ý khi tiến hành sao lưu dữ liệu trên máy tính trong bài viết dưới đây của máy tính An Phát để bạn…