01. 데이터베이스와 테이블
데이터베이스란?
- 일정한 체계속에 저장된 데이터의 집합
Table
- 데이터는 보통 테이블(표)이라는 기본 단위로 저장됨
- 테이블은 표 형식으로 저장된 데이터의 집합
- 보통 하나의 데이터베이스 안에는 여러개의 테이블이 존재할 수 있음
- 테이블로 저장하게 되면 체계적으로 저장할 수 있음
02. 테이블의 row와 column
학번 | 이름 | 전화번호 | 학과 |
20210101 | 김여름 | 010-1111-2222 | 컴퓨터공학과 |
20210102 | 김가을 | 010-3333-4444 | 수학과 |
- 위 표에서, 가로줄은 row(행), 세로줄은 column(열)
03. DBMS와 SQL
DBMS(DataBase Management System)
- 데이터베이스 관리 시스템
- My SQL, ORACLE, MS SQL, MariaDB, SQLite
- 데이터베이스 따로, DBMS 따로가 아닌 DBMS를 고르면 됨
SQL(Structured Query Language)
- DBMS에 명령을 내리기 위해 사용하는 언어
- 국제 표준 SQL이 있어서, 그것만 숙지하면 어떤 프로그램도 사용할 수 있음
- 하지만 모든 프로그램이 완벽하게 국제 표준을 지키지는 않아서, 프로그램별로 어느정도 숙지는 필요함
04. SQL 국제표준과 MySQL
1. SQL의 역사
1970년대 초, IBM이라고 하는 컴퓨터 회사는 System/R이라는 DBMS와 이것을 사용하기 위해 필요한 언어인 SEQUEL을 만들었음. 하지만 상표권 문제로 SQL(Structured Query Language)로 변경되었음.
SQL은 그 뒤로 IBM, 오라클이라고 하는 회사 등에 의해 제각각 발전하기 시작함.
그러다 1987년, 국제 표준화 기구(ISO)에서 SQL에 관한 국제 표준이 제정되었음. 그 뒤로 해당 표준은 기존 내용이 개정되고, 새로운 내용들이 추가되어 현재는 2019년 개정안이 최신임.
하지만 Oracle, Microsoft SQL Server, MySQL 등의 DBMS에서 지원되는 SQL이 표준을 완벽하게 준수하지는 않음
예를들어, 각 DBMS들은
- 표준에 있는 기능을 지원하지 않거나
- 표준에 있는 기능이더라도 다른 표현법을 사용하거나
- 표준에는 없는 기능을 지원하는
등의 방식으로 표준을 조금씩 어기고 있고, 그 모습도 DBMS마다 다름
사람의 언어에 비유하면, SQL 국제 표준이라는 '표준어'가 존재한다면 실제로 각 DBMS가 지원하는 SQL은 '사투리'처럼 조금씩 차이가 있다는 것.
그래서 SQL을 배울 때는 본인이 사용할 DBMS의 SQL을 바로 공부하는 것이 가장 정확함.
2. MySQL
- 현재 페이스북, 유튜브 등을 비롯한 유명한 서비스에서도 활발히 사용되고 있는 DBMS
- 여러 DBMS중에서도 특히 일반 사용자가 사용하기 편하며, 간단히 사용해볼 때 요구하는 컴퓨터 성능도 작은 편
05. DBMS와 서버-클라이언트 구조
- client(클라이언트 프로그램) : 사용자가 server에 접속해서 원하는 데이터베이스 관련 작업을 할 수 잇도록, SQL을 입력할 수 있는 화면 등을 제공하는 프로그램
- server(서버 프로그램) : client로부터 SQL문 등을 전달받아 데이터베이스 관련 작업을 직접 처리하는 프로그램
대부분의 DBMS가 client를 통해 server에 접속하는 구조로 되어있음
- DBMS를 사용한다는 것은, 실행되고 있는 server에 client를 이용해서 접속한 후, 원하는 명령을 내린다는 뜻
- MySQL에서 서버 프로그램의 이름은 'mysqld'이며 이 프로그램이 실행되고 있을 때 사용자가 클라이언트 프로그램을 사용해서 접속, MySQL의 클라이언트프로그램의 이름은 'mysql'
- 'mysql'은 보통 CLI 환경에서 사용하지만, Oracle에서 공식 제공하는 MySQL Workbench를 통해 GUI 환경에서 server에 접속해서 사용할 수 있음
06. sys 데이터베이스
- Workbench를 실행했을 때, 기본으로 생성되어 있는 sys라는 데이터베이스란?
- MySQL 서버의 성능 관련 정보들을 갖고있는 데이터 베이스
- DBSM은 그것을 사용하는 사람에 따라 사용 용도가 크게 달라짐(기획자/마케터 - 데이터베이스에 저장된 데이터를 잘 분석해서 시장 및 고객 분석, 백엔드 개발자 또는 데이터베이스 관리자 - 데이터가 빠르고 안정적으로 조회 및 저장될 수 있도록 개발 및 관리)
- 백엔드 개발자 또는 데이터베이스 관리자의 입장에서는 DBMS가 성능 저하 없이 효율적으로 작업을 처리하고 있는지 체크하는 것이 중요하며, 이러한 정보를 확인할 수 있는 기본 데이터베이스 중 하나가 SYS 데이터베이스
정리
- 데이터베이스 : 일정한 체계 속에 저장된 데이터의 집합 // 때로는 데이터를 담고있는 컴퓨터 상의 파일을 말할 때도 있고, 때로는 DBMS를 나타내기도 함
- 하나의 컴퓨터에서도 여러 개의 데이터베이스를 생성할 수 있고, 하나의 데이터베이스 안에서는 여러 개의 테이블을 만들 수 있음
- 테이블에서 하나의 개체를 나타내는 것은 row(행), 개체의 각 속성을 나타내는 것은 column(열) // 참고로 테이블의 행은 record(레코드), 열은 field(필드)라고도 함
- DBMS(DataBase Management System) : 데이터베이스 관리 시스템
- SQL(Structured Query Language) : DBMS를 다루기 위해 사용하는 언어
- Oracle은 '오라클'과 'MySQL'을 모두 갖고 있는 데이터베이스 시장의 절대 강자
- MySQL을 비롯한 많은 DBMS들이 '서버-클라이언트' 구조로 동작함 -> 서버 역할을 하는 하나의 프로그램이 실행되고 있고, 사용자는 클라이언트 역할을 하는 프로그램으로 해당 서버에 접속하고 -> 그 서버에 SQL을 전송해서 명령을 내리는 구조!
- 데이터베이스를 생성하는 SQL문 -> CREATE DATABASE <데이터베이스 이름>
'DEV > SQL' 카테고리의 다른 글
DATE 데이터 타입 관련 함수 (0) | 2022.01.02 |
---|---|
문자열 패턴 매칭 조건 | LIKE, %, _ (0) | 2022.01.02 |
조건을 나타내는 다양한 방법 (0) | 2022.01.02 |
SQL 작성 형식 (0) | 2022.01.02 |
키워드 (0) | 2021.12.29 |