Cơ sở dữ liệu thiết kế cơ bản

Cơ sở dữ liệu thiết kế cơ bản

Quan trọng:  Bài viết này là dịch máy, hãy xem tuyên bố miễn trừ trách nhiệm. Bạn hãy tìm phiên bản tiếng Anh của bài viết này tại đây để tham khảo.

Cơ sở dữ liệu được thiết kế đúng cách cung cấp cho bạn quyền truy nhập vào thông tin Cập Nhật, chính xác. Vì một thiết kế đúng là cần thiết để đạt được mục tiêu của bạn trong làm việc với cơ sở dữ liệu, đầu tư thời gian cần thiết để tìm hiểu nguyên tắc thiết kế tốt nghĩa. Cuối cùng, bạn có nhiều khả năng để kết thúc với cơ sở dữ liệu đáp ứng nhu cầu của bạn và có thể dễ dàng phù hợp với thay đổi.

Bài viết này cung cấp hướng dẫn để lập kế hoạch cơ sở dữ liệu trên máy tính. Bạn sẽ tìm hiểu cách để quyết định những thông tin bạn cần, làm thế nào để chia thông tin đó vào phù hợp bảng và cột, và làm thế nào những bảng liên kết với nhau. Bạn nên đọc bài viết này trước khi bạn tạo cơ sở dữ liệu trên máy tính đầu tiên.

Quan trọng: Access cung cấp trải nghiệm thiết kế cho phép bạn tạo cơ sở dữ liệu cho các ứng dụng Web. Thiết kế nhiều điều cần cân nhắc sẽ khác nhau khi bạn thiết kế cho trang Web. Bài viết này không thảo luận về thiết kế ứng dụng Web cơ sở dữ liệu. Để biết thêm thông tin, hãy xem bài viết xây dựng một cơ sở dữ liệu để chia sẻ trên Web.

Trong bài viết này

Một số thuật ngữ cơ sở dữ liệu để biết

Thiết kế cơ sở dữ liệu tốt là gì?

Quy trình thiết kế

Xác định mục đích của cơ sở dữ liệu của bạn

Tìm kiếm và sắp xếp thông tin yêu cầu

Chia các thông tin vào bảng

Chuyển các mục thông tin vào cột

Cách xác định khóa chính

Tạo mối quan hệ bảng

Tinh chỉnh thiết kế

Áp dụng quy tắc bình thường


Một số thuật ngữ cơ sở dữ liệu để biết

Access tổ chức của bạn thông tin vào bảng: danh sách các hàng và cột của một kế toán bàn phím hoặc bảng tính. Trong một cơ sở dữ liệu đơn giản, bạn có thể chỉ có một bảng. Đối với hầu hết các cơ sở dữ liệu, bạn sẽ cần nhiều hơn một. Ví dụ, bạn có thể có một bảng lưu thông tin về sản phẩm, một bảng khác lưu thông tin về đơn hàng và bảng khác với thông tin về khách hàng.

Ảnh mô tả ba bảng trong biểu dữ liệu

Mỗi hàng đúng hơn được gọi là bản ghivà mỗi cột, một trường. Bản ghi là một cách nhất quán và có ý nghĩa để kết hợp thông tin về điều gì đó. Một trường là một mục đơn thông tin — một kiểu mục xuất hiện trong mỗi bản ghi. Trong bảng sản phẩm, ví dụ, mỗi hàng hoặc bản ghi sẽ giữ các thông tin về một sản phẩm. Mỗi cột hoặc trường chứa một số loại thông tin về sản phẩm đó, chẳng hạn như tên hoặc giá của nó.

Đầu trang

Thiết kế cơ sở dữ liệu tốt là gì?

Nguyên tắc nhất định hướng dẫn quy trình thiết kế cơ sở dữ liệu. Nguyên tắc đầu tiên là thông tin trùng lặp (còn được gọi là thừa dữ liệu) là không hợp lệ, vì nó ngắn dung lượng và tăng khả năng lỗi và sự không nhất quán. Nguyên tắc thứ hai là tính chính xác và đầy đủ thông tin quan trọng. Nếu cơ sở dữ liệu của bạn chứa thông tin không chính xác, bất kỳ báo cáo kéo thông tin từ cơ sở dữ liệu cũng sẽ chứa thông tin không chính xác. Kết quả, bất kỳ quyết định bạn thực hiện dựa trên những báo cáo sẽ rồi được misinformed.

Thiết kế cơ sở dữ liệu tốt là, do đó, một mà:

  • Chia thông tin của bạn vào chủ đề dựa trên bảng để giảm dữ liệu thừa.

  • Cung cấp quyền truy nhập thông tin đó yêu cầu gia nhập thông tin trong các bảng với nhau khi cần thiết.

  • Giúp hỗ trợ và đảm bảo tính chính xác và tính toàn vẹn thông tin của bạn.

  • Chứa xử lý dữ liệu của bạn và báo cáo nhu cầu.

Đầu trang

Quy trình thiết kế

