728x90
반응형

1. DBMS

 

DBMS(DataBase M,anagement System)는 데이터베이스를 응용 프로그램이 직접 동작하는게 아니라 별도의 소프트웨어를 통해서 조작하게 되는데 이 소프트웨어를 DBMS라고 합니다. 처리할 데이터 양이 많아짐에 따라 데이터를 적절하고 효율적으로 관리할 필요가 생겨 결국 데이터를 관리하기 위한 체계적인 시스템을 개발할 필요가 있었는데 그게 DBMS입니다.

 

관계형데이터베이스

- 가장 대표적인 DB 시스템

- 2차원 구조 모델을 기반으로 합니다.

- 데이터 무결성, 트랜잭션 처리 등 DBMS의 기본적인 기능면에서 뛰어난 성능을 보여줍니다.

- 질의어(Query Language)를 사용한 데이터 접근 방식입니다.

 

 

객체지향형 데이터베이스

좀 더 복잡한 데이터(사용자 정의 데이터, 오디오, 비디오 등의 멀티미디어 데이터 등)에 대한 저장 관리의 필요성으로 발생된 모델입니다.

 

- 사용자 정의 타입을 지원합니다.

 

- 비정형 복합 정보 모델이 가능합니다.

  정형 : 날짜, 문자, 숫자

  비정형 : 멀티미디어, 이메일, 문서 등

 

- 객체들 사이의 참조 구조를 이용한 접근이 가능합니다.

- 객체지향 프로그래밍 언어들과 스키마 구조가 유사합니다.

 

단점으론 DB의 기본 기능인 트랜젝션 처리, 백업 및 복구 등의 기능이 기존 관계형DB에 훨씬 미치지 못하는 성능을 보여줍니다.

 

 

객체관계형 데이터베이스

위에서 언급한 두 가지 DB의 장점만을 살린 모델입니다.

 

- 사용자 정의 타입을 지원합니다.

- 참조 타입을 지원합니다.

- 중첩 테이블을 지원합니다.

- 대단위 객체의 저장, 추출이 가능합니다.

- 객체 간의 상속 관계를 지원합니다.

 

2.SQL

 

SQL이란 구조화된 언어입니다. 데이터베이스에서 데이터를 조회, 입력, 수정, 삭제, 저장하는데 사용되는 언어를 말합니다. DB에는 데이터들이 물리적인 파일형태로 저장되어 있는데 DBMS는 데이터와 관계된 일련의 작업을 처리합니다. 특히 데이터의 조회, 저장, 삭제와 같은 작업은 SQL을 통해 처리합니다. 구조화 언어이기 때문에 틀과 패턴이 존재하며 일반 언어처럼 처리 과정을 일일이 기술 하지 않으며 표준 SQL문법이 존재하기 때문에 DBMS의 종류에 얽매이지 않고 사용할 수 있는 장점이 있습니다.

 

SQL의 역할

역할에 따라 DML과 DDL로 구분됩니다.

-DML(데이터 조작어, Data Manipulation Langue)

   데이터를 추출, 저장, 삭제 등 데이터를 조작하는 것에 관한 것

-DDL(데이터 정의어, Data Definition Language)

   데이터가 저장되는 테이블이나 각종 객체들을 생성하는 역할

-DCL(데이터 제어어, Data Control Language)

   DB에 있는 데이터에 접근을 제어하는 언어

 

 

데이터 조작하기(DML)

-데이터 조회 : SELECT

-데이터 삭제 : DELETE

-데이터 저장 : INSERT(신규 데이터 입력) / UPDATE(기존 데이터 수정)

 

SELECT : 데이터 조회 시 사용

컬럼(Column) : 엑셀 시트에서 가로로 A, B, C 등으로 구성된 셀들을 의미합니다.

로우(Row) : 테이블의 세로입니다.

SELECT 컬럼1, 컬럼2
 FROM 테이블1, 테이블2
