study/개인공부

M1-W3-D5

잠수함 2021. 5. 14. 18:11
728x90

DATABASE

 

DB 서비스(데몬) 등록

# cp /usr/local/douzone2021/mariadb/supprot-files/mysql.server /etc/init.d/mariadb

# chkconfig mariadb on

# systemctl start mariadb

 

시작/중지

systemctl start mariadb

systemctl stop mariadb

 

1. RDBMS(Relation DBMS)

 

2. SQL(Structual Query Language)

- DDL: DA(Data Architactual)

- DML: DB Develope, CRUD

- DCL: DBA

 

3. DA -> DB schema (데이터 설계) -> entity(ERD, Logical) -> table(Physical)

- 정규화(Normalization)

 

4. DB Programing(c, c++, java(jdbc), python, JavaScript, PHP ...)


1. 데이터베이스 관리 시스템

 

1-1. 데이터베이스 기본개념

- 여러 응용 시스템(프로그램)들의 통합된 정보들을 저장하여 운영할 수 있는 공용(share) 데이터의 집합
- 효율적으로 저장, 검색, 갱신할 수 있도록 데이터 집합들끼리 연관시키고 조직화되어야 한다.

 

1-2. 데이터베이스의 특성
- 실시간 접근성(Real-time Accessability): 사용자의 요구를 즉시 처리할 수 있다.
- 계속적인 변화(Continuous Evolution): 정확한 값을 유지하려고 삽입·삭제·수정 작업 등을 이용해 데이터를 지속적으로 갱신할 수 있다.
- 동시 공유성(Concurrent Sharing): 사용자마다 서로 다른 목적으로 사용하므로 동시에 여러 사람이 동일한 데이터에 접근하고 이용할 수 있다.
- 내용 참조(Content Reference): 저장한 데이터 레코드의 위치나 주소가 아닌 사용자가 요구하는 데이터의 내용, 즉 데이터 값에 따라 참조할 수 있어야 한다.

 

1-3. 데이터 베이스 관리 시스템 ( Database Management System  =  DBMS )
- 데이터베이스를 관리하는 소프트웨어 프로그램
- 여러 응용 소프트웨어(프로그램) 또는 시스템이 동시에 데이터베이스에 접근하여 사용할 수 있게 한다  
* 필수 3기능
     정의기능 :  데이터 베이스의 논리적, 물리적 구조를 정의
     조작기능 : 데이터를 검색, 삭제, 갱신, 삽입, 삭제

 

 

 

 

 

 

 

하는 기능
     제어기능 :  데이터베이스의 내용 정확성과 안전성을 유지하도록 제어하는 기능 
- Oracle,  SQL Server, MySQL, DB2 등의 상용 또는 공개 DBMS가 있다.

* 중복성 제거의 중요성

데이터베이스에서는 수정을 한번에 완료하도록 가능하게한다

 

1-3 데이터베이스 관리 시스템 장, 단점

 

* 데이터 베이스 관리 시스템  장점 (데이터가 약 30만개 이상정도 관리하는것이 데이터베이스를 사용할때 유용)
- 데이터 중복이 최소화
- 데이터의 일관성 및 무결성 유지  
- 데이터 보안 보장

 

* 데이터 베이스 관리 시스템  단점
- 운영비가 비싸다
- 백업 및 복구에 대한 관리가 복잡(연관이 되어 있을수 있기 때문에.)
- 부분적 데이터베이스 손실이 전체 시스템을 정지

 

2. 데이터베이스 종류

 

2-1. 관계형 데이터베이스 (  Relational Database = RDB )
- 1970년 IBM E. F. Codd 에 의해 제안되어 수 십년동안 주류 데이터베이스로 성장 확대
- 키와 값들의 간단한 관계를  테이블화 시킨 매우 간단한 원칙의 개념의 데이터베이스
- 일련의 정형화된 테이블로 구성된 데이터 항목들의 집합이며 각 테이블은 데이터의 성격에
- 따라 여러 개의 컬럼(키)이 포함된다.      
- 사용자는 SQL이라는 표준 질의어를 통해 데이터를 조작 또는 조회 할 수 있다.
     
2-2. 객체 지향 데이터베이스 ( Object Oriented DataBase = OODB )
- 정보를 객체의 형태로 표현하는 데이터베이스
- 객체 모델이 그대로 데이터베이스에도 적용되어 데이터 모델을 그대로 응용프로그램 에 적용,  데이터 변환과 질의 작업이 필요치 않은 장점

 

