요기보드3   필수기초 선택과목 요기보드 그누보드 로그인

MySQL- 데이터베이스의 이해


데이터베이스의 개요

홈페이지에 회원가입이나 게시판 같은 기능을 만들려면 '데이터베이스(DataBase)' 가 반드시 필요해.
그런데 이 데이터베이스는 좀 어려운 분야에 속해.
고급 DB 기술자는 연봉이 수억 원에 달할 만큼 하면 할수록 어려운 분야야.
다행히 일반적으로 사용하는 명령 10여 개 정도만 알아도 홈페이지 정도는 충분히 운영할 수 있으니 도전해 보자구.

데이터베이스의 개념 자체는 정말 간단해.
자료를 파일에 추가, 수정, 삭제하고 또 원하는 자료를 빠르게 검색할 수 있는 파일들의 집합을 '데이터베이스'라고 불러.
예를 들어 게시판을 운영하려면 새 글을 추가, 수정하고 악성댓글이 올라오면 삭제할 수 있어야 하겠지? 또 최신글 순으로 조회도 할 수 있어야 해.
바로 이러한 날짜, 제목, 본문, 글쓴사람.. 과 같은 데이터를 저장한 자료들이 데이터베이스(DataBase)야. 줄여서 '디비(DB)' 로 부르기도 해.
또 이 데이터베이스를 관리하는 시스템 전반을 DBMS(DataBase Management System) 이라고 부르는데, 다 같은 뜻으로 사용해.
데이터베이스에도 제품 종류가 아주 많아.
우리가 잘 아는 엑셀도 자료관리용으로 사용하면 데이터베이스라고 할 수 있어.
웹서비스용으로 많이 사용되는 것으로는 MySQL, MS-SQL, 오라클, 큐브리드, PostgreSQL, FireBird, MongoDB 등 수도 없어.
그런데 이들 중 가장 많이 사용되고 있는 게 바로 MySQL이야.
전 세계 홈페이지의 95% 이상에서 데이터베이스로 사용하고 있는 게 바로 MySQL이야.

▶ MySQL 과 MariaDB (마리아DB)
최근 웹호스팅을 신청하다 보면 MySQL 대신 MariaDB 라는 이름이 눈에 띠는 것을 볼 수 있어.
두 개는 이름만 다르지 거의 같은거야. 그리고 요즘은 MariaDB 가 대세가 되어 가고 있어.
MySQL 이 유명해지자 오라클이라는 큰 회사에서 이 MySQL을 인수했어.
오라클은 인수 후에도 MySQL 의 무료정책을 계속해 나가 겠다고 했지만 사용자들은 "그러다 뒤통수 맞을지 몰라.." 걱정하자 MySQL을 만든 개발팀이 나와서 똑같이, 아니 더 좋게 만들어서 무료로 배포하기 시작했어.
(사실 이 부분이 나도 잘 이해 안되기는 해. 아니 잘나가는 호떡집 운영하다 비싸게 팔고는 나가서 바로 길 건너편에 MariaDB 라는 호떡집 개업해서 장사하는게 말이 돼?.. 뭐 법적으로 문제 없으니 하겠지만..)

어쨌든 이 MariaDB는 이전 MySQL과 얼마나 똑같은지 MySQL 에서 사용하던 명령이나 프로그램을 그대로 사용해도 아무 이상없이 똑같아.
그리고 처음에는 MySQL 에서 새로운 기능을 추가하면 바로 MariaDB 에서 똑같이 만들어서 발표했는데, 요즘은 반대로 MariaDB에서 먼저 새버전을 만들면 MySQL 이 따라 가고 있어. (새 호떡집이 더 잘나가..ㅎ)

상황이 이렇게 되자 호스팅 서비스를 운영하는 회사나 리눅스 계열의 OS를 만드는 회사들도 기본 데이터베이스로 MySQL 대신 MariaDB 를 탑재하기 시작하면서 요즘은 웹서버 시장에서는 MariaDB 가 대세가 되어 버렸어.
어떻게 되었건 사용자 입장에서는 MySQL 과 MariaDB 는 완전히 같은 것이라고 생각해도 무방해.

그러므로 홈페이지를 위해 호스팅을 신청하거나 또는 여러분의 PC에 웹서버용 프로그램을 설치할 때 MySQL 이 설치되든 MariaDB가 설치되든 신경쓸거 없어. 완전히 같으니까..
다만 앞으로 설명을 할 때 DB 이름은 MySQL 이라고 부를거야.
왜냐하면 오랫동안 사용해 온 이름이고, 궁금한 것이 있을 때도 이 이름으로 검색해야 더 많은 결과들이 나오기 때문이야.

▶ 데이터베이스의 구성
우선 데이터베이스를 쓸 때 사용하는 용어와 개념을 알아두자구.
예를 들어 [고객별 판매대장]을 만들어서 관리한다고 가정해 볼게.

일단 엑셀로 고객과 판매대장 관리한다고 생각을 해 봐.
고객명부.xls 파일이 필요하겠지? 또 판매대장.xls도 별도로 필요하다고 가정해.
이 각각의 관리용 파일을 데이터베이스에서는 테이블(Table)이라고 불러.
각 테이블은 행(row)과 열(column)로 이루어져 있는데 행을 row(로우) 또는 ‘레코드(Record)’라고 불러. 열은 column(컬럼) 또는 ‘필드(Field)’라는 이름으로 불러.(엑셀도 마찬가지야..)
데이터베이스에 따라 다르게 불리기도 하는데 컬럼=필드이고, 로우=레코드로 같은 거야.

데이터베이스를 그림으로 구성해 보자면 아래와 같아.
데이터베이스 개념
즉, 데이터베이스는 컬럼(열, 필드)과 로우(행, 레코드)로 구성된 여러 개의 테이블을 통합해서 부르는 이름이야.

위의 그림을 용어로 설명하자면 이렇게 정의할 수 있겠지?
[번호, 이름, 연락처] 컬럼을 가진 ‘고객명부 테이블’과 [날짜, 고객번호, 상품명, 금액] 컬럼을 가진 ‘판매대장 테이블’로 이루어진 데이터베이스로 DB 이름은 [고객별 판매대장]이야.
현재 ‘고객명부’ 테이블에는 3개의 레코드(행)이 있고, ‘판매대장’에는 4개의 레코드가 저장되어 있어.

▶ 컬럼(필드) 속성
위 고객명부를 예를 들면 번호에는 숫자만 들어가고 이름, 연락처에는 문자가 들어가겠지?
(연락처에 들어가는 숫자는 계산을 위한 것이 아니므로, 문자로 취급해야 하므로 문자로 지정해야 해.)

테이블을 만들 때는 컬럼의 이름과 함께 여기에는 어떤 자료가 들어갈 것이라는 컬럼의 자료속성을 지정해 주어야 해.
이렇게 컬럼을 만들 때 자료속성은 다음과 같은 것들이 있어.
필드속성
이외에도 많지만 위 속성들이 주로 사용되고 이 중에서도 특히 int(숫자), date(날짜), varchar(문자), text(긴 문자), 이 4개가 가장 많이 쓰여.
그밖의 컬럼의 자료속성과 각각의 자세한 용도는 천천히 배우고 우선 이들 속성만 가지고 공부를 해 볼 예정이야.

목차제 목조회
326
410
392
427
437