Database & DB Server

65
Database & DB Server 2014 바 - 바 Seminar I’m EGG

description

Database & DB Server. 2014 바 - 퀴 Seminar I’m EGG. 이 세미나에서는 무엇을 다루나요 ?. 이 세미나에서는 무엇을 다루나요 ?. D ata b ase 가 뭐죠 D ata b ase M anagement S ystem 이 뭐죠 Example : My SQL. Special Thanks to Argon, Yasik , Grandmarnier , reno Wiki pedia God Google. 센 - 빠이 !. Database 가 뭐임 ?. - PowerPoint PPT Presentation

Transcript of Database & DB Server

Page 1: Database & DB Server

Database & DB Server2014 바 - 퀴 Seminar

I’m EGG

Page 2: Database & DB Server

이 세미나에서는 무엇을 다루나요 ?

Page 3: Database & DB Server

이 세미나에서는 무엇을 다루나요 ?

Database 가 뭐죠

Database Management System 이 뭐죠

Example : MySQL

Page 4: Database & DB Server

Special Thanks to Argon, Yasik, Grandmarnier, reno

WikipediaGod Google

센 - 빠이 !

Page 5: Database & DB Server

Database 가 뭐임 ?

Page 6: Database & DB Server

Database:Organized Collection of Data

Page 7: Database & DB Server

Database:Organized Collection of Data

정보 , 자료

Page 8: Database & DB Server

Database:Organized Collection of Data

Page 9: Database & DB Server

Outside Example of DB

Page 10: Database & DB Server

Concept of Database:구조화

Page 11: Database & DB Server

Concept of Database:구조화 -> 검색과 갱신 효율 증가

Page 12: Database & DB Server

Concept of Database:구조화 -> 자료 항목 중복 제거

Page 13: Database & DB Server

Database의 특징 :

실시간 접근성지속적인 변화

동시 공유

Page 14: Database & DB Server

Database의 장점 :

중복 최소화 -> 공간절약일관성 -> 표준화 가능

데이터 접근 쉬움 -> 관리가 용이논리적, 물리적 독립

Page 15: Database & DB Server

Database Model

Page 16: Database & DB Server

Database Model determine Logical StructureManner(Store, Organize, Manipulate)

Page 17: Database & DB Server

Database Model

Page 18: Database & DB Server

Relational Model

Page 19: Database & DB Server

Relational Model:Tuples, grouped into Relations

Page 20: Database & DB Server
Page 21: Database & DB Server

학번 이름 Id 비밀번호 특징

2008 박준동 an-dromeda

* 산디과 ㄷㄷ

2013 이동수 egg * ?????

2013 이현섭 protos * 현섭갓

2013 조현성 chocho * 초초 !

2014 이언희 onion * 14 학번 !

Page 22: Database & DB Server

EmpNo Designation ReportsTo10 Director20 Senior Manager 1030 Typist 2040 Programmer 20

Page 23: Database & DB Server

Database

Page 24: Database & DB Server

Database<- ->User

Page 25: Database & DB Server

Database<- ->User DBMS

Page 26: Database & DB Server

Database Management System

Page 27: Database & DB Server

Database Management System

Database 를 생성 , 유지 , 관리해주는 프로그램

Page 28: Database & DB Server

Database Management System

General Purpose -> 가능한 많은 기능을 수행

-> but, Complexity 상승 -> 목적에 맞는 DBMS 생김Ex) E-mail Service

Page 29: Database & DB Server

Transaction

Database 처리에 필요한 작업들에 대한 연속처리단위

Ex) 데이터 검색 , 추가 , 삭제

Atomicity( 원자성 ) Consistency( 일관성 )

Isolation( 독립성 )Durability( 지속성 )

Page 30: Database & DB Server

History of DBMS

Navigational eraSQL/relational eraPost-relational era

Page 31: Database & DB Server

History of DBMS : Navigational era

1960 중반 , Direct-access storage 개발

-> Database 용어가 생김General-Purpose Database 개발 UP!

CODASYL(Nework Model)IBM 이 만든 IMS(Hierarchical Model)

Page 32: Database & DB Server

History of DBMS : SQL/relational era

1970s, Relational model 등장 (Edgar Codd)

-> Hierarchical, Navigationla 포괄 가능PRTV, Business System 12(IBM)

Page 33: Database & DB Server

History of DBMS : SQL/relational era

Hardware 와 Software 의 IntegrationSQL 의 등장 , SQL/DS, DB2(IBM)

Entity-relationship Model 출현 (1976)1980s, Object-oriented 개념 도입

Page 34: Database & DB Server

History of DBMS : Post-relational era

2000s, NoSQL(Not only SQL) 등장-> 디자인의 간소화 , Horizontal Scaling,

유용성Key-value, Graph, Document 등의 DS 사용Big Data, Real-time Web 등에 쓰임

ACID 필수요소 X

Page 35: Database & DB Server

Data Model Performance Scalability Flexibility Complexity Functionality

Key–Value Store high high high nonevariable (none)

Column-Oriented Store high high moderate low minimal

Document-Oriented Store high

Variable (high) high low variable (low)

Graph Database variable variable high high graph theory

Relational Database variable variable low moderaterelational

