ㅅㅇ
SQL : 01 Database 개요 본문
_플레이데이터 빅데이터캠프 공부 내용_
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 |