티스토리 뷰
참고 영상
데이터베이스 (DataBase)는 여러 가지 데이터 저장 수단 중 하나이다. 우리가 일반적으로 접하는 파일(file)도 훌륭한 데이터 저장 수단이다. 파일의 장점도 크다. 운영체제마다 파일을 읽는 기능을 제공하기 때문에 접근성이 매우 넓다. 그러나 파일의 단점, 예를 들어 성능, 보안문제, 편의성의 한계 때문에 데이터베이스라는 새로운 프로그램이 등장하게 되었다.
데이터베이스의 예시로는 MySQL, Oracle, SQL server, PostgreSQL, MongoDB 등등이 있다. 그 중 나는 MySQL을 다루고, 실습할 예정이다.
먼저 DataBase는, 파일의 한계를 극복하려고 만들어졌다고 했다. 데이터베이스도 종류가 다양하다. 관계형(Relational), 키-값형(KV Store), 객체형(Object), 문서형(Document), 컬럼형(Column)등이 있지만 주류는 관계형 데이터베이스이다. 에드가 커드가 처음으로 ’Relational DataBase’의 개념을 제시하며 생기게 되었다. 관계형 데이터 베이스의 특징은
1) 데이터를 표의 형태로 관리
2) 데이터를 빠르고 편리하게 검색 가능
하게 하는 것이다. 엑셀이나 스프레드 시트를 생각하면 편하다.
관계형 데이터베이스의 예시로는 MySQL, Oracle, SQL Server, Postgre SQL, DB2, Access등이 있다. 굳이 여러개를 다 배울 필요가 없는 이유는, 대부분 작동 원리가 비슷해서 하나의 DB만 다룰 수 있으면 다른 DB의 사용법은 자동으로 알게 되기 때문이다.
나는 가장 처음으로 배울 DB로 MySQL을 선택했다. MySQL은 1994년 스웨덴에서 만들어진 무료 오픈소스 프로그램으로, '무료'라는 장점이 지금의 MySQL을 만들었다고 볼 수 있다. 웹 기술이 발전하면서 사람들은 자신의 웹페이지를 위한 무료 DB를 찾기 시작했고, 오픈소스에 무료인 MySQL은 사용자들이 많이 찾음에 폭발적으로 동반 성장하게 되었다. 현재는 3대 DataBase 프로그램중 하나이다. 우리는 MySQL을 이용한 수많은 사이트들을 지금도 이용하는 중이다.
데이터베이스와 엑셀의 차이점과 공통점을 알아 보자.
일단 가장 큰 공통점은, MySQL과 같은 관계형 데이터베이들은 '표의 형태로 데이터를 표현해준다’는 것이다. 그리고 엑셀과 기능도 거의 비슷하다.
다른점: 엑셀은 클릭해서 바꿔야 한다면, 데이터베이스는 ’명령어’를 통해서 바꿀 수 있다.
명령어의 예 ) SELECT * FROM topic WHERE author = ‘yejin’ ORDER BY id DESC;
예2 ) SELECT * FROM topic
지금은 명령어에 대해서 알 필요가 없다. 나중에 다시 다룰 것이다.
데이터를 공유할 수 있다!
1)웹을 통해서
2)앱을 통해서
MySQL설치하는법
검색) MySQL Community Edition Download
Download MySQL Community Server하면 된다
or
직접 설치하기 싫다면 온라인 서비스 이용해도 됨!
'code anywhere'
Windows 컴퓨터에 MySQL을 설치해보자
공식홈페이지에서 다운로드 받아서 써도 되지만, MySQL을 쉽게 설치해주는 프로그램을 쓸수 있다
bitnami WAMP라고 검색해보자
Apache+ MySQL + PHP를 한번에 제공해주는 프로그램이다.
Create MySQL ‘root’ Account가 나올텐데, MySQL같은 DB는 다중사용자 프로그램이다. 그리고 제일 처음에 시작되는 사용자는 ‘root’사용자이다.
*나는 이미 MAMP를 설치한 맥북을 쓰고 있었지만, 윈도우로 설치하기 위해서 Parallels위에서 작업하였다. 다행히 충돌이 나지 않았다! *
Manager Servers> MySQL이랑 Apache가 실행되는 중.
C> Bitnami> wamp stack> manager-windows
아까 봤던 프로그램 뜨게 된다
MySQL키는 방법임
윈도우+ R하면 실행 창 뜬다
cmd라고 치면 command창 나오게 된다
mySQL안에 bin안에 mysql이라는 프로그램을 cmd창을 통해서 실행시키려고 한다.
cd C:\Bitnami\wampstack-7.1.13.-1\mysql\bin
tap키 치면 자동완성 된다!
dir 하면 directory안에 목록 보임
cd C:\Bitnami\wampstack-7.1.13.-1\mysql\bin > mysql -uroot -p
하고 패스워드 쳐 주면 됨!
Welcome to the MySQL monitor가 나오면 성공한 것
MySQL의 구조
우리가 데이터를 기록하는 최종적인 곳 = 표(table)
관계형 데이터베이스는 정보를 표에 저장한다.
댓글 저장, 비번 저장,이런식으로 표가 많아지면 표를 잘 관리해야하는 책임이 생긴다.
표들을 그룹핑한거를 데이터베이스라고 부른다!
근데 데이터베이스라고 부르면 헷깔리니까, 스키마라고 부른다. 일종의 폴더라고 생각하면 됨! 스키마는 서로 연관된 데이터들을 그룹핑 해준 것이다.
스키마들을 여러개 묶으면 데이터베이스 서버(database server).
우리가 설치한 것 = mySQL설치 = 데이터베이스 서버라는 프로그램 설치 = 프로그램의 기능을 이용하여 데이터를 잘 다루어 볼 것!
데이터베이스의 효용
1이자 가장 중요한 것 : 보안.
파일은 운영체제 뚫으면 수정가능하지만
데이터베이스는 자체적인 보안 체계있어서 좀 더 안전하게 보관 가능 + 권한기능 있어서 여러면 등록 가능.
권한 기능에는 읽기쓰기 설정이나 스키마 설정도 가능.
./mysql -uroot
(u는 user의 줄임말)
root는 관리자라서 모오든 권한이 열려있다 -> root로 정보 다루는 것은 위험할 수있음.
중요한 시스템일때는 평소에는 다른 사용자로 쓰다가 중요한 일 할때만 루트로 쓰면 됨
./mysql -uroot -p991125
이런식으로 써도 되는데 이러면 비밀번호가 노출되니까!
만약 비밀번호를 잊어버렸다면?google에 검색하면 됨
이렇게 로그인해서 들어오면 데이터베이스 서버에 들어온 것!
데이터베이스(Schema)를 만들어서 안에 표를 만들 준비를 해 보자!
mysql create database
CREATE DATABASE yejin;
이렇게 치면 새로운 데이터베이스가 생성된다!
데이터베이스를 지우고 싶다면?
DROP DATABASE yejin;
위 화살표 누르면 위로 감
(명령어 다 외울 필요 없다. 필요할 때 마다 검색해서 쓰는 것!)
how to show database list in mysql
SHOW DATABASES;
USE yejin;하면 yejin이라는 schema대상으로 작업하게 된다.
이제 표를 만들어 보자!
SQL : Structured Query Language의 줄임말로, 관계형 데이터베이스가 표의 형태로 데이터를 제공하기 때문에 나온 말이다.
Query는 질의를 통해서 데이터베이스에서 정보를 얻어올 수 있기 때문에 사용하는 표현이다.
SQL의 특징
1)쉽다!
html급으로 쉽다
2)중요하다
SQL은 관계형 데이터베이스 카테고리 안에 있는 프로그램들을 제어하기 위해서 사용되는 공통된 언어이기 때문에 중요하다. 표준화 되어있다. 압도적은 DB System들이 SQL을 통해 작동하기 때문에 !
table(표)
table의 x축과 y축이 있는데, 수평으로 된 것을 row, record, 행이고 수직은 column,열이라고 부른다.
SQL이용해서 표 만들고 데이터 추가하고 읽고 삭제하는 것 해보자!