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 2602 게시물 읽기
No. 2602
DB설계 Paramary Key, Unique Index
작성자
불량코드
작성일
2014-07-29 13:41
조회수
20,650

안녕하세요. 더운 날씨에 고생이 많습니다

1. 사용자 테이블(단일PK)

컬럼명 속성
사용자ID PK
속성 -
속성 -

 

2. 사용자 테이블(PK + 유니크인덱스)

컬럼명 속성
사용자ID번호 PK
사용자ID UK
사용자변경번호 UK
속성.. -
속성.. -

 


3. 사용자 테이블(Pk집합)

컬럼명 속성
사용자ID PK
사용자변경번호 PK
속성.. -
속성.. -



1번처럼 사용자ID를 주키로 잡을수 있는경우는 문제가 없는데요.
2, 3번처럼 주키 + 후보키가 조합되어야 하는경우 경우 문의드립니다.

2, 3번처럼 변경일련번호가 있을경우 2번 또는 3번으로 선택하는데 전 2번이 맞다고 봅니다.
그런데 예전엔 그냥 3번처럼 했습니다. 그게 편했고 큰문제가 없어서요. 근데 이게 모델링 관점엔 좋지 않다고 해서 문의드립니다.

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

모델링 관점에 좋지 않은 점이 무엇이다고 하던가요?

 

다른테이블에 FK로 사용자ID가 사용될 것 같은데...

다른테이블에 FK로 사용자ID번호 가 사용되어야 한다면 2번 형태를 사용해야 하겠지만

그런 업무는 거의 없지 않을까 생각해 봅니다.

 

변경이력을 남겨야 한다면

1번 + 3번 2개 테이블로 사용도 고려해 보세요.

현재데이터 테이블 + 이력테이블.

박인호(paerae)님이 2014-08-01 17:06에 작성한 댓글입니다.

제시해주신 자료로 정확한 속성은 알기 어렵지만...

사용자ID번호는 integer, 사용자ID는 char 타입을 사용하는 일반적인 경우로 상정해보겠습니다.

integer type은 보통 4byte 길이의 데이터 타입입니다.

그에 반해 사용자ID는 이니셜로 하더라도 6자, 길 경우 10자가 넘기 때문에 통상 varchar(20) 정도의 사이즈로 책정합니다.( 제 기준입니다. )

 

사용자ID의 경우 비교조건에서 like 검색이 사용되는 경우보다는 equal 검색이 사용되는 경우가 많으므로,
(거의 100%에 가깝겠죠)

비교검색에서 4byte와 최대 21byte의 비교를 수행하게 됩니다. 단순히 5배의 차이라고 봤을때 테이블 2개를 조인할 경우 10배, 3개가 조인될 경우 20배의 리소스가 사용되게 됩니다.

 

단순한 업무에 사용되는 수준의 쿼리에서는 성능 체감이 크게 나지 않는 부분이나, 수백, 수천만건의 데이터가 조회된다면 무시할 수 없는 수치가 되기도 하겠죠... 

 

이런 이유로 모델링 관점에서 좋지 않다고 한 것 같습니다. ( 일반 중소규모의 데이터 모델링에서는 크게 신경 쓰지 않으셔도 될 것 같습니다. )

최성혁(blutgere)님이 2015-09-09 17:18에 작성한 댓글입니다.
이 댓글은 2015-09-09 17:20에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
2606실무에 도움되는 디비 책좀 추전해주실수 있나요?
초보자
2014-12-04
21494
2605데이터의 무결성과 독립성의 의미를 각각 설명하고, 이 의미가 중요한 이유를 함께 설명 부탁합니다.
김지선
2014-10-20
20132
2604현재 사용되고 있는 DBMS들의 종류를 조사하여 기술하고, 각 DBMS의 주요 특징에 대해서 설명 좀 부탁합니다.
김지선
2014-10-20
20173
2602DB설계 Paramary Key, Unique Index [2]
불량코드
2014-07-29
20650
2601DB구축질문드립니다
선이
2014-06-03
20499
2600DB 설계를 위한 방법론 이란게
마루치
2013-07-24
21905
2587API로 ODBC 공부를 하고 있습니다.
박순호
2012-12-15
20724
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다