2014년 4월 13일 일요일

[DataBase] DML 언어

Select 문



  •  테이블로부터 데이터를 조회할 때 사용된다. 기본 패턴은 아래와 같다.
    • Select 컬럼1, 컬럼2, ... From 테이블1, 테이블2, .... Where 조건1, 조건2, ...;
      • 예) select last_name, phone_number from student where num <= 10;
  • Where 부분은 생략할수 있다. 생략하게 된다면 선택된 컬럼의 전체를 조회한다.
  • 필요에 따라 뒤에 Group By, Order By절을 붙여 쓸수 있다.


Insert 문



  •  테이블에 새로운 데이터를 넣을 때 사용하는 것으로, 그 형식에는 다음과 같이 두 가지 유형이 있다.


    1. Insert into 테이블1 (컬럼1_1, 컬럼1_2, ...) values (컬럼1_1 값, 컬럼1_2 값,...)
    2. Insert into 테이블1 values (컬럼1_1 값, 컬럼1_2 값,...)

  • 위의 두가지 형태로 쓸 수 있다. 두가지의 차이점은 컬럼값을 지정하느냐 마느냐 차이인데 위와 같이 쓰게 되면 해당 컬럼의 이름과 같은 위치에 놓인 컬럼값을 해당값으로 입력이되고 아래와 같이 쓸 경우는 쓰고자 하는 테이블에서의 컬럼의 수 만큼의 컬럼 값을 넣어주게 되면 컬럼의 순서대로 입력된다.


  • Select문을 응용하여 Insert문을 사용할 수 있다. 제3테이블로부터 값을 가져와 삽입을 하는 방법이다.
    • Insert into 테이블1 (컬럼1_1, 컬럼1_2, ...) select 컬럼2_1, 컬럼2_2, ... from 테이블2 where 조건1, ...;
  • 위에서의 입력할 컬럼들의 값을 테이블로부터 읽어와 입력할 수 있다.

Update 문



  •  기존에 테이블에 저장되어 있는 데이터를 새로운 값으로 변결할 때 사용하며, 그 형태는 다음과 같다.
    • Update 테이블명 set 변경컬럼1 = 변경하고자 하는 값, 변경컬럼2 = 변경하고자 하는 값, ... wherer 조건절..;
  • select문과 마찬가지로 where문을 생략할 수 있으며 생략하게 된다면 선택된 컬럼의 전체를 변경하게 된다.

Delete 문



  • 데이터를 삭제할 때 사용하며, 그 형식은 다음과 같다.
    • Delecte from 테이블 where 조건...;

Commit 문


  •  데이터 변경작업을 한 뒤,  Commit을 실행 해줘야만 변경된 데이터들이 실제 반영(저장)이 된다. 
    • Commit

Rollback 문


  •  Commit과 반대되는 개념이다. 변경된 데이터들을 변경 이전 상태로 되돌려준다. 즉 Commit 이전의 모든 명령을 취소시켜주는 역활을 한다.
    • Rollback

[DataBase] SQL 특징 및 구성

SQL의 특징


  • 배우고 사용하기 쉬운 언어이다.
  • 프로그래밍 언어들 처럼 절차적인 개별 단위로 처리되기보다는 데이터의 집합 단위로 처리된다. 또한 실제 데이터들이 어떻게 처리되는지에 대한 세부적인 과정은 SQL문장을 작성하는 사람은 신경 쓰지 않아도 된다는 장점이 있다.(절차적 언어가 아닌 선언적 언어이다.)
  • 공인된 기관의 표준 SQL 문법이 존재한다. 즉 DBMS의 종류에 얽매이지 않고 사용할 수 있는 장점이 있다.



데이터 조작하기(DML)



  • Data Manipulation Lanuage(데이터 조작어). 이것은 데이터를 조회, 저장, 삭제할 때 사용되는 SQL 문장들을 말한다. 기본적으로 조회, 삭제, 저장이라는 3가지 패턴으로 분류할수 있다. 여기서 저장은 입력,수정으로 나뉘어 4가지로 나눌수 있다. 어디까지나 "기본"적으로 나눈 것이다.

    • 데이터의 조회 : SELECT
    • 데이터의 삭제 : DELETE
    • 데이터의 저장 : INSERT, UPDATE


  • 이외에도 COMMIT,ROLLBACK 등의 명령어 종류도 존재한다.

객체 조작하기(DDL)



  • Data Definition Language(데이터 정의어). 데이터베이스 객체들을 생성하는 데 사용되는 SQL문이다. 데이터베이스 객체에는 데이터베이스, 인덱스, 테이블, 뷰, 트리거 등이 있으며 이를 생성하는 데도 SQL 문이 사용되는데, 이때 사용되는 SQL문장들을 DDL이라고 한다. CREATE, DROP,ALTER, TRUNCATE 문장이 존재한다.

데이터 제어하기(DCL)



  • Data control Language(데이터 제어어). 데이터베이스에 있는 데이터에 접근을 제어하는 언어로 GRANT REVOKE문이 있다.


[DataBase] 관계형, 객체지향형, 객체관계형데이터베이스

관계형 데이터베이스



  • 가장 대표적인 데이터 베이스 시스템.


장점

  • 2차원 구조의 모델을 기반으로 한다.
    • 우리가 흔히 보는 행,열로 되어있는 구조를 말한다. 때문에 처리하기 편리하다.
  • 데이터의 무결성, 트랜잭션 처리 등 데이터베이스 관리 시스템으로써의 기본적인 기능면에서 뛰어난 성능을 보여주었다.
  • 질의어(Query Language)를 사용한 데이터 접근 방법이다.
    • 일정한 패턴에 맞게 질의하고자 하는 조건들을 나열하면 찾고하 하는 정보를 검색할수 있다.

단점

  • 확장성이 부족하다.
  • 복합적 정보표현이 어렵다.

객체지향형 데이터베이스



  • 기존의 관계형 데이터베이스로부터 새로운 요구사항으로 탄생하게되었다. 사용자 정의 데이터, 멀티미디어 데이터 등에대한 저장관리의 필요, 즉 C++,Java와 같은 객체지향 기술을 데이터베이스에 접목하려는 시도가 있었다. 아래와 같은 장점을 가지고 있음에도 불구하고 트랜젝션, 백업, 복구 등 기존의 데이터베이스에 비해서 낮은 성능을 보여줘 많은 사랑을 받지 못하였다.

장점

  • 사용자가 정의한 사용자 정의 타입을 지원한다.
    • 기본형 데이터타입을 뛰어넘어 다양한 형태의 데이터들을 다룰 수 있다.
  • 비정형 복합 정보의 모델링이 가능하다.
    • 비정형 정보란 일반적인 관계형 데이터베이스에서 지원되는 날짜, 문자, 숫자 등의 데이터들을 일컫는 정형정보와 반대되는 개념이다. 멀티미디어,이메일 등
  • 객체들 사이의 참조 구조를 이용한 접근이 가능하다.
  • 90년대에 등장한 많은 객체지향 프로그래밍 언어들과 객체지향 데이터베이스의 스키마 구조가 유사하다.

단점

  • 기본적인 데이터베이스 기능에 있어 안정성과 성능이 떨어진다.

객체 관계형 데이터베이스



  • 위의 두가지 형태의 데이터베이스에서 장점만을 합쳐논 데이터베이스이다. 관계형 모델을 기반으로 객체지향적으로 구현한것이다.