SQL(Structured Query Language)은 "구조화된 질의 언어"라는 의미를 가진다.
관계형 데이터베이스에서 데이터를 관리하고 처리하기 위한 표준화된 언어를 말한다.
SQL은 데이터베이스 시스템에 쿼리를 전달하여
데이터를 조회, 삽입, 수정, 삭제하는 등의 작업을 수행한다.
1980년대 후반 국제표준화기구(ISO)와 미국국립표준협회(ANSI)에서
RDBMS의 표준 언어로 SQL을 채택했다. 표준이란 의미는 '표준' SQL 구문만 학습하면
Oracle은 물론 MSSQL, DB2 등 여러 DBMS에서 동일하게 사용할 수 있다는 의미이다.
물론 각각의 DBMS별로 차이점을 가지고 있지만 다른 프로그래밍 언어에 비해
그 차이는 적은 편이기 때문에 SQL을 한 번만 학습하면 DBMS에 구애되지 않고
비교적 자유자재로 사용할 수 있다는 이점을 가진다.
*
C나 JAVA와 같은 일반 프로그래밍 언어는 절차적 언어이다.
절차적 언어의 특징은 프로그래밍 순서대로 로직이 처리된다는 데 있다.
반면 SQL은 집합적 언어이다.
집합적 언어는 데이터를 특정 집합 단위로 분류해서
이 단위별로 한 번에 처리하는 언어라고 할 수 있다.
DBMS
DBMS(Database Management System)는
데이터베이스를 관리하는 소프트웨어 시스템이다.
다양한 유형의 DBMS가 있고 각각의 DBMS는
특정한 목적과 요구 사항을 충족시키기 위해 설계되었다.
1. 계층형 DBMS(Hierarchical DBMS)
- 데이터가 트리 구조로 조직되어 있음
- 부모-자식 관계를 가지며, 각 노드는 하나의 부모와 여러 개의 자식을 가질 수 있다.
- 예시로는 IMS(Information Management System)이 있다.
A
/ \
B C
/ \
D E
2. 네트워크형 DBMS(Network DBMS)
- 데이터가 그래프 구조로 조직되어 있음
- 여러 개의 레코드 타입 간에 복잡한 관계를 가질 수 있다.
- 예시로는 IDMS(Integrated Database Management System)가 있다.
A
/|\
B C D
/| |\
E F G H
3. 관계형 DBMS(Relational DBMS = RDBMS)
- 데이터가 테이블 형태로 조직되어 있음
- 데이터는 테이블에 행(row)으로 저장되며, 각 열(column)은 속성을 나타낸다.
- 테이블 간에 관계를 설정하여 데이터를 관리한다.
- 예시로는 Oracle, MySQL, MariaDB, PostgreSQL 등이 있다.
| ID | Name | Age |
|----|--------|-----|
| 1 | John | 30 |
| 2 | Alice | 25 |
| 3 | Bob | 35 |
4. 객체지향형 DBMS(Object-Oriented DBMS)
- 객체 지향 프로그래밍의 개념을 데이터베이스에 적용한 형태임
- 데이터를 객체(object)로 표현하고, 객체 간에 상속, 다형성 등의 개념을 사용하여 관계를 설정한다.
- 예시로는 ObjectDB, db4o 등이 있다.
class Person {
int id;
String name;
int age;
}
5. 문서형 DBMS(Document DBMS)
- JSON 또는 XML과 같은 문서 형식의 데이터를 저장하고 관리한다.
- 비정형 데이터나 반정형 데이터를 처리하는 데 적합하다.
- 예시로는 MongoDB, Couchbase 등이 있다.
{
"id": 1,
"name": "John",
"age": 30
}
'DB > SQL - Oracle' 카테고리의 다른 글
[SQL] DDL(데이터 정의어) - create, drop (0) | 2024.02.02 |
---|---|
[SQL] 이상현상(Anomaly) + 키 예제 (1) | 2024.02.01 |
[SQL] 데이터베이스 제약조건 "키" - 기본키, 외래키, 슈퍼키, 후보키, 대체키 (1) | 2024.02.01 |
[SQL] 데이터 무결성의 종류 - 도메인, 개체, 참조 무결성 (0) | 2024.02.01 |
[SQL] 문자(열) 데이터 타입 - char, varchar, varchar2 (0) | 2024.01.21 |