제목
×
재생속도 설정
상태 메시지
랜드모아(pc)
▽일대일, 다대다관계에 대한 설명...... 펌
|
|
2006-09-02 02:36:42
|
|
댓글:(0)
조회:4697
|
|
|
|
RDB를 처음 접하시는거 같군요.
몇년전에 저도 참 고생한 부분입니다.
일대일, 일대다, 다대다라는 개념은 데이터베이스 모델링에서 두 테이블간의
관계(Relationship)를 정의할때 쓰는 말입니다.
먼저 관계라는 말의 정의는 교과서적으로는 '두개의 실체간에 명명되어진 의미있는 연결이며 두 실체간에 업무적인 연관성을 나타낸다'라고 정의되는데 좀 이해하시기 어렵지요?
쉽게말해서 A라는 테이블의 프라이머리키가 B라는 테이블의 포린키로 전이되면 이것을
두 테이블간의 관계가 형성되었다고 하는것입니다.
그리고 이 관계가 형성될 때 1:1, 1:N, N:M의 관계로 나뉘게 됩니다. 이것을 차수라고 하지요.
이제 질문하신 내용을 살펴보기로 하지요.
일대일 : A테이블에 있는 한 레코드는 B테이블에 있는 한 레코드와 일치하는 관계 이다.
라고 정의 되는데 쉽게 말해서 설명하면 학반테이블에는 1-1, 2-1, ....이렇게 학년학반이 등록되어 있고 학생회간부테이블에는 1-1반 반장은 장길산이렇게 등록이 되겠지요.
그럼 장길산이란 학생은 1학년1반 반장만 될수 있게되고 1학년1반 반장은 장길산 한명 뿐이지요. 이렇게 서로 두테이블이 한 레코드만 관게가 형성되는 것을 일대일이라 하지요
일대다 : A테이블에 있는 각각의 레코드는 B테이블에 있는 하나 이상의 레코드와 일치하나 B테이블에 있는 레코드는 A테이블에 있는 레코드와 단지 하나만이 일치하는 관계이다.
라고 정의됩니다. 이건 쉽게 얘기해서 학생신상테이블에는 장길산이란 학생 하나가 등록되지만 수강테이블에는 국어, 영어등 여러과목이 수강가능하지요. 그렇게 한테이블에 하나의 레코드가 관계를 맞은 테이블이 여러 레코드와 관계를 형성하는것을 일대다라고 합니다.
다대다 : A테이블에 있는 각각의 레코드는 B테이블에 있는 하나 이상의 레코드와 일치하고 B테이블에 있는 레코드도 A테이블에 있는 하나 이상의 레코드와 일치하는 관계이다.
이건 A라는 테이블으 여러 레코드가 B라는 테이블의 여러레코드와 관계를 형성할수 있다는 말입니다. 이 다대다관계는 데이터베이스 모델링에서 개념적단계에서는 존재가 가능하지만
논리적 단계부터는 존재가 불가능하므로 일대다관계로 풀어주어야 하는 관계입니다.
즉 A, B테이블의 프라이머리키를 C라는 테이블을 새로 만들면서 C테이블의 포린키로 전이시켜서 해결해야하는 관계입니다. 이렇게 C테이블을 만들면 다대다관계가 A, C간에 일대다,
B, C간에 일대다관계가 되지요. |
|
|
|
|
|
|
|
|
|
데이터베이스설계구현 |
페이지: 1 / 1
|
|
[1] |
|
|
복수단어 검색은 공백(space)로 구분해 주세요.
|