K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

16 tháng 10 2016

Một trong các lý do chính cho việc dùng cơ sở dữ liệu quan hệ, chẳng hạn như Access, là để tránh dữ liệu trùng lặp mà điều đó có thể gây ra nhầm lẫn và rắc rối. Đôi khi, nếu bạn tạo cơ sở dữ liệu bằng cách thu thập dữ liệu từ các hệ thống hiện có, ví dụ như một bộ sổ làm việc Excel, bạn có thể có các dữ liệu trùng lặp cần được giải quyết trước khi bắt đầu sử dụng cơ sở dữ liệu đó. Hơn nữa, nếu không áp dụng một số biện pháp phòng ngừa trong thiết kế (hoặc điều đó là không thực tế vì một lý do nào đó), thì cơ sở dữ liệu đôi khi có thể thu nhận các giá trị trùng lặp, đặc biệt là khi nhiều người dùng nhập dữ liệu cùng một lúc.

Dữ liệu trùng lặp là gì

Thuật ngữ dữ liệu trùng lặp không có nghĩa là có hai bản sao chính xác của cùng một dữ liệu. Thay vào đó, dữ liệu trùng lặp là dữ liệu hơi khác nhưng cùng tham chiếu đến một thứ, chẳng hạn như một vài dữ liệu khác. Nó có thể không sai – ví dụ như tên đầy đủ có và không có tên đệm.

Dữ liệu trùng lặp có thể xuất hiện ở nhiều mức độ khác nhau:

  • Hai hoặc nhiều bản ghi có thể chứa các trường trùng lặp.    Hai bản ghi có thể được xem là trùng lặp ngay cả khi không phải tất cả các trường của các bản ghi đó có chứa các giá trị khớp nhau. Ví dụ, trong hình này, bạn sẽ thấy hai bản ghi cho Antonio Moreno Taquería.

    Các bản ghi trùng lặp cho một khách hàng trong bảng Khách hàng

    Ngay cả khi mỗi bản ghi có ID khách hàng duy nhất (giá trị ở cột ngoài cùng bên trái), các giá trị trong các trường Tên, Địa chỉ và Thành phố vẫn khớp nhau. Có lẽ một bản ghi được tạo hai lần cho một khách hàng hoặc có thể có lý do chính đáng rằng hai khách hàng thuộc cùng một công ty. Bạn sẽ phải dùng kiến thức trong công việc của mình để xem lại các bản ghi đó xem chúng có phải là bản trùng lặp hay không.

  • Hai hoặc nhiều bảng có thể có chứa dữ liệu tương tự nhau.    Ví dụ, bạn có thể thấy cả bảng Khách hàng và bảng Khách mua đều có chứa các bản ghi cho cùng một khách hàng.

    Bảng Khách mua và bảng Khách hàng có dữ liệu chồng chéo

    Ngay cả khi các bảng đó có thể có cấu trúc khác nhau một chút nhưng cả hai bảng đều chứa cùng một loại thông tin — dữ liệu khách hàng — vì vậy, bạn cần cân nhắc tạo bảng mới bằng cách kết hợp chúng.

  • Hai hoặc nhiều cơ sở dữ liệu có thể chứa dữ liệu tương tự nhau.    Nếu bạn thấy hai hoặc nhiều cơ sở dữ liệu có chứa dữ liệu tương tự nhau hoặc bạn thừa kế một cơ sở dữ liệu có nội dung chồng chéo với cơ sở dữ liệu hiện thời của mình, bạn cần so sánh dữ liệu và cấu trúc của các cơ sở dữ liệu đó rồi thực hiện những bước cần thiết để hợp nhất chúng.

    So sánh cơ sở dữ liệu theo cách thủ công, ngay cả đối với cơ sở dữ liệu nhỏ, không phải là một việc dễ dàng. Nếu bạn cần trợ giúp để so sánh, một vài nhà cung cấp bên thứ ba có bán các công cụ để so sánh nội dung và cấu trúc của cơ sở dữ liệu Access.

    QUAN TRỌNG: Nếu bạn thực hiện các bước để loại bỏ dữ liệu trùng lặp khỏi các bảng và bạn vẫn thấy dữ liệu trùng lặp trong một biểu mẫu hoặc báo cáo, đó có thể là do thiết kế biểu mẫu hoặc báo cáo không chính xác. Hãy bảo đảm các bảng và truy vấn ẩn dưới được nối đúng cách và các phần biểu mẫu hoặc báo cáo không bao gồm nhiều điều khiển được kết nối với cùng một nguồn điều khiển. Để biết thêm thông tin về thiết kế báo cáo, hãy xem bài viết Giới thiệu về báo cáo.