Quy trình thiết kế bao gồm các bước sau đây:

  • Xác định mục đích của cơ sở dữ liệu của bạn   

    Điều này giúp bạn chuẩn bị để biết các bước còn lại.

  • Tìm và sắp xếp thông tin cần thiết   

    Thu thập tất cả các loại thông tin bạn có thể muốn ghi trong cơ sở dữ liệu, chẳng hạn như số sản phẩm tên và thứ tự.

  • Chia thông tin vào bảng   

    Chia các mục thông tin của bạn vào thực thể chính hoặc chủ đề, chẳng hạn như sản phẩm hoặc đơn hàng. Mỗi chủ đề rồi thành bảng.

  • Chuyển thông tin mục thành cột   

    Quyết định thông tin nào bạn muốn lưu trữ trong mỗi bảng. Mỗi mục sẽ trở thành một trường, và được hiển thị dưới dạng một cột trong bảng. Ví dụ, một bảng nhân viên có thể bao gồm trường chẳng hạn như họ và thuê ngày.

  • Xác định khóa chính   

    Chọn từng bảng khóa chính. Khóa chính là một cột được dùng để nhận dạng duy nhất mỗi hàng. Ví dụ có thể là mã sản phẩm hoặc thứ tự ID.

  • Thiết lập mối quan hệ bảng   

    Xem xét mỗi bảng và quyết định cách dữ liệu trong một bảng liên quan đến dữ liệu trong các bảng khác. Thêm trường vào bảng hoặc tạo bảng mới để làm rõ các mối quan hệ, theo nhu cầu.

  • Tinh chỉnh thiết kế của bạn   

    Phân tích thiết kế của bạn để biết lỗi. Tạo các bảng và thêm vài bản ghi của dữ liệu mẫu. Xem nếu bạn có thể nhận được các kết quả bạn muốn từ bảng của bạn. Thực hiện điều chỉnh thiết kế, nếu cần.

  • Áp dụng quy tắc bình thường   

    Áp dụng quy tắc chuẩn hóa dữ liệu để xem nếu bảng của bạn được cấu trúc chính xác. Thực hiện điều chỉnh với các bảng, nếu cần.

Đầu trang

Xác định mục đích của cơ sở dữ liệu của bạn

Nó là một ý kiến hay ghi lại mục đích của cơ sở dữ liệu trên giấy — mục đích của nó, như thế nào bạn mong đợi để sử dụng nó và ai sẽ sử dụng nó. Đối với cơ sở dữ liệu nhỏ dành cho doanh nghiệp dựa trên một trang chủ, ví dụ, bạn có thể viết điều gì đó đơn giản như "cơ sở dữ liệu khách hàng giữ lại danh sách khách hàng thông tin cho mục đích sản xuất gửi thư và báo cáo." Nếu cơ sở dữ liệu phức tạp hoặc được dùng bởi nhiều người, thường xuyên xuất hiện trong một công ty thiết đặt, mục đích dễ dàng có thể là một đoạn văn bản hoặc thêm và sẽ bao gồm khi và làm thế nào từng người sẽ sử dụng cơ sở dữ liệu. Ý tưởng là có một câu lệnh nhiệm vụ phát triển cũng có thể được gọi trong suốt quá trình thiết kế. Có như một câu lệnh giúp bạn tập trung vào mục tiêu của bạn khi bạn đưa ra quyết định.

Đầu trang

Tìm kiếm và sắp xếp thông tin yêu cầu

Để tìm và sắp xếp thông tin cần thiết, hãy bắt đầu với thông tin hiện có của bạn. Ví dụ, bạn có thể ghi lại đơn hàng mua hàng trong một sổ cái hoặc giữ khách hàng thông tin trên giấy biểu mẫu trong một tủ. Thu thập các tài liệu và danh sách mỗi loại thông tin hiển thị (ví dụ, mỗi hộp mà bạn điền trên biểu mẫu). Nếu bạn không có bất kỳ biểu mẫu hiện có, giả sử thay vào đó bạn phải thiết kế biểu mẫu ghi lại thông tin khách hàng. Những thông tin nào bạn đặt trong biểu mẫu không? Bạn sẽ tạo ra các hộp điền vào những gì? Xác định và liệt kê từng những mục này. Ví dụ, giả sử bạn hiện đang giữ cho danh sách khách hàng trên thẻ chỉ mục. Kiểm tra các thẻ có thể hiển thị mỗi thẻ giữ một khách hàng tên, địa chỉ, thành phố, trạng thái, mã bưu chính và số điện thoại. Mỗi trong các mục đại diện cho một cột tiềm năng trong bảng.

Khi bạn chuẩn bị danh sách này, không phải lo lắng về việc nó hoàn hảo thứ nhất. Thay vào đó, danh sách mỗi mục đến ý. Nếu người khác sẽ sử dụng cơ sở dữ liệu, hãy yêu cầu cho ý tưởng của họ, quá. Bạn có thể tinh chỉnh danh sách sau này.

Tiếp theo, hãy xem xét các loại báo cáo hoặc gửi thư, bạn có thể muốn tạo ra từ cơ sở dữ liệu. Ví dụ, bạn có thể muốn báo cáo doanh số sản phẩm để hiển thị doanh số theo vùng, hoặc một báo cáo tóm tắt hàng tồn kho Hiển thị các cấp độ hàng tồn kho sản phẩm. Bạn cũng có thể muốn tạo biểu mẫu thư để gửi cho khách hàng sẽ thông báo bán sự kiện hoặc sẽ cung cấp một premium. Thiết kế báo cáo trong ý, và giả sử nó sẽ trông giống như. Thông tin nào bạn muốn đặt trên báo cáo? Danh sách mỗi mục. Làm tương tự cho mẫu thư và cho bất kỳ báo cáo khác mà bạn dự kiến sẽ tạo ra.

một người đang hình dung báo cáo kiểm kê sản phẩm

Cho phép nghĩ đến các báo cáo và gửi thư, bạn có thể muốn tạo giúp bạn xác định mục mà bạn sẽ cần trong cơ sở dữ liệu của bạn. Ví dụ, giả sử bạn cung cấp cho khách hàng cơ hội để chọn tham gia tới (hoặc mặt) Cập Nhật định kỳ e-mail, và bạn muốn in danh sách những người đã chọn tham gia. Để ghi lại thông tin đó, bạn thêm một cột "Gửi email" bảng khách hàng. Cho mỗi khách hàng, bạn có thể thiết lập trường để có hoặc không.

Yêu cầu để gửi thông điệp email cho khách hàng gợi ý các mục khác để ghi lại. Sau khi bạn biết rằng một khách hàng nào đó nhận được thông điệp email, bạn cũng sẽ cần biết địa chỉ email để gửi cho chúng. Do đó, bạn cần để ghi lại một địa chỉ email cho mỗi khách hàng.

