데이터베이스에서 수행할 수 있는 데이터 조작
- 검색
- 신규 데이터 등록
- 기존 데이터 갱신(등록)
- 기존 데이터 제거
관계형 데이터베이스 (Relational DataBase)
- 관계 : 2차원 표를 표기할 때 사용하는 단어. 엑셀, 구글독스와 같은 스프레드시트 형태
- 관계형 데이터베이스 : 데이터를 2차원 표를 사용해 관리하는 데이터베이스
- 장점 : 사람들이 자연스럽고 직관적으로 이해하기 쉬운 형식으로 데이터를 관리할 수 있음
2차원 표를 사용하는 이유
데이터베이스가 등장하기 전부터 텍스트파일, csv를 사용해 원시적인 형태로 데이터를 관리했음.
- 역사적 관점 - 소프트웨어를 사용해 2차원 표를 표현하는 것이 가능한지 여부를 이전에는 명확하지 않은 상태였음. 가능하다는 것을 관계형 데이터베이스를 이용해 보여줌.
- 기능적 관점 = 관계형 데이터베이스가 제공한 2차원 표를 사용한 데이터 관리 방법은 매우 획기적인 것이었음.
관계형 데이터베이스의 뛰어난 이점
- 프로그래밍 언어를 사용하지 않아도 데이터를 조작할 수 있다는 것
- 이를 가능하게 한 것이 SQL이라는 언어
SQL(Structured Query Language)이란
- 관계형 데이터베이스가 데이터를 조작하기 위해 준비한 언어
- 통상적인 프로그래밍 언어에 사용되는 반복문, 조건문을 사용하지 않아도 데이터 조작을 할 수 있음
SQL의 기본 조작 명령어
SELECT
: 검색INSERT
: 등록UPDATE
: 갱신DELETE
: 제거
테이블
- 관계형 데이터베이스에서 2차원 표를 테이블이라 부름
- 데이터를 관리하기 위한 유일한 단위로, ‘어떤 테이블에 어떤 데이터를 포함하는가’ 는 시스템의 기능을 좌우하는 중요한 의미가 있음
- 테이블을 어떻게 설계해야 하는지에 대해서도 기본적인 이론이 있음.
- 예 )
- 1개의 테이블에 많은 정보를 채워 넣는다고 하면 정보의 정합성을 유지 관리하기가 어려움
- 데이터를 너무 엄격하게 분산시키면 성능이 나빠짐
열과 행
- 열
column
: 가로축 - 행
row
: 세로축 - 교차부분 : 엑셀에서 cell이라 부름
DBMS와 데이터베이스의 차이
- 데이터베이스 기능을 제공하는 소프트웨어 :
DBMS(DataBase Management System)
- 데이터베이스는 기능이나 구조를 나타내는 추상적인 개념
- DBMS는 그것을 실현하기 위해 작성된 구체적인 소프트웨어를 가리킴
- Oracle이나 MySQL같은 제품은 DBMS임.
소프트웨어와 데이터베이스의 관계
- 시스템은 다른 여러가지 소프트웨어와 조합해서 만들어야 하는데, 이 작업을 SI(System Integration)이라 부름
- 이때 사용되는 소프트웨어는 3가지로 구분됨
애플리케이션
미들웨어
운영체제
- 위 3가지는 계층성이 있으며, 한 레이어의 소프트웨어가 동작하지 않으면 상위 레이어의 소프트웨어는 설치해도 동작하지 않거나 설치를 할 수 없는 제약이 발생함
- DBMS는 미들웨어에 위치함.
미들웨어
는 계층적으로 위치가 중간이라는 의미도 있고, 기능적으로 양쪽의 성질을 겸비해서 갖추고 있다는 의미도 있음
운영체제
- 시스템을 동작하게 하기 위한 일종의 토대가 되는 기능을 제공하는 소프트웨어
- OS의 종류 : windows, linux, unix
미들웨어
- 중간 소프트웨어. 데이터베이스가 미들웨어에 속함. 데이터베이스는 OS에서 동작함.
OS
와DBMS
조합을 선택할 때 고려해야할 것 : 예산, 제품 기능, 개발자와 운용자의 기술조합linux
와unix
계열은 동작이 비슷해서os
를 변경해도 다루는 방법이 비슷하지만,windows
는 조작 방법이 매우 다름.- 예)
SQL server
는windows
이외의 os와 조합 불가능.SQL server
에는Windows
이외의 OS에 대응하는 구현물이 존재하지 않기 때문- 이유 : 기술적인 이유가 아닌 비즈니스 전략에 따른 것.
SQL server
와Windows
는 모두 MS에서 개발, 판매되는 제품
- 이유 : 기술적인 이유가 아닌 비즈니스 전략에 따른 것.
- 마이그레이션
Migration
:OS
-DBMS
의 조합을 다른 조합으로 시스템을 변경하는 것OS
만 변경 ->DBMS
의 수정은 적음DMBS
만 변경 ->DBMS
의 수정이 많음OS
와DBMS
동시 변경 -> 가장 위험함
애플리케이션
- 업무용 기능을 가진 프로그램된 소프트웨어로, 사용자가 빈번하게 조작하는 소프트웨어
- 기존 인력에 의해 동작하던 비즈니스 로직을 프로그램으로 자동화하여 효율성을 높이고 비용도 줄일 수 있는 것이 시스템화의 장점
- 애플리케이션을 실현하는 수단 2가지
- 스크래치
Scratch
: 직접 프로그램을 작성하는 방법.scratch
는 처음부터라는 뜻 - 패키지
Package
: 기존에 있던 애플리케이션 소프트웨어를 사는 방법
- 스크래치
스크래치
- 장점 : 직접 만들기 때문에 업무의 세세한 부분까지 시스템에서 대응할 수 있어 꼼꼼한 서비스를 할 수 있음
- 단점 : 세세한 대응을 시작하면 한도 끝도 없는 경우가 있어 개발 비용이 커짐
패키지
- 장점 : 기존 제품을 설치할 뿐이라서 개발 비용을 줄일 수 있음.
- 단점 : 패키지의 기능이 부족해 비즈니스 로직을 실현할 수 없는 경우라면 커스터마이징에 따른 추가 개발이 필요하게 되어 스크래치 개발보다 비용이 올라갈 수 있음
애플리케이션과 데이터베이스의 관계
- 애플리케이션이 사용자와 데이터베이스 사이를 비집고 들어가있다.
- 사용자가 데이터베이스를 직접 조작하는 것이 아닌 어디까지나 애플리케이션을 매개로 해서 데이터베이스에 접근하는 형태를 취함