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 278 게시물 읽기
No. 278
[질문]죄송.. 약간의 풀리지 않는 궁금점이 남아서
작성자
서준원(linuxqna)
작성일
2002-01-09 09:02
조회수
8,138

먼저 항상 친절한 답변에 감사를 드립니다.

원래 제가 DB쪽을 깊게 파지 않고, 되는데로 사용하다가

이로적인 면으로 접근을 하면서 공부하니까. 좀 헷갈리는것 같습니다.^^

먼저 이해해 주시고요..

 

공부를 약간 해보려고 일단 대학교때 배웠던

'데이터베이스 이론' 인가 하는 책을 조금 속독을 했구요

지금은 ERwin 을 깔면 들어있는 문서인 Method Guide 라는 문서를

보고 공부하고 있습니다.

 

아 그리고 제가 질문드리는 개념이나 단어들은

Physical layer 쪽에서 들어주시기 보다는

Logical layer 관점으로 들어주시면 좀더 답변해주시기 수월하실꺼고

최종 질문 단계에서 아마 Physical layer 관점이 조금 들어갈것 같아요

 

각설하고... 다시한번 질문을 드리자면.

새로운 간단한 예제로 질문을 드리겠습니다.

(ERD 를 그림으로 첨부합니다.)

 

먼저 2개의 엔티티 (TEAM, PLAYER) 가 있습니다.

그리고 1:N 관계로 정의를 하겠습니다.

 

부모엔티티, 자식엔티티 개념은 계속 나오고 있네요..

이모델에서는

 

TEAM : 부모엔티티

PLATER : 자신엔티티

 

로 일단 정의를 하고 있습니다.

 

질문 1. 부모와 자식 엔티티를 확연히 나누는 기준이 있는지요?

저같은 경우는 일단 엔티티를 놓으면 그냥 동물적으로

이건 부모엔티티다, 자식엔티티다 감이 와서 그냥 그렇게 하거든요

 

그리고 관계가 실선으로 되어 있는것은 종속적인 관계를 의미 한다고 합니다.

종속적인 관계에는 existence dependent, identification dependent 이렇게 두가지가 있는데

이 모델에서는 existence dependent는 아니지만 identification dependent랍니다.

즉, 선수는 팀에 속해있지 않아도 존재할수 있기떄문에 existence dependent 가 아니고

선수는 팀의 team-id 키 없이는 분간할 수 없기때문에 identification dependent라고 합니다.

 

질문 2. existence dependent, identification dependent 의 개념에 대해서는

대충을 이해하겠는데, 특히 identification dependent 개념이 조금 모호합니다.

이걸 조금 쉽게 설명해 주실수 있는지?

 

일단 여기까지고

 

이제 Physical layer 적인 관점(?)으로 질문을 드리면

그림에서 보시다시 PLAYER의 team-id가 FK로 설정이 되어 있습니다.

 

질문 3. 이 관계를 어떻게 표현해야 하는지

PLAYER의 team-id 는 TEAM에 대해서 FK 로 되었다 로 표현하나요?

TEAM은 PLAYER의 team-id 를 FK로 가지고 있다고 표현해야 하는지?

어느 엔티티의 관점에서 봐야할지 헷갈립니다.

 

질문 4. FK가 있기때문에 부모의 튜플들을 삭제할수 없다가 아니라

이 관계를 DB스키마를 작성할때 FK constraint 를 걸어 줄때 정해주는

것에 따라 정해진다는것이 맞는지요?

이 질문은 지난 코멘트에서 거의 이해가 됬습니다.

그럼 한가지, MySQL과 같이 FK 가 지원하지 않는 DB는

이것을 프로그래머가 프로그램로직에서 FK constraint 을 고려해야

한다는 것인가요?

 

이상 질문이었습니다.

헥헥 여기까지 읽어주셔서 너무 감사드리고요.

기왕 읽으셨으면 좋은 답변도 감사드리겠습니다.

 

참고로 아래 ERwin 에서 Forward Engineering 으로 뽑은

스키마 입니다.

 

 

CREATE TABLE PLAYER (

age INTEGER NULL,

player_name VARCHAR2(32) NULL,

player_id VARCHAR2(32) NOT NULL,

team_id VARCHAR2(32) NOT NULL

);

 

 

ALTER TABLE PLAYER

ADD ( PRIMARY KEY (player_id, team_id) ) ;

 

 

CREATE TABLE TEAM (

team_id VARCHAR2(32) NOT NULL,

owner VARCHAR2(32) NULL,

team_name VARCHAR2(32) NULL

);

 

 

ALTER TABLE TEAM

ADD ( PRIMARY KEY (team_id) ) ;

 

 

ALTER TABLE PLAYER

ADD ( FOREIGN KEY (team_id)

REFERENCES TEAM ) ;


[Top]
No.
제목
작성자
작성일
조회
291한번에 찾는 like 는 없나요..?
이효택
2002-01-13
7687
287버클리 DB에 관한 질문
백민준
2002-01-11
7643
289┕>Re: 못찾으신 것 같군요. [1]
정재익
2002-01-13 08:44:32
7892
276[질문]추가적인 애트리뷰트가 필요할떄, 그것을 어떻게? [1]
서준원
2002-01-08
7655
277┕>답변 감사하고 수정된 질문 내용입니다.(죄송)-_- [1]
서준원
2002-01-09 08:26:08
8067
273[질문]FK 의 설정에 대해서. [2]
서준원
2002-01-08
8132
275┕>Re: [질문]FK 의 설정에 대해서. [1]
서준원
2002-01-08 13:25:36
8919
278 ┕>[질문]죄송.. 약간의 풀리지 않는 궁금점이 남아서
서준원
2002-01-09 09:02:06
8138
284  ┕>Re: [질문]죄송.. 약간의 풀리지 않는 궁금점이 남아서 [1]
김대성
2002-01-09 23:48:18
9104
267[질문]PK가 너무 많아서.. 설계가 잘못된 것인가요? [1]
서준원
2002-01-07
7842
268┕>Re: [질문]PK가 너무 많아서.. 설계가 잘못된 것인가요?
서준원
2002-01-07 16:23:14
8242
266[질문]주소록 스키마좀 봐주세요 [1]
서준원
2002-01-07
8556
271┕>Re: [질문]주소록 스키마좀 봐주세요
김대성
2002-01-08 00:56:59
8591
253C-ISAM A.dat, A.idx를 Access로 Loader [1]
김대철
2002-01-05
8040
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다