1. 1-55에 관련한 문제에서 관계 Y가 1:N 관계이면 개체 A의 기본키를 개체 B의 외래키로 추가하여 표현한다고 하였는데, 밑에서 예제를 보면 사람과 도시에 출생지 관계는 1:N이므로 별도의 테이블로 구성하지 않았을때, 위의 설명대로라면 1의 해당하는 사람 개체의 기본키(주민번호)를 가져와 도시 개체의 외래키로 추가하는 것이 맞는데, 반대로 되어있어서 헷갈립니다. 뒤에 설명에서는 도시의 기본키를가져와 사람 개체의 외래키로 추가한다고 되어있는데, 설명이 두가지로 되어있어서 잘못된 것 같은데, 이것에 대한 설명을 자세히 듣고싶습니다.
2. 1-63 페이지와 앞에서 DBMS 데이터 일관성에 관해서 헷갈리는게 있어서 물어보고 싶습니다.
1-63에서는 일관성의 정의를 특정 질이의 대한 응답이 처음부터 끝까지 변함없이 일정해야 한다고 쓰여있는데, DBMS에서 데이터는 갱신, 삭제 등이 되는 것으로 알고 있는데, 그럴때는 일관성이 유지되지 않는다고 보는건가요?
앞에서 데이터 일관성이라는 것은 갱신, 삭제 등이 될때를 허용하고 중복된 데이터끼리의 내용이 일치해야 한다고 하는 것인데 내용이 헷갈려서 질문드립니다.
안녕하세요.
1)
1-55 아래쪽의 ERD를 보면
사람과 출생지는 1:1 관계
사람과 거주지, 도시와 거주지, 도시와 출생지가 1:N의 관계입니다.
별도의 테이블로 분리하지 않은 경우
거주지의 기본키는 (주민번호, 도시이름)입니다.
즉 주민번호 하나만은 사람 테이블의 외래키이고, 도시이름 하나만은 도시 테이블의 외래키가 됩니다.
사람은 출생지, 즉 출생도시가 한 곳입니다. 그래서 사람과 출생지는 1:1의 관계입니다.
그리고 도시의 입장에서는 한 도시에 여러 사람들이 태어나므로 도시와 출생지와의 관계는 1:N이 됩니다.
결국 한 도시에 여러 사람이 거주하는 개념이므로 도시와 사람과의 관계는 1:N이 되며, 이로 인해 도시 테이블의 기본키인 도시이름을 사람 테이블의 외래키로 추가한 것입니다.
2)
일관성이란 데이터베이스 내부의 일부 자료에 대한 개별적인 변화가 아니라 데이터베이스 전체에 대한 일관성을 말합니다.
예를 들어 은행 업무 처리 시스템에서 지점 간에 돈이 이동하는 경우 이동하기 전에 전체 은행이 소유하고 있는 돈의 합계와 이동한 후의 합계가 같아야 하고, 고객으로부터 입금된 돈이 있으면 입금되기 전의 합게에서 입금된 금액만큼 증가된 합계가 되어야 합니다.
오늘도 즐거운 하루 되세요.
-
*2016-05-09 09:40:30
안녕하세요.
1)
1-55 아래쪽의 ERD를 보면
사람과 출생지는 1:1 관계
사람과 거주지, 도시와 거주지, 도시와 출생지가 1:N의 관계입니다.
별도의 테이블로 분리하지 않은 경우
거주지의 기본키는 (주민번호, 도시이름)입니다.
즉 주민번호 하나만은 사람 테이블의 외래키이고, 도시이름 하나만은 도시 테이블의 외래키가 됩니다.
사람은 출생지, 즉 출생도시가 한 곳입니다. 그래서 사람과 출생지는 1:1의 관계입니다.
그리고 도시의 입장에서는 한 도시에 여러 사람들이 태어나므로 도시와 출생지와의 관계는 1:N이 됩니다.
결국 한 도시에 여러 사람이 거주하는 개념이므로 도시와 사람과의 관계는 1:N이 되며, 이로 인해 도시 테이블의 기본키인 도시이름을 사람 테이블의 외래키로 추가한 것입니다.
2)
일관성이란 데이터베이스 내부의 일부 자료에 대한 개별적인 변화가 아니라 데이터베이스 전체에 대한 일관성을 말합니다.
예를 들어 은행 업무 처리 시스템에서 지점 간에 돈이 이동하는 경우 이동하기 전에 전체 은행이 소유하고 있는 돈의 합계와 이동한 후의 합계가 같아야 하고, 고객으로부터 입금된 돈이 있으면 입금되기 전의 합게에서 입금된 금액만큼 증가된 합계가 되어야 합니다.
오늘도 즐거운 하루 되세요.