2-3. 객체 관계형 데이터베이스 (  Object Relation DataBase = ORDB )

- 관계형 데이터베이스에서 사용하는 데이터를 확장
- 관계형 데이터베이스를 객체 지향 모델링과 데이터를 관리하는 기능을 갖도록 확장한 것 

 

2-4. NoSQL

- 대용량 데이터의 웹 서비스와 SNS, 클라우드 컴퓨팅의 확대 보급과 대중화로  최근 주목 받는 데이터베이스 기술      

3. 예제

- 테이블 : RDBMS의 기본적 저장구조   한 개 이상의 column 과 0개 이상의 row로 구성
- 열(Column): 테이블 상에서의 단일 종류의 데이터를 나타냄 특정 데이터 타입 및 크기를 가지고 있음 
- 행(Row): Column들의 값의 조합. 레코드라고 불린다. 기본키(PK)에 의해 구분된다. 기본키는 중복을 허용하지 않으며 없어서는 안 된다. 
- Field : Row 와  Column의 교차점으로 Field는 데이터를 포함할 수 있고 없을 때는 NULL 값을 가지고 있다고 한다.
    

4. RDBMS

* MariaDB

- Monty Program AB라는 회사에서 만든 독립적인 RDBMS
- MySQL 커뮤니티 코드 베이스를 이용해서 탄생(MySQL 커뮤니티 버젼과 상당부분 호환)
- MariaDB는 오픈소스이다.
* MySQL과의 공통점
    - Binary Drop in replacement MySQL (데이터 파일들이 호환)
    - 실행 프로그램과 유틸리티는 모두 MySQL과 이름이 동일하며 호환된다.
    - 모든 클라이언트 API와 프로토콜은 호환된다
    - 모든 파일과 포트및 파일의 경로가 동일
    - MySQL Connector(Java, c) 모두 변경 없이 사용 가능
    - MySQL 클라이언트 프로그램은 변경없이 MariaDB  서버의 연경에 사용할 수 있다.


* MySQL과의 차이점
    - 라이선스
    - 옵티마이저(디스크 읽기/쓰기, 조인, 서브쿼리, 임시테이블 & 뷰) 에서 차이가 있다.
    - 내부 스토리지 엔진(메모리 스토리지, 임시 테이블 스토리지, 트랜잭션, NoSQL지원)에서 MariaDB 10.x 부터 차이를 보인다.

 


* 쿼리 예제 (대부분 MySQL commands semicolon ( ' ; ' ) 으로 끝난다.)

- 버전확인: select version();

- 현재날짜: select current_date;

- 현재날짜, 시간: select now();

- 데이터베이스 보여주기: show databases;

- 유저알아보기: select user();

- 쿼리문구 취소하기: \c (역슬래쉬) // 중요한 데이터베이스 사용시 취소해야할때 사용

 

- 데이터베이스 생성: create database 데이터베이스 명칭;

- 데이터베이스 삭제: drop database 데이터베이스 명칭;

- 데이터베이스 사용: use 만들어진 데이터베이스 명칭;

(시작시 바로 사용할 경우: mysql -u root -D 데이터베이스명칭 -p)

- 테이블 보기(데이터베이스 지정후 사용): show tables;

- 테이블 삭제: drop table 테이블명

 

 

 

 

4-1. 데이터베이스 사용순서

 

1. 데이터베이스 생성

- create database 데이터베이스명

 

2. 사용자 생성( 인증, 비밀번호 )

- create user ' webdb '@' localhost' identified by  ' webdb'; (계정이름  / 패스워드)

 

3. 데이터베이스 권한부여

- grant all privileges on webdb.* to 'webdb'@'localhost';  (webdb 데이터베이스의 테이블의 모든권한을 부여)

 

4. 새 변경사항 적용

- flush privileges;

 

5. 테스트

 

 

mysql -u webdb -D webdb -p  접속

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

 

'study > 개인공부' 카테고리의 다른 글

M1-W4-D2  (0) 2021.05.18
M1-W4-D1  (0) 2021.05.17
M1-W3-D4  (0) 2021.05.13
M1-W3-D3  (0) 2021.05.12
M1-W3-D2  (0) 2021.05.11