본문 바로가기

DataBase

MySql DB 덤프 데이터베이스 덤프하기 $ mysqldump -u 사용자명 -p DB이름 > 덤프파일명.sql 데이터베이스 로드하기 로드하기 전에 로드할 데이터베이스에는 덤프 대상에 속한 테이블이 없어야만 한다. # 데이터베이스 초기화 mysql> drop database DB이름 mysql> create database DB이름 # 데이터 로드 $ mysql -u 사용자명 -p -e "source 덤프파일명.sql" DB이름 더보기
데이터베이스 정규화 제 1 정규화반복되는 속성들을 다른 개체로 나누어 분리함. 즉, 또다른 개체로 판단할 수 있는 속성들을 분리하고 각 개체의 속성들의 유일한 식별자를 가지게 함.부모테이블의 식별자는 반드시 자식테이블의 외부키(Foreign Key)로 전이됨. 제 2 정규화모든 속성은 식별자에 직접적으로 의존적이어야 하며 이에 해당되지 않는 속성을 분리함. 제 3 정규화식별자 이외의 속성은 식별자가 아닌 다른 속성에 종속적이지 않아야 함.식별자 이외의 속성에 종속적인 경우에는 분리함. 제 4 정규화의존적인 다 대 다 관계를 제거해서 1 대 다 관계로 만들어주는 것. 제 5 정규화관계 R가 제4정규형이고 관계 중에서 성립되는 모든 결합 종속성(join dependency)이 그 관계의 후보 키만으로 논리적으로 함축되어 있는 .. 더보기
[Oracle] 데이터 모델링 데이터 모델링 정보화 시스템을 구축하기 위해, 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법 기본 데이터모델링 개념 1. 업무가 관여하는 어떤 것(Entity Type) - 엔티티 타입은 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위(엔티티의 집합) - 엔티티 타입의 특징 1) 반드시 업무에서 필요하고 관리하고자 하는 정보이어야 한다. 2) 유일한 식별자에 의해 식별이 가능해야 한다. 3) 영속적으로 존재하는 엔티티의 집합이어야 한다. ("한 개"가 아니라 "두 개 이상") 4) 엔티티타입은 업무 프로세스에 의해 이용되어야 한다. 5) 엔티티타입은 반드시 속성이 있어야 한다. 6) 엔티티타입은 다른 엔티티타입과 최소 한 개 이상의.. 더보기
TRUNCATE TABLE TRUNCATE TABLE ※해당 테이블의 데이터를 모두 삭제하는 명령어 ※ DROP이 테이블의 정의를 삭제하는 것과 다르게 테이블은 남겨놓고 데이터를 삭제해 버린다. 이 명령어를 수행한 이후 테이블은 초기 생성 상태로 남게 된다. ※ DDL문장이므로 ROLLBACK 할 수 없다 [참고] ※ TRUNCATE TABLE과 DELETE는 그 기능은 같으나 구조적인 차이점이 있다. ※ TRUNCATE가DELET보다 작업 속도가 훨씬 빠른데 DELETE은 DML이므로 사용자가 DELETE를 사용 할 경우 해당 데이터에 대한 Undo Data를 만들게 된다. 이 때문에 DELETE의 경우 ROLLBAC이 가능하지만 TRUNCATE는 Undo Data를 만들지 않아서 ROLLBAC이 안 되는 대신 상대적으로 빠른 .. 더보기
조인 순서 조정을 위한 힌트(ordered, leading) 이 힌트는 다수의 테이블을 조인하는 경우에 조인 순서에 혼선이 있을 때 적용하는 것이 가장 일반적이다. Sort Merge 조인 이나 해쉬조인에서는 적은 테이블을 먼저 처리하도록 유도할 때 사용하는 것이 좋다. ORDERED FROM절에 기술된 테이블 순서대로 조인을 수행하도록 유도한다. 만약 LEADING 힌트와 함께 사용하면 LEADING 힌트는 무시된다. 예) SELECT /*+ ORDERED */ ... FROM TAB1, TAB2, TAB3 WHERE .... ORDERED 힌트는 액세스 순서만 제시할 뿐이고, 조인 방법 과는 무관하기 때문에 조인방법을 유도하기 위한 USE_NL, USE_MERGE등의 힌트와 함께 사용하는 것이 일반적이다 예) SELECT /*+ ORDERED USE_NL(A .. 더보기
정렬과 머지조인 정렬과 머지조인 보통 오라클에서 order by절, group by절, distinct 연산자, connect by 쿼리, b-tree to bitmap conversions 오퍼레이션, 분석함수, 집합연사, 인덱스 생성 등 많은 경우 정렬처리를 필요로한다. 정렬 처리는 아주 일반적인 오퍼레이션이면서 실제 메커니즘과 자원요구량이 잘 알려지지 않았다. 정렬처리 모드(work_area_execution) 정렬처리도 해시 조인과 같이 효율성 기준으로 optimal. onepass, multipass과 같이 3가지로 구분한다 optimal정렬은 순전히 메모리에서만 수행된다. 정렬을 시작할때 데이터 읽기를 진행하면서 점차적으로 메모리가 할당되며, 정렬시작 시 sort_area_size로 설정된 크기(또는 pga_.. 더보기
[ERWin] ERWin 7.3 Ver. Comment 로 Logical 만들기 이번에 7.3 으로 ER Win Version UP 했숨다~! 그거에 맞춰서 DB Oracle 에는 테이블에 Comment 컬럼이 있어요. 토드에서 테이블명 입력 후 F4 키를 누르시면 Table Description 을 볼 수 있습니다 이제 저녀석을 Reverse 해서 저 Comment 값을 Logical 로 변경하는 ER Win 작업을 해 보겠습니다. * Reverse Engineer 를 사용하여 DB 내용 값을 긁어오기 1. Tools - Reverse Engineer.. 를 선택합니다. 2. 어떤 타입의 DB 내용과 Logical 도 함께 긁어올 것인지 Physical 만 긁어 올 것인지 선택합니다. 전 Oracle 10g 이므로 Oracle 을 선택 하였습니다 ^^ Next 를 누릅니다. 3. .. 더보기
오라클 튜닝 관련 내용 정리 오라클 튜닝 관련 내용 정리 Ⅰ. Index 인덱스는 테이블이나 클러스터에서 쓰여지는 선택적인 객체로써, 오라클 데이터베이스 테이블내의 원하는 레코드를 빠르게 찾아갈 수 있도록 만들어진 데이터 구조입니다. 인덱스는 일련의 엔트리 목록으로 구성되어 있으며, 이러한 엔트리는 테이블의 테이타 행에 사용되는 각각의 키값과 ROWID값을 가집니다. 따라서 특정한 값에 대해 ROWID값을 가지고 접근 하기 때문에 접근속도가 상당히 빠릅니다. 인덱스는 여러 가지 방법으로 구현될 수 있으나 오라클에서는 B*Tree기반의 인덱스를 사용합니다. 왜 이렇게 인덱스에 관해서 장황하게 설명하냐구요? 앞으로 나오는 거의 대부분의 튜닝 과정속에서 index가 중요하게 사용되기 때문입죠. 아울러 어떤이는 “가장 최적의 인덱스를 어떻.. 더보기
오라클 날짜계산 ** 날짜계산-- '2011-01-20' 과 당일 사이의 달의 수를 NUMBER형 타입으로 반환-- MONTHS_BETWEEN(A,B) = A-B/30SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE('2011-01-20','YYYY-MM-DD')) FROM DUAL;-- 특정일의 달수 더한 날SELECT ADD_MONTHS(SYSDATE, 10) FROM DUAL;-- 특정일의 다음주 요일SELECT NEXT_DAY(SYSDATE,'FRIDAY') FROM DUAL;-- 특정일의 해당 월의 마지막 날SELECT LAST_DAY(SYSDATE) FROM DUAL;-- 특정일의 반올림(오후면 다음날..)SELECT ROUND(SYSDATE,'DD') FROM DUAL;-- 특정일의 전주 .. 더보기
오라클 시스템계정을 잃어버렸을 경우 sqlplus "/as sysdba" 로 로그인 하는경우에는 system 계정 패스워드 파일을 사용하거나 OS 인증을 사용한다. OS 인증의 경우에는 윈도우에서 ORA_DBA 그룹, 유닉스에서 dba 그룹인 경우 오라클이 설치된 컴에 administrator로 접속한 다음 도스창에서 sqlplus "/ as sysdba" 로 바로 로그인이 된다. 위와 같이 로그인 하면 sys 로 로그인 한 경우와 같기 때문에 System계정의 암호를 변경 할 수 있다. alter user system identified by 새암호 ; 더보기