Structured Query Language(SQL)이란?

  • 구조적 쿼리 언어로 데이터베이스에 질의(쿼리)하는 것을 의미한다.

  • SQL을 이용해 단순한 쿼리뿐만 아니라 데이터베이스를 만들거나 제거하고, 데이터베이스 내에 테이블을 삽입, 갱신, 삭제하거나 다양한 운영 작업을 할 수 있기 때문이다. 

  • SQL은 1974년 IBM 연구소에서 발표한 SEQUEL(structured English Query Language)에서 유래한 것으로, 실험적 관계 데이터베이스 시스템인 SYSTEM R의 인터페이스로 설계 구현하였으나 현재 사용중인 DBMS인 DB2와 SQL?DS의 데이터 언어로 사용되고 있다.
  • SQL은 IBM뿐만 아니라 다른 DB에서도 채택하여 SQL을 지원하는 많은 관계 데이터베이스 시스템에 서 사용하고 있다. 현재의 표준인 SQL은 1992년 개정된 것으로 SQL/92 또는 SQL-92, SQL2로 불린다.

SQL 언어의 특징

  • 관계 대수와 관계해석을 기초로 한 고급 데이터 언어
  • 이해하기 쉬운 형태로 표현
  • 대화식 질의어로 사용 가능
  • 데이터 정의, 데이터 조작, 제어기능 제공
  • COBOL, C, PASCAL 등의 언어에 삽입
  • 레코드 집합 단위로 처리
  • 비절차적언어

SQL의 주요 기능

  • data 정의: 저장 데이터의 구조와 데이터 항목들간의 관련성을 정의
  • data 검색: 저장된 데이터를 검색
  • data 조작: 데이터를 삽입, 삭제, 수정
  • 접근 제어: 허가되지 않은 사용자의 사용을 제한
  • data 공유: 동시 사용자들의 사용을 허용/방지
  • 대화식 질의
  • data에 대한 다중 뷰 제공
  • 동적 data 정의

테이블(table)과 뷰(view)

  • SQL은 기본적으로 릴레이션(relation:관계) 즉 테이블을 대상으로 수행되며 테이블에는 기본 테이블(base table)과 뷰(view)가 있다.
  • 기본 테이블은 사용자가 데이터베이스를 생성하는 과정이나 응용 프로그램을 위해 작성하는데 반해, 뷰는 독자적으로 만들어지지 못하고 특정 기본 테이블로 부터 유도되어 만들어 지는 가상 테이블이다. 일반적으로 테이블이라함은 기본 테이블을 의미한다.

PL/SQL과 SQL*Plus

  • PL/SQL이란? : SQL에 Application Logic을 추가하여 확장한 oracle의 절차적인 언어(Procedural Language)를 의미함
  • SQL*Plus이란? : SQL 및 PL/SQL 문장을 인식하고 실행시켜주는 Oracle Tool, 사용자와 물리적 Database 간의 Interface를 담당하는 도구, 즉, DBMS와 user간의 통신수단임

구분

특징

SQL

• 프로그래밍 경험이 적거나 전혀 없는 사용자들도 사용

• 비 절차적 언어

• 시스템을 생성하고 유지 관리하기 위해 요구되는 시간을 절약

• 영어와 유사한 언어

PL/SQL

• SQL 데이터 조작과 질의 명령문은 절차적인 code 단위 안에 포함

• error 처리 가능 이식성

• 데이터 캡슐화, 정보 숨김, 객체지향 같은 현대적 소프트웨어 엔제니어링 기능을 제공하여Oracle server와 Tool set에 대한 최신식의 프로그래밍을 가는케함

SQL*Plus

• 파일로부터 SQL 입력을 받음

• SQL 문장을 수정하기 위한 line 편집을 제공

• 환경적인 설정을 제어

• 질의 결과를 기본적인 레포트 형태로 format

• Local과 Remote DATABASE를 access


SQL 문장 종류

QUERY

=DQL(Data Query Language)

• DB에서 원하는 데이터의 검색

SELECT

DDL

(Data Definition Language)

• 데이터 구조의 생성, 변경, 제거

CREATE

DROP

ALTER

DML

(Data Manipulation Language)

