2016-06-05 22 views
2

enter image description here한정자, 다중도 및 데이터베이스

이 클래스 다이어그램을 이와 같이 해석 할 수 있습니까? 특정 파일은 디렉토리에 여러 가지 다른 이름을 가질 수 있습니다. 디렉토리의 이름은 중복해서는 안됩니다. 디렉토리의 특정 이름을 가진 파일의 수는 0 또는 1입니다. 그러나 디렉토리가 많은 파일을 저장할 수 있고 파일을 여러 디렉토리에 저장할 수 있다고 말하고 싶다면. 이 도표는 그 정보를 보여줍니까? 이 다이어그램에 따르면 데이터베이스에 3 개의 테이블 (디렉토리, 파일 및 조인 테이블)이 있습니다. . 디렉토리 (Did, Dname)는 Did이 기본 키입니다. File (Fid, Fsize) 여기서 Fid는 기본 키입니다. 그런 다음 조인 테이블에 (Did, Fid, name)이 있어야하고 (Did, name)의 조합이 고유해야합니다. 내 이해가 맞습니까?

답변

3

귀하의 이해는 거의 완벽합니다. 왼쪽에있는 다중성은 디렉토리의 수 이 얼마나 많은지를 나타냅니다. 이름이이고 파일과 연관되어 있지 않습니다. 하나의 디렉토리에서 얼마나 많은 파일 이름이 하나의 파일을 나타낼 수 있는지를 제한하는 것은 없습니다. 즉, 같은 파일에 대해 하나의 디렉토리에 여러 개의 이름을 가질 수 있습니다. 예를 들어 UNIX 기반 파일 시스템에서 가능합니다. 그럼에도 불구하고 세 테이블과 열 고유성 제약 조건은 모든 것을 완벽하게 나타냅니다.

+0

● \t 한정자가 없으면 한 쌍의 개체 사이에 하나의 링크 만있을 수 있기 때문에 하나의 디렉터리에서 파일을 한 번만 사용할 수 있습니다. 그러나 한정자를 사용하면 파일은 디렉토리 내의 이름에 링크되므로 (디렉토리에 링크되지 않음) 디렉토리에 여러 번 나타날 수 있기 때문에 파일은 다른 이름을 사용하여 한 번 이상 디렉토리에있을 수 있습니다. –

+0

제 견해로, 왼쪽 다중성은 디렉토리의 수가 아니라 이름의 수이어야합니다. 나는 그것을 이해하지 못한다. 왼쪽 다중성을 위해, 한정자는 무시되어야하고 오른쪽 다중성을 위해, 한정자는 고려되어야 하는가? –

+1

한정자를 제거하고 올바른 다중성을 *로 변경하십시오. 왼쪽의 다중성의 의미는 동일하게 유지됩니다. –