나눔터  
  HOME > 나눔터 > 묻고답하기 > 액세스
액세스
액세스에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 선을 (suneul)

추천:  0
파일:     조회:  561
제목:   데이터 설계 관련 질문입니다.
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 액세스 버전(95,97,2000,xp,2003,2007):

* 아래줄에 질문을 작성하세요 >> 


----------예시----------------

아래의 두개의 테이블이 있다고 가정하겠습니다.
[가_학생] 테이블 / [나_징계] 테이블
징계 기록이 있는 학생을 READ 하고 싶을 때,

-방법A
[가_학생] 테이블에 [징계여부] 필드를 추가 해두고,
[나_징계] 데이터를 작성 및 수정할 때마다,
[가_학생]![징계여부] 필드를 업데이트 한다.
결론 : [가_학생]![징계여부]를 READ한다.

-방법B
[가_학생] 테이블에 필드 추가 및 데이터를 저장하지 않는다.
결론 : 필요한 경우마다 VBA 함수 등을 사용해서 READ한다.


-----------질문------------------

테이블 수와 READ 방식 및 경우의 수,
곧 업무 프로세스에 따라 다르다는 것을 알고
우문(愚問)인줄은 알고있으나,
질문드립니다.


만약 위와같은 상황의 심화과정,
곧 [징계여부]와 같은 데이터가 4~5개가 되고,
그걸 한번더 종합적으로 추려내야하는 경우처럼된다면
COST를 어디에 쏟아야할지 모르겠습니다.


-방법A
단점 : 데이터를 업데이트 할 때마다, 상위 테이블의 필드를 업데이트 한다.
장점 : READ가 빠르다.

-방법B
장점 : 상위 테이블의 필드를 업데이트 하지 않는다 
단점 : READ할 때마다 하위 테이블의 데이터를 읽어낸다. READ가 느리다.


심화과정일 때는 방법A vs 방법B
어떻게 하는게 좋을까요?

 
[불량 게시물 신고]  
황동준테이블별로 중복되는 내용이 최대한 없도록 하는게 정규화 입니다.

학생테이블 : 학번,성명, . . . . .  . . .
징계테이블 : 학번,징계일자, . . . . .

위 처럼, 학번을 기준으로 하는 두테이블을 1대다로 연결하면 학생데이터와 징계데이터를 쉽게 파악 할 수 있습니다. 또한 다른 성적이나 기타 테이블도 역시 같은방법으로 설계합니다.
학생 테이블에 학생정보만 입력하고 징계 테이블은 학번과 징계내용만 입력합니다.

쿼리로 연결 해서 보면 아래와 같습니다.

학번  성명 성별 .. ..   징계일자   징계내용
0001 홍길동 남 .. ..   2022-09-13  벌점 10점
0001 홍길동 남 .. ..   2022-12-21  정학 

방법 A,B중 B방식에 가깝지만, vba등을 사용하지 않아도 간단한 쿼리로 확인합니다. 당연 속도도 느리지 않구요. 데이터베이스를 이용하는 가장 기본적인 형태입니다.
12-21 (20:30)
삭제 ■신고
선을말씀하신 것처럼 테이블이 두 개있을때는 B방식이 맞다고 생각하지만, 테이블이 여러 개가 돼도 B방식을 고수하나요?

예를 들어
학생 테이블
->징계 테이블
->상점 테이블
->벌점 테이블

하위 세 개의 테이블의 '종합점수'에 따라,
상대평가로 '종합점수 비율 등급'을 나누고, ex) A,B,C
해당 등급을 '실시간 반영'하고 싶은 경우,

위와 같이 조금 더 복합적인 알고리즘과
실시간 반영이 들어간다해도
B방식을 고수하는 것인지 궁금합니다!

12-23 (14:21)
삭제 ■신고
황동준-네. 대부분 그렇게 합니다. 데이터 참조 무결성을 위해(학생 테이블의 내용이 변경되면 모두 같이 연동, 기본키는 변경불가) 1대다 형식으로 하구요, 각 하위 테이블은 적당히 기간 또는 전체 합계쿼리 등을 이용해서 종합점수를 구현 하면 되겠지요.
-해당 테이블의 내용만으로 또는 다른 테이블을 참조 하지 않는다면 A 방식으로 하여도 무관합니다. 예전엔 데이터베이스 용량도 고려 해야 했지만 지금은 좀 더 자유롭기 때문에 정규화 하지 않더라도 크게 문제 되진 않습니다.
-제가 데이터베이스에 대한 지식이 깊지 않아서 좀더 전문적인 내용은 찾아보셔야 할 듯 합니다.
12-23 (17:08)
삭제 ■신고
손님01-21 (14:27)
삭제 ■신고
        
  

작성일 : 2022-12-21(14:23)
최종수정일 : 2022-12-21(14:23)