Nào thì nên tốt để xây dựng một mẫu của mỗi báo cáo hoặc xuất danh sách và cân nhắc những mục nào bạn sẽ cần để tạo ra các báo cáo. Ví dụ, khi bạn kiểm tra một chữ cái biểu mẫu, một số điều có thể đến ý. Nếu bạn muốn bao gồm lời chào thích — ví dụ, "Ông", "Bà" hoặc "Bà" chuỗi bắt đầu lời chào, bạn sẽ phải tạo một mục lời chào. Ngoài ra, bạn thường có thể bắt đầu một chữ cái bằng "Kính ông Smith", thay vì "kính. Ông Sylvester Smith". Điều này cho thấy bạn thường muốn lưu trữ họ riêng biệt với tên.

Một điểm quan trọng cần nhớ là bạn nên ngắt mỗi phần thông tin vào các phần hữu ích nhỏ nhất. Trong trường hợp tên, để làm cho họ có thể có sẵn, bạn sẽ ngắt tên thành hai phần — tên và họ. Để sắp xếp báo cáo theo họ, ví dụ, nó sẽ giúp có tên của khách hàng cuối cùng được lưu trữ riêng biệt. Nói chung, nếu bạn muốn sắp xếp, tìm kiếm, tính toán hoặc báo cáo dựa trên một mục thông tin, bạn nên đặt mục đó trong trường riêng của nó.

Suy nghĩ về các câu hỏi bạn có thể muốn cơ sở dữ liệu để trả lời. Ví dụ, số lượng bán hàng của sản phẩm của bạn nổi bật nào bạn đóng cuối tháng? Khách hàng của bạn tốt nhất để nằm ở đâu? Ai là nhà cung cấp cho sản phẩm bán chạy nhất của mình? Dự đoán những câu hỏi này sẽ giúp bạn số 0 trong trên mục bổ sung để ghi lại.

Sau khi thu thập thông tin này, bạn đã sẵn sàng cho bước tiếp theo.

Đầu trang

Chia các thông tin vào bảng

Để chia thông tin vào bảng, hãy chọn thực thể chính, hoặc đối tượng. Ví dụ, sau khi tìm kiếm và sắp xếp thông tin cho một cơ sở dữ liệu doanh số sản phẩm, danh sách sơ bộ có thể trông như thế này:

Các mục thông tin viết tay được nhóm thành các đối tượng

Thực thể chính Hiển thị ở đây là các sản phẩm, các nhà cung cấp, khách hàng và các đơn hàng. Do đó, nào thì nên bắt đầu với các bảng bốn: một cho thông tin về sản phẩm, cho thông tin về nhà cung cấp cho thông tin về khách hàng, và một cho thông tin về đơn hàng. Mặc dù điều này không hoàn tất danh sách, đó là điểm khởi đầu tốt. Bạn có thể tiếp tục để tinh chỉnh danh sách này cho đến khi bạn có một thiết kế hoạt động tốt.

Khi bạn trước tiên hãy xem lại sơ bộ danh sách mục, bạn sẽ muốn đặt chúng tất cả trong bảng đơn lẻ, thay vì bốn Hiển thị trong hình minh họa trước đó. Bạn sẽ tìm hiểu đây tại sao có nghĩa là một ý tưởng không hợp lệ. Hãy xem xét cho một thời điểm, bảng được hiển thị dưới đây:

Ảnh cho thấy bảng chứa cả sản phẩm và nhà cung cấp

Trong trường hợp này, mỗi hàng chứa thông tin về sản phẩm và nhà cung cấp của nó. Vì bạn có thể có nhiều sản phẩm từ nhà cung cấp cùng, nhà cung cấp tên và địa chỉ thông tin có thể lặp lại nhiều lần. Dung lượng ổ đĩa ngắn này. Ghi nhà cung cấp thông tin chỉ một lần trong một bảng nhà cung cấp riêng biệt, và sau đó có thể nối kết bảng đó vào bảng sản phẩm, là nhiều giải pháp tốt hơn.

Thứ hai vấn đề với thiết kế này đi kèm khi bạn cần sửa đổi thông tin về nhà cung cấp. Ví dụ, giả sử bạn cần thay đổi một nhà cung cấp địa chỉ. Vì nó sẽ xuất hiện ở nhiều vị trí, bạn có thể vô tình thay đổi địa chỉ ở một nơi nhưng quên để thay đổi trong những người khác. Ghi địa chỉ của nhà cung cấp chỉ ở một chỗ giải quyết vấn đề.

Khi bạn thiết kế cơ sở dữ liệu của bạn, hãy thử luôn ghi thực tế mỗi chỉ cần một lần. Nếu bạn thấy mình lặp lại cùng thông tin trong nhiều hơn một nơi, chẳng hạn như địa chỉ cho một nhà cung cấp cụ thể, hãy đặt thông tin đó vào bảng riêng biệt.

Cuối cùng, giả sử có chỉ có một sản phẩm được cung cấp bởi Coho Winery, và bạn muốn xóa bỏ sản phẩm, nhưng giữ lại thông tin về tên và địa chỉ nhà cung cấp. Làm thế nào bạn có thể xóa bản ghi sản phẩm mà không làm mất cũng nhà cung cấp thông tin? Bạn không thể. Vì từng bản ghi chứa thông tin về một sản phẩm, cũng như thông tin về một nhà cung cấp, bạn không thể xóa bỏ một mà không xóa bỏ khác. Để giữ các sự kiện riêng biệt, bạn phải tách một bảng thành hai: một bảng để biết thông tin sản phẩm và bảng khác cho nhà cung cấp thông tin. Xóa bỏ bản ghi sản phẩm sẽ xóa bỏ chỉ các thông tin về sản phẩm, không phải là các thông tin về nhà cung cấp.

