해당 글은 글쓴이가 SQL 공부하면서 중요한 점이나, 핵심 개념들을 입맛대로 정제하고 정리한 글입니다. 오개념을 발견하셨거나 피드백할 점이 있다면 언제든 댓글이나 질문을 통해 해당 글에 남겨주세요 :)
데이터베이스란??
방대한 정보와 이야기를 담고 있는 '도구'. 데이터와 관련해서 일어날 수 있는 일들은 너무나도 다양하다! 복잡한 기술을 잠시 미뤄두고, 우리는 이 데이터를 어떻게 바라보고, 그 데이터를 어떤 방식으로 저장하고, 입력하며 출력할 수 있는지 그 키워드를 통해 함께 살펴보자!
Create의 'C', Read의 'R', Update의 'U', Delete의 'D'
'CRUD'
데이터를 '생성'하고, 생성된 데이터를 '읽고', 읽은 데이터를 '수정'하며, '삭제'하는 작업을 일컬어 '데이터베이스 작업' 혹은 '데이터베이스화'라고 한다. 우리는 이렇게 생성하고, 읽고, 수정하며, 삭제한 데이터베이스를 파일, 문서 등으로 요약하여 남들과 공유한다. 그리고 그 데이터베이스를 기반으로 새로운 기술을 사용하기도 한다.

위와 같이 스프레드시트 상에 저장된 데이터베이스가 있다고 상상해보자. 일반적으로 엑셀이나 스프레드시트 상에 저장된 데이터를 우리는 특성에 따라 구분한다. 해당 데이터셋에서는 제목(title), 내용(description), 날짜(created), 저자(author), 프로필(profile)으로 구분을 하는데, 사실 데이터(data)라고 막연하게 우리가 받아들이는 개념은 위와 같은 특성과 요소들이 무수히 많게 나열된 것과 같다.
그러나 데이터의 개수는 위의 것보다 무수하게 많이 존재한다. 엑셀, 스프레드시트와 같은 도구를 예로 들어보자. 해당 스프레드 내부에 존재하는 데이터셋에서 만약 우리가 특정 feature(특성, 요소)를 뽑아내고자 한다면, 검색 기능과 함께 정렬, 구조화 등 다양한 기능을 통해 찾으면서 데이터를 추출할 수 있다.
But
해당 특성이 100만 개, 200만 개, 1억 개 있다고 생각하면 어떤가? 생각만 해도 막막하다. 일일이 검색을 하며 특성들을 뽑아내야 할까? 그렇지 않다. 우리는 데이터베이스(Database)의 작업 과정을 MySql, PHP, Python 등의 언어를 통해 자동화할 수 있다. 우리는 이 언어를 통해 일일이 손을 쓰면서 다루던 데이터베이스를 조건에 따라 자동적으로 데이터의 생성, 읽기, 수정, 삭제할 수 있다. 그렇다면, 우리는 그 언어, 즉 도구를 적절히 선택하고 사용할 줄 알아야 하겠다.
그렇다면, python과 같이 언어 하나만으로 세상 모든 데이터베이스에 접근하고, 수정하고, 삭제할 수 있을까? 안타깝지만, 그렇지 않다. 데이터를 담고 있는 여러 도구는 회사, 기업들에 따라 상이하게 사용한다. 따라서 우리는 해당 기업이 요구하는 역량에 맞춰 준비하고, 그 영역에 대해 꾸준히 공부하며 잘 다룰 수 있어야 한다.
그래서 뭐하려고?
해당 카테고리에서는 여러 데이터베이스 분야 가운데 '관계형 데이터베이스' 분야인 SQL/MySQL을 다룰 것이다. 하지만 모두가 같은 데이터베이스 툴(엔진)을 다룰 필요가 없기 때문에, 각자의 선호와 기업의 요구에 따라 적절히 선택하면 된다.
하지만 어디서 어떻게 시작해야 할지 모르는 초보자라면, 가장 인기가 많고 많은 트래픽(사용자)이 들어오는 툴을 개인적으로 추천한다. 관련 정보와 엔진 추천 순위를 알 수 있는 정보 사이트가 있는데, 아래 보이는 사진과 링크를 참고하길 바란다~!!

