database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Q&A 105 게시물 읽기
No. 105
관계에서요 키 설정하는 부분이 이상해서요.
작성자
언제나
작성일
2001-12-02 07:10
조회수
15,552

1:N 관계입니다.

예를 들면 지도교수:학생 이런 식이라고 보면 되는데요.

대개 이러면

지도교수의 키를 학생테이블에서 참조하는 외래키로 설정하잖아요..

책들 예제 보면 대개 이렇게 되던데요..

학생 테이블에서 지도교수의 키를 그냥 같이 복합키로 써도 되나요?

외래키 개념은 업습니다. 그냥 설계 당시에 아예 복합키로 만는 경우입니다.

제가 보기엔 문제가 있을것 같은데요..

프로그램 자체에서[VB나 델파이등등]에서 입력에서 제어를 해주면 되겠지만요.

 

교수(교수번호,이름)-KEY-교수번호

학생(학번,교수번호,이름)-KEY-(학번,교수번호)-복합키

무결성원칙에 위배될것 같은데요..제 생각이 맞나요?

그리고 복합키는 다대다 관계에서만 성립한 다는데요..

 

 

이론적으로 무지 헷갈립니다..

책도 뭘 봐야 할지 모르겠습니다. 이제 DB에 입문하려고하니 답답하네요.

그럼..

이 글에 대한 댓글이 총 2건 있습니다.

개인적인 생각으로는 Foreign key 를 복합키로 설정하는 경우에는 굳이 하나의 key 로 unique key를 생성할수 없는 경우가 아니라면 복합키를 사용할 이유가 없다고 생각합니다.

무결성이라는 것은 key 의 구성이 어떻게 되어 있느냐에 따라 성립할수도 않을 수도 있겠지요. 개념이 힘든 것은 아니니 너무 어렵게 생각지 마시기 바랍니다. 어느 순간엔가 모든 것이 이해가 될 것입니다. :-)

advance님이 2001-12-02 19:47에 작성한 댓글입니다.

1:N관계에서 외래키를 주키에 포함시키느냐 말것이냐... 이것이 문제로군요.

 

테이블명 : 교수---------<학생

관계참여 : 1....................N

주키 : profid................stdid

외래키 : 없음..................profid

 

라고 합시다.

테이블로 만들때 분명 교수 테이블은 주키가 profif로 정하겠는데 학생테이블에서는

 

1. stdid만으로 주키를 구성하든

2. stdid + profid로 주키를 구성하든

 

관계는 없습니다.

 

두가지의 차이는 학생테이블을 부모로 하는 자식테이블이 존재할때 알게 됩니다.

 

 

학생테이블을 참조하는 자식테이블의 외래키는

 

1번의 경우, stdid의 한개 컬럼으로 부모를

2번의 경우, stdid+profid 의 두개 컬럼으로 부모를

 

찾습니다.

 

학생테이블의 자식테이블에서

 

1번의 경우 교수를 찾으려면 학생테이블과 JOIN후 교수테이블과 JOIN을 하여 교수 tuple을 얻을 수 있습니다.

 

2번의 경우 교수를 찾으려면 자신의 컬럼에 있는 profid와 교수테이블을 JOIN 하여 교수투플을 찾습니다.

 

즉 조인 횟수를 줄일 수 있죠.

단, 부모자식간의 관계가 깊어지면 자식대로 내려갈 수록 KEY를 이루는 넘이 길어져서 좋지 않지만 적절히 판단하여 사용하면 효과를 꽤 보죠.

 

반드시 복합키는 다대다관계용으로만 사용하는 건 아닙니다. 하지만 원칙은 지키려고 합시다. 키의 길이는 최대한 줄이는 걸로요.

김대성님이 2001-12-14 23:01에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
121ms-sql + sql server 7.0 + apache로 하는데요..
방병우
2001-12-04
12906
118눈물로 호소합니다...ㅠ.ㅠ
남규한
2001-12-03
14202
163┕>Re: 눈물로 호소합니다...ㅠ.ㅠ
김동아
2001-12-12 11:50:14
12438
115데이터베이스 관련 저널 URL
정재익
2001-12-03
13054
105관계에서요 키 설정하는 부분이 이상해서요. [2]
언제나
2001-12-02
15552
103DB 디자인시 데이터 중복과, 편리성의 문제 [2]
김재성
2001-11-30
14046
106┕>Re: DB 디자인시 데이터 중복과, 편리성의 문제
허정수
2001-12-02 14:55:12
13548
119 ┕>Re: Re: DB 디자인시 데이터 중복과, 편리성의 문제
jongwoo.han
2001-12-03 13:01:42
13771
102ER-WIN에 대해 아시는 분좀 봐주세요.
이종성
2001-11-30
12852
101오라클,mssql,mysql 에 대한 성능비교?? [2]
김명현
2001-11-29
16749
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.025초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다