Sau khi bạn đã chọn chủ đề được thể hiện bằng một bảng, cột trong bảng đó sẽ lưu trữ thông tin chỉ về chủ đề. Ví dụ, bảng sản phẩm sẽ lưu trữ thông tin về các sản phẩm. Vì địa chỉ nhà cung cấp là một thực tế về nhà cung cấp, và không phải là một thực tế về sản phẩm, nó lưu ở đó trong bảng nhà cung cấp.

Đầu trang

Chuyển các mục thông tin vào cột

Để xác định các cột trong bảng, quyết định những thông tin bạn cần theo dõi về chủ đề ghi lại trong bảng. Ví dụ, dành cho bảng khách hàng, tên, địa chỉ, City-State-Zip, gửi email, địa chỉ email và lời chào bao gồm một danh sách bắt đầu tốt cột. Mỗi bản ghi trong bảng chứa cùng một tập hợp cột, vì vậy bạn có thể lưu trữ tên, địa chỉ, City-State-Zip, gửi email, chào email địa chỉ và thông tin cho từng bản ghi. Ví dụ, cột địa chỉ chứa địa chỉ của khách hàng. Mỗi bản ghi có chứa dữ liệu về một khách hàng và trường địa chỉ chứa địa chỉ cho khách hàng đó.

Sau khi bạn đã quyết định bộ ban đầu của cột cho mỗi bảng, bạn có thể tinh chỉnh thêm các cột. Ví dụ, nào thì nên lưu trữ tên khách hàng dưới dạng hai cột riêng biệt: tên và họ, để bạn có thể sắp xếp, tìm kiếm, và tạo chỉ mục trên chỉ các cột. Tương tự, địa chỉ thực sự bao gồm năm cấu phần riêng biệt, địa chỉ, thành phố, trạng thái, mã bưu chính và quốc gia/khu vực và cũng nào thì nên lưu giữ chúng trong cột riêng biệt. Nếu bạn muốn thực hiện tìm kiếm, thao tác lọc hoặc sắp xếp theo tiểu bang, ví dụ, bạn cần thông tin trạng thái lưu trữ trong một cột riêng biệt.

Bạn cũng nên cân nhắc xem cơ sở dữ liệu sẽ giữ những thông tin có nguồn gốc trong nước duy nhất, hoặc quốc tế, cũng như. Ví dụ, nếu bạn có kế hoạch lưu trữ quốc tế địa chỉ, thật tốt hơn để có một cột khu vực thay vì trạng thái, vì một cột có thể phù hợp với cả trong nước kỳ và khu vực quốc gia/khu vực khác. Tương tự, mã bưu chính nghĩa nhiều hơn Mã Zip nếu bạn đang lưu trữ quốc tế địa chỉ.

Danh sách sau đây Hiển thị một số Mẹo cho việc xác định các cột của bạn.

  • Không bao gồm dữ liệu được tính toán   

    Trong hầu hết các trường hợp, bạn sẽ không lưu trữ kết quả của phép tính trong bảng. Thay vào đó, bạn có thể có quyền truy nhập thực hiện các phép tính khi bạn muốn xem kết quả. Ví dụ, giả sử một báo cáo sản phẩm trên thứ tự hiển thị tổng phụ đơn vị đơn hàng cho mỗi thể loại sản phẩm trong cơ sở dữ liệu là có. Tuy nhiên, bạn sẽ không có cột tổng phụ đơn vị trên thứ tự trong bất kỳ bảng. Thay vào đó, bảng sản phẩm bao gồm một cột đơn vị trên thứ tự lưu trữ các đơn vị đơn hàng cho từng sản phẩm. Sử dụng dữ liệu đó, Access tính toán tổng phụ mỗi khi bạn in báo cáo. Tổng phụ đó không nên được lưu giữ trong một bảng.

  • Lưu trữ thông tin trong các phần lô-gic nhỏ nhất   

    Bạn có thể muốn có một trường cho họ tên đầy đủ, hoặc cho tên sản phẩm cùng với mô tả sản phẩm. Nếu bạn kết hợp nhiều hơn một loại thông tin trong một trường, thật khó để truy xuất thông tin cá nhân sau này. Hãy thử ngắt thông tin vào các phần lô-gic; Ví dụ, tạo các trường riêng biệt cho họ và tên, hoặc cho tên sản phẩm, thể loại và mô tả.

Ảnh cho thấy các mục thông tin trong quá trình thiết kế

Sau khi bạn có tinh chỉnh dữ liệu cột trong mỗi bảng, bạn đã sẵn sàng để chọn mỗi bảng khóa chính.

Đầu trang

Cách xác định khóa chính

Mỗi bảng sẽ bao gồm một cột hay một tập hợp các cột dạng duy nhất mỗi hàng được lưu trữ trong bảng. Điều này thường là một số định danh duy nhất, chẳng hạn như một số ID nhân viên hoặc một số sê-ri. Trong cơ sở dữ liệu thuật ngữ, thông tin này được gọi là khóa chính của bảng. Access sử dụng các trường khóa chính để nhanh chóng kết hợp dữ liệu từ nhiều bảng và đưa dữ liệu lại gần nhau cho bạn.

Nếu bạn đã có một mã định danh duy nhất cho một bảng, chẳng hạn như một số sản phẩm dạng duy nhất mỗi sản phẩm trong danh mục của bạn, bạn có thể dùng mã định danh đó làm khóa chính của bảng — nhưng chỉ khi các giá trị trong cột này sẽ luôn là khác nhau cho từng bản ghi. Bạn không thể có giá trị trùng lặp trong một khóa chính. Ví dụ, không dùng tên của mọi người làm khóa chính, vì tên không phải là duy nhất. Bạn có thể dễ dàng có hai người có cùng tên trong cùng một bảng.

Khóa chính phải luôn có một giá trị. Nếu giá trị của cột có thể trở nên không gán hoặc không xác định (một giá trị thiếu) ở một số điểm, nó không thể được dùng như một cấu phần trong khóa chính.