위 소개된 'DB-Engines Ranking'은 다양한 DB 엔진들 가운데 가장 많이 사용되는 엔진 순으로 1위부터 나열하고 있다. 다양한 엔진 가운데 현재는 Oracle과 MySQL, MS SQL Server 가 1~3위를 차지하고 있다. 이 엔진들의 주된 공통점은 바로 'Relational', 관계형 DB 모델이라는 점이다. 기업의 규모나, 오픈소스 여부 등의 차이가 있지만, 그 장점 측면에서 관계형 DB 모델의 강력함은 사용할 수밖에 없는 이유를 제공한다.
그렇다고 해서 관계형 데이터 베이스가 아닌 'Document' 문서형 DB 모델은 별로냐? 하고 물어본다면, 당연히 그렇지 않다. 데이터의 특성에 따라 모델(엔진)이 다른 것이지, 그 성능의 차이로 순위를 구분한다고 생각해선 안된다.
https://db-engines.com/en/ranking
DB-Engines Ranking
Popularity ranking of database management systems.
db-engines.com
# 작은 각오
아직 병아리 기획자로서 쌓아야 할 역량이 수두룩하고, 데이터를 다루는 경험, 기회도 많이 부족한 상황이다. 그렇기에 더더욱 증진하고, 해당 분야를 공부해야 하지 않겠는가? 단순히 자격증을 위한 공부보다 데이터의 본질과 그 본질을 기반으로 한 활용 능력을 키우고 싶어 해당 카테고리를 고민 끝에 고안했다. 다른 글도 마찬가지지만,,, 끊기지 않고 꾸준하게 하나하나 쌓아가는 것이 중요하다!! 열심히 올려보려 하니 데이터 분석을 도전하고 싶은 사람이라면 관심 있게 지켜봐주길!!
해당 글은 생활코딩의 DATABASE 수업을 근간으로 정리된 글입니다. 본격적인 글에 앞서 SQL, MySQL등 데이터를 다루기 위한 사전 작업임을 언급하며, 데이터 분석을 위한 이해와 정리를 목적으로 작성한 글임을 미리 알려드립니다. 자세한 수업 내용이 궁금하다면 해당 사이트를 방문해주세요~!!
"https://www.flaticon.com/kr/free-icons/sql" 아이콘 제작자: Freepik - Flaticon
'데이터 분석(DA) > 📈 SQL' 카테고리의 다른 글
관계형 데이터베이스 (Relational Database) [SQL] (1) | 2024.01.31 |
---|
해당 글은 글쓴이가 SQL 공부하면서 중요한 점이나, 핵심 개념들을 입맛대로 정제하고 정리한 글입니다. 오개념을 발견하셨거나 피드백할 점이 있다면 언제든 댓글이나 질문을 통해 해당 글에 남겨주세요 :)
데이터베이스란??
방대한 정보와 이야기를 담고 있는 '도구'. 데이터와 관련해서 일어날 수 있는 일들은 너무나도 다양하다! 복잡한 기술을 잠시 미뤄두고, 우리는 이 데이터를 어떻게 바라보고, 그 데이터를 어떤 방식으로 저장하고, 입력하며 출력할 수 있는지 그 키워드를 통해 함께 살펴보자!
Create의 'C', Read의 'R', Update의 'U', Delete의 'D'
'CRUD'
데이터를 '생성'하고, 생성된 데이터를 '읽고', 읽은 데이터를 '수정'하며, '삭제'하는 작업을 일컬어 '데이터베이스 작업' 혹은 '데이터베이스화'라고 한다. 우리는 이렇게 생성하고, 읽고, 수정하며, 삭제한 데이터베이스를 파일, 문서 등으로 요약하여 남들과 공유한다. 그리고 그 데이터베이스를 기반으로 새로운 기술을 사용하기도 한다.

