DBMS : Data Base Management System
(데이터 보관과 조회를 서비스하는 프로그램)
Database
- 실시간 접근 가능 : 데이터 처리 요청에 즉시 응답
- 동시 공유 : 여러 사용자가 공유
- 데이터의 독립성 : 애플리케이션에 비종속
- 일관성 : 데이터 처리 작업이 끝난 후 데이터의 값은 유효한 상태를 유지해야 한다.
- (예 - 특정 회원 데이터 삭제 → 삭제한 회원의 글도 삭제)
- 무결성 : 유효하지 않은 데이터의 등록과 변경, 삭제를 제한
- (예 - 게시글 작성자를 삭제할 수 없다.)
- 보안성 : 사용자 인증과 권한 검사권한 검사(authgorization) - 기능의 이용권한 검사 → 등록 허용?/변경허용? ...
- 사용자 인증(authentication) - ID/PWD 일치 → 유효한 사용자
DBMS
- 데이터 베이스를 조작하는 S/W
- 예) Oracle, MySQL, DBL, MS-SQL, Altibase, Tibero, Cubrid 등
SQL
- DBMS에 상관없이 요청 명령을 작성하는 문법 : Structured Query Language
App ——데이터 처리 요청——> DBMS
SQL → DDL(Data Definition Languge) : 데이터 구조 정의 문법
→ DQL(Data Query Languge) : 데이터 조회 요청 문법
→ DML(Data Manipulation Languge) : 데이터 등록/변경/삭제 문법
*DQL, DML를 통틀어서 DML이라고 부른다.
App ——표준 SQL 문법——> DBMS
App —— +오라클 전용 문법——> Oracle
App —— +MySQL전용 문법——> MySQL
App —— +MS-SQL 전용 문법——> MS-SQL
(전용 문법은 특정 DBMS에서만 사용할 수 있는 문법을 말한다.)
- 애플리케이션에서 사용하는 SQL은 DBMS마다 약간씩 다르다.
⇒ 그래서 DBMS에 따라 코드를 변경해야 한다.
- DBMS제품마다 강점/약점이 있다
→ DBMS를 제대로 활용하려면 DBMS 전용 SQL 문법을 사용할 수 밖에 없다.
표준 SQL 문법 : DBMS에 공통으로 사용할 수 있는 문법
DBMS 와 SQL
MariaDB
mariadb 설치
> brew install mariadb
mariadb 설치 후 root 암호 변경
> sudo mysql_secure_installation
mariadb 실행
> brew services start mariadb brew services stop mariadb
Web Server(HTTP Server) <—————> Web Browser(HTTP client)
HTTP 프로토콜에 따라서 서버 입장이냐 클라이언트 입장이냐~~
브라우저에서 서버로 HTTP 규칙에 따라 응답한다. or 웹 서버도 브라우저에게 HTTP 규칙에 따라 요청한다.
MariaDB ←—————→MariaDB Cilent
MariaDB protocol에 따라서 요청, 응답한다.
<전개방법>
- 사용자가 SQL입력
- 서버(MariaDB)에 요청
- 요청 처리
- MariaDB Client에 응답
- 사용자에게 결과 출력
mysql 서버에 접속하기
로컬 MySQL 서버에 접속
> mysql -u root -p Enter password: 암호입력
SQL 테스트 준비
사용자 추가
> create user 'study'@'localhost' identified by '1111';
'study' : 사용자 아이디
'localhost' : 서버주소
'1111' : 사용자 암호
> create user 'study'@'%' identified by '1111';
데이터를 저장할 데이터베이스 생성
> CREATE DATABASE 데이터베이스명 CHARACTER SET utf8 COLLATE utf8_general_ci;
> CREATE DATABASE studydb CHARACTER SET utf8 COLLATE utf8_general_ci;
데이터 베이스를 사용할 사용자의 권한을 지정
> grant all on studydb.* to 'study'@'localhost';
localhost로 접속한 study에 대해서 studydb의 모든 권한을 부여한다.
데이터베이스 목록 조회
> show databases;
사용자 교체
> quit or exit (프로그램 종료 후) mysql -u study -p (다시 실행)
기본으로 사용할 데이터베이스 지정하기
> use 데이터베이스명 use studydb;
DDL(Data Definition Language)
- 테이블 생성name varchar(50) not null,eng int not null,sum int not null,
- aver float not null);
- math int not null,
- kor int not null,
- create table test01 (
'DB' 카테고리의 다른 글
데이터 관리를 DBMS에게 맡기기 : JDBC API 사용 (0) | 2021.10.19 |
---|---|
Join, 서브쿼리, 그룹으로 묶기 (0) | 2021.10.11 |
FK(Foreign Key) (0) | 2021.10.11 |
DQL(Data Query Language) (0) | 2021.10.11 |
DDL - 테이블 생성, 컬럼타입 (0) | 2021.10.10 |