[SQL] 내멋대로 강좌. 비개발자도 스티밋 통계를 뽑을 때까지 - 1편 - 데이터베이스 개념편

in #database7 years ago (edited)

실력이 미천하지만 제가 아는 한도 내에서 데이터베이스 강좌를 한편씩 올리려고 합니다. 비 IT인들도 따라할수 있는 수준으로 진행하려고 노력할 예정이며 최종 목표는 steemsql을 통해 여러가지 통계를 뽑는 것입니다. 프로그램 언어는 다양하며 그만큼 사용법도 제각각입니다. 하지만 SQL은 한번 배우고 익혀놓으면 다른 데이터베이스라도 무리없이 금방 적응해서 사용할 수 있습니다. ( 오라클, MSSQL, MySql 등) . 데이터베이스에 일을 시키는 표준 언어라고 생각하시면 되겠습니다.

요즘은 IT전공이 아니더라도 데이터베이스를 많이들 배우는 것 같습니다. 데이터에서 어떤 의미있는 정보를 추출하여 좀더 나은 의사결정을 할수 있게 만들기 때문입니다.

"그거 전산(데이터 처리)부서에 요청하면 되는거 아니야?"

라고 생각하실 분이 계실지도 모르겠습니다만. 명확한 차이가 있습니다. 어떤 정보를 추출할 수 있는지 아는것과 모르고 요청하는 것은 하늘과 땅 차이입니다. 드론으로 예를 들죠. 드론 조종기의 사용법을 모르고 친구에게 드론을 조종하라고 하는것과 숙지한 다음 친구에게 조종을 시키는 것 정도의 차이라고 생각하시면 됩니다. 자신이 활용법을 모르는데 어찌 좋은 정보를 추출할 수 있겠습니까?

흔히들 회사 내에서는 '정보계'라고 부르지요. 기업의 자금, 영업, 회계, 인사 등 전사적 데이터가 모두 모여 기업의 특성 별 가치있는 자료를 추출해 기업의 향후 비지니스 전략에 중요한 지표로 쓰이죠. 많은 분들이 알고 계시듯 '노키아', '소니', '모토로라' 등이 시장의 트렌드에 적응하지 못해 몰락한 기업들입니다. 그들은 이 전략을 잘못 세운것이죠.

여러분들도 스티밋이나 회사 내에서 또는 작은 구멍가게라도 운영한다면 이 데이터라는 것을 통해 중요한 지표를 뽑아내 가치있는 결정을 내릴 수 있겠습니다. 저는 이 데이터베이스에서 정보를 추출할 수 있는 SQL을 설명해드리기 위한 제 나름대로의 강좌를 진행할 예정입니다.

스티밋에 투자하신 분들 혹은 투자하려고 하시는 분들은 나름의 의미있는 통계를 뽑으려고 생각중일수도 있을 것입니다. 이 지표의 기준은 개개인마다 다를 것이며 니즈와 전략이 제각각 다를것입니다. 나름의 기준으로 통계를 추출하여 투자에 참고하실 수도 있겠습니다.

저는 무언가를 익힐 때 정의부터 명확하게 내리는 것을 좋아합니다. 첫번째 편은 데이터베이스의 개념부터 잡도록 하겠습니다.


데이터베이스(DATABASE)란 무엇인가?


: 자료를 저장해놓는 곳. DATA + BASE. 말 그대로.

첫번째. 데이터(자료)와 인포메이션(정보)의 차이?

자료는 가공되지 않은 팩트를 이야기 한다. 예를 들어 2017년 9월 1일부터 30일까지의 일기예보는 자료다. 이 자료를 가지고 9월 강수 확률을 구해서 9월 평균 15%의 강수확률이 있었다고 하면 이것은 정보가 된다. 우리는 정보를 구하기 위해 수많은 데이터(자료)를 저장하고 있다.

우리가 네이버에서 검색하는 하나하나 모두 데이터베이스에 저장해서 실시간 검색어 순위라던지 2017년 상반기 트렌드 같은 정보가 나오는 것이다. 이 정보의 가치는 두말 하면 입아플 것이다. 개인적으로 오바마의 2012년 대선의 선거 승리를 이끌어낸 빅데이터 활용 팀을 소개하는 책을 보면 데이터의 중요성을 뼈저리게 알수 있다.

