본문 바로가기

MYSQL강좌정리

(14)
과제물 풀이 A형 과제. 다음 요구조건에 맞는 쿼리을 생성하시오. (대소문자는 구별하지 않음) 1) 학생(Student)-성적(Score)-과목(Subject) 테이블에 대한 정의를 DDL로 표현하시오. - 모든 테이블들은 자동증가(AUTO_INCREMENT), 숫자 타입(INT) 'ID'를 기본키(PK)로 해야한다. - 학생테이블은 이름(Name), 주소(Address), 전화번호(Telephone), 이메일(Email), 학생번호(StudentNo) 속성을 가진다. - 성적테이블은 과목ID(Subject_id), 학생ID(Student_id), 점수(Grade) 속성을 가진다. - 과목테이블은 과목명(Name)을 가진다. - 숫자 컬럼은 INT, 문자 컬럼은 VARCHAR(255) 타입을 가진다. - 성적테이블은..
20차 대용량 데이터베이스 구축기술 대형 데이터베이스 구축기술 스케일업 (보통 말하는 업그레이드) CPU클럭속도 증가, 코어수 증가, 메모리 증가 단점은 성능증가에 비해 가격증가가 더 빠름 병렬컴퓨팅/전용네트워크 Tightly-Coupled System 스케일아웃 동일한 서버/DBMS를 병렬로 구축 분산컴퓨팅(Distributed Computing) Loosely-Coupled System -> 상대적으로 저렴 노드수 추가하여 계속 성능향상 가능 / 효율은 상대적으로 떨어짐 NoSQL (Not Only SQL) 일반 DBMS가 주로 읽기/검색성능에 최적화되어있음 쓰기성능이 중요한 경우 NoSQL이 좋음 (로그쌓기, SNS메신저 등) 제품군) MongoDB가 시초, Apache Cassandra(Facebook에 적용), Apache HBA..
19장 Stored Procedure, Trigger 스토어드 프로시저 :SQL을 함수형태로 저장하고 사용하는 방법 CREATE PROCEDURE 프로시저명(인자 인자형, ... ) BEGIN SQL문장들 END 호출 CALL 프로시저명; 삭제 DROP PROCEDURE 프로시저명; 장점 코드상의 가독성이 높아짐(여러 sql을 하나로 묶어주니까) precompile 하는 Static SQL 특성을 가짐 -> 기존Sql실행은 인터프리터 방식인데 이는 속도가 떨어짐 Stored Function : 이것은 리턴값이 있다는 차이점이 있다 CREATE FUNCTION 함수명(인자 인자형.. ) RETURNS 타입 BEGIN SQL문장들 END 호출 함수명(인자) --> CALL 필요없음 Trigger : 스토어드 프로시저의 특수한 케이스라고 생각하자, 특정조건이 되..
18차 트랜잭션, 락(Lock), 격리수준 Transaction : ALL or Nothing -> 전체수행(commit) 과 전체취소(rollback) 두가지 결과값만 있음 기본적으로 SQL의 수행모드는 AutoCommit 모드임 (줄단위 커밋모드) 트랜잭션을 지원하기 위해서는 AutoCommit 모드를 off시켜야 함 트랜잭션은 InnoDB 스토리지엔진만 가능함 트랜잭션 : ACID 특성 Atomicity(원자성) All or Nothing Consistency(일관성) : 데이터의 일관성 Isolation(고립성/격리수준) : 지속성(Durability) 트랜잭션 기본설정 확인 select @@autocommit; 1이면 true 이고 0이면 false임 set autocommit = false; --> autocommit OFF Lock ..
FULL TEXT SEARCH(전문검색), BULK INSERT full text search :기존 like 검색의 단점을 보완한것(like 검색의 단점 : DB서버에 부담을 줌) 전체DB를 하나의 텍스트라 생각하고 검색하는 것 -> 문서편집기의 편집 찾기/바꾸기 메뉴동작과 비슷함 full text search 방식 1) 자연어 검색(일반적인 검색) 2) 불린 검색(특정 단어는 들어가야하고 특정단어는 들어가면 안되고.. 하는 식의 조건을 주는 것) 3) 쿼리확장 검색 이걸 할려면 Index가 만들어져 있어야 한다. 예전에는 MyISAM 스토리지 엔진만 지원했는데(5.5이하) 현재는 둘다(MyISAM, InnoDB) 모두 지원함 방법 : alter table 테이블명 add fulltext(컬럼명); 설정파일 수정도 필요함 my.ini에서 ft_min_world_le..
16장 파티셔닝/샤딩, 데이터베이스 복제 VLDS(very large DBMS) - 하나의 데이터를 여러 시스템에 분산저장하는 솔루션 샤딩 - DBMS외부에서 분할, 여러개의 시스템으로 나눠서 관리 파티셔닝 - DB내에서 분할 -> 이것이 VLDS DB복제 마스터/슬레이브 CUD는 마스터에서 실행, R은 슬레이브에서 실행 읽기성능 향상
15장 데이터백업 복원 로그 데이터베이스 백업 전체 데이터베이스 백업 mysqldump -u아이디 -p --all-databases > 덤프파일명.sql 특정 데이터베이스 백업 mysqldump -u아이디 -p ---databases DB명 > 덤프파일명.sql 특정 테이블 백업(데이터 포함) mysqldump -u아이디 -p DB명 테이블명 > 덤프파일명.sql 스키마만 백업 mysqldump -u아이디 -p --no-data world country > country_schema.sql 데이터만 백업 mysqldump -u아이디 -p --no-create-info world country > country_date.sql 워크벤치(GUI툴)에서 덤프하는 법 Data/Export 메뉴 -> Export Option -> Expor..
14차시 메타데이터, 캐릭터셋/콜레이션 스토리지 엔진 메타데이터 데이터를 위한 데이터 DB, 테이블의 스키마에 대한 정보를 저장하는 테이블 DB명, 테이블명, 컬럼명, 사용자명, show 명령어의 결과값... 1) Data Dictionary : Information_schema 데이터베이스의 정보저장, 시스템카탈로그 라고도 함, 일반적으로 읽기전용임 2) Data Directory DBMS의 모든 데이터가 저장되는 디렉토리, DB저장, 상태 및 로그저장 C:\Program Files\MySQL\MySQL Server 5.x\data C:\Program Files\MySQL\MySQL Server 5.x\my.ini 파일이 있는데 여기서 datadir 이 정의되어 있고 이걸 바꾸면 원하는 곳에 저장됨 show databases; show tables; sh..