[DB] 데이터베이스란?💽 요약본

박정현·2023년 10월 26일
0

💽 데이터베이스

목록 보기
1/11
post-thumbnail

1. 데이터베이스란?

  • 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 집합
  • 데이터의 저장, 검색, 갱신을 효율적으로 수행할 수 있도록 데이터를 고도로 조직화하여 저장
  • 데이터 베이스는 컴퓨터에 저장되는 구조화된 정보 또는 데이터의 조직화된 모음이다.
  • 데이터베이스는 일반적으로 데이터베이스관리시스템(DBSM)에 의해 제어된다.
  • 데이터와 DBSM을 하나로 묶어 데이터베이스시스템이라고 아며 단축하여 데이터베이스라고도 한다.
  • 데이터베이스는 데이터 작성 및 쿼리에 SQL(Structed Query Language)을 사용한다. → RDBMS

2. 데이터관리스템(DBMS)

  • 데이터베이스를 관리하는 시스템
  • 데이터베이스의 종류는 크게 관계형데이터베이스(RDBMS)와 NoSQL(Not Only SQL)로 나뉜다.

    1) 관계형 데이터베이스(RDBMS)

    • R은 Relation 관계를 뜻함

    • Relation Database Managements System

    • 관계형데이터베이스는 레코드(행)과 칼럼(열)로 되어있는 테이블로 되어 있는데 테이블과 테이블의 관계(Emtity ↔ Entity 의 Relation ⇒ER)

    • 이렇게 표현된 데이터베이스는 SQL을 통해 관리 및 접근한다.

    • 핵심은 테이블간의 관계, 규칙(제약조건), CRUD(생성, 조회, 수정, 삭제)

    • 관계형 데이터 조작언어를 SQL이라고 한다.

    • Oracle, MySql, MS-SQL(Microsoft), H2(테스트용으로 쓰인다.), MariaDB, SqlLite(안드로이드에 내장) 등이 있다.

      2) NoSQL(Not Only SQL)

    • 장점

      • 대용량 데이터를 다루거나 데이터 분산 처리에 용이
      • 유연한 데이터 모델링이 가능 (Cloud Computing에 적합 (AWS))
    • MongoDB→Jsom, XML과 같은 Collection 데이터 모델 구조 사용

3. SQL

  • SQL(Struct Querty Language) : RDBMS 데이터베이스 프로그래밍 언어
  • SQL은 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그램 언어이다.
  • SQL을 표준으로 채택하고 있다.
  1. DDL →테이블 생성
  2. DML →CRUD
  3. DCL → 제어, 권한
  4. TCL → 트랙젝션

4. Oracle과 MySQL → RDBMS의 종류

(1) Oracle

  • Oracle Corporation이란 미국의 기업에서 만든 데이터베이스 관리 시스템
  • 데이터를 저장하는 보관소를 의미하는 데이터베이스에서 가장 많이 사용하는 데이터베이스이다.
  • MVC Model2

(2) MySQL

  • MySql은 전세계적으로 가장 널리 사용되고 있는 오픈 소스 데이터베이스
  • 표준 데이터베이스 질의 언어 SQL을 사용하는 개방 소스의 관계형 데이터베이스 관리 시스템(RDBMS)
  • 매우 빠르고, 유연하며 사용하기 쉬운 특징
  • 자바, PHP, Ptyhon 스크립트 등을 위한 응용프로그램 인터페이스(API)를 제공한다.
  • 무료 프로그램에 이어서 홈페이지나 쇼핑몰 등등 일반적인 웹 개발에 널리 사용되고 있다.
  • MVC Model2, MyBitis, JPA, AWS(EX2→RDS) → 본과정 프로젝트에 사용
  • Oracle SQL과 유사하다.
  • Maria DB에서 MySQL의 파생

5. DDL, DML, DCL, TCL

1. DDL: 데이터 정의 언어

  • 테이블과 컬럼을 정의하는 명령어로 생성, 수정, 삭제 등의 데이터 전체 골력을 결정하는 역할을 담당한다.
  • 대소문자 구별X
  • DDL은 명령어를 입력하는 순산 작업이 즉시 반영 (Auto Commit)

[ 테이블 관련 문법 ]

  • CREATE: 테이블을 생성하는 역할
  • ALTER: 테이블의 구조를 수정하는 역할
  • DROP: 테이블을 삭제하는 역할
  • RENAME: 테이블의 이름을 변경하는 역할
  • TRUNCATE: 테이블을 초기화하는 역할

