Database

86_Database: Database

Joon D&K 2022. 6. 9. 21:11

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 트랜잭션의 작업을 취소 및 원래대로 복구