"에스큐엘"의 두 판 사이의 차이
1번째 줄: | 1번째 줄: | ||
+ | [[파일:Sql.jpg|썸네일|300픽셀|'''SQL''' 로고]] | ||
'''에스큐엘'''(SQL)은 Structured Query Language의 약자로서, 구조화 질의어를 말한다. 주로 '에스큐엘'이라고 읽지만, '''시퀄'''이라고 읽는 경우도 있다. SQL 기반의 [[관계형 데이터베이스 관리 시스템]](RDBMS)에는 [[오라클 (제품)|오라클]](Oracle), [[마이에스큐엘]](MySQL), [[엠에스에스큐엘]](MS-SQL), [[티베로]](Tibero), [[큐브리드]](Cubrid) 등이 있다. SQL은 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리 하기 위해 고안되었다. 자료의 검색과 관리, [[데이터베이스]] [[스키마]] 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 사용된다. 데이터베이스 관련 프로그램들은 상당수 SQL을 표준으로 채택하고 있다.<ref name="sql">Che1, 〈[https://nachwon.github.io/sql-1-intro/ SQL 이란?]〉, 《깃허브》, 2017-10-07</ref> | '''에스큐엘'''(SQL)은 Structured Query Language의 약자로서, 구조화 질의어를 말한다. 주로 '에스큐엘'이라고 읽지만, '''시퀄'''이라고 읽는 경우도 있다. SQL 기반의 [[관계형 데이터베이스 관리 시스템]](RDBMS)에는 [[오라클 (제품)|오라클]](Oracle), [[마이에스큐엘]](MySQL), [[엠에스에스큐엘]](MS-SQL), [[티베로]](Tibero), [[큐브리드]](Cubrid) 등이 있다. SQL은 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리 하기 위해 고안되었다. 자료의 검색과 관리, [[데이터베이스]] [[스키마]] 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 사용된다. 데이터베이스 관련 프로그램들은 상당수 SQL을 표준으로 채택하고 있다.<ref name="sql">Che1, 〈[https://nachwon.github.io/sql-1-intro/ SQL 이란?]〉, 《깃허브》, 2017-10-07</ref> | ||
52번째 줄: | 53번째 줄: | ||
== NoSQL과 차이점 == | == NoSQL과 차이점 == | ||
− | SQL과 NoSQL은 서로 반대의 개념이 아니다. 두 가지 타입을 동시에 모두 사용하는 회사도 많다. 한 가지 타입만으로는 모든 경우를 만족시킬 수 없는 경우가 많기 때문이다. 급격하게 데이터가 방대해질 경우라면 NoSQL이 도움이 될 수 있다. | + | SQL과 NoSQL은 서로 반대의 개념이 아니다.<ref>쿠우보이, 〈[https://brunch.co.kr/@kooslab/181 SQL? NoSQL?]〉, 《브런치》, 2017-10-19</ref> 두 가지 타입을 동시에 모두 사용하는 회사도 많다. 한 가지 타입만으로는 모든 경우를 만족시킬 수 없는 경우가 많기 때문이다. 급격하게 데이터가 방대해질 경우라면 NoSQL이 도움이 될 수 있다. |
+ | |||
+ | SQL의 경우에는 시스템이 커져가면 DB를 증설하게 된다. 서로 관계를 가진 테이블들이 수평으로 점차 커져간다. 이는 훨씬 더 고성능의 DB시스템을 필요로 하게 된다는 뜻이다. 이렇게 될 경우 관리가 굉장히 어려워질 수 있다. | ||
+ | |||
+ | NoSQL의 경우는 고성능의 DB시스템을 갖추지 않고도 여러 DB시스템을 추가할 수 있다. 이는 숫자를 무한대로 늘려갈 수 있다는 것을 뜻한다. 여러 DB 시스템을 갖출 수 있다는 것은 SQL과 비교해 장점이 될 수 있다. 또한 스타트업처럼 짧은 시간 안에 DB 구조 등이 자주 변하는 형태라면 NoSQL이 적합하다고 볼 수 있다. | ||
+ | |||
+ | 반면 SQL의 경우에는 DB 스키마를 한번 정하게 되면 데이터 구조의 완전성을 보장하지만 유연하지 않다. DB 구조등이 자주 변하지 않는 금융 산업과 같은 경우에는 SQL이 적합하다고 볼 수 있다. | ||
2019년 7월 25일 (목) 11:19 판
에스큐엘(SQL)은 Structured Query Language의 약자로서, 구조화 질의어를 말한다. 주로 '에스큐엘'이라고 읽지만, 시퀄이라고 읽는 경우도 있다. SQL 기반의 관계형 데이터베이스 관리 시스템(RDBMS)에는 오라클(Oracle), 마이에스큐엘(MySQL), 엠에스에스큐엘(MS-SQL), 티베로(Tibero), 큐브리드(Cubrid) 등이 있다. SQL은 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리 하기 위해 고안되었다. 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 사용된다. 데이터베이스 관련 프로그램들은 상당수 SQL을 표준으로 채택하고 있다.[1]
목차
특징
SQL은 배우고 사용하기 쉬운 언어라는 특징이 있다. 초심자도 쉽게 접근할 수 있다. 절차적 개별 단위로 처리되는 프로그래밍 언어와는 다르게 데이터의 집합 단위로 처리된다. 데이터가 어떻게 처리되는지 과정은 SQL문장 작성자는 신경 쓰지 않아도 된다. 또한 SQL 은 표준 SQL문장이 존재한다. 공인된 기관이 만든 표준 SQL 문장이다. DBMS의 종류에 얽매이지 않고 사용할 수 있다는 점도 SQL의 특징 중 하나이다. [2]
RDBMS
관계형 데이터베이스 관리 시스템(Relational Database Management System)이라고 한다. 관계형 모델을 기반으로 하는 데이터베이스 관리 시스템이다. 현재 사용되는 대부분의 데이터베이스는 관계형 모델을 기반으로 한다. RDBMS는 SQL을 비롯한 현대 데이터베이스 시스템들의 기준이 된다. 데이터들을 행과 열로 이루어진 테이블이라는 데이터베이스 객체에 저장한다. 데이터베이스에서 여러개의 테이블이 있을 수 있으며, 테이블은 각자 이름을 가진다. 테이블은 또 다시 한 열을 나타내는 필드와 한 행을 나타내는 레코드로 나뉜다.[1]
- 필드 : 모든 레코드들의 특정한 값을 저장
- 레코드 : 테이블에 입력된 각각의 데이터 개체
SQL로 할 수 있는 것
SQL은 데이터베이스 데이터를 관리하는 것을 목적으로 만든 프로그래밍 언어이다. SQL로는 데이터들을 관리 할 수 있다.
데이터 조작(DML)
- 데이터 조작어(Data Manipulation Language). 데이터를 조회, 저장, 삭제할때 사용할 수 있다. 저장의 경우 입력과 수정 두가지로 다시 나눌 수 있다.
- 조회 : SELECT
- 삭제 : DELETE
- 저장 : INSERT, UPDATE
데이터 정의(DDL)
- 데이터 정의어(Data Definition Language). 객체를 생성하는데 사용한다. 데이터베이스 객체는 데이터베이스, 인덱스, 테이블, 뷰, 트리거 등이 있다.
- CREATE, DROP, ALTER, TRUNCATE
데이터 제어(DCL)
- 데이터 제어어(Data Control Language). 데이터베이스에 들어있는 데이터에 접근을 제어한다.
- GRANT, REVOKE
SQL 문
기본적으로 데이터베이스에서 행해지는 대부분의 명령은 SQL문으로 실행된다.
- SELECT * FROM Customers;
위 SQL문은 Customers 라는 테이블의 모든 레코드를 선택하는 명령이다. 이 때 SQL 문에서는 대소문자를 구분하지 않는다. select 와 SELECT는 같은 명령이다. 또한 각각의 SQL문의 끝에 ; 를 붙여서 문장을 구분한다.
중요한 SQL 명령어
- SELECT - 데이터 추출
- INSERT INTO - 새로운 데이터 삽입
- UPDATE - 데이터 갱신
- DELETE - 데이터 삭제
- CREATE DATABASE- 새로운 데이터베이스 생성
- ALTER DATABASE - 데이터베이스 변경
- CREATE TABLE - 테이블 생성
- ALTER TABLE - 테이블 변경
- DROP TABLE - 테이블 삭제
- CREATE INDEX- 인덱스 생성
- DROP INDEX - 인덱스 삭제
NoSQL
데이터베이스 기술에서는 두 가지 타입이 있다. SQL 타입과 NoSQL 타입이다. SQL의 경우에는 위에서 계속 설명한 타입이고 아주 오래전부터 사용되었던 방식이다. NoSQL 타입은 Non-SQL 혹은 Not Only SQL 이라고 부른다. 관계형 테이블로 서로 이루어진 SQL과 달리 데이터 저장을 위한 메커니즘이 다르다. 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 구성되지 않은 데이터인 비정형 데이터(Unstructured Data) 를 저장하기에 좋다.
NoSQL과 차이점
SQL과 NoSQL은 서로 반대의 개념이 아니다.[3] 두 가지 타입을 동시에 모두 사용하는 회사도 많다. 한 가지 타입만으로는 모든 경우를 만족시킬 수 없는 경우가 많기 때문이다. 급격하게 데이터가 방대해질 경우라면 NoSQL이 도움이 될 수 있다.
SQL의 경우에는 시스템이 커져가면 DB를 증설하게 된다. 서로 관계를 가진 테이블들이 수평으로 점차 커져간다. 이는 훨씬 더 고성능의 DB시스템을 필요로 하게 된다는 뜻이다. 이렇게 될 경우 관리가 굉장히 어려워질 수 있다.
NoSQL의 경우는 고성능의 DB시스템을 갖추지 않고도 여러 DB시스템을 추가할 수 있다. 이는 숫자를 무한대로 늘려갈 수 있다는 것을 뜻한다. 여러 DB 시스템을 갖출 수 있다는 것은 SQL과 비교해 장점이 될 수 있다. 또한 스타트업처럼 짧은 시간 안에 DB 구조 등이 자주 변하는 형태라면 NoSQL이 적합하다고 볼 수 있다.
반면 SQL의 경우에는 DB 스키마를 한번 정하게 되면 데이터 구조의 완전성을 보장하지만 유연하지 않다. DB 구조등이 자주 변하지 않는 금융 산업과 같은 경우에는 SQL이 적합하다고 볼 수 있다.
각주
- ↑ 1.0 1.1 Che1, 〈SQL 이란?〉, 《깃허브》, 2017-10-07
- ↑ ignocide, 〈SQL 특징 및 구성〉, 《블로거》, 2014-04-13
- ↑ 쿠우보이, 〈SQL? NoSQL?〉, 《브런치》, 2017-10-19
참고 자료
- Che1, 〈SQL 이란?〉, 《깃허브》, 2017-10-07
- ignocide, 〈SQL 특징 및 구성〉, 《블로거》, 2014-04-13
- 쿠우보이, 〈SQL? NoSQL?〉, 《브런치》, 2017-10-19
같이 보기
- 데이터베이스(DB)
- 데이터베이스 관리 시스템(DBMS)
- 관계형 데이터베이스 관리 시스템(RDBMS)
- 노에스큐엘(NoSQL)
- 마이에스큐엘(MySQL)
- 데이터베이스 조작어(DML)
- 데이터베이스 정의어(DDL)
- 데이터베이스 제어어(DCL)
- 비정형데이터(Unstructured Data)