본 글은 이것이 MySQL입니다(한빛미디어, 우재남 지음) 을 읽고 정리한 내용입니다.
무결성과 제약조건 : 데이터베이스는 제약조건을 가지며 이것을 통해 오류가 나지 않도록 하는 무결성을 지킬 수 있다.
독립성 : 데이터베이스를 이용하는 응용프로그램과 데이터베이스는 서로 독립적인 관계이다.
보안 : 데이터베이스 안의 데이터는 아무나 접근할 수 없다. 즉, 인가된 사용자만 접근할 수 있어야 한다.
중복 최소화 : 동일한 데이터가 중복 저장되는 것을 방지한다.
안정성 : 대부분의 DBMS는 백업 및 복원 기능을 제공한다.
처음에는 종이에다가 사람이 직접 써서 정리하는 문서로 관리하고 있었음. 당연히 오류도 많이나고 찾기도 힘들었다.
컴퓨터가 사용가능해지면서 엑셀이나 메모장 같은 간단한 파일시스템을 이용해 정리했다. 초기에는 큰 문제가 없겠지만 데이터 규모가 커지면 역시 오류도 많이나고 찾기도 힘들었다.
파일시스템 단점을 보안하고자 DBMS가 나오기 시작했다. 그리고 DBMS를 관리하고 활용하기 위한 언어가 바로 SQL이다.
계층형 : 가장 처음 나온 DBMS 개념. 트리형태를 가짐. 처음 구축한 이후 구조를 변경하기가 상당히 까다로움. 단, 검색은 상당히 빠른편.
망형 : 계층형 문제를 해결하고자 나온 DBMS. 1:1, 1:N, N:M 관계가 지원되어 효과적이고 빠른 추출이 가능해짐. 하지만 매우 복잡한 내부 포인터 사용과 모든 구조를 이해해야만 프로그램 작성이 가능하다는 단점이 존재.
관계형(RDBMS) : 대부분 DBMS를 말하면 RDBMS를 얘기하는 거임. 핵심 개념은 테이블이라는 최소 단위로 구성되어있고 이 테이블은 하나 이상의 열로 구성되어 있다. 테이블마다 관계를 기본키와 외래키로 맺어주는 기능. 조합해서 결과를 얻고자 할때 조인기능 등이 존재.
SQL은 데이터베잇를 조작하는 언어이지만 일반 프로그래밍 언어와는 다른 특성을 지닌다.
MySQL은 비상업용이나 교육용으로는 제한 없이 사용해도 되지만, 2010년 오라클이 MySQL을 인수하면서 상용으로 사용하기 위해서는 상용 라이선스를 취득해야한다. 만약 상용으로 쓰기 어렵다면 초창기 MySQL 개발자들이 독립해서 만든 MariaDB를 사용하기를 권장한다. MySQL과 MariaDB 대부분 호환되므로 사용하기 수월할 것이다.
근데 왜 바로 8.0이 되었을까? 🤔
우리가 사용할 것은 Community 에디션이다. 다음 시간에는 본격적인 설치 및 운영을 학습해보겠다.