관계형 데이터베이스(relational database management system, RDBMS)
데이터베이스는 여러 사용자가 사용할 목적으로 체계화된 데이터의 집합이며, DBMS란 데이터베이스 관리 시스템이다.
현재 가장 많이 쓰이는 데이터베이스 관리 시스템은 관계형 데이터베이스 시스템(RDBMS)과 비-관계형 데이터베이스 관리 시스템인 NoSQL로 나뉜다.
그리고 이 글에서는 오직 관계형 데이터 베이스에 대해서만 짧게 기술하고 바로 SQL로 넘어간다.
참고로 서버리스의 강세에도 불구하고 여전히 RDBMS의 사용률이 압도적이며 이는 2015년 표와 비교해도 별반 차이가 없다.
RDBMS에서 데이터는 여러개의 Table에 저장되는데, 이 Table은 한 개 이상의 column(열)로 구성된 집합이다.
그런데 처음 데이터베이스를 배우려고 하면 용어가 난잡해서 상당히 곤란하다.
분명히 아까 전까지 column과 row에 대해 이야기하다가 갑자기 튜플이 어쩌고 레코드가 어쩌고.. 그리고 저기서 배우려면 갑자기 엔티티가 어쩌고 이러고 있다.
굳이 따지자면 모두 사용처가 다른데 가르치는 사람들이나 쓰는 사람들이나 용어를 혼용하기 때문에 일단 모두 숙지하고 있어야 어려움이 없을 것이다.
파일 시스템
|
데이터베이스 모델링 |
관계형 데이터베이스 |
|
파일(File) | 엔티티(Entity) | 테이블(Table) | |
레코드 (Record) |
튜플 (Tuple) |
행 (Row) |
|
키 (Key) |
유일값 (Identifier) |
기본키 (Primary Key) |
|
필드 (Field) |
속성 (Attribute) |
컬럼 (Column) |
|
SQL (Structured Query Language)
SQL은 한글로 구조적 질의어라는 의미를 가지고 있다.
관계형 데이터베이스에서 데이터를 효율적으로 관리하기 위해 설계된 프로그래밍 언어로써, RDBMS에서 자료의 검색과 관리, 데이터 베이스 스키마의 생성 및 수정, 데이터베이스 객체 접근 조정 관리 등의 역할을 수행한다.
많은 수의 데이터베이스 관련 프로그램들이 Ansi SQL이라는 표준을 채택하고 있으나 결국 깊이 들어가면 데이터베이스 프로그램 제조사마다 차이가 존재한다. (Oracle, MySQL, MS SQL, PostgreSQL 등 .. )
SQL에서 공통으로 통용되는 지시어의 종류는 다음과 같다.
종류 | 지시어 | |
DQL (Data Query Language, 질의어) |
SELECT | SELECT * FROM student; => student의 모든 레코드를 반환하라 IF (id=3) SELECT; |
DML (Data Manlpulation Language, 조작어) |
INSERT, UPDATE, DELETE | INSERT INTO student (name) values ('만식'); => student column에 값 삽입. UPDATE student SET name='웅이'; => 해당 column의 모든 값이 바뀜. WHERE id=3같은 방법으로 조건 지정 DELETE student => 마찬가지로 집합 명령이니 모두 삭제. DELETE student WHERE id=3 |
DDL (Data Definition Language, 정의어) |
CREATE, ALTER, DROP, RENAME, TRUNCATE | 요즘은 직접 스크립트로 DDL을 사용하기보다 GUI 환경에서 편리하게 생성, 수정하는 경우가 많다. 라고 배웠는데 직접 사용해보니 GUI 환경에서 그렇게 스크립트를 잘 만들어주지 않는다. ( MySQL 기준, DBeaver 및 DataGript 모두 만족스럽지 못했음. ) MS SQL의 경우 정말 GUI에서 생성 수정은 그냥 다 끝낼 수 있다고 생각하면 되는데 My SQL이면 그냥 타이핑하자. |
TCL (Transaction Control Language, 트랜잭션 처리어) |
COMMIT, ROLLBACK, SAVEPOINT | 특정 SQL 구문의 실행 결과를 임시 보관한 뒤, 이것을 롤백하거나 실행처리 하는 것에 사용한다. |
DCL (Data COntrol Language, 데이터 제어어) |
GRANT, REVOKE | 데이터베이스에서의 작업 권한을 관리한다. |
참고로 DML 중 UPDATE와 DELETE를 잘못 사용하면 인생 난이도를 하드 모드로 변경할 수 있다. 삶이 무료할 때 시도해볼 법하며, 그걸 원치 않는다면 검증 또 검증만이 살 길이다.
'CS ﹒ Algorithm > Database' 카테고리의 다른 글
데이터베이스 (6) 설계 2 - N : 1 관계, 재귀적 관계 (3) | 2022.08.26 |
---|---|
데이터베이스 (5) 설계 1 - Key 설계 (0) | 2022.08.23 |
데이터베이스 (4) 뷰 & 프로시저 & FUNCTION & 트리거 (Feat. MySQL) (3) | 2022.08.20 |
데이터베이스 (3) JOIN문 입문하기 (Feat. MySQL) (0) | 2022.08.17 |
데이터베이스 (2) Primary Key와 Foreign Key에 대해 알아보자 (0) | 2022.08.14 |