데이터베이스란?
데이터베이스(Database)의 정의
DB란 여러 사람에게 공유되어 사용될 목적을 가지고, 구조적인 방식으로 관리되는 데이터의 집합을 이야기한다.
데이터베이스의 체계적인 관리는 데이터베이스 관리 시스템 (DBMS)을 통해 이루어진다.
DBMS는 데이터를 정리하고 보관하기 위한 용도로 사용된다
=> 이를 위해 데이터 추가, 변경, 삭제, 검색 등의 기능을 수행함
(대표적인 DBMS는 Oracle, MySQL, MsSQL, Teradata, SyBase 등이 있다)
데이터베이스 관리 시스템(DBMS)의 특성
DBMS는 실시간 접근성, 계속적인 변화, 동시 공용, 내용에 의한 참조 등의 특성을 지니고 있다
1. 실시간 접근성(Real-time-processing) : 컴퓨터가 접근할 수 있는 저장 장치에서 관린되는 데이터베이스는 지속적이고 비정형적인 질의에 대하야 실시간 처리가 가능해야 한다
2. 계속적인 변화(Continuous evolution) : 데이터베이스의 상태는 동적이다
=> 기존의 데이터베이스가 존재한다면 그 데이터베이스에 새로운 데이터를 삽입(Insert), 삭제(Delete), 갱신(Update) 등의 변화를 주어 정확한 데이터를 유지해야 한다.
3. 동시 공용(Concurrent sharing) : 데이터베이스는 다수의 사용자가 동시에 각자 원하는 데이터에 접근하여 이용할 수 있어야 한다
4. 내용에 의한 참조(Contents reference) : 데이터베이스 환경에서 데이터의 참조는 레코드의 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터의 내용, 즉 데이터가 가지고 있는 값에 따라 참조된다
SQL 사용을 위해 필요한 데이터베이스 용어
1. 테이블 : 테이블은 구조화된 엑셀 스프레드시트와 같다
(테이블은 특정한 종류의 데이터를 구조적 목록으로 묶은 것이다)
위의 사진을 테이블이라고 부른다
=> 테이블 이름을 설정해줄 수 있고 테이블 이름은 고유해야 한다
(동일한 두 개의 테이블 이름은 허락되지 않음)
2. 스키마(Schema) : 테이블에 데이터가 저장되는 방식을 정의할 수 있다
(어떤 데이터를 어떤 형식으로 지정할지 정의)
=> 스키마는 데이터베이스에 존재하는 자료의 구조 및 내용과 자료들의 논리적, 물리적 특성에 대한 정보를 표현하는 데이터베이스의 논리적 구조를 지칭한다
3. 열(Column) : 테이블을 구성하는 각각의 정보를 말한다
위의 테이블 사진을 예로 들면 'id' 와 'created_at' , 'user_id', 'title' 등이 열이고, 각각의 변수는 특정한 정보를 포함하고 있다
데이터베이스의 각 열에는 고유한 데이터 형식이 지정되는데
=> 정수 데이터, 문자 데이터, 통화 데이터, 날짜 및 시간 데이터 등으로 지정할 수 있다
(데이터 형식을 지정한다는 것은 열에 저장할 수 있는 데이터의 종류를 특정한 형식으로 제한한다는 의미)
4. 행(Row) : 테이블의 데이터는 행에 저장된다
위의 테이블 사진을 예시로 2개의 정보가 포함되어 있으므로 이 테이블의 행은 2개이다
(테이블의 '행'을 같은 의미로 '레코드'라고 표현하기도 한다)
5. 기본 키(Primary key) : 테이블에는 각 행을 고유하게 하는 열이 존재한다 (이를 기본 키라고 함)
예를 들어 위의 테이블 사진에서는 각 행을 고유하게 하는 키(key)값은 'id'이다
=> 기본 키는 테이블 생성 시 반드시 필요하다
(데이터베이스 제어 및 관리, 데이터베이스 최적화 등을 위해 각 테이블에 기본 키를 설정해야 하는 것임)
SQL이란?
SQL의 개요
SQL은 Structured Query Language의 약자로, 사용자와 데이터베이스 시스템 간의 의사소통을 위해 특별히 고안된 언어이다
SQL은 관계형 데이터베이스 모델의 규칙에 따라 정의되어 있기 때문에 관계형 데이터베이스 언어라고도 할 수 있다!
SQL의 장점은 영어 문장과 유사하고 몇 개의 단어로 구성되어 있어 배우기가 쉽고
(SQL은 데이터베이스에서 데이터를 읽거나 쓰고, 수정하기 위한 분명한 용도로 만들어졌기 때문)
대부분의 DBMS가 SLQ을 지원하므로 한 언어를 배워서 다양한 DBMS에서 활용할 수 있다
SQL의 종류
SQL은 구조화된 질의 언어이다.
=> 이는 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL) 등으로 구분된다
1. 데이터 정의어 (DDL : Data Definition Language) : 데이터베이스에 공간과 형식을 정의하면 데이터를 처리할 수 있는 골조가 갖춰진다
데이터가 저장된 공간이 '테이블'이고, 이 테이블 형식이 '스키마'라고 생각하면 된다
=> 즉, DDL은 데이터와 그 구조를 정의하는 언어이다
- CREATE : 데이터베이스 테이블 생성
- DROP : 데이터베이스 테이블 삭제
- ALTER : 기존 데이터베이스 테이블 재정의
2. 데이터 조작어 (DML : Data Manipulation Language) : DDL로 데이터를 저장할 공간(테이블)과 형식(스키마)을 만들었으면 그 공간에 데이터를 저장, 수정, 삭제, 조회하는 것은 데이터 조작어(DML)로 가능하다
=> 즉, DML은 데이터 검색과 수정 등의 처리를 위한 언어이다
- INSERT : 테이블에 데이터 삽입/입력
- DELETE : 테이블의 데이터 삭제
- UPDATE : 기존 테이블 안의 데이터 수정
- SELECT : 테이블 내 데이터 검색
3. 데이터 제어어 (DCL : Data Control Language) : 데이터베이스 사용자의 권한 제어를 위해 사용되는 언어이다
- GRANT : 테이블에 권한 부여
- REVOKE : 부여한 권한 취소/회수
'Database > SQL' 카테고리의 다른 글
텍스트 마이닝을 활용한 데이터 조건 주기 (1) | 2024.02.26 |
---|---|
논리연산자를 활용한 데이터 조건 주기 (0) | 2024.02.25 |
WHERE 조건절을 활용한 데이터 조건 주기 (0) | 2024.02.22 |
SELECT문에 추가적으로 필요한 키워드 (0) | 2024.02.22 |
SQL의 기초 (0) | 2024.02.21 |