Bạn nên luôn luôn chọn một khóa chính có giá trị sẽ không thay đổi. Trong một cơ sở dữ liệu sử dụng nhiều hơn một bảng, khóa chính của một bảng có thể được dùng như tham chiếu trong các bảng khác. Nếu khóa chính thay đổi, thay đổi phải cũng được áp dụng ở khắp mọi nơi chính được tham chiếu. Sử dụng một khóa chính mà sẽ không thay đổi giảm hội khóa chính có thể trở nên out đồng bộ hóa với các bảng khác mà tham chiếu đó.

Mức độ thường xuyên, một số tùy ý duy nhất được dùng làm khóa chính. Ví dụ, bạn có thể gán mỗi đơn hàng một số thứ tự duy nhất. Số thứ tự của chỉ mục đích là để xác định một thứ tự. Sau khi được gán, nó không bao giờ thay đổi.

Nếu bạn không có ý một cột hay một tập hợp các cột mà có thể thực hiện một khóa chính tốt, hãy cân nhắc sử dụng cột có kiểu dữ liệu tự động đánh số. Khi bạn sử dụng kiểu dữ liệu tự động đánh số, Access sẽ tự động gán một giá trị cho bạn. Một mã định danh được factless; nó không chứa thực tế thông tin mô tả hàng đại diện cho nó. Mã định danh factless là lý tưởng để dùng làm khóa chính vì chúng không thay đổi. Khóa chính có chứa các thông tin về một hàng — một số điện thoại hoặc một khách hàng tên, ví dụ — có nhiều khả năng để thay đổi, vì thông tin thực tế chính có thể thay đổi.

Ảnh cho thấy bảng Sản phẩm với trường khóa chính.

1. một cột được đặt kiểu dữ liệu tự động đánh số thường có một khóa chính tốt. Không có ID sản phẩm hai đều giống nhau.

Trong một số trường hợp, bạn có thể muốn sử dụng hai hoặc nhiều trường có cùng nhau, cung cấp khóa chính của một bảng. Ví dụ, một bảng chi tiết đơn hàng mua sắm dòng mục cho đơn hàng sẽ sử dụng hai cột khóa chính của nó: ID đơn đặt hàng và ID sản phẩm. Khi một khóa chính sử dụng nhiều cột, nó cũng được gọi là khoá phức hợp.

Cho sản phẩm bán hàng cơ sở dữ liệu, bạn có thể tạo một cột số tự động cho mỗi bảng để đóng vai trò là khóa chính: ProductID cho bảng sản phẩm, OrderID cho đơn hàng vào bảng, CustomerID trong bảng khách hàng, và SupplierID cho bảng nhà cung cấp.

Ảnh cho thấy các mục thông tin trong quá trình thiết kế


Đầu trang

Tạo mối quan hệ bảng

Bây giờ bạn đã chia cho thông tin của bạn vào bảng, bạn cần một cách để hiển thị thông tin với nhau lại theo cách có ý nghĩa. Ví dụ, biểu mẫu sau đây bao gồm thông tin từ nhiều bảng.

Ảnh của biểu mẫu đơn hàng

1. Các thông tin trong biểu mẫu này được lấy từ bảng Khách hàng...

2... các bảng nhân viên...

3... các bảng đơn hàng...

4... các bảng sản phẩm...

5... .và bảng chi tiết đơn hàng.

Truy nhập là một hệ thống quản lý cơ sở dữ liệu quan hệ. Trong một cơ sở dữ liệu quan hệ, bạn chia thông tin của bạn vào bảng riêng biệt, dựa trên chủ đề. Bạn dùng mối quan hệ bảng để hiển thị thông tin với nhau khi cần thiết.

Đầu trang

Tạo một mối quan hệ một-nhiều

Cân nhắc ví dụ này: các nhà cung cấp và sản phẩm bảng trong sản phẩm cơ sở dữ liệu đơn hàng. Một nhà cung cấp có thể cung cấp bất kỳ số nào của sản phẩm. Nó theo dõi cho bất kỳ nhà cung cấp được thể hiện trong bảng nhà cung cấp, có thể có nhiều sản phẩm được thể hiện trong bảng sản phẩm. Mối quan hệ giữa các bảng nhà cung cấp và bảng sản phẩm là, do đó, mối quan hệ một-nhiều.

Khái quát về một-nhiều

Để thể hiện mối quan hệ một-nhiều trong thiết kế cơ sở dữ liệu của bạn, hãy khóa chính ở bên "một" của mối quan hệ và thêm nó dưới dạng một cột bổ sung hoặc các cột bảng ở bên "nhiều" của mối quan hệ. Trong trường hợp này, ví dụ, bạn thêm nhà cung cấp ID cột từ bảng nhà cung cấp bảng sản phẩm. Truy nhập có thể dùng số ID nhà cung cấp trong bảng sản phẩm để xác định nhà cung cấp chính xác cho từng sản phẩm.

Nhà cung cấp ID cột trong bảng sản phẩm được gọi là một khóa ngoại. Khóa ngoại là khóa chính của một bảng khác. Nhà cung cấp ID cột trong bảng sản phẩm là một khóa ngoại vì nó cũng là khóa chính trong bảng nhà cung cấp.

Ảnh cho thấy các mục thông tin trong quá trình thiết kế

Bạn cung cấp cơ sở để gia nhập bảng có liên quan bằng cách thiết lập các cặp của khóa chính và khóa ngoại. Nếu bạn không chắc chắn bảng nào cần chia sẻ một cột phổ biến, xác định mối quan hệ một-nhiều đảm bảo rằng hai bảng liên quan đến thực sự, sẽ, yêu cầu một cột được chia sẻ.

Đầu trang

Tạo một mối quan hệ nhiều-nhiều

Cân nhắc mối quan hệ giữa các bảng sản phẩm và bảng đơn hàng.

