make life game.doc

Similar documents
I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

10.ppt

DBMS & SQL Server Installation Database Laboratory

PowerPoint 프레젠테이션

문서 템플릿

강의 개요

MySQL-.. 1

Microsoft PowerPoint - 10Àå.ppt

MS-SQL SERVER 대비 기능

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc

13주-14주proc.PDF

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

Tablespace On-Offline 테이블스페이스 온라인/오프라인

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

PowerPoint 프레젠테이션

윈도우시스템프로그래밍

Microsoft Word - SQL튜닝_실습교재_.doc

<4D F736F F D203033C6C4C6BCBCC72DB8AEBFC0B1D7B9E6B9FD2E646F63>

6장. SQL

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

Microsoft PowerPoint Python-DB

PowerPoint Presentation

목 차

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밊

DocsPin_Korean.pages

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

intro

TITLE

Microsoft PowerPoint - QVIZMVUMWURI.pptx

PowerPoint Presentation

adfasdfasfdasfasfadf

슬라이드 제목 없음

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

PowerPoint 프레젠테이션

UNIST_교원 홈페이지 관리자_Manual_V1.0

PowerPoint Presentation

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

슬라이드 제목 없음

FileMaker 15 ODBC 및 JDBC 설명서

Microsoft PowerPoint - ch07_데이터베이스 언어 SQL.pptx

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

untitled

sms_SQL.hwp

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Microsoft PowerPoint - Oracle Data Access Pattern.ppt

Spring Data JPA Many To Many 양방향 관계 예제

빅데이터분산컴퓨팅-5-수정

Microsoft Word - Software Project Database Design_ver1.01_.docx

윈도우시스템프로그래밍

Microsoft Word - PLSQL.doc

PowerPoint Presentation

(Humphery Kim) RAD Studio : h=p://tech.devgear.co.kr/ : h=p://blog.hjf.pe.kr/ Facebook : h=p://d.com/hjfactory :

5장 SQL 언어 Part II

슬라이드 1

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

BTSK

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ALTIBASE HDB Patch Notes

歯sql_tuning2

Microsoft Word - src.doc

Oracle Database 10g: Self-Managing Database DB TSC

Lec. 2: MySQL and RMySQL

SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 )

DW 개요.PDF

´ÙÁß Row °á°ú¸¦ ´ÜÀÏÇàÀ¸·Î Äĸ¶·Î ºÐ¸®ÇØ Ãâ·ÂÇÏ´Â ¹æ¹ý

PostgreSQL 2 Uniersity of California at Berkeley ( ) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1

MySQL-Ch10

USER GUIDE

초보자를 위한 분산 캐시 활용 전략

FD¾ØÅÍÇÁ¶óÀÌÁî(Àå¹Ù²Þ)-ÀÛ¾÷Áß

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

개발문서 Oracle - Clob

<BCD2C7C1C6AEBFFEBEEE5FB1E8C1F6C5C25FC0DBC7B0C3D6C1BEBAB8B0EDBCAD2E687770>


(01~64)550지학-정답(1~5단원)

Q172DS

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

API 매뉴얼

thesis

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

PowerPoint Presentation

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

201502IC1AP-1 DB 구축 2015 학년도 2 학기 프로젝트특강보고서 프로젝트명 : DB 구축 ( DB ) 2015 년 11 월 20 일 지도교수 : 황치곤교수님 학과 : 정보통신공학과 1팀제출자 : 역할성명학번 조장 조재석 조원 송찬호 2

Ç¥Áö

Spring Boot/JDBC JdbcTemplate/CRUD 예제

ALTIBASE HDB Patch Notes

1 데이터베이스 2 MySQL 설치 3 기초 SQL 4 고급 SQL 유용한함수들 JOIN inseog Kim Dep. of Applied Statistics, Dongguk통계데이터베이스 University jinseog.kim gma

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

Transcription:

Database design guide ( 테이블, 컬럼정의방법 ) 2004 년 11 월 18 일 Sunny Kwak sunnykwak@hanmail.net sunnykwak.egloos.com

Copyrights 2004 Sunny Kwak. All rights reserved. Other disclaimers The names of actual companies and products mentioned herein may be the trademarks of their respective owners. Version History Version 1.0 (draft) 2004 년 11 월 18 일목요일 First created. 2 / 7

Table of Contents 1. INTRODUCTION...4 1.1 OBJECTIVES... 4 1.2 TARGET AUDIENCE... 4 2. 데이터베이스설계지침...4 2.1 테이블스페이스 (TABLESPACE) 생성규칙... 4 2.2 테이블생성규칙... 4 2.2.1 테이블명칭부여...4 2.2.2 컬럼명칭부여및컬럼설계규칙...4 2.2.3 제약조건설계 (primary key, foregin key, null or not null)...6 3. 오라클데이터베이스설계규칙...6 3.1 테이블설계규칙... 6 3.1.1 인덱스설계규칙...7 3 / 7

