MySQL은 DBMS 소프트웨어(=프로그램) 일종으로 Oralce사에서 제작한 툴이다.
데이터베이스를 '데이터의 집합' 이라고 정의하며 데이터베이스는 여러명의 사용자나 응용프로그램이 공유하고 동시에 접근이 가능해야 한다. 그래서 Excel과 같은 프로그램은 데이터의 집합으로 사용할수 있지만 동시에 접근을 할 수가 없기때문에 DBMS라고 부르기 어렵다.
데이터베이스는 '데이터의 집합' 혹은 '데이터의 저장공간'이며, 이 데이터베이스를 운영하는 소프트웨어를 DBMS라고 한다.
DBMS에는 MySQL말고 다양한 소프트웨어 종류들이 많다. 아래의 표로 확인하보자.
DBMS | 제작사 | 운영체제 | 기타 |
---|---|---|---|
MySQL | Oracle | Unix, Linux, Windows, Mac | 오픈소스(무료), 상용 |
MariaDB | MariaDB | Unix, Linux, Windows | 오픈소스(무료) |
PostgreSQL | PostgreSQL | Unix, Linux, Windows, Mac | 오픈소스(무료) |
Oracle | Oracle | Unix, Linux, Windows | 상용시장 점유율 1위 |
SQL Server | Microsoft | Windows | |
Access | Microsoft | Windows | PC용 |
SQLite | SQLite | Android, ios | 모바일 전용, 오픈소스(무료) |
그럼 이제 DBMS의 특징에 대해 살펴보자.
이 내용은 크게 중요한 내용은 아니지만 면접간에 물어볼수도 있을수도 있으니 한번 확인해보자.
DBMS는 크게 계층형, 망형, 관계형, 객체지향형, 객체관계형으로 구분이 된다. 그중에 우리가 공부할 MySQL은 관계형 DBMS로 RDBMS라고 불린다.
계층형 DBMS는 트리구조 형태로 되어 있으며 1:N 관계를 가진다. 이 구조는 처음 구축 후에 그 구조를 변경하기 까다로우며 주어진 상태에서의 검색은 상당히 빠르지만 접근의 유연성이 부족해서 임의의 검색에는 어려움이 따른다.
거의 사용될 일이 없지만 한번 알아보면 망형 DBMS는 계층형 DBMS에 비해 노드간에 수평적으로도 연결이 되어 있다는 것이다.
RDBMS의 특징은 테이블이라는 최소단위로 구성되어 있다. 테이블을 살펴보면 행과 열로 나눠지는데 행은 row라고 불리며 데이터의 개수와 같다. 열은 컬럼이라고 불리며 필드라고도 불린다.
RDBMS를 운영 및 유지하기 위해 필요한 언어를 SQL이라고 한다. SQL의 특징은 다음과 같다.
MySQL은 Oracle사에서 제작한 DBMS 소프트웨어로 오픈소스로 제공한다.
MySQL은 비상업용이나 교육용으로는 제한없이 사용이 가능하지만 상용으로 사용하기 위해서는 상용 라이선스를 취득해야한다.
만약 상용으로도 무료로 사용하고 싶으면 MySQL 개발자가 만든 MariaDB를 공부하는것도 좋다.