빅데이터, 승리의 과학

두번째. 데이터베이스는 엑셀과 같다?

나는 비 IT인에게 데이터베이스를 설명 한다면 데이터베이스 = 엑셀이라고 표현할 것이다. 가장 쉽게 받아들일 수 있는 개념이기 때문이다.

1. 엑셀 파일 하나는 하나의 데이터베이스라고 생각할 수 있다.
2. 'Sheet1, Sheet2, Sheet3'은 각각 하나씩의 테이블이라고 표현할 수 있다.
3. 'A, B, C, D, E, F...' 는 컬럼(column : 항목)이라고 표현한다.

  • 그림 내에서 주민번호, 이름, 나이를 생각하면 된다.

4. 엑셀에서 행이라고 표현하는 1부터의 숫자는 데이터베이스에서는 로우(row)라고 표현한다.

그림(엑셀) 내에서 '고길동'과 '어여쁜'의 데이터를 저장하듯 여러분의 회사 내 데이터도 데이터베이스에 엑셀처럼 이쁘게 여러가지 데이터가 저장되고 있을 것이다.

이정도 개념만 알아도 전산부서(회사)에서 쉽게 무시하진 않을 것이다.

용어 활용편 ) "우리 DB에 고객정보 테이블안에 나이 컬럼이 없나요?"

세번째. 데이터베이스도 컴퓨터다.

데이터베이스, DB 라고 부르지만 신기방기한게 아니다. 데이터를 저장하는 컴퓨터라고 생각하시면 되겠다. cpu, 메모리, 디스크가 있는 다 같은 컴퓨터인 것이다. 사용 용도에 따라 컴퓨터를 서버, PC, 데스크탑, 랩탑 등으로 부른다. 그래서 다들 DB 서버라고 부른다.

네번째. 데이터베이스는 주기적으로 백업한다.

기업의 데이터베이스는 사고와 과거 데이터 복구를 대비, 각종 정보처리에 관련된 법령에 의해 데이터를 백업하도록 의무화 되어있다. 기업의 정책마다 주기는 다르겠지만 일정시간마다 백업을 하고 보관하는 기간도 나름의 법령과 약관으로 정해져있다.

삭제의 의무도 있는데 주요골자는 고객의 정보는 최소량으로 최소 기간만 저장하도록 하는게 국내의 정보보호법이며 고객의 요청에 따라 즉각 철회, 삭제할 수 있는 권리가 있고 필요의 가치가 다한 경우 정해진 일정기간 보관 후 삭제하도록 되어있다. (물론 제대로 안지켜지는 곳이 많을 걸로 본다.)

만약 여러분이 전산부서에 "몇월 데이터 없어요?" 라고 했을 때 없다고 말하는 사람은 사실 거짓말일 확률이 매우 높다. ㅋㅋ 복원하는 과정이 매우 복잡하고 매우 귀찮은 것이고 본인의 권한으로는 어림없는 일이지만 불가능한 일은 아닐것이다. 물론 기업이 소기업이라면 사정이 각각 다를 수 있겠다만은...

다섯번째. 여러분의 내공을 뽐낼 수 있는 DB관련 용어 활용편.

어떤 기업이든 전산 장애가 발생하기 마련이다. 이때 전산부서내지 회사 사람과 대화 중 이런 말 한마디쯤 던져주면 그사람은 흠칫 떨고말 것이다. 물론 길게 대화를 끌면 안되고 빨리 던지고 사라져야한다.

"이번 장애 말이에요. DB서버에 락이 걸린건가요? 원인이라도 빨리 잡아야 할텐데..." 하며 하늘을 한번 쳐다보며 한숨을 쉰 후 자리를 뜨면 가장 베스트하다.

락이 걸렸다는 것은 DB 내 같은 정보에 여러건의 수정이 들어오며 발생하는 교착상태라고 생각하면 된다. 앞서 들어온 처리가 끝나지 않으면서 뭘 처리해야할지 모르는 어리버리한 상태가 되었다고 생각하면 된다. 사람도 이런 저런 말 거의 동시에 들으면 뭘 먼저해야될지 모르는 상태가 있지 않은가? 그때와 똑같다.