WHERE 조건들;

 

WHERE 절은 필터 역할을 수행하며 생략이 가능합니다.

SELECT와 FROM은 생략이 불가능합니다.

2020년 이후에 입사한 직원들 이름을 조회하는 SQL문을 작성한다면?

SELECT last_name, first_name
FROM employees
WHERE hire_date >= '2020-01-01';

 

 

INSERT : 테이블에 새로운 데이터를 넣을 때 사용합니다

INSERT INTO 테이블명1 (컬럼1_1, 컬럼2_2)
VALUES (컬럼1_1값 , 컬럼1_2값)

컬럼 리스트와 컬럼 값의 순서 및 개수 일치
INSERT INTO 테이블명1
VALUES (컬럼1_1값, 컬럼1_2값)

테이블의 모든 컬럼에 값 입력
INSERT INTO 테이블명1 (컬럼1, 컬럼2)
SELECT 컬럼2_1, 컬럼2_2
FROM 테이블2
WHERE ...

제3의 테이블에 있는 데이터를 선택해서 새로운 데이터를 넣는 형태

 

UPDATE : 기존 테이블에 저장되어 있는 데이터를 새로운 값으로 변경할 때 사용됩니다.

UPDATE 테이블명
SET 변경 컬럼1 = 변경하고자 하는 값,
    변경 컬럼2 = 변경하고자 하는 값

WHERE 조건절

 

WHERE 절 생략 시 테이블 데이터 전체 변경

WHERE 절 명시해서 조건에 일치하는 데이터만 변경 가능 

 

 

DELETE : 데이터를 삭제할 때 사용

DELETE [FROM] 테이블
WHERE 조건

 

테이블의 로우를 제거합니다.

FROM은 생략 가능합니다.

WHERE문을 통해 특정 조건에 맞는 데이터만 삭제 가능합니다.

WHERE문 삭제시 테이블 전체 데이터가 삭제 됩니다.

 

 

객체 조작하기(DDL)

데이터 베이스 객체(데이터베이스, 테이블, 인덱스, 뷰, 트리거 등) 들을 생성하는데 사용되는 SQL문 입니다.\

-CREATE, DROP, ALTER, TRUNCATE

 

CREATE : 데이터 베이스 객체를 생성할 때 사용합니다.

CREATE 객체종류 객체명

 

생성 객체에 따라 그 용법이 다릅니다.

기본 구조는 위와 동일합니다.

EX..

CREATE TABLE 테이블명
CREATE INDEX 인덱스명

 

DROP : 이미 생성된 객체들을 삭제할 때 사용합니다.

DELETE는 테이블 상의 데이터 삭제 시 사용되고 DROP은 객체 자체를 데이터베이스에서 영구히 없앨 때 사용합니다.

DROP 객체종류 객체명

 

객체에 따라 그 용법이 다릅니다.

기본 구조는 위와 동일합니다.

 

ALTER : 기존 생성된 객체를 변경할 때 사용합니다.

테이블을 생성해서 사용하는 중 컬럼을 추가 하는 등 테이블 구조를 변경해야 할 경우 사용합니다.

기본 골격은 CREATE 와 DROP과 비슷합니다.

 

TRUNCATE : DELETE 문과 동일한 역할을 수행합니다.

즉 , 테이블에 있는 데이터를 삭제할 때 사용합니다.

DELETE문과 차이점은 TRUNCATE 문을 사용하여 데이터를 삭제할 경우 ROLLBALCK을 사용하여 데이터를 복구할 수 없습니다.

 

 

데이터 접근 제어(DCL)

일반적으로 SQL문장은 DDL과 DML로 구분합니다. 이 두가지에 DCL을 추가하기도 하는데 DCL에는

-GRANT : 접근제어나 어떤 작업을 허용하는 권한을 주는 역할

-REVOKE : 허용된 권한을 없내는 역할

 

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기