본문 바로가기

국비필기노트/DBMS_Oracle

데이터베이스(DBMS)_데이터베이스의 정의, SQL

▶자료와 정보

 

"자료"라고 하는 데이터를 다루는 것이다.

현실 세계에서 관찰이나 측정을 통해 수집한 단순한 사실이나 값을 나타낸다.

이러한 자료를 기반으로 하여 우리는 정보(information)을 가져올 것인데 이는 의사결정에 도움을 줄 수 있는 유용한 형태로 자료를 가공(처리)해서 얻을 수 있는 결과를 의미한다.

 

예를들면 오늘 비가 왔다면 단순한 "오늘 비가 왔다" 라는 것이 자료가 될 수 있으며 정보는 "오늘은 어제 혹은 작년 대비하여 비가 적게 왔다."가 정보가 될 수 있다.

 

이러한 정보를 얻기 위해서는 필수적으로 자료가 있어야하며 이러한 자료를 저장하는 곳이 데이터베이스이다.

 

▶데이터베이스란?

 

정보를 저장하는 하나의 방법이다.

보통 컴퓨터의 데이터를 저장하는 방법으로 흔히 생각하는 것은 파일이다.

메모리에 저장하는 것에 비하면 복잡하지만 영구적으로 저장이 된다는 장점이 있다.

 

그러나 파일에 대한 입출력은 동시에 한번밖에 되지 않는다.

만약 은행의 입출금 내역을 저장하는데 파일을 사용하면 A에서 돈을 뽑을 때 B에서는 돈을 뽑지 못한다라는 치명적인 단점이 있고 파일의 저장위치를 까먹는다던지 중간에 프로그램이 종료될경우 파일이 삭제된다던지에 대한 단점이 존재한다.

 

또한 데이터베이스가 나오기 전 파일을 저장할 때 하나의 프로그램이 아닌 여러 프로그램을 사용하여 데이터를 처리했는데 이는 데이터의 오류,누락,중복등의 문제를 야기시켜 데이터를 한 곳에서 관리하기 위한 프로그램이 필요했고 그래서 데이터베이스가 개발되었다.

 

데이터베이스는 파일을 이용하여 데이터를 저장하지만 중간에 하나의 논리적 계층을 두어 이 파일을 "관리"한다.

 

또한 어느 한 조직체의 여러 응용 시스템들이 공동으로 사용할 수 있도록 통합하고 저장한 운영데이터의 집합으로서 공동의 목적을 지원하기 위한 서로 관련된 자료들의 모임이라고 할 수 있다.

 

 

▶DBMS(DataBase Management System)

 

데이터 조작과 관리를 극대화한 데이터베이스의 시스템 소프트 웨어라고 할 수 있다.

 

데이터베이스를 통한 데이터 관리란 여러 목적으로 사용할 데이터의 접근, 관리 등의 업무르 DBMS가 전담하는 것을 의미한다.

DMBS는 데이터베이스 언어를 가지고 있으며 이를 통해 데이터의 삽입/ 삭제/ 수정을 할 수 있다.

 

 

▶DBMS 종류

 

MySql, MongoDB, Oracle, Tibero, MSSql, MariaDB, Postgresql, sqlite, h2

 

▶DBMS 기능

 

데이터의 무결성 유지

DB 데이터는 실세계를 적용하는 규칙을 항상 만족해야한다.

이는 DBMS에 만약 회원의 이름,휴대폰번호,직업 등 "실세계"의 데이터들을 적용을 할 수 있어야하며, 서로 다른 부분에 있는 두 개의 데이터가 서로 모순되지 않아야하는 데이터의 일관성을 유지할 수 있어야한다.

 

▶DBMS 3가지 특성

 

-. 데이터의 논리적 독립성

한 속성에 가해진 변경이 동일한 테이블에서 다른 속성에 영향을 주지 않는 것을 의미한다.

응용 프로그램에 영향을 주지 않고 데이터 구조를 변경할 수 있게 하는 것

 

-. 참조 무결성과 데이터 무결성

응용프로그램 개발 시 무결성 제약 조건을 신경쓰지 않아도 된다.

 

-. 비정규 질의 

사용자는 작업을 실행하는 방법을 명시하지 않고도, 데이터베이스에게 어떤 데이터를 조회할 것인지를 명령할 수 있다.

 

 

▶데이터베이스 모델의 종류

 

-. 계층 데이터 모델

