1. 데이터베이스
1) 데이터베이스(Database)의 정의
-데이터: 컴퓨터 안에 기록되어 있는 숫자
-데이터베이스: 저장장치 내에 정리되어 저장된 데이터의 집합. 일반적으로 DB라는 약자로 통용된다.
2) DB와 DBMS
-DBMS: DB를 관리하는 소프트웨어를 데이터베이스 관리 시스템(Database Management System), 즉 약자로 DBMS라고 부른다.
-DBMS의 사용목적
- 생산성: 시스템 개발 과정에서의 생산성 향상 도모 → 데이터 검색, 추가, 삭제, 갱신과 같은 기본 기능을 DBMS가 제공하기 때문에 시스템 구축시 기본 기능을 구현할 필요가 없음.
- 기능성: DBMS가 데이터베이스를 다루는 기능을 다수 제공 → 복수 유저의 요청 대응, 대용량의 데이터 저장 및 고속 검색, 유저에 의한 그외 데이터베이스 관리 기능 확장 가능
- 신뢰성: DBMS의 집어넣기 및 내보내기 기능을 통해 데이터베이스를 간단하게 백업 가능
3) 데이터베이스를 조작하는 언어 SQL
-SQL은 관계형 데이터베이스 관리 시스템(RDBMS)을 조작할 때 사용한다.
-SQL 명령의 종류
- DML(Data Manipulation Language): 데이터베이스에 새롭게 데이터를 추가하거나 삭제하는 등 데이터를 조작하는 명령어
- DDL(Data Definition Language): 데이터베이스 객체를 만들거나 삭제하는 명령어
- DCL(Data Control Language): 데이터를 제어하는 명령어. 트랜잭션을 제어하는 명령과 데이터 접근 권한을 제어하는 명령이 포함된다.
2. 다양한 데이터베이스
1) 데이터베이스 종류
- 계층형 데이터베이스: 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식의 데이터베이스
- 관계형 데이터베이스: 행과 열을 가지는 표 형식 데이터(2차원 데이터)를 저장하는 형태의 데이터베이스. 관계형 데이터베이스 안의 데이터는. SQL 명령어로 조작할 수 있다.
- 객체지향 데이터베이스: 가능하면 객체 그대로를 데이터베이스의 데이터로 저장하는 데이터베이스
- XML 데이터베이스: XML 형식으로 기록된 데이터를 저장하는 데이터베이스. SQL 명령을 사용할 수 없고, XQuery라는 전용 명령어를 사용한다.
- 키-밸류 스토어(KVS): 키와 그에 대응하는 값(밸류)이라는 단순한 형태의 데이터를 저장하는 데이터베이스. 열 지향 데이터베이스라고도 불린다.
2) RDBMS 제품
-RDBMS란 관계형 데이터베이스를 관리하는 소프트웨어로, Oracle, DB2, SQL Server, PostgreSQL, MySQL, SQLite 등이 있다.
-RDBMS는 처음부터 SQL 명령어를 이용해 데이터베이스를 조작하도록 설계된 만큼, 모두 SQL을 사용할 수 있다.
-각 데이터베이스 제품별로 기능 확장이 이루어지는 과정에서 고유 방언(즉, 비슷한 조작을 실행하더라도 서로 다른 명령어가 필요한 상황이 발생한 것)이 생겨났지만, 방언 대신 표준 SQL을 사용하는 편이 좋다.
3. 데이터베이스 서버
1) 클라이언트/서버 모델
-클라이언트/서버 모델이란 사용자 조작에 따라 요청을 전달하는 '클라이언트'가 해당 요청을 받아 처리하는 '서버'로 소프트웨어를 나누고, 복수의 컴퓨터 상에서 하나의 모델을 구현하는 시스템을 말한다.
-많은 RDBMS가 복수의 클라이언트가 보내오는 요청에 응답할 수 있도록 클라이언트/서버 모델로 동작한다.
→ 클라이언트가 RDBMS에 접속하기 위해선 사용자 인증이 필요하다.(RDBMS는 사용자 별로 데이터베이스 접근을 제한할 수 있기 때
문임. 사용자 ID와 비밀번호로 사용자 인증이 실행되고, 인증에 실패하면 접속 불가)
→ 클라이언트가 RDBMS에 접속하면 SQL 명령을 서버에 보낼 수 있다.
→ 서버가 가동 중이고 네트워크에도 연결되어 있다면, 클라이언트에서 명령을 보낼 때 서버는 응답할 것이다.
→ 클라이언트를 종료하면 데이터베이스와의 접속이 끊긴다.
2) 웹 애플리케이션의 구조
-웹 애플리케이션은 일반적으로 웹 서버와 데이터베이스 서버의 조합으로 구축된다.
→ 웹 시스템: 클라이언트/서버 모델로 구성됨.(클라이언트-브라우저/서버-아파치나 IIS와 같은 웹 소프트웨어)
→ 웹 사이트가 정적인 HTML만으로 구성되어 있다면 웹 서버만으로도 시스템 구성 가능
→ 웹 시스템과 CGI: 웹 서버에서 동적으로 HTML을 생성하려면 제어용 프로그램이 필요 ≫ 동적 콘텐츠를 위한 확장 방식인 CGI를 이용
하여 프로그램과 웹 서버 간을 연동 통신하여 처리
→ CGI와 데이터베이스: 실제로 데이터베이스에 접속하는 것은 CGI 프로그램. 접속이 성립되면 데이터베이스에 필요한 SQL 명령을 전달하고 , 실행 결과는 클라이언트(=CGI 프로그램)로 되돌아간다.
3) MySQL 서버와 mysql 클라이언트
-MySQL을 PC에 설치하면 서버와 클라이언트 모두 사용 가능함
→ 데이터베이스 서버-MySQL 서비스/클라이언트-mysql 커맨드
-클라이언트/서버 모델은 시스템의 하드웨어 구성을 유연하게 변경할 수 있도록 함.
→ ex) 클라이언트가 많아져 서버의 능력이 부족해지면 추가로 설치하여 부하 분산해 시스템 전체의 성능을 높임
-루프 백 접속: 하나의 PC에서 클라이언트와 서버를 동시에 실행할 때, 클라이언트가 네트워크를 통해 해당 PC의 서버로 연결되는 방식의 접속
'ECC > SQL 첫걸음' 카테고리의 다른 글
| [SQL] 6. 데이터베이스 객체 작성과 객체 (0) | 2025.04.05 |
|---|---|
| [SQL] 5. 집계와 서브쿼리 (0) | 2025.04.04 |
| [SQL] 4. 데이터의 추가, 삭제, 갱신 (0) | 2025.03.28 |
| [SQL] 3. 정렬과 연산 (0) | 2025.03.28 |
| [SQL] 2. 테이블에서 데이터 검색 (0) | 2025.03.22 |