ㅅㅇ

SQL : 01 Database 개요 본문

SW_STUDY/SQL

SQL : 01 Database 개요

SO__OS 2022. 5. 24. 18:30

_플레이데이터 빅데이터캠프 공부 내용_

MySQL : 01 Database 개요

1. 데이터베이스 DB

- 지속적으로 유지, 관리되어야 하는 데이터들의 집합

- 목적에 맞게 데이터를 모아두는 것(보통 애플리케이션 당 하나 만든다.)

- CRUD  : 데이터를 관리한다. =>Create Read Update Delete 생성 조회 수정 삭제

 

2. 데이터베이스 관리 시스템 DBMS (Datebase Mangement System)

- 데이터베이스를 관리해주는 시스템.

- 효율적으로, 공통적으로 데이터만을 관리할 수 있는 전용 프로그램

- 이를 DB라고 부르기도 함.

- MySQL, Oracle, MS-SQL, DB2 등

 

- 프로그램을 만들 때 하나의 기능 단위로 1-3 로직 개발이 이뤄진다.

1) 화면 - UI / UX - presentation logic 보여지는 로직- (FE)

2) 처리 - Business logic 업무적인 처리해야하는 로직 - (BE)

3) DB 연동 - Database logic - (BE 중 DB관리전문)

 

이때, 파이썬 자바 C 언어 등 개발 언어는 SQL이 실행되도록 도와주는 것까지이고

데이터베이스로 연동할 때 데이터를 관리할 때는 공통적으로 SQL 언어를 사용한다. 

어느 현업이든 이 지식을 필요하기에 잘 알아둬야 한다.

 

** 판다스 : 파이썬의 SQL 

 

3. 관계형 데이터 베이스 (Relation Database)

- 행과 열로 이루어진 2차원 표 형식으로 Data를 관리하는 데이터베이스.

     - 데이터를 관계 있는 여러(열)의 집합으로 표현

          - 이 데이터 집합을 관계(Relation)이라고 한다.

     - 업무적 연관성 있는 테이블 간의 관계를 통해 데이터를 관리하는 방식

- 이전에 관리 구축에 관한 DB 이론이 많이 나왔지만, 이 이론으로 확립되었다.

- DBMS 위 프로그램 모두 관계형 데이터 베이스 이론에 근거해 만든 툴이다.

 

(1) 테이블. (데이터 값 간의 관계를 표현)

한 개가 아닌, n개의 값으로 이뤄져 있는 데이터를 어떻게 관리할까?

데이터에서 여러 값이 관계를 가지고 하나의 데이터를 나타내는데 이를 표로 표현해보자. => 테이블

 

(2) 테이블 간의 관계

쇼핑몰에 관하여 고객에 관한 테이블, 제품에 관한 테이블 ... 여러 종류의 데이터 테이블이 있다.

두 테이블의 데이터를 조회하여 주문 테이블에 고객과 제품에 관한 데이터를 넣어야 하는데

전체 다시 넣을 필요없이, 그 해당 데이터를 나타내는 아이디를 적어주면 된다. 

-> 그렇다면 테이블 간의 관계성이 생기는 것 이다.

이렇게 관계를 가진 데이터 테이블로 이뤄진 전체를 데이터베이스이다. => DB

 

테이블 : 값들을 모아둔 것 (한 테이블 내 값들은 관계를 가진다.)

DB : 테이블들을 모아둔 것 (테이블 간에도 관계를 가진다.)

 

** 이 개념을 보면 파이썬의 dict, 객체과 유사한 개념

 

3.1 테이블

: 데이터 베이스에서 데이터를 저장하는 단위

  - Enitiy : 시스템이 독립적으로 관리하길 원하는 데이터

      쇼핑몰 DB에 상품, 고객, 주문 ... 이렇게 분리해서 관리할 필요가 있다. 이때까지는 Enity 라고 부름.

      이를 DBMS에 구현할 때 테이블로 한다고 생각하면 된다. DB에 생성했다면 Table이라고 부름.

   - Table : Enity를 물리적 데이터 베이스에 표현하는 방식

- 관리하고자 하는 데이터의 단위 별로 만든다.

 

행 (Row, Record, Tuple)

: 테이블에 보관되는 Data를 구성하는 속성     

ex. 한 개, 한명의 데이터 각각의 데이터값을 알 수 있다. (홍길동님의 정보를 조회)

열 (Column, Attribute)

: 테이블이 관리하는 하나의 Data     

ex. 각각의 데이터의 속성을 관리할 수 있다. (고객 전체의 포인트를 조회 )

 

 

4. DBMS 처리 흐름

- 클라이언트 : data를 사용할 사용자 

- DBMS : 클라이언트가 요청한 내용을 데이터 베이스에 처리(삽입,삭제,수정,조회)

- DB : 데이터의 모음. 데이터가 저장된 장소. 영구적으로 관리되어야 하므로 HDD와 같은 영구 저장 장치를 이용

 

==> 클라이언트가  SQL문 요청하면 DBMS의 처리를 통해 DB(저장장치)에서 데이터를 가져옴 or 넣음

ex) 클라이언트가 조회를 요청하면 테이블 형태로 클라이언트에게 내보낸다. 

 

 

5. DBMS 처리 흐름 : Client - Sever 구조

- DBMS 는 Server Program 

클라이언트와 DBMS는 네트워크로 연결된다. => 네트워크 서버 프로그램(네트워크로 연결되는 서비스)

 

서버 클라이언트 네트워크 방식은

사용자가 사용하는 클라이언트 프로그램과 이를 저장 처리해주는 서버 프로그램을 따로 만들고

이 두개의 프로그램을 분리하여, 필요할 때 네트워크로 연결하는 것이다.

즉, 사용자들은 각각 개인의 클라이언트(UI)만을 가지고 데이터 관리가 필요할 때 서버와 네트워크를 연결하면 된다.

 

이 서버 - 클라이언트 네트워크 방식은 서버 하나에 여러 사람이 쓸 수 있다.

DBMS는 여러 클라이언트의 데이터를 가지고 처리한다면 한 공간에 저장되고 공용화할 수 있도록 만들어야 한다.

그렇다면 DB는 서버프로그램으로 만들고 네트워크로 연결하는 구조여야 한다.

 

** ex. Mysql Sever : DBMS (서버 프로그램)  Mysql workbench : 클라이언트 (실제로 사용자입장에서는 이거만 설치)

 

 

'SW_STUDY > SQL' 카테고리의 다른 글

SQL : 06 조인  (0) 2022.05.29
SQL : 05 함수 (2) 집계함수  (0) 2022.05.26
SQL : 05 함수 (1)  (0) 2022.05.26
SQL : 04 DML & DQL  (0) 2022.05.24
SQL : 02 기본 SQL문 & 03 DDL  (0) 2022.05.24