티스토리 뷰
[Database]
정보를 통합 저장해 운영할 수 있는 시스템을 말합니다.
Database에 있는 정보들은 사용자들이 사용(편집)할 수 있으며 추가, 삭제도 할 수 있습니다.
물론 모든 유저가 Database에 있는 정보를 사용할 수 있는 건 아닙니다.
권한을 부여한 뒤 접근제한을 설정할 수 있습니다. 이런 특징이 Database의 가장 큰 장점이기도 합니다.
데이터베이스는 오랜 역사를 자랑합니다.
그렇기 때문에 다양한 시스템과 그 시스템을 만든 기업들이 있죠.
최근 NoSQL이 떠오르기 전에는 관계형 DBMS (DataBase Management System)가 주류를 이뤘습니다.
먼저 RDMBS (Relational DataBase Management System)에 대해서 알아보겠습니다.
[RDBMS, 관계형 데이터베이스 관리 시스템]
RDBMS는 행과 열로 이뤄진 2차열 Table로 이뤄진 데이터베이스 관리 시스템입니다.
모든 정보를 손으로 적던 시절, 데이터를 가장 쉽게 정리할 수 있는 방법은 바로 Table을 만들어 정보를 입력하는 방법이었습니다. Table의 Column(열)의 속성에 맞춰 Row(행)의 방향으로 해당정보를 입력합니다.
RDBMS는 이런 옛날부터 사용하던 데이터 관리 시스템을 그대로 가져왔습니다.
[그림1] Table에는 무조건 Primary Key(하나의 Table에서 row를 식별하게 해주는 key)가 존재한다. Foreign Key는 현재 Table의 Column 정보를 다른 Table의 해당 Row값으로 참조할 수 있다.
이렇게 테이블을 관리하는 건 마치 수기장부를 여러 파일철에 기록한 뒤 보관하는 것과 비슷합니다. Table A 장부에서 "Daniel"이 멕시코에서 사는 사실을 알 수 있고, 멕시코의 세금을 정리해둔 Table B 장부를 참조해 여러 정보를 끌어올 수 있습니다. 이러한 관계를 명확히 하기위해서 Primary Key와 Foreign Key를 알맞게 설정해야합니다.
[그림2] 열쇠모양의 Primary Key는 모든 Table에 있다. Foreign Key가 다른 Table을 참조할 수 있도록 관계를 보여준다.
(그림참조 http://www.fun-coding.org/mysql_basic1.html)
[Schema, 스키마]
이처럼 테이블의 속성등을 작성하고 관계의 구조를 정의해야하는데 이를 스키마라고 합니다.
스키마는 총 세개로 나뉩니다.
1. 외부 스키마
2. 개념 스키마
3. 내부 스키마
[그림3] 데이터 베이스를 구축하기 위해선 스키마를 통해 데이터의 저장방식, 관계정의, 제약조건, 접근 권한등을 설정해야한다.
[SQL]
SQL은 Structured Query Language로 RDBMS에서 데이터를 관리하기 위해 사용하는 "언어"입니다.
데이터베이스를 구축하기 위한 스키마 생성, 테이블 관리 등 모든 작업을 SQL로 할 수 있습니다.
위처럼 다양한 SQL 데이터베이스 서버가 있습니다.
요즘은 NoSQL (Not only SQL)이 떠오르면서 Oracle이나 Microsoft도 대세에 맞춰 NoSQL을 서비스 하고 있습니다.
NoSQL 전문 데이터베이스는 MongoDB와 Cassandra가 있습니다.
'Web 개발 > Database' 카테고리의 다른 글
[DATABASE] NoSQL (0) | 2018.09.23 |
---|
- Express
- 머신러닝
- BFS
- LR
- logistic regression
- Queue
- 크롤링
- 알고리즘
- 딥러닝
- query string
- 크롤러
- Crawling
- Crawler
- 백준
- 재귀
- Linear Regression
- Machine Learning
- DFS
- softmax
- neural network
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |