Database & DB Server

Preview:

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

Citation preview

Database & DB Server2014 바 - 퀴 Seminar

I’m EGG

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

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

Database 가 뭐죠

Database Management System 이 뭐죠

Example : MySQL

Special Thanks to Argon, Yasik, Grandmarnier, reno

WikipediaGod Google

센 - 빠이 !

Database 가 뭐임 ?

Database:Organized Collection of Data

Database:Organized Collection of Data

정보 , 자료

Database:Organized Collection of Data

Outside Example of DB

Concept of Database:구조화

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

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

Database의 특징 :

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

동시 공유

Database의 장점 :

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

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

Database Model

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

Database Model

Relational Model

Relational Model:Tuples, grouped into Relations

학번 이름 Id 비밀번호 특징

2008 박준동 an-dromeda

* 산디과 ㄷㄷ

2013 이동수 egg * ?????

2013 이현섭 protos * 현섭갓

2013 조현성 chocho * 초초 !

2014 이언희 onion * 14 학번 !

EmpNo Designation ReportsTo10 Director20 Senior Manager 1030 Typist 2040 Programmer 20

Database

Database<- ->User

Database<- ->User DBMS

Database Management System

Database Management System

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

Database Management System

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

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

Transaction

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

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

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

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

History of DBMS

Navigational eraSQL/relational eraPost-relational era

History of DBMS : Navigational era

1960 중반 , Direct-access storage 개발

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

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

History of DBMS : SQL/relational era

1970s, Relational model 등장 (Edgar Codd)

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

History of DBMS : SQL/relational era

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

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

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

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

MySQL

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

Market Share 2 위 (1 위는 Oracle)

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

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

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

MySQL 설치

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

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

MySQL 설치

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

MySQL 실행 / 종료

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

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

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

MySQL 설정

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

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

MySQL 로 서버에 접속하기

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

MySQL 사용자 추가

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

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

MySQL 사용자 추가

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

gen’with grant option;

MySQL 사용자 추가

예시 :grant select, update, insert on

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

MySQL 사용자 추가

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

‘Y’, …);flush privileges;

MySQL 사용자 삭제

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

MySQL 사용자 접속 관리

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

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

MySQL 사용자 접속 관리

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

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

mysqladmin

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

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

mysqldump전체 데이터베이스 백업

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

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

[bak]

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

mysqldump복구할 때는 !

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

[bak]

추가 세미나

•파일구조•인덱스

파일 구조

인덱스

B-tree

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

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

Recommended