Database
- 매우 방대한 기능을 가지고 있는 정보 도구
- 기능이 방대한 것은 데이터 관련해서 일어날 수 있는 일들이 많기 때문
어떤 데이터베이스를 만나든 제일 먼저 해야 할 것은 데이터베이스의 데이터를 어떻게 입력하고 어떻게 출력하는가를 따져보는 것
- input & output
-- 입력 : 데이터의 생성, 수정, 삭제
-- 출력 : 데이터의 읽기
- 이 네 가지 작업을 CRUD라고 부름
- 그 외 복잡한 기능들은 CRUD를 보좌하는 부가적인 기능들에 불과
+---------+
| input |
+---------+
| Create |
| Update |
| Delete |
+---------+
+---------+
| output |
+---------+
| Read |
+---------+
스프레드시트
- 마이크로소프트 : 엑셀
- 구글 : 구글 시트
- 무료 & 오픈소스 : OpenOffice
-- `Data` > `Filter` > `AutoFilter`
-- `Data` > `Sort` > `Extend selection`
-- Right click on a column > `Hide`
파일
스프레드시트 : 파일에 대비해서 데이터베이스로 가는 길목에 있음
데이터베이스
- 스프레드시트와의 차이점 : 프로그래밍적으로, 컴퓨터 언어를 이용해서 데이터를 추가하고, 수정하고, 삭제하고, 읽을 수 있다는 점을 전문적인 데이터베이스 소프트웨어는 가지고 있음
-- 장점 : 자동화할 수 있음, 사람이 일일이 작성하지 않고도 어떠한 조건에 따라 자동으로 데이터를 생성하고 수정하고 삭제하고 읽을 수 있음
Oracle
- 아주 오랫동안 데이터베이스 시장에서 절대강자로 군림해왔던 데이터베이스
- 주로 관공서, 큰 기업, 정부에서 많이 씀
-- 이유 : 비쌈
-- 데이터베이스 기술 지원 : 컨설턴트의 컨설팅 비용도 비쌈
-- 자금력 있는 기업이나 정부에서 많이 사용
- 개인적으로 사용하고 싶거나 작은 회사에서 쓰려고 하는 것이거나 큰 회사라고 하더라도 금융 같이 신뢰성이 굉장히 높은 데이터를 다루는 것이 아니라면 오라클 사용 비추
MySQL
- 무료, 오픈소스
- 관계형 데이터베이스를 이용하고 싶으면서 자금이 많지 않아서 개인적으로 사용하고 싶거나 작은 회사, 또는 SNS와 같이 대규모의 데이터가 생성이 되지만 데이터의 신뢰성은 아주 중요하지는 않은 기업에서는 아주 좋은 서비스/제품
- 초심자에게 추천
MongoDB
- 데이터베이스 모델 : Document store
-- RDBMS가 아님
- 2010년부터 RDBMS가 아닌 데이터베이스들이 쏟아져 나옴
-- RDBMS는 1970년부터 아주 오랜 시간 동안 데이터베이스의 제왕으로 군림해옴
-- 데이터베이스라고 하면 RDBMS라고 해도 과언이 아니었음
--- 여러 가지 장점
---- 개발자 입장에서는 어떤 회사를 가던 RDBMS를 알고 있으면 새로 배울 필요 X
----- 자연스럽게 RDBMS를 쓸 줄 아는 수많은 개발자들이 생겨났고 회사 입장에서는 인력을 구하기 쉬운 RDBMS 선택
--- 변화
---- SNS와 IoT의 등장, 많은 사람들이 프로그래밍
---- 수많은 데이터들이 쏟아져 나올 것이고 다양한 종류의 데이터들이 나타나게 될 것
---- RDBMS에 모든 데이터베이스가 낑겨 들어가게 되면 거기에 잘 맞지 않는 데이터베이스 입장에서는 RDBMS가 일종의 억압으로서 작용할 수도 있음
---- 2010년부터 NoSQL이라는 흐름이 나타났고 NoSQL이라는 흐름에서의 가장 중요한 특징은 RDBMS가 아닌 다양한 데이터베이스가 폭발적으로 만들어지고 있고 성장하고 있다는 것
Mysql 구조
표 (table) ⊂ 데이터베이스(스키마) ⊂ 데이터베이스 서버(database server)
Table
데이터를 기록하는 최종적인 곳
관계형 데이터베이스는 스프레드시트와 비슷한 구조(표)를 가진다
웹사이트를 운용하는데 사용되는 데이터를 데이터베이스에 저장한다
게시글 저장하는 표, 댓글 저장하는 표, 등... 나눠진 표를 정리정돈할 필요성 (폴더)
서로 연관된 표를 그루핑하여 연관되어 있지 않는 표와 분리시킴 -- 데이터베이스
데이터베이스
표를 그루핑한 것.
스키마 Schema
표를 서로 그루핑할 때 사용하는 일종의 폴더
서로 연관된 데이터를 그루핑.
스키마가 많아지면 데이터베이스 서버안에 저장된다.
mysql 설치 == 데이터베이스 서버 프로그램을 설치한 것
해당 프로그램이 갖고있는 기능을 이용해 데이터와 관련된 작업 수행
데이터베이스 장점
보안
파일은 운영체제만 뚫리면 수정 가능.
데이터베이스는 자체적인 보안체계가 있어 안전하게 데이터 보관 가능.
권한 기능이 있어 여러 사람을 등록하여, 원하는 사람만 접근 가능하게 설정할 수 있다.
-차등적 권한 부여
: egoing은 student 테이블을 rw만 가능. uneasy는 student 테이블의 r만 가능.
-u : user 사용자
-uroot : root 사용자로 접속하겠다. (관리자는 모든 권한 지님)
-uegoing : egoing 사용자로 접속하겠다.
-p : passwd
'Backend > Database' 카테고리의 다른 글
SQL - DML(INSERT, UPDATE, DELETE) (0) | 2022.04.19 |
---|---|
데이터베이스의 목적 (0) | 2022.04.15 |
11장. 트랜잭션 (0) | 2020.12.07 |
MariaDB 외부IP 접근 허용 (0) | 2020.12.01 |
프로그램 GUI 구성 및 프로그램 기능들 정리 (0) | 2020.11.10 |