1장 - DBMS 개요와 MySQL 소개

기운찬곰·2020년 11월 28일
0

MySQL

목록 보기
1/7
post-thumbnail
post-custom-banner

본 글은 이것이 MySQL입니다(한빛미디어, 우재남 지음) 을 읽고 정리한 내용입니다.


DBMS 개요

데이터베이스 정의와 특징

  • 데이터베이스(DB)
    • 데이터의 집합 : 여러명의 사용자나 응용프로그램이 공유하며 동시에 접근이 가능해야 함
    • 데이터의 저장공간 : 데이터가 저장되는 디스크 공간 그 자체를 의미
  • 데이터베이스 관리 시스템(DBMS) : 관리자가 데이터베이스를 쉽게 관리 운영하도록 해주는 응용 프로그램. 대표적인 예가 바로 MySQL이다. 그 외에도 Oracle, SQL Server 등이 유명하다.

데이터베이스 특징

  • 무결성과 제약조건 : 데이터베이스는 제약조건을 가지며 이것을 통해 오류가 나지 않도록 하는 무결성을 지킬 수 있다.

  • 독립성 : 데이터베이스를 이용하는 응용프로그램과 데이터베이스는 서로 독립적인 관계이다.

  • 보안 : 데이터베이스 안의 데이터는 아무나 접근할 수 없다. 즉, 인가된 사용자만 접근할 수 있어야 한다.

  • 중복 최소화 : 동일한 데이터가 중복 저장되는 것을 방지한다.

  • 안정성 : 대부분의 DBMS는 백업 및 복원 기능을 제공한다.

데이터베이스 발전

  1. 처음에는 종이에다가 사람이 직접 써서 정리하는 문서로 관리하고 있었음. 당연히 오류도 많이나고 찾기도 힘들었다.

  2. 컴퓨터가 사용가능해지면서 엑셀이나 메모장 같은 간단한 파일시스템을 이용해 정리했다. 초기에는 큰 문제가 없겠지만 데이터 규모가 커지면 역시 오류도 많이나고 찾기도 힘들었다.

  3. 파일시스템 단점을 보안하고자 DBMS가 나오기 시작했다. 그리고 DBMS를 관리하고 활용하기 위한 언어가 바로 SQL이다.

DBMS 종류

  1. 계층형 : 가장 처음 나온 DBMS 개념. 트리형태를 가짐. 처음 구축한 이후 구조를 변경하기가 상당히 까다로움. 단, 검색은 상당히 빠른편.

  2. 망형 : 계층형 문제를 해결하고자 나온 DBMS. 1:1, 1:N, N:M 관계가 지원되어 효과적이고 빠른 추출이 가능해짐. 하지만 매우 복잡한 내부 포인터 사용과 모든 구조를 이해해야만 프로그램 작성이 가능하다는 단점이 존재.

  3. 관계형(RDBMS) : 대부분 DBMS를 말하면 RDBMS를 얘기하는 거임. 핵심 개념은 테이블이라는 최소 단위로 구성되어있고 이 테이블은 하나 이상의 열로 구성되어 있다. 테이블마다 관계를 기본키와 외래키로 맺어주는 기능. 조합해서 결과를 얻고자 할때 조인기능 등이 존재.

SQL 개요

SQL은 데이터베잇를 조작하는 언어이지만 일반 프로그래밍 언어와는 다른 특성을 지닌다.

  • SQL 표준 : DBMS 제작회사마다 이 SQL 표준에 맞춰서 DBMS를 개발한다. 이 때문에 기본적인 사용방법은 어느정도 일치하는데 세부적으로는 차이가 난다... MySQL 관리자가 Oracle이나 MS-SQL 관리하기는 힘들다는 소리.
  • 대화식 언어 : 기존 프로그래밍은 프로그램 작성, 컴파일 및 디버깅, 실행이라는 과정을 거치는 반면 SQL은 바로 질의하고 결과를 받아볼 수 있다.

MySQL 소개

MySQL은 비상업용이나 교육용으로는 제한 없이 사용해도 되지만, 2010년 오라클이 MySQL을 인수하면서 상용으로 사용하기 위해서는 상용 라이선스를 취득해야한다. 만약 상용으로 쓰기 어렵다면 초창기 MySQL 개발자들이 독립해서 만든 MariaDB를 사용하기를 권장한다. MySQL과 MariaDB 대부분 호환되므로 사용하기 수월할 것이다.

개요와 변천사

  • 1994년 : 최초 개발
  • 2004년 : R-트리, B-트리, 서브 쿼리 등 지원 (v4.1)
  • 2005년 : 커서, 저장 프로시저, 트리거, 뷰 등 지원 (v5.0)
  • 2008년 : 파티셔닝, 복제 등 지원 (v5.1)
  • 2010년 : 오라클이 인수. InnoDB를 기본 엔진으로 사용하는 등 대량의 변화 (v5.5)
  • 2013년 : 성능개선, NoSQL 지원 (v5.6)
  • 2015년 : 보안 강화, InnoDB 확장, JSON 지원 (v5.7)
  • 2018년 : NoSQL 확장, JSON 확장, 정렬 강화 (v8.0)

근데 왜 바로 8.0이 되었을까? 🤔

MySQL 에디션 및 기능비교

  • 상용 에디션
    • Standard
    • Enterprise
    • Cluster CGE
  • 무료 에디션
    • Community : Enterprise 에디션과 기능상 차이는 거의 없으며 라이선스 차이라고 보면 된다

우리가 사용할 것은 Community 에디션이다. 다음 시간에는 본격적인 설치 및 운영을 학습해보겠다.

profile
배움을 좋아합니다. 새로운 것을 좋아합니다.
post-custom-banner

0개의 댓글