다음 편에는 steemsql 서비스에 접속하는 방법과 회원정보를 추출해보는 실습을 진행할 예정입니다. 본글에 피드백을 주시는 내용에 따라 다음 포스팅의 강좌나 실습의 내용을 얼마든지 바꿀 수 있음을 미리 말씀드립니다. (관심 있어 하는 부분으로 진행하는게 당연하니까요.)

부족한 내용 보완해주시는 개발자분이나 DBA분이 계시면 본문에 참고하여 수정하며 더 공부하겠습니다. 감사합니다.

Sort:  
훈훈한 @nhj12311님 안녕하세요! 개대리 입니다. 쏘쿨한 @asbear님이 너무너무 고마워 하셔서 저도 같이 감사드리려고 이렇게 왔어요!! 감동적인 하루 보내시라고 0.2 SBD를 보내드립니다 ^^

Cheer Up!

  • from Clean STEEM activity supporter

개념설명 쉽게 해주셨네요^^
감사합니다. tip!

오~~ 컴알못 다니 잘 배우고 갑니다. 담 포스팅도 기대 됩니다ㅎ

최대한 쉽게 설명하려고 하니 잘 이해되지 않는 부분은 댓글로 언제든지 꼬집어주세요~!


This post was resteemed by @steemitrobot!
Good Luck!

Resteem your post just send 0.100 SBD or Steem with your post url on memo. We have over 2700+ followers. Take our service to reach more People.

Pro Plan: just send 1 SBD or Steem with your post url on memo we will resteem your post and send 10 upvotes from our Associate Accounts.

The @steemitrobot users are a small but growing community.
Check out the other resteemed posts in steemitrobot's feed.
Some of them are truly great. Please upvote this comment for helping me grow.

Good morning !
풀보팅.

오옷 비개발자 분들이 관심을 많이 가져주시면 좋겠습니다!!!
쿼리문까지 능숙하게 사용하진 않더라도, 스팀SQL에서 유용하게 쓸수있는 SQL 문을 많이 공개해주시면 다들 유용할것 같습니다 ^^

@감사해

감사합니다~^^ 관심들이 있으실지 모르겠네용. ㅎㅎ

헐 너무 대단하신 아니에요? ㅎㅎ 정확히 이런 시리즈 저도 기획해보고 싶었는데 엄두가 안나서 못하고 있었습니다. 다음편을 어떻게 구성하실지 궁금해지네요. 풀보리스팀 합니다 :)

우선 응원에 대해 감사의 말씀을 드리며... 일을 저질러버리고 말았습니다. 개인적으로 @segyepark님과 @asbear님의 강좌에 자극을 받으며 제가 비IT분들께 쉽게 알려줄수 있는게 뭐가 있을까 하다가... 그만...그만... Sql로 하고 말았습니다. ㅎㅎㅎ

기초중의 기초들로 진행하려고 하니 큰 무리는 없지 않을까 생각됩니다.ㅠㅠ

저야말로 @asbear님과 @nhj12311 님의 활동에 자극을 많이 받고 있습니다. 늘 말씀도 긍정적이게 하시는 모습 또한 많이 배우고 있습니다. 역시 뭐니뭐니해도 밝고 긍정적인 사람에게 가까이 하고픈 마음은 누구나 같은거 같아요^^
서로에게 긍정적인 자극을 주는 이런 관계 너무 좋은거 같습니다. 앞으로도 꾸준히 활동하며 서로에게 좋은 동기부여를 주는 관계로 함께 성장하면 좋겠습니다. 감사합니다 :)

의욕은 앞서지만 모르는게 많았던 일반인인 저는 너무 기대되는 연재입니다!!

siapa님도 제가 올리는 내용중에 이해되지 않는 부분이 있다면 바로 꼬집어주세요~! 저에게도 그게 큰 도움이 된답니다.

nhj12311님 포함해서 일반인들 대상으로 쉽게 포스팅 해주시는 분들이 많으셔서 스팀잇 눈팅만 잘해도 코딩 초보딱지는 땔 수 있을 것 같습니다. 궁금한거나 이해안되는거 생기면 문의드리겠습니다 ㅎㅎ

너무 재밌게 잘 읽었습니다. 다음편도 기다리며 팔로우합니다.

와 보람차네요. ^^ 감사합니다. 저도 팔로했습니다!

Coin Marketplace

STEEM 0.32
TRX 0.11
JST 0.034
BTC 66785.29
ETH 3229.75
USDT 1.00
SBD 4.30