위와 같이 스프레드시트 상에 저장된 데이터베이스가 있다고 상상해보자. 일반적으로 엑셀이나 스프레드시트 상에 저장된 데이터를 우리는 특성에 따라 구분한다. 해당 데이터셋에서는 제목(title), 내용(description), 날짜(created), 저자(author), 프로필(profile)으로 구분을 하는데, 사실 데이터(data)라고 막연하게 우리가 받아들이는 개념은 위와 같은 특성과 요소들이 무수히 많게 나열된 것과 같다.
그러나 데이터의 개수는 위의 것보다 무수하게 많이 존재한다. 엑셀, 스프레드시트와 같은 도구를 예로 들어보자. 해당 스프레드 내부에 존재하는 데이터셋에서 만약 우리가 특정 feature(특성, 요소)를 뽑아내고자 한다면, 검색 기능과 함께 정렬, 구조화 등 다양한 기능을 통해 찾으면서 데이터를 추출할 수 있다.
But
해당 특성이 100만 개, 200만 개, 1억 개 있다고 생각하면 어떤가? 생각만 해도 막막하다. 일일이 검색을 하며 특성들을 뽑아내야 할까? 그렇지 않다. 우리는 데이터베이스(Database)의 작업 과정을 MySql, PHP, Python 등의 언어를 통해 자동화할 수 있다. 우리는 이 언어를 통해 일일이 손을 쓰면서 다루던 데이터베이스를 조건에 따라 자동적으로 데이터의 생성, 읽기, 수정, 삭제할 수 있다. 그렇다면, 우리는 그 언어, 즉 도구를 적절히 선택하고 사용할 줄 알아야 하겠다.
그렇다면, python과 같이 언어 하나만으로 세상 모든 데이터베이스에 접근하고, 수정하고, 삭제할 수 있을까? 안타깝지만, 그렇지 않다. 데이터를 담고 있는 여러 도구는 회사, 기업들에 따라 상이하게 사용한다. 따라서 우리는 해당 기업이 요구하는 역량에 맞춰 준비하고, 그 영역에 대해 꾸준히 공부하며 잘 다룰 수 있어야 한다.
그래서 뭐하려고?
해당 카테고리에서는 여러 데이터베이스 분야 가운데 '관계형 데이터베이스' 분야인 SQL/MySQL을 다룰 것이다. 하지만 모두가 같은 데이터베이스 툴(엔진)을 다룰 필요가 없기 때문에, 각자의 선호와 기업의 요구에 따라 적절히 선택하면 된다.
하지만 어디서 어떻게 시작해야 할지 모르는 초보자라면, 가장 인기가 많고 많은 트래픽(사용자)이 들어오는 툴을 개인적으로 추천한다. 관련 정보와 엔진 추천 순위를 알 수 있는 정보 사이트가 있는데, 아래 보이는 사진과 링크를 참고하길 바란다~!!

위 소개된 'DB-Engines Ranking'은 다양한 DB 엔진들 가운데 가장 많이 사용되는 엔진 순으로 1위부터 나열하고 있다. 다양한 엔진 가운데 현재는 Oracle과 MySQL, MS SQL Server 가 1~3위를 차지하고 있다. 이 엔진들의 주된 공통점은 바로 'Relational', 관계형 DB 모델이라는 점이다. 기업의 규모나, 오픈소스 여부 등의 차이가 있지만, 그 장점 측면에서 관계형 DB 모델의 강력함은 사용할 수밖에 없는 이유를 제공한다.
그렇다고 해서 관계형 데이터 베이스가 아닌 'Document' 문서형 DB 모델은 별로냐? 하고 물어본다면, 당연히 그렇지 않다. 데이터의 특성에 따라 모델(엔진)이 다른 것이지, 그 성능의 차이로 순위를 구분한다고 생각해선 안된다.
https://db-engines.com/en/ranking
DB-Engines Ranking
Popularity ranking of database management systems.
db-engines.com
# 작은 각오
아직 병아리 기획자로서 쌓아야 할 역량이 수두룩하고, 데이터를 다루는 경험, 기회도 많이 부족한 상황이다. 그렇기에 더더욱 증진하고, 해당 분야를 공부해야 하지 않겠는가? 단순히 자격증을 위한 공부보다 데이터의 본질과 그 본질을 기반으로 한 활용 능력을 키우고 싶어 해당 카테고리를 고민 끝에 고안했다. 다른 글도 마찬가지지만,,, 끊기지 않고 꾸준하게 하나하나 쌓아가는 것이 중요하다!! 열심히 올려보려 하니 데이터 분석을 도전하고 싶은 사람이라면 관심 있게 지켜봐주길!!
해당 글은 생활코딩의 DATABASE 수업을 근간으로 정리된 글입니다. 본격적인 글에 앞서 SQL, MySQL등 데이터를 다루기 위한 사전 작업임을 언급하며, 데이터 분석을 위한 이해와 정리를 목적으로 작성한 글임을 미리 알려드립니다. 자세한 수업 내용이 궁금하다면 해당 사이트를 방문해주세요~!!
"https://www.flaticon.com/kr/free-icons/sql" 아이콘 제작자: Freepik - Flaticon
'데이터 분석(DA) > 📈 SQL' 카테고리의 다른 글
관계형 데이터베이스 (Relational Database) [SQL] (1) | 2024.01.31 |
---|