2018년 7월 10일 화요일

3주/1강: 조직적인 자료관리(데이터베이스 활용 입문)

[커세라 강좌 소개] 자료기반 천문학(Data-Driven Astronomy)
https://www.coursera.org/learn/data-driven-astronomy

-----------------------------------------------------------------
Week 3: Querying data using SQL
제3주차: 스퀠(SQL)을 이용한 자료 조회
- How to use databases to analyse your data
  획득한 자료를 분석하기 위해 데이터베이스 활용하는 법
- Investigating exoplanets in other solar systems
  다른 태양계의 외계행성 탐사
-----------------------------------------------------------------
1강: 조직적인 자료관리(데이터베이스 활용 입문)
Lesson 1. Organizing your data / 한글자막 / 영문자막

[강의대본]


[00:06] 천문학자 뿐만 아니라 과학자들은 흔히 (관측, 실험)목록을 만든다. 이 목록안에 수천에서 백만개의 항목들을 망라한다. 그리고 각 항목 마다 백여개의 특성을 가지고 있기 마련이다. 이들 자료들의 규모가 커지고 복잡해짐에 따라 그 자료들을 조직화하고 효과적으로 접근하는 일이 아주 중요하게 됐다. 이번주 강의는 자료를 조직화하는 일반적인 한 방법을 살펴보려고 한다. 바로 관계형 데이터 베이스라는 것이다(Relational-Database).


[00:28] 먼저 외계 행성계 목록을 가지고 시작해 보자. 이 목록은 공전하는 행성을 가지고 있다고 알려진 우리 태양계 밖의 별을 수집해놓았다. 이번주 강좌를 끝까지 마치면 기초적인 과학항목에 답하기 위한 검색에 SQL을 사용하게 된다. 그 질문항목의 예를 들면 중심별에서 생명가능 거주지역에 지구만한 크기의 외계행성이 공전할 수 있는 궤도의 숫자가 몇개나 가능할까? 다른말로 하면 그 질문은 얼마나 많은 생명이 존재할 외계행성을 가지고 있을까?

[00:52] 우리 태양계넘어 주위에 행성이 존재 하는 별의 발견은 우리 시대에 아주 획기적인 과학적 발견이다. 계속 이어지는 발견으로 이 분야의 연구에 많은 노력이 들어 갔는데 상당량의 결과가 케플러 우주 망원경으로 별의 앞을 통과하는 물체를 관측(transit method)하는 중에 나왔다. 이에 관한 사항은 다음 강좌에서 좀더 다룰 것이다.



[01:10] 외계행성을 자료 중 가장 큰것은 2016 벌의 기록인데, 케플러 팀이 천여개에 달하는 새로운 행성을 확인하기 위해 통계적으로 유효성을 적용하여 얻은 것이다. 처리해야 할 외계행성 자료가 너무 많기 때문에 이 정도가 가능한 숫자다. 발견된 수천에 이르는 외계행성 중 하나하나 마다 살펴봐야 할 기본 특성(생명체가 가능한 여부)의 량이 엄청나다. 예를 들어 행성의 공전주기, 그 행성의 공전 궤도의 중심 별의 종류, 혹은 그 행성의 표면온도 같은 것들이다. 행성의 표면 온도는 생명체의 거주 가능성을 알아보는데 매우 중요한 항목이다. 거주가능한(habitable) 행성이라고 추정하려면 표면에 물이 있어야 한다. 만일 그 행성이 별과 너무 가깝다면 행성의 표면은 너무 뜨거워 물이 끓어 증발되어 버렸을 것이다.



[01:55] 좋은 예로 케플러 10b 인데 궤도가 별에 너무 가까워서 평균 온도가 거의 2천도 켈빈에 달한다. 한편 별에서 멀리 공전하는 행성은 너무 추워서 마치 우리 태양계의 외부행성 처럼 표면이 모두 얼음으로 덮혀있다. 물이 액체로 존재하는 적당한 온도를 유지하는 지점에서 논의를 시작하자.



[02:16] 흔히 거주 가능한 지역으로 더 잘 알려진 흔리 골디락스(Goldilocks) 지역 말이다. 자료에 기반한 연구의 기본사항 중 하나로 우리가 가진 자료에 대해 의심을 해본다. 일예로, 지구보다 작은 외계행성이 얼마나 많은지 알고 싶다(지구보다 작은 행성은 거주가능성이 낮으므로 걸러내기로 하자). 전통적으로 과학자들은 간단한 프로그램을 작성하여 이에 대해 답해왔다. 그 프로그램은 아마 시스템 명령어 묶음(Shell), 파이썬 또는 잘 아는 컴퓨터 언어를 사용해서 작성했으며 문자로 기록된 컴퓨터 자료철(text file)에서 자료를 읽고 일련의 가정문(if statement)을 사용하여 그 자료들을 걸러 냈다.

