데이터베이스의 정의
데이터베이스(DB)란 구조적인 방식으로 관리되는 데이터의 집합을 이야기한다. 즉, 서로 연관된 정보의 중복을 최소화하여 한곳에 저장함으로써 다수의 사용자가 필요한 정보에 효율적으로 접근할 수 있게 한 정보의 집합체이다. 또한 데이터베이스는 실시간 접근과 동시 공유가 가능하다.
데이터베이스의 체계적인 관리는 데이터베이스 관리 시스템(DBMS)을 통해 이루어진다. DBMS는 데이터를 정리하고 보관하기 위한 용도로 사용된다. 이를 위해 데이터 생성, 수정, 삭제, 검색 등의 기능을 수행한다.
대표적인 DBMS는 Oracle, MySQL, PostgreSQL, MongoDB 등이 있다.
DBMS(데이터베이스 관리 시스템) 특성
DBMS는 실시간 접근성, 계속적인 변화, 동시 공용, 내용에 의한 참조 등의 특성을 지니고 있다.
1.실시간 접근성
컴퓨터가 접근할 수 있는 저장 장치에서 관리되는 데이터베이스는 지속적이고 비정형적인 질의에 대하여 실시간 처리가 가능해야 한다.
2.계속적인 변화
데이터베이스의 상태는 동적이다.
3.동시 공용
데이터베이스에 다수의 사용자가 동시에 원하는 데이터에 접근하여 이용할 수 있어야 한다.
4.내용에 의한 참조
데이터베이스 환경에서 데이터의 참조는 레코드의 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터의 내용, 즉 데이터가 가지고 있는 값에 따로 참조된다.
SQL 사용을 위한 데이터베이스 용어
1. 테이블 (릴레이션)
테이블은 구조화된 엑셀 스프레드시트와 같다.
테이블 이름은 고유해야한다. 동일한 두 개의 테이블 이름은 허락되지 않는다.
고객ID | 이름 | 고객등록일 | 휴대폰 보유 여부 |
123 | 이전주 | 1997-12-31 | 보유 |
523 | 강재학 | 1998-06-04 | 미보유 |
845 | 이재하 | 2000-11-23 | 보유 |
데이터베이스의 종류는 크게 관계형 데이터베이스와 NoSQL 데이터베이스로 나눌 수 있다.
대표적인 관계형 DB는 MySQL이 있고 대표적인 NoSQL DB로는 MongoDB가 있다.
이때 관계형 DB에서는 '테이블'이라 부르는 것을 NoSQL DB에서는 '컬렉션'이라 부른다.
2. 스키마(Schema)
테이블에 데이터가 저장되는 방식을 정의할 수 있다.
데이터가 저장된 공간이 '테이블'이고, 이 테이블 형식이 '스키마'라고 생각하면 된다.
스키마는 데이터베이스에 존재하는 자료의 구조 및 내용과 자료들의 논리적, 물리적 특성에 대한 정보를 표현하는 데이터베이스의 논리적 구조를 지칭한다.
3. 열(Column) (필드)
열은 테이블을 구성하는 가각의 정보를 말한다.
테이블을 예로 들면 '고객ID', '이름', '고객등록일', '휴대폰 보유 여부' 등이 열리고, 각각의 변수는 특정한 정보를 포함하고 있다. 데이터를 여러 가지 열로 나누는 일은 매우 중요하다.
예를 들어 고객 등록일을 한 번보면 년도 4자리와 월 2자리 일 2자리로 구성되어 있다. 이를 한 개의 열에 모두 입력할 수도 있고, 세 개의 열에 나눠서 입력할 수도 있다.
ex) 첫 번째 방법: '고객등록일' 하나의 열 안에 '19971231'이라고 표현하는 것이고
두 번째 방법: '년','월','일'로 나누어 각각 1997 , 12 , 31 이라고 표현하는 것이다.
만약 년도가 같은 고객 , 월이 같은 고객들 등 고객 분포에 대한 자료를 추출하려고 한다면 두 번째 방식으로 입력된 데이터의 경우 별도의 작업 없이 쉽게 데이터를 추출할 수 있지만, 첫 번째 경우 추가 작업이 필요하다.
데이터베이스의 각 열에는 고유한 데이터 형식이 지정된다. 데이터 형식은 정수 데이터, 문자 데이터, 통화 데이터, 날짜 및 시간 데이터 등으로 지정할 수 있다. 데이터 형식을 지정한다는 것은 열에 저장할 수 있는 데이터의 종류를 특정한 형식으로 제한한다는 의미이다.
ex)숫자형 데이터 형식으로 지정된 열은 문자형으로 입력할 수 없다.
이러한 데이터 형식은 데이터의 올바른 정렬 및 데이터베이스 공간의 효율적 사용에 중요한 역할을 한다.
4. 행(row) (레코드 또는 튜플)
테이블의 데이터는 행에 저장된다. 고객 테이블의 행에는 각각의 고객정보가 포함되어 있다. 총 3명의 고객정보가 포함되어 있으므로 이 테이블의 행은 3개이다.
테이블의 행은 레코드라고 표현하기도 한다.
5. 기본 키(Primary Key) (주키)
테이블에는 각 행을 고유하게 하는 열이 존재한다. 이를 기본 키라고 한다. 데이터를 식별하는 '식별자' 역할을 한다.
기본 키는 중복 값을 가질 수 없고, NULL값을 가질 수 없으며 변경될 수도 없다.
ex) 고객테이블에서 각 행을 고유하게 하는 키(key) 값은 고객ID 이다.
기본키는 테이블 생성 시 반드시 필요하고, 데이터베이스 제어 및 관리, 데이터베이스의 최적화 등을 위해 각 테이블에 기본 키를 설정해야 하는 것이다.
6. 외래키
외래키는 두 테이블의 관계를 맺어주는 키를 말한다. 한 테이블의 열(속성)이 다른 테이블의 기본 키 또는 후보 키와 관련된든 값을 가지는 제약 조건이다. 외래 키는 데이터베이스의 릴레이션 간의 관계를 나타내는 데 사용된다. 관계는 주 테이블과 참조 테이블 간의 관계로 이해할 수 있다.
SQL 개요
`SQL`은 Structured Query Language(구조화된 질의 언어)의 약자로, `관계형 데이터베이스 관리 시스템(RDBMS)`에서 데이터를 관리하기 위해 사용되는 표준화된 언어이다.
SQL은 데이터베이스에 대한 질의(Query), 조작(Manipulation), 정의(Definition), 제어(Control) 등의 작업을 수행하는 데 사용된다. 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL) 등으로 구분된다.
1. 데이터 정의어(DDL : Data Definition Language)
데이터베이스 구조를 정의하거나 변경하기 위한 명령어
- CREATE : 데이터베이스 테이블 생성
- DROP : 데이터베이스 테이블 삭제
- ALTER : 기존 데이터베이스 테이블 재정의
- RENAME
- TRUNCATE
2. 데이터 조작어(DML : Data Manipulation Language)
데이터를 조회, 삽입, 수정, 삭제하기 위해 사용되는 명령어
- INSERT : 테이블에 데이터 삽입/입력
- DELETE : 테이블의 데이터 삭제
- UPDATE : 기존 테이블 안의 데이터 수정
- SELECT : 테이블 내 데이터 검색
3. 데이터 제어어(DCL : Data Control Language)
데이터베이스에 대한 권한을 관리하기 위해 사용되는 명령어
- GRANT : 테이블에 권한 부여
- REVOKE : 부여한 권한 취소/회수
4. 트랜잭션 제어어(TCL : Transaction Control Language)
데이터베이스 트랜잭션을 제어하기 위해 사용되는 명령어
- COMMIT
- ROLLBACK
- SAVEPOINT
'DBMS > SQL, RDBMS' 카테고리의 다른 글
[SQL]DML(데이터 삽입 & 수정 & 삭제) (0) | 2021.08.11 |
---|---|
SQL 하위 쿼리(Sub-query) (0) | 2021.08.10 |
SQL 테이블 합치기 (조인과 집합) (0) | 2021.08.10 |
SQL 문자, 숫자, 날짜, COUNT, CASE WHEN, 데이터의 그룹화 (0) | 2021.08.10 |
SQL SELECT, WHERE, ORDER BY, IN, LIKE, TRIM (0) | 2021.08.09 |