Nice programing

데이터베이스 설계에서 "n : m"및 "1 : n"의 의미

nicepro 2020. 12. 28. 22:32
반응형

데이터베이스 설계에서 "n : m"및 "1 : n"의 의미


데이터베이스 디자인에서 n : m1 : n 은 무엇을 의미합니까?

키나 관계와 관련이 있습니까?


m:n다 대다 관계 ( m다른 쪽과 관련된 다른 쪽의 개체) 를 나타내는 데 사용되는 n반면 1:n일대 다 관계 ( 1다른 쪽의 개체와 관련된 다른 쪽의 개체 )를 나타냅니다 n.


1 : n은 '일대 다'를 의미합니다. 두 개의 테이블이 있고 테이블 A의 각 행은 테이블 B의 행 수에 관계없이 참조 될 수 있지만 테이블 B의 각 행은 테이블 A의 한 행만 참조 할 수 있습니다 (또는 전혀 참조하지 않음).

n : m (또는 n : n)은 '다 대다'를 의미합니다. 테이블 A의 각 행은 테이블 B의 많은 행을 참조 할 수 있고 테이블 B의 각 행은 테이블 A의 많은 행을 참조 할 수 있습니다.

1 : n 관계는 일반적으로 간단한 외래 키를 사용하여 모델링됩니다. 테이블 A의 한 열은 일반적으로 기본 키인 테이블 B의 유사한 열을 참조합니다. 기본 키는 정확히 하나의 행을 고유하게 식별하므로이 행은 테이블 A의 여러 행에서 참조 할 수 있지만 테이블 A의 각 행은 테이블 B의 행 하나만 참조 할 수 있습니다.

n : m 관계는 이런 식으로 수행 할 수 없습니다. 일반적인 해결책은 두 개의 외래 키 열을 포함하는 링크 테이블을 사용하는 것입니다. 테이블 A와 테이블 B 사이의 각 참조에 대해 해당 행의 ID를 포함하는 하나의 행이 링크 테이블에 삽입됩니다.


n : m-> n과 m을 모두 모르는 경우 단순히 다 대다이며 다음과 같은 다른 두 테이블 사이의 브리지 테이블로 표시됩니다.

   -- This table will hold our phone calls.
CREATE TABLE dbo.PhoneCalls
(
   ID INT IDENTITY(1, 1) NOT NULL,
   CallTime DATETIME NOT NULL DEFAULT GETDATE(),
   CallerPhoneNumber CHAR(10) NOT NULL
)

-- This table will hold our "tickets" (or cases).
CREATE TABLE dbo.Tickets
(
   ID INT IDENTITY(1, 1) NOT NULL,
   CreatedTime DATETIME NOT NULL DEFAULT GETDATE(),
   Subject VARCHAR(250) NOT NULL,
   Notes VARCHAR(8000) NOT NULL,
   Completed BIT NOT NULL DEFAULT 0
)

이것은 두 테이블 간의 매핑을 구현하기위한 브리지 테이블입니다.

CREATE TABLE dbo.PhoneCalls_Tickets
(
   PhoneCallID INT NOT NULL,
   TicketID INT NOT NULL
)

일대 다 (1 : n)는 기본 키로 열이있는 테이블과 외래 키 관계로이 열이있는 다른 테이블입니다.

하나의 제품 범주가 여러 제품을 가질 수있는 제품 및 제품 범주와 유사한 종류


예를 들어 두 가지 개념을 설명하기 위해 서점에 대한 주문 입력 시스템이 있다고 가정 해보십시오. 각 주문은 여러 항목을 가질 수 있고 각 항목은 여러 주문으로 주문할 수 있기 때문에 항목에 대한 주문 매핑은 다 대다 (n : m)입니다. 반면에 고객과 주문 간의 조회는 일대 다 (1 : n)입니다. 고객은 둘 이상의 주문을 할 수 있지만 하나의 주문은 둘 이상의 고객에 대한 것이 아닙니다.


관계형 데이터베이스에서 모든 유형의 관계는 관계와 같은 방식으로 표현됩니다. 각 관계의 후보 키 (및 다른 제약 조건도 가능)에 따라 어떤 종류의 관계가 표현되는지 결정됩니다. 1 : n과 m : n은 두 종류의 이진 관계입니다.

C {Employee*,Company}
B {Book*,Author*}

각각의 경우 *는 키 속성을 지정합니다. {Book, Author}는 복합 키입니다.

C는 각 직원이 회사 에서만 하지만 각 회사에는 많은 직원 이있을 수 있는 관계 (1 : n) : B는 책에 여러 저자가있을 수 있고 저자는 여러 책을 수있는 관계 (m : n)입니다.

주요 제약 조건으로 인해 각 직원은 한 회사에만 연결될 수 있지만 책과 저자의 모든 조합은 허용됩니다.

다른 종류의 관계도 가능합니다. n-ary (두 개 이상의 구성 요소를 가짐); 고정 카디널리티 (m : n 여기서 m과 n은 고정 상수 또는 범위) 방향성; 등등. William Kent는 그의 저서 "Data and Reality"에서 최소한 432 가지 종류를 식별합니다. 이는 단지 이진 관계에 대한 것입니다. 실제로 이진 관계 1 : n 및 m : n은 매우 일반적이며 일반적으로 데이터 모델을 설계하고 이해하는 데 특히 중요한 것으로 분류됩니다.


다 대다 (n : m) 일대 다 (1 : n)


m : n은 다 대다 관계를 의미하며 1 : n은 일대 다 관계를 의미합니다 (예 : employee (id, name, skillset) skillset (id, skillname, qualifications)).

이 경우 한 직원은 많은 기술을 가질 수 있으며 다른 경우를 무시하면 1 : N 관계라고 말할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/3397349/meaning-of-nm-and-1n-in-database-design

반응형