본문 바로가기

DB53

Mysql 유틸리티 MySQL 유틸리티 관련 파일은 대부분 UNIX & Linux OS의 shell Prompt 상태에서 실행된다. myisamchk MySQL 서버를 사용하다 예기치 못한 문제가 발생하여 데이터가 손상되었을 때 테이블 타입이 InnoDB라면 트랜잭션이 적용되기 때문에 그러한 경우 데이터를 복구 가능하지만, 테이블 타입이 MyISAM(데이터 및 인덱스를 저장하기 위해 .MYD 및 .MYI 파일을 가지고 있는 테이블)이라면 데이터가 손상될 확률이 좀 더 높다. 이런 경우 myisamchk 유틸리티를 사용하면 손상된 데이트를 수동으로나마 복구할 수 있다. MyISAM 테이블로 생성된 테이블은 기본적으로 3개의 파일이 생성된다. .MYI - 인덱스 파일 .frm - 테이블의 구조를 정의하는 파일 .MYD - 데이.. 2012. 3. 27.
중복 데이터의 포함 설계 지침 SELECT와 UPDATE 명령문의 구성을 간단하게 만든다. 변경 명령문의 처리는 각 요소가 오직 한번만 기록되어 있기 때문에 아주 빠르다. SELECT 명령문의 처리는 이와는 다른 이야기. 만약 어떤 속성(열)이 한 테이블에만 오직 한번만 기록되어 있다면 많은 조인이 수행되어야한다. 조인 처리와 다른 SELECT 명령문은 많은 시간이 소요된다. 이러한 문제를 해결하는 한 방법은 테이블에 중복된 데이터를 포함시키는 것이다. 여기서 조인과 다른 SELECT 명령문의 예제를 보여주고 있는데, 중복된 데이터가 추가 되었을 때 아주 빠르게 수행할 수 있다. 지침 4 : SELECT 명령문의 실행 시간이 만족스럽지 않을 때에는 중복 데이터를 추가하라 예제) 동아리에 가입한 학생의 이름과 동아리명을 출력하라. my.. 2012. 3. 27.
Database 결정자(Determinant) 결정자, 함수적 종속성 & BCNF에 대한 개인적 고찰 앞 글의 마지막 질문부터 다시 시작해 보죠. “결정자란 무엇입니까?” 글자 그대로 결정(Determinate)하는 놈이겠죠. 그럼 결정이라는 것이 뭔가요. 오래 전에 이휘재가 “난 결심했어!”라고 외치며 서로 다른 길에 대한 진행을 보여주던 프로그램이 생각나네요. 사회자인 이문세가 굵은 테의 선글라스를 쓰고 괜히 호들갑스럽게 소개하던 그 프로그램 말이죠. 요즘 이문세는 뭐하나. 결정이라는 것은 갈팡질팡 고민하는 상태가 아닙니다. “결심했어!” 곧, 여러 변수 중 하나로 정해진 상태를 말합니다. 예를 들면, 오늘 저녁 영화를 볼까, 술을 마실까, 당구나 칠까, 데이트나 할까, 등등의 변수에서 “술을 마신다”라고 하나로 정한 상태를 말한다는 것입니다.(.. 2012. 3. 27.
데이터베이스 설계 지침 데이터베이스의 설계 과정을 더욱 확실하게 살펴보자. 데이터베이스를 생성하기 전에 데이터베이스에 관한 구조를 먼저 설계 해야한다. 이 설계 과정 동안에 정의될 테이블과 각 테이블에 포함된 열을 결정. 그 다음에 데이터베이스 설계 과정을 구조 작업과 비교하여 데이터베이스를 설계한다. - 사용할 수 있는 기억공간 - 갱신을 위해 최대 수용할 수 있는 시간 - SELECT 명령문을 위해 최대 수용할 수 있는 시간 - 보안성 실제적인 설계를 시작하기 전일지라도 설계는 상황에 가장 관련 있는 요소를 결정해야한다. 즉, 가능하다면 기억공간을 절약할 수 있는가? SELECT 명령문이 거의 3초의 처리시간을 가질 수 잇는가? 반대로 몇개의 서로 다른 요소를 고려하는 요구가 있는가? 등을 결정해야한다. 여러 가지 요소의 .. 2012. 3. 26.