[ 칼럼 관련 문법 ]

  • ALTER: 컬럼 변경 문법 → 수정(변경)
  • ADD COLUMN: 컬럼을 추가하는 역할
  • DROP COLUMN: 칼럼을 삭제하는 역할
  • MODIFY COLUMN: 칼럼을 수정하는 역할
  • RENAME COLUMN: 칼럼 이름을 변경하는 역할
  • DROP CONSTRAIN: 칼럼을 제약조건을 기반해서 삭제하는 역할

2. DML

  • 데이터 조작 언어 ** 백엔드가 주로 사용
  • 데이터를 조회, 추가, 변경, 삭제 등의 작업을 수행하기 위해 사용 → CRUD
  • DDL과 달리 DML은 적는 즉시 반영(Auto Commit)이 되지 않는다.
  • 실시간으로 테이블에 반영되지 않는다. ** Oracle
  • Commit 명령어를 통해 Transaction을 종료해야 해당 변경사항이 테이블에 반영 **Oracle
  • 문법 [ INSERT ]
    • 테이블에 데이터를 추가하는 역할 (create: 회원, 게시글, 상품 추가)

    • insert into 테이블명(칼럼명1, 칼럼명2…) values(값1, 값2 …);

    • 칼럼명n에 해당하는 값n을 넣음

      insert into member0615(userId, userPw, email) values('m1', '1111', 'a@gmail.com');
      insert into member0615(userId, userPw, email) values('m2', '1111', 'a@gmail.com');
      insert into member0615(userId, userPw, email) values('m3', '1111', 'a@gmail.com');
      commit; --oracle실제 반영
      select * from member0615;

      [ SELETE ]

    • 데이터베이스에서 데이터를 검색하는 역할 ( read: 회원, 게시글, 상품 조회)

    • selset ~ from ~ where

    • select 조회칼럼명 from 테이블명;

    • select * from 테이블명; → 테이블에 있는 모든 데이터 조회

      select userId, userPw from member0615;
      select userId, userPw, email from member0615;
      select * from member0615;
      
      --글 번호가 1인 게시글을 조회 => 상세내역 조회
      select * from board_test01 where board_id=1;

      [ UPDATE ]

    • 테이블 내에 존재하는 데이터를 수정하는 역할 (update: 회원, 게시글, 상품 수정)

    • update ~ set ~ where

    • update 테이블명 set 칼럼명1=변경값 … where 칼럼명=조건;

    • 조건에 해당하는 칼럼에서 칼럼명n에 해당하는 변경값으로 변경함

      ```sql
      update member0615 set userPw = '2222' where userId = 'm1';
      commit;
      select * from member0615;
      ```
      
      ```sql
      --member0615테이블의 userId가 m2레코드의 userPw를 2222, email을 m2@gmail.com로 변경
      update member0615 set userId = 'm2' where userId = '2222';
      update member0615 set userPw='2222', email='m2@gmail.com' where userId = 'm2';
      commit;
      ```

      [ DELETE ]

    • 테이블에서 데이터를 삭제하는 역할 (delete: 회원, 게시글, 상품 삭제)

    • delete from~where

    • delete from 테이블명 where 칼럼명=조건;

3. DCL

  • 데이터 제어 언어
  • 데이터를 관리 목적으로 보안, 무결성, 회복, 병행 제어 등을 정의하는데 사용
  • DCL을 사용하면 데이터베이스에 접근하여 읽거나 쓰는 것을 제한할 수 있는 권한을 부여하거나 삭제
  • 데이터의 정확성을 위한 무결성을 유지
  • 시스템 장애에 대비한 회복과 병행수행을 제어
  • 문법
    • GRANT : 권한을 정의할 때 사용하는 명령어
    • REMOKE: 권한을 삭제할 때 사용하는 명령어

4. TCL

  • DCL과 비슷
  • 트렌젝션을 제어할 때 사용
  • 논리적인 작업 단위를 묶어 DML에 의해 조작된 결과를 트렌젹션 별로 제어
  • 트렌젝션(Transaction)
    • 추가, 수정, 삭제
    • 데이터 베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
  • commit
    • 변경 사항들을 적용합니다.
  • rollback
    • 변경사항을 취소하고 원래대로 돌아간다.
profile
개발을 개발괴발하지 않기 위한 노력

0개의 댓글