나뭇가지 형태의 트리(tree)구조를 활용하여 데이터의 관련성을 계층별로 나누어 부모자식같은 관계를 정의하고 데이터를 관리한다.

 

-. 망(네트워크형) 데이터 모델

그래프(graph)구조를 기반으로 자식체계가 여러 부모를 가질 수 있다.

 

-. 객체지향형 데이터모델

객체지향 프로그래밍처럼 데이터를 독립된 객체로 구성하고 관리할 수있는 기능이 있으나 객체지향형 모델 개념을 완전히 데이터베이스에 적용하는 것은 쉽지않아 해당 데이터모델을 사용하는 상용 DBMS는 많지않다.

 

-. 관계 데이터 모델(Relational Data Model)

"데이터의 관계"에 초점을 두는 모델로서 개체 집합에 대한 속성 관계를 표현하기 위하여 개체를 테이블(table)로 사용한다.

각 데이터의 독립 특성을 카테고리로 규정하고 데이터를 묶는 방식으로 개체,속성,관계라는 핵심 구성요소를 통해 데이터를 관리하며 현대에서 가장 많이 사용되는 관계형 데이터베이스의 바탕이 되는 모델이다.

 

▶관계형 모델의 구성요소

 

테이블(table), 열(column), 행(row) 크게 3가지로 구성된다고 말할 수 있다. 

관계형 데이터베이스에서의 관계란 행과 열의 특성에 맞추어 데이터를 저장한 테이블 하나하나를 의미한다. 여러 테이블의 구성과 관계를 잘 규정하고 관리하는 것이 관게형 데이터베이스에서 데이터를 관리하는 핵심이다.

 

▶관계형 데이터베이스(RDBMS)

 

관계형 데이터 모델 개념을 바탕으로 데이터를 저장, 관리하는 데이터베이스를 의미한다.

데이터베이스(DBMS)에 Relational을 앞에붙혀 RDBMS라고 칭하며 실무에서 이야기하는 DB또는 데이터베이스의 대부분이 DBMS라고 보아도 무방하다.

 

▶SQL

 

SQL(Structured Query Language)는 관계형 데이터 베이스 언어로서 데이터베이스와 대화하기 위해 특별히 디자인된 언어라고 할 수 있다.

 

 

 

데이터베이스는 위와같은 형태로 값을 저장하는데 엑셀과 몹시 비슷하게 생겼다고 말할 수 있다. 엑셀과 동일한 테이블이 있고 행과 열이 따로있어 SQL의 구성요소인 데이터의 삽입, 삭제, 갱신, 질의, 보호(보안) 명령문로 데이터를 처리한다.

 

쉽게말하면 

student라는 테이블에다가 원하는 정보를 저장하고 싶을 떄에는 student 라고 하는 테이블에다가 데이터를 "삽입(Insert)"을 해주고

 

만약 최다영학생이 전학을 갔다면 해당 학생의 학생의 데이터를 "삭제(Delete)" 시켜주고

 

김유신학생의 전화번호가 수정이 되었다면 "갱신(Update)"으로 처리를 해 주고

 

최다영학생이 전학을 가서 반 총 인원이 15에서 14명으로 변경이 되었고 그 학번 중  2006이라고 시작하는 학생들을 조회해오고자하면 "선택(Select)를 사용하여 값을 가지고 온다는 것이다.

이러한 조작하는 과정,방법을 통틀어서 SQL문이라고 한다.

 

SQL문은 크게 4가지로 분류가 되며 간단하겐 CRUD라고 한다.

C- creat/ R - read/ U - update/ D - delect

 

이런 데이터들을 조작을 하는 Query Language라고 하며 SQL문 혹은 쿼리문이라고 부르다.

동료 개발자가 Select Query문이라고 한다면 데이터를 조회하는 곳을 본다는 말이고 Delete Query 라고 한다면 데이터를 삭제하는 코드를 본다는 말로 꼭 이해를 해야하며 실무에서 자연스럽게 쓰여지는 말이다.

 

▶SQL 기능에 따른 분류

 

-. 데이터 정의어(DDL)

테이블이나 관계의 구조를 생성하는데 사용하며 Creat, Alter, Drop문 등이 있습니다.

 

-. 데이터 조작어(DML)

테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용하며 select, insert, delete, update 문 등이 있다. 

 

-. 데이터 제어어(DCL)

데이터의 사용 권한을 관리하는데 사용하며 grant, revoke문 등이 있다. 

이 DCL은 최초에 한번정도만 사용을 하고 그 다음엔 크게 사용을 하지 않는다.