솜이의 데브로그

3,4강 ) 데이터베이스 서버, Hello World 실행 본문

CS/Database

3,4강 ) 데이터베이스 서버, Hello World 실행

somsoming 2021. 9. 15. 23:49

Reference : SQL 첫걸음

 

3강 ) 데이터베이스 서버

 

많은 RDBMS는 클라이언트/서버 모델을 채택해 가동중이다.

데이터를 네트워크로 연결된 서버라는 관점으로 두고 진행.

 

  • 클라이언트 : 서버에 접속 요청이나 SQL 명령 실행 요청을 보낼 수 있다.
  • 서버 : 이를 처리하고 클라이언트에 그 결과 반환.

 

일반적인 RDBMS는 네트워크 상에 하나의 서버를 두고 독점해 사용. (연습할땐 자신의 pc에 클라이언트와 서버 모두 실행)

 

 

1. 클라이언트/서버 모델

사용자조작에 따라 요청을 전달하는 클라이언트 + 해당 요청을 받아 처리하는 서버

복수의 컴퓨터 상에서 하나의 모델을 구현하는 시스템.

웹 시스템에서의 클라이언트/서버

 

웹시스템에서 클라이언트 기능을 하는 브라우저는 사용자가 지정한 URL과 연결된 웹 서버에 요청을 보낸다.

클라이언트가 보내는 요청을 request라고 한다. (대부분 페이지 열람 요청)

 

요청을 받은 웹 서버에서는 그에 맞게 처리. 페이지 열람 요청의 경우, 브라우저가 페이지를 표시할 수 있도록 HTML로 된 데이터를 클라이언트로 반환. 서버의 응답은 response 라고 한다.

 

 

RDBMS의 클라이언트/서버

 

웹 시스템에는 없었던 사용자 인증이 필요하다. RDBMS는 사용자별로 데이터베이스 접근을 제한 할 수 있기 때문.

사용자 인증은 사용자 ID와 비밀번호로 실행. 

 

 

SQL 명령 실행

RDBMS에 접속하면 SQL명령을 서버에 보낼 수 있다. 

서버가 가동중이고 네트워크에 연결되어 있다면, 클라이언트에서 SQL 명령을 보낼 때 서버는 응답할 것이다.

 

 

2. 웹 애플리케이션의 구조

웹 애플리케이션은 일반적으로 웹 서버 + 데이터베이스 서버

 

웹 시스템은 클라이언트/서버 모델로 구성되며, 브라우저가 클라이언트, 아파치, IIS와 같은 웹 소프트웨어가 서버 역할을 함.

웹 서버에서 동적으로 HTML을 생성하려면 제어용 프로그램이 필요하다. 웹 서버에는 CGI라 불리는 동적 콘텐츠를 위한 확장 방식이 있다. 이 CGI를 이용하여 프로그램과 웹 서버간을 연동, 통신하여 처리.

이 때 프로그래밍 언어는 Perl, PHP, Ruby 등의 스크립트를 많이 사용.

 

실제로 데이터베이스에 접속하는것은 PHP 나 루비 등의 프로그래밍 언어로 만들어진 CGI 프로그램이다. 

웹서버의 CGI 프로그램은 데이터베이스의 클라이언트가 된다.

웹 서버와 데이터베이스 서버를 서로 다른 머신에 두면 처리가 분산되어 시스템 전체 성능이 향상된다.

 

★클라이언트/서버 모델은 유연한 하드웨어 구성을 실현한다!

 

 

3. MySQL 서버와 mysql 클라이언트

MySQL 패키지를 PC에 인스톨하면 서버와 클라이언트 모두 사용할 수 있다. 하지만 네트워크 기능은 필요.

클라이언트에서 서버에 접속할 때, 네트워크를 경유해서 PC의 서버로 되돌아오는 형태로 접속하는 것을 '루프 백 접속'이라 부른다.

 

 

 

4강 ) Hello World 실행하기

 

Select 명령

SELECT * FROM 테이블명;

SELECT 명령은 '질의' 또는 '쿼리'라고 불리기도 한다.

SELECT : 선택, * : 모든 열, FROM : ~테이블에서.

 

위의 명령어 실행 결과 테이블의 모든 행과 열의 데이터가 화면에 출력된다.

 

SQL명령은 mysql 클라이언트에 문자를 입력하여 실행할 수 있다. mysql 클라이언트를 명령 프롬프트에서 실행한다.

→ mysql 클라이언트에 SQL 명령을 입력하여 실행할 수 있으며, 명령의 마지막에는 ; 를 붙인다.

 

 

예약어와 데이터베이스 객체명

  • SELECT, FROM : 구를 결정하는 키워드이자 예약어.
  • 통상적으로 데이터베이스 객체 명에는 예약어와 동일한 이름을 사용할 수 없다.
  • 예약어와 데이터베이스 객체명은 대소문자를 구별하지 않는다.

 

  • 숫자만으로 구성된 데이터를 '수치형' 데이터라고 한다. 오른쪽 정렬로 표시.
  • 임의의 문자로 구성된 데이터를 '문자열형' 데이터라고 한다. 왼쪽으로 정렬
  • 날짜와 시각을 나타내는 데이터를 '날짜시간형' 데이터라고 한다. 왼쪽 정렬

★ 열은 하나의 자료형만 가질 수 있다.

 

 

값이 없는 데이터 = NULL

NULL 은 특별한 데이터값으로 아무것도 저장되어 있지 않은 상태를 의미한다.