1. Introduction 1.1 Objectives 데이터베이스설계시참고해야할정보, 필수적으로알아야할지침등을정리하였다. 1.2 Target Audience UbiFlow 프로젝트매니저, 테크니컬리더 2. 데이터베이스설계지침 2.1 테이블스페이스 (tablespace) 생성규칙 테이블스페이스는데이터용테이블스페이스공간과인덱스용테이블스페이스를별도로생성해야한다. 2.2 테이블생성규칙 2.2.1 테이블명칭부여 데이터베이스제품종류에따라서테이블명칭의대소문자가구분되는것 ( 사이베이스등 ) 과대소문자구분이되지않는제품 ( 오라클등 ) 이있다. 따라서, 데이터베이스제품종류에투명 (transparent) 하며, 일관성있는테이블설계를위해모든테이블명칭은소문자만으로구성한다. 테이블명칭은단위어플리케이션명칭 ( 메일, 결재, 게시 ) 과각테이블의기능혹은역할을표현하는단어 ( 문서, 첨부, 사용자 ) 등둘이상의단어를합성하여명명한다. 테이블명칭내에서각단어간의구분은 '_'(underline) 을사용하도록한다. 테이블명칭의두번째이후의단어은가능한표준영어명사를사용하도록하며, 어절의길이가길어짧게표현할필요가있을경우이외에는가급적약어혹은한글발음표기를사용하지않도록한다. 테이블명칭의길이는가급적최대 20자리를넘지않도록한다 pt_user pt_group pt_sign_doc : 공통시스템의사용자정보 : 공통시스템의부서정보 : 결재시스템의결재문서 2.2.2 컬럼명칭부여및컬럼설계규칙 컬럼명칭은필히소문자만으로구성한다. 컬럼명칭은가능한둘이상의어절을합성하여구성한다. 컬럼명칭의첫번째어절은컬럼의분류혹은테이블명칭의약자를나타내도록한다. doc( 문서 ), mail( 편지 ), att( 첨부 ), code( 코드 ) 4 / 7

컬럼명칭의두번째어절은컬럼에저장되는데이터의용도를나타내도록한다. id, name, subject, filepath 입력문자열의길이가일정한경우가능한 char 타입을사용하며 varchar2 혹은 varchar 타입은가급적사용하지않도록한다. ( 디스크공간의효율적활용및 insert, update 시속도향상과 fragmentation 방지를위해 varchar 보다는 char 타입이효율적이다. char 타입의출력시 right trim 처리가필요할수있으므로주의. 단, update가많이발생하지않는경우에는 varchar를사용해도무방하다고봄.) 날짜혹은시간을표현할경우 date, datetime 타입을사용해서는안되며, char 타입을사용하도록한다. 년월일을저장할경우에는 8자리, 시분초까지저장할경우에는 14자리를사용한다. char(8) : 날짜 (YYYYMMDD), char(14) : 날짜, 시간 (YYYYMMDDHHMI24SS) varchar2 혹은 varchar 타입을사용할경우, 2000 byte 이상의데이터를저장할필요가있을경우, long 혹은 text 타입을사용해야한다. 또한, 가변길이문자열컬럼을정의할경우, 오라클에서는 varchar2 타입을기타데이터베이스에서는 varcahr 타입을사용한다. 입력문자열의길이가짧은경우가급적 long, text 타입을사용하지말아야한다. long 혹은 text 타입은각종함수 (nvl,ltrim), 인덱스 (index), like 검색등을사용할수없다. 또한하나의테이블에둘이상의 long 타입컬럼을만들수없다. 단, text 타입은둘이상의컬럼을허용한다. 컬럼내에데이터가저장될때, ',', ';' 등의구분자 (delimeter) 가포함되는경우는가급적없도록설계시고려한다. 구분자를포함한데이터를저장하고자하는경우에는하위테이블 (child table) 을별도로추가한후구분자를이용해분할데이터를하위테이블에저장한다. 모든 ID 관련컬럼은 8~10 byte, 이름항목은 40 byte, 제목및설명은 255 byte, 문서내용에관한내용은 2G byte의크기를권장한다. 다음테이블에기술하는항목명칭들은관습적으로사용되는컬럼명칭이다. 이외의사례는 UbiFlow naming rule 문서를참조하라. [ Table 1 ] 테이블명칭 한글명칭 컬럼명칭 example 사용자 user user_id, user_name 부서 group group_id, group_name 기관 org org_id, org_tel, org_fax 전화 tel user_tel, group_tel 팩스 fax user_fax 직위 title user_title, user_titlename 직책 todo user_todo, user_todoname 개수 cnt doc_attcnt, doc_refcnt, child_cnt 순번 seqno add_pos_seqno, att_seqno 순서 order display_order 문서 doc doc_yearmon, doc_number, doc_type 수신 recv recv_date 5 / 7

