SQL은 추가공부가 필요하다는 생각이 들어 '혼자 공부하는 SQL'을 참고하며 이해한 내용들을 정리하려한다.
'혼자 공부하는 SQL'의 후반은 SQL과 파이썬의 연결이 상세히 설명되어있고, 나는 현재 자바와 스프링을 공부하는 중이지만 나중에 파이썬도 추가로 공부할 의향도 있으며 내용이 굉장히 상세하고 구체적이기에 공부하기에 적합했다.
그럼 시작❗❗😆
SQL을 공부하기에 앞서 데이터베이스와 DBMS가 무엇인지 알아야한다.
데이터베이스란, 쉽게 이야기하면 정보들의 집합 그 자체이다. IT뿐만 아니라 우리의 일상 속에서 SNS업로드, 대중교통 이용 시 태그한 교통카드 등의 모든 정보가 데이터베이스에 저장이 된다.
그렇다면 그 무수히 많은 데이터들을 어떻게 관리하는지 대해 궁금증이 생긴다.
그리고 이 역할을 하는게 DBMS이다.
하지만 DBMS는 데이터베이스를 관리할 뿐만 아니고 여러명의 사용자 혹은 여러 응용프로그램들과 동시 접속, 그리고 공유가 가능해야만 DBMS라고 할 수 있다.
엑셀도 정보들의 집합이라고는 할 수 있지만, 한명의 사용자만이 수정 및 삭제가 가능하기에 DBMS라고 부를 수 없다.
엑셀을 이용하여 만든 파일은 위에 말했듯이 한번에 한명의 사용자만이 작업할 수 있어 여러 사용자가 작업하고싶을때는 여러개의 파일을 만들거나 서로 다른 시간에 작업을 해야한다.
뿐만아니라 만약 A사용자가 B사용자가 작성할 부분에 잘못 작성하는 경우, 정보가 누락되는 등등 여러 불상사가 발생할 수 있는 단점들이 많다.
이 파일의 단점을 보완하여 탄생한 것이 DBMS인 것이다.
DBMS는 파일의 단점을 보완하면서 데이터베이스를 잘 관리하고 운영하기 위한 소프트웨어이다.
DBMS는 대표적으로 이와 같은 소프트웨어들이 있다.
DBMS | 제작사 | 작동 운영체제 | 기타 |
---|---|---|---|
MySQL | Oracle | Unix, Linux, Windows, Mac | 오픈소스(무료), 상용 |
MariaDB | MariaDB | Unix, Linux, Windows | 오픈소스(무려), MySQL 초기 개발자들이 독립해서 만들었다. |
PostgreSQL | PostgreSQL | Unix, Linux, Windows, Mac | 오픈소스(무료) |
Oracle | Oracle | Unix, Linux, Windows | 상용 시장 점유율 1위 |
SQL server | Microsoft | Windows | 주로 중,대형급 시장에서 사용 |
DB2 | IBM | Unix, Linux, Windows | 메인 프레임 시장 점유율 1위 |
Access | Microsoft | Windows | PC용 |
SQLite | SQLite | Androids,iOS | 모바일전용, 오픈소스(무료) |
DBMS는 계층형, 망형, 관계형, 객체지향형, 객체관계형 등으로 구분되는데 관계형 DBMS가 가장 많이 사용된다.
관계형 DBMS는 RDBMS라고도 부르는데 Table이라는 최소 단위로 구분되고 row(행), column(열)로 구분된다. 이렇게 말로 하면 어렵게 느껴지겠지만 실제로 보면 굉장히 쉽게 이해할 수 있다.
예를 들어 하나의 테이블을 만들어보겠다.
아이디 | 이름 | 나이 |
---|---|---|
junho | 이준호 | 29 |
youngwoo | 우영우 | 27 |
myungseok | 정명석 | 43 |
springsun | 최수연 | 27 |
테이블을 만들겠다면서 무슨 표를 만들었나 싶겠지만 이게 바로 TABLE이다.
세로의 column, 가로의 row로 이루어져있다.
즉, 위 표는 3개의 column과 4개의 row로 구성되어있다.
이 DBMS에 데이터를 구축, 관리하기위해 사용되는 언어가 바로 SQL인 것이다.
즉, SQL을 잘 이해하고 잘 다룰 수 있어야 데이터베이스를 관리할 수 있는 DBMS를 원활하게 사용할 수 있다.
예를 들어 미국에 가서 한국어로만 이야기하면 소통이 쉽지않다. 미국 문화에 대해 이해하기 위해서는 미국의 언어인 영어를 먼저 배워야하는것과 같다.
SQL은 사람과 DBMS가 소통할 수 있게해주는 언어인것이다.
다음글부터 본격적으로 SQL을 정리할것이다!! 어렵지만 그래도 이해한만큼 꾸준히 노력해보려한다!