Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

우주코딩

어플리케이션 아키텍쳐의 변환과 DBMS, SQL 본문

Project

어플리케이션 아키텍쳐의 변환과 DBMS, SQL

우주코딩 2021. 10. 11. 19:09

애플리케이션 아키텍쳐의 변경 내역

App - 배열(데이터저장)
App - Collection(데이터저장)
App - Collection(데이터저장) - File(보관/로딩)

ClientApp < - > ServerApp - Collection(데이터저장) - File(보관/로딩)
데이터 처리 요청
처리 결과 응답

 

ServerApp - Collection - File 과정을 DBMS로 대체하기
클라이언트 앱이 데이터 처리 요청을 DBMS에 요청하면 DBMS는 처리 결과를 응답한다.
개발자도 데이터 보관과 조회에 신경 쓸 필요가 없다.

DBMS

Database Management System
데이터 보관과 조회를 서비스하는 프로그램

Database

  • 실시간 접근 가능 : 데이터 처리 요청에 즉시 응답
  • 동시 공유 : 여러 사용자가 공유
  • 데이터의 독립성 : 애플리케이션에 비종속
  • 일관성 : 데이터 처리 작업이 끝난 후 데이터 값은 유효한 상태를 유지해야 한다.
    ex) 특정 회원 데이터 삭제 -> 삭제한 회원의 글도 삭제
  • 무결성 : 유효하지 않은 데이터의 등록과 변경, 삭제를 제한 (게시글 작성자를 삭제할 수 없다.)
  • 보안성 : 사용자 인증과 권한 검사 (authentication / authorization, ID/PW 일치 -> 유효한 사용자 / 기능의 이용 권한 검사 -> 등록 허용? 변경 허용?)

DBMS

  • 데이터베이스를 조작하는 S/W
  • Oracle, MySQL, DB2, MS-SQL, Altibase, Tibero 등

SQL

애플리케이션에서 사용하는 SQL은 DBMS마다 약간씩 다르다. 그래서 실무에서는 DBMS에 따라 코드를 변경해야한다.

App이 DBMS 에 데이터 처리 요청을 보낼 때 DBMS에 상관없이 요청 명령을 작성하는 문법이 SQL이다.
Structured Query Language

SQL - DDL(Data Definition Language) 데이터 구조 정의 문법
      - DQL(Data Query Language) 데이터 조회 요청 문법
      - DML(Data Manipulation Language) 데이터 등록/변경/삭제 문법

 

App -> DBMS 표준 SQL문법(DBMS에 공통으로 사용할 수 있는 문법) + 오라클 전용 문법 / MySQL 전용 문법/ MS-SQL 전용 문법


Oracle, MySQL, MS-SQL


DBMS 제품마다 강점/약점이 있다. DBMS를 제대로 활용하려면 DBMS 전용 SQL 문법을 사용할 수 밖에 없다.
전용 문법 = 특정 DBMS에서만 사용할 수 있는 문법

DBMS와 SQL

web server(HTTP Server) web browser(HTTP Client)
클라이언트가 요청하고 서버가 응답한다.

 

PMS Server(ServerApp)
PMS Client(ClientApp)

MariaDB 의 프로토콜로 요청하고 마리아db는 응답을 하는데, 그 대상인 MariaDB Client가 있어야 한다.
mysql.exe 프로그램 (클라이언트)
mysqld.exe 프로그램(데이터베이스)

사용자가 SQL을 입력하면 데이터베이스에 요청하고 요청처리 후 응답하여 결과를 출력한다.

SQL 테스트 준비

  1. 사용자 추가 create user 'study'@'localhost' identified by '1111';                                                                                                    ㄴ사용자id ㄴDBMS서버 주소      ㄴ 사용자 암호  

localhost에서 study 아이디로 접속하는 경우에 허락하겠다는 의미

 

create user 'study'@'%' identified by '1111';
아이디는 같지만 원격에서만 접속할 수 있는 사용자

  1. 데이터를 저장할 데이터베이스 생성
    create database studydb character set utf8 collate utf8_general_ci;

                            ㄴ데이터베이스 이름  ㄴ 문자표

  1. 데이터베이스를 사용할 사용자의 권한을 지정
    grant all on studydb.* to 'study'@'localhost';
    ㄴ권한범위,데이터베이스,db항목,사용자아이디,DBMS서버주소

DDL (Data Definition Language)

DB 객체(테이블, 뷰, 함수, 트리거 등)를 생성, 변경, 삭제하는 SQL 명령이다.

  • 데이터베이스(database) = 스키마(schema)
  • 테이블(table)
  • 뷰(view)
  • 트리거(trigger)
    • 특정 조건에서 자동으로 호출되는 함수
    • 특정 조건? SQL 실행 전/후 등
    • OOP 디자인 패턴에서 옵저버에 해당한다.
  • 함수(function)
  • 프로시저(procedure)
  • 인덱스(index)

테이블 만들기
create table 테이블명 (
컬럼명 타입 NULL여부 옵션,
컬럼명 타입 NULL여부 옵션,
...
컬럼명 타입 NULL여부 옵션
);

테이블과 row, column

column/열 = attribute /field

row/행 = record/tuple

'Project' 카테고리의 다른 글

SQL - Select , like, and , or, Foreign Key  (0) 2021.10.11
SQL 사용법  (0) 2021.10.11
Observer 옵저버 패턴 적용하기  (0) 2021.09.23
File 입출력 사용하기  (0) 2021.09.09
제네릭 적용  (0) 2021.08.22
Comments