Những gì không phải là dữ liệu trùng lặp

  • Đôi khi hai hoặc nhiều bản ghi có bộ giá trị chung nhưng chúng sẽ không tham chiếu đến cùng một thứ. Ví dụ, nhiều khách hàng có thể có tên đầy đủ là John Smith, nhưng các giá trị đó không phải là giá trị trùng lặp vì chúng tham chiếu đến những người khác nhau. Khi điều đó xảy ra, bạn sẽ không có nguy cơ gặp dữ liệu trùng lặp với điều kiện là các trường khác trong cơ sở dữ liệu của bạn (chẳng hạn như trường ID, tên người dùng, địa chỉ hoặc mã bưu chính) có chứa đủ thông tin duy nhất để tránh cho các bản ghi bị coi là trùng lặp.

  • Dữ liệu do truy vấn trả về có thể có vẻ như chứa các bản ghi trùng lặp nếu truy vấn đó không bao gồm các trường nhận dạng duy nhất từng bản ghi. Ví dụ, bảng này hiện dữ liệu do truy vấn trả về:

    Dạng xem không bao gồm trường có thể nhận dạng duy nhất các bản ghi

    Một vài hàng trong kết quả truy vấn có vẻ như trùng lặp. Tuy nhiên, cũng truy vấn đó kèm theo trường khóa chính cho biết rằng mỗi bản ghi thực sự là duy nhất:

    Bây giờ dạng xem bao gồm trường OrderID để loại bỏ các bản ghi trùng lặp

    Để tránh sự nhầm lẫn này, khi tạo truy vấn, bạn hãy đưa vào đó các trường nhận dạng duy nhất mỗi bản ghi. Trường khóa chính có thể thực hiện chức năng này nhưng bạn cũng có thể dùng kết hợp các trường khác thay vào đó. Ví dụ, bạn có một tên liên hệ thường gặp lặp lại nhiều lần và một tên thành phố lặp lại nhiều lần, nhưng nếu bạn đưa vào đó số điện thoại và địa chỉ, thì tổ hợp dữ liệu đó có thể đủ để khiến cho mỗi bản ghi trở thành duy nhất.

Giải quyết và ngăn chặn dữ liệu trùng lặp

Để giải quyết dữ liệu trùng lặp, hãy sửa hoặc xóa bỏ dữ liệu đó.

  • Bạn hãy sửa bản ghi trùng lặp nếu nó thực sự biểu thị một thực thể riêng biệt – ví dụ, một khách hàng không có bản ghi nào khác – và trùng lặp với một bản ghi nào đó khác do nhầm lẫn nào đó, có lẽ do nhập sai.

  • Bạn hãy xóa bỏ bản ghi trùng lặp nếu nó không biểu thị một thực thể nào khác; tức là có bản ghi khác cho cùng một thực thể mà bạn muốn dùng.

  • Trong một số trường hợp, bạn sẽ xóa bỏ một mục trùng lặp và sửa mục còn lại bởi vì cả hai bản ghi đều không hoàn toàn chính xác. Nếu bạn muốn xóa bỏ từ một bảng liên quan đến các bảng khác, bạn có thể cần bật xóa xếp tầng cho một số quan hệ.

