티스토리 뷰
CHPATER 15. 데이터베이스 개발 환경 구축 : 상품 관리 테이블 생성 및 상품 등록하기
1. 데이터베이스의 개요
데이터베이스는 테이터를 담는 저장소이다.
중복을 없애고 구조화한 데이터의 모음으로 검색과 갱신을 효율적으로 처리할 수 있다.
데이터베이스의 특성
첫번째, 똑같은 자료를 중복해서 저장하지 않는 통합된 자료이다.
두번째, 컴퓨터가 액세스하여 처리할 수 있는 저장 장치에 수록된 자료이다.
세번째, 어떤 조직의 기능을 수행하는데 없어서는 안되는 자료이기 때문에 임시로 모아놓거나 단순한 입출력을 위한 자료가 아니다.
1-1. 데이터베이스 관리 시스템 (DBMS)
데이터베이스 관리 시스템은 데이터베이스를 관리하는 소프트웨어로 다수의 사용자와 데이터 베이스 사이에서 사용자의 요구에 따라 정보를 생성하는 역할을 한다. (자료를 관리하는 시스템)
또한, 응용 프로그램들이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하고 데이터베이스 안에 데이터를 기록하거나 접근할 수 있도록한다.
데이터 베이스 관리 시스템의 장단점
장점 | 단점 |
- 데이터의 중복 최소화 - 데이터 공유 - 일관성, 무결성, 보안성 유지 - 최신 데이터 유지 - 데이터의 표준화 기능 - 데이터의 논리적, 물리적 독립성 - 용이한 데이터 접근 - 데이터 저장 공간 절약 |
- 데이터베이스 전문가가 필요 - 비용 부담이 큼 - 데이터 백업과 복구가 어려움 - 시스템이 복잡함 - 대용량 디스크로 액세스가 집중되면 과부하가 발생 |
1-2. MySQL 의 개요
MySQL은 오픈소스 관계형 데이터베이스 관리 시스템이다.
SQL 데이터 언어의 표준 형식을 사용한다.
다양한 언어로 운영되며 매우 빠르게 작동한다.
사용자 정의가 가능하다. 오픈소스 GPL 라이선스를 통해 자신의 환경에 맞게 MySQL 소프트웨어를 수정할 수 있다.
(GPL은 오픈소스이므로 수정해도 상관없다.)
- 관계형 데이터베이스 관리 시스템
데이터 관리 시스템의 가장 일반적인 형태이다.
테이블 열, 인덱스가 있는 데이터베이스를 구현할 수 있다.
다양한 테이블 행 사이의 참조 무결성을 보장한다.
인덱스를 자동으로 업데이트한다.
SQL 쿼리를 해석하고 다양한 테이블의 정보를 결합한다.
2. MySQL 개발 환경 구축
1. installer 실행하여 설치
mysql-installer를 클릭하여 설치 파일을 실행한다.
2. 설치 유형 선택
설치 파일을 실행한 후 Choosing a Setup Type이라는 설치 유형을 고를 수 있는 화면이 보인다.
그럼 Custom 을 클릭하여 next 한다. (필요한 부분만 설치하도록 함)
3. 설치할 제품 선택
next 버튼을 누르면 Select Products and Features라는 설치 제품을 선택할 수 있는 화면을 볼 수 있다.
MySQL Servers에서 + 버튼을 클릭하고 또 +를 클릭하여 마지막에 MySQL Server 8.0.21 - x64 를 클릭하여 → 를 클릭한다.
후에 Application 과 MySQL Connectors에서도 같은 단계를 반복하여 installed 상자 안에 보이는 제품들을 담아준다.
설치할 파일을 담았다면 next를 클릭한다.
4. 필요한 요구사항 선택
Check Requirements 화면이 보이면 모두 설치하기 위해 exucute 를 클릭한다.
5. 제품 설치
이전 단계에서 선택한 제품들을 설치하기 위한 단계이다.
이전에 선택한 제품들이 모두 포함되어 있는 것을 확인했다면 exucute 를 클릭하여 모두 설치한다.
6. High Availability 선택
기본형인 standalone MySQL 을 선택하여 next를 클릭한다.
7. 연동 방식 선택
Authentication Method 창이 나타나면 JSP 등 다양한 응용프로그램과 연동하여 사용할 것이므로 연동을 원활하게 해야한다.
연동을 원활하게 하기 위해 Use Legacy Authentication Method를 선택하여 next를 클릭한다.
8. 관리자 비밀번호 설정
Accounts and Roles 는 MySQL의 관리자 비밀번호를 설정하는 창이다.
관리자 비밀번호는 기억하기 쉽도록 1234라고 지정했다.
9. 설정된 내용 적용하기
Apply Configuration 창에서는 이전까지 설정한 내용을 적용하도록 해준다.
적용하기 위해 exucute 를 클릭하고 설정이 완료되면 finish 버튼이 생성되는데 클릭하면 설정이 모두 끝난다.
3. 통합 개발 환경과 데이터베이스 연동
* MySQL 과 MySQL Workbench의 차이점
우리는 설치 과정에서 필요한 제품으로 MySQL Workbench를 설치해주었기 때문에 연동과정을 거칠 필요가 없다.
설치과정에서 선택해서 설치했기 때문에 같은 프로그램으로 볼 수 있는데 같은 프로그램이 아니다.
MySQL은 관계형 데이터베이스 관리 시스템으로 데이터를 저장, 수정, 관리하는데 사용된다.
커맨드라인에서 운영할 수 있다.
MySQL Workbench 은 데이터베이스는 시각적으로 설계하고 관리하기 위한 도구이다.
GUI 환경에서 데이터베이스 설계, SQL 개발, 데이터베이스 관리 등을 수행할 수 있게 해준다.
(인스턴스처럼 사용, 스프레드 시트로 생각하면 이해하기 쉬움 제목=database이름 table명=sheet명)
MySQL 데이터베이스를 운영하려면 MySQL 서버가 필요하다. 이것을 커맨드 라인에서 직접적으로 운영할 수 있지만 시각적으로 데이터를 확인하기에는 불편하거나 과정이 복잡하다. 이러한 단점을 해결하기 위해 MySQL Workbench를 사용한다. 이를 사용해 데이터베이스의 성능을 모니터링하는 등의 작업을 수행할 수 있다.
* MySQL은 인스턴스?
MySQL 서버는 하나 이상의 클라이언트가 데이터베이스에 액세스할 수 있도록 하는 서비스이다. 이 서버는 실행 중인 MySQL 인스턴스라고 볼 수 있다. 인스턴스는 데이터베이스 전체 시스템의 실행 상태를 나타내며, 이를 통해 실제 데이터베이스에 접근하고 작업을 수행한다. MySQL을 실행하면 MySQL 인스턴스가 생성되고 이것을 통해 실제 데이터를 관리한다.
4. MySQL 기본 명령어
데이터베이스 언어는 데이터베이스를 통해 특정 정보를 추출하고 보여주는 언어를 말한다.
그 중 대표하는 것이 SQL인데 SQL은 데이터베이스 관리 시스템에서 사용하는 언어로 질의 기능, 데이터 정의 및 조작 기능을 가지고 있다. 각각의 레코드보다 테이블 단위로 연산을 수행한다.
SQL 문장의 종류
SQL 문장 | 종류 |
데이터 정의 언어(data definition language) | CREATE, ALTER, DROP,.... |
데이터 조작 언어(data mainpulation language) | SELECT, INSERT, DELETE,UPDATE, ... |
데이터 제어 언어(data control languange) | GRANT, REVOKE, COMMIT, ROLLBACK, .... |
- 데이터 정의 언어 (data definition language : DDL)
데이터 정의 언어는 데이터베이스의 구조를 정의하거나 수정하는데 사용된다.
주로 테이블, 인덱스 등의 객체를 생성, 변경, 삭제하는데 사용된다.
주요 명령어는 CREATE, ALTER, DROP, TRUNCATE 등이 있다.
- 데이터 조작 언어 (data mainpulation language : DML)
데이터 조작 언어는 실제 데이터를 삽입, 수정, 삭제, 조회하는데 사용된다. 실제 데이터를 수정하고 조작하므로 가장 사용을 많이 한다.
주요 명령어로는 SELECT, INSERT, UPDATE, DELETE 등이 있다.
- 데이터 제어 언어(data control language : DCL)
데이터 제어 언어는 사용자의 권한을 관리하고 데이터의 접근을 제어하는데 사용된다.
DCL의 주요 명령어로는 GRANT, REVOKE, COMMIT, ROLLBACK 등이 있다.
4-1. 테이블 관련 명령어
- 테이블 생성하기
CREATE TABLE 테이블 이름(필드 이름1 자료형1);
create table 명령어를 사용하여 테이블을 사용할 수 있다.
이때 괄호 안에 컬럼 이름과 자료형을 작성해주어야한다.
- 테이블 조회하기
SHOW TABLE;
현재 선택된 데이터베이스에 존재하는 테이블 목록을 출력한다.
- 테이블 세부 조회하기
DESC 테이블 이름;
특정 테이블의 세부 사항을 확인하는 명령어이다.
테이블 생성 및 테이블 조회 예시
create database jspbookdb_test;
show databases;
use jspbookdb_test;
create table sheet1(
id varchar(10),
pw char(10),
age int,
name varchar(10),
primary key(id)
);
show tables;
desc sheet1;
테이블을 생성할 때는 어떠한 데이터베이스를 사용할 것인지 설정해주어야한다.
그러므로 USE 데이터베이스명; 을 반드시 해주어야한다.
* varchar 과 char의 차이점
공간 사용을 동적으로 하고 안하고의 차이가 있다.
만약 char(4) 와 varchar(4)가 있다고 가정하겠다.
각 각 a a a라는 문자를 넣어주면 나머지 공간이 생기는데 char는 남은 공간을 그대로 놔둔다.
하지만 varchar은 동적으로 공간을 활용하여 남은 공간을 삭제한다.
더 작성한다면 + 된다. 동적으로 공간을 활용하지만 지정한 크기 안에서만 가능하다.
- 테이블 구조 변경하기
특정 테이블의 구조를 변경하는 명령어는 ALTER이다.
ALTER TABLE 테이블 이름
[ADD 필드 이름 자료형 |
DROP COLUMN 필드 이름 |
CHANGE COLUMN 기존 필드 이름 새 필드 이름 자료형];
- 기존 테이블에 열을 추가하는 경우 (COLUMN 추가)
alter table sheet1 add tel varchar(10);
table 뒤에는 테이블명이 오고 add 뒤에는 추가할 컬럼 명과 컬럼의 타입을 설정해준다.
명령어를 실행한 후 tel이라는 컬럼이 생성된 것을 볼 수 있다.
- 기존 테이블에 컬럼을 삭제하는 경우
테이블에 컬럼을 삭제하고 싶은 경우 alter drop 명령어를 사용한다.
alter table sheet1 drop tel;
실행 후 결과를 확인하면 이전까지 존재하던 tel 컬럼이 삭제된 것을 확인할 수 있다.
- 기존 테이블의 컬럼 이름을 수정하는 경우
기존 테이블 이름을 수정하고 싶은 경우 alter change column 명령어를 사용할 수 있다.
alter table sheet1 change column pw password varchar(10);
change column 명령어를 사용하여 기존 pw였던 컬럼명이 password로 변경된 것을 확인할 수 있다.
- 테이블 이름 변경하기
테이블의 이름을 변경하고자할 때 rename 명령어를 사용할 수 있다.
rename table sheet1 to sheet2;
rename 명령어를 사용하여 기존의 sheet1 테이블의 이름이 sheet2로 변경된 것을 확인할 수 있다.
'코딩 > JSP' 카테고리의 다른 글
[11주 3일차] 데이터베이스 개발 환경 구축 (2) (0) | 2023.12.20 |
---|---|
[쉽게 배우는 JSP 웹 프로그래밍 연습문제] 14장 (1) | 2023.12.19 |
[11주 2일차] 쿠키 (0) | 2023.12.19 |
웹 쇼핑몰 : 주문 처리 페이지 만들기 (0) | 2023.12.19 |
[쉽게 배우는 JSP 웹 프로그래밍 연습문제] 4장 (0) | 2023.12.19 |
- Total
- Today
- Yesterday