* 검색 프로그램은 수집된 자료중 조건에 맞는 항목을 찾아내는 문장들로 가득하다. 조건을 찾기 위한 컴퓨터 언어의 문장은 당연히 if 문이다.

찾고자 하는 사항이 명료하다면 이런 방식이 효과있고 그 문제에 딱 맞춘 프로그램이 된다. 하지만 만일 다른 연구자가 우리가 수집한 자료를 활용하고 싶다면 어떻게 할까?

[02:53] 우리는 그가 원하는 사항을 미리 알 수 없다. 혹은 그가 걸러내고 싶은 자료의 조건이 무엇인지 모른다. 또한 우리의 자료에 대한 보안이나 체계가 흐트려지지 않을지 염려스럽다. 그리고 우리 방식대로 자료들을 정기적으로 갱신하고 싶다. 그런데 누군가 이 자료를 들쑤셔 놓지 않을까 걱정이다. 이런 곤란한 상황에 대처하기 위한 좋은 방안으로 흔히 데이터 베이스라 부르는 자료 관리 시스템을 활용한다. 대규모 자료를 다루는 곳이라면 안쓰이는 데가 없다. 은행, 대학의 수강신청, 건강보험 시스템등.

[03:21] 과학분야에서 데이터베이스가 점점더 많이 사용되는 추세다.(측정기술의 발전 덕에 관측 및 실험자료가 방대해 지고 있다) 천문관측 자료에 데이터베이스를 활용한 가장 잘 알려진 초창기 예가 슬로언 디지털 스카이 서베이(SDSS)다. 마이크로소프트사의 데이터베이스 고수인 짐 그레이에 의해 이 분야(천문학과 IT기술 활용)가 개척되었다. SDSS는 대규모 천문관측 자료를 온-라인으로 공개하는 초기 프로젝트중 하나였다. 전 하늘에 걸친 관측 자료와 연관된 정보의 모든 자료를 공개한다.

* 사진은 물론 위치 좌표, 특이사항등을 포함, 심지어 오류난 관측 자료까지 모두 공개한다. 진흙속에 진주가 있을지도 모르므로.



[03:39] 자료와 검색할 명령창을 제공하는데 사용자가 원하는 항목을 자료 서버에 요청 한다. 온-라인에 공개되어 누구나 사용가능 하므로 수백만 건의 사용자 검색 요청이 가능하다.이는 향후 있을 천문자료 관리 방법에 커다란 영향을 주었다. 과학자의 입장에서 봤을 때 아마도 데이터베이스의 가장 강력한 기능은 검색 요청을 주기만 하면 다 찾아준다는 점일 것이다. 자료를 관리하는 프로그램을 직접 짜야 하는 부담도 없다. 데이터베이스 시스템은 사용자가 원하는 모든 것을 갖추고 있다. 그러니까 자료의 규모가 커져도 걱정할 것이 없다는 뜻이다.

* 지난주 강좌의 가장 큰 숙제는 자료규모의 증가에 따른 처리시간이 급격하게 늘어나는 문제를 푸는 것이었다. 자료를 읽어내고 최적화된 검색 알고리즘을 직접 개발하고 작성 해야 했다.
* 데이터 베이스 시스템을 도입하면 검색용 키워드만 활용하면 된다. 자료 화일을 읽고 빠르게 검색하는 일은 데이터 베이스 시스템 내에 모두 내장되어있다.

[04:08] 대규모 자료철을 다룰 때 핵심적인 요령을 하나 꼽자면 사용자의 특정 용도에 맞는 바른 답(검색어)를 선택하는가에 달렸다. 이번주 강좌는 원천 자료파일을 다룰 때에 비해 데이터 베이스를 활용 하는 경우 얻는 장점을 다루기로 한다. 데이터베이스는 어떻게 자료들을 조직화 하고 SQL을 활용하여 데이터베이스에서 원하는 자료를 검색하도록 조회하는지 설명한다. SQL의 사용법을 배우게 될 것이며 표준 조회명령으로 데이터베이스에서 외계행성을 찾아보기로 한다. 이는 우리가 얼마나 많은 외계행성을 찾아낼지 보여주고 생명을 유지할 바른 인수 조건이 무엇인지도 알게된다.

댓글 없음:

댓글 쓰기