티스토리 뷰
데이터베이스
- 대량의 정보를 컴퓨터가 효율적으로 접근할 수 있도록 가공 및 저장한 것을 데이터베이스라고 한다.
- 데이터베이스를 관리하기 위한 컴퓨터 시스템을 데이터베이스 관리시스템(DBMS)라고 한다.
- DBMS를 사용함으로써 대량의 데이터를 다수의 사람이 안전하고 쉽게 다룰 수 있다.
- 데이터베이스에는 다양한 종류(계층형, NETWORK형, 관계형, 객체형, NoSQL, NewSQL)가 있다.
DBMS
- 데이터베이스를 관리하는 시스템이다.
- 사용자와 DB사이에서 사용자의 요구에 따라 데이터를 생성해주고 DB를 관리해주는 소프트웨어이다.
- DBMS는 데이터를 계층 또는 탐색 형식으로 저장한다. 파일 시스템을 사용해 저장하며 따라서 테이블 간에는 아무런 관계가 없다.
- 데이터에 대한 많은 보안을 제공하지 않으며 정규화를 수행할 수 없어 데이터는 높은 중복성을 가질 수도 있다.
- 예) Sybase, dbase, Microsoft Access
RDBMS
- RDB를 생성하고 수정하고 관리할 수 있는 소프트웨어이다.
- 관계형 모델을 기반으로 하는 DBMS 유형이다.
- RDBMS의 테이블은 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.
- 정규화를 통해 데이터의 중복성을 최소화하며 트랜잭션을 수행하는 것이 더 쉽다.
- 데이터의 원자성, 일관성, 격리 및 내구성을 유지하며 데이터 무결성을 높인다.
- 예) MSSQL, MySQL, Oracle
SQL(Structured Query Language)
- 관계형 데이터베이스를 제어하기 위한 언어
- SQL에는 ISO에서 정한 표준 규격이 있어서 이 규격을 따르는 SQL을 표준 SQL이라고 하지만 실제로 RDBMS 회사마다 차이가 있다.
- SQL에서는 처리하고 싶은 내용을 하나의 구문(SQL)으로 기술하고, RDBMS에 전송한다.
원칙적으로는 하나의 SQL문장 끝에는 구분자 세미콜론(;)을 붙여야 한다. 단, RDBMS의 다양한 SQL Editor에서 구분자를 붙이지 않아도 실행될 수 있게 해주기도 한다.
1. DBMS특징
- 실시간 접근성(real time accessibility)
데이터베이스는 실시간으로 서비스된다. 사용자가 데이터를 요청하면 몇 시간이나 몇 일 뒤에 결과를 전송하는 것이 아니라 수 초 내에 결과를 서비스한다. - 계속적인 변화(continuous change)
데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 변경된다. 데이터베이스는 삽입(insert), 삭제(delete), 수정(update) 등의 작업을 통하여 바뀐 데이터 값을 저장한다. - 동시 공유(concurrent sharing)
데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다. - 내용에 따른 참조(reference by content)
데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조된다.
2. DBMS 장점
- 데이터를 통합하여 관리하여 데이터의 중복관리를 최소화한다.
- 한번 저장된 데이터를 여러 가지 형태로 표현 가능하도록 한다.
- 데이터 불일치나 모순성을 해결하여 데이터 일관성을 유지할 수 있다.
- 입력이나 수정 시 다양한 무결성 처리를 자동으로 검증할 수 있다.
- 많은 부분을 DBMS가 지원함으로써 데이터 수집, 분석, 처리가 용이하다.
- 중앙집중식 관리로 일률적인 보안관리가 가능하다.
3. RDBMS 특징
- 일상생활에서 데이터를 정리하여 표현할 때, 흔히 표와 같은 방법을 사용하게 되는데, 관계형 데이터베이스는 이 "표"의 개념을 사용해서 데이터를 구성하는 방법을 사용하고 있다. 이것을 테이블(Table)이라고 부른다.
- 예를 들어 고객들의 주소와 전화번호를 정리할 때, 테이블을 사용한다면, 첫 번째 열(Column)은 이름, 두 번째 열은 주소, 세 번째 열은 전화번호를 써서 나타낼 수 있다.
- 테이블은 데이터항목을 나타내는 열(Column)한 건의 데이터를 뜻하는 행(Row)으로 구성된다.
- 데이터 읽기/쓰기는 행(Row)단위로 처리된다.
- 테이블 데이터가 실제로 저장되는 장소의 구조가 바뀌더라도, 응용프로그램을 변경시킬 필요가 없는 물리적 구조로부터의 독립성을 제공한다.
4. RDBMS 시스템 구성
- RDBMS를 사용할 때 가장 일반적인 시스템 구성이 클라이언트-서버형(C/S형)이다.
- 서버(Server)란 다른 프로그램으로부터 요청을 받아서 해당 요청에 따라 처리를 하는 프로그램 또는 프로그램이 설치된 장비(컴퓨터)를 의미한다.
- RDBMS도 서버의 일종으로 데이터베이스 데이터를 꺼내서 반환하거나 데이터 변경작업을 수행한다.
- 클라이언트(Client)란 서버에 요청을 보내는 프로그램 또는 해당 프로그램이 설치된 장비(컴퓨터)를 의미한다.
- 클라이언트는 어떤 데이터를 보고 싶은지, 데이터를 어떻게 변경하고 싶은지를 SQL문으로 작성해서 서버로 전송한다.
- 다수의 클라이언트가 동시에 하나의 데이터베이스에 접속해 작업을 수행할 수 있다.
5. SQL 특징
- 배우고 사용하기 쉬운 언어이다. 개발자들뿐만 아니라 DBA, 일반인(END USER)들도 SQL을 배우고 사용한다.
- 절차적인 언어가 아니라 선언적 언어이다.
SQL은 절차적 언어처럼 처리 과정을 일일이 기술할 필요가 없다. 실제 데이터들이 어떻게 처리되는지에 대한 세부적인 과정은 SQL문장을 작성하는 사람은 신경 쓰지 않아도 된다는 장점이 있다. - DBMS의 종류에 얽매이지 않고 사용할 수 있는 장점이 있다.
DBMS의 제품으로는 Oracle, MSSQL, MySQL, SYBASE, DB2등 여러 회사의 제품이 존재하며, 그 구조나 특성면에서 모두 다르지만 표준 SQL문을 적용할 수 있다.
6. SQL 종류
- SQL은 목적에 따라 DDL, DML, DCL로 분류할 수 있다.
- DDL(Data Definition Language)
데이터를 저장하는 데이터베이스 및 테이블, 기타 오브젝트를 생성/변경/삭제하기 위한 것이다. - DML(Data Manipulation Language)
테이블의 행을 검색하거나 변경하기 위한 것이다. - DCL(Data Control Language)
데이터베이스에서 처리한 변경 내용을 확정하거나 취소하기 위한 것이다. -
구분 명령문 설 명 DML SELECT
INSERT
UPDATE
DELETE- 데이터베이스에서 데이터를 검색할 때 사용한다.
- 테이블에서 새 행을 입력한다.
- 기존 행 변경한다.
- 행을 제거한다.DDL CREATE
ALTER
DROP
RENAME
TRUNCATE- 테이블 등 데이터 구조물(객체)를 생성한다.
- 객체를 수정할 때 사용한다.
- 객체 제거시 사용한다.
- 객체 이름을 변경할 때 사용한다.
- 객체내의 모든 행을 삭제한다.DCL COMMIT
ROLLBACK
GRANT
REVOKE- 데이터베이스 변경 내용을 확정(저장)한다.
- 데이터베이스 변경 내용을 취소한다.
- 사용자에게 처리 권한을 부여한다.
- 사용자에게 처리 권한을 제거한다.
'SQL' 카테고리의 다른 글
그룹으로 나누기 (GROUP BY) (0) | 2021.06.21 |
---|---|
정렬하기 (order by) (0) | 2021.06.18 |
검색 조건 지정하기 (WHERE) (0) | 2021.06.17 |
SELECT 구문 (0) | 2021.06.13 |
테이블 생성하기 (0) | 2021.06.12 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 모듈
- 자바
- 코딩
- 금리
- 영어회화
- SW
- 경제신문
- 머신러닝
- 보안
- 스마트워치
- 프로그래밍
- sql
- 프로그래머스
- 클래스
- 파이썬
- 개발
- 경제
- 데이터
- 그래프
- 함수
- mysql
- python
- 데이터분석
- 코테
- 코딩테스트
- Programming
- R
- plot
- 영어
- 코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함