Một thứ tự duy nhất có thể bao gồm nhiều hơn một sản phẩm. Mặt khác, một sản phẩm duy nhất có thể xuất hiện trên nhiều đơn hàng. Do đó, cho từng bản ghi trong bảng đơn hàng, cũng có thể có nhiều bản ghi trong bảng sản phẩm. Và cho từng bản ghi trong bảng sản phẩm, cũng có thể có nhiều bản ghi trong bảng đơn hàng. Loại mối quan hệ này được gọi là một mối quan hệ nhiều-nhiều vì bất kỳ sản phẩm, có thể có nhiều đơn hàng; và đối với bất kỳ thứ tự, có thể có nhiều sản phẩm. Lưu ý rằng để phát hiện mối quan hệ nhiều-nhiều giữa các bảng của bạn, điều quan trọng là bạn hãy xem xét cả hai mặt của mối quan hệ.

Các chủ đề của hai bảng — đơn hàng và sản phẩm — có mối quan hệ nhiều-nhiều. Điều này trình bày một vấn đề. Để tìm hiểu về các vấn đề, giả sử điều gì sẽ xảy ra nếu bạn đã tìm cách tạo mối quan hệ giữa hai bảng bằng cách thêm trường ID sản phẩm vào bảng đơn hàng. Để có nhiều hơn một sản phẩm cho mỗi đơn hàng, bạn cần nhiều bản ghi trong bảng đơn hàng theo thứ tự. Bạn muốn lặp lại thứ tự thông tin cho mỗi hàng liên quan đến một thứ tự duy nhất — khiến người thiết kế không hiệu quả có thể dẫn đến không chính xác dữ liệu. Bạn gặp phải vấn đề cùng nếu bạn đặt trường ID đơn đặt hàng trong bảng sản phẩm — bạn muốn có nhiều bản ghi trong bảng sản phẩm cho từng sản phẩm. Làm thế nào để bạn có thể giải quyết vấn đề này?

Câu trả lời là tạo một bảng thứ ba, thường gọi là một bảng rẽ, ngắt xuống mối quan hệ nhiều-nhiều vào hai mối quan hệ một-nhiều. Bạn chèn khóa chính từ mỗi hai bảng thành bảng thứ ba. Kết quả, bảng thứ ba bản ghi mỗi lần xuất hiện tại hoặc phiên bản của mối quan hệ.

Khái quát về quan hệ nhiều-nhiều

Mỗi bản ghi trong bảng chi tiết đơn hàng đại diện cho một dòng mục trên một thứ tự. Chi tiết đơn hàng của bảng khóa chính bao gồm hai trường — các phím nước ngoài từ các đơn hàng và bảng sản phẩm. Dùng trường ID đơn đặt hàng một mình không hoạt động làm khóa chính cho bảng này, vì một đơn hàng có thể có nhiều dòng mục. ID đơn đặt hàng được lặp lại cho mỗi mục dòng trên một thứ tự, vì vậy trường không chứa giá trị duy nhất. Bằng cách dùng một mình trường ID sản phẩm không hoạt động, vì một sản phẩm có thể xuất hiện trên nhiều đơn đặt hàng khác nhau. Nhưng lại với nhau, hai trường luôn tạo ra một giá trị duy nhất cho từng bản ghi.

Trong cơ sở dữ liệu sản phẩm bán hàng vào bảng đơn hàng và bảng sản phẩm không liên quan với nhau trực tiếp. Thay vào đó, họ có liên quan gián tiếp thông qua bảng chi tiết đơn hàng. Mối quan hệ nhiều-nhiều giữa đơn hàng và sản phẩm được thể hiện trong cơ sở dữ liệu bằng cách dùng hai một nhiều mối quan hệ:

  • Bảng đơn hàng và chi tiết đơn hàng bảng có mối quan hệ một-nhiều. Mỗi đơn hàng có thể có nhiều mục đường, nhưng mỗi mục dòng được kết nối với chỉ một đơn hàng.

  • Bảng sản phẩm và chi tiết đơn hàng bảng có mối quan hệ một-nhiều. Mỗi sản phẩm có thể có nhiều mục dòng liên kết với nó, nhưng mỗi mục dòng tham chiếu đến chỉ có một sản phẩm.

Từ bảng chi tiết đơn hàng, bạn có thể xác định tất cả các sản phẩm trên một thứ tự cụ thể. Bạn cũng có thể xác định tất cả các đơn hàng sản phẩm cụ thể.

Sau khi kết hợp bảng chi tiết đơn hàng, danh sách các bảng và trường có thể trông giống như thế này:

Ảnh cho thấy các mục thông tin trong quá trình thiết kế


Đầu trang

Tạo quan hệ một-một

Loại mối quan hệ khác là mối quan hệ một-một. Ví dụ, giả sử bạn cần để ghi lại một số thông tin sản phẩm bổ sung đặc biệt mà bạn sẽ cần hiếm khi hoặc mà chỉ áp dụng cho một vài sản phẩm. Vì bạn không cần thông tin thường và vì lưu trữ thông tin trong bảng sản phẩm kết quả trong khoảng trống cho mỗi sản phẩm mà nó không áp dụng, bạn đặt trong một bảng riêng biệt. Chẳng hạn như bảng sản phẩm, bạn sử dụng ProductID làm khóa chính. Mối quan hệ giữa các bảng sản phẩm và bảng bổ sung này là một đối một mối quan hệ. Cho từng bản ghi trong bảng sản phẩm, có tồn tại một bản ghi khớp trong bảng bổ sung. Khi bạn xác định mối quan hệ, cả hai bảng phải chia sẻ một trường chung.

