86_Database: Database
1. Database
1.1. Database?
- 특정 조직의 업무를 수행(목표 달성)하는 데 필요한 상호 관련된 데이터들의 모임
- 엑셀의 한 페이지(행/열) 또는 시트를 table이라고 했을 때, 이러한 table의 모음을 데이터베이스라고 함
1.2. 종류
1.2.1. 통합된 데이터 (Integrated Data) : 자료의 중복을 배제한 데이터
1.2.2. 저장된 데이터 (Stored Data) : PC가 접근할 수 있는 저장 매체에 저장된 데이터
1.2.3. 운영 데이터 (Operational Data) : 조직 고유의 업무를 수행하는 데 존재 가치가 확실하며 반드시 필요한 데이터
1.2.4. 공용 데이터 (Shared Data) : 여러 응용 시스템들이 공동으로 소유/유지하는 데이터
1.3. 특징
1.3.1. 실시간 접근성 (Real-Time Accessibility)
- 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능
1.3.2. 계속적인 변화 (Continuous Evolution)
- 데이터베이스의 상태는 동적
- 새로운 데이터의 삽입(Insert), 삭제(Delete), 갱신(Update)로 항상 최신의 데이터를 유지
1.3.3. 동시 공용 (Concurrent Sharing)
- 데이터베이스는 서로 다른 목적을 가진 여러 응용자들을 위한 것이므로 다수의 사용자가 동시에 같은 내용의
데이터를 이용할 수 있어함
1.3.4. 내용에 의한 참조 (Content Reference)
- 데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는
데이터 내용으로 데이터를 검색
- e.g. select user/id form table명 where is 조건
1.4. 시스템
- 데이터베이스를 이용하여 자료를 저장/관리하여 정보를 얻어내는 데 필요한 컴퓨터 중심의 시스템
1.4.1. 데이터베이스
1.4.2. 스키마
1.4.3. DBMS (Database Management System)
1.4.4. 데이터베이스 언어
1.4.5. 데이터베이스 컴퓨터
1.4.6. 데이터베이스 사용자
1.5. 테이블 (또는 릴레이션)
- 관계형 데이터베이스에서 정보를 저장하는 기본단위 (행과 열, 고유한 이름)
1.5.1. 속성
- 열
- 카테고리 개념으로 하나의 열은 여러 개의 속성 정보 표시 (동일한 이름의 속성은 존재 불가)
1.5.2. 차수
- 하나의 릴레이션에 들어있는 속성의 개수 (최소 1개 이상)
1.5.3. 튜플
- 행
- 엔티티의 특정 인스턴스에 관한 사실(값)들의 모임
1.5.4. 카디날리티
- 하나의 릴레이션에 들어있는 튜플의 개수
1.5.5. 도메인
- 속성이 가질 수 있는 값
- e.g. 성별: 남/여, 나이: 1~100
1.5.6. 슈퍼키
- 특정 튜플 식별 (유일성 만족)
- e.g. 사번+회사이름
- 슈퍼키 > 후보키 > 기본키
· 후보키 : 최소성 만족 (e.g. 집주소)
· 기본키 : 유일성, 최소성 만족 (e.g. 주민등록번호)
2. SQL (Structured Query Language)
2.1. SQL?
- 구조적 질의 언어 (형태가 정해져 있음, 정형화되어 있음)
- 해당 질의 언어를 통해 데이터베이스를 제어하고 관리
2.2. 종류
2.2.1. DDL (Data Definition Language / 데이터 정의어)
- 데이터베이스를 정의/생성/수정/삭제 (전체 골격 결정)
- 데이터베이스/테이블 차원
- 데이터베이스 관리자/설계자가 사용
종류 | 역할 |
CREATE | 데이터베이스, 테이블 생성 |
ALTER | 테이블 수정 |
DROP | 데이터베이스, 테이블 삭제 |
TRUNCATE | 테이블 초기화 |
2.2.2. DML (Data Manipulation Language / 데이터 조작어)
- 정의된 데이터베이스에 입력된 레코드를 조회/수정/삭제
- 테이블 차원
- 데이터베이스 사용자가 응용 프로그램/질의어를 통해 저장된 데이터를 실질적으로 처리하는데 사용
- 데이터베이스 사용자와 데이터베이스 관리 시스템 간의 인터페이스를 제공.
종류 | 역할 |
SELECT | 데이터 조회 |
INSERT | 데이터 삽입 |
UPDATE | 데이터 수정 |
DELETE | 데이터 삭제 |
2.2.3. DCL (Data Control Language / 데이터 제어어)
- 데이터베이스에 접근/객체에 권한 부여
- 데이터의 보안, 무결성, 회복, 병행 수행제어 등을 정의
- 데이터베이스 관리자가 사용
종류 | 역할 |
GRANT | 특정 데이터베이스 사용자에게 특정 작업에 대한 수행권한 부여 |
REVOKE | 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈, 회수 |
COMMIT | 트랜잭션의 작업을 원래대로 처리 |
ROLLBACK | 트랜잭션의 작업을 취소 및 원래대로 복구 |