728x90
300x250

[MySQL] SQL을 활용한 "열 - 단위 환산 출력하기"

이번에 소개할 내용은 열에 정량적 측정에 대해서 컴퓨터 프로그래밍으로 해결하는 방법에 대해서 소개하겠다.
순수한 실험을 위한 화학은 아니고, 컴퓨터 프로그래밍 측면에서 비열의 측정 데이터를 처리하는 방법에 대한 것이다.

 소프트웨어

 스프레드시트(데이터베이스를 모를 경우 파일처리로 데이터베이스로 활용가능),
 프로그래밍 언어 1개(자바, C언어, C++ 프로그래밍, VBA 등의 언어),
 데이터베이스(1개: MySQL, Cubrid, MSSQL, Oracle)



1. 컴퓨터 프로그램으로 해석

크게 어려운 건 아니다. 몇 가지 식을 소개하겠다.

소개

 1cal/g℃ = 4.184J/g℃.

(cal에서 J로 환산)

 1cal/g℃ = 4.184J/g℃ x 1000g / 1kg = 4184J/kg℃

(g에서 kg으로 환산)

 

그림 1-1. 물질 관련 표, 도도(Dodo)

공기, 건조를 한글로 소리나는 데로 읽는다면, "에어, 드라이(시어 레벨)" 이렇게 읽어진다.
아무튼 이러한 물질에 관한 데이터 표가 있다.

그림 1-2. 단위 변환 - 스프레드시트에 적용해보기, 도도(Dodo)

그림 1-2는 실제 실험이 완료된 수치를 단위변환한 것이다.
문제점이 하나 발생한다.

수치를 범위로 표현한 것이다.

그림 1-3. 수치를 범위로 표현한 경우, 도도(Dodo)

이런 경우에는 수치 데이터표를 보완할 필요가 있다.
컴퓨터 프로그래밍으로 자료를 처리하기 좋은 쪽으로 작성하는 게 편리하다.

그림 1-4. Min, Max로 데이터의 범주를 규격화 시킨 경우, 도도(Dodo)

그림 1-4는 Min, Max의 형태로 데이터를 규격화 시켰다.
J/kg℃는 제거해도 무방하다.

논리적인 데이터로 데이터만 뽑아내면 되기 때문이다.

그림 1-5. Water에 관한 세부 속성, 도도(Dodo)

이러한 경우도 있을 수 있다.
물인데 수증기에 관한 것이 있고, 순수한 물이 있다.

[첨부(Attachment)]
Material_Substance.7z



2. MySQL로 구현하기

이번에 소개할 것은 컴퓨터 프로그래밍을 최대한 제거하였다.
APMSetup이라는 프로그램 또는 Apache 2, PHP 5.2, MySQL 5.077를 활용한 Joule 계산 실습을 진행하였다.

SQL 언어 정도만 이해하고 있으면 간단하게 해결할 수 있는 주제로 작성하였다.

 

 

번호

항목명

설명(Description)

1

Apache 2.2

오픈소스 - 웹서버

2

PHP 5.2

오픈소스 - 프로그래밍 언어

3

MySQL 5.077

오픈소스 - MySQL 5.077 Community Edition

4

phpMyAdmin

SQL 언어 실습 프로그램 (오픈소스)

참고할 점: APMSetup 6 Version으로 진행하였음. / 설치를 안 할 경우에는 localhost에 접속할 수 없다.

그림 2-1. APMSetup의 localhost 웹 사이트

"
myadmin"을 클릭한다.

그림 2-2. phpMyAdmin, 도도(Dodo)

계정에 아이디는 root, 비밀번호는 apmsetup이다.
입력한다.

그림 2-3. 사용권한에서 계정 생성하기, 도도(Dodo)

그림 2-3은 사용권한을 클릭하여 신규 계정을 생성한 것이다.
예로 편한 계정명을 입력하도록 하자.

그림 2-4. 데이터베이스 생성하기, 도도(Dodo)

그림 2-4는 데이터베이스를 생성하는 것이다.
dodo라는 데이터베이스를 생성할 것이다.

그림 2-5. 데이터베이스에 사용자 권한 주기, 도도(Dodo)

데이터베이스에 간단한 사용자 권한을 주었다.

그림 2-6. Material_substance.xlsx 파일 -> DB에 넣기, 도도(Dodo)

