프로그래밍/DB
데이터베이스
COPAN
2022. 7. 26. 11:56
728x90
데이터베이스의 정의
- 데이터베이스는 정보시스템의 핵심요소
- 상호 관련된 데이터의 성격에 맞게 설계하고 관리, 운영하는 대용량의 데이터 저장소
데이터베이스의 특징
- 데이터의 구조화
- 데이터 중복의 최소화
- 데이터의 무결성 및 일관성
- 데이터 보안 -접근이 허가된 사용자 관리
DBMS
- 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어
- 기존 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위 해 제안된 시스템으로 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리해 줌
- DBMS는 데이터베이스의 구성, 접근방법, 유지관리에 대한 모든 책임을 짐
데이터베이스의 종류와 발전
- 1세대: 네트위크 계층 DBMS 네트워크 DBMS
- 로드와 간선을 이용한 그래프 형태로 구성하는 네트워크 데이터 모델
- 데이터베이스의 구도가 복잡하고 변경이 어려움
- 2세대: 관계형 DBMS
- 데이터베이스를 테이ㅡㄹ 형태로 구성하는 관계 데이터 모델을 사용
- 키(key)와 값(value)의 관계를 2차원표(테이블) 형식으로 나타낸 데이터베이스로 하나의 데이터베이스 안에는 여러 개의 테이블이 존재
- 3세대: 객체지향 DBMS
- 객체라는 개념을 이용해 데이터베이스를 구성하는 객체지향 데이터 모델을 사용
- 4세대: NoSQL, New SQL
- NoSQL은 데이터 구조를 미리 정해두지 않았기 때문에 비정형 데이터를 저장하고 처리하는데 적합
- 확장성이 뛰어나 여러 서버에 데이터를 분산,저장하고 처리할 수 있도록 설계되어 있음
SQL: Structured Query Language은 관계형 데터베이스에서 사용
데이터베이스 언어의 종류
- DDL, DML, DCL, DQL, TCL로 구분
SQL Command Type
- 데이터 정의어 ( DDL: Date Definition Language)
- 데이터베이스 객체(테이블, 뷰, 인덱스 등)의 구조를 정의, 수정, 삭제
DDL | CREATE | 데이터베이스 객체 생성 | 1.자료형 정의 2.구조와 테이블 복사(전체복사) 3.구조와 일부 데이터만 복사 4.구조만 복사(데이터X) |
|
ALTER | 데이터베이스 객체 변경 (테이블 구조) |
ADD | 열 추가 | |
RENAME | 열 이름변경 | |||
MODIFY | 열의 자료형 변경 | |||
DROP | 특정 열 삭제 | |||
RENAME | 테이블 이름 변경 | |||
TRUNCATE | 테이블에서 데이터 완전 삭제 | |||
DROP | 데이터베이스 객체 삭제 |
- 데이터 조작어 ( DML: Data Manipulation Language)
- 데이터의 입력, 수정, 삭제와 테이블을 잠시 잠그거나 병합을 할 때 사용
DML | INSERT | 데이터베이스 객체에 데이터 입력 |
UPDATE | 데이터베이스 객체 안의 데이터 수정 | |
DELETE | 데이터베이스 객체의 데이터 삭제 | |
LOCK | 테이블에 대한 읽기 또는 쓰기 권한을 감그는데 사용 | |
MERGE | 데이터베이스 테이블의 레코드 병합 |
- 데이터 질의어 ( DQL: Data Query Language)
- 데이터베이스의 데이터를 검색
DQL | SELECT | 데이터베이스 객체 안의 데이터 검색 |
- 데이터 제어어 ( DCL: Data Control Language)
- 데이터베이스 사용자의 권한을 제어
DCL | GRANT | 데이터베이스 객체에 권한 부여 |
REVOKE | 이미 부여된 데이터베이스 객체 권한 취소 |
- 트랜잭션 제어어(TCL: Transaction Control Language)
- 트랜잭션 제어와 관련된 기능을 수행하는 언어
TCL | CMMIT | 한 트랙잭션에서 데이터 조작이 정상적으로 완료되었으면 그 결과를 데이터베이스에 반영하는 명령어 |
ROLLBACK | 트랜잭션 내에서 데이터를 수정하는 도중 이상이 생겼을 때, 변경하기 이전으로 돌아가는 명령어 | |
SAVEPOINT | 트랜잭션의 특정 지점에 이름을 지정하고, 그 지점 이전에 수행한 작업에 영향을 주지 않고 그 지점 이후에 수행한 작업을 롤백(ROLLBACK)할 수 있음 | |
SET TRANSATION | 트랜잭션 정의 |
데이터베이스 용어
- 스키마 (Schema)
- 데이터베이스에서 자료의 구조와 표현 방법, 자료들 간의 관계를 정의한 것
- 데이터베이스
- 상호 관련된 데이터의 성격에 맞게 설계하고 관리, 운영하는 대용량의 데이터 저장소로, 하나의 데이터베이스안에는 여러 개의 테이블이 존재
- 테이블
- 튜플과 어트리뷰트 구조로 되어 있는 데이터의 집합
- 튜플(Tuple)
- 테이블에서 행을 의미
- row 또는 record(레코드)라고도 함
- 어트리뷰트(Attribute)
- 테이블에서 열을 의미
- 컬럼(Column)이라고도 함
- 인스턴스(Instance)
- 데이터의 값
- 튜플(Tuple)
- 튜플과 어트리뷰트 구조로 되어 있는 데이터의 집합