본문 바로가기

데이터베이스 모델링4

데이터베이스 모델링 1-4 PRIMARY KEY & UNIQUE ※ PRIMARY KEY  ㄴ 해당 테이블내 각각의 행을 고유하게 식별할 수 있도록 하는 제약조건이다. ㄴ 반드시 not null 이어야 하며 clustered(일반적으로 기본값이 clustered) 인 경우 테이블 내 데이터 자체를 정렬한다. ㄴ 동 테이블내 nonclustered index 에서 seek 후 covered가 안되는 경우 clustered PK 존재시에는 key lookup 형태의 랜덤엑세스가 발생하는 데 만약  clustered PK 가 미존재하는 경우 heap lookup 형태의 랜덤 엑세스가 발생한다.   당연히 비 정렬상태의 RID(오라클의 rowid)값을 찾는 랜덤엑세스인 heap lookup 이 리소스를 많이 잡아먹게 된다.   하나 찾을때마다 래치 획득과 해싱의 과정을 반복.. 2025. 1. 14.
데이터베이스 모델링 1-3 작명(Naming rule) 어떤 DA이건 초기 설계시 우선 세우는 원칙중 하나가 Naming rule 이다.첫째로 가독성이고 유지보수시 개발 담당자이건 DBA에게 혼선을 줄 수 있기 때문이다.간단하게 절대적 룰이라고 말할 수는 없으나 개인적 경험치로 말해 보겠다.중요한건 한눈에 잘 들어오며 패턴이 일정하다는게 중요하다.MS의 경우 DMV(Dynamic Management Views)에서는 정보를 취득할 수 있으나 SSMS만 보고 작업시 실수하는 경우가 종종 발생한다.전체적으로 작명은 너무 길지 않되 의미가 한눈에 들어오는게 좋다. ※ 스키마명4자미만(보통 3글자로 사용되며 기본 스키마인 DBO를 참조해서 그러한듯 싶다.)의 고정형 문자로 보통 지정하고 비지니스 타입으로 구분하는게 일반적이며비지니스가 복잡하지 않는 경우 기준정보/배.. 2025. 1. 2.
데이터베이스 모델링 1-2 정형 vs 비정형(EAV) 정형과 비정형 기초적인 문제임에도 대부분의 개발자들이 의외로 인지하지 못하는 부분이다.고급언어(화면) 개발자들 중에는 교조적인 경우가 많다.단순히 DA 가 본인들과 대비해 돈만 많이 받아먹는 하마로 폄훼하는 경우가 많다.(의외로 노골적으로 표현하는 개발자들이 아주 많다)워딩이 조금은 다를 수 있지만 의미는 동일하게 "내가 해도 그 정도는 하는데 시간이 없는거야" 로 귀결되고  모델링만이 아니라 튜닝도 마찬가지다. 허나 정말 그들이 뭘 알고 하는 말일까?물론 허접한 DA가 있을 수도 있다.내가 말하는 것은 정상적인 DA에게 조차도 그런 인식이 존재하는데 경력과 무관하게 고급언어 개발 3년차가 넘어가면 다수가 이런 사고방식에 젖어드는 것 같다.하지만 그들의 비판에는 늘 이론이 부족하다.아스팔트위 태극기와 성.. 2024. 12. 23.
데이터베이스 모델링 1-1. data type 실전 데이터베이스를 시작한다.예전 튜너로 근무하던 중 자바 개발자와 이런 대화를 나눈 기억이 있다. 나 : "**님 정말 모델링 힘드시죠?"개발자 : "아뇨 전 모델링이 너무 쉽고 재미있던데요"나 : "대단하세요. 전 20년을 해도 여전히 어렵던데...." 정말 놀라운 대답이었다.상황마다 정답이 없는 모델링이 가장 쉽다고 하니...누적되는 건수는 얼마나 예상되는지에 따라 파티션도 고려해야할지EAV를 적용할지 넓혀야 할지(OLTP와 OLAP에 따라 다르다)화면상 조회 조건 parameter는 어떤식으로 받는게 유용할지등등...진심 부러웠지만 실상 테이블들을 보고는 무척 당황스러웠다.메야 !!!!!!!!!!!!  다양한 RDBMS가 존재하고 조금은 상이하나 기준은 MS SQL server를 기준으로 설명하겠.. 2024. 12. 18.