일단 해보는 코딩/Oracle SQL

[오라클/SQL] 데이터베이스 배우기

eun_zoey2 2022. 6. 1. 14:50
728x90

데이터베이스(DataBase)란?

데이터베이스(DB: database)는 통합하여 관리되는 데이터의 집합체를 의미한다.

이는 중복된 데이터를 없애고, 자료를 구조화하여, 효율적인 처리를 할 수 있도록 관리된다.
따라서, 여러 업무에 여러 사용자가 데이터 베이스를 사용할 수 있다.

이러한 데이터베이스는 응용 프로그램과는 다른 별도의 미들웨어에 의해 관리된다.
데이터베이스를 관리하는 이러한 미들웨어를 데이터베이스 관리 시스템(DBMS: Database Management System)이라고 한다.

데이터베이스의 특징

데이터베이스는 다음과 같은 특징을 가진다.

1. 사용자의 질의에 대하여 즉각적인 처리와 응답이 이루어진다.
2. 생성, 수정, 삭제를 통하여 항상 최신의 데이터를 유지한다.
3. 사용자들이 원하는 데이터를 동시에 공유할 수 있다.
4. 사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조 할 수 있다.
5. 응용프로그램과 데이터베이스는 독립되어 있으므로, 데이터의 논리적 구조와 응용프로그램은 별개로 동작된다.

데이터베이스의 진화

데이터베이스는 1960년대 초반 처음 도입된 이래로 계속해서 극적인 진화를 거듭해 왔다. 계층형 데이터베이스(트리 형태의 모델에 의존하며 일 대 다수의 관계만을 허용)와 네트워크 데이터베이스(다수의 관계를 허용하는 더 유연한 모델) 등의 탐색형 데이터베이스(Navigational Database)는 데이터 저장 및 조작을 위해 사용되던 최초의 시스템이었다. 이러한 초기 시스템의 경우 간편하기는 하지만 유연성이 부족해서 1980년대에는 관계형 데이터베이스가 주로 사용되었고, 1990년대 들어서는 객체 지향형 데이터베이스가 그 뒤를 이었다. 이후로는 인터넷의 성장과 함께 비정형 데이터에 대한 더 빠른 속도와 프로세싱을 요구하는 경향에 맞추어 NoSQL 데이터베이스가 주목받기 시작했으며, 최근에는 데이터 수집, 저장, 관리, 활용 방식과 관련해 가상화 클라우드를 이용하는 클라우드 데이터베이스와 머신러닝을 이용하는 자율구동 데이터베이스가 새로운 영역을 개척하고 있다.

데이터베이스와 엑셀/스프레드시트의 차이
데이터베이스와 스프레드시트(예: Microsoft Excel)는 모두 정보를 편리하게 저장할 수 있는 방식이지만 주요 차이점은 데이터 저장 및 조작 방법, 그리고 데이터에 액세스할 수 있는 사용자, 데이터 저장 가능 용량에서 차이가 있다.스프레드시트는 본래 단일 사용자를 위해 설계되었으며, 그 특성 또한 이러한 점을 반영하고 있어서 엄청나게 복잡한 데이터 조작을 다수 실행할 필요가 없는 단일 사용자 또는 적은 수의 사용자가 활용하기에 좋지만,
데이터베이스는 훨씬 더 많은 방대한 양의 조직화된 정보를 보관하도록 설계되었기 때문에 다수의 사용자가 매우 복잡한 로직과 언어를 사용해 동시에 신속하고 안전한 방식으로 데이터에 액세스해서 쿼리를 실행할 수 있다.

관계형 데이터베이스(relational database)란?

관계형 데이터베이스는 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류이다.
관계형 데이터베이스란 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타낸다.
이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스의 특징이다.

관계형 데이터베이스의 테이블(table)은 다음 그림처럼 구성된다.

 

SQL(Structured Query Language)

SQL(Structured Query Language)은 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어이다.
따라서 SQL 구문도 위의 목적에 맞게 크게 세 가지로 구분할 수 있다.

1. DDL(Data Definition Language)
2. DML(Data Manipulation Language)
3. DCL(Data Control Language)
4. TCL(Transaction Control Language

구분 설명 명령어
DDL(Data Definition Language) 데이터베이스나 테이블 등을 생성, 삭제하거나 그 구조를 변경하기 위한 명령어 CREATE, ALTER, DROP
DML(Data Manipulation Language) 데이터베이스에 저장된 데이터를 처리하거나 조회, 검색하기 위한 명령어 INSERT, UPDATE, DELETE, SELECT 등
DCL(Data Control Language) 데이터베이스에 저장된 데이터를 관리하기 위하여 데이터의 보안성 및 무결성 등을 제어하기 위한 명령어 GRANT, REVOKE 등
TCL(Transaction Control Language DML에 의해 변경 된 내용을 완성/저장/취소 하기 위한 명령어 commit(or /), rollback 등