여러 사람이나 프로그램이 데이터를 쉽게 공유하기 위해 체계적으로 관리되는 데이터의 집합
위와 같은 데이터베이스를 관리하는 시스템을 뜻한다.
= SQL DB(관계형 데이터베이스) : Relational Database, RDB)
= NoSQL DB(비관계형 데이터베이스) : 나머지
데이터 형태는 엑셀과 비슷하다. 회원정보를 관계형 데이터베이스에 저장한다고 하면
| id | name | age | gender | |
|---|---|---|---|---|
| 1 | Melmonth | 39 | emelmoth0@pinterrest.com | Female |
| 2 | MacGaffey | 27 | mmacgaffey1@usa.gov | Female |
| 3 | Whitaker | 15 | lwhitaker2@uol.com.br | Male |
위와 같이 저장할 수 있다. 위 구조는 관계형 Database로 가장 많이 사용되는 데이터베이스 유형으로 스키마라는 틀에 맞추어 저장되어 체계적이고 안정적으로 관리될 수 있다.
ex) mysql, postgreSQL, Oracle 등등
여기서 스키마(Schema)란 구조와 제약 조건에 대한 명세이다.
| 회원정보 | |
|---|---|
| id | INT |
| name | Varchar(255) |
| age | INT |
| Varchar(255) | |
| gender | Varchar(255) |
데이터 종류와 사용 유형에 따라서 더 효율적인 관리를 위해 NoSQL도 사용될 수 있다.
NoSQL는 관계형 데이터베이스처럼 스키마가 정해진 것이 아니여서 유연성, 확장성 등이 더 효과적일 수 있다.
ex) Key-Value, Document, Graph
Key-Value는 데이터를 저장하는 가장 단순한 형태의 데이터 베이스이다. 단순한만큼 속도가 빠르다.
ex) Redis, amazon DynamoDB
{'name': 'jocoding'}
위와 같은 형태를 가지고 있다.
Document는 Key-Value에서 좀 더 진화되어 데이터가 키와 JSON과 유사한 Document 형태로 저장되는 것을 의미한다.
# Key
1001
# Document
{
"이름": "홍길동",
"나이": 25,
"성별": "여",
"주소": "서울특별시",
"특기": ["농구", "독서"],
"회사": "경기도 수원시
}
JSON 형태의 데이터라 스키마가 변경되는 것에 유연하게 대처할 수 있다.
ex) MongoDB, Amazon DocumentDB
노드의 속성별로 데이터를 저장하는 방식으로 페이스북과 같은 소셜 네트워크 or 추천 엔진을 위한 데이터베이스에 주로 사용된다.
ex) neo4j, Amazon Neptune, Giraph