티스토리 뷰

[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로 할 수 있습니다.


oracle에 대한 이미지 검색결과               microsoft sql에 대한 이미지 검색결과    mysql에 대한 이미지 검색결과    


위처럼 다양한 SQL 데이터베이스 서버가 있습니다.

요즘은 NoSQL (Not only SQL)이 떠오르면서 Oracle이나 Microsoft도 대세에 맞춰 NoSQL을 서비스 하고 있습니다.

NoSQL 전문 데이터베이스는 MongoDB와 Cassandra가 있습니다.

 





'Web 개발 > Database' 카테고리의 다른 글

[DATABASE] NoSQL  (0) 2018.09.23
댓글
최근에 올라온 글
«   2024/05   »
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 29 30 31
공지사항
최근에 달린 댓글