본 게시물에서는 각 테이블을 연결하여 정보를 확장 검색하는 방법에 대해 알아보자. 데이터베이스의 가장 큰 장점은 데이터를 여러 테이블에 나누어 저장하고 필요할 때 연결하여 정보를 확장할 수 있다는 점이다. 이 기술은 액세스를 포함하는 데이터베이스 도구에서 가장 핵심적인 기능이다. 본 예에서는 개설과목 테이블과 학생 테이블을 데이터를 연결하여 수강 과목 정보를 구성해본다.
아래 첨부된 [문제_UI학사정보.accdb]를 다운받고 액세스 2010에서 열어보자. 그리고 아래 그림과 같이 [수강번호], [학번], [학수번호], [총점], [등급] 열(필드)로 구성된 [수강] 테이블을 만든다.
[데이터베이스 도구] 탭에 있는 [관계] 버튼을 누른다.
[테이블 표시] 창에서 모든 테이블을 선택하고 [추가] 버튼을 누른다.
그러면 열(필드) 이름을 포함한 각 테이블이 아래 그림과 같이 나열된다. [개설과목] 테이블에 있는 [학수번호] 열(필드)를 드레그한 후 [수강] 테이블에 있는 [학수번호] 열(필드) 위에 놓아보자.
그러면 [관계 편집] 창이 나타나면서 [개설과목]과 [수강] 테이블을 [학수번호] 열(필드)로 연결한다는 정보가 나타난다. [항상 참조 무결성 유지]에 체크한 후 [만들기] 버튼을 누른다. 참조 무결성이란 만약 [개설과목] 테이블에서 특정 과목 정보를 삭제했을 경우 [수강] 테이블에 해당 학수번호가 남아 있다면 데이터의 일관성에 문제가 발생하게 된다. [항상 참조 무결성 유지]를 설정하면 [개설과목] 테이블에서 과목 레코드를 삭제할 때 해당 학생정보가 다른 테이블에서 있는지를 확인하게 된다.
※ [항상 참조 무결성 유지] : 참조 무결성은 관계가 설정된 테이블간에 기본키 열(필드)에 없는 값을 입력하거나 관련된 데이터의 삭제, 변경 등을 확인하기 위한 규칙이다.
※ [관련 필드 모두 업데이트] : 부모 테이블의 기본키에 해당하는 데이터가 변경되면 관련된 모든 테이블의 해당 열(필드)도 자동으로 업데이트된다.
※ [관련 레코드 모두 삭제] : 부모 테이블에서 기본키가 포함된 레코드를 삭제하면 해당 기본키를 참조하는 다른 테이블의 레코드도 자동으로 삭제된다.
관계 편집을 수행하면 아래 그림과 같이 [개설과목] 테이블과 [수강] 테이블 사이에 연결선이 나타난다. [개설과목] 테이블쪽 연결선에는 1 표시가 되어 있고 [수강] 테이블쪽 연결선에는 ∞ 표시가 되어 있다. 1 표시는 [개설과목]에 있는 [학수번호] 열(필드)가 기본키라는 것을 뜻하고 ∞ 표시는 [수강] 테이블에 있는 [학수번호] 열(필드)에 [개설과목] 테이블의 [학수번호] 열(필드) 데이터가 중복되어 나타날 수 있다는 의미이다. 다음으로 [학생] 테이블에 있는 [학번] 열(필드)를 드레그한 후 [수강] 테이블에 있는 [학번] 열(필드) 위에 놓아보자.
그러면 [관계 편집] 창이 나타나면서 [학생]과 [수강] 테이블을 [학번] 열(필드)로 연결한다는 정보가 나타난다. [항상 참조 무결성 유지]에 체크한 후 [만들기] 버튼을 누른다.
관계 편집을 수행하면 아래 그림과 같이 [학생] 테이블과 [수강] 테이블 사이에 연결선이 나타난다. [학생] 테이블쪽 연결선에는 1 표시가 되어 있고 [수강] 테이블쪽 연결선에는 ∞ 표시가 되어 있다. 1 표시는 [학생]에 있는 [학번] 열(필드)가 기본키라는 것을 뜻하고 ∞ 표시는 [수강] 테이블에 있는 [학번] 열(필드)에 [학생] 테이블의 [학번] 열(필드) 데이터가 중복되어 나타날 수 있다는 의미이다.
관계 설정을 마무리하였으면 저장한 후 [닫기] 버튼을 누른다.
[수강] 테이블에 아래 그림과 같은 데이터를 입력해보자. [수강] 테이블에는 특정 학번의 학생이 수강한 과목 학수번호를 저장하게 된다. 예로 'S001001' 학번의 학생이 수강한 과목의 학수번호가 나열되어 있다.
[학생] 테이블을 열어 해당 학번 학생 레코드를 살펴보면 [+] 버튼이 있어 [수강] 테이블의 해당 학번에 해당하는 학수번호가 연결되어 나타난다.
[개설과목] 테이블을 열어 해당 학수번호 레코드를 살펴보면 [+] 버튼이 있어 [수강] 테이블의 해당 학수번호에 해당하는 학번이 연결되어 나타난다. 결국 [개설과목]과 [학생] 테이블이 [수강] 테이블을 사이에 두고 하나로 연결된다.
[수강] 테이블의 [학번] 열(필드)에 [학생] 테이블에 등록되지 않은 임의의 학번을 입력해보자.
그러면 관계 설정 옵션으로 체크한 [항상 참조 무결성 유지] 기능이 동작하면서 해당 학번이 [학생] 테이블에 없어 데이터를 입력할 수 없다는 메시지 창이 나타난다.
※ 첨부 파일
'MS Access' 카테고리의 다른 글
[MS Access 2010] 폼 만들기 (2) (0) | 2014.11.26 |
---|---|
[MS Access 2010] 폼 만들기 (1) (0) | 2014.11.26 |
[MS Access 2010] 쿼리 (28) (0) | 2014.10.27 |
[MS Access 2010] 쿼리 (27) (0) | 2014.10.27 |
[MS Access 2010] 쿼리 (26) (0) | 2014.10.27 |