[데이터베이스 & SQL 첫걸음] 2주차 공부

김서영·2021년 9월 18일
0

관계형 데이터베이스

관계형 데이터베이스(Relational Database, RDB)

데이터를 2차원 표를 사용해 관리하는 데이터베이스, '관계' 라는 표현은 2차원 표를 표기할 때 사용하는 단어.
프로그래밍 언어를 사용하지 않아도 데이터를 조작할 수 있음.

SQL(Structured Query Language)

관계형 데이터베이스가 데이터를 조작하기 위해 준비한 언어.

예시
SELECT 이름 
FROM 주소록
WHERE 주소 LIKE '%서울시%';
명령어
  1. SELECT (검색)
  2. INSERT (등록)
  3. UPDATE (갱신)
  4. DELETE (제거)

(R)DBMS와 데이터베이스의 차이

데이터베이스와 DBMS는 실제 개별환경에서도 별로 구분되지 않고 사용되는 경우가 많으나, 엄밀히 따지자면 둘은 다름.
데이터베이스는 기능이나 구조를 나타내는 추상적 개념.
DBMS는 그것을 실현하기 위해 작성된 구체적인 소프트웨어.
따라서, Oracle, MySQL 같은 제품은 DBMS이며 데이터베이스는 아님.

소프트웨어 계층성

애플리케이션
미들웨어
운영체제
소프트웨어는 계층성이 있음. 한 레이어(계층)의 소프트웨어가 동작하지 않으면 상위 레이어의 소프트웨어는 설치해도 동작하지 않거나 설치조차 할 수 없는 제약이 발생. DBMS는 미들웨어에 위치함.

운영체제(Operating System, OS)

운영체제(Operating System, OS)는 시스템을 동작하게 하기 윟나 일종의 토대가 되는 기능을 제공하는 소프트웨어.

  • Windows - Windows Server 시리즈
  • Linux - Red Hat, CentOS
  • UNIX - HP-UX, AIX, Solaris

미들웨어(Middleware)

미들웨어(Middleware)는 이름 그대로 중간 역할의 소프트웨어.

애플리케이션(Application)

애플리케이션(Application)은 업무용 기능을 가진 프로그램된 소프트웨어. 사용자가 가장 빈번하게 조작하는 소프트웨어.

애플리케이션을 실현하는 수단으로는 크게 두 가지가 있음.

  • 스크래치 : 처음부터 직접 프로그래밍언어를 사용하여 프로그램을 작성하는 방법.
  • 패키지 : 기존에 있던 애플리케이션 소프트웨어를 사는 방법.

데이터베이스 서버

클라이언트/서버 모델


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

데이터베이스에 접속하는 것은 프로그래밍 언어로 만들어진 CGI 프로그램
따라서, 서버와 CGI 프로그램을 연결 후, CGI 프로그램이 데이터베이스의 클라이언트로써 데이터베이스 접속

RDBMS의 클라이언트/서버

사용자 인증이 필수적 => ID, PW를 통해 사용자 인증 후 SQL 명령을 통해 통신/실행.

Hello World 실행하기

SQL SELECT문

SELECT * FROM 테이블명;
DML에 속하는 명령으로 데이터베이스 속 데이터를 읽어오는 명령
SELECT: 명령의 종류 중 하나로, 이외에도 UPDATE, DELETE 등 다른 명령도 존재.
*: 모든 열을 불러오라는 명령, 이외에도 특정 열의 이름을 넣어서 특정 열만 추출해서 결과 반환도 가능.
FROM 테이블명: 말 그대로, 해당된 테이블에서 데이터를 가져오라는 명령
;: 명령문의 마지막을 알림

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

앞서 본 SELECT와 FROM은 키워드이자 예약어.
데이터베이스 객체는 이름을 붙여 관리하나 같은 이름으로 중복되게 다른 데이터베이스 객체를 생성할 수 없음.
통상적으로, 예약어와 데이터베이스 객체도 동일한 이름을 사용할 수 없음. 그리고, 예약어와 데이터베이스 객체는 대소문자를 구별하지 않음.

SQL명령 실행 시, 결과

SELECT 명령을 실행하면, 표 형식으로 데이터 출력
예를 들어서 이름, 생일, 주소에 대한 정보를 SELECT문 명령어로 요청했다면, 테이블 구조는 아래와 같음.
테이블은 행과 열로 구성된 표 형식의 데이터.

no name birthday address
1박성진1993-01-16부산광역시 사하구
1김서영1999-06-28서울특별시 송파구
1윤도운NULL창원시 성산구
no열은 숫자만 들어간 수치형 데이터이고, name열은 임의의 문자로 구성된 데이터인 문자열형 데이터, birthday열은 날짜 데이터가 저장된 날짜시간형 데이터.

따라서, 데이터는 자료형으로 분류할 수 있고, 열은 하나의 자료형만을 가질 수 있음.

값이 없는 데이터 == NULL

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

profile
하지만 저는 이겨냅니다. 김서영이죠?

0개의 댓글