DATABASE

DBMS SQL MARIA_DB, 데이터베이스

초롱씨 2023. 11. 20. 16:56
728x90
반응형

* 데이터베이스
- 데이터를 관리하는 곳
- 데이터 베이스는 국제 표준에 의해서 만들어진다.

데이터를 파일이 아닌 데이터 베이스로 관리하는 이유

1.  데이터 무결성 및 일관성: 데이터베이스는 트랜잭션 관리를 통해 데이터 무결성을 보장함.

트랜잭션은 성공하거나 실패하며, 실패 시 롤백하여 데이터베이스를 이전 상태로 되돌린다.

->데이터의 일관성을 유지 가능

2. 동시성 제어: 다수의 사용자가 동시에 데이터에 접근할 때 충돌을 방지하고, 동시에 여러 작업을 수행할 수 있도록 하는 동시성 제어가 가능.

여러 사용자가 동시에 시스템을 사용할 때 데이터의 무결성을 보장하는 데 중요!

3. 데이터 보안: 데이터베이스 시스템은 다양한 수준의 보안 기능을 제공하여 불법적인 접근으로부터 데이터를 보호한다.

액세스 권한, 암호화, 감사 로깅 등을 통해 데이터를 안전하게 보호가능

4. 효율적인 데이터 검색과 조작: 데이터베이스는 인덱싱 및 최적화 기술을 사용하여 대량의 데이터를 효과적으로 검색하고 조작할 수 있다. >> 파일 시스템보다 빠른 응답 시간을 제공

5. 데이터 중복 최소화: 데이터베이스는 정규화와 같은 기술을 사용하여 데이터 중복을 최소화하고 데이터의 일관성을 유지한다. > 데이터의 효율적인 관리와 유지보수 가능!

6. 데이터 모델링: 데이터베이스는 복잡한 데이터 모델링을 지원하며, 관계형 데이터베이스 시스템의 경우 관계를 통해 데이터 간의 관계를 명확히 정의가능

7. 확장성: 데이터베이스는 시스템의 요구에 따라 확장이 가능하다.

새로운 데이터나 요구 사항이 발생할 때 기존의 데이터베이스를 재구성하지 않고도 쉽게 대응할 수 있다.

8. 데이터 백업과 회복: 데이터베이스는 자체적으로 데이터의 백업과 회복 기능을 제공하여 시스템의 안정성을 높인다.

장애가 발생했을 때 빠르게 시스템을 복구 가능하다.




*DBMS : 데이터 베이스 관리 시스템
*RDBMS : 관계형 데이터베이스 관리 시스템
*DB Server : DB (DBMS or RDBMS 같은 의미로 사용됨) 가 구축된 시스템을 의미함

RDBMS
-Oracle : 오라클, 최적화 OS는 리눅스, 다만 모든 OS에 다 안정화 되어 있음
-MySQL : 오라클, 최적화 OS는 리눅스, 다만 모든 OS에 다 안정화 되어 있음
-MS-SQL : 마이크로소프트 , 최적화 OS는 윈도우
-MariaDB : 오픈소스 기반 DB, 최적화 OS는 리눅스 , 다만 모든 OS에 다 안정화되어 있음

다운로드 : mariaDB 설치

모든 패스워드 : dbdb
계정 : root
패스워드 : 설치 시 입력한 비밀번호
사용하는 port : 3306
기본 IP : 127.0.0.1
기본 HOST : localhost

도메인 : 주소
port : 00~사무실 번호와 같은 개념

DBT 사용 방법 
아래는 절대 권한 root로 접속해서 생성해야함
user : 생성 : 계정 및 패스워드 생성
Database 생성 : 사용자가 사용할 공간 만들기
(Oracle은 제외, Oracle은 사용자 생성이 곧 DB 생성과 같음)
권한 부여 : 사용자가 접속하고 , DB를 사용할 수 있는 권한 부여

사용자 , db, 권한 부여 후 할일
-사용자로 접속
Table (테이블) 설계 (DB 설계라고 칭합니다)
 = > 테이블을 어떻게 만들기 모델링
 - > 데이터를 저장할 수 있는 공간 : 테이블
 - > 테이블 내에 데이터를 저장하는 원소값: 컬럼 (열)
 -> 테이블 하나를 만들기 위해서는 컬럼(열)이 하나 이상 존재해야 합니다
 - > 컬럼은 타입(또는 길이와 함께 )으로 정의 됩니다.



table 을 이용해서 입력, 수정 ,삭제 , 조회 -> (CRUD)를 수행함
char는 고정형 vachar는 가변형 메모리가 생성

현업에서는 개념적으로 설계하기 보다는  성격에 맞는 데이터를 모은다는 느낌으로

erd 에서 1:N일 경우 1인 쪽이 부모테이블이다.
부모쪽에는 PK가 존재해야 하고 자식쪽에서는 참조하는 FK를 가지고 있어야한다.


-- 한줄주석
/* 
문장 주석
*/

-- db 테이블 조회하기
SELECT * FROM user;


-- 사용할 db 지정하기
USE mysql;

--사용자 계정 및 패스워드 생성하기
-- -> 내부 사용자
CREATE user gjuser@localhost
IDENTIFIED BY 'dbdb';

-- -> 외부 사용자
CREATE user 'gjuser'@'%' IDENTIFIED BY 'dbdb';

-- > 사용자 삭제 하기 

-- DROP user gjuser@localhost; 

CREATE DATABASE gjdb;
-- DROP DATABASE gjdb;

-- 사용자 권한 부여하기

GRANT ALL PRIVILEGES ON gjdb.* TO 'gjuser'@'localhost';
-- REVOKE ALL PRIVILEGES ON gjdb.* FROM 'gjuser'@'localhost';

-- 사용자 또는 DB 권한 처리 후에는 마지막 아래 실행

FLUSH PRIVILEGES;권한 적용

-- 데이터에 대한 입력 / 수정 /삭제 시에는 commit 수행 
-- 만약 입력 / 수정 / 삭제를 되돌리려면 rollback 수행
-- commit 이후에는 rollback이 안됩니다.
-- mysql or mariadb는 자동 commit이 됩니다. (tool에서)
-- oracle은 항상 commit 해야 합니다.(tool에서)
-- commit



테이블 삭제 순서
자식> 부모

데이터 입력
INSERT INTO 테이블명 (컬럼명1,...234) VALUES (값1,... 대응대는 갯수)

데이터 수정
UPDATE 테이블명 SET 수정할 칼럼명1 = 수정할값, 수정할 칼럼명2 = 수정할 값 WHERE 조건

데이터 삭제
DLELETE FROM 테이블 명 WHERE 삭제 조건

데이터 조회

SELECT 조회할 칼럼 ,,, FROM 테이블명 WHERE 조건

---회원 정보 전체 조회하기
---회원 정보 테이블: MEMBER
---전체 조회: 모든 칼럼의 데이터를 조회하라는 의미


컴패일 (해석) 순서
select > from member > where 조건들 > 조회할 칼럼

728x90
반응형