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
운영게시판
최근게시물
Oracle Q&A 41651 게시물 읽기
No. 41651
데이터베이스 일대일 관계 릴레이션 변환 질문합니다.
작성자
SYJ
작성일
2018-11-04 16:37
조회수
3,368

일대일 관계를 릴레이션으로 변환하게 되면 서로의 기본키를 서로에게 외래키로 주고 받고 관계의 속성도

서로 갖는 걸로 알고 있습니다. 근데 외래키를 서로 주고 받는 경우에데이터의 일관성이 깨질 수 있는 상황이

발생 할 수 있을 것 같습니다.

예를 들면 고객(고객아이디(PK),이름,주문번호(FK)) 주문(주문번호(PK),주문제품,고객아이디(FK))

일대일 관계에서 서로의 기본키를 외래키로 주고 받은 상황에서 고객 릴레이션에서

GILDING2, 홍길동, 2  라는 투플이 있을때 주문 릴레이션에서 2, 애플 노트북 , NAVERJOA2 라는 투플이 삽입이되면

데이터의 일관성이 깨지는데 어떤 이유에서 데이터의 중복과 일관성이 깨질 수 있음에도

일대일 관계의 릴레이션 스키마 변환이 서로의 기본키를 외래키로 주고 받는 형식으로 되는지 모르겠습니다.

투플이 더 적은 릴레이션이 더 많은 릴레이션의 기본키를 외래키로 받아서  null이 최소한으로 발생하는 쪽으로

한 쪽 릴레이션에서만 기본키를 외래키로 받으면 중복 , 일관성 문제도 일어 날 것 같지 않은데요..

제가 말하는 일대일 관계는 양쪽이 필수참여가 아닌 일반적인 11 선택참여 관계입니다.

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

일대일 관계이므로 기본 테이블의 PK 는 일대일 분리 테이블의 FK 이면서 PK 가 됩니다. 
즉 기본 테이블의 정보 중의 일부를 PK 기준으로 떼어 낸 것입니다. 
일관성이 깨질 수가 없습니다. 
고객 이라는 엔티티로 예를 들자면,
고객의 주민번호 관련 정보 엔티티와 - 고객의 신상 정보 엔티티 
를 떼어낼 경우가 1:1 관계의 예가 될 수 있겠네요. 
 
질문으로 봐서는
고객 - 주문 - 주문상세 - 상품 인 
온라인 쇼핑몰의 구조 같은데요.  
이 중에서 
고객 - 주문 의 관계는 1:N 의 관계입니다. 
단순하게 보더라도 고객은 여러 주문을 할 수 있죠. 
 

지나가다님이 2018-11-04 18:15에 작성한 댓글입니다.
이 댓글은 2018-11-04 18:19에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41654주차 구하는 방법 문의 [4]
이민우
2018-11-13
3592
41653문자 치환에 대해서 질문 드립니다. [6]
그림자가면
2018-11-09
3477
41652합계 구하는 쿼리 질문 입니다. [2]
구휘
2018-11-08
4100
41651데이터베이스 일대일 관계 릴레이션 변환 질문합니다. [1]
SYJ
2018-11-04
3368
41650컬럼에서 불러온 계산식 그대로 계산하는법이 있나요? [3]
장만수
2018-11-04
3672
41649가로 데이터 세로 표현 질문드립니다. [2]
백기열
2018-11-01
4120
41648출력되는 두 row 비교 문의드립니다. [6]
k62511
2018-10-31
4010
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다