Cardinality trong Cơ sở dữ liệu là gì?


84

Tôi đã tìm kiếm khắp nơi trên internet nhưng dường như không thể tìm thấy câu trả lời mà tôi có thể hiểu được.

Vì vậy, vui lòng, nếu ai đó có thể giải thích cho tôi với sự giúp đỡ của các ví dụ về cardinality trong cơ sở dữ liệu là gì?

Cảm ơn bạn.

Câu trả lời:


120

Một nguồn gây nhầm lẫn có thể là việc sử dụng từ này trong hai ngữ cảnh khác nhau - lập mô hình dữ liệu và tối ưu hóa truy vấn cơ sở dữ liệu.

Trong thuật ngữ mô hình dữ liệu, bản số là cách một bảng liên quan đến bảng khác.

  • 1-1 (một hàng trong bảng A liên quan đến một hàng trong bảng B)
  • 1-Nhiều (một hàng trong bảng A liên quan đến nhiều hàng trong bảngB)
  • Nhiều-Nhiều (Nhiều hàng trong bảng A liên quan đến nhiều hàng trong bảngB)

Ngoài ra còn có các điều kiện tham gia tùy chọn ở trên (trong đó một hàng trong một bảng hoàn toàn không phải liên quan đến bảng khác).

Xem Wikipedia về Cardinality (mô hình dữ liệu) .


Khi nói về tối ưu hóa truy vấn cơ sở dữ liệu, cardinality đề cập đến dữ liệu trong một cột của bảng, cụ thể là có bao nhiêu giá trị duy nhất trong đó. Số liệu thống kê này giúp lập kế hoạch truy vấn và tối ưu hóa kế hoạch thực hiện.

Xem Wikipedia về Cardinality (câu lệnh SQL) .


2
Có phải số 0 có nghĩa là hai bảng không liên quan đến nhau không?
Tyler

Số 0? Không phải là một thuật ngữ được sử dụng nhiều - nhưng tôi cho rằng nó có nghĩa là như vậy. Thông thường - sẽ không có đường thẳng nào kết nối các bảng như vậy trong sơ đồ ER, vì vậy không cần chỉ ra số lượng.
Oded

Số 0 trong mô hình dữ liệu được sử dụng để chỉ ra các mối quan hệ tùy chọn. Như trong 0..1 hoặc 0..n
Walter Mitty

làm cho phép tương tự với nội dung toán học của thuật ngữ cardinality: ** (mô hình hóa dữ liệu) cardinality giữa hai bảng là tính duy nhất của các giá trị giữa hai bảng (cardinality như một hàm giữa hai tập hợp) ** (tối ưu hóa truy vấn cơ sở dữ liệu) cardinality của một bảng là cách độc đáo các hàng là dành cho cột đó (cardinality của tập bản thân)
harshvchawla

29

Nó phụ thuộc một chút vào ngữ cảnh. Cardinality có nghĩa là số lượng của một cái gì đó nhưng nó được sử dụng trong nhiều ngữ cảnh khác nhau.

  • Khi bạn đang xây dựng mô hình dữ liệu, cardinality thường đề cập đến số hàng trong bảng A có liên quan đến bảng B. Nghĩa là, có 1 hàng trong B cho mỗi hàng trong A (1: 1), có N hàng không. trong B cho mọi hàng trong A (1: N), có M hàng trong B cho mọi N hàng trong A (N: M), v.v.
  • Khi bạn đang xem xét những thứ như liệu sử dụng chỉ mục ab * -tree hay chỉ mục bitmap sẽ hiệu quả hơn hay mức độ chọn lọc của một vị từ, cardinality đề cập đến số lượng các giá trị riêng biệt trong một cột cụ thể. PERSONVí dụ: nếu bạn có một bảng, GENDERcó khả năng là cột số lượng rất thấp (có thể chỉ có hai giá trị trong GENDER) trong khi PERSON_IDcó khả năng là cột số lượng rất cao (mỗi hàng sẽ có một giá trị khác nhau).
  • Khi bạn đang xem xét các kế hoạch truy vấn, cardinality đề cập đến số hàng dự kiến ​​sẽ được trả về từ một hoạt động cụ thể.

Có thể có những tình huống khác mà mọi người nói về cardinality sử dụng một ngữ cảnh khác và có ý nghĩa khác.


8

Trong cơ sở dữ liệu, cardinality số hàng trong bảng.

nhập mô tả hình ảnh ở đây nguồn img


nhập mô tả hình ảnh ở đây nguồn img


  • Mối quan hệ được đặt tên và phân loại theo họ cardinality (tức là số phần tử của tập hợp ).
  • Các ký hiệu xuất hiện đóng đối với thực thể là Số lượng tối đa và ký hiệu còn lại là Số lượng tối thiểu .
  • Mối quan hệ thực thể, hiển thị phần cuối của đường mối quan hệ như sau:
    nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nguồn hình ảnh


1
Vui lòng sử dụng văn bản, không phải hình ảnh / liên kết, cho văn bản - bao gồm cả bảng và ERD . Diễn giải hoặc trích dẫn từ văn bản khác. Chỉ đưa ra những gì bạn cần và liên quan đến vấn đề của bạn. Chỉ sử dụng hình ảnh cho những gì không thể được thể hiện dưới dạng văn bản hoặc để tăng thêm văn bản. Hình ảnh không thể được tìm kiếm hoặc cắt và dán.
philipxy

4

Cardinality đề cập đến tính duy nhất của dữ liệu chứa trong một cột. Nếu một cột có nhiều dữ liệu trùng lặp (ví dụ: một cột lưu trữ "true" hoặc "false"), thì cột đó có bản số thấp, nhưng nếu các giá trị là duy nhất cao (ví dụ: số An sinh xã hội), thì cột đó có bản số cao.


1
Cardinality có thể đề cập đến một vài điều khác nhau, nhưng câu trả lời của Oded rất có thể là những gì bạn đang tìm kiếm.
Andrew

-2

Tính chất của một tập hợp là độ dài của các phần tử trong tập hợp vì vậy ta có tập hợp a> a, b, c <do đó tập hợp có 3 phần tử 3 là cấp số của tập hợp đó


-2

Định nghĩa: Chúng ta có các bảng trong cơ sở dữ liệu. Trong cơ sở dữ liệu quan hệ, chúng ta có quan hệ giữa các bảng. Các quan hệ này có thể là một-một, một-nhiều hoặc nhiều-nhiều. Những mối quan hệ này được gọi là 'cardinality'.

Ý nghĩa của cardinality:

Nhiều cơ sở dữ liệu quan hệ đã được thiết kế tuân theo các quy tắc nghiệp vụ phù hợp. Khi bạn thiết kế cơ sở dữ liệu, chúng tôi xác định tính cơ bản dựa trên các quy tắc nghiệp vụ. Nhưng mọi đối tượng đều có bản chất riêng của nó.

Khi bạn xác định cardinality giữa các đối tượng, bạn phải xem xét tất cả những điều này để xác định cardinality chính xác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.