Material_substance에서 설계한 DB구조를 phpMyAdmin으로 생성하는 장면이다.

그림 2-7. Material_substance DB 구조 설계, 도도(Dodo)

항목명

특징(Specific)

비고(Remarks)

id

Primary Key, Auto Increment(자동 증분)

 

substance

 

// 물질명 

kor-substance

 

 // 한글명

min

 

 최소값

max

 

최대값

 

그림 2-8. Material_substance DB 구조 설계, 도도(Dodo)

CREATE TABLE `substance` {
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY_KEY ,
    `substance` VARCHAR ( 40 ) NOT NULL ,
    `kor-substance` VARCHAR ( 40 ) NOT NULL ,
    `min` DOUBLE NOT NULL ,
    `max` DOUBLE NOT NULL
} ENGINE = MYISAM ;

[첨부(Attachment)]
substance.7z

그림 2-9. 데이터 가져오기, 도도(Dodo)

insert into `dodo`.`substance` (`id`, `substance`, `kor-substance`, `min`, `max`) values(NULL, 'Acetals', '아세탈', '0.35','0.35');

이런 형태로 데이터를 가져왔다.

[첨부(Attachment)]
sample_insert.7z


그림 2-10. SQL 명령어를 활용한 J(Joule) 구하기, 도도(Dodo)

SQL 명령어를 활용하여 J(주울)을 구했다.

SELECT `id`, `substance`, `kor-substance`, `min`, `max`, `min` * 4.184 AS `Joul/g`, `min` * 4.184 * 1000 AS `Joul/kg` FROM substance

간단한 명령어를 통해서 J/g, J/kg의 형태를 구할 수 있었다.

그림 2-11. SQL 명령어를 활용한 J(Joule) 삭제하기, 도도(Dodo)

간단한 명령어로 줄(J)을 삭제할 수 있다.
그림 2-12는 삭제한 결과가 성공적으로 수행되었음을 알려주는 모습이다.

DELETE FROM `dodo`.`substance` WHERE `substance`.`id` =3 LIMIT 1 ;

그림 2-12. id 3번의 줄 삭제 모습, 도도(Dodo)

다음은 입력한 Joule 데이터를 수정하는 방법에 대해서 소개하겠다.
그림 2-12에서 수정할 대상에 대해서 "연필" 그림을 클릭한다.

그림 2-13. id 4번의 줄 수정 모습, 도도(Dodo)

수정할 데이터를 입력한다.
실행을 누르면 아래의 그림처럼 된다.

그림 2-14. id 4번의 줄 수정 완료, 도도(Dodo)

실제로는 그림을 눌러서 처리되는 것은 아니며, SQL이라는 명령어로 처리된다.

UPDATE `dodo`.`substance` SET `kor-substance` = '공기, 건조 (해수면) 수정' WHERE `substance`.`id` =4 LIMIT 1 ;

테이블을 삭제하는 방법에 대해서 소개하겠다.
구조를 클릭한다.
substance을 선택하고, 삭제를 누른다.

그림 2-15. SQL DROP 명령어 실행하기, 도도(Dodo)

아래의 그림이 출력되면, 삭제 관련 사항을 확인하고 예를 누른다.
참고로 테이블을 삭제하면, 복원이 되지 않는다.

그림 2-16. SQL DROP 명령어 실행하기, 도도(Dodo)

그림 2-17. SQL 질의 성공 (DROP), 도도(Dodo)

Drop 사용 방법은 아래와 같다.

DROP TABLE {테이블명};


3. 참고자료(Reference)

[1] Specific Heat of common Substances, https://www.engineeringtoolbox.com/specific-heat-capacity-d_391.html, Accessed by 2018-07-29
[2] Water Vapor - Specific Heat, https://www.engineeringtoolbox.com/water-vapor-d_979.html, Accessed by 2018-07-29
[3] How to convert calories to joules[J], https://www.rapidtables.com/convert/energy/how-cal-to-joule.html, Accessed by 2018-07-29
[4] Files, https://kldp.net/apmsetup/release/, Accessed by 2018-07-29
[5] Developing MySQL Applications with Eclipse CDT, MySQL, http://download.nust.na/pub6/mysql/tech-resources/articles/mysql-capi-tutorial.html, Accessed by 2018-07-29

반응형

+ Recent posts