• 테이블에 새로운 행의 삽입, 삭제, 수정

• 데이터베이스 객체 이름 변경

• 데이터 및 저장공간 회수

INSERT

DELETE

UPDATE

RENAME

TRUNCATE

DCL

(Data Control Language)

• DB와 구조에서 접근 권한의 부여와 제거

GRANT

REVOKE

TCL

(Transaction Control Language)

• DML에 의한 변경을 관리

COMMIT

ROLLBACK

SAVEPOINT


SQL 문장 작성법

  • SQL 문장은 대소문자를 구별하지 않는다.
  • SQL*Plus에서 SQL 문장은 SQL 프롬프트에 입력되며, 이후의 Line은 줄번호가 붙는다.
  • SQL 명령을 종료할 때는 세미콜론(;)을 반드시 붙여야 한다.
  • 맨 마지막 명령어 1개가 SQL buffer에 저장된다.
  • SQL 문장은 한 줄 이상일 수 있다.
  • SQL 명령어를 구성하고 있는 단어중 어디에서나 분리해도 된다.
  • 한 개의 line에 한 개의 절(select, from, where) 형태로 나누어 입력하는 것을 권한다.그러나 한 개의 단어를 두 줄로 나누어 입력해서는 안된다.
  • keyword는 대문자로 입력하도록 권한다.
  • 다른 모든 단어 즉, table 이름, column 이름은 소문자로 입력을 권한다.
  • keyword는 단축하거나 줄로 나누어 쓸 수 없다.
  • 절은 대개 줄을 나누어 쓰도고 권한다.
  • 탭과 줄 넣기는 읽기 쉽게 하기 위해 사용을 권한다.


데이터를 저장하는 방법

데이터를 프로그램 내부에서 저장하는 방법

  • 프로그램 내부에 데이터 정의와 데이터 값을 모두 포함하는 경우
  • 데이터를 프로그램의 변수에 치환하여 저장하는 방법
  • 문제점
    • 새로운 데이터를 추가할 때마다 프로그램을 수정하고 다시 컴파일 해야 한다.
    • 데이터베이스의 특징인 '계속적인 변화'에 맞지 않다.

파일 시스템을 사용하는 방법

  • 프로그램 내부에 데이터 정의만 포함하고 데이터 값은 별도의 파일에 저장하는 경우
  • 데이터를 프로그램과 분리하여 별도의 파일에 저장하는 방법
  • 문제점
    • 데이터 구조가 바뀔 때 프로그램을 수정하고 다시 컴파일 해야 한다.
    • 같은 파일을 두 개의 프로그램이 공유한다.
    • 데이터베이스의 특징인 '동시 공유'가 불가능하다

DBMS를 사용하는 방법

  • 데이터의 정의와 데이터의 값을 DBMS 소프트웨어가 관리하는 방법으로 앞선 방법들의 문제점을 모두 해결할 수 있다.

파일 시스템과 DBMS의 비교

구분

파일 시스템

DBMS

데이터 정의 저장

데이터 정의: 응용 프로그램
데이터
저장: 파일 시스템

데이터 정의: DBMS
데이터 저장: 데이터베이스

데이터 접근 방법

응용 프로그램이 파일에 직접 접근

응용 프로그램이 DBMS 파일 접근을 요청

사용 언어

자바, C++, C

자바, C++, C 등과 SQL

CPU/주기억장치 사용

많음

적음


DBMS의 장점

구분

파일 시스템

DBMS

데이터 중복

데이터를 파일 단위로 저장하므로 중복 가능

DBMS 이용하여 데이터를 공유하기 때문에 중복 가능성 낮음

데이터 일관성

데이터가 중복 저장되어 일관성이 결여됨

중복 제거로 데이터의 일관성이 유지됨

데이터 독립성

데이터 정의와 프로그램의 독립성 유지 불가능

데이터 정의와 프로그램의 독립성 유지 가능

관리 기능

보통

데이터 복구, 보안, 동시성 제어
데이터
관리 기능 등을 수행

프로그램 개발 생산성

나쁨

짧은 시간에 프로그램을 개발할 있음

기타 장점

보통

