DB1, 전문화된 소프트웨어 (완)
---
---
https://opentutorials.org/course/3162
DATABASE1 - 생활코딩
수업소개 이 수업은 정보기술의 심장인 데이터베이스에 대한 포괄적인 소개를 담고 있습니다. 수업대상 이 수업은 구체적인 데이터베이스 제품을 다루지 않습니다. 데이터베이스라는 복잡한
opentutorials.org
---
우리는 지금부터 정보기술의 심장이라고 할 수 있는 데이터베이스에 대한 탐험을 시작
데이터가 중요한 이유는 데이터를 가공해서 다양한 일을 할 수 있기 때문.
소식과 지식을 전파, 대규모의 데이터로부터 통찰력 있는 분석 이런 일을 하기 위해선 데이터를 저장하고 꺼낼 수 있어야함.
이를 위해서 우리가 선택할 수 있는 첫 번째 수단은 file. 너무너무 좋지만
->성능, 보안, 편의성에 한계.
파일이 가진 이 한계를 극복하기 위해서 고안된 전문화된 소프트웨어가 데이터베이스
->데이터베이스를 이용하여 소중한 데이터를 안전하고 편리하고 빠르게 보관하고 사용할 수 있습니다.
---
세상엔 다양한 데이터 베이스 제품이 존재. mysql, 오라클, sql 서버, PostgreSQL, MongoDB..
이 수업(DB1)에서는 이 다양한 데이터베이스를 관통하는 가장 본질적인 기능들을 살펴 볼 것입니다.
상상력을 발휘해 주십쇼
데이터베이스는 거대하고 복잡하고 위험한 데이터를 다루기 위해서 고안된 도구입니다.
이런 데이터를 이미 갖고 계신 분에게는 배워야하는 DB의 복잡성 따위는 자신이 해결해야할 문제에 비하면 아무것도 아닐 것입니다.
> 어쨌든 더 편리하기 위해 나온 도구임
데이터베이스를 처음 접하는 분들은 대체로 이런 문제에 직면할 기회가 없었을 것이기 때문에 데이터베이스가 복잡하고 어렵고 뜬구름 잡는 것처럼 느껴질 수 있습니다. -> 상상력을 사용해서 우리 수업에서 사용할 예제를 크고 복잡하고 위험하게 간주해줘요
그래야 데이터베이스의 복잡성에 대해서 공감할 수 있을 것입니다. 공감이 없는 이해는 모래위에 지어진 성이라는걸 기억해주세요
지금부터 우리는 보이지 않는 곳에서 묵묵히 동작하고 있는 정보기술의 심장 데이터베이스의 세계를 탐험할 겁니다
---
데이터베이스는 매우 방대한 기능을 갖고 있는 정보 도구입니다.
데이터베이스의 기능이 방대한 것은 데이터 관련해서 일어날 수 있는 일들이 참으로 많기 때문입니다.
이렇게 표면적이 넓은 기술을 배울 때, 그 수 많은 기능들을 하나하나 각개격파 하면서 공부해야 할까요
아무리 복잡한 기술도 그 중심에 자리잡고 있는 핵심은 복잡하지 않습니다. 어렵지도 않습니다.
여러분이 어떤 데이터베이스를 만나건 제일먼저 해야할 것은 이 바닥에서 데이터베이스의 데이터를 어떻게 입력하고 어떻게 출력하는가를 따져보는 것. 입력과 출력을 파악한다면 그 DB의 반을 안다고 해도 과언이 아니다. 또 입력은 다시 세가지의 작업으로 쪼갤 수 있다. 데이터의 생성, 수정, 삭제로.
->데이터를 생성하고 읽고 수정하고 삭제하는 네 가지 작업이 데이터 관련해서 우리에게 필요한 거의 모든 것이라고해도 과언이 아님.
이 네가지 작업을 CRUD.
그 외 복잡한 기능들은 바로 이 crud를 보좌하는 부가적인 기능들의 불과합니다.
이 사실을 기억하신다면 아마도 여러분은 어떤 데이터베이스를 만나도 겁날 것이 없습니다. 뭐가중요하다고요? CRUD
--------------------------------------------------------------------------------------------------------------------------------
상품 설명, 날짜, 만든이, 그사람 직업 - 이렇게 메모장을 여러 개 만든다고 치면
이런 데이터가 1억개라면?
어떤 특정 사람것만 보고싶다면?
날짜순으로 보고싶다면?
그 정렬을 반대로 바꾸고 싶다면?
본문 빼고 날짜 만든이 그사람 직업을 다 숨기고 싶다면?
그럼이제 스프레드시트로 손이 갈 것.
스프레드시트는 MS에서는 excel이란 제품이 있고, 구글은 구글 문서도구, 오픈오피스 등…
스프레드시트에서 정보의 구조를 만듦. 구조적으로 저장할 수 있다. 고유숫자(ID), Title, 저자, 프로필..
스프레드시트에서 하면 정리정돈 했을 때 얻을 수 있는 중요한 효과들을 볼 수가 있다. 스프레드시트의 기능인 필터를 선택하면 특정 저자것만 볼 수 있는 등의 그냥 메모장에다 쓴것과는 큰 차이점이 있다.
정리정돈을 하니까 데이터를 가공하는 것이 훨씬 더 쉬워진다.
파일에 비해서 스프레드시트는 데이터베이스로 가는 길목에 있다라고 할 수가 있다.
스프레드시트와 DB의 차이점은 프로그래밍 적으로 또는 컴퓨터 언어를 이용해서 데이터를 추가하고 수정하고 삭제하고 읽을 수 있다라는 점을 DB는 갖고 있다. = 자동화할 수 있다는 말. 사람이 일일이 작성하지 않고도, 어떤 조건에 따라 자동으로 데이터를 생성 수정 삭제 읽을 수 있다.
Relational DBMS : 관리형 데이터베이스 관리 시스템의 약자 - 1970년부터 DB시장의 절대 강자. 오라클, MySQL등 한 개 배우면 나머지도 잘한다.
MongoDB는 Document store 인데 이것도 배워야 공통점으로 DB의 본질을 배우고 차이점으로 DB가 꼭 이래야만 하는건 아니구나를 배울 수 있음.
SNS, 사물인터넷, 많은 사람들이 프로그래밍을 하는 세상이 오면 수많은 데이터들이 쏟아져 나올 것이고 다양한 종류의 데이터들이 나타나게 될 것. 관계형 데이터베이스에 잘 맞지 않는 데이터베이스들은 관계형DB가 일종의 억압으로 작용할 수가 있다.
2010년부터 NO-sql이라는 큰 흐름이 나왔고, 관계형 데이터베이스가 아닌 다양한 데이터베이스가 많이 만들어졌음.