-
SQL이란 ?Backend Dev/SQL 2022. 1. 31. 11:02728x90
SQL(Structured Query Language)
관계형 데이터베이스에서 데이터를 조작하고 질의하는 표준 수단으로써, 데이터를 비교적 쉽게 검색하고 추가, 삭제, 수정같은 조작을 할 수 있도록 고안된 컴퓨터 언어입니다.
이전에 데이터베이스와 DBMS(DataBase Management System)에 대해 짚고 넘어가도록 해보겠습니다.
데이터베이스는 간단히 말해 데이터의 집합을 의미하며, 여러 시스템들의 통합된 정보들을 저장해 놓고 운영할 수 있는 공간입니다. 복잡하고 다양한 데이터들을 DB에서는 효율적으로 저장, 검색, 갱신 등의 작업을 수행할 수 있도록 데이터 집합들끼리 연관시키고 조직화시킬 수 있습니다.
데이터베이스의 특성은 다음과 같습니다.
실시간 접근성 : 사용자의 요구를 즉시 처리할 수 있다.
지속적인 변화 : 정확한 값을 유지하기 위해 삽입, 삭제, 수정 등의 작업을 이용해 데이터를 지속적으로 갱신할 수 있다.
동시 공유성 : 사용자마다 서로 다른 목적으로 사용하기에 동시에 여러 사람이 동일한 데이터에 접근하고 이용할 수 있다.
내용 참조 : 저장한 데이터 레코드의 위치나 주소가 아닌 사용자가 요구하는 데이터의 내용, 즉 데이터 값에 따라 참조할 수 있어야 한다.
데이터 집합들을 관리하려면 소프트웨어가 필요한데 DBMS가 이러한 역할을 담당하고 있습니다. 이 DBMS에는 여러 응용 프로그램이 동시에 데이터베이스를 접근하여 사용할 수 있어야 합니다.
일반적으로 많이 사용되는 관계형 DBMS로 오픈소스 무료 소프트웨어인 MySQL과 상업용 데이터베이스로는 많은 양의 데이터 처리가 가능한 Oracle이 있으며 이외로 MSSQL, MariaDB, SQL Server 등이 있습니다.
다음은 DBMS에서 사용되는 필수적인 3기능으로 SQL을 학습하면서 많이 보게 될 개념과 명령어입니다.
아래에 나와있는 명령어들은 대소문자를 구별하지 않습니다.
데이터 정의어(Data Definition Language) : 데이터 베이스의 논리, 물리적 구조를 정의한다.
> CREATE(테이블 정의), ALTER(테이블 수정 및 구조 변경), DROP(테이블 제거)
데이터 조작어(Data Manipulation Language) : 데이터를 검색, 삭제, 갱신, 삽입하는 역할을 한다.
> INSERT(데이터 검색), DELETE(데이터, 레코드 삭제), UPDATE(데이터 수정), SELECT(데이터 조회)
데이터 제어어(Data Control Language) : 데이터베이스의 내용 정확성과 안전성을 유지하도록 제어한다.
> GRANT(데이터베이스 접근 권한 부여), REVOKE(데이터베이스 접근 권환 회수)
트랜잭션 제어어(Transaction Control Language) : 분할할 수 없는 최소 단위이면서 논리적인 작업 단위인 트랜잭션을 제어하는데, 모든 작업을 최종 실행하거나 되돌릴 때 사용된다.
> ROLLBACK(작업 복원), SAVEPOINT(데이터 저장점을 지정)
위와 같은 기능을 갖춤으로써 데이터의 중복을 최소화할 수 있고, 데이터 일관성 및 무결성을 유지할 수 있습니다. 또한 데이터베이스에 접근할 수 있는 권한도 데이터베이스 관리자가 담당을 하여 데이터의 보안도 보장할 수 있을 것입니다.
하지만 운영비 부담, 복구에 대한 관리 복잡성 그리고 데이터베이스의 부분적인 손실이 전체 시스템을 정지시킬 수 있다는 단점이 있습니다.
필수 3기능을 설명하며 명령어 중 먼저 스키마를 정의하는데 이는 테이블과 같은 의미로 볼 수 있습니다.
테이블
RDBMS의 기본적인 저장구조로써 한 개 이상의 column과 0개 이상의 row로 구성되어 있습니다.
열(column)은 테이블 상에서의 단일 종류의 데이터를 나타냄. 특정 데이터 타입 및 크기를 가지고 있다는 특징을 갖고
행(row)는 column 값들의 조합으로 레코드라 불립니다. 기본키에 의해 구분되고 여기서 기본키는 중복을 허용하지 않으며 없어서는 안되는 데이터라고 할 수 있습니다.또한, row, column의 교차점으로 필드라는 개념은 데이터를 포함할 수 있고 없을 땐 기본적인 null값을 가지고 있습니다.
다음 포스팅에서는 SQL 명령어에 대해 조금 더 구체적으로 알아보고 자바를 이용해 데이터베이스를 관리하는 법, 스프링 프레임워크를 이용했을 때의 데이터 관리의 편리함을 알아보겠습니다.
감사합니다.
728x90