데이터 무결성 유지, 데이터 표준 준수 용이



데이터베이스와 데이터베이스 시스템



 데이터, 정보, 지식


- 데이터가 모이면 정보가 되고 정보가 모이면 지식이 된다.

- 데이터: 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값

- 정보: 데이터에 의미를 부여한 것

- 지식: 사물이나 현상에 대한 이해


 일상생활의 데이터베이스

    - 데이터베이스는 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것

    < 데이터베이스의 활용 분야> 

     분야

     활용

     생활과 문화

    • 기상정보: 날씨 정보를 제공
    • 교통정보: 교통상황 정보를 제공
    • 문화예술정보: 공연이나 인물에 관한 정보를 제공

     비즈니스

    • 금융정보: 금융, 증권, 신용에 관한 정보를 제공

    • 취업정보: 정부와 기업의 채용 정보를 제공

    • 부동산정보: 공공기관이나 민간의 토지, 매물, 세금 정보를 제공

     학술정보

    • 연구학술정보: 논문, 서적, 저작물에 관한 정보를 제공

    • 특허정보: 특허청의 정보를 기업과 연구자에게 제공

    • 법률정보: 법제처와 대법원의 법률정보를 제공

    • 통계정보: 국가기관의 통계정보를 제공


     데이터베이스 개념

    1. 통합된 데이터(integrated data)

    - 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장된 데이터를 의미

    - 각자 사용하던 데이터의 중복을 최소화하여 중복 저장으로 인한 데이터 불일치 현상 제거

    2. 저장된 데이터(stored data)

    - 문서로 보관된 데이터가 아니라 디스크 같은 컴퓨터 저장장치에 저장된 데이터를 의미

    - 컴퓨터 프로그램을 이용하여 디스플레이하거나 인쇄물로 출력 가능

    3. 운영 데이터(operational data)

    - 조직의 목적을 위해 사용하는 데이터

    - 업무를 위한 검색을 할 목적으로 저장된 데이터

    - 조직의 목적과 관계없이 저장된 데이터나 단순 입출력 데이터 같이 임시로 저장된 데이터는 운영 데이터에 속하지 않는다.

    4. 공용 데이터(shared data)

    - 한 사람 또는 한 업무를 위해 사용되는 데이터가 아닌 공동으로 사용되는 데이터

    - 데이터는 어느 순간이라도 둘 이상의 프로그램 또는 여러 사람이 동시에 사용할 수 있다.


     데이터베이스 특징

    1. 실시간 접근성(real time accessibility)>

    - 데이터베이스는 실시간으로 서비스된다.

    - 실시간이란 사용자가 요청하는 순간에 실제 데이터를 서비스하는 것을 말한다.

    2. 계속적인 변화(continuous change)

    - 데이터베이스의 저장된 내용은 어느 한 순간의 상태를 나타내지만,

    - 데이터 값은 시간에 따라 항상 바뀐다.

    - 삽입(insert), 삭제(delete), 수정(update) 등의 작업으로 바뀐 데이터 값을 저장한다.

    3. 동시 공유(concurrent sharing)

    - 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다.

    - 동시 병행이라고도 한다.

    - 데이터베이스에 접근하는 사용자 데이터 요청 프로그램이 동시에 여러 개 존재한다는 의미이다.

    4. 내용에 따른 참조(reference by content)

    - 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아닌 데이터 값에 따라 참조된다.

    - 사용자가 원하는 데이터를 얻기 위해 데이터 값을 사용하여 조건을 제시하면 데이터베이스는 이에 해당하는 데이터를 검색해준다.


     데이터베이스 시스템의 구성

    - 각 조직에서 사용하던 데이터를 모아서 통합하고 서로 공유하여 생기는 장점을 이용하는 시스템

    - 데이터베이스 관리시스템(DBMS, Database Management System), 데이터베이스, 데이터모델이 있다.

    - DBMS: 사용자와 데이터베이스를 연결해주는 소프트웨어로 주기억장치에 상주한다.

    - 데이터베이스: 데이터를 모아둔 토대

    - 데이터모델: 데이터가 저장되는 기법에 관한 내용으로, 눈에 보이지 않는 논리적인 개념




    + Recent posts