ERD와 Query 관계에 대한 질문드립니다.

조회수 612회

안녕하세요 DB 관련 질문 드립니다.

ERD 툴로 개체관의 관계를 그리고 나서

Forward Engineering을 하면, 테이블에 대한 쿼리가 자동생성되는데,

이때 궁금한점이 테이블간의 관계를 1:1. 1:N. N:M 으로 설정했을 때

이부분은 쿼리로 생성되는 내용이 없는 건가요??

다시 질문하면, 관계차수(1:1. 1:N. N:M)라고 불리는 정보는 DBMS에서 관리되지 않는 정보인가요??

1:1로 지정했는데 1:N 데이터가 들어간 경우 DBMS에서 조건오류를 발생시키지 않는것인지 궁금합니다.

조언 부탁드립니다..

1 답변

  • PK와 FK 설정으로 관계를 표현할 수 있으니까 Forward Engineering 할 때 이 부분, 생성된 CREATE문의 컬럼 부분이나 constraint를 확인해보세요.

    가령 A와 B 테이블이 있고 이 둘이 1:1 관계이며 A가 B의 부모일 때, B의 PK는 A의 PK 내에서만 가능합니다. 그리고 1:N의 관계에선 B의 FK가 A의 PK 내에서만 가능하죠.

    설정이 올바르다면 당연히 1:1 관계에 1:N 데이터를 등록하려고 할 때 에러가 납니다.

    • 답변 주셔서 감사합니다. ^^ 추가 질문 좀 드릴게요.. WJ 2018.10.19 13:53
    • 위에 예시에서 설명 주신 A,B 관계는 식별관계일때 말씀이신 것 같은데, 두 관계가 비식별인 경우는 1:1로 관계를 걸었지만 B에서 별도의 PK를 생성하고 A의 PK를 B의 FK로 설정된 상태라면 1:N 데이터가 들어갈 수 있을 것 같은데, 이런 경우까지 제어되지 않는지 궁금합니다. WJ 2018.10.19 13:55
    • 비식별관계라면, B의 FK에 유니크 제약이 있을 때 1:1로만 등록 되겠쥬? 편집요청빌런 2018.10.19 16:14

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)