예약 resv resv_date 참조 ref (reference) doc_refcnt 문서함 folder folder_type, folder_id 설명 comment folder_comment, type_comment 제목 subject doc_subject 대장혹은등록 reg (register) reg_date, reg_method 2.2.3 제약조건설계 (primary key, foregin key, null or not null) 기본키 (primary key) 의명칭은테이블명칭의앞에 pk_ 를추가한다. 기본키는가급적인덱스용테이블스페이스에생성토록한다. insert query 시성능향상을도모할경우에는가급적 foreign key를지정하지말아야한다. 설계서상에는논리적으로선언해야하며, 개발완료후운영용데이터베이스에서는삭제해도무방하다. ( 개발및테스트단계에서참조무결성이검증되었다고판단한다.) 프로그램개발완료후각테이블의데이터를추출 (select) 하는모든쿼리를검사한다. 이중에서가장많은빈도로호출되는쿼리를선택한후, 쿼리의응답속도가최상이될때까지인덱스를조정한다. 최빈도의쿼리에대한인덱스형성후, 그보다낮은빈도로접근하는쿼리에대한인덱스를생성하거나, 두쿼리의성능에균형 (balance) 을조절할수있도록첫번째인덱스를조정한다. 앞서하나혹은두인덱스에의해서다른쿼리의성능이떨어지는현상이발생하지않는지확인한다. 가급적 null 값이허용되고, null 데이터를많이포함하는컬럼은인덱스대상에서제외한다. 데이터값이편차가적은컬럼또한인덱스대상에서제외한다. igt_log 의 userlog_type, igt_group 의 org_id 인덱스생성으로인한성능향상을얻을수있는경우는인덱스를포함하는테이블이데이터가많거나, 향후행 (row) 의수가급격히증가할것이예상되는경우이다. 일반적으로 1000 ~ 10000건이하행을지니는테이블에서는인덱스를만들어도성능향상효과가없거나, 최적화기 (optimizer) 에의해서인덱스가무시될수도있다. 인덱스가실제사용되는지여부를알기위해서는오라클의경우, plan table을사용하거나, 싸이베이스혹은 MS-SQL 서버의경우에는 set showplan on 명령을사용하여야한다. 하나의테이블에가급적 3 개이상의인덱스를만들지않아야한다. 인덱스가많을경우, 추가 (insert), 수정 (update) 및삭제 (delete) 시쿼리의반응속도가느려지게되며, 디스크사용량이급증한다. 3. 오라클데이터베이스설계규칙 3.1 테이블설계규칙 모든테이블생성시테이블스페이스이름을명시하며, PCTFREE 10, PCTUSED 80, 6 / 7

PCTINCREASE 0 등세가지설정을추가한다. /* 환경설정정보 */ CREATE TABLE pt_ini ( ini_name varchar2(40) NOT NULL, /* 환경설정항목명칭 */ ini_value varchar2(255) NOT NULL, /* 환경설정값 */ ini_explain varchar2(255) NULL /* 환경설정항목설명 */ ) PCTFREE 10 PCTUSED 80 TABLESPACE gw_data STORAGE ( PCTINCREASE 0 ) / 3.1.1 인덱스설계규칙 인덱스생성시테이블스페이스이름을명시하며, STORAGE 옵션을다음과같이설정한다. ALTER TABLE PT_ini ADD CONSTRAINT pk_ini PRIMARY KEY ( ini_name ) USING INDEX TABLESPACE gw_index STORAGE(INITIAL 32K NEXT 32K MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 0) / 인덱스생성을위해 storage 크기는 8K * 4 배수로결정하며, 다음의표를참조하여생성한다. [ Table 2 ] 인덱스저장용량산정 페이지크기 테이블속성 적용테이블사례 32K insert rarely, delete rarely 문서번호관리 (doc_number), 환경설정 (ini), 서버설정 (server), 볼륨설정 (volume), 부서및사용자 (group, user) 등 128K 512K 2M insert frequently, delete frequently or insert rarely, but index record size is long insert frequently, delete rarely insert very frequently, delete rarely 메모 (memo), 메일문서함 (mail_doc_folder) 및첨부 (mail_attach), 게시판문서관련테이블 (bbs_doc) 등 주소록관리 (addrbook), 결재경로관리, 공람내역등 결재대장, 결재문서수발신기록, 결재날인기록등 7 / 7