본문 바로가기

학원/복기

0428 - Database, DBMS, SQL

DBMS
• 데이터베이스 관리 시스템(Database Management System)
• 대용량의 데이터를 편리하게 저장하고 효율적으로 관리, 검색, 수정, 삭제(CRUD)할 수 있는 환경을 제공해 주는 소프트웨어를 데이터베이스 관리 시스템(DBMS)이라고 한다.
– 데이터를 공유하여 정보의 체계적인 활용이 가능
– 응용프로그램과 데이터베이스의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게끔 관리해 준다
   → DBMS는 데이터베이스를 효율적으로 관리할 수 있도록 중재자의 역할을 한다.

• 대표적인 DBMS 제품들
– Oracle, MS-SQL, mySQL, Informix, Sybase, DB2 등

DBMS(오라클)은 데이터베이스를 효율적으로 관리해주고, 서버의 역할도 한다. 
관계형-DBMS : 데이터베이스 안의 요소들이 관계를 맺고 있다.

 

 

관계형 DBMS (Relational DBMS)
• 데이터베이스의 기본 데이터 저장 단위인 테이블과 테이블간의 관계를 이용한다
• 테이블은 행(Row)와 열(Column)의 2차원 행렬 구조를 가진다
• 행(Row)은 파일시스템의 레코드에 해당
• 하나의 Row는 서로 구분되는 속성으로 구성되는데 사원번호, 사원명, 직급, 급여, 부서번호 등이 Column에 해당

 

관계형 DBMS

 

저장의 단위: 테이블
처리 단위: 행 단위 → 행으로 삽입, 삭제, 검색 할 수 있다.
행 단위로 처리하긴 하지만 실제 값을 가져다 쓸 땐 속성값(Coloumn)을 쓴다.

 

데이터베이스
: 필요한 데이터의 중복을 최소화하고 구조화하여 검색과 갱신을 효율적으로 할 수 있도록 모아놓은 데이터들의 집합구조 

  • 영속적(지속적)으로 유지 관리해야 할 유용한 데이터의 집합
    • –  데이터베이스에 저장된 데이터는 검색뿐만 아니라 수정, 삭제까지 용이하 여야 한다.
    • –  예) 학사관리를 위한 데이터들, 도서관리를 위한 데이터들 등...
  • 데이터를 저장하기 위한 가장 원시적인 방법으로 파일 시스템 존재
    • –  대용량의 데이터를 관리하기에는 역부족
    • –  데이터 공유가 어려우며, 하나의 파일은 하나의 응용만을 위해 사용
    • –  다중 사용자 환경을 지원하지 못함
    • –  보안에취약

 

데이터베이스의 목적  
- 데이터 중복의 최소화
- 데이터의 공유
- 데이터의 보안 유지
- 데이터 무결성 유지 → 데이터에 결점이 있으면 안된다 
- 데이터의 독립성

데이터베이스 용어 혼용
- 데이터베이스 관리시스템 (DBMS)
: 데이터 집합인 데이터베이스를 운영하는 소프트웨어.
- 실제로 DBMS 와 데이터베이스를 혼용하여 사용함

 

• 관계형 데이터 모델이란?
: 다음과 같은 3가지 구조로 실세계의 모든 업무체계를 표현 가능한 개념.
1. 개체 ( Entity ) – 시스템하고자 하는 사물,사건. → 테이블로 만든다 
2. 속성 ( Attribute ) – 개체의 특성을 표현하는 방법.
3. 관계 ( Relationship ) – 개체간의 연관성.

 

 

•컬럼에는 PK( primary key)라는 제약조건을 반드시 설정해줘야 한다. 
→ 해당 컬럼에는 중복된 값들이 저장될 수 없다. 
•FK(foregin key) 이용해 다른 테이블의 PK( primary key)제약조건이 걸린 컬럼값을 참조해서,
잘못된 데이터가 저장되는 것을 방지한다. 
→FK(foregin key)제약조건을 설정하기 위해서는  PK( primary key)제약조건이 반드시 설정 되어있어야 한다.

 

 

SQL 이란?
- Structured Query Language.
- 관계형 데이터베이스의 조작과 관리에 사용하는 데이터베이스 언어

SQL 종류?
1. ANSI-SQL : 미국의 무역 및 통신표준을 개발하는 ANSI에서 만든 표준 규격 SQL문. 
89, 92, 99 규격이 있음.
2. T-SQL : MS사에서 만든 자사의 DB를 최적화하기 위한 SQL
3. PL-SQL : 오라클에서 만든 구조적 프로그래밍 특징을 갖는 SQL


SQL 문장
-★ SELECT★  : 데이터베이스로부터 데이터를 검색 
-★INSERT/UPDATE/DELETE★/MERGE : 데이터베이스 내의 테이블에 새로운 행을 입력하거나, 기존의 행을 수정 또는 삭제하는 명령어 → 데이터 조작어 (DML : Data Manipulation Language)  **MERGE는 ORACLE에서만 제공 (표준 SQL은 아님)
-CREATE/ARLTER/DROP : 테이블을 생성,변경,삭제하는 명령어로 데이터 정의어(DDL : Data Definition Language)라고 함
-COMMIT/ROLLBACK/SAVEPOINT : DML 문장에 의한 변경 사항을 관리하거나, 변경사항을 하나의 논리적 트랜잭션으로 포함시키는 명령어
-GRANT/REVOKE : 데이터베이스와 데이터베이스를 구성하는 구조(테이블, 뷰 등)에 접근 권한을 부여하거나 회수하는 명령어 → 데이터 제어어(DCL : Data Control Language)