Để giúp ngăn chặn dữ liệu trùng lặp, hãy bạn hãy cân nhắc những điều sau đây:

  • Hãy bảo đảm mỗi bảng của bạn có một khóa chính

  • Nếu có nhiều trường không phải là một phần của khóa chính nhưng phải chứa các giá trị duy nhất, hãy tạo chỉ mục duy nhất cho các trường đó

  • Hãy cân nhắc tạo biểu mẫu cho việc nhập dữ liệu và dùng các hộp danh sách trên các biểu mẫu đó để giúp tìm các giá trị hiện có dễ dàng hơn

Đầu Trang

Trước khi bạn bắt đầu

Trước khi bạn bắt đầu xóa bỏ dữ liệu trùng lặp, hãy thực hiện các bước sau đây:

  • Hãy đảm bảo tệp cơ sở dữ liệu không ở dạng chỉ đọc.

  • Nếu người khác dùng cơ sở dữ liệu của bạn và bạn muốn giảm thiểu sự gián đoạn dịch vụ của họ, hãy yêu cầu họ đóng các đối tượng mà bạn muốn thao tác. Nếu không, có thể xảy ra xung đột dữ liệu.

  • Nếu có thể chấp nhận việc cơ sở dữ liệu không sẵn dùng trong khi bạn làm việc với chúng, hãy mở cơ sở dữ liệu trong chế độ riêng. Để làm như vậy, hãy bấm vào tab Tệp rồi bấm Mở. Trong hộp thoại, hãy duyệt và chọn cơ sở dữ liệu, bấm vào mũi tên bên cạnh nút Mở, rồi bấm Mở Riêng.

    Mở tệp trong chế độ Mở riêng

16 tháng 1 2019

ĐÁP ÁN B

22 tháng 12 2021

Theo kinh nghiệm của mình điều đó hoàn toàn có thể xảy ra nhé bạn. Từ khóa cho vấn đề đó là: Composite key.
Mình giải thích ví dụ đơn giản như sau nhé:
- 1 bảng Hóa đơn được tạo thành bởi 2 trường là Người dùng và sản phẩm. Theo logic kinh doanh khi xuất hóa đơn chúng ta cần biết Người dùng và sản phẩm cùng một lúc --> điều này có thể nói phải luôn cần 2 trường thì một tạo thành một dòng dữ liệu trong bảng thì có thể xác định 2 trường đó là khóa chính.


Tương tự với các trường hợp khác, Bảng của bạn cần xác định bao nhiêu yếu tố mới tạo được 1 dòng dữ liệu thì những yếu tố đó nên là khóa chính tránh những mâu thuẫn. Mình ở đây chỉ đề cập là Nên không phải bắt buộc nên sẽ có những trường hợp đơn giản vẫn tạo được

22 tháng 12 2021

Mình viết sai: "2 trường thì mới tạo"

 

Tham khảo

Trong trường hợp đã chỉ định là khóa chính thì các trường tạo nên khóa chính và các trường đã thiết đặt tính chất thuộc tính bắt buộc (Required) là không được bỏ trống (Not Null) khi nhập dữ liệu.

Các bước chỉ định khóa chính:

– Chọn khóa chính: trong bảng dữ liệu nêu ở câu 2 thì chọn trường SBD (số báo danh) vì mỗi số báo danh tương ứng thông tin về một học sinh.

– Thao tác: Mở bảng ở chế độ thiết kế. Nháy ô ở bên trái tên trường SBD, nháy nút khóa chínhhoặc chọn Edit – Primary Key.

11 tháng 12 2021

Tham khảo

Trong trường hợp đã chỉ định là khóa chính thì các trường tạo nên khóa chính và các trường đã thiết đặt tính chất thuộc tính bắt buộc (Required) là không được bỏ trống (Not Null) khi nhập dữ liệu.

Các bước chỉ định khóa chính:

– Chọn khóa chính: trong bảng dữ liệu nêu ở câu 2 thì chọn trường SBD (số báo danh) vì mỗi số báo danh tương ứng thông tin về một học sinh.

– Thao tác: Mở bảng ở chế độ thiết kế. Nháy ô ở bên trái tên trường SBD, nháy nút khóa chínhhoặc chọn Edit – Primary Key. cho tui đúng