Khi bạn phát hiện mối quan hệ một-một cần trong cơ sở dữ liệu của bạn, hãy cân nhắc xem bạn có thể đặt thông tin từ hai bảng cùng nhau trong một bảng. Nếu bạn không muốn thực hiện điều này cho các lý do nào đó, có lẽ vì nó kết quả nhiều khoảng trống, danh sách sau đây Hiển thị như thế nào bạn muốn thể hiện mối quan hệ trong thiết kế của bạn:

  • Nếu hai bảng có cùng chủ đề, bạn có thể có thể thiết lập mối quan hệ bằng cách sử dụng cùng một khóa chính trong cả hai bảng.

  • Nếu hai bảng có các đối tượng khác với khóa chính khác nhau, hãy chọn một trong các bảng (lần lượt một) và chèn khóa chính trong bảng dưới dạng một khóa ngoại.

Xác định mối quan hệ giữa các bảng sẽ giúp bạn đảm bảo rằng bạn có phải bảng và cột. Khi một đối một hoặc một nhiều mối quan hệ tồn tại, các bảng liên quan đến cần phải chia sẻ một cột chung hoặc các cột. Khi một mối quan hệ nhiều-nhiều tồn tại, bảng thứ ba cần thiết để thể hiện mối quan hệ.

Đầu trang

Tinh chỉnh thiết kế

Sau khi đã bảng, trường và mối quan hệ bạn cần, bạn nên tạo và nhập bảng của bạn với mẫu dữ liệu và thử làm việc với các thông tin: tạo truy vấn, thêm bản ghi mới, v.v.. Làm điều này giúp tô sáng các vấn đề tiềm tàng — ví dụ, bạn có thể cần phải thêm một cột mà bạn quên để chèn giai đoạn thiết kế của bạn, hoặc bạn có thể có một bảng mà bạn nên chia thành hai bảng để loại bỏ trùng lặp.

Hãy xem nếu bạn có thể sử dụng cơ sở dữ liệu để có câu trả lời bạn muốn. Tạo các Thư nháp thô của biểu mẫu và báo cáo của bạn và nhìn thấy nếu chúng Hiển thị dữ liệu mà bạn mong đợi. Tìm các sao chép dữ liệu, và khi bạn tìm thấy bất kỳ, thay đổi thiết kế của bạn để loại bỏ nó.

Khi bạn thử cơ sở dữ liệu ban đầu của bạn, bạn sẽ có thể khám phá phòng để cải thiện. Dưới đây là một số điều cần kiểm tra:

  • Bạn có quên bất kỳ cột nào? Nếu vậy, thông tin liên trong các bảng hiện có? Nếu đây là thông tin về nội dung khác, bạn có thể cần tạo một bảng khác. Tạo một cột cho mỗi mục thông tin bạn cần theo dõi. Nếu thông tin không thể được tính toán từ các cột khác, có thể bạn sẽ cần một cột mới cho nó.

  • Là các cột bất kỳ vì chúng có thể tính toán từ trường hiện có? Nếu một mục thông tin có thể tính toán từ các cột hiện có khác — giá chứng khoán được chiết được tính toán giá bán lẻ, ví dụ — đó là thường tốt hơn để làm việc đó và tránh tạo cột mới.

  • Bạn đang liên tục nhập thông tin trùng lặp trong một bảng của bạn? Nếu vậy, bạn có thể cần phải chia bảng thành hai bảng có mối quan hệ một-nhiều.

  • Bạn có bảng có nhiều trường, một số giới hạn của bản ghi và nhiều trường trống trong bản ghi riêng lẻ không? Nếu vậy, hãy nghĩ về thiết kế lại bảng có ít trường và thêm bản ghi.

  • Mỗi mục thông tin đã được chia thành các phần hữu ích nhỏ nhất? Nếu bạn cần để báo cáo, sắp xếp, tìm kiếm, hoặc tính toán trên một mục thông tin, hãy đặt mục đó trong cột riêng của nó.

  • Mỗi cột có chứa một thực tế về chủ đề của bảng? Nếu một cột không chứa thông tin về chủ đề của bảng, nó lưu ở đó trong một bảng khác nhau.

  • Là tất cả các mối quan hệ giữa các bảng được đại diện, hoặc bằng trường phổ biến hoặc thứ ba bảng? Mối quan hệ một-một và một nhiều yêu cầu các cột chung. Mối quan hệ nhiều-nhiều yêu cầu bảng thứ ba.

Lọc bảng sản phẩm

Giả sử rằng mỗi sản phẩm trong cơ sở dữ liệu sản phẩm bán hàng dạng bên dưới thể loại chung, chẳng hạn như đồ uống, gia vị, hoặc hải sản. Bảng sản phẩm có thể bao gồm một trường Hiển thị thể loại của từng sản phẩm.

Giả sử rằng sau khi kiểm tra và tinh chỉnh thiết kế của cơ sở dữ liệu, bạn quyết định để lưu trữ mô tả của thể loại cùng với tên của nó. Nếu bạn thêm một trường thể loại mô tả vào bảng sản phẩm, bạn có lặp lại mỗi thể loại mô tả cho từng sản phẩm nằm bên dưới thể loại — đây không phải là giải pháp tốt.

Giải pháp tốt hơn là Hãy thể loại chủ đề mới cho cơ sở dữ liệu để theo dõi, với các bảng riêng và khóa chính của chính nó. Bạn có thể rồi thêm khóa chính từ bảng thể loại bảng sản phẩm dưới dạng một khóa ngoại.

Các thể loại và sản phẩm bảng có mối quan hệ một-nhiều: một thể loại có thể bao gồm nhiều hơn một sản phẩm, nhưng một sản phẩm có thể là thành chỉ có một thể loại.

Khi bạn xem lại cấu trúc bảng của bạn, xuất hiện trên kiếm lặp lại các nhóm. Ví dụ, hãy xem xét bảng chứa cột sau đây:

  • ID Sản phẩm

  • Name

  • Sản phẩm ID1

  • Name1

  • Sản phẩm ID2

  • Name2

  • Sản phẩm ID3

  • Name3