algebra

Page 36: Database & DB Server

MySQL

Relational Dabase 기반 DBMSPaid editon 있으나 일단 공짜

Market Share 2 위 (1 위는 Oracle)

Page 37: Database & DB Server

MySQL TableISAM

MYSQL 3.x 버전까지의 테이블

테이블 최대용량은 4GB

5.0 버전부터 사라짐

MyISAM

MYSQL 4.x 버전의 기본 테이블 타입

ISAM 의 확장

용량은 OS 에 달림

작은 규모의 DB 에 적합

MERGE

여러 개의 MyISAM 테이블을 하나로 취급하여 MyISAM 의 용량 제한을 극복한 타입

InnoDB ( ara 에서 사용 )

트랜잭션 , Foreign key, row-level lock-ing 지원용량 제한이 거의 없음

MyISAM 에 비해 용량을 많이 사용함

대규모의 DB 에 적합

BDB

트랜잭션 , page-level locking 지원

데이터는 옮길 수 없음

HEAP

메모리를 저장공간으로 사용

엑세스 타임이 빨라 임시 테이블이나 검색결과 테이블 등으로 활용

Page 38: Database & DB Server

MySQL 설치

설치 : sudo apt-get install mysql-serverClient 및 기타 필요한 것 함께 깔림

http://dev.mysql.com/doc/에서각 OS 에 맞는 다양한 설치법 제공

Page 39: Database & DB Server

MySQL 설치

설치 : 설치 도중에 root 비밀번호 설정한다 .

Page 40: Database & DB Server

MySQL 실행 / 종료

설치가 종료되면 mysql-server 데몬 자동 실행

실행법 : sudo service mysql start종료법 : sudo service mysql stop실행 스크립트는 /etc/init.d/ 에 위치

/etc/init.d/mysql start or stop 이외에도 status, restart, reload 사용 가능

Page 41: Database & DB Server

MySQL 설정

설정 파일 : /etc/mysql/my.cnf 에 위치개인별 설정 파일 : ~/.my.cnf 에 위치

서버 관련 옵션은 my.cnf 내에 [mysqld] 에 위치

Page 42: Database & DB Server

MySQL 로 서버에 접속하기

$mysql-u [username] : 아이디를 적습니다-p(password) : 암호 입력 여부 체크 ! -h [host address] : 말 그래로 host를 적습니다-P [port] : 포트를 적습니다-S [socket address] : 소켓 주소를 적습니다

Page 43: Database & DB Server

MySQL 사용자 추가

use mysql; 로 mysql DB 로 들어가고 grant all privileges on *.*

to‘[name]’@'[host]’ identified by ‘[password]’ with grant option;

Page 44: Database & DB Server

MySQL 사용자 추가

예시 :grant all privileges on eggdb.* to egg@localhost identified by ‘nin-

gen’with grant option;

Page 45: Database & DB Server

MySQL 사용자 추가

예시 :grant select, update, insert on

eggdb.* to egg@localhost identified by ‘ningen’with grant option;

Page 46: Database & DB Server

MySQL 사용자 추가

insert INTO user VALUES(‘[host]’, ‘[name]’, PASSWORD(‘[password]’),

‘Y’, …);flush privileges;

Page 47: Database & DB Server

MySQL 사용자 삭제

DELETE FROM user WHERE user=‘username’flush privileges;

Page 48: Database & DB Server

MySQL 사용자 접속 관리

외부 호스트에서 접속을 허용하고 싶다면/etc/mysql/my.cnf 에서

bind-address = 127.0.0.1 에서 ctrl-A하고 # 을 넣어주세요

Page 49: Database & DB Server

MySQL 사용자 접속 관리

use mysql; 하시고update user set host=‘%’

where user=‘[username]’ and host=‘[old host]’;

Page 50: Database & DB Server

mysqladmin

$mysqladmin –u root –p (command)하는 식으로 이용합니다 .

관리자권한으로 하는 거죠 !

Page 51: Database & DB Server

mysqldump전체 데이터베이스 백업

$mysqldump [login] -A --add-drop-table > [bak]

선택한 데이터베이스 백업$mysqldump [login] -B [options] [db1] [db2] … >

[bak]

선택한 DB 의 테이블 을 선택하여 백업$mysqldump [login] [db name] [tb1] [tb2] … > [bak]

Page 52: Database & DB Server

mysqldump복구할 때는 !

$mysql [login] < [bak]$mysql [login][DB 이름 ] <

[bak]

Page 53: Database & DB Server

추가 세미나

•파일구조•인덱스

Page 54: Database & DB Server

파일 구조

Page 55: Database & DB Server
Page 56: Database & DB Server
Page 57: Database & DB Server
Page 58: Database & DB Server
Page 59: Database & DB Server
Page 60: Database & DB Server
Page 61: Database & DB Server
Page 62: Database & DB Server

인덱스

Page 63: Database & DB Server

B-tree

Page 64: Database & DB Server

mysql> create table index1(      -> code int not null auto_increment primary key,     -> id int not null,     -> name char(30) not null,     -> index idx1(id)     -> ); 

Page 65: Database & DB Server

mysql> ALTER TABLE index1 ADD INDEX(id(20));