본문 바로가기
데이터베이스/기본개념

[Database] 데이터베이스 프로그래밍 기초

by 책 읽는 개발자_테드 2021. 10. 7.
반응형

학습 목표

· 데이터베이스란?

· 테이블과 레코드

· 주요키(Primary Key)와 인덱스(Index)

· 데이터베이스 프로그래밍의 일반적인 순서

· 데이터베이스 프로그래밍의 필수 요소

· 데이터베이스 생성


데이터베이스란?

 

· 데이터베이스: 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합

   - 주요 목적: 데이터를 저장하고, 필요할 때 사용하는 것

· DBMS(Database Management System): 데이터베이스를 관리하는 시스템

· DBMS가 제공하는 여러 기능들:

   1. 데이터의 추가/조회/변경/삭제

   2. 데이터의 무결성(integrity) 유지

   3. 트랜잭션 관리: 데이터의 신뢰성을 높임

   4. 데이터의 백업 및 복원

   5. 데이터 보안

 

· 웹 어플리케이션을 구축할 때 주로 사용하는 데이터베이스는 관계형 데이터베이스(RDBMS)

 

테이블과 레코드

· 테이블: RDBMS에서 데이터를 저장하는 장소

· 스키마: 테이블 구조와 관련된 정보 (예:테이블의 어떤 데이터를 저장하며, 그 데이터의 길이는 최대 몇 글자인지 등)

· 테이블 구조는 각각의 정보를 저장하는 칼럼과 칼럼 타입, 각 칼럼의 길이로 구성

▶ 예시 - 회원 정보를 저장하는 테이블의 스키마

https://slidesplayer.org/slide/14481847/

· 스키마는 하나의 데이터에 대한 구조를 나타냄

https://slidesplayer.org/slide/14481847/

· 레코드: 칼럼 데이터 모음 (위의 MEMBERID, PASSWORD, NAME, EMAIL 모음)

· 하나의 테이블은 여러 개의 레코드로 구성됨

· 데이터베이스 프로그래밍: 레코드, 칼럼, 테이블을 사용해서 데이터를 저장하고 조회하는 작업을 수행하는 것

 

주요키(Primary Key)와 인덱스(Index)

· 레코드를 미리 특정 값을 이용해 정렬해 놓으면 더 빠르게 레코드를 찾을 수 있고,

이러한 목적으로 사용할 수 있는 것이 주요키(Primary Key) 칼럼임

· 주요키 컬럼: 하나의 테이블에 저장된 모든 레코드가 서로 다른 값을 갖는 칼럼

 

· 인덱스: 레코드의 특정 칼럼을 사용해서 레코드를 쉽게 찾을 수 있도록 미리 정리된 표로 만들어 두는 것

   - 주요키와 더불어 레코드를 분류할 때 사용

   - 주요키도 인덱스의 일종이지만, 인덱스 중복된 값에 대한 정렬이 가능하다는 차이가 있음

   - 사용 예: 회원 이름으로 데이터를 조회하는 기능이 많은 경우,

     회원 이름 칼럼을 사용한 인덱스를 생성하면 회원 이름으로 빠르게 데이터 조회 가능 

 

데이터베이스 프로그래밍의 일반적인 순서

https://slidesplayer.org/slide/14481847/

데이터베이스 프로그래밍의 필수 요소

· 데이터베이스 프로그래밍에는 세 가지 요소가 필요함

   1. DBMS: 데이터베이스를 관리해주는 시스템 ex) 오라클, MySQL

   2. 데이터베이스: 데이터를 저장할 공간

   - 데이터베이스를 생성하는 방법은 DBMS마다 다르고, 사용할 DBMS에 맞게 생성해야함

   3. DBMS 클라이언트: 데이터베이스를 사용하는 애플리케이션

   - 예: MySQL의 mysql.exe, MySQL Workbench / 자바의 JDBC Driver

 

데이터베이스 생성

· 아래 예제들을 실행하기 위한 MySQL DBMS(AWS RDS) 설치 및 워크벤치 연결 - https://scshim.tistory.com/218

 

· 데이터베이스 생성:

create database chap14 default character set utf8

 

· MySQL에서 사용할 사용자 추가:

CREATE USER 'jspexam'@'localhost' IDENTIFIED BY 'jsppw';
GRANT ALL PRIVILEGES ON chap14.* TO 'jspexam'@'localhost';

CREATE USER 'jspexam'@'%' IDENTIFIED BY 'jsppw';
GRANT ALL PRIVILEGES ON chap14.* TO 'jspexam'@'%';

 

· CREATE USER 쿼리는 새로운 계정을 생성함

   - 호스트 값이 localhost이면 localhost에서 해당 계정에 접근할 때 해당 암호를 사용한다는 의미고,

   호스트 값이 '%'인 경우 모든 호스트에서 해당 계정으로 접근할 때 해당 암호를 사용한다는 것을 뜻함

create user '[계정]'@'[호스트]' identified by '[암호]'

 

· GRANT 쿼리는 MySQL DBMS 계정에 권한을 부여함

   - 권한이 all privileges이면 모든 권한을 부여함

grant [권한목록] on [데이터베이스].[대상] to '[계정]'@'[호스트]'

   - 특정 권한만 부여하고 싶다면 개별 권한 목록을 지정함

grant select, insert, update, delete, create, drop on chap14.* to 'jspexam'@'%';

 

· 권한 부여 대상을 전체로 하고 싶다면 '*'  값을 사용

grant all privileges on chap14.* to "jspexam'@'%';

 

출처

최범균의 JSP 2.3 웹 프로그래밍: 기초부터 중급까지

반응형

'데이터베이스 > 기본개념' 카테고리의 다른 글

데이터베이스 Failure와 Recovery  (0) 2019.04.03

댓글