Ở đây, mỗi sản phẩm là một nhóm lặp lại các cột khác từ những người khác chỉ bằng cách thêm một số đến cuối tên cột. Khi bạn nhìn thấy cột được đánh số theo cách này, bạn nên xem lại thiết kế của bạn.

Một thiết kế có một vài sai sót. Cho người mới bắt đầu, nó yêu cầu bạn phải đặt giới hạn ở phía trên số lượng sản phẩm. Ngay sau khi bạn vượt quá giới hạn đó, bạn phải thêm một nhóm cột mới vào cấu trúc bảng, đây là một nhiệm vụ quản trị chính.

Vấn đề khác là rằng những nhà cung cấp có ít hơn số sản phẩm, tối đa sẽ lãng phí một số lượng, vì các cột bổ sung sẽ để trống. Lỗ hổng nghiêm trọng nhất với một thiết kế là nó có nhiều tác vụ khó để thực hiện, chẳng hạn như sắp xếp hoặc lập chỉ mục bảng theo tên hoặc mã sản phẩm.

Bất cứ khi nào bạn thấy lặp nhóm xem lại thiết kế chặt chẽ với một mắt về cách tách bảng trong hai. Trong ví dụ trên thật tốt hơn để sử dụng hai bảng, cho nhà cung cấp và cho sản phẩm, nối kết với nhà cung cấp ID.

Đầu trang

Áp dụng quy tắc bình thường

Bạn có thể áp dụng quy tắc chuẩn hóa dữ liệu (đôi khi được gọi tắt là chuẩn hóa quy tắc) dưới dạng bước tiếp theo trong thiết kế của bạn. Bạn sử dụng các quy tắc này để xem nếu bảng của bạn được cấu trúc chính xác. Quy trình áp dụng các quy tắc để thiết kế cơ sở dữ liệu của bạn được gọi là bình thường hóa cơ sở dữ liệu, hoặc chỉ bình thường.

Bình thường rất hữu ích nhất sau khi bạn có thể hiện tất cả các mục thông tin và đã đến lúc sơ bộ thiết kế. Ý tưởng là để giúp bạn đảm bảo rằng bạn đã chia mục thông tin của bạn thành các bảng thích hợp. Bình thường nào không thể làm là đảm bảo rằng bạn có tất cả các mục dữ liệu chính xác để bắt đầu với.

Bạn áp dụng các quy tắc trong kế, tại mỗi bước vẫn đảm bảo rằng thiết kế của bạn đến ở một trong những gì được gọi là biểu mẫu thường"." Biểu mẫu thường năm đều được chấp nhận rộng rãi — thường mẫu đầu tiên thông qua biểu mẫu thường thứ. Bài viết này sẽ mở rộng trên ba đầu tiên, vì chúng là tất cả cần thiết cho phần lớn các thiết kế cơ sở dữ liệu.

Biểu mẫu đầu tiên thông thường

Biểu mẫu đầu tiên thường chỉ rõ rằng mỗi điểm giao hàng và cột trong bảng, có một giá trị duy nhất, và không bao giờ danh sách giá trị. Ví dụ, bạn không thể có một trường có tên là giá mà bạn đặt nhiều hơn một giá. Nếu bạn nghĩ về từng giao điểm của hàng và cột dưới dạng một ô, mỗi ô có thể giữ chỉ có một giá trị.

Biểu mẫu thường thứ hai

Thứ hai thường mẫu yêu cầu mỗi cột khóa hoàn toàn phụ thuộc trên toàn bộ khóa chính, chứ không phải trên chỉ là một phần của khóa. Quy tắc này áp dụng khi bạn có một khóa chính bao gồm các cột. Ví dụ, giả sử bạn có một bảng có chứa các cột sau đây, vị trí thứ tự ID và ID sản phẩm mẫu khóa chính:

  • ID đơn đặt hàng (khóa chính)

  • ID sản phẩm (khóa chính)

  • Tên sản phẩm

Thiết kế này vi phạm biểu mẫu thường thứ hai, vì tên sản phẩm phụ thuộc vào mã sản phẩm, nhưng không phải trên ID đơn đặt hàng, vì vậy thật không phụ thuộc vào toàn bộ khóa chính. Bạn phải loại bỏ tên sản phẩm từ bảng. Lưu ở đó trong một bảng khác nhau (sản phẩm).

Biểu mẫu thường thứ ba

Thứ ba thường mẫu yêu cầu mà không chỉ mỗi cột khóa có phụ thuộc vào toàn bộ khóa chính nhưng -khóa cột không độc lập của nhau.

Một cách khác nói điều này là rằng mỗi cột khóa phải phụ thuộc vào khóa chính và không có gì nhưng khóa chính. Ví dụ, giả sử bạn có một bảng có chứa các cột sau đây:

  • ProductID (khóa chính)

  • Name

  • SRP

  • Discount

Giả định rằng chiết khấu tùy thuộc vào giá bán lẻ được gợi ý (SRP). Bảng này vi phạm biểu mẫu thứ ba thường vì-khóa cột, chiết khấu, tùy thuộc vào khác-khóa cột, SRP. Cột định tính độc lập có nghĩa là bạn có thể thay đổi bất kỳ cột nào-phím mà không ảnh hưởng đến bất kỳ cột nào khác. Nếu bạn thay đổi một giá trị trong trường SRP, chiết khấu sẽ thay đổi tương ứng, thì vi phạm quy tắc đó. Trong trường hợp này chiết khấu sẽ di chuyển đến bảng khác keyed trên SRP.

Đầu trang

Ghi chú: Tuyên bố miễn trừ trách nhiệm Dịch Máy: Bài viết này do một hệ thống máy tính dịch mà không có sự can thiệp của con người. Microsoft cung cấp những bản dịch máy này để giúp người dùng không nói tiếng Anh hiểu nội dung về các sản phẩm, dịch vụ và công nghệ của Microsoft. Do bài viết này được dịch máy nên có thể có các lỗi về từ vựng, cú pháp hoặc ngữ pháp.

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×